@anvia/core 1.1.2 → 1.2.1

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 (598) hide show
  1. package/README.md +226 -0
  2. package/dist/agent/agent-stream.js +7 -0
  3. package/dist/agent/agent-stream.js.map +1 -0
  4. package/dist/agent/agent-tool.js +24 -0
  5. package/dist/agent/agent-tool.js.map +1 -0
  6. package/dist/agent/agent.js +89 -0
  7. package/dist/agent/agent.js.map +1 -0
  8. package/dist/agent/errors.js +17 -0
  9. package/dist/agent/errors.js.map +1 -0
  10. package/dist/agent/ids.js +7 -0
  11. package/dist/agent/ids.js.map +1 -0
  12. package/dist/agent/index.d.ts +127 -9
  13. package/dist/agent/index.js +103 -21
  14. package/dist/agent/interactions/index.js +2 -2
  15. package/dist/agent/interactions.js +22 -0
  16. package/dist/agent/interactions.js.map +1 -0
  17. package/dist/agent/lifecycle.js +9 -0
  18. package/dist/agent/lifecycle.js.map +1 -0
  19. package/dist/agent/output-schema.js +10 -0
  20. package/dist/agent/output-schema.js.map +1 -0
  21. package/dist/agent/resolve-options.js +46 -0
  22. package/dist/agent/resolve-options.js.map +1 -0
  23. package/dist/agent/resolved-agent.js +92 -0
  24. package/dist/agent/resolved-agent.js.map +1 -0
  25. package/dist/agent/run-types.js +1 -0
  26. package/dist/agent/run-types.js.map +1 -0
  27. package/dist/agent/snapshot.js +17 -0
  28. package/dist/agent/snapshot.js.map +1 -0
  29. package/dist/agent/team/agent-team.js +98 -0
  30. package/dist/agent/team/agent-team.js.map +1 -0
  31. package/dist/agent/team/errors.js +9 -0
  32. package/dist/agent/team/errors.js.map +1 -0
  33. package/dist/agent/team/index.js +104 -0
  34. package/dist/agent/team/index.js.map +1 -0
  35. package/dist/agent/team/types.js +1 -0
  36. package/dist/agent/team/types.js.map +1 -0
  37. package/dist/agent/tool-catalog.js +37 -0
  38. package/dist/agent/tool-catalog.js.map +1 -0
  39. package/dist/agent/tool-state.js +11 -0
  40. package/dist/agent/tool-state.js.map +1 -0
  41. package/dist/agent/types.js +1 -0
  42. package/dist/agent/types.js.map +1 -0
  43. package/dist/agent/vector-context.js +10 -0
  44. package/dist/agent/vector-context.js.map +1 -0
  45. package/dist/{agent-DTmzs1Qr.d.ts → agent-C9VhENdj.d.ts} +2 -3
  46. package/dist/{chunk-I3Q7XSBB.js → chunk-23LRXKQX.js} +6 -4
  47. package/dist/{chunk-I3Q7XSBB.js.map → chunk-23LRXKQX.js.map} +1 -1
  48. package/dist/{chunk-YK4WAAS4.js → chunk-2NLINXRF.js} +1 -1
  49. package/dist/{chunk-SPD4XVR7.js → chunk-2XSMGVBG.js} +1 -1
  50. package/dist/chunk-3J2CSVPR.js +1 -0
  51. package/dist/chunk-3J2CSVPR.js.map +1 -0
  52. package/dist/chunk-3P3YVJ7V.js +1 -0
  53. package/dist/chunk-3P3YVJ7V.js.map +1 -0
  54. package/dist/chunk-3TAQXJBC.js +107 -0
  55. package/dist/chunk-3TAQXJBC.js.map +1 -0
  56. package/dist/chunk-47NTHIVB.js +76 -0
  57. package/dist/chunk-47NTHIVB.js.map +1 -0
  58. package/dist/chunk-4AW2633B.js +9 -0
  59. package/dist/chunk-4AW2633B.js.map +1 -0
  60. package/dist/{chunk-3XQGVDU5.js → chunk-4C7AXYOM.js} +1 -1
  61. package/dist/{chunk-IZNOP6JG.js → chunk-4FIVU53H.js} +1 -1
  62. package/dist/chunk-4ITAV7YA.js +1 -0
  63. package/dist/chunk-4ITAV7YA.js.map +1 -0
  64. package/dist/{chunk-7JLAIN6E.js → chunk-4ONUNWGC.js} +2 -2
  65. package/dist/chunk-4S4OECPW.js +158 -0
  66. package/dist/chunk-4S4OECPW.js.map +1 -0
  67. package/dist/chunk-4UUIGAIX.js +1 -0
  68. package/dist/chunk-4UUIGAIX.js.map +1 -0
  69. package/dist/chunk-53TPAXYR.js +1 -0
  70. package/dist/chunk-53TPAXYR.js.map +1 -0
  71. package/dist/chunk-54ZZJRP2.js +57 -0
  72. package/dist/chunk-54ZZJRP2.js.map +1 -0
  73. package/dist/chunk-5FCZ64HM.js +112 -0
  74. package/dist/chunk-5FCZ64HM.js.map +1 -0
  75. package/dist/chunk-5I2NVRHC.js +146 -0
  76. package/dist/chunk-5I2NVRHC.js.map +1 -0
  77. package/dist/chunk-5IURMWFN.js +53 -0
  78. package/dist/chunk-5IURMWFN.js.map +1 -0
  79. package/dist/chunk-5M6GTA3T.js +1 -0
  80. package/dist/chunk-5M6GTA3T.js.map +1 -0
  81. package/dist/chunk-5N5W7CX7.js +18 -0
  82. package/dist/chunk-5N5W7CX7.js.map +1 -0
  83. package/dist/chunk-5S7T2URX.js +1 -0
  84. package/dist/chunk-5S7T2URX.js.map +1 -0
  85. package/dist/chunk-5V533R7F.js +19 -0
  86. package/dist/chunk-5V533R7F.js.map +1 -0
  87. package/dist/chunk-5WLIHNNJ.js +56 -0
  88. package/dist/chunk-5WLIHNNJ.js.map +1 -0
  89. package/dist/chunk-6BTJC3ES.js +37 -0
  90. package/dist/chunk-6BTJC3ES.js.map +1 -0
  91. package/dist/chunk-6N4ENZO4.js +24 -0
  92. package/dist/chunk-6N4ENZO4.js.map +1 -0
  93. package/dist/{chunk-4UQALF5Y.js → chunk-6RQYWZI3.js} +2 -36
  94. package/dist/chunk-6RQYWZI3.js.map +1 -0
  95. package/dist/chunk-6TAWRKFK.js +86 -0
  96. package/dist/chunk-6TAWRKFK.js.map +1 -0
  97. package/dist/chunk-72LBHKYP.js +236 -0
  98. package/dist/chunk-72LBHKYP.js.map +1 -0
  99. package/dist/chunk-7F53DOML.js +53 -0
  100. package/dist/chunk-7F53DOML.js.map +1 -0
  101. package/dist/chunk-7LBPRXZP.js +1 -0
  102. package/dist/chunk-7LBPRXZP.js.map +1 -0
  103. package/dist/chunk-A7BXVZXZ.js +25 -0
  104. package/dist/chunk-A7BXVZXZ.js.map +1 -0
  105. package/dist/chunk-AOG6KSV4.js +107 -0
  106. package/dist/chunk-AOG6KSV4.js.map +1 -0
  107. package/dist/chunk-B47EXUHL.js +67 -0
  108. package/dist/chunk-B47EXUHL.js.map +1 -0
  109. package/dist/chunk-B5JQDR33.js +14 -0
  110. package/dist/chunk-B5JQDR33.js.map +1 -0
  111. package/dist/chunk-BDDC72GF.js +189 -0
  112. package/dist/chunk-BDDC72GF.js.map +1 -0
  113. package/dist/chunk-BDKFFFVX.js +342 -0
  114. package/dist/chunk-BDKFFFVX.js.map +1 -0
  115. package/dist/{chunk-QGX73TSQ.js → chunk-BONQTXRQ.js} +3 -12
  116. package/dist/chunk-BONQTXRQ.js.map +1 -0
  117. package/dist/chunk-BUPC72Y2.js +1007 -0
  118. package/dist/chunk-BUPC72Y2.js.map +1 -0
  119. package/dist/chunk-CKKNO4XB.js +70 -0
  120. package/dist/chunk-CKKNO4XB.js.map +1 -0
  121. package/dist/chunk-CX7ZVTO5.js +22 -0
  122. package/dist/chunk-CX7ZVTO5.js.map +1 -0
  123. package/dist/chunk-DU4WA6LQ.js +1 -0
  124. package/dist/chunk-DU4WA6LQ.js.map +1 -0
  125. package/dist/chunk-EJR6VVB3.js +63 -0
  126. package/dist/chunk-EJR6VVB3.js.map +1 -0
  127. package/dist/chunk-EKZRAWBP.js +110 -0
  128. package/dist/chunk-EKZRAWBP.js.map +1 -0
  129. package/dist/chunk-ENZ2XX27.js +26 -0
  130. package/dist/chunk-ENZ2XX27.js.map +1 -0
  131. package/dist/chunk-EOAJBBII.js +1 -0
  132. package/dist/chunk-EOAJBBII.js.map +1 -0
  133. package/dist/chunk-ERN7P6Q4.js +1 -0
  134. package/dist/chunk-ERN7P6Q4.js.map +1 -0
  135. package/dist/chunk-ESOFEAYK.js +57 -0
  136. package/dist/chunk-ESOFEAYK.js.map +1 -0
  137. package/dist/chunk-ETYB5JO6.js +175 -0
  138. package/dist/chunk-ETYB5JO6.js.map +1 -0
  139. package/dist/chunk-EZR5AV3J.js +74 -0
  140. package/dist/chunk-EZR5AV3J.js.map +1 -0
  141. package/dist/chunk-F2OKLHGB.js +9 -0
  142. package/dist/chunk-F2OKLHGB.js.map +1 -0
  143. package/dist/chunk-F3E2RLC7.js +342 -0
  144. package/dist/chunk-F3E2RLC7.js.map +1 -0
  145. package/dist/chunk-FAPIZJS2.js +54 -0
  146. package/dist/chunk-FAPIZJS2.js.map +1 -0
  147. package/dist/{chunk-2QZJTG2E.js → chunk-G336L2IE.js} +11 -71
  148. package/dist/chunk-G336L2IE.js.map +1 -0
  149. package/dist/chunk-GDJNOZ47.js +1 -0
  150. package/dist/chunk-GDJNOZ47.js.map +1 -0
  151. package/dist/chunk-GDY2Z2SZ.js +83 -0
  152. package/dist/chunk-GDY2Z2SZ.js.map +1 -0
  153. package/dist/chunk-GLMYZ6OA.js +20 -0
  154. package/dist/chunk-GLMYZ6OA.js.map +1 -0
  155. package/dist/{chunk-XEVOC433.js → chunk-GPVXCY5I.js} +2 -73
  156. package/dist/chunk-GPVXCY5I.js.map +1 -0
  157. package/dist/{chunk-KSKST3KP.js → chunk-H3H74RWJ.js} +1 -1
  158. package/dist/chunk-HAAGSIZH.js +89 -0
  159. package/dist/chunk-HAAGSIZH.js.map +1 -0
  160. package/dist/{chunk-K5L7R7XM.js → chunk-HHMLE3TZ.js} +6 -54
  161. package/dist/chunk-HHMLE3TZ.js.map +1 -0
  162. package/dist/{chunk-JLJMVRRE.js → chunk-HP34GRQX.js} +10 -83
  163. package/dist/chunk-HP34GRQX.js.map +1 -0
  164. package/dist/chunk-HTI343NP.js +1 -0
  165. package/dist/chunk-HTI343NP.js.map +1 -0
  166. package/dist/{chunk-T2C3CGDQ.js → chunk-HTI7DZJM.js} +6 -4
  167. package/dist/{chunk-T2C3CGDQ.js.map → chunk-HTI7DZJM.js.map} +1 -1
  168. package/dist/chunk-IDNL6IH4.js +294 -0
  169. package/dist/chunk-IDNL6IH4.js.map +1 -0
  170. package/dist/chunk-IV6YQTY2.js +47 -0
  171. package/dist/chunk-IV6YQTY2.js.map +1 -0
  172. package/dist/chunk-J4SINPUA.js +939 -0
  173. package/dist/chunk-J4SINPUA.js.map +1 -0
  174. package/dist/chunk-J6S6MT7O.js +32 -0
  175. package/dist/chunk-J6S6MT7O.js.map +1 -0
  176. package/dist/chunk-JBQNCUXA.js +34 -0
  177. package/dist/chunk-JBQNCUXA.js.map +1 -0
  178. package/dist/chunk-JMJFK3A4.js +1 -0
  179. package/dist/chunk-JMJFK3A4.js.map +1 -0
  180. package/dist/chunk-JMMZICU7.js +74 -0
  181. package/dist/chunk-JMMZICU7.js.map +1 -0
  182. package/dist/chunk-K4IBS7VB.js +55 -0
  183. package/dist/chunk-K4IBS7VB.js.map +1 -0
  184. package/dist/chunk-KBBQSP4M.js +16 -0
  185. package/dist/chunk-KBBQSP4M.js.map +1 -0
  186. package/dist/chunk-KFAVEL5F.js +68 -0
  187. package/dist/chunk-KFAVEL5F.js.map +1 -0
  188. package/dist/chunk-KITX3HDN.js +17 -0
  189. package/dist/chunk-KITX3HDN.js.map +1 -0
  190. package/dist/chunk-KO5NMTAM.js +1 -0
  191. package/dist/chunk-KO5NMTAM.js.map +1 -0
  192. package/dist/chunk-KY4VXIN2.js +118 -0
  193. package/dist/chunk-KY4VXIN2.js.map +1 -0
  194. package/dist/chunk-KZGSXJKU.js +29 -0
  195. package/dist/chunk-KZGSXJKU.js.map +1 -0
  196. package/dist/chunk-LAIATEUB.js +24 -0
  197. package/dist/chunk-LAIATEUB.js.map +1 -0
  198. package/dist/{chunk-OJBFDBLG.js → chunk-LBYJPMHC.js} +2 -2
  199. package/dist/chunk-LKIABZNR.js +49 -0
  200. package/dist/chunk-LKIABZNR.js.map +1 -0
  201. package/dist/chunk-LQJ4KHMY.js +23 -0
  202. package/dist/chunk-LQJ4KHMY.js.map +1 -0
  203. package/dist/chunk-MEN4AFDZ.js +1 -0
  204. package/dist/chunk-MEN4AFDZ.js.map +1 -0
  205. package/dist/chunk-MHOJJYDK.js +93 -0
  206. package/dist/chunk-MHOJJYDK.js.map +1 -0
  207. package/dist/chunk-MJCMKZFP.js +30 -0
  208. package/dist/chunk-MJCMKZFP.js.map +1 -0
  209. package/dist/chunk-MNYMLWWA.js +168 -0
  210. package/dist/chunk-MNYMLWWA.js.map +1 -0
  211. package/dist/chunk-MT3BLVYN.js +31 -0
  212. package/dist/chunk-MT3BLVYN.js.map +1 -0
  213. package/dist/chunk-NF6WBPFG.js +37 -0
  214. package/dist/chunk-NF6WBPFG.js.map +1 -0
  215. package/dist/chunk-NNEKBZSM.js +66 -0
  216. package/dist/chunk-NNEKBZSM.js.map +1 -0
  217. package/dist/chunk-NPJ2T3L5.js +19 -0
  218. package/dist/chunk-NPJ2T3L5.js.map +1 -0
  219. package/dist/chunk-NVALGVQG.js +150 -0
  220. package/dist/chunk-NVALGVQG.js.map +1 -0
  221. package/dist/chunk-O6DTOCBM.js +355 -0
  222. package/dist/chunk-O6DTOCBM.js.map +1 -0
  223. package/dist/chunk-OJF67RNM.js +1 -0
  224. package/dist/chunk-OJF67RNM.js.map +1 -0
  225. package/dist/chunk-PHLGGRHC.js +89 -0
  226. package/dist/chunk-PHLGGRHC.js.map +1 -0
  227. package/dist/chunk-PIMD4DYG.js +104 -0
  228. package/dist/chunk-PIMD4DYG.js.map +1 -0
  229. package/dist/chunk-PJNE75WC.js +1 -0
  230. package/dist/chunk-PJNE75WC.js.map +1 -0
  231. package/dist/{chunk-J6LVLV6P.js → chunk-PLDJCCVL.js} +1 -1
  232. package/dist/{chunk-3RWESPUG.js → chunk-POXHJF3H.js} +6 -51
  233. package/dist/chunk-POXHJF3H.js.map +1 -0
  234. package/dist/chunk-PPJ7SYQL.js +81 -0
  235. package/dist/chunk-PPJ7SYQL.js.map +1 -0
  236. package/dist/chunk-QHGYCYV6.js +91 -0
  237. package/dist/chunk-QHGYCYV6.js.map +1 -0
  238. package/dist/chunk-QUS6S2NB.js +663 -0
  239. package/dist/chunk-QUS6S2NB.js.map +1 -0
  240. package/dist/chunk-R6722CIU.js +28 -0
  241. package/dist/chunk-R6722CIU.js.map +1 -0
  242. package/dist/chunk-RA4YVN43.js +1 -0
  243. package/dist/chunk-RA4YVN43.js.map +1 -0
  244. package/dist/chunk-RT5LUEO3.js +2339 -0
  245. package/dist/chunk-RT5LUEO3.js.map +1 -0
  246. package/dist/chunk-SC4SUIEY.js +1 -0
  247. package/dist/chunk-SC4SUIEY.js.map +1 -0
  248. package/dist/chunk-SIYZDPVH.js +613 -0
  249. package/dist/chunk-SIYZDPVH.js.map +1 -0
  250. package/dist/chunk-SQAAVYJG.js +12 -0
  251. package/dist/chunk-SQAAVYJG.js.map +1 -0
  252. package/dist/chunk-SXE4J43E.js +59 -0
  253. package/dist/chunk-SXE4J43E.js.map +1 -0
  254. package/dist/{chunk-EFLT7XZD.js → chunk-SYULMZGL.js} +6 -4
  255. package/dist/{chunk-EFLT7XZD.js.map → chunk-SYULMZGL.js.map} +1 -1
  256. package/dist/chunk-T4IAJJUU.js +48 -0
  257. package/dist/chunk-T4IAJJUU.js.map +1 -0
  258. package/dist/chunk-T4KS577P.js +58 -0
  259. package/dist/chunk-T4KS577P.js.map +1 -0
  260. package/dist/chunk-TFIOU6UR.js +78 -0
  261. package/dist/chunk-TFIOU6UR.js.map +1 -0
  262. package/dist/chunk-TIZGADU4.js +375 -0
  263. package/dist/chunk-TIZGADU4.js.map +1 -0
  264. package/dist/chunk-TP3MCUXS.js +1 -0
  265. package/dist/chunk-TP3MCUXS.js.map +1 -0
  266. package/dist/{chunk-JTJU56ZV.js → chunk-UOGM62JL.js} +11 -7
  267. package/dist/{chunk-JTJU56ZV.js.map → chunk-UOGM62JL.js.map} +1 -1
  268. package/dist/chunk-USRKPEQN.js +55 -0
  269. package/dist/chunk-USRKPEQN.js.map +1 -0
  270. package/dist/chunk-UTAB3XQI.js +667 -0
  271. package/dist/chunk-UTAB3XQI.js.map +1 -0
  272. package/dist/chunk-V3FFZWF3.js +182 -0
  273. package/dist/chunk-V3FFZWF3.js.map +1 -0
  274. package/dist/chunk-V4OZ7ISA.js +9 -0
  275. package/dist/chunk-V4OZ7ISA.js.map +1 -0
  276. package/dist/chunk-VZ5ZZBNX.js +139 -0
  277. package/dist/chunk-VZ5ZZBNX.js.map +1 -0
  278. package/dist/{chunk-AHLKV6KP.js → chunk-WN6AVBO4.js} +1 -1
  279. package/dist/chunk-WXR5CWSC.js +1 -0
  280. package/dist/chunk-WXR5CWSC.js.map +1 -0
  281. package/dist/chunk-X6WS3XWL.js +36 -0
  282. package/dist/chunk-X6WS3XWL.js.map +1 -0
  283. package/dist/{chunk-Q5BCNYED.js → chunk-XJRNBTIV.js} +7 -4
  284. package/dist/chunk-XQV3XNVT.js +225 -0
  285. package/dist/chunk-XQV3XNVT.js.map +1 -0
  286. package/dist/chunk-XV3DH5GC.js +58 -0
  287. package/dist/chunk-XV3DH5GC.js.map +1 -0
  288. package/dist/chunk-Y7JTHNCU.js +318 -0
  289. package/dist/chunk-Y7JTHNCU.js.map +1 -0
  290. package/dist/chunk-YWRXOPHC.js +43 -0
  291. package/dist/chunk-YWRXOPHC.js.map +1 -0
  292. package/dist/chunk-YZVFIW5D.js +27 -0
  293. package/dist/chunk-YZVFIW5D.js.map +1 -0
  294. package/dist/chunk-ZHC5CD6J.js +33 -0
  295. package/dist/chunk-ZHC5CD6J.js.map +1 -0
  296. package/dist/chunk-ZPJFXRQZ.js +23 -0
  297. package/dist/chunk-ZPJFXRQZ.js.map +1 -0
  298. package/dist/chunk-ZPXOBQDS.js +57 -0
  299. package/dist/chunk-ZPXOBQDS.js.map +1 -0
  300. package/dist/chunk-ZUFS6R7L.js +155 -0
  301. package/dist/chunk-ZUFS6R7L.js.map +1 -0
  302. package/dist/chunk-ZXLCTQUX.js +62 -0
  303. package/dist/chunk-ZXLCTQUX.js.map +1 -0
  304. package/dist/chunk-ZYXMWEL4.js +59 -0
  305. package/dist/chunk-ZYXMWEL4.js.map +1 -0
  306. package/dist/completion/controls.js +11 -0
  307. package/dist/completion/controls.js.map +1 -0
  308. package/dist/completion/documents.js +9 -0
  309. package/dist/completion/documents.js.map +1 -0
  310. package/dist/completion/generate-completion.js +23 -0
  311. package/dist/completion/generate-completion.js.map +1 -0
  312. package/dist/completion/index.js +23 -12
  313. package/dist/completion/json.js +7 -0
  314. package/dist/completion/json.js.map +1 -0
  315. package/dist/completion/message-schema.js +18 -0
  316. package/dist/completion/message-schema.js.map +1 -0
  317. package/dist/completion/provider-output-error.js +12 -0
  318. package/dist/completion/provider-output-error.js.map +1 -0
  319. package/dist/completion/stream-accumulator.js +10 -0
  320. package/dist/completion/stream-accumulator.js.map +1 -0
  321. package/dist/completion/types.js +28 -0
  322. package/dist/completion/types.js.map +1 -0
  323. package/dist/documents/chunk-text.js +7 -0
  324. package/dist/documents/chunk-text.js.map +1 -0
  325. package/dist/documents/index.js +5 -2
  326. package/dist/documents/text-document.js +8 -0
  327. package/dist/documents/text-document.js.map +1 -0
  328. package/dist/embeddings/distance.js +17 -0
  329. package/dist/embeddings/distance.js.map +1 -0
  330. package/dist/embeddings/embed.js +18 -0
  331. package/dist/embeddings/embed.js.map +1 -0
  332. package/dist/embeddings/index.js +11 -6
  333. package/dist/embeddings/types.js +2 -0
  334. package/dist/embeddings/types.js.map +1 -0
  335. package/dist/evals/advanced-metrics.js +46 -0
  336. package/dist/evals/advanced-metrics.js.map +1 -0
  337. package/dist/evals/agent-target.js +10 -0
  338. package/dist/evals/agent-target.js.map +1 -0
  339. package/dist/evals/cli.js +40 -0
  340. package/dist/evals/cli.js.map +1 -0
  341. package/dist/evals/execution.js +15 -0
  342. package/dist/evals/execution.js.map +1 -0
  343. package/dist/evals/format.js +13 -0
  344. package/dist/evals/format.js.map +1 -0
  345. package/dist/evals/index.d.ts +4 -4
  346. package/dist/evals/index.js +87 -2660
  347. package/dist/evals/index.js.map +1 -1
  348. package/dist/evals/judge.js +27 -0
  349. package/dist/evals/judge.js.map +1 -0
  350. package/dist/evals/metric.js +7 -0
  351. package/dist/evals/metric.js.map +1 -0
  352. package/dist/evals/metrics.js +53 -0
  353. package/dist/evals/metrics.js.map +1 -0
  354. package/dist/evals/outcome.js +7 -0
  355. package/dist/evals/outcome.js.map +1 -0
  356. package/dist/evals/reporting.js +11 -0
  357. package/dist/evals/reporting.js.map +1 -0
  358. package/dist/evals/runner.js +29 -0
  359. package/dist/evals/runner.js.map +1 -0
  360. package/dist/evals/selectors.js +18 -0
  361. package/dist/evals/selectors.js.map +1 -0
  362. package/dist/evals/suite.js +11 -0
  363. package/dist/evals/suite.js.map +1 -0
  364. package/dist/evals/types.js +1 -0
  365. package/dist/evals/types.js.map +1 -0
  366. package/dist/extractor/extractor.js +23 -0
  367. package/dist/extractor/extractor.js.map +1 -0
  368. package/dist/extractor/index.js +16 -7
  369. package/dist/guardrails/actions.js +13 -0
  370. package/dist/guardrails/actions.js.map +1 -0
  371. package/dist/guardrails/index.d.ts +3 -4
  372. package/dist/guardrails/index.js +15 -7
  373. package/dist/guardrails/message.js +9 -0
  374. package/dist/guardrails/message.js.map +1 -0
  375. package/dist/guardrails/policy.js +17 -0
  376. package/dist/guardrails/policy.js.map +1 -0
  377. package/dist/guardrails/runtime.js +11 -0
  378. package/dist/guardrails/runtime.js.map +1 -0
  379. package/dist/guardrails/text.js +9 -0
  380. package/dist/guardrails/text.js.map +1 -0
  381. package/dist/guardrails/types.js +1 -0
  382. package/dist/guardrails/types.js.map +1 -0
  383. package/dist/hooks/control.js +17 -0
  384. package/dist/hooks/control.js.map +1 -0
  385. package/dist/hooks/index.js +19 -0
  386. package/dist/hooks/index.js.map +1 -0
  387. package/dist/hooks/types.js +2 -0
  388. package/dist/hooks/types.js.map +1 -0
  389. package/dist/image-generation/generate-image.js +11 -0
  390. package/dist/image-generation/generate-image.js.map +1 -0
  391. package/dist/image-generation/index.js +7 -4
  392. package/dist/image-generation/types.js +2 -0
  393. package/dist/image-generation/types.js.map +1 -0
  394. package/dist/index.d.ts +5 -7
  395. package/dist/index.js +163 -57
  396. package/dist/internal/abort.js +13 -0
  397. package/dist/internal/abort.js.map +1 -0
  398. package/dist/internal/agent-runtime/agent-run.js +81 -0
  399. package/dist/internal/agent-runtime/agent-run.js.map +1 -0
  400. package/dist/internal/agent-runtime/approval-request.js +1 -0
  401. package/dist/internal/agent-runtime/approval-request.js.map +1 -0
  402. package/dist/internal/agent-runtime/approval-requirement.js +9 -0
  403. package/dist/internal/agent-runtime/approval-requirement.js.map +1 -0
  404. package/dist/internal/agent-runtime/continuation-state.js +26 -0
  405. package/dist/internal/agent-runtime/continuation-state.js.map +1 -0
  406. package/dist/internal/agent-runtime/interaction-suspension.js +25 -0
  407. package/dist/internal/agent-runtime/interaction-suspension.js.map +1 -0
  408. package/dist/internal/agent-runtime/memory-scope.js +8 -0
  409. package/dist/internal/agent-runtime/memory-scope.js.map +1 -0
  410. package/dist/internal/agent-runtime/memory.js +24 -0
  411. package/dist/internal/agent-runtime/memory.js.map +1 -0
  412. package/dist/internal/agent-runtime/prepared-tool-call.js +19 -0
  413. package/dist/internal/agent-runtime/prepared-tool-call.js.map +1 -0
  414. package/dist/internal/agent-runtime/retrieval.js +35 -0
  415. package/dist/internal/agent-runtime/retrieval.js.map +1 -0
  416. package/dist/internal/agent-runtime/run-options.js +9 -0
  417. package/dist/internal/agent-runtime/run-options.js.map +1 -0
  418. package/dist/internal/agent-runtime/run-validation.js +9 -0
  419. package/dist/internal/agent-runtime/run-validation.js.map +1 -0
  420. package/dist/internal/agent-runtime/stream-events.js +11 -0
  421. package/dist/internal/agent-runtime/stream-events.js.map +1 -0
  422. package/dist/internal/agent-runtime/structured-output.js +13 -0
  423. package/dist/internal/agent-runtime/structured-output.js.map +1 -0
  424. package/dist/internal/agent-runtime/tool-execution.js +55 -0
  425. package/dist/internal/agent-runtime/tool-execution.js.map +1 -0
  426. package/dist/internal/agent.d.ts +5 -5
  427. package/dist/internal/agent.js +93 -57
  428. package/dist/internal/agent.js.map +1 -1
  429. package/dist/internal/async-queue.js +7 -0
  430. package/dist/internal/async-queue.js.map +1 -0
  431. package/dist/internal/completion-request.js +11 -0
  432. package/dist/internal/completion-request.js.map +1 -0
  433. package/dist/internal/concurrency.js +7 -0
  434. package/dist/internal/concurrency.js.map +1 -0
  435. package/dist/internal/json-object.js +8 -0
  436. package/dist/internal/json-object.js.map +1 -0
  437. package/dist/internal/rag-text.js +7 -0
  438. package/dist/internal/rag-text.js.map +1 -0
  439. package/dist/internal/record.js +7 -0
  440. package/dist/internal/record.js.map +1 -0
  441. package/dist/internal/team-runtime/coordination.js +12 -0
  442. package/dist/internal/team-runtime/coordination.js.map +1 -0
  443. package/dist/internal/team-runtime/member.js +26 -0
  444. package/dist/internal/team-runtime/member.js.map +1 -0
  445. package/dist/internal/team-runtime/policy.js +7 -0
  446. package/dist/internal/team-runtime/policy.js.map +1 -0
  447. package/dist/internal/team-runtime/run.js +95 -0
  448. package/dist/internal/team-runtime/run.js.map +1 -0
  449. package/dist/internal/team-runtime/stream.js +9 -0
  450. package/dist/internal/team-runtime/stream.js.map +1 -0
  451. package/dist/internal/team-runtime/tools.js +17 -0
  452. package/dist/internal/team-runtime/tools.js.map +1 -0
  453. package/dist/internal/type-utils.js +1 -0
  454. package/dist/internal/type-utils.js.map +1 -0
  455. package/dist/internal/vector-search-options.js +9 -0
  456. package/dist/internal/vector-search-options.js.map +1 -0
  457. package/dist/mcp/index.js +3 -1
  458. package/dist/mcp/tool.js +7 -0
  459. package/dist/mcp/tool.js.map +1 -0
  460. package/dist/mcp/types.js +2 -0
  461. package/dist/mcp/types.js.map +1 -0
  462. package/dist/memory/assert.js +11 -0
  463. package/dist/memory/assert.js.map +1 -0
  464. package/dist/memory/compaction.js +26 -0
  465. package/dist/memory/compaction.js.map +1 -0
  466. package/dist/memory/errors.js +9 -0
  467. package/dist/memory/errors.js.map +1 -0
  468. package/dist/memory/index.js +23 -10
  469. package/dist/memory/options.js +10 -0
  470. package/dist/memory/options.js.map +1 -0
  471. package/dist/memory/scope-key.js +7 -0
  472. package/dist/memory/scope-key.js.map +1 -0
  473. package/dist/memory/types.js +2 -0
  474. package/dist/memory/types.js.map +1 -0
  475. package/dist/{types-CRda8x7p.d.ts → middleware-CWjnMbiH.d.ts} +64 -5
  476. package/dist/model-call-options.js +1 -0
  477. package/dist/model-call-options.js.map +1 -0
  478. package/dist/model-listing/errors.js +7 -0
  479. package/dist/model-listing/errors.js.map +1 -0
  480. package/dist/model-listing/index.js +4 -13
  481. package/dist/model-listing/index.js.map +1 -1
  482. package/dist/model-listing/types.js +2 -0
  483. package/dist/model-listing/types.js.map +1 -0
  484. package/dist/observability/group.js +30 -0
  485. package/dist/observability/group.js.map +1 -0
  486. package/dist/observability/index.d.ts +4 -6
  487. package/dist/observability/index.js +16 -8
  488. package/dist/observability/snapshot.js +7 -0
  489. package/dist/observability/snapshot.js.map +1 -0
  490. package/dist/observability/types.js +1 -0
  491. package/dist/observability/types.js.map +1 -0
  492. package/dist/pipeline/errors.js +9 -0
  493. package/dist/pipeline/errors.js.map +1 -0
  494. package/dist/pipeline/graph.js +21 -0
  495. package/dist/pipeline/graph.js.map +1 -0
  496. package/dist/pipeline/index.d.ts +4 -6
  497. package/dist/pipeline/index.js +27 -805
  498. package/dist/pipeline/index.js.map +1 -1
  499. package/dist/pipeline/observability.js +15 -0
  500. package/dist/pipeline/observability.js.map +1 -0
  501. package/dist/pipeline/pipeline.js +30 -0
  502. package/dist/pipeline/pipeline.js.map +1 -0
  503. package/dist/pipeline/runtime.js +17 -0
  504. package/dist/pipeline/runtime.js.map +1 -0
  505. package/dist/pipeline/types.js +1 -0
  506. package/dist/pipeline/types.js.map +1 -0
  507. package/dist/retry.js +20 -0
  508. package/dist/retry.js.map +1 -0
  509. package/dist/schema/index.js +1 -0
  510. package/dist/schema/index.js.map +1 -0
  511. package/dist/schema/zod-schema.js +7 -0
  512. package/dist/schema/zod-schema.js.map +1 -0
  513. package/dist/skills/index.js +41 -12
  514. package/dist/skills/instructions.js +7 -0
  515. package/dist/skills/instructions.js.map +1 -0
  516. package/dist/skills/load.js +39 -0
  517. package/dist/skills/load.js.map +1 -0
  518. package/dist/skills/local.js +9 -0
  519. package/dist/skills/local.js.map +1 -0
  520. package/dist/skills/tools.js +37 -0
  521. package/dist/skills/tools.js.map +1 -0
  522. package/dist/skills/types.js +7 -0
  523. package/dist/skills/types.js.map +1 -0
  524. package/dist/speech-generation/generate-speech.js +11 -0
  525. package/dist/speech-generation/generate-speech.js.map +1 -0
  526. package/dist/speech-generation/index.js +7 -4
  527. package/dist/speech-generation/types.js +2 -0
  528. package/dist/speech-generation/types.js.map +1 -0
  529. package/dist/streaming/index.js +4 -37
  530. package/dist/streaming/index.js.map +1 -1
  531. package/dist/streaming/readable-stream.js +8 -0
  532. package/dist/streaming/readable-stream.js.map +1 -0
  533. package/dist/{text-CmjXxakS.d.ts → text-GbW4WYMg.d.ts} +1 -1
  534. package/dist/tool/create-tool.js +14 -0
  535. package/dist/tool/create-tool.js.map +1 -0
  536. package/dist/tool/dynamic-tools.js +35 -0
  537. package/dist/tool/dynamic-tools.js.map +1 -0
  538. package/dist/tool/errors.js +11 -0
  539. package/dist/tool/errors.js.map +1 -0
  540. package/dist/tool/index.d.ts +3 -2
  541. package/dist/tool/index.js +41 -15
  542. package/dist/tool/middleware.js +7 -0
  543. package/dist/tool/middleware.js.map +1 -0
  544. package/dist/tool/question-tool.js +17 -0
  545. package/dist/tool/question-tool.js.map +1 -0
  546. package/dist/tool/skill-tool-marker.js +9 -0
  547. package/dist/tool/skill-tool-marker.js.map +1 -0
  548. package/dist/tool/think-tool.js +15 -0
  549. package/dist/tool/think-tool.js.map +1 -0
  550. package/dist/tool/tool.js +17 -0
  551. package/dist/tool/tool.js.map +1 -0
  552. package/dist/transcription/index.js +7 -4
  553. package/dist/transcription/transcribe.js +11 -0
  554. package/dist/transcription/transcribe.js.map +1 -0
  555. package/dist/transcription/types.js +2 -0
  556. package/dist/transcription/types.js.map +1 -0
  557. package/dist/{types-h0EL6Xn0.d.ts → types-Bqw0AuFl.d.ts} +6 -2
  558. package/dist/vector-store/filter.js +9 -0
  559. package/dist/vector-store/filter.js.map +1 -0
  560. package/dist/vector-store/index.js +31 -11
  561. package/dist/vector-store/ingest.js +19 -0
  562. package/dist/vector-store/ingest.js.map +1 -0
  563. package/dist/vector-store/lsh.js +7 -0
  564. package/dist/vector-store/lsh.js.map +1 -0
  565. package/dist/vector-store/retrieve.js +15 -0
  566. package/dist/vector-store/retrieve.js.map +1 -0
  567. package/dist/vector-store/types.js +1 -0
  568. package/dist/vector-store/types.js.map +1 -0
  569. package/package.json +2 -2
  570. package/dist/chunk-2QZJTG2E.js.map +0 -1
  571. package/dist/chunk-3RWESPUG.js.map +0 -1
  572. package/dist/chunk-4UQALF5Y.js.map +0 -1
  573. package/dist/chunk-AZB6N7P4.js +0 -320
  574. package/dist/chunk-AZB6N7P4.js.map +0 -1
  575. package/dist/chunk-JLJMVRRE.js.map +0 -1
  576. package/dist/chunk-K5L7R7XM.js.map +0 -1
  577. package/dist/chunk-OI3LSMJG.js +0 -1545
  578. package/dist/chunk-OI3LSMJG.js.map +0 -1
  579. package/dist/chunk-QGX73TSQ.js.map +0 -1
  580. package/dist/chunk-XC3LVC4K.js +0 -753
  581. package/dist/chunk-XC3LVC4K.js.map +0 -1
  582. package/dist/chunk-XEVOC433.js.map +0 -1
  583. package/dist/chunk-XSV5C4R5.js +0 -400
  584. package/dist/chunk-XSV5C4R5.js.map +0 -1
  585. package/dist/chunk-XU54PLSD.js +0 -4786
  586. package/dist/chunk-XU54PLSD.js.map +0 -1
  587. package/dist/middleware-mY_lpjDp.d.ts +0 -59
  588. package/dist/type-utils-CtHVDRn_.d.ts +0 -6
  589. /package/dist/{chunk-YK4WAAS4.js.map → chunk-2NLINXRF.js.map} +0 -0
  590. /package/dist/{chunk-SPD4XVR7.js.map → chunk-2XSMGVBG.js.map} +0 -0
  591. /package/dist/{chunk-3XQGVDU5.js.map → chunk-4C7AXYOM.js.map} +0 -0
  592. /package/dist/{chunk-IZNOP6JG.js.map → chunk-4FIVU53H.js.map} +0 -0
  593. /package/dist/{chunk-7JLAIN6E.js.map → chunk-4ONUNWGC.js.map} +0 -0
  594. /package/dist/{chunk-KSKST3KP.js.map → chunk-H3H74RWJ.js.map} +0 -0
  595. /package/dist/{chunk-OJBFDBLG.js.map → chunk-LBYJPMHC.js.map} +0 -0
  596. /package/dist/{chunk-J6LVLV6P.js.map → chunk-PLDJCCVL.js.map} +0 -0
  597. /package/dist/{chunk-AHLKV6KP.js.map → chunk-WN6AVBO4.js.map} +0 -0
  598. /package/dist/{chunk-Q5BCNYED.js.map → chunk-XJRNBTIV.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/agent-runtime/agent-run.ts"],"sourcesContent":["import type { Agent } from \"../../agent/agent\";\nimport {\n AgentRunCancelledError,\n AgentStreamClosedError,\n AgentStructuredOutputError,\n MaxTurnsError,\n} from \"../../agent/errors\";\nimport {\n type AgentInteractionResponse,\n assertAgentInteractionResponse,\n parseAgentContinuation,\n parseAgentInteractionResponse,\n} from \"../../agent/interactions\";\nimport {\n type AgentFinishEvent,\n type AgentLifecycle,\n composeAgentLifecycle,\n lifecycleSnapshot,\n} from \"../../agent/lifecycle\";\nimport { getAgentProviderOutputSchema } from \"../../agent/output-schema\";\nimport type {\n AgentBlockedOutcome,\n AgentInput,\n AgentInteractionOutcome,\n AgentOutcome,\n AgentResponse,\n AgentRunOptions,\n AgentRunSettings,\n AgentSteerInput,\n AgentSteerReceipt,\n AgentStreamEvent,\n} from \"../../agent/run-types\";\nimport { getAgentToolState } from \"../../agent/tool-state\";\nimport { isStreamingCompletionModel } from \"../../completion/generate-completion\";\nimport {\n assertCompletionRequestSupported,\n type CompletionModelControls,\n type CompletionModelControlsOf,\n type CompletionFinishReason,\n type CompletionModel,\n type CompletionRequest,\n type CompletionResponse,\n type CompletionSource,\n getAssistantGenerationMetadata,\n isJsonValue,\n type JsonObject,\n type Message as MessageType,\n mergeCompletionControlValues,\n type ProviderToolCall,\n parseMessage,\n parseMessages,\n type ToolCallPart,\n type ToolInteractionResponsePart,\n type ToolResultPart,\n textFromAssistantContent,\n Usage,\n} from \"../../completion/index\";\nimport { assertCompletionResponseIntegrity } from \"../../completion/provider-output-error\";\nimport { CompletionStreamAccumulator } from \"../../completion/stream-accumulator\";\nimport {\n appendGuardrailPolicies,\n type GuardrailDecisionRecord,\n type GuardrailPolicy,\n type GuardrailRunContext,\n hasEnforcedOutputGuardrails,\n runInputGuardrails,\n runOutputGuardrails,\n} from \"../../guardrails\";\nimport type { AgentHook } from \"../../hooks\";\nimport { runControl } from \"../../hooks\";\nimport { MemoryCompactionError } from \"../../memory/errors\";\nimport type { MemoryCompactionInfo, MemoryScope } from \"../../memory/types\";\nimport type { ModelCallOptions } from \"../../model-call-options\";\nimport {\n type ActiveAgentRunObservers,\n type ActiveGenerationObservers,\n startAgentRunObservers,\n} from \"../../observability/group\";\nimport type {\n AgentGenerationEndArgs,\n AgentGenerationModelInfo,\n AgentGenerationStartArgs,\n AgentRunEndArgs,\n AgentTraceOptions,\n} from \"../../observability/types\";\nimport {\n completionProviderOutputErrorUsage,\n type ResolvedRetryOptions,\n resolveRetryOptions,\n retryDelayMs,\n retryErrorAttributes,\n retryOptionsForFailure,\n waitForRetry,\n} from \"../../retry\";\nimport type { AgentMiddleware } from \"../../tool/middleware\";\nimport { isQuestionTool } from \"../../tool/question-tool\";\nimport { abortError, throwIfAborted } from \"../abort\";\nimport { createAsyncQueue } from \"../async-queue\";\nimport { createCompletionRequest } from \"../completion-request\";\nimport { assertJsonObject } from \"../json-object\";\nimport { extractRagText } from \"../rag-text\";\nimport { toolMayRequireApproval } from \"./approval-requirement\";\nimport {\n type AgentContinuationState,\n parseContinuationState,\n type QueuedSteering,\n questionResult,\n serializeContinuationState,\n} from \"./continuation-state\";\nimport {\n AgentInteractionSignal,\n approvalInteraction,\n ToolExecutionSuspension,\n} from \"./interaction-suspension\";\nimport { AgentRunMemory, type MemoryPreparation } from \"./memory\";\nimport { normalizeMemoryScope } from \"./memory-scope\";\nimport { fetchContextDocuments, fetchToolDefinitions } from \"./retrieval\";\nimport { getInternalAgentRunOptions, type InternalAgentRunOptions } from \"./run-options\";\nimport { assertNonnegativeSafeInteger, assertPositiveSafeInteger } from \"./run-validation\";\nimport { addTurn, addTurnToToolCallDelta, isGenerationDeltaEvent } from \"./stream-events\";\nimport {\n normalizeStructuredOutput,\n STRUCTURED_OUTPUT_RETRY_PROMPT,\n STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT,\n structuredOutputRepairPreview,\n} from \"./structured-output\";\nimport {\n type AgentToolEventPayload,\n ToolCallExecutor,\n type ToolExecutionEventPayload,\n type ToolExecutionObservation,\n type ToolResultEventPayload,\n} from \"./tool-execution\";\n\ntype AgentRunCreateOptions<\n Output,\n RawResponse,\n Controls extends CompletionModelControls,\n> = AgentRunSettings<Output, RawResponse, Controls> & {\n memoryScope?: MemoryScope | undefined;\n continuationState?: AgentContinuationState | undefined;\n interactionResponse?: AgentInteractionResponse | undefined;\n sourceRunId?: string | undefined;\n interactionId?: string | undefined;\n};\n\ntype StreamingCompletionState = {\n response: CompletionResponse | undefined;\n firstDeltaMs: number | undefined;\n emittedToolCallIds: Set<string>;\n providerErrorUsage: Usage;\n};\n\ntype StructuredOutputRetryRequest = Readonly<{\n request: CompletionRequest;\n previousResponse: \"omitted\" | \"preview\";\n includedOutputLength: number;\n}>;\n\nasync function settleFailureCleanup(\n operations: Array<() => void | Promise<void> | undefined>,\n): Promise<void> {\n for (const operation of operations) {\n try {\n await operation();\n } catch {\n // Cleanup failures must not replace the primary run failure.\n }\n }\n}\n\ntype RawResponseOf<Model> =\n Model extends CompletionModel<infer RawResponse> ? RawResponse : unknown;\n\ntype AgentTerminalResult<Output> = AgentOutcome<Output>;\n\nexport class AgentRun<Output = string, M extends CompletionModel = CompletionModel> {\n private chatHistory: MessageType[];\n private maxTurnCount: number;\n private activeHook: AgentHook | undefined;\n private readonly activeLifecycle: AgentLifecycle<Output, unknown> | undefined;\n private guardrailPolicies: GuardrailPolicy[];\n private guardrailDecisions: GuardrailDecisionRecord[] = [];\n private readonly concurrency: number;\n private traceOptions: AgentTraceOptions | undefined;\n private generationPromptRef: AgentTraceOptions[\"promptRef\"];\n private completionRetryOptions: ResolvedRetryOptions | undefined;\n private readonly requestMiddlewares: AgentMiddleware[];\n private readonly controls: Readonly<Record<string, string>> | undefined;\n private readonly steeringMessages: QueuedSteering[] = [];\n private runState: \"idle\" | \"running\" | \"closing\" | \"completed\" | \"errored\" | \"cancelled\" = \"idle\";\n private readonly memoryRecorder: AgentRunMemory;\n private readonly memoryScope: MemoryScope | undefined;\n private readonly onInternalFailure: InternalAgentRunOptions[\"onFailure\"];\n private readonly beforeFinish: InternalAgentRunOptions[\"beforeFinish\"];\n private readonly onSteeringApplied: InternalAgentRunOptions[\"onSteeringApplied\"];\n private readonly onInternalMemoryCompaction: InternalAgentRunOptions[\"onMemoryCompaction\"];\n private memoryCompaction: MemoryCompactionInfo | undefined;\n private readonly requestedRunId: string | undefined;\n private readonly continuationState: AgentContinuationState | undefined;\n private readonly interactionResponse: AgentInteractionResponse | undefined;\n private readonly resumedFrom: { runId: string; interactionId: string } | undefined;\n private currentMessages: MessageType[] = [];\n private cancellationError: AgentRunCancelledError | undefined;\n private activeGeneration: { turn: number; observers: ActiveGenerationObservers } | undefined;\n private validatedStructuredOutput: { text: string; output: Output } | undefined;\n private failedCompletionUsage = Usage.empty();\n private readonly abortController = new AbortController();\n private removeExternalAbortListener: (() => void) | undefined;\n\n private constructor(\n private readonly agent: Agent<Output, M>,\n private promptMessage: MessageType,\n initialHistory: MessageType[] = [],\n options: AgentRunCreateOptions<Output, RawResponseOf<M>, CompletionModelControlsOf<M>> = {},\n ) {\n this.chatHistory = initialHistory;\n this.maxTurnCount = assertNonnegativeSafeInteger(\n options.maxTurns ?? agent.defaultMaxTurns ?? 0,\n \"maxTurns\",\n );\n const internalOptions = getInternalAgentRunOptions(options);\n this.activeHook = internalOptions?.hook;\n this.onInternalFailure = internalOptions?.onFailure;\n this.beforeFinish = internalOptions?.beforeFinish;\n this.onSteeringApplied = internalOptions?.onSteeringApplied;\n this.onInternalMemoryCompaction = internalOptions?.onMemoryCompaction;\n this.requestedRunId = normalizeRequestedRunId(internalOptions?.runId);\n this.activeLifecycle = composeAgentLifecycle(agent.lifecycle, options.lifecycle) as\n | AgentLifecycle<Output, unknown>\n | undefined;\n this.guardrailPolicies =\n options.guardrails === undefined\n ? [...agent.guardrails]\n : appendGuardrailPolicies([...agent.guardrails], options.guardrails);\n const configuredConcurrency = assertPositiveSafeInteger(\n options.toolConcurrency ?? 1,\n \"toolConcurrency\",\n );\n this.concurrency =\n this.activeHook !== undefined ||\n agent.tools.some(\n (tool) => toolMayRequireApproval(tool.requiresApproval) || isQuestionTool(tool),\n )\n ? 1\n : configuredConcurrency;\n this.traceOptions = options.trace;\n const retrySetting = options.retries === undefined ? agent.retries : options.retries;\n this.completionRetryOptions =\n retrySetting === undefined || retrySetting === false\n ? undefined\n : resolveRetryOptions(retrySetting);\n this.requestMiddlewares = [...(options.middlewares ?? [])];\n this.controls = mergeCompletionControlValues(agent.controls, options.controls);\n this.memoryScope = options.memoryScope;\n this.memoryRecorder = new AgentRunMemory(agent, options.memoryScope, initialHistory);\n this.continuationState = options.continuationState;\n this.interactionResponse = options.interactionResponse;\n if (options.continuationState !== undefined) {\n this.steeringMessages.push(\n ...options.continuationState.steering.map((entry) => ({\n id: entry.id,\n messages: [...entry.messages],\n })),\n );\n }\n this.resumedFrom =\n options.sourceRunId === undefined || options.interactionId === undefined\n ? undefined\n : { runId: options.sourceRunId, interactionId: options.interactionId };\n this.linkExternalAbortSignal(options.abortSignal);\n }\n\n static fromAgent<Output, M extends CompletionModel>(\n agent: Agent<Output, M>,\n options: AgentRunOptions<Output, RawResponseOf<M>, CompletionModelControlsOf<M>>,\n ): AgentRun<Output, M> {\n const normalized = normalizeAgentInput(agent.id, options);\n if (normalized.scope !== undefined && agent.memory === undefined) {\n throw new TypeError(`Agent \"${agent.id}\" cannot use a session without a memory store.`);\n }\n return new AgentRun(agent, normalized.prompt, normalized.history, {\n ...options,\n memoryScope: normalized.scope,\n continuationState: normalized.continuationState,\n interactionResponse: normalized.interactionResponse,\n sourceRunId: normalized.sourceRunId,\n interactionId: normalized.interactionId,\n });\n }\n\n steer(input: AgentSteerInput): AgentSteerReceipt {\n if (this.isTerminal() || this.cancellationError !== undefined) {\n throw new AgentStreamClosedError();\n }\n const receipt: AgentSteerReceipt = Object.freeze({\n id: globalThis.crypto.randomUUID(),\n status: \"queued\",\n });\n this.steeringMessages.push({ id: receipt.id, messages: normalizeSteeringInput(input) });\n return receipt;\n }\n\n cancel(reason: string): AgentRunCancelledError | undefined {\n if (this.isTerminal() || this.cancellationError !== undefined) {\n return this.cancellationError;\n }\n const messages =\n this.currentMessages.length === 0 ? [this.promptMessage] : [...this.currentMessages];\n const error = new AgentRunCancelledError([...this.chatHistory, ...messages], reason);\n this.setCancellationError(error);\n return error;\n }\n\n private setCancellationError(error: AgentRunCancelledError): void {\n this.cancellationError = error;\n if (!this.abortController.signal.aborted) this.abortController.abort(error);\n }\n\n async generate(): Promise<AgentTerminalResult<Output>> {\n this.startRun();\n const runId = this.requestedRunId ?? globalThis.crypto.randomUUID();\n let usage = Usage.empty();\n let currentTurns = 0;\n let lastPrompt = this.promptMessage;\n let newMessages: MessageType[] = [this.promptMessage];\n let runObservers: ActiveAgentRunObservers | undefined;\n let pendingTurnMessages: MessageType[] = [];\n\n try {\n this.throwIfCancelled();\n const memoryPreparation =\n this.continuationState === undefined\n ? await this.memoryRecorder.prepareHistory(\n runId,\n newMessages,\n this.abortController.signal,\n )\n : undefined;\n if (memoryPreparation !== undefined) {\n this.chatHistory = memoryPreparation.history;\n usage = Usage.add(usage, memoryPreparation.usage);\n this.memoryCompaction = memoryPreparation.compaction;\n await this.notifyInternalMemoryCompaction(memoryPreparation.compaction);\n }\n runObservers = await this.startRunObservers(runId);\n if (memoryPreparation !== undefined) {\n await this.recordMemoryCompaction(memoryPreparation, runObservers);\n }\n this.throwIfCancelled();\n await this.activeLifecycle?.onStart?.({\n runId,\n input: lifecycleSnapshot(this.promptMessage),\n history: lifecycleSnapshot(this.chatHistory),\n maxTurns: this.maxTurnCount,\n });\n if (this.continuationState === undefined) {\n const inputResult = await runInputGuardrails(this.guardrailPolicies, {\n prompt: this.promptMessage,\n history: this.chatHistory,\n inputText: textFromMessage(this.promptMessage),\n run: this.guardrailRunContext(runId),\n });\n for (const decision of inputResult.decisions) {\n await this.recordGuardrailDecision(decision, runObservers);\n }\n this.promptMessage = inputResult.prompt;\n if (inputResult.blocked) {\n const text = inputResult.message ?? \"The request was blocked by a guardrail.\";\n const result: AgentBlockedOutcome = {\n type: \"blocked\",\n stage: \"input\",\n ...blockedOutcomeDetails(\n this.guardrailDecisions,\n \"The request was blocked by a guardrail.\",\n ),\n runId,\n text,\n usage,\n messages: [this.promptMessage, { role: \"assistant\", content: text }],\n trace: runObservers.trace,\n guardrails: [...this.guardrailDecisions],\n ...this.memoryCompactionResult(),\n };\n if (this.resumedFrom !== undefined) result.resumedFrom = this.resumedFrom;\n this.runState = \"closing\";\n await this.runLifecycleFinish(result);\n await runObservers.end(observerRunEnd(result));\n this.runState = \"completed\";\n this.disposeAbortLink();\n return result;\n }\n }\n\n newMessages = [this.promptMessage];\n await this.memoryRecorder.commitAcceptedInput(runId, newMessages);\n pendingTurnMessages = this.memoryRecorder.pendingTurnMessages(newMessages);\n await this.runRunStartHook(newMessages);\n if (this.continuationState !== undefined) {\n const interactionAttributes: JsonObject = {};\n if (this.resumedFrom?.runId !== undefined) {\n interactionAttributes.sourceRunId = this.resumedFrom.runId;\n }\n if (this.resumedFrom?.interactionId !== undefined) {\n interactionAttributes.interactionId = this.resumedFrom.interactionId;\n }\n if (this.interactionResponse?.type !== undefined) {\n interactionAttributes.interactionType = this.interactionResponse.type;\n }\n await runObservers.event({\n name: \"agent.interaction_response\",\n attributes: interactionAttributes,\n });\n try {\n const toolResults = await this.resolveContinuationTools(\n runId,\n newMessages,\n undefined,\n undefined,\n {\n turn: 1,\n runObservers,\n },\n );\n const toolMessage: MessageType = { role: \"tool\", content: toolResults };\n newMessages.push(toolMessage);\n await this.memoryRecorder.commitMessages(runId, 1, [toolMessage], pendingTurnMessages);\n await this.drainSteeringMessages(runId, 1, newMessages, pendingTurnMessages);\n await this.memoryRecorder.commitCompletedTurn(runId, 1, pendingTurnMessages);\n } catch (error) {\n if (error instanceof ToolExecutionSuspension) {\n return this.finishSuspension({\n runId,\n turn: 1,\n usage,\n newMessages,\n pendingTurnMessages,\n runObservers,\n suspension: error,\n uncommittedMessages: [],\n });\n }\n throw error;\n }\n }\n while (currentTurns <= this.maxTurnCount) {\n const prompt = newMessages.at(-1);\n if (prompt === undefined) {\n throw new Error(\"AgentRun requires at least one message\");\n }\n\n lastPrompt = prompt;\n currentTurns += 1;\n\n const historyForRequest = [...this.chatHistory, ...newMessages.slice(0, -1)];\n await this.runTurnStartHook(currentTurns, prompt, historyForRequest, newMessages);\n await this.runCompletionCallHook(prompt, historyForRequest, newMessages);\n\n const request = await this.createTurnRequest(prompt, historyForRequest, currentTurns);\n\n let response: CompletionResponse;\n try {\n response = await this.runCompletion(request, currentTurns, runObservers);\n } catch (error) {\n await settleFailureCleanup([\n () => this.runCompletionErrorHook(prompt, error, newMessages),\n ]);\n throw error;\n }\n response = await this.runCompletionResponseMiddlewares(request, response, currentTurns);\n try {\n assertCompletionResponseIntegrity({ response });\n } catch (error) {\n const providerOutputUsage = completionProviderOutputErrorUsage(error);\n if (providerOutputUsage !== undefined) usage = Usage.add(usage, providerOutputUsage);\n throw error;\n }\n usage = Usage.add(usage, response.usage);\n this.updateRunProgress(newMessages);\n await this.runCompletionResponseHook(prompt, response, newMessages);\n await this.runTurnEndHook(currentTurns, response, newMessages);\n await this.activeLifecycle?.onStepFinish?.({\n runId,\n step: currentTurns,\n response: lifecycleSnapshot(response),\n usage: lifecycleSnapshot(usage),\n });\n\n const toolCalls = response.choice.filter(\n (item): item is ToolCallPart => item.type === \"tool-call\",\n );\n const assistantMessage = this.generatedAssistantMessage(response, request);\n newMessages.push(assistantMessage);\n if (toolCalls.length === 0) {\n await this.beforeFinish?.();\n if (this.steeringMessages.length > 0) {\n await this.memoryRecorder.commitMessages(\n runId,\n currentTurns,\n [assistantMessage],\n pendingTurnMessages,\n );\n }\n const appliedSteering = await this.drainSteeringMessages(\n runId,\n currentTurns,\n newMessages,\n pendingTurnMessages,\n { closeWhenEmpty: true },\n );\n if (appliedSteering.length > 0) {\n for (const receipt of appliedSteering) {\n await runObservers.event({\n name: \"agent.steering_applied\",\n attributes: { id: receipt.id, turn: currentTurns },\n });\n }\n await this.memoryRecorder.commitCompletedTurn(runId, currentTurns, pendingTurnMessages);\n continue;\n }\n\n const guardedOutput = await this.runOutputGuardrailsForResponse(\n runId,\n usage,\n response,\n newMessages,\n runObservers,\n );\n response = guardedOutput.response;\n const finalAssistantMessage = this.generatedAssistantMessage(response, request);\n newMessages[newMessages.length - 1] = finalAssistantMessage;\n await this.memoryRecorder.commitMessages(\n runId,\n currentTurns,\n [finalAssistantMessage],\n pendingTurnMessages,\n );\n const result = this.createTerminalResult(\n runId,\n guardedOutput.text,\n guardedOutput.blocked,\n usage,\n newMessages,\n runObservers,\n );\n if (result.type === \"response\") {\n await this.runRunEndHook(result, newMessages);\n }\n await this.memoryRecorder.commitCompletedRun(\n runId,\n currentTurns,\n newMessages,\n pendingTurnMessages,\n );\n await this.runLifecycleFinish(result);\n await runObservers.end(observerRunEnd(result));\n this.runState = \"completed\";\n this.disposeAbortLink();\n return result;\n }\n\n this.updateRunProgress(newMessages);\n let toolResults: ToolResultPart[];\n try {\n toolResults = await this.executeToolCalls(\n runId,\n toolCalls,\n newMessages,\n undefined,\n undefined,\n {\n turn: currentTurns,\n runObservers,\n toolDefinitions: request.tools,\n },\n );\n } catch (error) {\n if (error instanceof ToolExecutionSuspension) {\n return this.finishSuspension({\n runId,\n turn: currentTurns,\n usage,\n newMessages,\n pendingTurnMessages,\n runObservers,\n suspension: error,\n uncommittedMessages: [assistantMessage],\n });\n }\n throw error;\n }\n const toolMessage: MessageType = { role: \"tool\", content: toolResults };\n newMessages.push(toolMessage);\n await this.memoryRecorder.commitMessages(\n runId,\n currentTurns,\n [assistantMessage, toolMessage],\n pendingTurnMessages,\n );\n await this.drainSteeringMessages(runId, currentTurns, newMessages, pendingTurnMessages);\n await this.memoryRecorder.commitCompletedTurn(runId, currentTurns, pendingTurnMessages);\n }\n\n throw new MaxTurnsError(this.maxTurnCount, [...this.chatHistory, ...newMessages], lastPrompt);\n } catch (error) {\n if (error instanceof MemoryCompactionError && error.usage !== undefined) {\n usage = Usage.add(usage, error.usage);\n }\n const failedCompletionUsage = this.takeFailedCompletionUsage();\n if (error instanceof AgentStructuredOutputError) {\n usage = Usage.add(usage, error.usage);\n } else {\n usage = Usage.add(usage, failedCompletionUsage);\n }\n this.runState = \"closing\";\n const runError = this.normalizeRunError(error);\n const reportedError = await this.reportRunFailure(\n runError,\n runId,\n usage,\n newMessages,\n runObservers,\n );\n this.runState = reportedError instanceof AgentRunCancelledError ? \"cancelled\" : \"errored\";\n this.disposeAbortLink();\n throw reportedError;\n }\n }\n\n async *events(): AsyncIterable<AgentStreamEvent<Output, RawResponseOf<M>>> {\n this.startRun();\n const runId = this.requestedRunId ?? globalThis.crypto.randomUUID();\n let usage = Usage.empty();\n let currentTurns = 0;\n let lastPrompt = this.promptMessage;\n let newMessages: MessageType[] = [this.promptMessage];\n const bufferOutputDeltas = hasEnforcedOutputGuardrails(this.guardrailPolicies);\n let runObservers: ActiveAgentRunObservers | undefined;\n let pendingTurnMessages: MessageType[] = [];\n\n try {\n this.throwIfCancelled();\n const memoryPreparation =\n this.continuationState === undefined\n ? await this.memoryRecorder.prepareHistory(\n runId,\n newMessages,\n this.abortController.signal,\n )\n : undefined;\n if (memoryPreparation !== undefined) {\n this.chatHistory = memoryPreparation.history;\n usage = Usage.add(usage, memoryPreparation.usage);\n this.memoryCompaction = memoryPreparation.compaction;\n await this.notifyInternalMemoryCompaction(memoryPreparation.compaction);\n }\n runObservers = await this.startRunObservers(runId);\n if (memoryPreparation !== undefined) {\n await this.recordMemoryCompaction(memoryPreparation, runObservers);\n }\n if (memoryPreparation?.compaction !== undefined) {\n yield { type: \"memory_compaction\", ...memoryPreparation.compaction };\n }\n this.throwIfCancelled();\n await this.activeLifecycle?.onStart?.({\n runId,\n input: lifecycleSnapshot(this.promptMessage),\n history: lifecycleSnapshot(this.chatHistory),\n maxTurns: this.maxTurnCount,\n });\n if (this.continuationState === undefined) {\n const inputResult = await runInputGuardrails(this.guardrailPolicies, {\n prompt: this.promptMessage,\n history: this.chatHistory,\n inputText: textFromMessage(this.promptMessage),\n run: this.guardrailRunContext(runId),\n });\n for (const decision of inputResult.decisions) {\n await this.recordGuardrailDecision(decision, runObservers);\n yield { type: \"guardrail_decision\", decision };\n }\n this.promptMessage = inputResult.prompt;\n if (inputResult.blocked) {\n const text = inputResult.message ?? \"The request was blocked by a guardrail.\";\n const result: AgentBlockedOutcome = {\n type: \"blocked\",\n stage: \"input\",\n ...blockedOutcomeDetails(\n this.guardrailDecisions,\n \"The request was blocked by a guardrail.\",\n ),\n runId,\n text,\n usage,\n messages: [this.promptMessage, { role: \"assistant\", content: text }],\n trace: runObservers.trace,\n guardrails: [...this.guardrailDecisions],\n ...this.memoryCompactionResult(),\n };\n if (this.resumedFrom !== undefined) result.resumedFrom = this.resumedFrom;\n this.runState = \"closing\";\n await this.runLifecycleFinish(result);\n await runObservers.end(observerRunEnd(result));\n this.runState = \"completed\";\n this.disposeAbortLink();\n yield result;\n return;\n }\n }\n\n newMessages = [this.promptMessage];\n await this.memoryRecorder.commitAcceptedInput(runId, newMessages);\n pendingTurnMessages = this.memoryRecorder.pendingTurnMessages(newMessages);\n await this.runRunStartHook(newMessages);\n if (this.continuationState !== undefined) {\n const responsePart =\n this.promptMessage.role === \"tool\" ? this.promptMessage.content[0] : undefined;\n if (responsePart === undefined || responsePart.type === \"tool-result\") {\n throw new TypeError(\"Agent continuation response message is invalid.\");\n }\n yield {\n type: \"interaction_response\",\n response: responsePart,\n sourceRunId: this.resumedFrom?.runId ?? this.continuationState.kind,\n };\n try {\n const execution = this.executeContinuationToolStream(runId, newMessages, {\n turn: 1,\n runObservers,\n });\n for await (const event of execution.events) {\n yield { turn: 1, ...event };\n }\n const toolResults = await execution.results;\n const toolMessage: MessageType = { role: \"tool\", content: toolResults };\n newMessages.push(toolMessage);\n await this.memoryRecorder.commitMessages(runId, 1, [toolMessage], pendingTurnMessages);\n for (const receipt of await this.drainSteeringMessages(\n runId,\n 1,\n newMessages,\n pendingTurnMessages,\n )) {\n yield { type: \"steering_applied\", id: receipt.id, turn: 1 };\n }\n await this.memoryRecorder.commitCompletedTurn(runId, 1, pendingTurnMessages);\n } catch (error) {\n if (error instanceof ToolExecutionSuspension) {\n const result = await this.finishSuspension({\n runId,\n turn: 1,\n usage,\n newMessages,\n pendingTurnMessages,\n runObservers,\n suspension: error,\n uncommittedMessages: [],\n });\n yield result;\n return;\n }\n throw error;\n }\n }\n while (currentTurns <= this.maxTurnCount) {\n const prompt = newMessages.at(-1);\n if (prompt === undefined) {\n throw new Error(\"AgentRun requires at least one message\");\n }\n\n lastPrompt = prompt;\n currentTurns += 1;\n\n const historyForRequest = [...this.chatHistory, ...newMessages.slice(0, -1)];\n yield {\n type: \"turn_start\",\n turn: currentTurns,\n prompt,\n history: historyForRequest,\n };\n await this.runTurnStartHook(currentTurns, prompt, historyForRequest, newMessages);\n await this.runCompletionCallHook(prompt, historyForRequest, newMessages);\n\n const request = await this.createTurnRequest(prompt, historyForRequest, currentTurns);\n\n assertCompletionRequestSupported(this.agent.model, request, { streaming: true });\n const providerRequest = this.providerTraceRequest(request, { stream: true });\n const generationStartArgs = this.generationStartArgs(\n currentTurns,\n request,\n providerRequest,\n );\n const generationObservers = await runObservers.startGeneration(generationStartArgs);\n this.activeGeneration = { turn: currentTurns, observers: generationObservers };\n const generationStartedAt = Date.now();\n yield {\n type: \"generation_start\",\n turn: currentTurns,\n request,\n modelInfo: generationStartArgs.modelInfo,\n promptRef: generationStartArgs.promptRef,\n };\n const bufferResponseEvents =\n this.shouldBufferStreamResponseEvents() || this.agent.outputSchema !== undefined;\n const completionState: StreamingCompletionState = {\n response: undefined,\n firstDeltaMs: undefined,\n emittedToolCallIds: new Set(),\n providerErrorUsage: Usage.empty(),\n };\n let response: CompletionResponse;\n try {\n try {\n for await (const event of this.streamCompletion({\n request,\n turn: currentTurns,\n bufferResponseEvents,\n bufferOutputDeltas,\n generationStartedAt,\n generationObservers,\n runObservers,\n state: completionState,\n })) {\n yield event;\n }\n } finally {\n usage = Usage.add(usage, completionState.providerErrorUsage);\n }\n if (completionState.response === undefined) {\n throw new Error(\"Streaming completion ended without a response.\");\n }\n response = completionState.response;\n } catch (error) {\n await settleFailureCleanup([\n () => this.closeActiveGeneration(error),\n () => this.runCompletionErrorHook(prompt, error, newMessages),\n ]);\n throw error;\n }\n const { firstDeltaMs, emittedToolCallIds } = completionState;\n\n let generationEndArgs: AgentGenerationEndArgs = {\n turn: currentTurns,\n response,\n };\n if (firstDeltaMs !== undefined) {\n generationEndArgs = { ...generationEndArgs, firstDeltaMs };\n }\n this.activeGeneration = undefined;\n await generationObservers.end(generationEndArgs);\n response = await this.runCompletionResponseMiddlewares(request, response, currentTurns);\n try {\n assertCompletionResponseIntegrity({ response });\n } catch (error) {\n const providerOutputUsage = completionProviderOutputErrorUsage(error);\n if (providerOutputUsage !== undefined) usage = Usage.add(usage, providerOutputUsage);\n throw error;\n }\n usage = Usage.add(usage, response.usage);\n this.updateRunProgress(newMessages);\n await this.runCompletionResponseHook(prompt, response, newMessages);\n await this.runTurnEndHook(currentTurns, response, newMessages);\n await this.activeLifecycle?.onStepFinish?.({\n runId,\n step: currentTurns,\n response: lifecycleSnapshot(response),\n usage: lifecycleSnapshot(usage),\n });\n\n const toolCalls = response.choice.filter(\n (item): item is ToolCallPart => item.type === \"tool-call\",\n );\n const assistantMessage = this.generatedAssistantMessage(response, request);\n newMessages.push(assistantMessage);\n\n if (toolCalls.length === 0) {\n await this.beforeFinish?.();\n let emittedTurnEnd = false;\n if (!bufferOutputDeltas) {\n if (bufferResponseEvents) {\n for (const event of responseStreamEvents(currentTurns, response)) {\n yield event as AgentStreamEvent<Output, RawResponseOf<M>>;\n }\n }\n yield {\n type: \"turn_end\",\n turn: currentTurns,\n response: response as CompletionResponse<RawResponseOf<M>>,\n firstDeltaMs,\n };\n emittedTurnEnd = true;\n }\n if (this.steeringMessages.length > 0) {\n await this.memoryRecorder.commitMessages(\n runId,\n currentTurns,\n [assistantMessage],\n pendingTurnMessages,\n );\n }\n const appliedSteering = await this.drainSteeringMessages(\n runId,\n currentTurns,\n newMessages,\n pendingTurnMessages,\n { closeWhenEmpty: true },\n );\n for (const receipt of appliedSteering) {\n yield { type: \"steering_applied\", id: receipt.id, turn: currentTurns };\n }\n if (appliedSteering.length > 0) {\n await this.memoryRecorder.commitCompletedTurn(runId, currentTurns, pendingTurnMessages);\n continue;\n }\n\n for await (const event of this.completeStreamingRun({\n runId,\n turn: currentTurns,\n request,\n response,\n firstDeltaMs,\n usage,\n newMessages,\n pendingTurnMessages,\n runObservers,\n bufferResponseEvents,\n bufferOutputDeltas,\n emittedTurnEnd,\n })) {\n yield event;\n }\n return;\n }\n\n if (bufferResponseEvents) {\n for (const event of responseStreamEvents(currentTurns, response)) {\n yield event as AgentStreamEvent<Output, RawResponseOf<M>>;\n }\n } else {\n for (const toolCall of toolCalls) {\n if (!emittedToolCallIds.has(toolCall.toolCallId)) {\n yield { type: \"tool_call\", turn: currentTurns, toolCall };\n }\n }\n }\n this.updateRunProgress(newMessages);\n yield {\n type: \"turn_end\",\n turn: currentTurns,\n response: response as CompletionResponse<RawResponseOf<M>>,\n firstDeltaMs,\n };\n\n let toolResults: ToolResultPart[];\n try {\n const toolExecution = this.executeStreamingToolCalls(runId, toolCalls, newMessages, {\n turn: currentTurns,\n runObservers,\n toolDefinitions: request.tools,\n });\n for await (const result of toolExecution.events) {\n yield { turn: currentTurns, ...result };\n }\n toolResults = await toolExecution.results;\n } catch (error) {\n if (error instanceof ToolExecutionSuspension) {\n const result = await this.finishSuspension({\n runId,\n turn: currentTurns,\n usage,\n newMessages,\n pendingTurnMessages,\n runObservers,\n suspension: error,\n uncommittedMessages: [assistantMessage],\n });\n yield result;\n return;\n }\n throw error;\n }\n const toolMessage: MessageType = { role: \"tool\", content: toolResults };\n newMessages.push(toolMessage);\n await this.memoryRecorder.commitMessages(\n runId,\n currentTurns,\n [assistantMessage, toolMessage],\n pendingTurnMessages,\n );\n for (const receipt of await this.drainSteeringMessages(\n runId,\n currentTurns,\n newMessages,\n pendingTurnMessages,\n )) {\n yield { type: \"steering_applied\", id: receipt.id, turn: currentTurns };\n }\n await this.memoryRecorder.commitCompletedTurn(runId, currentTurns, pendingTurnMessages);\n }\n\n throw new MaxTurnsError(this.maxTurnCount, [...this.chatHistory, ...newMessages], lastPrompt);\n } catch (error) {\n if (error instanceof MemoryCompactionError && error.usage !== undefined) {\n usage = Usage.add(usage, error.usage);\n }\n if (error instanceof AgentStructuredOutputError) {\n usage = Usage.add(usage, error.usage);\n }\n this.runState = \"closing\";\n const runError = this.normalizeRunError(error);\n const reportedError = await this.reportRunFailure(\n runError,\n runId,\n usage,\n newMessages,\n runObservers,\n );\n this.runState = reportedError instanceof AgentRunCancelledError ? \"cancelled\" : \"errored\";\n const finalUsage = usage;\n yield { type: \"error\", error: reportedError, usage: finalUsage };\n this.disposeAbortLink();\n return;\n } finally {\n if (this.runState === \"running\" || this.runState === \"closing\") {\n const cancellation =\n this.cancellationError ??\n new AgentRunCancelledError([...this.chatHistory, ...newMessages], \"Agent stream closed.\");\n this.cancellationError = cancellation;\n await settleFailureCleanup([() => this.closeActiveGeneration(cancellation)]);\n await this.reportRunFailure(cancellation, runId, usage, newMessages, runObservers);\n this.runState = \"cancelled\";\n this.disposeAbortLink();\n }\n }\n }\n\n private async runCompletion(\n request: CompletionRequest,\n turn: number,\n runObservers: ActiveAgentRunObservers,\n ): Promise<CompletionResponse> {\n assertCompletionRequestSupported(this.agent.model, request);\n this.validatedStructuredOutput = undefined;\n this.failedCompletionUsage = Usage.empty();\n const providerRequest = this.providerTraceRequest(request);\n const generationObservers = await runObservers.startGeneration(\n this.generationStartArgs(turn, request, providerRequest),\n );\n let currentRequest = request;\n let failedAttemptUsage = Usage.empty();\n try {\n for (let attempt = 1; ; attempt += 1) {\n let response: CompletionResponse;\n try {\n this.throwIfCancelled();\n response = await this.agent.model.completion(currentRequest, this.modelCallOptions());\n assertCompletionResponseIntegrity({ response });\n } catch (error) {\n const attemptUsage = completionProviderOutputErrorUsage(error);\n if (attemptUsage !== undefined) {\n failedAttemptUsage = Usage.add(failedAttemptUsage, attemptUsage);\n this.failedCompletionUsage = failedAttemptUsage;\n }\n const retryOptions = this.retryOptionsForFailure(error, attempt, turn, false);\n if (retryOptions === undefined) {\n throw error;\n }\n await this.scheduleCompletionRetry(\n error,\n attempt,\n turn,\n false,\n retryOptions,\n runObservers,\n providerOutputRetryEventAttributes(error, failedAttemptUsage),\n );\n continue;\n }\n\n const cumulativeUsage = Usage.add(failedAttemptUsage, response.usage);\n try {\n this.validateStructuredResponse(response, attempt, cumulativeUsage);\n } catch (error) {\n const retryOptions = this.retryOptionsForFailure(error, attempt, turn, false);\n if (retryOptions === undefined) {\n throw error;\n }\n failedAttemptUsage = cumulativeUsage;\n this.failedCompletionUsage = failedAttemptUsage;\n const retryRequest = structuredOutputRetryRequest(request, response, error);\n currentRequest = retryRequest.request;\n await this.scheduleCompletionRetry(\n error,\n attempt,\n turn,\n false,\n retryOptions,\n runObservers,\n structuredOutputRetryEventAttributes(error, retryRequest),\n );\n continue;\n }\n\n const finalResponse = Usage.isEmpty(failedAttemptUsage)\n ? response\n : { ...response, usage: cumulativeUsage };\n await generationObservers.end({ turn, response: finalResponse });\n this.failedCompletionUsage = Usage.empty();\n return finalResponse;\n }\n } catch (error) {\n await settleFailureCleanup([() => generationObservers.error({ turn, error })]);\n throw error;\n }\n }\n\n private async createTurnRequest(\n prompt: MessageType,\n history: MessageType[],\n turn: number,\n ): Promise<CompletionRequest> {\n const ragText = extractRagText(prompt);\n const abortSignal = this.abortController.signal;\n const documents = await fetchContextDocuments(this.agent, ragText, abortSignal);\n const toolDefinitions = await fetchToolDefinitions(this.agent, ragText, abortSignal);\n const request = createCompletionRequest(providerMessages([...history, prompt]), {\n instructions: this.agent.instructions,\n documents,\n tools: [...toolDefinitions, ...getAgentToolState(this.agent).providerTools],\n temperature: this.agent.temperature,\n maxTokens: this.agent.maxTokens,\n providerOptions: this.agent.providerOptions,\n toolChoice: this.agent.toolChoice,\n controls: this.controls,\n outputSchema: getAgentProviderOutputSchema(this.agent),\n });\n return this.runCompletionRequestMiddlewares(request, turn);\n }\n\n private async *streamCompletion(args: {\n request: CompletionRequest;\n turn: number;\n bufferResponseEvents: boolean;\n bufferOutputDeltas: boolean;\n generationStartedAt: number;\n generationObservers: ActiveGenerationObservers;\n runObservers: ActiveAgentRunObservers;\n state: StreamingCompletionState;\n }): AsyncIterable<AgentStreamEvent<Output, RawResponseOf<M>>> {\n const model = this.agent.model;\n if (!isStreamingCompletionModel(model)) {\n throw new TypeError(\"Streaming completion requires a streaming-capable model.\");\n }\n this.validatedStructuredOutput = undefined;\n let currentRequest = args.request;\n for (let attempt = 1; ; attempt += 1) {\n const accumulator = new CompletionStreamAccumulator();\n let hasProviderProgress = false;\n let recordedErrorUsage = false;\n let attemptErrorUsage: Usage | undefined;\n try {\n this.throwIfCancelled();\n for await (const event of model.streamCompletion(currentRequest, this.modelCallOptions())) {\n if (event.type === \"error\") {\n const eventUsage = event.usage ?? completionProviderOutputErrorUsage(event.error);\n if (eventUsage !== undefined) {\n args.state.providerErrorUsage = Usage.add(args.state.providerErrorUsage, eventUsage);\n recordedErrorUsage = true;\n attemptErrorUsage = eventUsage;\n }\n throw event.error;\n }\n const mapped = accumulator.accept(event);\n if (event.type === \"final\") break;\n if (event.type === \"tool_call_delta\" || mapped !== undefined) {\n hasProviderProgress = true;\n }\n if (args.state.firstDeltaMs === undefined && isGenerationDeltaEvent(event.type)) {\n args.state.firstDeltaMs = Date.now() - args.generationStartedAt;\n }\n if (event.type === \"tool_call_delta\") {\n yield addTurnToToolCallDelta(args.turn, event);\n }\n if (mapped !== undefined) {\n await args.generationObservers.update?.({ turn: args.turn, delta: mapped });\n if (mapped.type === \"tool_call\") {\n args.state.emittedToolCallIds.add(mapped.toolCall.toolCallId);\n }\n const shouldBuffer =\n args.bufferResponseEvents ||\n (args.bufferOutputDeltas &&\n (mapped.type === \"text_delta\" || mapped.type === \"reasoning_delta\"));\n if (!shouldBuffer) {\n yield addTurn(args.turn, mapped) as AgentStreamEvent<Output, RawResponseOf<M>>;\n }\n }\n }\n const response = accumulator.response();\n assertCompletionResponseIntegrity({ response });\n const cumulativeStructuredUsage = Usage.add(args.state.providerErrorUsage, response.usage);\n try {\n this.validateStructuredResponse(response, attempt, cumulativeStructuredUsage);\n } catch (error) {\n const retryOptions = this.retryOptionsForFailure(error, attempt, args.turn, true);\n if (retryOptions === undefined) {\n if (error instanceof AgentStructuredOutputError) {\n args.state.providerErrorUsage = Usage.empty();\n }\n throw error;\n }\n args.state.providerErrorUsage = Usage.add(args.state.providerErrorUsage, response.usage);\n args.state.firstDeltaMs = undefined;\n args.state.emittedToolCallIds.clear();\n const retryRequest = structuredOutputRetryRequest(args.request, response, error);\n currentRequest = retryRequest.request;\n await this.scheduleCompletionRetry(\n error,\n attempt,\n args.turn,\n true,\n retryOptions,\n args.runObservers,\n structuredOutputRetryEventAttributes(error, retryRequest),\n );\n continue;\n }\n args.state.response = Usage.isEmpty(args.state.providerErrorUsage)\n ? response\n : { ...response, usage: cumulativeStructuredUsage };\n args.state.providerErrorUsage = Usage.empty();\n return;\n } catch (error) {\n if (!recordedErrorUsage) {\n const attemptUsage = completionProviderOutputErrorUsage(error);\n if (attemptUsage !== undefined) {\n args.state.providerErrorUsage = Usage.add(args.state.providerErrorUsage, attemptUsage);\n attemptErrorUsage = attemptUsage;\n }\n }\n const retryOptions = hasProviderProgress\n ? undefined\n : this.retryOptionsForFailure(error, attempt, args.turn, true);\n if (retryOptions === undefined) {\n throw error;\n }\n await this.scheduleCompletionRetry(\n error,\n attempt,\n args.turn,\n true,\n retryOptions,\n args.runObservers,\n providerOutputRetryEventAttributes(\n error,\n args.state.providerErrorUsage,\n attemptErrorUsage,\n ),\n );\n }\n }\n }\n\n private async *completeStreamingRun(args: {\n runId: string;\n turn: number;\n request: CompletionRequest;\n response: CompletionResponse;\n firstDeltaMs: number | undefined;\n usage: Usage;\n newMessages: MessageType[];\n pendingTurnMessages: MessageType[];\n runObservers: ActiveAgentRunObservers;\n bufferResponseEvents: boolean;\n bufferOutputDeltas: boolean;\n emittedTurnEnd: boolean;\n }): AsyncIterable<AgentStreamEvent<Output, RawResponseOf<M>>> {\n const guardedOutput = await this.runOutputGuardrailsForResponse(\n args.runId,\n args.usage,\n args.response,\n args.newMessages,\n args.runObservers,\n );\n for (const decision of guardedOutput.decisions) {\n yield { type: \"guardrail_decision\", decision };\n }\n\n const response = guardedOutput.response;\n const assistantMessage = this.generatedAssistantMessage(response, args.request);\n args.newMessages[args.newMessages.length - 1] = assistantMessage;\n await this.memoryRecorder.commitMessages(\n args.runId,\n args.turn,\n [assistantMessage],\n args.pendingTurnMessages,\n );\n if (!args.emittedTurnEnd && (args.bufferResponseEvents || args.bufferOutputDeltas)) {\n for (const event of responseStreamEvents(args.turn, response, args.bufferResponseEvents)) {\n yield event as AgentStreamEvent<Output, RawResponseOf<M>>;\n }\n }\n if (!args.emittedTurnEnd) {\n yield {\n type: \"turn_end\",\n turn: args.turn,\n response: response as CompletionResponse<RawResponseOf<M>>,\n firstDeltaMs: args.firstDeltaMs,\n };\n }\n\n const result = this.createTerminalResult(\n args.runId,\n guardedOutput.text,\n guardedOutput.blocked,\n args.usage,\n args.newMessages,\n args.runObservers,\n );\n if (result.type === \"response\") {\n await this.runRunEndHook(result, args.newMessages);\n }\n await this.memoryRecorder.commitCompletedRun(\n args.runId,\n args.turn,\n args.newMessages,\n args.pendingTurnMessages,\n );\n await this.runLifecycleFinish(result);\n await args.runObservers.end(observerRunEnd(result));\n this.runState = \"completed\";\n this.disposeAbortLink();\n yield result;\n }\n\n private async finishSuspension(args: {\n runId: string;\n turn: number;\n usage: Usage;\n newMessages: MessageType[];\n pendingTurnMessages: MessageType[];\n runObservers: ActiveAgentRunObservers;\n suspension: ToolExecutionSuspension;\n uncommittedMessages: MessageType[];\n }): Promise<AgentInteractionOutcome> {\n const partialToolMessage: MessageType | undefined =\n args.suspension.completedResults.length === 0\n ? undefined\n : { role: \"tool\", content: [...args.suspension.completedResults] };\n if (partialToolMessage !== undefined) {\n args.newMessages.push(partialToolMessage);\n args.uncommittedMessages.push(partialToolMessage);\n }\n await this.memoryRecorder.commitMessages(\n args.runId,\n args.turn,\n args.uncommittedMessages,\n args.pendingTurnMessages,\n );\n await this.memoryRecorder.commitCompletedRun(\n args.runId,\n args.turn,\n args.newMessages,\n args.pendingTurnMessages,\n );\n\n this.runState = \"closing\";\n\n const continuationState: AgentContinuationState = {\n kind: \"anvia.agent-continuation\",\n history: [...this.chatHistory],\n messages: [...args.newMessages],\n pending: args.suspension.pending,\n remainingToolCalls: [...args.suspension.remainingToolCalls],\n steering: this.steeringMessages.map((entry) => ({\n id: entry.id,\n messages: [...entry.messages],\n })),\n };\n if (this.memoryScope !== undefined) continuationState.memoryScope = this.memoryScope;\n const continuation = parseAgentContinuation({\n version: 1,\n agentId: this.agent.id,\n sourceRunId: args.runId,\n interaction: args.suspension.interaction,\n state: serializeContinuationState(continuationState),\n });\n const result: AgentInteractionOutcome = {\n type: \"interaction\",\n runId: args.runId,\n text: latestAssistantText([...this.chatHistory, ...args.newMessages]),\n usage: args.usage,\n messages: [...args.newMessages],\n trace: args.runObservers.trace,\n guardrails: [...this.guardrailDecisions],\n interaction: continuation.interaction,\n continuation,\n ...generationArtifacts([...this.chatHistory, ...args.newMessages]),\n ...this.memoryCompactionResult(),\n };\n if (this.resumedFrom !== undefined) result.resumedFrom = this.resumedFrom;\n await this.runLifecycleFinish(result);\n await args.runObservers.end(observerRunEnd(result));\n this.runState = \"completed\";\n this.currentMessages = [...args.newMessages];\n this.disposeAbortLink();\n return result;\n }\n\n private generatedAssistantMessage(\n response: CompletionResponse,\n _request: CompletionRequest,\n ): MessageType {\n const generation: JsonObject = {\n provider: this.agent.model.provider,\n modelId: this.agent.model.modelId,\n usage: { ...response.usage },\n };\n if (response.finishReason !== undefined) generation.finishReason = response.finishReason;\n if (response.providerFinishReason !== undefined) {\n generation.providerFinishReason = response.providerFinishReason;\n }\n if (response.contextUsage !== undefined) generation.contextUsage = response.contextUsage;\n if (response.sources !== undefined) generation.sources = response.sources;\n if (response.providerToolCalls !== undefined) {\n generation.providerToolCalls = response.providerToolCalls;\n }\n const metadata: JsonObject = { anvia: { generation } };\n let message: MessageType = {\n role: \"assistant\",\n content: response.choice,\n metadata,\n };\n if (response.messageId !== undefined) message = { ...message, id: response.messageId };\n return message;\n }\n\n private providerTraceRequest(\n request: CompletionRequest,\n options: { stream?: boolean | undefined } = {},\n ): JsonObject | undefined {\n try {\n return this.agent.model.traceRequest?.(request, options);\n } catch (error) {\n return {\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n private generationStartArgs(\n turn: number,\n request: CompletionRequest,\n providerRequest: JsonObject | undefined,\n ): AgentGenerationStartArgs & { modelInfo: AgentGenerationModelInfo } {\n let args: AgentGenerationStartArgs & { modelInfo: AgentGenerationModelInfo } = {\n turn,\n request,\n promptRef: this.generationPromptRef,\n modelInfo: {\n provider: this.agent.model.provider,\n modelId: this.agent.model.modelId,\n capabilities: this.agent.model.capabilities,\n },\n };\n if (providerRequest !== undefined) args = { ...args, providerRequest };\n return args;\n }\n\n private retryOptionsForFailure(\n error: unknown,\n attempt: number,\n turn: number,\n streaming: boolean,\n ): ResolvedRetryOptions | undefined {\n if (this.abortController.signal.aborted) return undefined;\n return retryOptionsForFailure(this.completionRetryOptions, {\n error,\n attempt,\n turn,\n streaming,\n });\n }\n\n private async scheduleCompletionRetry(\n error: unknown,\n attempt: number,\n turn: number,\n streaming: boolean,\n options: ResolvedRetryOptions,\n runObservers: ActiveAgentRunObservers,\n additionalAttributes?: JsonObject | undefined,\n ): Promise<void> {\n const delayMs = retryDelayMs(options, attempt);\n const attributes: JsonObject = {\n turn,\n attempt,\n nextAttempt: attempt + 1,\n maxAttempts: options.maxAttempts,\n delayMs,\n streaming,\n ...retryErrorAttributes(error),\n };\n if (additionalAttributes !== undefined) {\n Object.assign(attributes, additionalAttributes);\n }\n await runObservers.event({\n name: \"completion.retry\",\n level: \"WARNING\",\n attributes,\n });\n await waitForRetry(delayMs, this.abortController.signal);\n }\n\n private async executeToolCalls(\n runId: string,\n toolCalls: ToolCallPart[],\n newMessages: MessageType[],\n onResult?: (result: ToolResultEventPayload) => void,\n onStreamEvent?: (event: AgentToolEventPayload) => void,\n observation?: ToolExecutionObservation,\n ): Promise<ToolResultPart[]> {\n const executor = this.createToolExecutor(runId, newMessages);\n return executor.execute(toolCalls, onResult, onStreamEvent, observation);\n }\n\n private createToolExecutor(runId: string, newMessages: MessageType[]): ToolCallExecutor {\n return new ToolCallExecutor(\n this.agent,\n this.activeHook,\n async (request) => {\n throw new AgentInteractionSignal(approvalInteraction(request), request.rejectMessage);\n },\n this.activeLifecycle,\n {\n runId,\n sessionId: this.memoryScope?.sessionId,\n metadata: this.memoryScope?.metadata,\n },\n this.concurrency,\n this.requestMiddlewares,\n this.abortController.signal,\n (reason) => this.cancelled(newMessages, reason),\n );\n }\n\n private async resolveContinuationTools(\n runId: string,\n newMessages: MessageType[],\n onResult: ((result: ToolResultEventPayload) => void) | undefined,\n onStreamEvent: ((event: AgentToolEventPayload) => void) | undefined,\n observation: ToolExecutionObservation,\n ): Promise<ToolResultPart[]> {\n const state = this.continuationState;\n const response = this.interactionResponse;\n if (state === undefined || response === undefined) {\n return [];\n }\n const pending = state.pending;\n const interaction = this.resumedFrom;\n if (interaction === undefined) {\n throw new TypeError(\"Agent continuation is missing its source run linkage.\");\n }\n const executor = this.createToolExecutor(runId, newMessages);\n const results: ToolResultPart[] = [];\n if (response.type === \"tool-approval\") {\n const attributes: JsonObject = {\n approvalId: interaction.interactionId,\n toolName: pending.toolCall.toolName,\n toolCallId: pending.toolCall.toolCallId,\n internalCallId: pending.internalCallId,\n approved: response.approved,\n };\n if (response.reason !== undefined) attributes.decisionReason = response.reason;\n await observation.runObservers.event({\n name: \"tool.approval_resolved\",\n attributes,\n });\n if (response.approved) {\n results.push(await executor.executeResumed(pending, onResult, onStreamEvent, observation));\n } else {\n const output = {\n type: \"execution-denied\" as const,\n reason: response.reason ?? pending.rejectMessage ?? \"Tool approval was rejected.\",\n };\n results.push(await executor.resolveResumed(pending, output, onResult, observation));\n }\n } else {\n const currentTool = this.agent.getTool(pending.toolCall.toolName);\n if (currentTool === undefined || !isQuestionTool(currentTool)) {\n throw new TypeError(\n `Cannot resume question interaction because tool \"${pending.toolCall.toolName}\" is no longer registered as a question tool.`,\n );\n }\n const output = questionResult(response.answers);\n results.push(await executor.resolveResumed(pending, output, onResult, observation));\n }\n try {\n results.push(\n ...(await executor.execute(state.remainingToolCalls, onResult, onStreamEvent, observation)),\n );\n } catch (error) {\n if (error instanceof ToolExecutionSuspension) {\n error.completedResults = [...results, ...error.completedResults];\n }\n throw error;\n }\n return results;\n }\n\n private executeStreamingToolCalls(\n runId: string,\n toolCalls: ToolCallPart[],\n newMessages: MessageType[],\n observation: ToolExecutionObservation,\n ): {\n events: AsyncIterable<ToolExecutionEventPayload>;\n results: Promise<ToolResultPart[]>;\n } {\n const events = createAsyncQueue<ToolExecutionEventPayload>();\n const results = this.executeToolCalls(\n runId,\n toolCalls,\n newMessages,\n (result) => events.enqueue(result),\n (event) => events.enqueue(event),\n observation,\n );\n results.then(\n () => events.close(),\n (error: unknown) => events.throw(error),\n );\n return { events, results };\n }\n\n private executeContinuationToolStream(\n runId: string,\n newMessages: MessageType[],\n observation: ToolExecutionObservation,\n ): {\n events: AsyncIterable<ToolExecutionEventPayload>;\n results: Promise<ToolResultPart[]>;\n } {\n const events = createAsyncQueue<ToolExecutionEventPayload>();\n const results = this.resolveContinuationTools(\n runId,\n newMessages,\n (result) => events.enqueue(result),\n (event) => events.enqueue(event),\n observation,\n );\n results.then(\n () => events.close(),\n (error: unknown) => events.throw(error),\n );\n return { events, results };\n }\n\n private async closeActiveGeneration(error: unknown): Promise<void> {\n const active = this.activeGeneration;\n if (active === undefined) {\n return;\n }\n this.activeGeneration = undefined;\n await active.observers.error({ turn: active.turn, error });\n }\n\n private updateRunProgress(messages: MessageType[]): void {\n this.currentMessages = [...messages];\n }\n\n private async runLifecycleFinish(result: AgentTerminalResult<Output>): Promise<void> {\n const common = {\n runId: result.runId,\n text: result.text,\n usage: lifecycleSnapshot(result.usage),\n messages: lifecycleSnapshot(result.messages),\n };\n if (result.memoryCompaction !== undefined) {\n Object.assign(common, { memoryCompaction: lifecycleSnapshot(result.memoryCompaction) });\n }\n const event =\n result.type === \"response\"\n ? {\n ...common,\n status: \"completed\",\n output: lifecycleSnapshot(result.output),\n }\n : result.type === \"blocked\"\n ? {\n ...common,\n status: \"blocked\",\n stage: result.stage,\n }\n : {\n ...common,\n status: \"suspended\",\n interaction: lifecycleSnapshot(result.interaction),\n };\n await this.activeLifecycle?.onFinish?.(event as AgentFinishEvent<Output>);\n }\n\n private async runLifecycleError(\n error: unknown,\n runId: string,\n usage: Usage,\n messages: MessageType[],\n ): Promise<unknown | undefined> {\n try {\n await this.activeLifecycle?.onError?.({\n runId,\n error: lifecycleSnapshot(error),\n usage: lifecycleSnapshot(usage),\n messages: lifecycleSnapshot([...this.chatHistory, ...messages]),\n });\n return undefined;\n } catch (lifecycleError) {\n return lifecycleError;\n }\n }\n\n private async reportRunFailure(\n error: unknown,\n runId: string,\n usage: Usage,\n messages: MessageType[],\n runObservers: ActiveAgentRunObservers | undefined,\n ): Promise<unknown> {\n const reportedError = await this.resolveReportedRunError(error, runId, usage, messages);\n await settleFailureCleanup([\n () =>\n this.onInternalFailure?.({\n error: reportedError,\n messages: lifecycleSnapshot(messages),\n }),\n () =>\n runObservers?.error({\n status: reportedError instanceof AgentRunCancelledError ? \"cancelled\" : \"failed\",\n error: reportedError,\n usage,\n messages: [...messages],\n }),\n () => this.memoryRecorder.recordError(runId, reportedError, messages),\n ]);\n return reportedError;\n }\n\n private async resolveReportedRunError(\n error: unknown,\n runId: string,\n usage: Usage,\n messages: MessageType[],\n ): Promise<unknown> {\n try {\n await this.runRunErrorHook(error, usage, messages);\n } catch {\n // Thrown hook errors are diagnostic cleanup and must not replace the run failure.\n }\n const reportedError = this.cancellationError ?? error;\n await this.runLifecycleError(reportedError, runId, usage, messages);\n return reportedError;\n }\n\n private async runOutputGuardrailsForResponse(\n runId: string,\n usage: Usage,\n response: CompletionResponse,\n messages: MessageType[],\n runObservers: ActiveAgentRunObservers,\n ): Promise<{\n text: string;\n blocked: boolean;\n response: CompletionResponse;\n decisions: GuardrailDecisionRecord[];\n }> {\n const originalOutput = textFromAssistantContent(response.choice);\n const result = await runOutputGuardrails(this.guardrailPolicies, {\n outputText: originalOutput,\n messages: [...this.chatHistory, ...messages],\n usage,\n run: this.guardrailRunContext(runId),\n });\n for (const decision of result.decisions) {\n await this.recordGuardrailDecision(decision, runObservers);\n }\n const text = result.blocked\n ? (result.message ?? \"The response was blocked by a guardrail.\")\n : result.outputText;\n if (text === originalOutput) {\n return { text, blocked: result.blocked, response, decisions: result.decisions };\n }\n return {\n text,\n blocked: result.blocked,\n response: {\n ...response,\n choice: [{ type: \"text\", text }],\n },\n decisions: result.decisions,\n };\n }\n\n private createTerminalResult(\n runId: string,\n text: string,\n blocked: boolean,\n usage: Usage,\n messages: MessageType[],\n runObservers: ActiveAgentRunObservers,\n ): AgentTerminalResult<Output> {\n const common = {\n runId,\n text,\n usage,\n messages: [...messages],\n trace: runObservers.trace,\n guardrails: [...this.guardrailDecisions],\n ...generationArtifacts(messages),\n ...this.memoryCompactionResult(),\n };\n if (this.resumedFrom !== undefined) Object.assign(common, { resumedFrom: this.resumedFrom });\n if (blocked) {\n return {\n ...common,\n type: \"blocked\",\n stage: \"output\",\n ...blockedOutcomeDetails(\n this.guardrailDecisions,\n \"The response was blocked by a guardrail.\",\n ),\n };\n }\n return {\n ...common,\n type: \"response\",\n output: this.parseOutput(text),\n };\n }\n\n private validateStructuredResponse(\n response: CompletionResponse,\n attempt: number,\n usage: Usage,\n ): void {\n if (this.agent.outputSchema === undefined) return;\n if (response.choice.some((item) => item.type === \"tool-call\")) return;\n const text = textFromAssistantContent(response.choice);\n const normalized = normalizeStructuredOutput(text);\n if (response.finishReason === \"content-filter\") {\n throw new AgentStructuredOutputError({\n phase: \"content-filter\",\n attempt,\n maxAttempts: this.completionRetryOptions?.maxAttempts ?? 1,\n outputLength: text.length,\n normalizedLength: normalized.text.length,\n outputFormat: normalized.format,\n attemptUsage: response.usage,\n usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n });\n }\n if (response.finishReason === \"length\") {\n throw new AgentStructuredOutputError({\n phase: \"truncated\",\n attempt,\n maxAttempts: this.completionRetryOptions?.maxAttempts ?? 1,\n outputLength: text.length,\n normalizedLength: normalized.text.length,\n outputFormat: normalized.format,\n attemptUsage: response.usage,\n usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n });\n }\n const output = this.parseOutput(text, attempt, usage, {\n useValidatedOutput: false,\n attemptUsage: response.usage,\n finishReason: response.finishReason,\n providerFinishReason: response.providerFinishReason,\n });\n this.validatedStructuredOutput = { text, output };\n }\n\n private takeFailedCompletionUsage(): Usage {\n const usage = this.failedCompletionUsage;\n this.failedCompletionUsage = Usage.empty();\n return usage;\n }\n\n private parseOutput(\n text: string,\n attempt = 1,\n usage = Usage.empty(),\n options: {\n useValidatedOutput?: boolean;\n attemptUsage?: Usage;\n finishReason?: CompletionFinishReason | undefined;\n providerFinishReason?: string | undefined;\n } = {},\n ): Output {\n const schema = this.agent.outputSchema;\n if (schema === undefined) return text as Output;\n if (options.useValidatedOutput !== false && this.validatedStructuredOutput?.text === text) {\n return this.validatedStructuredOutput.output;\n }\n const normalized = normalizeStructuredOutput(text);\n const maxAttempts = this.completionRetryOptions?.maxAttempts ?? 1;\n let json: unknown;\n try {\n json = JSON.parse(normalized.text);\n if (!isJsonValue(json)) {\n throw new TypeError(\"Agent structured output is not a JSON value.\");\n }\n } catch (error) {\n throw new AgentStructuredOutputError({\n phase: \"parse\",\n attempt,\n maxAttempts,\n outputLength: text.length,\n normalizedLength: normalized.text.length,\n outputFormat: normalized.format,\n attemptUsage: options.attemptUsage ?? usage,\n usage,\n finishReason: options.finishReason,\n providerFinishReason: options.providerFinishReason,\n cause: error,\n });\n }\n try {\n return schema.parse(json);\n } catch (error) {\n throw new AgentStructuredOutputError({\n phase: \"schema\",\n attempt,\n maxAttempts,\n outputLength: text.length,\n normalizedLength: normalized.text.length,\n outputFormat: normalized.format,\n attemptUsage: options.attemptUsage ?? usage,\n usage,\n finishReason: options.finishReason,\n providerFinishReason: options.providerFinishReason,\n cause: error,\n });\n }\n }\n\n private memoryCompactionResult(): {\n memoryCompaction?: MemoryCompactionInfo | undefined;\n } {\n return this.memoryCompaction === undefined\n ? {}\n : { memoryCompaction: lifecycleSnapshot(this.memoryCompaction) };\n }\n\n private async recordGuardrailDecision(\n decision: GuardrailDecisionRecord,\n runObservers: ActiveAgentRunObservers,\n ): Promise<void> {\n this.guardrailDecisions.push(decision);\n await runObservers.event({\n name: \"guardrail.decision\",\n level: decision.action === \"block\" ? \"WARNING\" : \"DEFAULT\",\n attributes: guardrailDecisionAttributes(decision),\n });\n }\n\n private async recordMemoryCompaction(\n preparation: MemoryPreparation,\n runObservers: ActiveAgentRunObservers,\n ): Promise<void> {\n const compaction = preparation.compaction;\n if (compaction === undefined) {\n return;\n }\n await runObservers.event({\n name: \"memory.compaction\",\n attributes: {\n originalMessageCount: compaction.originalMessageCount,\n compactedMessageCount: compaction.compactedMessageCount,\n retainedMessageCount: compaction.retainedMessageCount,\n originalTokenCount: compaction.originalTokenCount,\n compactedTokenCount: compaction.compactedTokenCount,\n retainedTokenCount: compaction.retainedTokenCount,\n resultTokenCount: compaction.resultTokenCount,\n attempts: compaction.attempts,\n inputTokens: compaction.usage.inputTokens,\n outputTokens: compaction.usage.outputTokens,\n totalTokens: compaction.usage.totalTokens,\n },\n });\n }\n\n private async notifyInternalMemoryCompaction(\n compaction: MemoryCompactionInfo | undefined,\n ): Promise<void> {\n if (compaction === undefined) {\n return;\n }\n await this.onInternalMemoryCompaction?.(lifecycleSnapshot(compaction));\n }\n\n private guardrailRunContext(runId: string): GuardrailRunContext {\n const context: GuardrailRunContext = {\n agentId: this.agent.id,\n runId,\n };\n if (this.memoryScope !== undefined) {\n context.sessionId = this.memoryScope.sessionId;\n if (this.memoryScope.metadata !== undefined) {\n context.metadata = this.memoryScope.metadata;\n }\n }\n return context;\n }\n\n private async startRunObservers(runId: string): Promise<ActiveAgentRunObservers> {\n const observability = this.agent.observability;\n return startAgentRunObservers(\n observability?.observers ?? {},\n {\n runId,\n agentName: this.agent.name,\n agentDescription: this.agent.description,\n instructions: this.agent.instructions,\n trace: this.traceOptions,\n promptRef: this.traceOptions?.promptRef,\n prompt: this.promptMessage,\n history: this.chatHistory,\n maxTurns: this.maxTurnCount,\n },\n {\n primaryTrace: observability?.primaryTrace,\n errorPolicy: observability?.errorPolicy ?? \"ignore\",\n },\n );\n }\n\n private async runCompletionCallHook(\n prompt: MessageType,\n history: MessageType[],\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onCompletionCall?.({\n prompt,\n history,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runRunStartHook(newMessages: MessageType[]): Promise<void> {\n const action = await this.activeHook?.onRunStart?.({\n prompt: this.promptMessage,\n history: this.chatHistory,\n maxTurns: this.maxTurnCount,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runRunEndHook(\n result: AgentResponse<Output>,\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onRunEnd?.({\n status: \"completed\",\n output: result.output,\n text: result.text,\n usage: result.usage,\n messages: result.messages,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runRunErrorHook(\n error: unknown,\n usage: Usage,\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onRunError?.({\n error,\n usage,\n messages: [...this.chatHistory, ...newMessages],\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runTurnStartHook(\n turn: number,\n prompt: MessageType,\n history: MessageType[],\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onTurnStart?.({\n turn,\n prompt,\n history,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runTurnEndHook(\n turn: number,\n response: CompletionResponse,\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onTurnEnd?.({\n turn,\n response,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runCompletionRequestMiddlewares(\n request: CompletionRequest,\n turn: number,\n ): Promise<CompletionRequest> {\n let current = request;\n this.generationPromptRef = this.traceOptions?.promptRef;\n for (const middleware of this.activeMiddlewares()) {\n const replacement = await middleware.onCompletionRequest?.({\n turn,\n request: current,\n originalRequest: request,\n promptRef: this.generationPromptRef,\n });\n if (replacement?.promptRef !== undefined) {\n this.generationPromptRef = replacement.promptRef ?? undefined;\n }\n if (replacement?.request !== undefined) {\n current = replacement.request;\n if (current.providerOptions !== undefined) {\n assertJsonObject(current.providerOptions, \"providerOptions\");\n }\n }\n }\n return current;\n }\n\n private async runCompletionResponseMiddlewares(\n request: CompletionRequest,\n response: CompletionResponse,\n turn: number,\n ): Promise<CompletionResponse> {\n let current = response;\n for (const middleware of this.activeMiddlewares()) {\n const replacement = await middleware.onCompletionResponse?.({\n turn,\n request,\n response: current,\n originalResponse: response,\n });\n if (replacement?.response !== undefined) {\n current = replacement.response;\n }\n }\n return current;\n }\n\n private async runCompletionResponseHook(\n prompt: MessageType,\n response:\n | Awaited<ReturnType<M[\"completion\"]>>\n | Awaited<ReturnType<CompletionModel[\"completion\"]>>,\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onCompletionResponse?.({\n prompt,\n response,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private async runCompletionErrorHook(\n prompt: MessageType,\n error: unknown,\n newMessages: MessageType[],\n ): Promise<void> {\n const action = await this.activeHook?.onCompletionError?.({\n prompt,\n error,\n run: runControl,\n });\n if (action?.type === \"terminate\") {\n throw this.cancelled(newMessages, action.reason);\n }\n }\n\n private activeMiddlewares(): AgentMiddleware[] {\n return [...this.agent.middlewares, ...this.requestMiddlewares];\n }\n\n private shouldBufferStreamResponseEvents(): boolean {\n return (\n this.activeHook?.onCompletionResponse !== undefined ||\n this.activeMiddlewares().some((middleware) => middleware.onCompletionResponse !== undefined)\n );\n }\n\n private async drainSteeringMessages(\n runId: string,\n turn: number,\n newMessages: MessageType[],\n pendingTurnMessages: MessageType[],\n options: { closeWhenEmpty?: boolean } = {},\n ): Promise<QueuedSteering[]> {\n const receipts = this.steeringMessages.splice(0);\n if (receipts.length === 0) {\n if (options.closeWhenEmpty === true) {\n this.runState = \"closing\";\n }\n return [];\n }\n const messages = receipts.flatMap((receipt) => receipt.messages);\n newMessages.push(...messages);\n await this.memoryRecorder.commitMessages(runId, turn, messages, pendingTurnMessages);\n for (const receipt of receipts) this.onSteeringApplied?.(receipt.id);\n return receipts;\n }\n\n private startRun(): void {\n if (this.runState === \"idle\") {\n this.runState = \"running\";\n return;\n }\n if (this.runState === \"running\") {\n throw new Error(\"Agent stream is already running.\");\n }\n throw new Error(\"Agent stream has already been consumed.\");\n }\n\n private isTerminal(): boolean {\n return this.runState !== \"idle\" && this.runState !== \"running\";\n }\n\n private cancelled(newMessages: MessageType[], reason: string): AgentRunCancelledError {\n if (this.cancellationError !== undefined) return this.cancellationError;\n const error = new AgentRunCancelledError([...this.chatHistory, ...newMessages], reason);\n this.setCancellationError(error);\n return error;\n }\n\n private linkExternalAbortSignal(signal: AbortSignal | undefined): void {\n if (signal === undefined) return;\n const cancelFromSignal = () => {\n if (this.cancellationError !== undefined || this.isTerminal()) return;\n const cause = abortError(signal.reason);\n const reason = abortReason(signal.reason);\n const messages =\n this.currentMessages.length === 0 ? [this.promptMessage] : [...this.currentMessages];\n this.setCancellationError(\n new AgentRunCancelledError([...this.chatHistory, ...messages], reason, { cause }),\n );\n };\n if (signal.aborted) {\n cancelFromSignal();\n return;\n }\n signal.addEventListener(\"abort\", cancelFromSignal, { once: true });\n this.removeExternalAbortListener = () => signal.removeEventListener(\"abort\", cancelFromSignal);\n }\n\n private throwIfCancelled(): void {\n if (this.cancellationError !== undefined) throw this.cancellationError;\n throwIfAborted(this.abortController.signal);\n }\n\n private normalizeRunError(error: unknown): unknown {\n return this.abortController.signal.aborted && this.cancellationError !== undefined\n ? this.cancellationError\n : error;\n }\n\n private modelCallOptions(): ModelCallOptions {\n return { abortSignal: this.abortController.signal };\n }\n\n private disposeAbortLink(): void {\n this.removeExternalAbortListener?.();\n this.removeExternalAbortListener = undefined;\n }\n}\n\nfunction abortReason(reason: unknown): string {\n if (typeof reason === \"string\" && reason.trim().length > 0) return reason;\n if (reason instanceof Error && reason.message.trim().length > 0) return reason.message;\n return \"External abort signal.\";\n}\n\nfunction normalizeAgentInput(\n agentId: string,\n input: AgentInput,\n): {\n prompt: MessageType;\n history: MessageType[];\n scope?: MemoryScope | undefined;\n continuationState?: AgentContinuationState | undefined;\n interactionResponse?: AgentInteractionResponse | undefined;\n sourceRunId?: string | undefined;\n interactionId?: string | undefined;\n} {\n if (typeof input !== \"object\" || input === null || Array.isArray(input)) {\n throw new TypeError(\"Agent runs require one options object with prompt or messages.\");\n }\n const hasContinuation = \"continuation\" in input && input.continuation !== undefined;\n const hasPrompt = \"prompt\" in input && input.prompt !== undefined;\n const hasMessages = \"messages\" in input && input.messages !== undefined;\n if (Number(hasContinuation) + Number(hasPrompt) + Number(hasMessages) !== 1) {\n throw new TypeError(\"Agent runs require exactly one of prompt, messages, or continuation.\");\n }\n if (hasContinuation) {\n if (!(\"response\" in input) || input.response === undefined) {\n throw new TypeError(\"Agent continuation runs require an interaction response.\");\n }\n if (\"session\" in input && input.session !== undefined) {\n throw new TypeError(\"Agent continuations carry their memory scope and cannot use session.\");\n }\n const continuation = parseAgentContinuation(input.continuation);\n if (continuation.agentId !== agentId) {\n throw new TypeError(\n `Agent continuation belongs to \"${continuation.agentId}\", not \"${agentId}\".`,\n );\n }\n const response = parseAgentInteractionResponse(input.response);\n assertAgentInteractionResponse(continuation.interaction, response);\n const state = parseContinuationState(continuation.state, continuation.interaction);\n let responsePart: ToolInteractionResponsePart;\n if (response.type === \"tool-approval\") {\n responsePart = {\n type: \"tool-approval-response\",\n interactionId: continuation.interaction.id,\n toolCallId: continuation.interaction.toolCallId,\n toolName: continuation.interaction.toolName,\n approved: response.approved,\n };\n if (response.reason !== undefined)\n responsePart = { ...responsePart, reason: response.reason };\n } else {\n responsePart = {\n type: \"tool-question-response\",\n interactionId: continuation.interaction.id,\n toolCallId: continuation.interaction.toolCallId,\n toolName: continuation.interaction.toolName,\n answers: response.answers,\n };\n }\n if (continuation.interaction.callId !== undefined) {\n responsePart = { ...responsePart, callId: continuation.interaction.callId };\n }\n const normalized = {\n prompt: parseMessage({ role: \"tool\", content: [responsePart] }),\n history: [...state.history, ...state.messages],\n continuationState: state,\n interactionResponse: response,\n sourceRunId: continuation.sourceRunId,\n interactionId: continuation.interaction.id,\n };\n if (state.memoryScope !== undefined) {\n Object.assign(normalized, { scope: normalizeMemoryScope(state.memoryScope) });\n }\n return normalized;\n }\n if (hasPrompt) {\n const prompt = input.prompt;\n if (\n typeof prompt !== \"string\" &&\n (typeof prompt !== \"object\" || prompt === null || prompt.role !== \"user\")\n ) {\n throw new TypeError(\"Agent prompt must be text or a user message.\");\n }\n const parsedPrompt = parseMessage(\n typeof prompt === \"string\" ? { role: \"user\", content: prompt } : prompt,\n );\n if (parsedPrompt.role !== \"user\") {\n throw new TypeError(\"Agent prompt must be text or a user message.\");\n }\n const normalized = {\n prompt: parsedPrompt,\n history: [],\n };\n if (input.session !== undefined) {\n Object.assign(normalized, { scope: normalizeMemoryScope(input.session) });\n }\n return normalized;\n }\n if (input.session !== undefined) {\n throw new TypeError(\"Agent messages cannot be combined with a persisted session.\");\n }\n const messages = input.messages;\n if (!Array.isArray(messages) || messages.length === 0) {\n throw new TypeError(\"Agent input transcript must contain at least one message.\");\n }\n const parsedMessages = parseMessages(messages);\n const activePrompt = parsedMessages.at(-1);\n if (activePrompt === undefined) {\n throw new TypeError(\"Agent input transcript must contain at least one message.\");\n }\n if (activePrompt.role !== \"user\") {\n throw new TypeError(\"Agent input transcript must end with a user message.\");\n }\n return {\n prompt: activePrompt,\n history: parsedMessages.slice(0, -1),\n };\n}\n\nfunction normalizeSteeringInput(input: AgentSteerInput): MessageType[] {\n if (typeof input !== \"object\" || input === null || Array.isArray(input)) {\n throw new TypeError(\"Agent steering requires one options object with prompt or messages.\");\n }\n const hasPrompt = \"prompt\" in input && input.prompt !== undefined;\n const hasMessages = \"messages\" in input && input.messages !== undefined;\n if (hasPrompt === hasMessages) {\n throw new TypeError(\"Agent steering requires exactly one of prompt or messages.\");\n }\n if (hasPrompt) {\n const prompt = input.prompt;\n if (\n typeof prompt !== \"string\" &&\n (typeof prompt !== \"object\" || prompt === null || prompt.role !== \"user\")\n ) {\n throw new TypeError(\"Agent steering prompt must be text or a user message.\");\n }\n const parsedPrompt = parseMessage(\n typeof prompt === \"string\" ? { role: \"user\", content: prompt } : prompt,\n );\n if (parsedPrompt.role !== \"user\") {\n throw new TypeError(\"Agent steering prompt must be text or a user message.\");\n }\n return [parsedPrompt];\n }\n const messages = input.messages;\n if (!Array.isArray(messages) || messages.length === 0) {\n throw new TypeError(\"Agent steering messages must contain at least one user message.\");\n }\n const parsedMessages = parseMessages(messages);\n if (parsedMessages.some((message) => message.role !== \"user\")) {\n throw new TypeError(\"Agent steering messages must all be user messages.\");\n }\n return parsedMessages;\n}\n\nfunction normalizeRequestedRunId(runId: string | undefined): string | undefined {\n if (runId === undefined) {\n return undefined;\n }\n if (typeof runId !== \"string\" || runId.trim().length === 0) {\n throw new TypeError(\"runId must be a non-empty string.\");\n }\n return runId;\n}\n\nfunction responseStreamEvents(\n turn: number,\n response: CompletionResponse,\n includeProviderArtifacts = true,\n): AgentStreamEvent[] {\n const events: AgentStreamEvent[] = [];\n for (const item of response.choice) {\n if (item.type === \"text\") {\n if (item.text.length > 0) {\n events.push({ type: \"text_delta\", turn, delta: item.text });\n }\n continue;\n }\n\n if (item.type === \"reasoning\") {\n if (item.details === undefined) {\n if (item.text.length > 0) {\n events.push(reasoningDeltaEvent(turn, item.text, { id: item.id }));\n }\n continue;\n }\n\n for (const content of item.details) {\n const delta =\n content.type === \"encrypted\" || content.type === \"redacted\" ? content.data : content.text;\n events.push(\n reasoningDeltaEvent(turn, delta, {\n id: item.id,\n contentType: content.type,\n signature: content.type === \"text\" ? content.signature : undefined,\n }),\n );\n }\n continue;\n }\n\n if (item.type === \"tool-call\") {\n events.push({ type: \"tool_call\", turn, toolCall: item });\n }\n }\n if (includeProviderArtifacts) {\n for (const source of response.sources ?? []) {\n events.push({ type: \"source\", turn, source });\n }\n for (const toolCall of response.providerToolCalls ?? []) {\n events.push({ type: \"provider_tool_call\", turn, toolCall });\n }\n }\n return events;\n}\n\nfunction generationArtifacts(messages: MessageType[]): {\n sources?: CompletionSource[];\n providerToolCalls?: ProviderToolCall[];\n finishReason?: CompletionFinishReason;\n providerFinishReason?: string;\n contextUsage?: import(\"../../completion/index\").ContextUsage;\n} {\n const sources = new Map<string, CompletionSource>();\n const providerToolCalls = new Map<string, ProviderToolCall>();\n let finishReason: CompletionFinishReason | undefined;\n let providerFinishReason: string | undefined;\n let contextUsage: import(\"../../completion/index\").ContextUsage | undefined;\n for (const message of messages) {\n const metadata = getAssistantGenerationMetadata(message);\n if (metadata !== undefined) {\n finishReason = metadata.finishReason;\n providerFinishReason = metadata.providerFinishReason;\n contextUsage = metadata.contextUsage;\n }\n for (const source of metadata?.sources ?? []) {\n const key = `${source.url}\\u0000${source.startIndex ?? \"\"}\\u0000${source.endIndex ?? \"\"}`;\n sources.set(key, source);\n }\n for (const toolCall of metadata?.providerToolCalls ?? []) {\n providerToolCalls.set(toolCall.id, toolCall);\n }\n }\n const artifacts: {\n sources?: CompletionSource[];\n providerToolCalls?: ProviderToolCall[];\n finishReason?: CompletionFinishReason;\n providerFinishReason?: string;\n contextUsage?: import(\"../../completion/index\").ContextUsage;\n } = {};\n if (sources.size > 0) artifacts.sources = [...sources.values()];\n if (providerToolCalls.size > 0) {\n artifacts.providerToolCalls = [...providerToolCalls.values()];\n }\n if (finishReason !== undefined) artifacts.finishReason = finishReason;\n if (providerFinishReason !== undefined) {\n artifacts.providerFinishReason = providerFinishReason;\n }\n if (contextUsage !== undefined) artifacts.contextUsage = contextUsage;\n return artifacts;\n}\n\ntype ReasoningDeltaEvent = Extract<AgentStreamEvent, { type: \"reasoning_delta\" }>;\n\nfunction reasoningDeltaEvent(\n turn: number,\n delta: string,\n details: {\n id?: ReasoningDeltaEvent[\"id\"] | undefined;\n contentType?: ReasoningDeltaEvent[\"contentType\"] | undefined;\n signature?: ReasoningDeltaEvent[\"signature\"] | undefined;\n } = {},\n): ReasoningDeltaEvent {\n const event: ReasoningDeltaEvent = {\n type: \"reasoning_delta\",\n turn,\n delta,\n };\n if (details.id !== undefined) {\n event.id = details.id;\n }\n if (details.contentType !== undefined) {\n event.contentType = details.contentType;\n }\n if (details.signature !== undefined) {\n event.signature = details.signature;\n }\n return event;\n}\n\nfunction textFromMessage(message: MessageType): string {\n if (message.role === \"system\") {\n return message.content;\n }\n if (typeof message.content === \"string\") {\n return message.content;\n }\n return message.content\n .flatMap((content) => {\n if (content.type === \"text\") {\n return [content.text];\n }\n if (content.type === \"file\" && content.data.type === \"text\") {\n return [content.data.text];\n }\n return [];\n })\n .join(\"\\n\");\n}\n\nfunction latestAssistantText(messages: readonly MessageType[]): string {\n for (let index = messages.length - 1; index >= 0; index -= 1) {\n const message = messages[index];\n if (message?.role === \"assistant\") {\n return typeof message.content === \"string\"\n ? message.content\n : textFromAssistantContent(message.content);\n }\n }\n return \"\";\n}\n\nfunction structuredOutputRetryRequest(\n request: CompletionRequest,\n response: CompletionResponse,\n error: unknown,\n): StructuredOutputRetryRequest {\n const truncated = error instanceof AgentStructuredOutputError && error.phase === \"truncated\";\n const correction: MessageType = {\n role: \"user\",\n content: truncated ? STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT : STRUCTURED_OUTPUT_RETRY_PROMPT,\n };\n if (truncated) {\n return {\n request: {\n ...request,\n chatHistory: [...request.chatHistory, correction],\n },\n previousResponse: \"omitted\",\n includedOutputLength: 0,\n };\n }\n const preview = structuredOutputRepairPreview(textFromAssistantContent(response.choice));\n if (preview.includedOutputLength === 0) {\n return {\n request: {\n ...request,\n chatHistory: [...request.chatHistory, correction],\n },\n previousResponse: \"omitted\",\n includedOutputLength: 0,\n };\n }\n const invalidResponse: MessageType = {\n role: \"assistant\",\n content: [{ type: \"text\", text: preview.text }],\n };\n return {\n request: {\n ...request,\n chatHistory: [...request.chatHistory, invalidResponse, correction],\n },\n previousResponse: \"preview\",\n includedOutputLength: preview.includedOutputLength,\n };\n}\n\nfunction structuredOutputRetryEventAttributes(\n error: unknown,\n retryRequest: StructuredOutputRetryRequest,\n): JsonObject {\n const attributes: JsonObject = {\n previousResponse: retryRequest.previousResponse,\n includedOutputLength: retryRequest.includedOutputLength,\n };\n if (!(error instanceof AgentStructuredOutputError)) return attributes;\n Object.assign(attributes, {\n failurePhase: error.phase,\n outputLength: error.outputLength,\n normalizedLength: error.normalizedLength,\n attemptUsage: usageEventValue(error.attemptUsage),\n cumulativeUsage: usageEventValue(error.usage),\n });\n if (error.finishReason !== undefined) attributes.finishReason = error.finishReason;\n if (error.providerFinishReason !== undefined) {\n attributes.providerFinishReason = error.providerFinishReason;\n }\n return attributes;\n}\n\nfunction providerOutputRetryEventAttributes(\n error: unknown,\n cumulativeUsage: Usage,\n attemptUsage?: Usage | undefined,\n): JsonObject | undefined {\n const resolvedAttemptUsage = attemptUsage ?? completionProviderOutputErrorUsage(error);\n if (resolvedAttemptUsage === undefined) return undefined;\n return {\n attemptUsage: usageEventValue(resolvedAttemptUsage),\n cumulativeUsage: usageEventValue(cumulativeUsage),\n };\n}\n\nfunction usageEventValue(usage: Usage): JsonObject {\n const value: JsonObject = {\n inputTokens: usage.inputTokens,\n outputTokens: usage.outputTokens,\n totalTokens: usage.totalTokens,\n cachedInputTokens: usage.cachedInputTokens,\n cacheCreationInputTokens: usage.cacheCreationInputTokens,\n };\n if (usage.details !== undefined) value.details = { ...usage.details };\n return value;\n}\n\nfunction providerMessages(messages: readonly MessageType[]): MessageType[] {\n const providerMessages: MessageType[] = [];\n for (const message of messages) {\n if (message.role !== \"tool\") {\n providerMessages.push(message);\n continue;\n }\n const results = message.content.filter((part) => part.type === \"tool-result\");\n if (results.length > 0) {\n providerMessages.push({ ...message, content: results });\n }\n }\n return providerMessages;\n}\n\nfunction guardrailDecisionAttributes(decision: GuardrailDecisionRecord): JsonObject {\n const attributes: JsonObject = {\n policyId: decision.policyId,\n guardrailId: decision.guardrailId,\n boundary: decision.boundary,\n mode: decision.mode,\n action: decision.action,\n applied: decision.applied,\n latencyMs: decision.latencyMs,\n };\n if (decision.reason !== undefined) {\n attributes.reason = decision.reason;\n }\n if (decision.message !== undefined) {\n attributes.message = decision.message;\n }\n return attributes;\n}\n\nfunction blockedOutcomeDetails(\n decisions: readonly GuardrailDecisionRecord[],\n fallbackReason: string,\n): { reason: string; message?: string | undefined } {\n for (let index = decisions.length - 1; index >= 0; index -= 1) {\n const decision = decisions[index];\n if (decision?.applied !== true || decision.action !== \"block\") continue;\n return decision.message === undefined\n ? { reason: decision.reason ?? fallbackReason }\n : { reason: decision.reason ?? fallbackReason, message: decision.message };\n }\n return { reason: fallbackReason };\n}\n\nfunction observerRunEnd<Output>(outcome: AgentOutcome<Output>): AgentRunEndArgs {\n const common = {\n runId: outcome.runId,\n text: outcome.text,\n usage: outcome.usage,\n messages: outcome.messages,\n sources: outcome.sources,\n providerToolCalls: outcome.providerToolCalls,\n resumedFrom: outcome.resumedFrom,\n };\n switch (outcome.type) {\n case \"response\":\n return { ...common, status: \"completed\", output: outcome.output };\n case \"blocked\":\n return { ...common, status: \"blocked\", stage: outcome.stage };\n case \"interaction\":\n return { ...common, status: \"suspended\", interaction: outcome.interaction };\n }\n}\n"],"mappings":"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","names":["providerMessages"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-SC4SUIEY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}