@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,663 @@
1
+ import {
2
+ defaultEvalTraceSelector
3
+ } from "./chunk-PHLGGRHC.js";
4
+ import {
5
+ errorMessage
6
+ } from "./chunk-ZYXMWEL4.js";
7
+ import {
8
+ EvalOutcome
9
+ } from "./chunk-EJR6VVB3.js";
10
+ import {
11
+ EvalAbortError,
12
+ EvalTimeoutError,
13
+ abortable,
14
+ createConcurrencyLimiter,
15
+ createEvalCaseSignal
16
+ } from "./chunk-JMMZICU7.js";
17
+ import {
18
+ Usage
19
+ } from "./chunk-IDNL6IH4.js";
20
+
21
+ // src/evals/runner.ts
22
+ var EvalReporterDispatchError = class extends AggregateError {
23
+ phase;
24
+ constructor(phase, errors) {
25
+ super(errors, `Evaluation reporter ${phase} failed ${errors.length} time(s).`);
26
+ this.name = "EvalReporterDispatchError";
27
+ this.phase = phase;
28
+ }
29
+ };
30
+ var EvalFailFastError = class extends Error {
31
+ constructor(caseId, outcome) {
32
+ super(`Evaluation stopped after case ${caseId} produced a required ${outcome} outcome.`);
33
+ this.caseId = caseId;
34
+ this.outcome = outcome;
35
+ this.name = "EvalFailFastError";
36
+ }
37
+ caseId;
38
+ outcome;
39
+ };
40
+ async function runEvalSuite(options) {
41
+ validateSuiteOptions(options);
42
+ const selectedCases = selectCases(options);
43
+ const selectedOptions = {
44
+ ...options,
45
+ cases: selectedCases
46
+ };
47
+ const startedAtMs = Date.now();
48
+ const run = resolveRun(selectedOptions, startedAtMs);
49
+ const reporters = options.reporters ?? [];
50
+ const lifecycle = {
51
+ run,
52
+ suiteName: options.name,
53
+ caseCount: selectedCases.length,
54
+ metricNames: options.metrics.map((metric) => metric.name)
55
+ };
56
+ let reporterErrors;
57
+ try {
58
+ reporterErrors = await notifyRunStart(
59
+ reporters,
60
+ lifecycle,
61
+ options.reporterErrorPolicy ?? "collect"
62
+ );
63
+ } catch (error) {
64
+ await notifyRunEnd(reporters, {
65
+ ...lifecycle,
66
+ status: "failed",
67
+ completedAt: (/* @__PURE__ */ new Date()).toISOString(),
68
+ durationMs: Date.now() - startedAtMs,
69
+ error
70
+ });
71
+ throw error;
72
+ }
73
+ let results;
74
+ let aggregates;
75
+ try {
76
+ results = await runEvalCases(selectedOptions, run);
77
+ aggregates = await aggregateResult(selectedOptions, results);
78
+ } catch (error) {
79
+ await notifyRunEnd(reporters, {
80
+ ...lifecycle,
81
+ status: "failed",
82
+ completedAt: (/* @__PURE__ */ new Date()).toISOString(),
83
+ durationMs: Date.now() - startedAtMs,
84
+ error
85
+ });
86
+ throw error;
87
+ }
88
+ const completedAt = (/* @__PURE__ */ new Date()).toISOString();
89
+ const result = {
90
+ name: options.name,
91
+ run: { ...run, completedAt },
92
+ results,
93
+ metrics: aggregates.metrics,
94
+ cases: aggregates.cases,
95
+ usage: aggregates.usage,
96
+ durationMs: Date.now() - startedAtMs,
97
+ reporterErrors
98
+ };
99
+ result.reporterErrors.push(
100
+ ...results.flatMap(
101
+ (caseResult) => caseResult.metrics.flatMap((metricResult) => metricResult.reporterErrors)
102
+ )
103
+ );
104
+ if (aggregates.cost !== void 0) {
105
+ result.cost = aggregates.cost;
106
+ }
107
+ const runEndArgs = {
108
+ ...lifecycle,
109
+ status: "completed",
110
+ completedAt,
111
+ durationMs: result.durationMs,
112
+ metrics: result.metrics,
113
+ cases: result.cases,
114
+ usage: result.usage
115
+ };
116
+ if (result.cost !== void 0) {
117
+ runEndArgs.cost = result.cost;
118
+ }
119
+ result.reporterErrors.push(
120
+ ...await notifyRunEnd(reporters, runEndArgs, options.reporterErrorPolicy ?? "collect")
121
+ );
122
+ return result;
123
+ }
124
+ async function runEvalCases(options, run) {
125
+ const targetConcurrency = options.targetConcurrency ?? options.concurrency ?? 1;
126
+ const metricConcurrency = options.metricConcurrency ?? options.concurrency ?? 1;
127
+ const workerConcurrency = Math.max(targetConcurrency, metricConcurrency);
128
+ const targetLimit = createConcurrencyLimiter(targetConcurrency);
129
+ const metricLimit = createConcurrencyLimiter(metricConcurrency);
130
+ const results = Array(options.cases.length);
131
+ let nextIndex = 0;
132
+ let completedCases = 0;
133
+ let failure;
134
+ async function worker() {
135
+ while (failure === void 0 && nextIndex < options.cases.length) {
136
+ if (isAborted(options.signal)) {
137
+ failure ??= { error: suiteAbortReason(options.signal) };
138
+ break;
139
+ }
140
+ const index = nextIndex;
141
+ nextIndex += 1;
142
+ try {
143
+ results[index] = await runEvalCase(
144
+ options,
145
+ options.cases[index],
146
+ run,
147
+ targetLimit,
148
+ metricLimit,
149
+ () => completedCases
150
+ );
151
+ completedCases += 1;
152
+ if (isAborted(options.signal)) {
153
+ failure ??= { error: suiteAbortReason(options.signal) };
154
+ }
155
+ if (options.failFast === true && results[index]?.outcome !== "pass") {
156
+ const result = results[index];
157
+ if (result !== void 0 && result.outcome !== "pass") {
158
+ failure ??= { error: new EvalFailFastError(result.case.id, result.outcome) };
159
+ }
160
+ }
161
+ } catch (error) {
162
+ failure ??= { error };
163
+ }
164
+ }
165
+ }
166
+ await Promise.all(
167
+ Array.from({ length: Math.min(workerConcurrency, options.cases.length) }, () => worker())
168
+ );
169
+ if (failure !== void 0) throw failure.error;
170
+ return results;
171
+ }
172
+ async function runEvalCase(options, testCase, run, targetLimit, metricLimit, completedCases) {
173
+ const caseStartedAt = performance.now();
174
+ const caseSignal = createEvalCaseSignal(options.signal, options.caseTimeoutMs);
175
+ try {
176
+ const progress = (event) => notifyProgress(options, event);
177
+ await progress({
178
+ type: "case-start",
179
+ suiteName: options.name,
180
+ case: testCase,
181
+ completedCases: completedCases(),
182
+ totalCases: options.cases.length
183
+ });
184
+ let output;
185
+ let targetError;
186
+ let targetStatus = "succeeded";
187
+ let targetDurationMs = 0;
188
+ try {
189
+ output = await targetLimit(async () => {
190
+ const targetStartedAt = performance.now();
191
+ try {
192
+ return await (caseSignal.signal.aborted ? Promise.reject(caseSignal.signal.reason) : abortable(
193
+ caseSignal.signal,
194
+ Promise.resolve(
195
+ options.target(testCase.input, testCase, { signal: caseSignal.signal })
196
+ )
197
+ ));
198
+ } finally {
199
+ targetDurationMs = performance.now() - targetStartedAt;
200
+ }
201
+ });
202
+ } catch (error) {
203
+ if (options.signal?.aborted === true) {
204
+ throw options.signal.reason ?? new EvalAbortError();
205
+ }
206
+ targetStatus = "failed";
207
+ targetError = error;
208
+ }
209
+ await progress({
210
+ type: "target-complete",
211
+ suiteName: options.name,
212
+ case: testCase,
213
+ targetStatus,
214
+ output,
215
+ error: targetError,
216
+ durationMs: targetDurationMs,
217
+ completedCases: completedCases(),
218
+ totalCases: options.cases.length
219
+ });
220
+ const traceResult = await resolveTrace(options, testCase, output, targetError, targetStatus);
221
+ const metrics = await Promise.all(
222
+ options.metrics.map(
223
+ (metric) => metricLimit(async () => {
224
+ const metricStartedAt = performance.now();
225
+ const outcome = targetStatus === "succeeded" ? await safeEvaluate(
226
+ options.name,
227
+ testCase,
228
+ output,
229
+ metric,
230
+ caseSignal.signal
231
+ ) : EvalOutcome.invalid(`Target failed: ${errorMessage(targetError)}`, {
232
+ kind: targetError instanceof EvalTimeoutError ? "timeout" : "target",
233
+ error: targetError
234
+ });
235
+ const durationMs = performance.now() - metricStartedAt;
236
+ const reporterErrors = await reportOutcome({
237
+ run,
238
+ suiteName: options.name,
239
+ testCase,
240
+ output,
241
+ targetError,
242
+ targetStatus,
243
+ metric,
244
+ outcome,
245
+ trace: traceResult.trace,
246
+ traceError: traceResult.error,
247
+ reporters: options.reporters ?? [],
248
+ reporterErrorPolicy: options.reporterErrorPolicy ?? "collect"
249
+ });
250
+ await progress({
251
+ type: "metric-complete",
252
+ suiteName: options.name,
253
+ case: testCase,
254
+ metricName: metric.name,
255
+ outcome,
256
+ durationMs,
257
+ completedCases: completedCases(),
258
+ totalCases: options.cases.length
259
+ });
260
+ const metricResult = {
261
+ metricName: metric.name,
262
+ required: metric.required ?? true,
263
+ outcome,
264
+ durationMs,
265
+ reporterErrors
266
+ };
267
+ if (metric.direction !== void 0) metricResult.direction = metric.direction;
268
+ if (metric.threshold !== void 0) metricResult.threshold = metric.threshold;
269
+ return metricResult;
270
+ })
271
+ )
272
+ );
273
+ const scores = Object.fromEntries(
274
+ metrics.map((metric) => [metric.metricName, metric.outcome])
275
+ );
276
+ const result = {
277
+ case: testCase,
278
+ outcome: caseOutcome(targetStatus, metrics),
279
+ targetStatus,
280
+ targetDurationMs,
281
+ durationMs: performance.now() - caseStartedAt,
282
+ metrics,
283
+ scores,
284
+ usage: emptyUsageSummary()
285
+ };
286
+ if (targetStatus === "succeeded") {
287
+ result.output = output;
288
+ }
289
+ if (targetStatus === "failed") {
290
+ result.targetError = targetError;
291
+ }
292
+ await progress({
293
+ type: "case-complete",
294
+ suiteName: options.name,
295
+ result,
296
+ completedCases: completedCases() + 1,
297
+ totalCases: options.cases.length
298
+ });
299
+ return result;
300
+ } finally {
301
+ caseSignal.dispose();
302
+ }
303
+ }
304
+ async function resolveTrace(options, testCase, output, targetError, targetStatus) {
305
+ try {
306
+ const selector = options.trace ?? defaultEvalTraceSelector;
307
+ const trace = await selector({
308
+ suiteName: options.name,
309
+ case: testCase,
310
+ output,
311
+ targetError,
312
+ targetStatus
313
+ });
314
+ return trace === void 0 ? {} : { trace };
315
+ } catch (error) {
316
+ return { error };
317
+ }
318
+ }
319
+ async function safeEvaluate(suiteName, testCase, output, metric, signal) {
320
+ if (signal.aborted) {
321
+ return EvalOutcome.fromError(
322
+ signal.reason,
323
+ signal.reason instanceof EvalTimeoutError ? "timeout" : "metric"
324
+ );
325
+ }
326
+ try {
327
+ return await abortable(
328
+ signal,
329
+ Promise.resolve(metric.evaluate({ suiteName, case: testCase, output, signal }))
330
+ );
331
+ } catch (error) {
332
+ return EvalOutcome.fromError(error, error instanceof EvalTimeoutError ? "timeout" : "metric");
333
+ }
334
+ }
335
+ async function reportOutcome(args) {
336
+ const errors = [];
337
+ if (args.traceError !== void 0) {
338
+ errors.push(args.traceError);
339
+ }
340
+ for (const reporter of args.reporters) {
341
+ try {
342
+ await reporter.report({
343
+ run: args.run,
344
+ suiteName: args.suiteName,
345
+ case: args.testCase,
346
+ output: args.output,
347
+ targetError: args.targetError,
348
+ targetStatus: args.targetStatus,
349
+ trace: args.trace,
350
+ metric: args.metric,
351
+ outcome: args.outcome
352
+ });
353
+ } catch (error) {
354
+ errors.push(error);
355
+ }
356
+ }
357
+ throwReporterErrors("report", errors, args.reporterErrorPolicy);
358
+ return errors;
359
+ }
360
+ function resolveRun(options, startedAtMs) {
361
+ const id = options.run?.id ?? globalThis.crypto.randomUUID();
362
+ if (id.trim().length === 0 || id.length > 128) {
363
+ throw new TypeError("Evaluation run id must contain 1 to 128 characters");
364
+ }
365
+ for (const [label, value] of [
366
+ ["dataset name", options.run?.datasetName],
367
+ ["dataset version", options.run?.datasetVersion]
368
+ ]) {
369
+ if (value !== void 0 && (value.trim().length === 0 || value.length > 256)) {
370
+ throw new TypeError(`Evaluation run ${label} must contain 1 to 256 characters`);
371
+ }
372
+ }
373
+ const run = {
374
+ id,
375
+ startedAt: new Date(startedAtMs).toISOString()
376
+ };
377
+ if (options.run?.datasetName !== void 0) run.datasetName = options.run.datasetName;
378
+ if (options.run?.datasetVersion !== void 0) run.datasetVersion = options.run.datasetVersion;
379
+ if (options.run?.promptRef !== void 0) run.promptRef = options.run.promptRef;
380
+ if (options.run?.metadata !== void 0) run.metadata = options.run.metadata;
381
+ return run;
382
+ }
383
+ async function notifyRunStart(reporters, args, errorPolicy) {
384
+ const errors = [];
385
+ for (const reporter of reporters) {
386
+ if (reporter.onRunStart === void 0) continue;
387
+ try {
388
+ await reporter.onRunStart(args);
389
+ } catch (error) {
390
+ errors.push(error);
391
+ }
392
+ }
393
+ throwReporterErrors("onRunStart", errors, errorPolicy);
394
+ return errors;
395
+ }
396
+ async function notifyRunEnd(reporters, args, errorPolicy = "collect") {
397
+ const errors = [];
398
+ for (const reporter of reporters) {
399
+ if (reporter.onRunEnd === void 0) continue;
400
+ try {
401
+ await reporter.onRunEnd(args);
402
+ } catch (error) {
403
+ errors.push(error);
404
+ }
405
+ }
406
+ throwReporterErrors("onRunEnd", errors, errorPolicy);
407
+ return errors;
408
+ }
409
+ function throwReporterErrors(phase, errors, errorPolicy) {
410
+ if (errorPolicy === "throw" && errors.length > 0) {
411
+ throw new EvalReporterDispatchError(phase, errors);
412
+ }
413
+ }
414
+ function countMetricOutcomes(results) {
415
+ const totals = emptyTotals();
416
+ for (const result of results) {
417
+ for (const metric of result.metrics) {
418
+ totals.total += 1;
419
+ totals[statusKey(metric.outcome.outcome)] += 1;
420
+ }
421
+ }
422
+ return totals;
423
+ }
424
+ function countCaseOutcomes(results) {
425
+ const totals = emptyTotals();
426
+ for (const result of results) {
427
+ totals.total += 1;
428
+ totals[statusKey(result.outcome)] += 1;
429
+ }
430
+ return totals;
431
+ }
432
+ function emptyTotals() {
433
+ return { total: 0, passed: 0, failed: 0, invalid: 0 };
434
+ }
435
+ function emptyUsageSummary() {
436
+ return {
437
+ target: Usage.empty(),
438
+ evaluation: Usage.empty(),
439
+ total: Usage.empty()
440
+ };
441
+ }
442
+ function statusKey(status) {
443
+ if (status === "pass") return "passed";
444
+ if (status === "fail") return "failed";
445
+ return "invalid";
446
+ }
447
+ function caseOutcome(targetStatus, metrics) {
448
+ if (targetStatus === "failed") return "invalid";
449
+ const required = metrics.filter((metric) => metric.required);
450
+ if (required.some((metric) => metric.outcome.outcome === "invalid")) return "invalid";
451
+ if (required.some((metric) => metric.outcome.outcome === "fail")) return "fail";
452
+ return "pass";
453
+ }
454
+ async function aggregateResult(options, results) {
455
+ let targetUsage = Usage.empty();
456
+ let evaluationUsage = Usage.empty();
457
+ let targetCost = 0;
458
+ let evaluationCost = 0;
459
+ for (const result of results) {
460
+ let caseTargetUsage = Usage.empty();
461
+ let caseEvaluationUsage = Usage.empty();
462
+ let caseTargetCost = 0;
463
+ let caseEvaluationCost = 0;
464
+ if (result.targetStatus === "succeeded") {
465
+ const usage2 = await resolveTargetUsage(options, result.case, result.output);
466
+ if (usage2 !== void 0) {
467
+ caseTargetUsage = usage2;
468
+ targetUsage = Usage.add(targetUsage, usage2);
469
+ if (options.cost !== void 0) {
470
+ caseTargetCost = await calculateCost(
471
+ options.cost.calculate({
472
+ kind: "target",
473
+ suiteName: options.name,
474
+ case: result.case,
475
+ output: result.output,
476
+ usage: usage2
477
+ })
478
+ );
479
+ targetCost += caseTargetCost;
480
+ }
481
+ }
482
+ }
483
+ for (const metricResult of result.metrics) {
484
+ const usage2 = metricResult.outcome.usage;
485
+ if (usage2 === void 0) continue;
486
+ assertUsage(usage2, `Evaluation usage for metric ${metricResult.metricName}`);
487
+ caseEvaluationUsage = Usage.add(caseEvaluationUsage, usage2);
488
+ evaluationUsage = Usage.add(evaluationUsage, usage2);
489
+ if (options.cost !== void 0 && result.targetStatus === "succeeded") {
490
+ const metric = options.metrics.find(
491
+ (candidate) => candidate.name === metricResult.metricName
492
+ );
493
+ if (metric !== void 0) {
494
+ const metricCost = await calculateCost(
495
+ options.cost.calculate({
496
+ kind: "evaluation",
497
+ suiteName: options.name,
498
+ case: result.case,
499
+ output: result.output,
500
+ metric,
501
+ usage: usage2
502
+ })
503
+ );
504
+ metricResult.cost = metricCost;
505
+ caseEvaluationCost += metricCost;
506
+ evaluationCost += metricCost;
507
+ }
508
+ }
509
+ }
510
+ result.usage = {
511
+ target: caseTargetUsage,
512
+ evaluation: caseEvaluationUsage,
513
+ total: Usage.add(caseTargetUsage, caseEvaluationUsage)
514
+ };
515
+ if (options.cost !== void 0) {
516
+ result.cost = {
517
+ currency: options.cost.currency,
518
+ target: caseTargetCost,
519
+ evaluation: caseEvaluationCost,
520
+ total: caseTargetCost + caseEvaluationCost
521
+ };
522
+ }
523
+ }
524
+ const usage = {
525
+ target: targetUsage,
526
+ evaluation: evaluationUsage,
527
+ total: Usage.add(targetUsage, evaluationUsage)
528
+ };
529
+ const aggregates = {
530
+ metrics: countMetricOutcomes(results),
531
+ cases: countCaseOutcomes(results),
532
+ usage
533
+ };
534
+ if (options.cost !== void 0) {
535
+ aggregates.cost = {
536
+ currency: options.cost.currency,
537
+ target: targetCost,
538
+ evaluation: evaluationCost,
539
+ total: targetCost + evaluationCost
540
+ };
541
+ }
542
+ return aggregates;
543
+ }
544
+ async function resolveTargetUsage(options, testCase, output) {
545
+ const usage = options.targetUsage === void 0 ? usageFromOutput(output) : await options.targetUsage({
546
+ suiteName: options.name,
547
+ case: testCase,
548
+ output,
549
+ signal: new AbortController().signal
550
+ });
551
+ if (usage !== void 0) assertUsage(usage, `Target usage for case ${testCase.id}`);
552
+ return usage;
553
+ }
554
+ function usageFromOutput(output) {
555
+ if (typeof output !== "object" || output === null || !("usage" in output)) return void 0;
556
+ return output.usage;
557
+ }
558
+ function assertUsage(usage, label) {
559
+ for (const [key, value] of Object.entries(usage)) {
560
+ if (key === "details") continue;
561
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
562
+ throw new TypeError(`${label} must contain finite, non-negative token counts`);
563
+ }
564
+ }
565
+ }
566
+ async function calculateCost(value) {
567
+ const cost = await value;
568
+ if (!Number.isFinite(cost) || cost < 0) {
569
+ throw new TypeError("Evaluation cost calculator must return a finite, non-negative number");
570
+ }
571
+ return cost;
572
+ }
573
+ function validateSuiteOptions(options) {
574
+ if (options.name.trim().length === 0) {
575
+ throw new TypeError("Evaluation suite name must not be empty");
576
+ }
577
+ if (options.cases.length === 0) {
578
+ throw new TypeError("Evaluation suite must contain at least one case");
579
+ }
580
+ if (options.metrics.length === 0) {
581
+ throw new TypeError("Evaluation suite must contain at least one metric");
582
+ }
583
+ for (const testCase of options.cases) {
584
+ if (testCase.id.trim().length === 0) {
585
+ throw new TypeError("Evaluation case id must not be empty");
586
+ }
587
+ }
588
+ for (const metric of options.metrics) {
589
+ if (metric.name.trim().length === 0) {
590
+ throw new TypeError("Evaluation metric name must not be empty");
591
+ }
592
+ }
593
+ assertUnique(
594
+ options.cases.map((testCase) => testCase.id),
595
+ "Evaluation case id"
596
+ );
597
+ assertUnique(
598
+ options.metrics.map((metric) => metric.name),
599
+ "Evaluation metric name"
600
+ );
601
+ if (options.cost !== void 0 && options.cost.currency.trim().length === 0) {
602
+ throw new TypeError("Evaluation cost currency must not be empty");
603
+ }
604
+ for (const [label, value] of [
605
+ ["concurrency", options.concurrency],
606
+ ["targetConcurrency", options.targetConcurrency],
607
+ ["metricConcurrency", options.metricConcurrency]
608
+ ]) {
609
+ if (value !== void 0 && (!Number.isSafeInteger(value) || value < 1)) {
610
+ throw new RangeError(`Evaluation ${label} must be a positive integer`);
611
+ }
612
+ }
613
+ if (options.caseTimeoutMs !== void 0 && (!Number.isSafeInteger(options.caseTimeoutMs) || options.caseTimeoutMs < 1)) {
614
+ throw new RangeError("Evaluation caseTimeoutMs must be a positive integer");
615
+ }
616
+ if (options.shard !== void 0) {
617
+ if (!Number.isSafeInteger(options.shard.count) || options.shard.count < 1) {
618
+ throw new RangeError("Evaluation shard count must be a positive integer");
619
+ }
620
+ if (!Number.isSafeInteger(options.shard.index) || options.shard.index < 0 || options.shard.index >= options.shard.count) {
621
+ throw new RangeError("Evaluation shard index must be between 0 and count - 1");
622
+ }
623
+ }
624
+ }
625
+ function assertUnique(values, label) {
626
+ const seen = /* @__PURE__ */ new Set();
627
+ for (const value of values) {
628
+ if (seen.has(value)) throw new TypeError(`${label} must be unique: ${value}`);
629
+ seen.add(value);
630
+ }
631
+ }
632
+ function selectCases(options) {
633
+ const requested = options.caseIds === void 0 ? void 0 : new Set(options.caseIds);
634
+ if (requested !== void 0) {
635
+ assertUnique([...options.caseIds], "Evaluation selected case id");
636
+ const available = new Set(options.cases.map((testCase) => testCase.id));
637
+ for (const id of requested) {
638
+ if (!available.has(id))
639
+ throw new TypeError(`Evaluation selected case id was not found: ${id}`);
640
+ }
641
+ }
642
+ const filtered = options.cases.filter(
643
+ (testCase, index) => (requested === void 0 || requested.has(testCase.id)) && (options.caseFilter === void 0 || options.caseFilter(testCase, index))
644
+ );
645
+ if (options.shard === void 0) return filtered;
646
+ return filtered.filter((_, index) => index % options.shard.count === options.shard.index);
647
+ }
648
+ async function notifyProgress(options, event) {
649
+ await options.onProgress?.(event);
650
+ }
651
+ function isAborted(signal) {
652
+ return signal?.aborted === true;
653
+ }
654
+ function suiteAbortReason(signal) {
655
+ return signal?.reason ?? new EvalAbortError();
656
+ }
657
+
658
+ export {
659
+ EvalReporterDispatchError,
660
+ EvalFailFastError,
661
+ runEvalSuite
662
+ };
663
+ //# sourceMappingURL=chunk-QUS6S2NB.js.map