@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.
- package/README.md +226 -0
- package/dist/agent/agent-stream.js +7 -0
- package/dist/agent/agent-stream.js.map +1 -0
- package/dist/agent/agent-tool.js +24 -0
- package/dist/agent/agent-tool.js.map +1 -0
- package/dist/agent/agent.js +89 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/errors.js +17 -0
- package/dist/agent/errors.js.map +1 -0
- package/dist/agent/ids.js +7 -0
- package/dist/agent/ids.js.map +1 -0
- package/dist/agent/index.d.ts +127 -9
- package/dist/agent/index.js +103 -21
- package/dist/agent/interactions/index.js +2 -2
- package/dist/agent/interactions.js +22 -0
- package/dist/agent/interactions.js.map +1 -0
- package/dist/agent/lifecycle.js +9 -0
- package/dist/agent/lifecycle.js.map +1 -0
- package/dist/agent/output-schema.js +10 -0
- package/dist/agent/output-schema.js.map +1 -0
- package/dist/agent/resolve-options.js +46 -0
- package/dist/agent/resolve-options.js.map +1 -0
- package/dist/agent/resolved-agent.js +92 -0
- package/dist/agent/resolved-agent.js.map +1 -0
- package/dist/agent/run-types.js +1 -0
- package/dist/agent/run-types.js.map +1 -0
- package/dist/agent/snapshot.js +17 -0
- package/dist/agent/snapshot.js.map +1 -0
- package/dist/agent/team/agent-team.js +98 -0
- package/dist/agent/team/agent-team.js.map +1 -0
- package/dist/agent/team/errors.js +9 -0
- package/dist/agent/team/errors.js.map +1 -0
- package/dist/agent/team/index.js +104 -0
- package/dist/agent/team/index.js.map +1 -0
- package/dist/agent/team/types.js +1 -0
- package/dist/agent/team/types.js.map +1 -0
- package/dist/agent/tool-catalog.js +37 -0
- package/dist/agent/tool-catalog.js.map +1 -0
- package/dist/agent/tool-state.js +11 -0
- package/dist/agent/tool-state.js.map +1 -0
- package/dist/agent/types.js +1 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agent/vector-context.js +10 -0
- package/dist/agent/vector-context.js.map +1 -0
- package/dist/{agent-DTmzs1Qr.d.ts → agent-C9VhENdj.d.ts} +2 -3
- package/dist/{chunk-I3Q7XSBB.js → chunk-23LRXKQX.js} +6 -4
- package/dist/{chunk-I3Q7XSBB.js.map → chunk-23LRXKQX.js.map} +1 -1
- package/dist/{chunk-YK4WAAS4.js → chunk-2NLINXRF.js} +1 -1
- package/dist/{chunk-SPD4XVR7.js → chunk-2XSMGVBG.js} +1 -1
- package/dist/chunk-3J2CSVPR.js +1 -0
- package/dist/chunk-3J2CSVPR.js.map +1 -0
- package/dist/chunk-3P3YVJ7V.js +1 -0
- package/dist/chunk-3P3YVJ7V.js.map +1 -0
- package/dist/chunk-3TAQXJBC.js +107 -0
- package/dist/chunk-3TAQXJBC.js.map +1 -0
- package/dist/chunk-47NTHIVB.js +76 -0
- package/dist/chunk-47NTHIVB.js.map +1 -0
- package/dist/chunk-4AW2633B.js +9 -0
- package/dist/chunk-4AW2633B.js.map +1 -0
- package/dist/{chunk-3XQGVDU5.js → chunk-4C7AXYOM.js} +1 -1
- package/dist/{chunk-IZNOP6JG.js → chunk-4FIVU53H.js} +1 -1
- package/dist/chunk-4ITAV7YA.js +1 -0
- package/dist/chunk-4ITAV7YA.js.map +1 -0
- package/dist/{chunk-7JLAIN6E.js → chunk-4ONUNWGC.js} +2 -2
- package/dist/chunk-4S4OECPW.js +158 -0
- package/dist/chunk-4S4OECPW.js.map +1 -0
- package/dist/chunk-4UUIGAIX.js +1 -0
- package/dist/chunk-4UUIGAIX.js.map +1 -0
- package/dist/chunk-53TPAXYR.js +1 -0
- package/dist/chunk-53TPAXYR.js.map +1 -0
- package/dist/chunk-54ZZJRP2.js +57 -0
- package/dist/chunk-54ZZJRP2.js.map +1 -0
- package/dist/chunk-5FCZ64HM.js +112 -0
- package/dist/chunk-5FCZ64HM.js.map +1 -0
- package/dist/chunk-5I2NVRHC.js +146 -0
- package/dist/chunk-5I2NVRHC.js.map +1 -0
- package/dist/chunk-5IURMWFN.js +53 -0
- package/dist/chunk-5IURMWFN.js.map +1 -0
- package/dist/chunk-5M6GTA3T.js +1 -0
- package/dist/chunk-5M6GTA3T.js.map +1 -0
- package/dist/chunk-5N5W7CX7.js +18 -0
- package/dist/chunk-5N5W7CX7.js.map +1 -0
- package/dist/chunk-5S7T2URX.js +1 -0
- package/dist/chunk-5S7T2URX.js.map +1 -0
- package/dist/chunk-5V533R7F.js +19 -0
- package/dist/chunk-5V533R7F.js.map +1 -0
- package/dist/chunk-5WLIHNNJ.js +56 -0
- package/dist/chunk-5WLIHNNJ.js.map +1 -0
- package/dist/chunk-6BTJC3ES.js +37 -0
- package/dist/chunk-6BTJC3ES.js.map +1 -0
- package/dist/chunk-6N4ENZO4.js +24 -0
- package/dist/chunk-6N4ENZO4.js.map +1 -0
- package/dist/{chunk-4UQALF5Y.js → chunk-6RQYWZI3.js} +2 -36
- package/dist/chunk-6RQYWZI3.js.map +1 -0
- package/dist/chunk-6TAWRKFK.js +86 -0
- package/dist/chunk-6TAWRKFK.js.map +1 -0
- package/dist/chunk-72LBHKYP.js +236 -0
- package/dist/chunk-72LBHKYP.js.map +1 -0
- package/dist/chunk-7F53DOML.js +53 -0
- package/dist/chunk-7F53DOML.js.map +1 -0
- package/dist/chunk-7LBPRXZP.js +1 -0
- package/dist/chunk-7LBPRXZP.js.map +1 -0
- package/dist/chunk-A7BXVZXZ.js +25 -0
- package/dist/chunk-A7BXVZXZ.js.map +1 -0
- package/dist/chunk-AOG6KSV4.js +107 -0
- package/dist/chunk-AOG6KSV4.js.map +1 -0
- package/dist/chunk-B47EXUHL.js +67 -0
- package/dist/chunk-B47EXUHL.js.map +1 -0
- package/dist/chunk-B5JQDR33.js +14 -0
- package/dist/chunk-B5JQDR33.js.map +1 -0
- package/dist/chunk-BDDC72GF.js +189 -0
- package/dist/chunk-BDDC72GF.js.map +1 -0
- package/dist/chunk-BDKFFFVX.js +342 -0
- package/dist/chunk-BDKFFFVX.js.map +1 -0
- package/dist/{chunk-QGX73TSQ.js → chunk-BONQTXRQ.js} +3 -12
- package/dist/chunk-BONQTXRQ.js.map +1 -0
- package/dist/chunk-BUPC72Y2.js +1007 -0
- package/dist/chunk-BUPC72Y2.js.map +1 -0
- package/dist/chunk-CKKNO4XB.js +70 -0
- package/dist/chunk-CKKNO4XB.js.map +1 -0
- package/dist/chunk-CX7ZVTO5.js +22 -0
- package/dist/chunk-CX7ZVTO5.js.map +1 -0
- package/dist/chunk-DU4WA6LQ.js +1 -0
- package/dist/chunk-DU4WA6LQ.js.map +1 -0
- package/dist/chunk-EJR6VVB3.js +63 -0
- package/dist/chunk-EJR6VVB3.js.map +1 -0
- package/dist/chunk-EKZRAWBP.js +110 -0
- package/dist/chunk-EKZRAWBP.js.map +1 -0
- package/dist/chunk-ENZ2XX27.js +26 -0
- package/dist/chunk-ENZ2XX27.js.map +1 -0
- package/dist/chunk-EOAJBBII.js +1 -0
- package/dist/chunk-EOAJBBII.js.map +1 -0
- package/dist/chunk-ERN7P6Q4.js +1 -0
- package/dist/chunk-ERN7P6Q4.js.map +1 -0
- package/dist/chunk-ESOFEAYK.js +57 -0
- package/dist/chunk-ESOFEAYK.js.map +1 -0
- package/dist/chunk-ETYB5JO6.js +175 -0
- package/dist/chunk-ETYB5JO6.js.map +1 -0
- package/dist/chunk-EZR5AV3J.js +74 -0
- package/dist/chunk-EZR5AV3J.js.map +1 -0
- package/dist/chunk-F2OKLHGB.js +9 -0
- package/dist/chunk-F2OKLHGB.js.map +1 -0
- package/dist/chunk-F3E2RLC7.js +342 -0
- package/dist/chunk-F3E2RLC7.js.map +1 -0
- package/dist/chunk-FAPIZJS2.js +54 -0
- package/dist/chunk-FAPIZJS2.js.map +1 -0
- package/dist/{chunk-2QZJTG2E.js → chunk-G336L2IE.js} +11 -71
- package/dist/chunk-G336L2IE.js.map +1 -0
- package/dist/chunk-GDJNOZ47.js +1 -0
- package/dist/chunk-GDJNOZ47.js.map +1 -0
- package/dist/chunk-GDY2Z2SZ.js +83 -0
- package/dist/chunk-GDY2Z2SZ.js.map +1 -0
- package/dist/chunk-GLMYZ6OA.js +20 -0
- package/dist/chunk-GLMYZ6OA.js.map +1 -0
- package/dist/{chunk-XEVOC433.js → chunk-GPVXCY5I.js} +2 -73
- package/dist/chunk-GPVXCY5I.js.map +1 -0
- package/dist/{chunk-KSKST3KP.js → chunk-H3H74RWJ.js} +1 -1
- package/dist/chunk-HAAGSIZH.js +89 -0
- package/dist/chunk-HAAGSIZH.js.map +1 -0
- package/dist/{chunk-K5L7R7XM.js → chunk-HHMLE3TZ.js} +6 -54
- package/dist/chunk-HHMLE3TZ.js.map +1 -0
- package/dist/{chunk-JLJMVRRE.js → chunk-HP34GRQX.js} +10 -83
- package/dist/chunk-HP34GRQX.js.map +1 -0
- package/dist/chunk-HTI343NP.js +1 -0
- package/dist/chunk-HTI343NP.js.map +1 -0
- package/dist/{chunk-T2C3CGDQ.js → chunk-HTI7DZJM.js} +6 -4
- package/dist/{chunk-T2C3CGDQ.js.map → chunk-HTI7DZJM.js.map} +1 -1
- package/dist/chunk-IDNL6IH4.js +294 -0
- package/dist/chunk-IDNL6IH4.js.map +1 -0
- package/dist/chunk-IV6YQTY2.js +47 -0
- package/dist/chunk-IV6YQTY2.js.map +1 -0
- package/dist/chunk-J4SINPUA.js +939 -0
- package/dist/chunk-J4SINPUA.js.map +1 -0
- package/dist/chunk-J6S6MT7O.js +32 -0
- package/dist/chunk-J6S6MT7O.js.map +1 -0
- package/dist/chunk-JBQNCUXA.js +34 -0
- package/dist/chunk-JBQNCUXA.js.map +1 -0
- package/dist/chunk-JMJFK3A4.js +1 -0
- package/dist/chunk-JMJFK3A4.js.map +1 -0
- package/dist/chunk-JMMZICU7.js +74 -0
- package/dist/chunk-JMMZICU7.js.map +1 -0
- package/dist/chunk-K4IBS7VB.js +55 -0
- package/dist/chunk-K4IBS7VB.js.map +1 -0
- package/dist/chunk-KBBQSP4M.js +16 -0
- package/dist/chunk-KBBQSP4M.js.map +1 -0
- package/dist/chunk-KFAVEL5F.js +68 -0
- package/dist/chunk-KFAVEL5F.js.map +1 -0
- package/dist/chunk-KITX3HDN.js +17 -0
- package/dist/chunk-KITX3HDN.js.map +1 -0
- package/dist/chunk-KO5NMTAM.js +1 -0
- package/dist/chunk-KO5NMTAM.js.map +1 -0
- package/dist/chunk-KY4VXIN2.js +118 -0
- package/dist/chunk-KY4VXIN2.js.map +1 -0
- package/dist/chunk-KZGSXJKU.js +29 -0
- package/dist/chunk-KZGSXJKU.js.map +1 -0
- package/dist/chunk-LAIATEUB.js +24 -0
- package/dist/chunk-LAIATEUB.js.map +1 -0
- package/dist/{chunk-OJBFDBLG.js → chunk-LBYJPMHC.js} +2 -2
- package/dist/chunk-LKIABZNR.js +49 -0
- package/dist/chunk-LKIABZNR.js.map +1 -0
- package/dist/chunk-LQJ4KHMY.js +23 -0
- package/dist/chunk-LQJ4KHMY.js.map +1 -0
- package/dist/chunk-MEN4AFDZ.js +1 -0
- package/dist/chunk-MEN4AFDZ.js.map +1 -0
- package/dist/chunk-MHOJJYDK.js +93 -0
- package/dist/chunk-MHOJJYDK.js.map +1 -0
- package/dist/chunk-MJCMKZFP.js +30 -0
- package/dist/chunk-MJCMKZFP.js.map +1 -0
- package/dist/chunk-MNYMLWWA.js +168 -0
- package/dist/chunk-MNYMLWWA.js.map +1 -0
- package/dist/chunk-MT3BLVYN.js +31 -0
- package/dist/chunk-MT3BLVYN.js.map +1 -0
- package/dist/chunk-NF6WBPFG.js +37 -0
- package/dist/chunk-NF6WBPFG.js.map +1 -0
- package/dist/chunk-NNEKBZSM.js +66 -0
- package/dist/chunk-NNEKBZSM.js.map +1 -0
- package/dist/chunk-NPJ2T3L5.js +19 -0
- package/dist/chunk-NPJ2T3L5.js.map +1 -0
- package/dist/chunk-NVALGVQG.js +150 -0
- package/dist/chunk-NVALGVQG.js.map +1 -0
- package/dist/chunk-O6DTOCBM.js +355 -0
- package/dist/chunk-O6DTOCBM.js.map +1 -0
- package/dist/chunk-OJF67RNM.js +1 -0
- package/dist/chunk-OJF67RNM.js.map +1 -0
- package/dist/chunk-PHLGGRHC.js +89 -0
- package/dist/chunk-PHLGGRHC.js.map +1 -0
- package/dist/chunk-PIMD4DYG.js +104 -0
- package/dist/chunk-PIMD4DYG.js.map +1 -0
- package/dist/chunk-PJNE75WC.js +1 -0
- package/dist/chunk-PJNE75WC.js.map +1 -0
- package/dist/{chunk-J6LVLV6P.js → chunk-PLDJCCVL.js} +1 -1
- package/dist/{chunk-3RWESPUG.js → chunk-POXHJF3H.js} +6 -51
- package/dist/chunk-POXHJF3H.js.map +1 -0
- package/dist/chunk-PPJ7SYQL.js +81 -0
- package/dist/chunk-PPJ7SYQL.js.map +1 -0
- package/dist/chunk-QHGYCYV6.js +91 -0
- package/dist/chunk-QHGYCYV6.js.map +1 -0
- package/dist/chunk-QUS6S2NB.js +663 -0
- package/dist/chunk-QUS6S2NB.js.map +1 -0
- package/dist/chunk-R6722CIU.js +28 -0
- package/dist/chunk-R6722CIU.js.map +1 -0
- package/dist/chunk-RA4YVN43.js +1 -0
- package/dist/chunk-RA4YVN43.js.map +1 -0
- package/dist/chunk-RT5LUEO3.js +2339 -0
- package/dist/chunk-RT5LUEO3.js.map +1 -0
- package/dist/chunk-SC4SUIEY.js +1 -0
- package/dist/chunk-SC4SUIEY.js.map +1 -0
- package/dist/chunk-SIYZDPVH.js +613 -0
- package/dist/chunk-SIYZDPVH.js.map +1 -0
- package/dist/chunk-SQAAVYJG.js +12 -0
- package/dist/chunk-SQAAVYJG.js.map +1 -0
- package/dist/chunk-SXE4J43E.js +59 -0
- package/dist/chunk-SXE4J43E.js.map +1 -0
- package/dist/{chunk-EFLT7XZD.js → chunk-SYULMZGL.js} +6 -4
- package/dist/{chunk-EFLT7XZD.js.map → chunk-SYULMZGL.js.map} +1 -1
- package/dist/chunk-T4IAJJUU.js +48 -0
- package/dist/chunk-T4IAJJUU.js.map +1 -0
- package/dist/chunk-T4KS577P.js +58 -0
- package/dist/chunk-T4KS577P.js.map +1 -0
- package/dist/chunk-TFIOU6UR.js +78 -0
- package/dist/chunk-TFIOU6UR.js.map +1 -0
- package/dist/chunk-TIZGADU4.js +375 -0
- package/dist/chunk-TIZGADU4.js.map +1 -0
- package/dist/chunk-TP3MCUXS.js +1 -0
- package/dist/chunk-TP3MCUXS.js.map +1 -0
- package/dist/{chunk-JTJU56ZV.js → chunk-UOGM62JL.js} +11 -7
- package/dist/{chunk-JTJU56ZV.js.map → chunk-UOGM62JL.js.map} +1 -1
- package/dist/chunk-USRKPEQN.js +55 -0
- package/dist/chunk-USRKPEQN.js.map +1 -0
- package/dist/chunk-UTAB3XQI.js +667 -0
- package/dist/chunk-UTAB3XQI.js.map +1 -0
- package/dist/chunk-V3FFZWF3.js +182 -0
- package/dist/chunk-V3FFZWF3.js.map +1 -0
- package/dist/chunk-V4OZ7ISA.js +9 -0
- package/dist/chunk-V4OZ7ISA.js.map +1 -0
- package/dist/chunk-VZ5ZZBNX.js +139 -0
- package/dist/chunk-VZ5ZZBNX.js.map +1 -0
- package/dist/{chunk-AHLKV6KP.js → chunk-WN6AVBO4.js} +1 -1
- package/dist/chunk-WXR5CWSC.js +1 -0
- package/dist/chunk-WXR5CWSC.js.map +1 -0
- package/dist/chunk-X6WS3XWL.js +36 -0
- package/dist/chunk-X6WS3XWL.js.map +1 -0
- package/dist/{chunk-Q5BCNYED.js → chunk-XJRNBTIV.js} +7 -4
- package/dist/chunk-XQV3XNVT.js +225 -0
- package/dist/chunk-XQV3XNVT.js.map +1 -0
- package/dist/chunk-XV3DH5GC.js +58 -0
- package/dist/chunk-XV3DH5GC.js.map +1 -0
- package/dist/chunk-Y7JTHNCU.js +318 -0
- package/dist/chunk-Y7JTHNCU.js.map +1 -0
- package/dist/chunk-YWRXOPHC.js +43 -0
- package/dist/chunk-YWRXOPHC.js.map +1 -0
- package/dist/chunk-YZVFIW5D.js +27 -0
- package/dist/chunk-YZVFIW5D.js.map +1 -0
- package/dist/chunk-ZHC5CD6J.js +33 -0
- package/dist/chunk-ZHC5CD6J.js.map +1 -0
- package/dist/chunk-ZPJFXRQZ.js +23 -0
- package/dist/chunk-ZPJFXRQZ.js.map +1 -0
- package/dist/chunk-ZPXOBQDS.js +57 -0
- package/dist/chunk-ZPXOBQDS.js.map +1 -0
- package/dist/chunk-ZUFS6R7L.js +155 -0
- package/dist/chunk-ZUFS6R7L.js.map +1 -0
- package/dist/chunk-ZXLCTQUX.js +62 -0
- package/dist/chunk-ZXLCTQUX.js.map +1 -0
- package/dist/chunk-ZYXMWEL4.js +59 -0
- package/dist/chunk-ZYXMWEL4.js.map +1 -0
- package/dist/completion/controls.js +11 -0
- package/dist/completion/controls.js.map +1 -0
- package/dist/completion/documents.js +9 -0
- package/dist/completion/documents.js.map +1 -0
- package/dist/completion/generate-completion.js +23 -0
- package/dist/completion/generate-completion.js.map +1 -0
- package/dist/completion/index.js +23 -12
- package/dist/completion/json.js +7 -0
- package/dist/completion/json.js.map +1 -0
- package/dist/completion/message-schema.js +18 -0
- package/dist/completion/message-schema.js.map +1 -0
- package/dist/completion/provider-output-error.js +12 -0
- package/dist/completion/provider-output-error.js.map +1 -0
- package/dist/completion/stream-accumulator.js +10 -0
- package/dist/completion/stream-accumulator.js.map +1 -0
- package/dist/completion/types.js +28 -0
- package/dist/completion/types.js.map +1 -0
- package/dist/documents/chunk-text.js +7 -0
- package/dist/documents/chunk-text.js.map +1 -0
- package/dist/documents/index.js +5 -2
- package/dist/documents/text-document.js +8 -0
- package/dist/documents/text-document.js.map +1 -0
- package/dist/embeddings/distance.js +17 -0
- package/dist/embeddings/distance.js.map +1 -0
- package/dist/embeddings/embed.js +18 -0
- package/dist/embeddings/embed.js.map +1 -0
- package/dist/embeddings/index.js +11 -6
- package/dist/embeddings/types.js +2 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/evals/advanced-metrics.js +46 -0
- package/dist/evals/advanced-metrics.js.map +1 -0
- package/dist/evals/agent-target.js +10 -0
- package/dist/evals/agent-target.js.map +1 -0
- package/dist/evals/cli.js +40 -0
- package/dist/evals/cli.js.map +1 -0
- package/dist/evals/execution.js +15 -0
- package/dist/evals/execution.js.map +1 -0
- package/dist/evals/format.js +13 -0
- package/dist/evals/format.js.map +1 -0
- package/dist/evals/index.d.ts +4 -4
- package/dist/evals/index.js +87 -2660
- package/dist/evals/index.js.map +1 -1
- package/dist/evals/judge.js +27 -0
- package/dist/evals/judge.js.map +1 -0
- package/dist/evals/metric.js +7 -0
- package/dist/evals/metric.js.map +1 -0
- package/dist/evals/metrics.js +53 -0
- package/dist/evals/metrics.js.map +1 -0
- package/dist/evals/outcome.js +7 -0
- package/dist/evals/outcome.js.map +1 -0
- package/dist/evals/reporting.js +11 -0
- package/dist/evals/reporting.js.map +1 -0
- package/dist/evals/runner.js +29 -0
- package/dist/evals/runner.js.map +1 -0
- package/dist/evals/selectors.js +18 -0
- package/dist/evals/selectors.js.map +1 -0
- package/dist/evals/suite.js +11 -0
- package/dist/evals/suite.js.map +1 -0
- package/dist/evals/types.js +1 -0
- package/dist/evals/types.js.map +1 -0
- package/dist/extractor/extractor.js +23 -0
- package/dist/extractor/extractor.js.map +1 -0
- package/dist/extractor/index.js +16 -7
- package/dist/guardrails/actions.js +13 -0
- package/dist/guardrails/actions.js.map +1 -0
- package/dist/guardrails/index.d.ts +3 -4
- package/dist/guardrails/index.js +15 -7
- package/dist/guardrails/message.js +9 -0
- package/dist/guardrails/message.js.map +1 -0
- package/dist/guardrails/policy.js +17 -0
- package/dist/guardrails/policy.js.map +1 -0
- package/dist/guardrails/runtime.js +11 -0
- package/dist/guardrails/runtime.js.map +1 -0
- package/dist/guardrails/text.js +9 -0
- package/dist/guardrails/text.js.map +1 -0
- package/dist/guardrails/types.js +1 -0
- package/dist/guardrails/types.js.map +1 -0
- package/dist/hooks/control.js +17 -0
- package/dist/hooks/control.js.map +1 -0
- package/dist/hooks/index.js +19 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/types.js +2 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/image-generation/generate-image.js +11 -0
- package/dist/image-generation/generate-image.js.map +1 -0
- package/dist/image-generation/index.js +7 -4
- package/dist/image-generation/types.js +2 -0
- package/dist/image-generation/types.js.map +1 -0
- package/dist/index.d.ts +5 -7
- package/dist/index.js +163 -57
- package/dist/internal/abort.js +13 -0
- package/dist/internal/abort.js.map +1 -0
- package/dist/internal/agent-runtime/agent-run.js +81 -0
- package/dist/internal/agent-runtime/agent-run.js.map +1 -0
- package/dist/internal/agent-runtime/approval-request.js +1 -0
- package/dist/internal/agent-runtime/approval-request.js.map +1 -0
- package/dist/internal/agent-runtime/approval-requirement.js +9 -0
- package/dist/internal/agent-runtime/approval-requirement.js.map +1 -0
- package/dist/internal/agent-runtime/continuation-state.js +26 -0
- package/dist/internal/agent-runtime/continuation-state.js.map +1 -0
- package/dist/internal/agent-runtime/interaction-suspension.js +25 -0
- package/dist/internal/agent-runtime/interaction-suspension.js.map +1 -0
- package/dist/internal/agent-runtime/memory-scope.js +8 -0
- package/dist/internal/agent-runtime/memory-scope.js.map +1 -0
- package/dist/internal/agent-runtime/memory.js +24 -0
- package/dist/internal/agent-runtime/memory.js.map +1 -0
- package/dist/internal/agent-runtime/prepared-tool-call.js +19 -0
- package/dist/internal/agent-runtime/prepared-tool-call.js.map +1 -0
- package/dist/internal/agent-runtime/retrieval.js +35 -0
- package/dist/internal/agent-runtime/retrieval.js.map +1 -0
- package/dist/internal/agent-runtime/run-options.js +9 -0
- package/dist/internal/agent-runtime/run-options.js.map +1 -0
- package/dist/internal/agent-runtime/run-validation.js +9 -0
- package/dist/internal/agent-runtime/run-validation.js.map +1 -0
- package/dist/internal/agent-runtime/stream-events.js +11 -0
- package/dist/internal/agent-runtime/stream-events.js.map +1 -0
- package/dist/internal/agent-runtime/structured-output.js +13 -0
- package/dist/internal/agent-runtime/structured-output.js.map +1 -0
- package/dist/internal/agent-runtime/tool-execution.js +55 -0
- package/dist/internal/agent-runtime/tool-execution.js.map +1 -0
- package/dist/internal/agent.d.ts +5 -5
- package/dist/internal/agent.js +93 -57
- package/dist/internal/agent.js.map +1 -1
- package/dist/internal/async-queue.js +7 -0
- package/dist/internal/async-queue.js.map +1 -0
- package/dist/internal/completion-request.js +11 -0
- package/dist/internal/completion-request.js.map +1 -0
- package/dist/internal/concurrency.js +7 -0
- package/dist/internal/concurrency.js.map +1 -0
- package/dist/internal/json-object.js +8 -0
- package/dist/internal/json-object.js.map +1 -0
- package/dist/internal/rag-text.js +7 -0
- package/dist/internal/rag-text.js.map +1 -0
- package/dist/internal/record.js +7 -0
- package/dist/internal/record.js.map +1 -0
- package/dist/internal/team-runtime/coordination.js +12 -0
- package/dist/internal/team-runtime/coordination.js.map +1 -0
- package/dist/internal/team-runtime/member.js +26 -0
- package/dist/internal/team-runtime/member.js.map +1 -0
- package/dist/internal/team-runtime/policy.js +7 -0
- package/dist/internal/team-runtime/policy.js.map +1 -0
- package/dist/internal/team-runtime/run.js +95 -0
- package/dist/internal/team-runtime/run.js.map +1 -0
- package/dist/internal/team-runtime/stream.js +9 -0
- package/dist/internal/team-runtime/stream.js.map +1 -0
- package/dist/internal/team-runtime/tools.js +17 -0
- package/dist/internal/team-runtime/tools.js.map +1 -0
- package/dist/internal/type-utils.js +1 -0
- package/dist/internal/type-utils.js.map +1 -0
- package/dist/internal/vector-search-options.js +9 -0
- package/dist/internal/vector-search-options.js.map +1 -0
- package/dist/mcp/index.js +3 -1
- package/dist/mcp/tool.js +7 -0
- package/dist/mcp/tool.js.map +1 -0
- package/dist/mcp/types.js +2 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/memory/assert.js +11 -0
- package/dist/memory/assert.js.map +1 -0
- package/dist/memory/compaction.js +26 -0
- package/dist/memory/compaction.js.map +1 -0
- package/dist/memory/errors.js +9 -0
- package/dist/memory/errors.js.map +1 -0
- package/dist/memory/index.js +23 -10
- package/dist/memory/options.js +10 -0
- package/dist/memory/options.js.map +1 -0
- package/dist/memory/scope-key.js +7 -0
- package/dist/memory/scope-key.js.map +1 -0
- package/dist/memory/types.js +2 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/{types-CRda8x7p.d.ts → middleware-CWjnMbiH.d.ts} +64 -5
- package/dist/model-call-options.js +1 -0
- package/dist/model-call-options.js.map +1 -0
- package/dist/model-listing/errors.js +7 -0
- package/dist/model-listing/errors.js.map +1 -0
- package/dist/model-listing/index.js +4 -13
- package/dist/model-listing/index.js.map +1 -1
- package/dist/model-listing/types.js +2 -0
- package/dist/model-listing/types.js.map +1 -0
- package/dist/observability/group.js +30 -0
- package/dist/observability/group.js.map +1 -0
- package/dist/observability/index.d.ts +4 -6
- package/dist/observability/index.js +16 -8
- package/dist/observability/snapshot.js +7 -0
- package/dist/observability/snapshot.js.map +1 -0
- package/dist/observability/types.js +1 -0
- package/dist/observability/types.js.map +1 -0
- package/dist/pipeline/errors.js +9 -0
- package/dist/pipeline/errors.js.map +1 -0
- package/dist/pipeline/graph.js +21 -0
- package/dist/pipeline/graph.js.map +1 -0
- package/dist/pipeline/index.d.ts +4 -6
- package/dist/pipeline/index.js +27 -805
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/observability.js +15 -0
- package/dist/pipeline/observability.js.map +1 -0
- package/dist/pipeline/pipeline.js +30 -0
- package/dist/pipeline/pipeline.js.map +1 -0
- package/dist/pipeline/runtime.js +17 -0
- package/dist/pipeline/runtime.js.map +1 -0
- package/dist/pipeline/types.js +1 -0
- package/dist/pipeline/types.js.map +1 -0
- package/dist/retry.js +20 -0
- package/dist/retry.js.map +1 -0
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/zod-schema.js +7 -0
- package/dist/schema/zod-schema.js.map +1 -0
- package/dist/skills/index.js +41 -12
- package/dist/skills/instructions.js +7 -0
- package/dist/skills/instructions.js.map +1 -0
- package/dist/skills/load.js +39 -0
- package/dist/skills/load.js.map +1 -0
- package/dist/skills/local.js +9 -0
- package/dist/skills/local.js.map +1 -0
- package/dist/skills/tools.js +37 -0
- package/dist/skills/tools.js.map +1 -0
- package/dist/skills/types.js +7 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/speech-generation/generate-speech.js +11 -0
- package/dist/speech-generation/generate-speech.js.map +1 -0
- package/dist/speech-generation/index.js +7 -4
- package/dist/speech-generation/types.js +2 -0
- package/dist/speech-generation/types.js.map +1 -0
- package/dist/streaming/index.js +4 -37
- package/dist/streaming/index.js.map +1 -1
- package/dist/streaming/readable-stream.js +8 -0
- package/dist/streaming/readable-stream.js.map +1 -0
- package/dist/{text-CmjXxakS.d.ts → text-GbW4WYMg.d.ts} +1 -1
- package/dist/tool/create-tool.js +14 -0
- package/dist/tool/create-tool.js.map +1 -0
- package/dist/tool/dynamic-tools.js +35 -0
- package/dist/tool/dynamic-tools.js.map +1 -0
- package/dist/tool/errors.js +11 -0
- package/dist/tool/errors.js.map +1 -0
- package/dist/tool/index.d.ts +3 -2
- package/dist/tool/index.js +41 -15
- package/dist/tool/middleware.js +7 -0
- package/dist/tool/middleware.js.map +1 -0
- package/dist/tool/question-tool.js +17 -0
- package/dist/tool/question-tool.js.map +1 -0
- package/dist/tool/skill-tool-marker.js +9 -0
- package/dist/tool/skill-tool-marker.js.map +1 -0
- package/dist/tool/think-tool.js +15 -0
- package/dist/tool/think-tool.js.map +1 -0
- package/dist/tool/tool.js +17 -0
- package/dist/tool/tool.js.map +1 -0
- package/dist/transcription/index.js +7 -4
- package/dist/transcription/transcribe.js +11 -0
- package/dist/transcription/transcribe.js.map +1 -0
- package/dist/transcription/types.js +2 -0
- package/dist/transcription/types.js.map +1 -0
- package/dist/{types-h0EL6Xn0.d.ts → types-Bqw0AuFl.d.ts} +6 -2
- package/dist/vector-store/filter.js +9 -0
- package/dist/vector-store/filter.js.map +1 -0
- package/dist/vector-store/index.js +31 -11
- package/dist/vector-store/ingest.js +19 -0
- package/dist/vector-store/ingest.js.map +1 -0
- package/dist/vector-store/lsh.js +7 -0
- package/dist/vector-store/lsh.js.map +1 -0
- package/dist/vector-store/retrieve.js +15 -0
- package/dist/vector-store/retrieve.js.map +1 -0
- package/dist/vector-store/types.js +1 -0
- package/dist/vector-store/types.js.map +1 -0
- package/package.json +2 -2
- package/dist/chunk-2QZJTG2E.js.map +0 -1
- package/dist/chunk-3RWESPUG.js.map +0 -1
- package/dist/chunk-4UQALF5Y.js.map +0 -1
- package/dist/chunk-AZB6N7P4.js +0 -320
- package/dist/chunk-AZB6N7P4.js.map +0 -1
- package/dist/chunk-JLJMVRRE.js.map +0 -1
- package/dist/chunk-K5L7R7XM.js.map +0 -1
- package/dist/chunk-OI3LSMJG.js +0 -1545
- package/dist/chunk-OI3LSMJG.js.map +0 -1
- package/dist/chunk-QGX73TSQ.js.map +0 -1
- package/dist/chunk-XC3LVC4K.js +0 -753
- package/dist/chunk-XC3LVC4K.js.map +0 -1
- package/dist/chunk-XEVOC433.js.map +0 -1
- package/dist/chunk-XSV5C4R5.js +0 -400
- package/dist/chunk-XSV5C4R5.js.map +0 -1
- package/dist/chunk-XU54PLSD.js +0 -4786
- package/dist/chunk-XU54PLSD.js.map +0 -1
- package/dist/middleware-mY_lpjDp.d.ts +0 -59
- package/dist/type-utils-CtHVDRn_.d.ts +0 -6
- /package/dist/{chunk-YK4WAAS4.js.map → chunk-2NLINXRF.js.map} +0 -0
- /package/dist/{chunk-SPD4XVR7.js.map → chunk-2XSMGVBG.js.map} +0 -0
- /package/dist/{chunk-3XQGVDU5.js.map → chunk-4C7AXYOM.js.map} +0 -0
- /package/dist/{chunk-IZNOP6JG.js.map → chunk-4FIVU53H.js.map} +0 -0
- /package/dist/{chunk-7JLAIN6E.js.map → chunk-4ONUNWGC.js.map} +0 -0
- /package/dist/{chunk-KSKST3KP.js.map → chunk-H3H74RWJ.js.map} +0 -0
- /package/dist/{chunk-OJBFDBLG.js.map → chunk-LBYJPMHC.js.map} +0 -0
- /package/dist/{chunk-J6LVLV6P.js.map → chunk-PLDJCCVL.js.map} +0 -0
- /package/dist/{chunk-AHLKV6KP.js.map → chunk-WN6AVBO4.js.map} +0 -0
- /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
|