@anvia/core 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-2QZJTG2E.js → chunk-23GEYG2X.js} +11 -71
  47. package/dist/chunk-23GEYG2X.js.map +1 -0
  48. package/dist/{chunk-I3Q7XSBB.js → chunk-23LRXKQX.js} +6 -4
  49. package/dist/{chunk-I3Q7XSBB.js.map → chunk-23LRXKQX.js.map} +1 -1
  50. package/dist/{chunk-YK4WAAS4.js → chunk-2NLINXRF.js} +1 -1
  51. package/dist/{chunk-SPD4XVR7.js → chunk-2XSMGVBG.js} +1 -1
  52. package/dist/chunk-3J2CSVPR.js +1 -0
  53. package/dist/chunk-3J2CSVPR.js.map +1 -0
  54. package/dist/chunk-3P3YVJ7V.js +1 -0
  55. package/dist/chunk-3P3YVJ7V.js.map +1 -0
  56. package/dist/chunk-3TAQXJBC.js +107 -0
  57. package/dist/chunk-3TAQXJBC.js.map +1 -0
  58. package/dist/chunk-47NTHIVB.js +76 -0
  59. package/dist/chunk-47NTHIVB.js.map +1 -0
  60. package/dist/chunk-4AW2633B.js +9 -0
  61. package/dist/chunk-4AW2633B.js.map +1 -0
  62. package/dist/{chunk-3XQGVDU5.js → chunk-4C7AXYOM.js} +1 -1
  63. package/dist/{chunk-IZNOP6JG.js → chunk-4FIVU53H.js} +1 -1
  64. package/dist/chunk-4ITAV7YA.js +1 -0
  65. package/dist/chunk-4ITAV7YA.js.map +1 -0
  66. package/dist/{chunk-7JLAIN6E.js → chunk-4ONUNWGC.js} +2 -2
  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-5AETKC4L.js +107 -0
  72. package/dist/chunk-5AETKC4L.js.map +1 -0
  73. package/dist/chunk-5I2NVRHC.js +146 -0
  74. package/dist/chunk-5I2NVRHC.js.map +1 -0
  75. package/dist/chunk-5IURMWFN.js +53 -0
  76. package/dist/chunk-5IURMWFN.js.map +1 -0
  77. package/dist/chunk-5M6GTA3T.js +1 -0
  78. package/dist/chunk-5M6GTA3T.js.map +1 -0
  79. package/dist/chunk-5N5W7CX7.js +18 -0
  80. package/dist/chunk-5N5W7CX7.js.map +1 -0
  81. package/dist/chunk-5P2YOQSA.js +355 -0
  82. package/dist/chunk-5P2YOQSA.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-7F53DOML.js +53 -0
  98. package/dist/chunk-7F53DOML.js.map +1 -0
  99. package/dist/chunk-7KAGWJ5M.js +112 -0
  100. package/dist/chunk-7KAGWJ5M.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-B47EXUHL.js +67 -0
  106. package/dist/chunk-B47EXUHL.js.map +1 -0
  107. package/dist/chunk-B5JQDR33.js +14 -0
  108. package/dist/chunk-B5JQDR33.js.map +1 -0
  109. package/dist/chunk-B5YTCKUJ.js +158 -0
  110. package/dist/chunk-B5YTCKUJ.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-GDJNOZ47.js +1 -0
  148. package/dist/chunk-GDJNOZ47.js.map +1 -0
  149. package/dist/chunk-GDY2Z2SZ.js +83 -0
  150. package/dist/chunk-GDY2Z2SZ.js.map +1 -0
  151. package/dist/chunk-GLMYZ6OA.js +20 -0
  152. package/dist/chunk-GLMYZ6OA.js.map +1 -0
  153. package/dist/{chunk-XEVOC433.js → chunk-GPVXCY5I.js} +2 -73
  154. package/dist/chunk-GPVXCY5I.js.map +1 -0
  155. package/dist/{chunk-KSKST3KP.js → chunk-H3H74RWJ.js} +1 -1
  156. package/dist/chunk-HAAGSIZH.js +89 -0
  157. package/dist/chunk-HAAGSIZH.js.map +1 -0
  158. package/dist/{chunk-K5L7R7XM.js → chunk-HHMLE3TZ.js} +6 -54
  159. package/dist/chunk-HHMLE3TZ.js.map +1 -0
  160. package/dist/{chunk-JLJMVRRE.js → chunk-HP34GRQX.js} +10 -83
  161. package/dist/chunk-HP34GRQX.js.map +1 -0
  162. package/dist/chunk-HTI343NP.js +1 -0
  163. package/dist/chunk-HTI343NP.js.map +1 -0
  164. package/dist/{chunk-T2C3CGDQ.js → chunk-HTI7DZJM.js} +6 -4
  165. package/dist/{chunk-T2C3CGDQ.js.map → chunk-HTI7DZJM.js.map} +1 -1
  166. package/dist/chunk-IDNL6IH4.js +294 -0
  167. package/dist/chunk-IDNL6IH4.js.map +1 -0
  168. package/dist/chunk-IV6YQTY2.js +47 -0
  169. package/dist/chunk-IV6YQTY2.js.map +1 -0
  170. package/dist/chunk-J4SINPUA.js +939 -0
  171. package/dist/chunk-J4SINPUA.js.map +1 -0
  172. package/dist/chunk-J6S6MT7O.js +32 -0
  173. package/dist/chunk-J6S6MT7O.js.map +1 -0
  174. package/dist/chunk-JB3RFK6K.js +168 -0
  175. package/dist/chunk-JB3RFK6K.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-JOQ2T3QP.js +663 -0
  183. package/dist/chunk-JOQ2T3QP.js.map +1 -0
  184. package/dist/chunk-K4IBS7VB.js +55 -0
  185. package/dist/chunk-K4IBS7VB.js.map +1 -0
  186. package/dist/chunk-KBBQSP4M.js +16 -0
  187. package/dist/chunk-KBBQSP4M.js.map +1 -0
  188. package/dist/chunk-KFAVEL5F.js +68 -0
  189. package/dist/chunk-KFAVEL5F.js.map +1 -0
  190. package/dist/chunk-KITX3HDN.js +17 -0
  191. package/dist/chunk-KITX3HDN.js.map +1 -0
  192. package/dist/chunk-KO5NMTAM.js +1 -0
  193. package/dist/chunk-KO5NMTAM.js.map +1 -0
  194. package/dist/chunk-KY4VXIN2.js +118 -0
  195. package/dist/chunk-KY4VXIN2.js.map +1 -0
  196. package/dist/chunk-KZGSXJKU.js +29 -0
  197. package/dist/chunk-KZGSXJKU.js.map +1 -0
  198. package/dist/chunk-LAIATEUB.js +24 -0
  199. package/dist/chunk-LAIATEUB.js.map +1 -0
  200. package/dist/{chunk-OJBFDBLG.js → chunk-LBYJPMHC.js} +2 -2
  201. package/dist/chunk-LKIABZNR.js +49 -0
  202. package/dist/chunk-LKIABZNR.js.map +1 -0
  203. package/dist/chunk-LQJ4KHMY.js +23 -0
  204. package/dist/chunk-LQJ4KHMY.js.map +1 -0
  205. package/dist/chunk-MEN4AFDZ.js +1 -0
  206. package/dist/chunk-MEN4AFDZ.js.map +1 -0
  207. package/dist/chunk-MHOJJYDK.js +93 -0
  208. package/dist/chunk-MHOJJYDK.js.map +1 -0
  209. package/dist/chunk-MJCMKZFP.js +30 -0
  210. package/dist/chunk-MJCMKZFP.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-OJF67RNM.js +1 -0
  222. package/dist/chunk-OJF67RNM.js.map +1 -0
  223. package/dist/chunk-PHLGGRHC.js +89 -0
  224. package/dist/chunk-PHLGGRHC.js.map +1 -0
  225. package/dist/chunk-PIMD4DYG.js +104 -0
  226. package/dist/chunk-PIMD4DYG.js.map +1 -0
  227. package/dist/chunk-PJNE75WC.js +1 -0
  228. package/dist/chunk-PJNE75WC.js.map +1 -0
  229. package/dist/{chunk-J6LVLV6P.js → chunk-PLDJCCVL.js} +1 -1
  230. package/dist/{chunk-3RWESPUG.js → chunk-POXHJF3H.js} +6 -51
  231. package/dist/chunk-POXHJF3H.js.map +1 -0
  232. package/dist/chunk-PPJ7SYQL.js +81 -0
  233. package/dist/chunk-PPJ7SYQL.js.map +1 -0
  234. package/dist/chunk-PT777EQ3.js +48 -0
  235. package/dist/chunk-PT777EQ3.js.map +1 -0
  236. package/dist/chunk-PYLPLFJZ.js +318 -0
  237. package/dist/chunk-PYLPLFJZ.js.map +1 -0
  238. package/dist/chunk-QEPBHHAP.js +41 -0
  239. package/dist/chunk-QEPBHHAP.js.map +1 -0
  240. package/dist/chunk-QHGYCYV6.js +91 -0
  241. package/dist/chunk-QHGYCYV6.js.map +1 -0
  242. package/dist/chunk-R6722CIU.js +28 -0
  243. package/dist/chunk-R6722CIU.js.map +1 -0
  244. package/dist/chunk-RA4YVN43.js +1 -0
  245. package/dist/chunk-RA4YVN43.js.map +1 -0
  246. package/dist/chunk-RT5LUEO3.js +2339 -0
  247. package/dist/chunk-RT5LUEO3.js.map +1 -0
  248. package/dist/chunk-RXKUIJ77.js +236 -0
  249. package/dist/chunk-RXKUIJ77.js.map +1 -0
  250. package/dist/chunk-SC4SUIEY.js +1 -0
  251. package/dist/chunk-SC4SUIEY.js.map +1 -0
  252. package/dist/chunk-SQAAVYJG.js +12 -0
  253. package/dist/chunk-SQAAVYJG.js.map +1 -0
  254. package/dist/chunk-SXE4J43E.js +59 -0
  255. package/dist/chunk-SXE4J43E.js.map +1 -0
  256. package/dist/{chunk-EFLT7XZD.js → chunk-SYULMZGL.js} +6 -4
  257. package/dist/{chunk-EFLT7XZD.js.map → chunk-SYULMZGL.js.map} +1 -1
  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-TSPQD5HW.js +613 -0
  267. package/dist/chunk-TSPQD5HW.js.map +1 -0
  268. package/dist/{chunk-JTJU56ZV.js → chunk-UOGM62JL.js} +11 -7
  269. package/dist/{chunk-JTJU56ZV.js.map → chunk-UOGM62JL.js.map} +1 -1
  270. package/dist/chunk-USRKPEQN.js +55 -0
  271. package/dist/chunk-USRKPEQN.js.map +1 -0
  272. package/dist/chunk-UTAB3XQI.js +667 -0
  273. package/dist/chunk-UTAB3XQI.js.map +1 -0
  274. package/dist/chunk-V3FFZWF3.js +182 -0
  275. package/dist/chunk-V3FFZWF3.js.map +1 -0
  276. package/dist/chunk-V4OZ7ISA.js +9 -0
  277. package/dist/chunk-V4OZ7ISA.js.map +1 -0
  278. package/dist/chunk-VZ5ZZBNX.js +139 -0
  279. package/dist/chunk-VZ5ZZBNX.js.map +1 -0
  280. package/dist/{chunk-AHLKV6KP.js → chunk-WN6AVBO4.js} +1 -1
  281. package/dist/chunk-WXR5CWSC.js +1 -0
  282. package/dist/chunk-WXR5CWSC.js.map +1 -0
  283. package/dist/chunk-X6WS3XWL.js +36 -0
  284. package/dist/chunk-X6WS3XWL.js.map +1 -0
  285. package/dist/{chunk-Q5BCNYED.js → chunk-XJRNBTIV.js} +7 -4
  286. package/dist/chunk-XQV3XNVT.js +225 -0
  287. package/dist/chunk-XQV3XNVT.js.map +1 -0
  288. package/dist/chunk-XV3DH5GC.js +58 -0
  289. package/dist/chunk-XV3DH5GC.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 +3 -37
  530. package/dist/streaming/index.js.map +1 -1
  531. package/dist/streaming/readable-stream.js +7 -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/agent/team/agent-team.ts"],"sourcesContent":["import { Agent } from \"../agent\";\nimport type { CompletionModel } from \"../../completion\";\nimport { assertPositiveSafeInteger } from \"../../internal/agent-runtime/run-validation\";\nimport { TeamRun } from \"../../internal/team-runtime/run\";\nimport { TeamStream } from \"../../internal/team-runtime/stream\";\nimport { TeamPolicy } from \"../../internal/team-runtime/policy\";\nimport type {\n AgentTeamLimits,\n AgentTeamMember,\n AgentTeamOptions,\n AgentTeamOutcome,\n AgentTeamRunOptions,\n AgentTeamStream,\n} from \"./types\";\n\nexport class AgentTeam<\n Output = string,\n M extends CompletionModel = CompletionModel,\n ContextDocument = unknown,\n> {\n readonly id: string;\n readonly members: readonly AgentTeamMember[];\n readonly limits: Readonly<Required<AgentTeamLimits>>;\n private readonly coordinator: Agent<Output, M, ContextDocument>;\n private readonly policy: TeamPolicy;\n\n constructor(options: AgentTeamOptions<Output, M, ContextDocument>) {\n this.coordinator = new Agent(options);\n this.id = this.coordinator.id;\n if (!Array.isArray(options.members)) throw new TypeError(\"AgentTeam requires a members array.\");\n const ids = new Set<string>();\n for (const member of options.members) {\n if (!(member instanceof Agent))\n throw new TypeError(\"AgentTeam members must be Agent instances.\");\n if (ids.has(member.id)) throw new TypeError(`Duplicate AgentTeam member ID: ${member.id}`);\n if (!/^[a-zA-Z0-9_-]{1,58}$/.test(member.id))\n throw new TypeError(\n \"AgentTeam member IDs must form valid spawn tool names (1–58 letters, digits, underscores, or hyphens).\",\n );\n ids.add(member.id);\n }\n const reserved = new Set([\n \"send_message\",\n \"wait_for_agent\",\n \"list_agents\",\n \"cancel_agent\",\n ...[...ids].map((id) => `spawn_${id}`),\n ]);\n for (const agent of [this.coordinator, ...options.members]) {\n for (const tool of agent.tools) {\n if (reserved.has(tool.name))\n throw new TypeError(`Tool \"${tool.name}\" conflicts with an AgentTeam tool.`);\n }\n }\n this.members = Object.freeze([...options.members]);\n this.policy = new TeamPolicy(this.members, options.communication, options.spawning);\n this.limits = Object.freeze({\n maxDepth: assertPositiveSafeInteger(options.limits?.maxDepth ?? 3, \"maxDepth\"),\n maxConcurrentAgents: assertPositiveSafeInteger(\n options.limits?.maxConcurrentAgents ?? 4,\n \"maxConcurrentAgents\",\n ),\n maxAgentInstances: assertPositiveSafeInteger(\n options.limits?.maxAgentInstances ?? 12,\n \"maxAgentInstances\",\n ),\n maxTotalTurns: assertPositiveSafeInteger(\n options.limits?.maxTotalTurns ?? 100,\n \"maxTotalTurns\",\n ),\n maxBufferedEvents: assertPositiveSafeInteger(\n options.limits?.maxBufferedEvents ?? 1024,\n \"maxBufferedEvents\",\n ),\n });\n }\n\n generate(options: AgentTeamRunOptions<Output, M>): Promise<AgentTeamOutcome<Output>> {\n return this.createStream(options, false).result;\n }\n\n stream(options: AgentTeamRunOptions<Output, M>): AgentTeamStream<Output> {\n return this.createStream(options, true);\n }\n\n private createStream(\n options: AgentTeamRunOptions<Output, M>,\n streaming: boolean,\n ): AgentTeamStream<Output> {\n if (\n typeof options !== \"object\" ||\n options === null ||\n (options.prompt === undefined) === (options.messages === undefined)\n ) {\n throw new TypeError(\"AgentTeam runs require exactly one of prompt or messages.\");\n }\n if (\n options.resolveInteraction !== undefined &&\n typeof options.resolveInteraction !== \"function\"\n ) {\n throw new TypeError(\"resolveInteraction must be a function.\");\n }\n return new TeamStream(\n (emit) =>\n // The scheduler runs heterogeneous definitions. Public inputs are checked against M above.\n new TeamRun(\n this.coordinator,\n this.policy,\n this.limits,\n { ...options } as AgentTeamRunOptions<unknown>,\n streaming,\n emit,\n ),\n this.limits.maxBufferedEvents,\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAeO,IAAM,YAAN,MAIL;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EACQ;AAAA,EACA;AAAA,EAEjB,YAAY,SAAuD;AACjE,SAAK,cAAc,IAAI,MAAM,OAAO;AACpC,SAAK,KAAK,KAAK,YAAY;AAC3B,QAAI,CAAC,MAAM,QAAQ,QAAQ,OAAO,EAAG,OAAM,IAAI,UAAU,qCAAqC;AAC9F,UAAM,MAAM,oBAAI,IAAY;AAC5B,eAAW,UAAU,QAAQ,SAAS;AACpC,UAAI,EAAE,kBAAkB;AACtB,cAAM,IAAI,UAAU,4CAA4C;AAClE,UAAI,IAAI,IAAI,OAAO,EAAE,EAAG,OAAM,IAAI,UAAU,kCAAkC,OAAO,EAAE,EAAE;AACzF,UAAI,CAAC,wBAAwB,KAAK,OAAO,EAAE;AACzC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AACF,UAAI,IAAI,OAAO,EAAE;AAAA,IACnB;AACA,UAAM,WAAW,oBAAI,IAAI;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,OAAO,SAAS,EAAE,EAAE;AAAA,IACvC,CAAC;AACD,eAAW,SAAS,CAAC,KAAK,aAAa,GAAG,QAAQ,OAAO,GAAG;AAC1D,iBAAW,QAAQ,MAAM,OAAO;AAC9B,YAAI,SAAS,IAAI,KAAK,IAAI;AACxB,gBAAM,IAAI,UAAU,SAAS,KAAK,IAAI,qCAAqC;AAAA,MAC/E;AAAA,IACF;AACA,SAAK,UAAU,OAAO,OAAO,CAAC,GAAG,QAAQ,OAAO,CAAC;AACjD,SAAK,SAAS,IAAI,WAAW,KAAK,SAAS,QAAQ,eAAe,QAAQ,QAAQ;AAClF,SAAK,SAAS,OAAO,OAAO;AAAA,MAC1B,UAAU,0BAA0B,QAAQ,QAAQ,YAAY,GAAG,UAAU;AAAA,MAC7E,qBAAqB;AAAA,QACnB,QAAQ,QAAQ,uBAAuB;AAAA,QACvC;AAAA,MACF;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAQ,QAAQ,qBAAqB;AAAA,QACrC;AAAA,MACF;AAAA,MACA,eAAe;AAAA,QACb,QAAQ,QAAQ,iBAAiB;AAAA,QACjC;AAAA,MACF;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAQ,QAAQ,qBAAqB;AAAA,QACrC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,SAAS,SAA4E;AACnF,WAAO,KAAK,aAAa,SAAS,KAAK,EAAE;AAAA,EAC3C;AAAA,EAEA,OAAO,SAAkE;AACvE,WAAO,KAAK,aAAa,SAAS,IAAI;AAAA,EACxC;AAAA,EAEQ,aACN,SACA,WACyB;AACzB,QACE,OAAO,YAAY,YACnB,YAAY,QACX,QAAQ,WAAW,YAAgB,QAAQ,aAAa,SACzD;AACA,YAAM,IAAI,UAAU,2DAA2D;AAAA,IACjF;AACA,QACE,QAAQ,uBAAuB,UAC/B,OAAO,QAAQ,uBAAuB,YACtC;AACA,YAAM,IAAI,UAAU,wCAAwC;AAAA,IAC9D;AACA,WAAO,IAAI;AAAA,MACT,CAAC;AAAA;AAAA,QAEC,IAAI;AAAA,UACF,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,EAAE,GAAG,QAAQ;AAAA,UACb;AAAA,UACA;AAAA,QACF;AAAA;AAAA,MACF,KAAK,OAAO;AAAA,IACd;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,146 @@
1
+ import {
2
+ parseAgentQuestionPrompts
3
+ } from "./chunk-LBYJPMHC.js";
4
+ import {
5
+ parseMessages
6
+ } from "./chunk-BONQTXRQ.js";
7
+ import {
8
+ isJsonValue
9
+ } from "./chunk-4C7AXYOM.js";
10
+
11
+ // src/internal/agent-runtime/continuation-state.ts
12
+ function serializeContinuationState(state) {
13
+ const value = structuredClone(state);
14
+ if (!isJsonValue(value) || Array.isArray(value) || value === null) {
15
+ throw new TypeError("Agent continuation state must be strict JSON.");
16
+ }
17
+ return value;
18
+ }
19
+ function parseContinuationState(value, interaction) {
20
+ requireOnlyKeys(value, [
21
+ "kind",
22
+ "history",
23
+ "messages",
24
+ "pending",
25
+ "remainingToolCalls",
26
+ "steering",
27
+ "memoryScope"
28
+ ]);
29
+ if (value.kind !== "anvia.agent-continuation") {
30
+ throw new TypeError("Agent continuation has an unsupported internal state.");
31
+ }
32
+ const history = parseMessages(value.history);
33
+ const messages = parseMessages(value.messages);
34
+ const pending = parsePending(value.pending);
35
+ const remainingToolCalls = parseToolCalls(value.remainingToolCalls);
36
+ const steering = parseSteering(value.steering);
37
+ if (pending.toolCall.toolCallId !== interaction.toolCallId || pending.toolCall.toolName !== interaction.toolName || pending.toolCall.callId !== interaction.callId || pending.internalCallId !== interaction.internalCallId) {
38
+ throw new TypeError("Agent continuation interaction does not match its pending tool call.");
39
+ }
40
+ if (interaction.type === "tool-approval" && !jsonEqual(interaction.input, pending.input)) {
41
+ throw new TypeError("Agent continuation approval input does not match its pending tool input.");
42
+ }
43
+ if (interaction.type === "tool-question") {
44
+ const questions = object(pending.input) && "questions" in pending.input ? parseAgentQuestionPrompts(pending.input.questions) : void 0;
45
+ if (questions === void 0 || !jsonEqual(interaction.questions, questions)) {
46
+ throw new TypeError(
47
+ "Agent continuation questions do not match its pending question tool input."
48
+ );
49
+ }
50
+ }
51
+ const state = {
52
+ kind: "anvia.agent-continuation",
53
+ history,
54
+ messages,
55
+ pending,
56
+ remainingToolCalls,
57
+ steering
58
+ };
59
+ if (value.memoryScope !== void 0) {
60
+ state.memoryScope = parseOptionalJsonObject(value.memoryScope, "memoryScope");
61
+ }
62
+ return state;
63
+ }
64
+ function questionResult(answers) {
65
+ return { type: "json", value: { answers: structuredClone([...answers]) } };
66
+ }
67
+ function parsePending(value) {
68
+ if (!object(value)) throw new TypeError("Agent continuation pending state is invalid.");
69
+ const [toolCall] = parseToolCalls([value.toolCall]);
70
+ if (toolCall === void 0) throw new TypeError("Agent continuation pending tool is missing.");
71
+ if (typeof value.effectiveArgs !== "string" || typeof value.internalCallId !== "string") {
72
+ throw new TypeError("Agent continuation pending execution metadata is invalid.");
73
+ }
74
+ const pending = {
75
+ toolCall,
76
+ effectiveArgs: value.effectiveArgs,
77
+ input: parseJsonValue(value.input, "pending input"),
78
+ internalCallId: value.internalCallId
79
+ };
80
+ if (typeof value.rejectMessage === "string") {
81
+ pending.rejectMessage = value.rejectMessage;
82
+ }
83
+ return pending;
84
+ }
85
+ function parseJsonValue(value, name) {
86
+ if (!isJsonValue(value)) {
87
+ throw new TypeError(`Agent continuation ${name} is invalid.`);
88
+ }
89
+ return structuredClone(value);
90
+ }
91
+ function parseToolCalls(value) {
92
+ if (!Array.isArray(value)) throw new TypeError("Agent continuation tool calls must be an array.");
93
+ const message = parseMessages([{ role: "assistant", content: value }])[0];
94
+ if (message?.role !== "assistant" || typeof message.content === "string") {
95
+ throw new TypeError("Agent continuation tool calls are invalid.");
96
+ }
97
+ if (!message.content.every((part) => part.type === "tool-call")) {
98
+ throw new TypeError("Agent continuation contains a non-tool-call part.");
99
+ }
100
+ return message.content;
101
+ }
102
+ function parseSteering(value) {
103
+ if (!Array.isArray(value)) throw new TypeError("Agent continuation steering state is invalid.");
104
+ return value.map((item) => {
105
+ if (!object(item) || typeof item.id !== "string") {
106
+ throw new TypeError("Agent continuation steering entry is invalid.");
107
+ }
108
+ return { id: item.id, messages: parseMessages(item.messages) };
109
+ });
110
+ }
111
+ function parseOptionalJsonObject(value, name) {
112
+ if (value === void 0) return void 0;
113
+ if (!object(value) || !isJsonValue(value)) {
114
+ throw new TypeError(`Agent continuation ${name} is invalid.`);
115
+ }
116
+ return structuredClone(value);
117
+ }
118
+ function object(value) {
119
+ return typeof value === "object" && value !== null && !Array.isArray(value);
120
+ }
121
+ function requireOnlyKeys(value, allowed) {
122
+ const allowedKeys = new Set(allowed);
123
+ const unknown = Object.keys(value).find((key) => !allowedKeys.has(key));
124
+ if (unknown !== void 0) {
125
+ throw new TypeError(`Agent continuation state contains unknown key "${unknown}".`);
126
+ }
127
+ }
128
+ function jsonEqual(left, right) {
129
+ if (Object.is(left, right)) return true;
130
+ if (Array.isArray(left)) {
131
+ return Array.isArray(right) && left.length === right.length && left.every((value, index) => jsonEqual(value, right[index]));
132
+ }
133
+ if (object(left)) {
134
+ if (!object(right)) return false;
135
+ const keys = Object.keys(left);
136
+ return keys.length === Object.keys(right).length && keys.every((key) => key in right && jsonEqual(left[key], right[key]));
137
+ }
138
+ return false;
139
+ }
140
+
141
+ export {
142
+ serializeContinuationState,
143
+ parseContinuationState,
144
+ questionResult
145
+ };
146
+ //# sourceMappingURL=chunk-5I2NVRHC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/agent-runtime/continuation-state.ts"],"sourcesContent":["import type { AgentInteractionRequest, AgentQuestionAnswer } from \"../../agent/interactions\";\nimport { parseAgentQuestionPrompts } from \"../../agent/interactions\";\nimport {\n isJsonValue,\n type JsonObject,\n type JsonValue,\n type Message,\n parseMessages,\n type ToolCallPart,\n type ToolResultPart,\n} from \"../../completion\";\nimport type { MemoryScope } from \"../../memory\";\nimport type { PendingToolExecution } from \"./interaction-suspension\";\n\nexport type QueuedSteering = {\n id: string;\n messages: Message[];\n};\n\nexport type AgentContinuationState = {\n kind: \"anvia.agent-continuation\";\n history: Message[];\n messages: Message[];\n pending: PendingToolExecution;\n remainingToolCalls: ToolCallPart[];\n steering: QueuedSteering[];\n memoryScope?: MemoryScope;\n};\n\nexport function serializeContinuationState(state: AgentContinuationState): JsonObject {\n const value = structuredClone(state) as unknown;\n if (!isJsonValue(value) || Array.isArray(value) || value === null) {\n throw new TypeError(\"Agent continuation state must be strict JSON.\");\n }\n return value as JsonObject;\n}\n\nexport function parseContinuationState(\n value: JsonObject,\n interaction: AgentInteractionRequest,\n): AgentContinuationState {\n requireOnlyKeys(value, [\n \"kind\",\n \"history\",\n \"messages\",\n \"pending\",\n \"remainingToolCalls\",\n \"steering\",\n \"memoryScope\",\n ]);\n if (value.kind !== \"anvia.agent-continuation\") {\n throw new TypeError(\"Agent continuation has an unsupported internal state.\");\n }\n const history = parseMessages(value.history);\n const messages = parseMessages(value.messages);\n const pending = parsePending(value.pending);\n const remainingToolCalls = parseToolCalls(value.remainingToolCalls);\n const steering = parseSteering(value.steering);\n if (\n pending.toolCall.toolCallId !== interaction.toolCallId ||\n pending.toolCall.toolName !== interaction.toolName ||\n pending.toolCall.callId !== interaction.callId ||\n pending.internalCallId !== interaction.internalCallId\n ) {\n throw new TypeError(\"Agent continuation interaction does not match its pending tool call.\");\n }\n if (interaction.type === \"tool-approval\" && !jsonEqual(interaction.input, pending.input)) {\n throw new TypeError(\"Agent continuation approval input does not match its pending tool input.\");\n }\n if (interaction.type === \"tool-question\") {\n const questions =\n object(pending.input) && \"questions\" in pending.input\n ? parseAgentQuestionPrompts(pending.input.questions)\n : undefined;\n if (questions === undefined || !jsonEqual(interaction.questions, questions)) {\n throw new TypeError(\n \"Agent continuation questions do not match its pending question tool input.\",\n );\n }\n }\n const state: AgentContinuationState = {\n kind: \"anvia.agent-continuation\",\n history,\n messages,\n pending,\n remainingToolCalls,\n steering,\n };\n if (value.memoryScope !== undefined) {\n state.memoryScope = parseOptionalJsonObject(value.memoryScope, \"memoryScope\") as MemoryScope;\n }\n return state;\n}\n\nexport function questionResult(\n answers: readonly AgentQuestionAnswer[],\n): Extract<ToolResultPart[\"output\"], { type: \"json\" }> {\n return { type: \"json\", value: { answers: structuredClone([...answers]) } };\n}\n\nfunction parsePending(value: unknown): PendingToolExecution {\n if (!object(value)) throw new TypeError(\"Agent continuation pending state is invalid.\");\n const [toolCall] = parseToolCalls([value.toolCall]);\n if (toolCall === undefined) throw new TypeError(\"Agent continuation pending tool is missing.\");\n if (typeof value.effectiveArgs !== \"string\" || typeof value.internalCallId !== \"string\") {\n throw new TypeError(\"Agent continuation pending execution metadata is invalid.\");\n }\n const pending: PendingToolExecution = {\n toolCall,\n effectiveArgs: value.effectiveArgs,\n input: parseJsonValue(value.input, \"pending input\"),\n internalCallId: value.internalCallId,\n };\n if (typeof value.rejectMessage === \"string\") {\n pending.rejectMessage = value.rejectMessage;\n }\n return pending;\n}\n\nfunction parseJsonValue(value: unknown, name: string): JsonValue {\n if (!isJsonValue(value)) {\n throw new TypeError(`Agent continuation ${name} is invalid.`);\n }\n return structuredClone(value);\n}\n\nfunction parseToolCalls(value: unknown): ToolCallPart[] {\n if (!Array.isArray(value)) throw new TypeError(\"Agent continuation tool calls must be an array.\");\n const message = parseMessages([{ role: \"assistant\", content: value }])[0];\n if (message?.role !== \"assistant\" || typeof message.content === \"string\") {\n throw new TypeError(\"Agent continuation tool calls are invalid.\");\n }\n if (!message.content.every((part) => part.type === \"tool-call\")) {\n throw new TypeError(\"Agent continuation contains a non-tool-call part.\");\n }\n return message.content as ToolCallPart[];\n}\n\nfunction parseSteering(value: unknown): QueuedSteering[] {\n if (!Array.isArray(value)) throw new TypeError(\"Agent continuation steering state is invalid.\");\n return value.map((item) => {\n if (!object(item) || typeof item.id !== \"string\") {\n throw new TypeError(\"Agent continuation steering entry is invalid.\");\n }\n return { id: item.id, messages: parseMessages(item.messages) };\n });\n}\n\nfunction parseOptionalJsonObject(value: unknown, name: string): JsonObject | undefined {\n if (value === undefined) return undefined;\n if (!object(value) || !isJsonValue(value)) {\n throw new TypeError(`Agent continuation ${name} is invalid.`);\n }\n return structuredClone(value);\n}\n\nfunction object(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction requireOnlyKeys(value: JsonObject, allowed: readonly string[]): void {\n const allowedKeys = new Set(allowed);\n const unknown = Object.keys(value).find((key) => !allowedKeys.has(key));\n if (unknown !== undefined) {\n throw new TypeError(`Agent continuation state contains unknown key \"${unknown}\".`);\n }\n}\n\nfunction jsonEqual(left: unknown, right: unknown): boolean {\n if (Object.is(left, right)) return true;\n if (Array.isArray(left)) {\n return (\n Array.isArray(right) &&\n left.length === right.length &&\n left.every((value, index) => jsonEqual(value, right[index]))\n );\n }\n if (object(left)) {\n if (!object(right)) return false;\n const keys = Object.keys(left);\n return (\n keys.length === Object.keys(right).length &&\n keys.every((key) => key in right && jsonEqual(left[key], right[key]))\n );\n }\n return false;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,53 @@
1
+ import {
2
+ isJsonValue
3
+ } from "./chunk-4C7AXYOM.js";
4
+
5
+ // src/internal/agent-runtime/interaction-suspension.ts
6
+ var AgentInteractionSignal = class extends Error {
7
+ constructor(interaction, rejectMessage) {
8
+ super("Agent execution requires a human interaction.");
9
+ this.interaction = interaction;
10
+ this.rejectMessage = rejectMessage;
11
+ this.name = "AgentInteractionSignal";
12
+ }
13
+ interaction;
14
+ rejectMessage;
15
+ };
16
+ var ToolExecutionSuspension = class extends Error {
17
+ constructor(interaction, pending) {
18
+ super("Tool execution suspended for human interaction.");
19
+ this.interaction = interaction;
20
+ this.pending = pending;
21
+ this.name = "ToolExecutionSuspension";
22
+ }
23
+ interaction;
24
+ pending;
25
+ completedResults = [];
26
+ remainingToolCalls = [];
27
+ };
28
+ function approvalInteraction(request) {
29
+ if (request.toolCallId === void 0) {
30
+ throw new TypeError("Tool approval requires a canonical toolCallId.");
31
+ }
32
+ if (!isJsonValue(request.args)) {
33
+ throw new TypeError("Tool approval input must be strict JSON.");
34
+ }
35
+ let interaction = {
36
+ type: "tool-approval",
37
+ id: request.id,
38
+ toolName: request.toolName,
39
+ toolCallId: request.toolCallId,
40
+ internalCallId: request.internalCallId,
41
+ input: request.args
42
+ };
43
+ if (request.callId !== void 0) interaction = { ...interaction, callId: request.callId };
44
+ if (request.reason !== void 0) interaction = { ...interaction, reason: request.reason };
45
+ return interaction;
46
+ }
47
+
48
+ export {
49
+ AgentInteractionSignal,
50
+ ToolExecutionSuspension,
51
+ approvalInteraction
52
+ };
53
+ //# sourceMappingURL=chunk-5IURMWFN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/internal/agent-runtime/interaction-suspension.ts"],"sourcesContent":["import type { AgentInteractionRequest, AgentToolApprovalRequest } from \"../../agent/interactions\";\nimport {\n isJsonValue,\n type JsonValue,\n type ToolCallPart,\n type ToolResultPart,\n} from \"../../completion\";\n\nexport type PendingToolExecution = {\n toolCall: ToolCallPart;\n effectiveArgs: string;\n input: JsonValue;\n internalCallId: string;\n rejectMessage?: string;\n};\n\nexport class AgentInteractionSignal extends Error {\n constructor(\n readonly interaction: AgentInteractionRequest,\n readonly rejectMessage?: string,\n ) {\n super(\"Agent execution requires a human interaction.\");\n this.name = \"AgentInteractionSignal\";\n }\n}\n\nexport class ToolExecutionSuspension extends Error {\n completedResults: ToolResultPart[] = [];\n remainingToolCalls: ToolCallPart[] = [];\n\n constructor(\n readonly interaction: AgentInteractionRequest,\n readonly pending: PendingToolExecution,\n ) {\n super(\"Tool execution suspended for human interaction.\");\n this.name = \"ToolExecutionSuspension\";\n }\n}\n\nexport function approvalInteraction(request: {\n id: string;\n toolName: string;\n toolCallId?: string;\n callId?: string;\n internalCallId: string;\n args: unknown;\n reason?: string | undefined;\n rejectMessage?: string | undefined;\n}): AgentToolApprovalRequest {\n if (request.toolCallId === undefined) {\n throw new TypeError(\"Tool approval requires a canonical toolCallId.\");\n }\n if (!isJsonValue(request.args)) {\n throw new TypeError(\"Tool approval input must be strict JSON.\");\n }\n let interaction: AgentToolApprovalRequest = {\n type: \"tool-approval\",\n id: request.id,\n toolName: request.toolName,\n toolCallId: request.toolCallId,\n internalCallId: request.internalCallId,\n input: request.args,\n };\n if (request.callId !== undefined) interaction = { ...interaction, callId: request.callId };\n if (request.reason !== undefined) interaction = { ...interaction, reason: request.reason };\n return interaction;\n}\n"],"mappings":";;;;;AAgBO,IAAM,yBAAN,cAAqC,MAAM;AAAA,EAChD,YACW,aACA,eACT;AACA,UAAM,+CAA+C;AAH5C;AACA;AAGT,SAAK,OAAO;AAAA,EACd;AAAA,EALW;AAAA,EACA;AAKb;AAEO,IAAM,0BAAN,cAAsC,MAAM;AAAA,EAIjD,YACW,aACA,SACT;AACA,UAAM,iDAAiD;AAH9C;AACA;AAGT,SAAK,OAAO;AAAA,EACd;AAAA,EALW;AAAA,EACA;AAAA,EALX,mBAAqC,CAAC;AAAA,EACtC,qBAAqC,CAAC;AASxC;AAEO,SAAS,oBAAoB,SASP;AAC3B,MAAI,QAAQ,eAAe,QAAW;AACpC,UAAM,IAAI,UAAU,gDAAgD;AAAA,EACtE;AACA,MAAI,CAAC,YAAY,QAAQ,IAAI,GAAG;AAC9B,UAAM,IAAI,UAAU,0CAA0C;AAAA,EAChE;AACA,MAAI,cAAwC;AAAA,IAC1C,MAAM;AAAA,IACN,IAAI,QAAQ;AAAA,IACZ,UAAU,QAAQ;AAAA,IAClB,YAAY,QAAQ;AAAA,IACpB,gBAAgB,QAAQ;AAAA,IACxB,OAAO,QAAQ;AAAA,EACjB;AACA,MAAI,QAAQ,WAAW,OAAW,eAAc,EAAE,GAAG,aAAa,QAAQ,QAAQ,OAAO;AACzF,MAAI,QAAQ,WAAW,OAAW,eAAc,EAAE,GAAG,aAAa,QAAQ,QAAQ,OAAO;AACzF,SAAO;AACT;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-5M6GTA3T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,18 @@
1
+ // src/model-listing/errors.ts
2
+ var ModelListingError = class extends Error {
3
+ provider;
4
+ statusCode;
5
+ cause;
6
+ constructor(message, options = {}) {
7
+ super(message, { cause: options.cause });
8
+ this.name = "ModelListingError";
9
+ this.provider = options.provider;
10
+ this.statusCode = options.statusCode;
11
+ this.cause = options.cause;
12
+ }
13
+ };
14
+
15
+ export {
16
+ ModelListingError
17
+ };
18
+ //# sourceMappingURL=chunk-5N5W7CX7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-listing/errors.ts"],"sourcesContent":["type ModelListingErrorOptions = {\n provider?: string | undefined;\n statusCode?: number | undefined;\n cause?: unknown;\n};\n\nexport class ModelListingError extends Error {\n readonly provider?: string | undefined;\n readonly statusCode?: number | undefined;\n override readonly cause?: unknown;\n\n constructor(message: string, options: ModelListingErrorOptions = {}) {\n super(message, { cause: options.cause });\n this.name = \"ModelListingError\";\n this.provider = options.provider;\n this.statusCode = options.statusCode;\n this.cause = options.cause;\n }\n}\n"],"mappings":";AAMO,IAAM,oBAAN,cAAgC,MAAM;AAAA,EAClC;AAAA,EACA;AAAA,EACS;AAAA,EAElB,YAAY,SAAiB,UAAoC,CAAC,GAAG;AACnE,UAAM,SAAS,EAAE,OAAO,QAAQ,MAAM,CAAC;AACvC,SAAK,OAAO;AACZ,SAAK,WAAW,QAAQ;AACxB,SAAK,aAAa,QAAQ;AAC1B,SAAK,QAAQ,QAAQ;AAAA,EACvB;AACF;","names":[]}
@@ -0,0 +1,355 @@
1
+ import {
2
+ runEvalSuite
3
+ } from "./chunk-JOQ2T3QP.js";
4
+
5
+ // src/evals/cli.ts
6
+ var EvalAssertionError = class extends Error {
7
+ mismatches;
8
+ constructor(message, mismatches) {
9
+ super(`${message}
10
+ ${mismatches.map((mismatch) => `- ${mismatch}`).join("\n")}`);
11
+ this.name = "EvalAssertionError";
12
+ this.mismatches = mismatches;
13
+ }
14
+ };
15
+ function defineEvalExpectations(_suite, expectations) {
16
+ return expectations;
17
+ }
18
+ function formatEvalResult(result, options = {}) {
19
+ const format = options.format ?? "pretty";
20
+ if (format === "quiet") return "";
21
+ validatePrintOptions(options);
22
+ return format === "json" ? jsonResult(result, options) : prettyResult(result, options);
23
+ }
24
+ function printEvalResult(result, options = {}) {
25
+ const format = options.format ?? "pretty";
26
+ if (format === "quiet") return;
27
+ const write = options.output?.stdout ?? ((text) => process.stdout.write(text));
28
+ write(`${formatEvalResult(result, options)}
29
+ `);
30
+ }
31
+ function evalExitCode(result, expectations) {
32
+ const hasExpectations = expectations?.totals !== void 0 || expectations?.outcomes !== void 0;
33
+ const mismatches = hasExpectations ? expectationMismatches(result, expectations) : [];
34
+ if (hasExpectations && mismatches.length === 0) return 0;
35
+ if (hasExpectations && hasUnexpectedInvalid(result, expectations)) return 2;
36
+ if (hasExpectations) return 1;
37
+ if (requiredMetricCount(result, "invalid") > 0) return 2;
38
+ return requiredMetricCount(result, "fail") > 0 ? 1 : 0;
39
+ }
40
+ function assertEvalTotals(result, expected) {
41
+ const mismatches = totalMismatches(result, expected);
42
+ if (mismatches.length > 0) {
43
+ throw new EvalAssertionError("Evaluation totals did not match expectations.", mismatches);
44
+ }
45
+ }
46
+ function assertEvalOutcomes(result, expected) {
47
+ const mismatches = outcomeMismatches(result, expected);
48
+ if (mismatches.length > 0) {
49
+ throw new EvalAssertionError("Evaluation outcomes did not match expectations.", mismatches);
50
+ }
51
+ }
52
+ async function runEvalCli(options) {
53
+ const { format, exitCode, expectations, output, maxValueLength, redact: redact2, ...suiteOptions } = options;
54
+ const result = await runEvalSuite(
55
+ suiteOptions
56
+ );
57
+ printEvalResult(result, { format, output, maxValueLength, redact: redact2 });
58
+ const code = evalExitCode(result, expectations);
59
+ const mismatches = expectationMismatches(result, expectations);
60
+ if (mismatches.length > 0 && format !== "quiet") {
61
+ const write = output?.stderr ?? ((text) => process.stderr.write(text));
62
+ write(
63
+ `Evaluation expectation mismatches:
64
+ ${mismatches.map((value) => `- ${value}`).join("\n")}
65
+ `
66
+ );
67
+ }
68
+ const currentExitCode = typeof process.exitCode === "number" ? process.exitCode : Number(process.exitCode ?? 0);
69
+ if (exitCode === true && code > currentExitCode) process.exitCode = code;
70
+ return result;
71
+ }
72
+ function prettyResult(result, options) {
73
+ const lines = [
74
+ `${result.name} (${result.run.id})`,
75
+ `Cases: ${totalsText(result.cases)}`,
76
+ `Metrics: ${totalsText(result.metrics)}`
77
+ ];
78
+ for (const caseResult of result.results) {
79
+ lines.push(``, `[${caseResult.outcome.toUpperCase()}] ${caseResult.case.id}`);
80
+ if (caseResult.targetStatus === "succeeded") {
81
+ lines.push(
82
+ ` output: ${displayValue(
83
+ redact(caseResult.output, options, { kind: "output", caseId: caseResult.case.id }),
84
+ options.maxValueLength
85
+ )}`
86
+ );
87
+ }
88
+ if (caseResult.targetStatus === "failed") {
89
+ lines.push(
90
+ ` target error: ${errorText(
91
+ redact(caseResult.targetError, options, { kind: "error", caseId: caseResult.case.id }),
92
+ options.maxValueLength
93
+ )}`
94
+ );
95
+ }
96
+ for (const metric of caseResult.metrics) {
97
+ const parts = [` - ${metric.metricName}: ${metric.outcome.outcome}`];
98
+ if (metric.outcome.score !== void 0) {
99
+ parts.push(
100
+ `score=${displayValue(
101
+ redact(metric.outcome.score, options, {
102
+ kind: "score",
103
+ caseId: caseResult.case.id,
104
+ metricName: metric.metricName
105
+ }),
106
+ options.maxValueLength
107
+ )}`
108
+ );
109
+ }
110
+ if (metric.threshold !== void 0) parts.push(`threshold=${metric.threshold}`);
111
+ if (metric.direction !== void 0) parts.push(`direction=${metric.direction}`);
112
+ if (!metric.required) parts.push("optional");
113
+ lines.push(parts.join(" | "));
114
+ const explanation = metric.outcome.comment ?? (metric.outcome.outcome === "invalid" ? metric.outcome.reason : void 0);
115
+ if (explanation !== void 0) {
116
+ lines.push(
117
+ ` ${displayValue(
118
+ redact(explanation, options, {
119
+ kind: "comment",
120
+ caseId: caseResult.case.id,
121
+ metricName: metric.metricName
122
+ }),
123
+ options.maxValueLength
124
+ )}`
125
+ );
126
+ }
127
+ }
128
+ }
129
+ lines.push(
130
+ ``,
131
+ `Usage: target=${result.usage.target.totalTokens} evaluation=${result.usage.evaluation.totalTokens} total=${result.usage.total.totalTokens} tokens`
132
+ );
133
+ if (result.cost !== void 0) {
134
+ lines.push(
135
+ `Cost: target=${result.cost.target} evaluation=${result.cost.evaluation} total=${result.cost.total} ${result.cost.currency}`
136
+ );
137
+ }
138
+ lines.push(`Duration: ${result.durationMs}ms`);
139
+ return lines.join("\n");
140
+ }
141
+ function jsonResult(result, options) {
142
+ return JSON.stringify(
143
+ redactJsonResult(result, options),
144
+ (_key, value) => {
145
+ if (value instanceof Error) {
146
+ return { name: value.name, message: value.message, stack: value.stack };
147
+ }
148
+ if (value instanceof RegExp) return String(value);
149
+ if (typeof value === "string") return truncate(value, options.maxValueLength);
150
+ return value;
151
+ },
152
+ 2
153
+ );
154
+ }
155
+ function expectationMismatches(result, expectations) {
156
+ if (expectations === void 0) return [];
157
+ const mismatches = [];
158
+ if (expectations.totals !== void 0) {
159
+ mismatches.push(...totalMismatches(result, expectations.totals));
160
+ }
161
+ if (expectations.outcomes !== void 0) {
162
+ mismatches.push(...outcomeMismatches(result, expectations.outcomes));
163
+ }
164
+ return mismatches;
165
+ }
166
+ function totalMismatches(result, expected) {
167
+ const directMetrics = {};
168
+ if (expected.total !== void 0) directMetrics.total = expected.total;
169
+ if (expected.passed !== void 0) directMetrics.passed = expected.passed;
170
+ if (expected.failed !== void 0) directMetrics.failed = expected.failed;
171
+ if (expected.invalid !== void 0) directMetrics.invalid = expected.invalid;
172
+ return [
173
+ ...totalsGroupMismatches("metrics", result.metrics, {
174
+ ...directMetrics,
175
+ ...expected.metrics
176
+ }),
177
+ ...totalsGroupMismatches("cases", result.cases, expected.cases)
178
+ ];
179
+ }
180
+ function totalsGroupMismatches(label, actual, expected) {
181
+ if (expected === void 0) return [];
182
+ const mismatches = [];
183
+ for (const key of ["total", "passed", "failed", "invalid"]) {
184
+ if (expected[key] !== void 0 && actual[key] !== expected[key]) {
185
+ mismatches.push(`${label}.${key}: expected ${expected[key]}, received ${actual[key]}`);
186
+ }
187
+ }
188
+ return mismatches;
189
+ }
190
+ function outcomeMismatches(result, expected) {
191
+ const mismatches = [];
192
+ const actualCases = new Map(result.results.map((caseResult) => [caseResult.case.id, caseResult]));
193
+ for (const [caseId, metrics] of Object.entries(expected)) {
194
+ const caseResult = actualCases.get(caseId);
195
+ if (caseResult === void 0) {
196
+ mismatches.push(`${caseId}: expected case was not present`);
197
+ continue;
198
+ }
199
+ for (const [metricName, expectedOutcome] of Object.entries(metrics)) {
200
+ const metric = caseResult.metrics.find((candidate) => candidate.metricName === metricName);
201
+ if (metric === void 0) {
202
+ mismatches.push(`${caseId}.${metricName}: expected metric was not present`);
203
+ } else if (metric.outcome.outcome !== expectedOutcome) {
204
+ mismatches.push(
205
+ `${caseId}.${metricName}: expected ${expectedOutcome}, received ${metric.outcome.outcome}`
206
+ );
207
+ }
208
+ }
209
+ }
210
+ for (const caseResult of result.results) {
211
+ for (const metric of caseResult.metrics) {
212
+ if (!metric.required) continue;
213
+ const expectedOutcome = expected[caseResult.case.id]?.[metric.metricName] ?? "pass";
214
+ if (metric.outcome.outcome !== expectedOutcome) {
215
+ const message = `${caseResult.case.id}.${metric.metricName}: expected ${expectedOutcome}, received ${metric.outcome.outcome}`;
216
+ if (!mismatches.includes(message)) mismatches.push(message);
217
+ }
218
+ }
219
+ }
220
+ return mismatches;
221
+ }
222
+ function hasUnexpectedInvalid(result, expectations) {
223
+ if (expectations?.outcomes !== void 0) {
224
+ return result.results.some(
225
+ (caseResult) => caseResult.metrics.some(
226
+ (metric) => metric.required && metric.outcome.outcome === "invalid" && expectations.outcomes?.[caseResult.case.id]?.[metric.metricName] !== "invalid"
227
+ )
228
+ );
229
+ }
230
+ const expectedInvalid = expectations?.totals?.metrics?.invalid ?? expectations?.totals?.invalid;
231
+ return result.metrics.invalid > (expectedInvalid ?? 0);
232
+ }
233
+ function requiredMetricCount(result, status) {
234
+ return result.results.reduce(
235
+ (total, caseResult) => total + caseResult.metrics.filter((metric) => metric.required && metric.outcome.outcome === status).length,
236
+ 0
237
+ );
238
+ }
239
+ function totalsText(totals) {
240
+ return `${totals.total} total / ${totals.passed} pass / ${totals.failed} fail / ${totals.invalid} invalid`;
241
+ }
242
+ function displayValue(value, maxValueLength) {
243
+ let text;
244
+ if (typeof value === "string") text = value;
245
+ else {
246
+ try {
247
+ text = JSON.stringify(value) ?? String(value);
248
+ } catch {
249
+ text = String(value);
250
+ }
251
+ }
252
+ return truncate(text, maxValueLength);
253
+ }
254
+ function errorText(error, maxValueLength) {
255
+ return truncate(error instanceof Error ? error.message : displayValue(error), maxValueLength);
256
+ }
257
+ function truncate(value, maxValueLength) {
258
+ return maxValueLength !== void 0 && value.length > maxValueLength ? `${value.slice(0, maxValueLength)}\u2026` : value;
259
+ }
260
+ function redact(value, options, context) {
261
+ return options.redact === void 0 ? value : options.redact(value, context);
262
+ }
263
+ function redactJsonResult(result, options) {
264
+ return {
265
+ ...result,
266
+ run: {
267
+ ...result.run,
268
+ metadata: result.run.metadata === void 0 ? void 0 : redact(result.run.metadata, options, {
269
+ kind: "metadata"
270
+ })
271
+ },
272
+ results: result.results.map((caseResult) => ({
273
+ ...caseResult,
274
+ case: {
275
+ ...caseResult.case,
276
+ input: redact(caseResult.case.input, options, {
277
+ kind: "input",
278
+ caseId: caseResult.case.id
279
+ }),
280
+ expected: redact(caseResult.case.expected, options, {
281
+ kind: "expected",
282
+ caseId: caseResult.case.id
283
+ }),
284
+ context: redact(caseResult.case.context, options, {
285
+ kind: "context",
286
+ caseId: caseResult.case.id
287
+ }),
288
+ retrievalContext: redact(caseResult.case.retrievalContext, options, {
289
+ kind: "retrievalContext",
290
+ caseId: caseResult.case.id
291
+ }),
292
+ metadata: caseResult.case.metadata === void 0 ? void 0 : redact(caseResult.case.metadata, options, {
293
+ kind: "metadata",
294
+ caseId: caseResult.case.id
295
+ })
296
+ },
297
+ output: caseResult.targetStatus === "succeeded" ? redact(caseResult.output, options, { kind: "output", caseId: caseResult.case.id }) : void 0,
298
+ targetError: caseResult.targetStatus === "failed" ? redact(caseResult.targetError, options, {
299
+ kind: "error",
300
+ caseId: caseResult.case.id
301
+ }) : void 0,
302
+ metrics: caseResult.metrics.map((metric) => ({
303
+ ...metric,
304
+ reporterErrors: metric.reporterErrors.map(
305
+ (error) => redact(error, options, {
306
+ kind: "error",
307
+ caseId: caseResult.case.id,
308
+ metricName: metric.metricName
309
+ })
310
+ ),
311
+ outcome: redactOutcome(metric.outcome, options, caseResult.case.id, metric.metricName)
312
+ })),
313
+ scores: Object.fromEntries(
314
+ caseResult.metrics.map((metric) => [
315
+ metric.metricName,
316
+ redactOutcome(metric.outcome, options, caseResult.case.id, metric.metricName)
317
+ ])
318
+ )
319
+ })),
320
+ reporterErrors: result.reporterErrors.map((error) => redact(error, options, { kind: "error" }))
321
+ };
322
+ }
323
+ function redactOutcome(outcome, options, caseId, metricName) {
324
+ return {
325
+ ...outcome,
326
+ ...outcome.score === void 0 ? {} : { score: redact(outcome.score, options, { kind: "score", caseId, metricName }) },
327
+ ...outcome.comment === void 0 ? {} : { comment: redact(outcome.comment, options, { kind: "comment", caseId, metricName }) },
328
+ ...!("reason" in outcome) || outcome.reason === void 0 ? {} : { reason: redact(outcome.reason, options, { kind: "comment", caseId, metricName }) },
329
+ ...outcome.metadata === void 0 ? {} : {
330
+ metadata: redact(outcome.metadata, options, {
331
+ kind: "metadata",
332
+ caseId,
333
+ metricName
334
+ })
335
+ },
336
+ ...!("error" in outcome) || outcome.error === void 0 ? {} : { error: redact(outcome.error, options, { kind: "error", caseId, metricName }) }
337
+ };
338
+ }
339
+ function validatePrintOptions(options) {
340
+ if (options.maxValueLength !== void 0 && (!Number.isSafeInteger(options.maxValueLength) || options.maxValueLength < 1)) {
341
+ throw new RangeError("Evaluation maxValueLength must be a positive integer.");
342
+ }
343
+ }
344
+
345
+ export {
346
+ EvalAssertionError,
347
+ defineEvalExpectations,
348
+ formatEvalResult,
349
+ printEvalResult,
350
+ evalExitCode,
351
+ assertEvalTotals,
352
+ assertEvalOutcomes,
353
+ runEvalCli
354
+ };
355
+ //# sourceMappingURL=chunk-5P2YOQSA.js.map