@anvia/core 1.5.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +112 -1
- package/dist/agent/agent-tool.js +7 -7
- package/dist/agent/agent.js +25 -25
- package/dist/agent/index.js +29 -29
- package/dist/agent/resolve-options.js +10 -10
- package/dist/agent/resolved-agent.js +26 -26
- package/dist/agent/team/agent-team.js +29 -29
- package/dist/agent/team/index.js +29 -29
- package/dist/agent/tool-catalog.js +9 -9
- package/dist/{chunk-QHGYCYV6.js → chunk-3FIX7GLM.js} +2 -2
- package/dist/{chunk-SIXS4CCU.js → chunk-4IOC4SP6.js} +4 -4
- package/dist/chunk-4IOC4SP6.js.map +1 -0
- package/dist/{chunk-JMMZICU7.js → chunk-4OSA3MMA.js} +39 -5
- package/dist/chunk-4OSA3MMA.js.map +1 -0
- package/dist/{chunk-Y365ABZY.js → chunk-4WSICA6D.js} +2 -2
- package/dist/{chunk-YOLOFTAY.js → chunk-57AUTEQ6.js} +57 -5
- package/dist/chunk-57AUTEQ6.js.map +1 -0
- package/dist/{chunk-647TQE3E.js → chunk-5BO4OTTK.js} +5 -5
- package/dist/{chunk-ZQC6M22O.js → chunk-7LBUXGJI.js} +2 -2
- package/dist/{chunk-NDAGW32C.js → chunk-7OHHMYRO.js} +2 -2
- package/dist/{chunk-DXW37JLZ.js → chunk-AMPQJMDG.js} +5 -5
- package/dist/{chunk-HAAGSIZH.js → chunk-CB2L2NIQ.js} +2 -2
- package/dist/{chunk-3SUEXGRA.js → chunk-D6FK5ZQR.js} +5 -5
- package/dist/{chunk-B57NNDEF.js → chunk-FTK6YRLN.js} +5 -5
- package/dist/{chunk-T3ZOZEAB.js → chunk-GB4SRUT7.js} +2 -2
- package/dist/{chunk-KX2TRKO2.js → chunk-GNBPXJC6.js} +2 -2
- package/dist/{chunk-PZ7ATNR6.js → chunk-GRI4EFNG.js} +15 -15
- package/dist/chunk-GRI4EFNG.js.map +1 -0
- package/dist/{chunk-CJKGTEN4.js → chunk-HDL5TXF7.js} +2 -2
- package/dist/{chunk-YMTBHHLQ.js → chunk-HG6ASDNI.js} +3 -3
- package/dist/{chunk-XAVSWLX5.js → chunk-IMSM4HHI.js} +3 -3
- package/dist/{chunk-TK2VXQVZ.js → chunk-KGVDUYZV.js} +3 -3
- package/dist/{chunk-PPMK7CG4.js → chunk-LW6F3IGP.js} +2 -2
- package/dist/{chunk-PWWKX2HA.js → chunk-MJAM7HZB.js} +8 -8
- package/dist/{chunk-2JZV4LUS.js → chunk-MKY7KTZY.js} +3 -13
- package/dist/chunk-MKY7KTZY.js.map +1 -0
- package/dist/{chunk-RFFOL6ON.js → chunk-MWG2PMTE.js} +18 -5
- package/dist/chunk-MWG2PMTE.js.map +1 -0
- package/dist/{chunk-JMNIWUFV.js → chunk-NKSXYOUM.js} +3 -3
- package/dist/{chunk-4VDDYI6P.js → chunk-OBTD3GPY.js} +2 -2
- package/dist/{chunk-GDY2Z2SZ.js → chunk-PFJN5OIQ.js} +2 -2
- package/dist/chunk-PZC5UHIN.js +190 -0
- package/dist/chunk-PZC5UHIN.js.map +1 -0
- package/dist/{chunk-UYODZ7OE.js → chunk-STEAW4JD.js} +2 -2
- package/dist/{chunk-LJGQ6VQB.js → chunk-TD2VYYUT.js} +90 -31
- package/dist/chunk-TD2VYYUT.js.map +1 -0
- package/dist/{chunk-AJC6YRVB.js → chunk-TOJSC4GI.js} +3 -3
- package/dist/{chunk-V5DWNXVH.js → chunk-W2XPREWL.js} +135 -26
- package/dist/chunk-W2XPREWL.js.map +1 -0
- package/dist/chunk-W6V63YPY.js +96 -0
- package/dist/chunk-W6V63YPY.js.map +1 -0
- package/dist/{chunk-F4BOW76L.js → chunk-XQTTPQWA.js} +4 -4
- package/dist/{chunk-HHMLE3TZ.js → chunk-YCTXTOOQ.js} +7 -16
- package/dist/chunk-YCTXTOOQ.js.map +1 -0
- package/dist/{chunk-7TUAAGVR.js → chunk-YKWUFYXT.js} +2 -2
- package/dist/{chunk-5SJBSCG2.js → chunk-YSR6KLCS.js} +8 -2
- package/dist/chunk-YSR6KLCS.js.map +1 -0
- package/dist/{chunk-6E6ABRJ6.js → chunk-ZJ4T7CEX.js} +2 -2
- package/dist/completion/generate-completion.js +3 -3
- package/dist/completion/index.js +3 -3
- package/dist/completion/stream-accumulator.js +1 -1
- package/dist/embeddings/embed.js +1 -1
- package/dist/embeddings/index.js +1 -1
- package/dist/evals/advanced-metrics.js +6 -6
- package/dist/evals/agent-target.js +2 -1
- package/dist/evals/cli.js +6 -6
- package/dist/evals/execution.js +3 -1
- package/dist/evals/index.js +12 -12
- package/dist/evals/judge.js +5 -5
- package/dist/evals/metrics.js +6 -6
- package/dist/evals/runner.js +5 -5
- package/dist/extractor/extractor.js +4 -4
- package/dist/extractor/index.js +4 -4
- package/dist/guardrails/index.js +4 -4
- package/dist/index.js +34 -34
- package/dist/internal/agent-runtime/agent-run.js +21 -21
- package/dist/internal/agent-runtime/continuation-state.js +3 -3
- package/dist/internal/agent-runtime/interaction-suspension.js +3 -3
- package/dist/internal/agent-runtime/memory.js +5 -5
- package/dist/internal/agent-runtime/prepared-tool-call.js +2 -2
- package/dist/internal/agent-runtime/retrieval.js +8 -8
- package/dist/internal/agent-runtime/tool-execution.js +15 -15
- package/dist/internal/agent.js +26 -26
- package/dist/internal/team-runtime/member.js +3 -3
- package/dist/internal/team-runtime/run.js +28 -28
- package/dist/internal/team-runtime/tools.js +4 -4
- package/dist/memory/compaction.js +4 -4
- package/dist/memory/index.js +4 -4
- package/dist/observability/group.js +3 -3
- package/dist/observability/index.js +3 -3
- package/dist/pipeline/index.js +6 -6
- package/dist/pipeline/pipeline.js +6 -6
- package/dist/schema/standard-json-schema.js +1 -1
- package/dist/skills/index.js +13 -13
- package/dist/skills/load.js +13 -13
- package/dist/skills/tools.js +12 -12
- package/dist/streaming/index.d.ts +2 -1
- package/dist/streaming/index.js +2 -1
- package/dist/streaming/readable-stream.js +2 -1
- package/dist/tool/create-tool.js +3 -3
- package/dist/tool/dynamic-tools.js +8 -8
- package/dist/tool/index.js +14 -14
- package/dist/tool/question-tool.js +4 -4
- package/dist/tool/think-tool.js +4 -4
- package/dist/vector-store/index.js +7 -7
- package/dist/vector-store/ingest.js +2 -2
- package/dist/vector-store/retrieve.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-2JZV4LUS.js.map +0 -1
- package/dist/chunk-54ZZJRP2.js +0 -57
- package/dist/chunk-54ZZJRP2.js.map +0 -1
- package/dist/chunk-5SJBSCG2.js.map +0 -1
- package/dist/chunk-HHMLE3TZ.js.map +0 -1
- package/dist/chunk-JMMZICU7.js.map +0 -1
- package/dist/chunk-LJGQ6VQB.js.map +0 -1
- package/dist/chunk-NNEKBZSM.js +0 -66
- package/dist/chunk-NNEKBZSM.js.map +0 -1
- package/dist/chunk-PZ7ATNR6.js.map +0 -1
- package/dist/chunk-RFFOL6ON.js.map +0 -1
- package/dist/chunk-SIXS4CCU.js.map +0 -1
- package/dist/chunk-V5DWNXVH.js.map +0 -1
- package/dist/chunk-YOLOFTAY.js.map +0 -1
- /package/dist/{chunk-QHGYCYV6.js.map → chunk-3FIX7GLM.js.map} +0 -0
- /package/dist/{chunk-Y365ABZY.js.map → chunk-4WSICA6D.js.map} +0 -0
- /package/dist/{chunk-647TQE3E.js.map → chunk-5BO4OTTK.js.map} +0 -0
- /package/dist/{chunk-ZQC6M22O.js.map → chunk-7LBUXGJI.js.map} +0 -0
- /package/dist/{chunk-NDAGW32C.js.map → chunk-7OHHMYRO.js.map} +0 -0
- /package/dist/{chunk-DXW37JLZ.js.map → chunk-AMPQJMDG.js.map} +0 -0
- /package/dist/{chunk-HAAGSIZH.js.map → chunk-CB2L2NIQ.js.map} +0 -0
- /package/dist/{chunk-3SUEXGRA.js.map → chunk-D6FK5ZQR.js.map} +0 -0
- /package/dist/{chunk-B57NNDEF.js.map → chunk-FTK6YRLN.js.map} +0 -0
- /package/dist/{chunk-T3ZOZEAB.js.map → chunk-GB4SRUT7.js.map} +0 -0
- /package/dist/{chunk-KX2TRKO2.js.map → chunk-GNBPXJC6.js.map} +0 -0
- /package/dist/{chunk-CJKGTEN4.js.map → chunk-HDL5TXF7.js.map} +0 -0
- /package/dist/{chunk-YMTBHHLQ.js.map → chunk-HG6ASDNI.js.map} +0 -0
- /package/dist/{chunk-XAVSWLX5.js.map → chunk-IMSM4HHI.js.map} +0 -0
- /package/dist/{chunk-TK2VXQVZ.js.map → chunk-KGVDUYZV.js.map} +0 -0
- /package/dist/{chunk-PPMK7CG4.js.map → chunk-LW6F3IGP.js.map} +0 -0
- /package/dist/{chunk-PWWKX2HA.js.map → chunk-MJAM7HZB.js.map} +0 -0
- /package/dist/{chunk-JMNIWUFV.js.map → chunk-NKSXYOUM.js.map} +0 -0
- /package/dist/{chunk-4VDDYI6P.js.map → chunk-OBTD3GPY.js.map} +0 -0
- /package/dist/{chunk-GDY2Z2SZ.js.map → chunk-PFJN5OIQ.js.map} +0 -0
- /package/dist/{chunk-UYODZ7OE.js.map → chunk-STEAW4JD.js.map} +0 -0
- /package/dist/{chunk-AJC6YRVB.js.map → chunk-TOJSC4GI.js.map} +0 -0
- /package/dist/{chunk-F4BOW76L.js.map → chunk-XQTTPQWA.js.map} +0 -0
- /package/dist/{chunk-7TUAAGVR.js.map → chunk-YKWUFYXT.js.map} +0 -0
- /package/dist/{chunk-6E6ABRJ6.js.map → chunk-ZJ4T7CEX.js.map} +0 -0
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentTeam
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-KGVDUYZV.js";
|
|
4
4
|
import "../../chunk-X6WS3XWL.js";
|
|
5
|
-
import "../../chunk-
|
|
5
|
+
import "../../chunk-D6FK5ZQR.js";
|
|
6
6
|
import "../../chunk-PIMD4DYG.js";
|
|
7
7
|
import "../../chunk-FSBDE6RF.js";
|
|
8
8
|
import "../../chunk-3TAQXJBC.js";
|
|
9
|
-
import "../../chunk-
|
|
9
|
+
import "../../chunk-HDL5TXF7.js";
|
|
10
10
|
import "../../chunk-ENZ2XX27.js";
|
|
11
|
-
import "../../chunk-
|
|
12
|
-
import "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import "../../chunk-
|
|
11
|
+
import "../../chunk-TOJSC4GI.js";
|
|
12
|
+
import "../../chunk-MJAM7HZB.js";
|
|
13
|
+
import "../../chunk-GRI4EFNG.js";
|
|
14
|
+
import "../../chunk-FTK6YRLN.js";
|
|
15
15
|
import "../../chunk-LAIATEUB.js";
|
|
16
|
-
import "../../chunk-
|
|
17
|
-
import "../../chunk-
|
|
16
|
+
import "../../chunk-7OHHMYRO.js";
|
|
17
|
+
import "../../chunk-PFJN5OIQ.js";
|
|
18
18
|
import "../../chunk-KITX3HDN.js";
|
|
19
19
|
import "../../chunk-NPJ2T3L5.js";
|
|
20
20
|
import "../../chunk-YWRXOPHC.js";
|
|
21
21
|
import "../../chunk-SXE4J43E.js";
|
|
22
22
|
import "../../chunk-5I2NVRHC.js";
|
|
23
23
|
import "../../chunk-5IURMWFN.js";
|
|
24
|
-
import "../../chunk-2NLINXRF.js";
|
|
25
24
|
import "../../chunk-JMJFK3A4.js";
|
|
26
25
|
import "../../chunk-4AW2633B.js";
|
|
27
|
-
import "../../chunk-
|
|
28
|
-
import "../../chunk-
|
|
26
|
+
import "../../chunk-GB4SRUT7.js";
|
|
27
|
+
import "../../chunk-2NLINXRF.js";
|
|
28
|
+
import "../../chunk-ZJ4T7CEX.js";
|
|
29
29
|
import "../../chunk-YNA3UR42.js";
|
|
30
30
|
import "../../chunk-H3H74RWJ.js";
|
|
31
|
-
import "../../chunk-
|
|
32
|
-
import "../../chunk-PPMK7CG4.js";
|
|
31
|
+
import "../../chunk-LW6F3IGP.js";
|
|
33
32
|
import "../../chunk-LQJ4KHMY.js";
|
|
33
|
+
import "../../chunk-MJCMKZFP.js";
|
|
34
34
|
import "../../chunk-EZR5AV3J.js";
|
|
35
35
|
import "../../chunk-OJF67RNM.js";
|
|
36
36
|
import "../../chunk-FAPIZJS2.js";
|
|
37
37
|
import "../../chunk-7LBPRXZP.js";
|
|
38
|
-
import "../../chunk-
|
|
38
|
+
import "../../chunk-7LBUXGJI.js";
|
|
39
39
|
import "../../chunk-A7BXVZXZ.js";
|
|
40
40
|
import "../../chunk-TP3MCUXS.js";
|
|
41
41
|
import "../../chunk-6RQYWZI3.js";
|
|
@@ -43,27 +43,27 @@ import "../../chunk-NF6WBPFG.js";
|
|
|
43
43
|
import "../../chunk-LBYJPMHC.js";
|
|
44
44
|
import "../../chunk-KFAVEL5F.js";
|
|
45
45
|
import "../../chunk-GLMYZ6OA.js";
|
|
46
|
-
import "../../chunk-
|
|
46
|
+
import "../../chunk-STEAW4JD.js";
|
|
47
47
|
import "../../chunk-WLUWRBQ4.js";
|
|
48
48
|
import "../../chunk-ZPJFXRQZ.js";
|
|
49
49
|
import "../../chunk-MEN4AFDZ.js";
|
|
50
|
-
import "../../chunk-VZ5ZZBNX.js";
|
|
51
50
|
import "../../chunk-6TAWRKFK.js";
|
|
52
51
|
import "../../chunk-6BTJC3ES.js";
|
|
52
|
+
import "../../chunk-VZ5ZZBNX.js";
|
|
53
53
|
import "../../chunk-MT3BLVYN.js";
|
|
54
54
|
import "../../chunk-ZXLCTQUX.js";
|
|
55
|
-
import "../../chunk-
|
|
56
|
-
import "../../chunk-
|
|
55
|
+
import "../../chunk-XQTTPQWA.js";
|
|
56
|
+
import "../../chunk-IMSM4HHI.js";
|
|
57
57
|
import "../../chunk-5WLIHNNJ.js";
|
|
58
|
-
import "../../chunk-
|
|
58
|
+
import "../../chunk-3FIX7GLM.js";
|
|
59
59
|
import "../../chunk-ESOFEAYK.js";
|
|
60
|
-
import "../../chunk-
|
|
60
|
+
import "../../chunk-CB2L2NIQ.js";
|
|
61
61
|
import "../../chunk-PJNE75WC.js";
|
|
62
62
|
import "../../chunk-PLDJCCVL.js";
|
|
63
63
|
import "../../chunk-3J2CSVPR.js";
|
|
64
64
|
import "../../chunk-ERN7P6Q4.js";
|
|
65
65
|
import "../../chunk-7F53DOML.js";
|
|
66
|
-
import "../../chunk-
|
|
66
|
+
import "../../chunk-YCTXTOOQ.js";
|
|
67
67
|
import "../../chunk-DU4WA6LQ.js";
|
|
68
68
|
import "../../chunk-4FIVU53H.js";
|
|
69
69
|
import "../../chunk-KO5NMTAM.js";
|
|
@@ -73,19 +73,19 @@ import "../../chunk-NVALGVQG.js";
|
|
|
73
73
|
import "../../chunk-ZHC5CD6J.js";
|
|
74
74
|
import "../../chunk-5V533R7F.js";
|
|
75
75
|
import "../../chunk-KY4VXIN2.js";
|
|
76
|
-
import "../../chunk-
|
|
77
|
-
import "../../chunk-
|
|
78
|
-
import "../../chunk-
|
|
76
|
+
import "../../chunk-NKSXYOUM.js";
|
|
77
|
+
import "../../chunk-HG6ASDNI.js";
|
|
78
|
+
import "../../chunk-57AUTEQ6.js";
|
|
79
79
|
import "../../chunk-6OO5C5GW.js";
|
|
80
80
|
import "../../chunk-GSVOMQEE.js";
|
|
81
81
|
import "../../chunk-4ONUNWGC.js";
|
|
82
|
-
import "../../chunk-
|
|
82
|
+
import "../../chunk-MKY7KTZY.js";
|
|
83
83
|
import "../../chunk-XQV3XNVT.js";
|
|
84
|
-
import "../../chunk-
|
|
85
|
-
import "../../chunk-
|
|
84
|
+
import "../../chunk-4WSICA6D.js";
|
|
85
|
+
import "../../chunk-5BO4OTTK.js";
|
|
86
86
|
import "../../chunk-YZVFIW5D.js";
|
|
87
|
-
import "../../chunk-SCFWN3T2.js";
|
|
88
87
|
import "../../chunk-J6S6MT7O.js";
|
|
88
|
+
import "../../chunk-SCFWN3T2.js";
|
|
89
89
|
import "../../chunk-HJ6KTQTZ.js";
|
|
90
90
|
import "../../chunk-BONQTXRQ.js";
|
|
91
91
|
import "../../chunk-4C7AXYOM.js";
|
package/dist/agent/team/index.js
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
import "../../chunk-53TPAXYR.js";
|
|
2
2
|
import {
|
|
3
3
|
AgentTeam
|
|
4
|
-
} from "../../chunk-
|
|
4
|
+
} from "../../chunk-KGVDUYZV.js";
|
|
5
5
|
import "../../chunk-X6WS3XWL.js";
|
|
6
|
-
import "../../chunk-
|
|
6
|
+
import "../../chunk-D6FK5ZQR.js";
|
|
7
7
|
import "../../chunk-PIMD4DYG.js";
|
|
8
8
|
import "../../chunk-FSBDE6RF.js";
|
|
9
9
|
import "../../chunk-3TAQXJBC.js";
|
|
10
|
-
import "../../chunk-
|
|
10
|
+
import "../../chunk-HDL5TXF7.js";
|
|
11
11
|
import {
|
|
12
12
|
AgentTeamInteractionError,
|
|
13
13
|
AgentTeamLimitError
|
|
14
14
|
} from "../../chunk-ENZ2XX27.js";
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
17
|
-
import "../../chunk-
|
|
18
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-TOJSC4GI.js";
|
|
16
|
+
import "../../chunk-MJAM7HZB.js";
|
|
17
|
+
import "../../chunk-GRI4EFNG.js";
|
|
18
|
+
import "../../chunk-FTK6YRLN.js";
|
|
19
19
|
import "../../chunk-LAIATEUB.js";
|
|
20
|
-
import "../../chunk-
|
|
21
|
-
import "../../chunk-
|
|
20
|
+
import "../../chunk-7OHHMYRO.js";
|
|
21
|
+
import "../../chunk-PFJN5OIQ.js";
|
|
22
22
|
import "../../chunk-KITX3HDN.js";
|
|
23
23
|
import "../../chunk-NPJ2T3L5.js";
|
|
24
24
|
import "../../chunk-YWRXOPHC.js";
|
|
25
25
|
import "../../chunk-SXE4J43E.js";
|
|
26
26
|
import "../../chunk-5I2NVRHC.js";
|
|
27
27
|
import "../../chunk-5IURMWFN.js";
|
|
28
|
-
import "../../chunk-2NLINXRF.js";
|
|
29
28
|
import "../../chunk-JMJFK3A4.js";
|
|
30
29
|
import "../../chunk-4AW2633B.js";
|
|
31
|
-
import "../../chunk-
|
|
32
|
-
import "../../chunk-
|
|
30
|
+
import "../../chunk-GB4SRUT7.js";
|
|
31
|
+
import "../../chunk-2NLINXRF.js";
|
|
32
|
+
import "../../chunk-ZJ4T7CEX.js";
|
|
33
33
|
import "../../chunk-YNA3UR42.js";
|
|
34
34
|
import "../../chunk-H3H74RWJ.js";
|
|
35
|
-
import "../../chunk-
|
|
36
|
-
import "../../chunk-PPMK7CG4.js";
|
|
35
|
+
import "../../chunk-LW6F3IGP.js";
|
|
37
36
|
import "../../chunk-LQJ4KHMY.js";
|
|
37
|
+
import "../../chunk-MJCMKZFP.js";
|
|
38
38
|
import "../../chunk-EZR5AV3J.js";
|
|
39
39
|
import "../../chunk-OJF67RNM.js";
|
|
40
40
|
import "../../chunk-FAPIZJS2.js";
|
|
41
41
|
import "../../chunk-7LBPRXZP.js";
|
|
42
|
-
import "../../chunk-
|
|
42
|
+
import "../../chunk-7LBUXGJI.js";
|
|
43
43
|
import "../../chunk-A7BXVZXZ.js";
|
|
44
44
|
import "../../chunk-TP3MCUXS.js";
|
|
45
45
|
import "../../chunk-6RQYWZI3.js";
|
|
@@ -47,27 +47,27 @@ import "../../chunk-NF6WBPFG.js";
|
|
|
47
47
|
import "../../chunk-LBYJPMHC.js";
|
|
48
48
|
import "../../chunk-KFAVEL5F.js";
|
|
49
49
|
import "../../chunk-GLMYZ6OA.js";
|
|
50
|
-
import "../../chunk-
|
|
50
|
+
import "../../chunk-STEAW4JD.js";
|
|
51
51
|
import "../../chunk-WLUWRBQ4.js";
|
|
52
52
|
import "../../chunk-ZPJFXRQZ.js";
|
|
53
53
|
import "../../chunk-MEN4AFDZ.js";
|
|
54
|
-
import "../../chunk-VZ5ZZBNX.js";
|
|
55
54
|
import "../../chunk-6TAWRKFK.js";
|
|
56
55
|
import "../../chunk-6BTJC3ES.js";
|
|
56
|
+
import "../../chunk-VZ5ZZBNX.js";
|
|
57
57
|
import "../../chunk-MT3BLVYN.js";
|
|
58
58
|
import "../../chunk-ZXLCTQUX.js";
|
|
59
|
-
import "../../chunk-
|
|
60
|
-
import "../../chunk-
|
|
59
|
+
import "../../chunk-XQTTPQWA.js";
|
|
60
|
+
import "../../chunk-IMSM4HHI.js";
|
|
61
61
|
import "../../chunk-5WLIHNNJ.js";
|
|
62
|
-
import "../../chunk-
|
|
62
|
+
import "../../chunk-3FIX7GLM.js";
|
|
63
63
|
import "../../chunk-ESOFEAYK.js";
|
|
64
|
-
import "../../chunk-
|
|
64
|
+
import "../../chunk-CB2L2NIQ.js";
|
|
65
65
|
import "../../chunk-PJNE75WC.js";
|
|
66
66
|
import "../../chunk-PLDJCCVL.js";
|
|
67
67
|
import "../../chunk-3J2CSVPR.js";
|
|
68
68
|
import "../../chunk-ERN7P6Q4.js";
|
|
69
69
|
import "../../chunk-7F53DOML.js";
|
|
70
|
-
import "../../chunk-
|
|
70
|
+
import "../../chunk-YCTXTOOQ.js";
|
|
71
71
|
import "../../chunk-DU4WA6LQ.js";
|
|
72
72
|
import "../../chunk-4FIVU53H.js";
|
|
73
73
|
import "../../chunk-KO5NMTAM.js";
|
|
@@ -77,19 +77,19 @@ import "../../chunk-NVALGVQG.js";
|
|
|
77
77
|
import "../../chunk-ZHC5CD6J.js";
|
|
78
78
|
import "../../chunk-5V533R7F.js";
|
|
79
79
|
import "../../chunk-KY4VXIN2.js";
|
|
80
|
-
import "../../chunk-
|
|
81
|
-
import "../../chunk-
|
|
82
|
-
import "../../chunk-
|
|
80
|
+
import "../../chunk-NKSXYOUM.js";
|
|
81
|
+
import "../../chunk-HG6ASDNI.js";
|
|
82
|
+
import "../../chunk-57AUTEQ6.js";
|
|
83
83
|
import "../../chunk-6OO5C5GW.js";
|
|
84
84
|
import "../../chunk-GSVOMQEE.js";
|
|
85
85
|
import "../../chunk-4ONUNWGC.js";
|
|
86
|
-
import "../../chunk-
|
|
86
|
+
import "../../chunk-MKY7KTZY.js";
|
|
87
87
|
import "../../chunk-XQV3XNVT.js";
|
|
88
|
-
import "../../chunk-
|
|
89
|
-
import "../../chunk-
|
|
88
|
+
import "../../chunk-4WSICA6D.js";
|
|
89
|
+
import "../../chunk-5BO4OTTK.js";
|
|
90
90
|
import "../../chunk-YZVFIW5D.js";
|
|
91
|
-
import "../../chunk-SCFWN3T2.js";
|
|
92
91
|
import "../../chunk-J6S6MT7O.js";
|
|
92
|
+
import "../../chunk-SCFWN3T2.js";
|
|
93
93
|
import "../../chunk-HJ6KTQTZ.js";
|
|
94
94
|
import "../../chunk-BONQTXRQ.js";
|
|
95
95
|
import "../../chunk-4C7AXYOM.js";
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
prepareAgentTools
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-7LBUXGJI.js";
|
|
4
|
+
import "../chunk-XQTTPQWA.js";
|
|
5
|
+
import "../chunk-IMSM4HHI.js";
|
|
6
6
|
import "../chunk-5WLIHNNJ.js";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-3FIX7GLM.js";
|
|
8
8
|
import "../chunk-ESOFEAYK.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-CB2L2NIQ.js";
|
|
10
10
|
import "../chunk-PJNE75WC.js";
|
|
11
11
|
import "../chunk-PLDJCCVL.js";
|
|
12
12
|
import "../chunk-3J2CSVPR.js";
|
|
13
13
|
import "../chunk-ERN7P6Q4.js";
|
|
14
14
|
import "../chunk-7F53DOML.js";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-YCTXTOOQ.js";
|
|
16
16
|
import "../chunk-DU4WA6LQ.js";
|
|
17
17
|
import "../chunk-4FIVU53H.js";
|
|
18
18
|
import "../chunk-KO5NMTAM.js";
|
|
@@ -21,11 +21,11 @@ import "../chunk-GPVXCY5I.js";
|
|
|
21
21
|
import "../chunk-NVALGVQG.js";
|
|
22
22
|
import "../chunk-ZHC5CD6J.js";
|
|
23
23
|
import "../chunk-5V533R7F.js";
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-4WSICA6D.js";
|
|
25
|
+
import "../chunk-5BO4OTTK.js";
|
|
26
26
|
import "../chunk-YZVFIW5D.js";
|
|
27
|
-
import "../chunk-SCFWN3T2.js";
|
|
28
27
|
import "../chunk-J6S6MT7O.js";
|
|
28
|
+
import "../chunk-SCFWN3T2.js";
|
|
29
29
|
import "../chunk-BONQTXRQ.js";
|
|
30
30
|
import "../chunk-4C7AXYOM.js";
|
|
31
31
|
import "../chunk-SQAAVYJG.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
embedDocuments
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-YCTXTOOQ.js";
|
|
4
4
|
import {
|
|
5
5
|
chunkTextDocuments
|
|
6
6
|
} from "./chunk-TFIOU6UR.js";
|
|
@@ -88,4 +88,4 @@ export {
|
|
|
88
88
|
ingestVectorText,
|
|
89
89
|
ingestVectorDocuments
|
|
90
90
|
};
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
91
|
+
//# sourceMappingURL=chunk-3FIX7GLM.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
abortable,
|
|
14
14
|
createConcurrencyLimiter,
|
|
15
15
|
createEvalCaseSignal
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4OSA3MMA.js";
|
|
17
17
|
import {
|
|
18
18
|
Usage
|
|
19
19
|
} from "./chunk-HJ6KTQTZ.js";
|
|
@@ -201,7 +201,7 @@ async function runEvalCase(options, testCase, run, targetLimit, metricLimit, com
|
|
|
201
201
|
});
|
|
202
202
|
} catch (error) {
|
|
203
203
|
if (options.signal?.aborted === true) {
|
|
204
|
-
throw options.signal
|
|
204
|
+
throw suiteAbortReason(options.signal);
|
|
205
205
|
}
|
|
206
206
|
targetStatus = "failed";
|
|
207
207
|
targetError = error;
|
|
@@ -652,7 +652,7 @@ function isAborted(signal) {
|
|
|
652
652
|
return signal?.aborted === true;
|
|
653
653
|
}
|
|
654
654
|
function suiteAbortReason(signal) {
|
|
655
|
-
return signal?.reason
|
|
655
|
+
return signal?.reason === void 0 ? new EvalAbortError() : signal.reason;
|
|
656
656
|
}
|
|
657
657
|
|
|
658
658
|
export {
|
|
@@ -660,4 +660,4 @@ export {
|
|
|
660
660
|
EvalFailFastError,
|
|
661
661
|
runEvalSuite
|
|
662
662
|
};
|
|
663
|
-
//# sourceMappingURL=chunk-
|
|
663
|
+
//# sourceMappingURL=chunk-4IOC4SP6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/evals/runner.ts"],"sourcesContent":["import { type Usage, Usage as UsageValue } from \"../completion\";\nimport {\n abortable,\n type ConcurrencyLimiter,\n createConcurrencyLimiter,\n createEvalCaseSignal,\n EvalAbortError,\n EvalTimeoutError,\n} from \"./execution\";\nimport { errorMessage } from \"./format\";\nimport { EvalOutcome, type EvalOutcome as EvalOutcomeType } from \"./outcome\";\nimport { defaultEvalTraceSelector } from \"./reporting\";\nimport type {\n EvalCase,\n EvalCaseResult,\n EvalCostSummary,\n EvalMetric,\n EvalMetricResult,\n EvalReporter,\n EvalRunContext,\n EvalRunEndArgs,\n EvalRunStartArgs,\n EvalSuiteResult,\n EvalTotals,\n EvalTraceRef,\n EvalProgressEvent,\n RunEvalSuiteOptions,\n} from \"./types\";\n\nexport class EvalReporterDispatchError extends AggregateError {\n readonly phase: string;\n\n constructor(phase: string, errors: readonly unknown[]) {\n super(errors, `Evaluation reporter ${phase} failed ${errors.length} time(s).`);\n this.name = \"EvalReporterDispatchError\";\n this.phase = phase;\n }\n}\n\nexport class EvalFailFastError extends Error {\n constructor(\n readonly caseId: string,\n readonly outcome: \"fail\" | \"invalid\",\n ) {\n super(`Evaluation stopped after case ${caseId} produced a required ${outcome} outcome.`);\n this.name = \"EvalFailFastError\";\n }\n}\n\nexport async function runEvalSuite<\n Input,\n Output,\n Expected = unknown,\n const Metrics extends readonly EvalMetric<\n NoInfer<Input>,\n NoInfer<Output>,\n unknown,\n NoInfer<Expected>,\n string\n >[] = readonly EvalMetric<NoInfer<Input>, NoInfer<Output>, unknown, NoInfer<Expected>, string>[],\n>(\n options: RunEvalSuiteOptions<Input, Output, Expected, Metrics>,\n): Promise<EvalSuiteResult<Input, Output, Expected, Metrics>>;\nexport async function runEvalSuite<\n Input,\n Output,\n Expected,\n Metrics extends readonly EvalMetric<Input, Output, unknown, Expected, string>[],\n>(\n options: RunEvalSuiteOptions<Input, Output, Expected, Metrics>,\n): Promise<EvalSuiteResult<Input, Output, Expected, Metrics>> {\n validateSuiteOptions(options);\n const selectedCases = selectCases(options);\n const selectedOptions = {\n ...options,\n cases: selectedCases,\n } as unknown as RunEvalSuiteOptions<Input, Output, Expected, Metrics>;\n const startedAtMs = Date.now();\n const run = resolveRun(selectedOptions, startedAtMs);\n const reporters = options.reporters ?? [];\n const lifecycle = {\n run,\n suiteName: options.name,\n caseCount: selectedCases.length,\n metricNames: options.metrics.map((metric) => metric.name),\n } satisfies EvalRunStartArgs;\n let reporterErrors: unknown[];\n try {\n reporterErrors = await notifyRunStart(\n reporters,\n lifecycle,\n options.reporterErrorPolicy ?? \"collect\",\n );\n } catch (error) {\n await notifyRunEnd(reporters, {\n ...lifecycle,\n status: \"failed\",\n completedAt: new Date().toISOString(),\n durationMs: Date.now() - startedAtMs,\n error,\n });\n throw error;\n }\n let results: Array<EvalCaseResult<Input, Output, Expected, Metrics>>;\n let aggregates: Awaited<ReturnType<typeof aggregateResult>>;\n try {\n results = await runEvalCases(selectedOptions, run);\n aggregates = await aggregateResult(selectedOptions, results);\n } catch (error) {\n await notifyRunEnd(reporters, {\n ...lifecycle,\n status: \"failed\",\n completedAt: new Date().toISOString(),\n durationMs: Date.now() - startedAtMs,\n error,\n });\n throw error;\n }\n const completedAt = new Date().toISOString();\n const result: EvalSuiteResult<Input, Output, Expected, Metrics> = {\n name: options.name,\n run: { ...run, completedAt },\n results,\n metrics: aggregates.metrics,\n cases: aggregates.cases,\n usage: aggregates.usage,\n durationMs: Date.now() - startedAtMs,\n reporterErrors,\n };\n result.reporterErrors.push(\n ...results.flatMap((caseResult) =>\n caseResult.metrics.flatMap((metricResult) => metricResult.reporterErrors),\n ),\n );\n if (aggregates.cost !== undefined) {\n result.cost = aggregates.cost;\n }\n const runEndArgs: EvalRunEndArgs = {\n ...lifecycle,\n status: \"completed\",\n completedAt,\n durationMs: result.durationMs,\n metrics: result.metrics,\n cases: result.cases,\n usage: result.usage,\n };\n if (result.cost !== undefined) {\n runEndArgs.cost = result.cost;\n }\n result.reporterErrors.push(\n ...(await notifyRunEnd(reporters, runEndArgs, options.reporterErrorPolicy ?? \"collect\")),\n );\n return result;\n}\n\nasync function runEvalCases<\n Input,\n Output,\n Expected,\n Metrics extends readonly EvalMetric<Input, Output, unknown, Expected, string>[],\n>(\n options: RunEvalSuiteOptions<Input, Output, Expected, Metrics>,\n run: EvalRunContext,\n): Promise<Array<EvalCaseResult<Input, Output, Expected, Metrics>>> {\n const targetConcurrency = options.targetConcurrency ?? options.concurrency ?? 1;\n const metricConcurrency = options.metricConcurrency ?? options.concurrency ?? 1;\n const workerConcurrency = Math.max(targetConcurrency, metricConcurrency);\n const targetLimit = createConcurrencyLimiter(targetConcurrency);\n const metricLimit = createConcurrencyLimiter(metricConcurrency);\n const results = Array<EvalCaseResult<Input, Output, Expected, Metrics>>(options.cases.length);\n let nextIndex = 0;\n let completedCases = 0;\n let failure: { error: unknown } | undefined;\n\n async function worker(): Promise<void> {\n while (failure === undefined && nextIndex < options.cases.length) {\n if (isAborted(options.signal)) {\n failure ??= { error: suiteAbortReason(options.signal) };\n break;\n }\n const index = nextIndex;\n nextIndex += 1;\n try {\n results[index] = await runEvalCase(\n options,\n options.cases[index] as EvalCase<Input, Expected>,\n run,\n targetLimit,\n metricLimit,\n () => completedCases,\n );\n completedCases += 1;\n if (isAborted(options.signal)) {\n failure ??= { error: suiteAbortReason(options.signal) };\n }\n if (options.failFast === true && results[index]?.outcome !== \"pass\") {\n const result = results[index];\n if (result !== undefined && result.outcome !== \"pass\") {\n failure ??= { error: new EvalFailFastError(result.case.id, result.outcome) };\n }\n }\n } catch (error) {\n failure ??= { error };\n }\n }\n }\n\n await Promise.all(\n Array.from({ length: Math.min(workerConcurrency, options.cases.length) }, () => worker()),\n );\n if (failure !== undefined) throw failure.error;\n return results;\n}\n\nasync function runEvalCase<\n Input,\n Output,\n Expected,\n Metrics extends readonly EvalMetric<Input, Output, unknown, Expected, string>[],\n>(\n options: RunEvalSuiteOptions<Input, Output, Expected, Metrics>,\n testCase: EvalCase<Input, Expected>,\n run: EvalRunContext,\n targetLimit: ConcurrencyLimiter,\n metricLimit: ConcurrencyLimiter,\n completedCases: () => number,\n): Promise<EvalCaseResult<Input, Output, Expected, Metrics>> {\n const caseStartedAt = performance.now();\n const caseSignal = createEvalCaseSignal(options.signal, options.caseTimeoutMs);\n try {\n const progress = (event: EvalProgressEvent<Input, Output, Expected>) =>\n notifyProgress(options, event);\n await progress({\n type: \"case-start\",\n suiteName: options.name,\n case: testCase,\n completedCases: completedCases(),\n totalCases: options.cases.length,\n });\n let output: Output | undefined;\n let targetError: unknown;\n let targetStatus: \"succeeded\" | \"failed\" = \"succeeded\";\n let targetDurationMs = 0;\n try {\n output = await targetLimit(async () => {\n const targetStartedAt = performance.now();\n try {\n return await (caseSignal.signal.aborted\n ? Promise.reject(caseSignal.signal.reason)\n : abortable(\n caseSignal.signal,\n Promise.resolve(\n options.target(testCase.input, testCase, { signal: caseSignal.signal }),\n ),\n ));\n } finally {\n targetDurationMs = performance.now() - targetStartedAt;\n }\n });\n } catch (error) {\n if (options.signal?.aborted === true) {\n throw suiteAbortReason(options.signal);\n }\n targetStatus = \"failed\";\n targetError = error;\n }\n await progress({\n type: \"target-complete\",\n suiteName: options.name,\n case: testCase,\n targetStatus,\n output,\n error: targetError,\n durationMs: targetDurationMs,\n completedCases: completedCases(),\n totalCases: options.cases.length,\n });\n const traceResult = await resolveTrace(options, testCase, output, targetError, targetStatus);\n\n const metrics = await Promise.all(\n options.metrics.map((metric) =>\n metricLimit(async () => {\n const metricStartedAt = performance.now();\n const outcome =\n targetStatus === \"succeeded\"\n ? await safeEvaluate(\n options.name,\n testCase,\n output as Output,\n metric,\n caseSignal.signal,\n )\n : EvalOutcome.invalid(`Target failed: ${errorMessage(targetError)}`, {\n kind: targetError instanceof EvalTimeoutError ? \"timeout\" : \"target\",\n error: targetError,\n });\n const durationMs = performance.now() - metricStartedAt;\n const reporterErrors = await reportOutcome({\n run,\n suiteName: options.name,\n testCase,\n output,\n targetError,\n targetStatus,\n metric,\n outcome,\n trace: traceResult.trace,\n traceError: traceResult.error,\n reporters: options.reporters ?? [],\n reporterErrorPolicy: options.reporterErrorPolicy ?? \"collect\",\n });\n await progress({\n type: \"metric-complete\",\n suiteName: options.name,\n case: testCase,\n metricName: metric.name,\n outcome,\n durationMs,\n completedCases: completedCases(),\n totalCases: options.cases.length,\n });\n const metricResult: EvalMetricResult = {\n metricName: metric.name,\n required: metric.required ?? true,\n outcome,\n durationMs,\n reporterErrors,\n };\n if (metric.direction !== undefined) metricResult.direction = metric.direction;\n if (metric.threshold !== undefined) metricResult.threshold = metric.threshold;\n return metricResult;\n }),\n ),\n );\n\n const scores = Object.fromEntries(\n metrics.map((metric) => [metric.metricName, metric.outcome]),\n ) as EvalCaseResult<Input, Output, Expected, Metrics>[\"scores\"];\n const result: EvalCaseResult<Input, Output, Expected, Metrics> = {\n case: testCase,\n outcome: caseOutcome(targetStatus, metrics),\n targetStatus,\n targetDurationMs,\n durationMs: performance.now() - caseStartedAt,\n metrics: metrics as EvalCaseResult<Input, Output, Expected, Metrics>[\"metrics\"],\n scores,\n usage: emptyUsageSummary(),\n };\n if (targetStatus === \"succeeded\") {\n result.output = output;\n }\n if (targetStatus === \"failed\") {\n result.targetError = targetError;\n }\n await progress({\n type: \"case-complete\",\n suiteName: options.name,\n result,\n completedCases: completedCases() + 1,\n totalCases: options.cases.length,\n });\n return result;\n } finally {\n caseSignal.dispose();\n }\n}\n\nasync function resolveTrace<Input, Output, Expected>(\n options: RunEvalSuiteOptions<Input, Output, Expected>,\n testCase: EvalCase<Input, Expected>,\n output: Output | undefined,\n targetError: unknown,\n targetStatus: \"succeeded\" | \"failed\",\n): Promise<{ trace?: EvalTraceRef | undefined; error?: unknown }> {\n try {\n const selector = options.trace ?? defaultEvalTraceSelector;\n const trace = await selector({\n suiteName: options.name,\n case: testCase,\n output,\n targetError,\n targetStatus,\n });\n return trace === undefined ? {} : { trace };\n } catch (error) {\n return { error };\n }\n}\n\nasync function safeEvaluate<Input, Output, Expected>(\n suiteName: string,\n testCase: EvalCase<Input, Expected>,\n output: Output,\n metric: EvalMetric<Input, Output, unknown, Expected>,\n signal: AbortSignal,\n): Promise<EvalOutcomeType> {\n if (signal.aborted) {\n return EvalOutcome.fromError(\n signal.reason,\n signal.reason instanceof EvalTimeoutError ? \"timeout\" : \"metric\",\n );\n }\n try {\n return await abortable(\n signal,\n Promise.resolve(metric.evaluate({ suiteName, case: testCase, output, signal })),\n );\n } catch (error) {\n return EvalOutcome.fromError(error, error instanceof EvalTimeoutError ? \"timeout\" : \"metric\");\n }\n}\n\nasync function reportOutcome<Input, Output, Expected>(args: {\n run: EvalRunContext;\n suiteName: string;\n testCase: EvalCase<Input, Expected>;\n output: Output | undefined;\n targetError: unknown;\n targetStatus: \"succeeded\" | \"failed\";\n metric: EvalMetric<Input, Output, unknown, Expected>;\n outcome: EvalOutcomeType;\n trace: EvalTraceRef | undefined;\n traceError: unknown;\n reporters: readonly EvalReporter<Input, Output, Expected>[];\n reporterErrorPolicy: \"collect\" | \"throw\";\n}): Promise<unknown[]> {\n const errors: unknown[] = [];\n if (args.traceError !== undefined) {\n errors.push(args.traceError);\n }\n for (const reporter of args.reporters) {\n try {\n await reporter.report({\n run: args.run,\n suiteName: args.suiteName,\n case: args.testCase,\n output: args.output,\n targetError: args.targetError,\n targetStatus: args.targetStatus,\n trace: args.trace,\n metric: args.metric,\n outcome: args.outcome,\n });\n } catch (error) {\n errors.push(error);\n }\n }\n throwReporterErrors(\"report\", errors, args.reporterErrorPolicy);\n return errors;\n}\n\nfunction resolveRun<Input, Output, Expected>(\n options: RunEvalSuiteOptions<Input, Output, Expected>,\n startedAtMs: number,\n): EvalRunContext {\n const id = options.run?.id ?? globalThis.crypto.randomUUID();\n if (id.trim().length === 0 || id.length > 128) {\n throw new TypeError(\"Evaluation run id must contain 1 to 128 characters\");\n }\n for (const [label, value] of [\n [\"dataset name\", options.run?.datasetName],\n [\"dataset version\", options.run?.datasetVersion],\n ] as const) {\n if (value !== undefined && (value.trim().length === 0 || value.length > 256)) {\n throw new TypeError(`Evaluation run ${label} must contain 1 to 256 characters`);\n }\n }\n const run: EvalRunContext = {\n id,\n startedAt: new Date(startedAtMs).toISOString(),\n };\n if (options.run?.datasetName !== undefined) run.datasetName = options.run.datasetName;\n if (options.run?.datasetVersion !== undefined) run.datasetVersion = options.run.datasetVersion;\n if (options.run?.promptRef !== undefined) run.promptRef = options.run.promptRef;\n if (options.run?.metadata !== undefined) run.metadata = options.run.metadata;\n return run;\n}\n\nasync function notifyRunStart<Input, Output, Expected>(\n reporters: readonly EvalReporter<Input, Output, Expected>[],\n args: EvalRunStartArgs,\n errorPolicy: \"collect\" | \"throw\",\n): Promise<unknown[]> {\n const errors: unknown[] = [];\n for (const reporter of reporters) {\n if (reporter.onRunStart === undefined) continue;\n try {\n await reporter.onRunStart(args);\n } catch (error) {\n errors.push(error);\n }\n }\n throwReporterErrors(\"onRunStart\", errors, errorPolicy);\n return errors;\n}\n\nasync function notifyRunEnd<Input, Output, Expected>(\n reporters: readonly EvalReporter<Input, Output, Expected>[],\n args: EvalRunEndArgs,\n errorPolicy: \"collect\" | \"throw\" = \"collect\",\n): Promise<unknown[]> {\n const errors: unknown[] = [];\n for (const reporter of reporters) {\n if (reporter.onRunEnd === undefined) continue;\n try {\n await reporter.onRunEnd(args);\n } catch (error) {\n errors.push(error);\n }\n }\n throwReporterErrors(\"onRunEnd\", errors, errorPolicy);\n return errors;\n}\n\nfunction throwReporterErrors(\n phase: string,\n errors: readonly unknown[],\n errorPolicy: \"collect\" | \"throw\",\n): void {\n if (errorPolicy === \"throw\" && errors.length > 0) {\n throw new EvalReporterDispatchError(phase, errors);\n }\n}\n\nfunction countMetricOutcomes(\n results: Array<EvalCaseResult<unknown, unknown, unknown>>,\n): EvalTotals {\n const totals = emptyTotals();\n for (const result of results) {\n for (const metric of result.metrics) {\n totals.total += 1;\n totals[statusKey(metric.outcome.outcome)] += 1;\n }\n }\n return totals;\n}\n\nfunction countCaseOutcomes(results: Array<EvalCaseResult<unknown, unknown, unknown>>): EvalTotals {\n const totals = emptyTotals();\n for (const result of results) {\n totals.total += 1;\n totals[statusKey(result.outcome)] += 1;\n }\n return totals;\n}\n\nfunction emptyTotals(): EvalTotals {\n return { total: 0, passed: 0, failed: 0, invalid: 0 };\n}\n\nfunction emptyUsageSummary() {\n return {\n target: UsageValue.empty(),\n evaluation: UsageValue.empty(),\n total: UsageValue.empty(),\n };\n}\n\nfunction statusKey(status: \"pass\" | \"fail\" | \"invalid\"): \"passed\" | \"failed\" | \"invalid\" {\n if (status === \"pass\") return \"passed\";\n if (status === \"fail\") return \"failed\";\n return \"invalid\";\n}\n\nfunction caseOutcome(\n targetStatus: \"succeeded\" | \"failed\",\n metrics: EvalMetricResult[],\n): \"pass\" | \"fail\" | \"invalid\" {\n if (targetStatus === \"failed\") return \"invalid\";\n const required = metrics.filter((metric) => metric.required);\n if (required.some((metric) => metric.outcome.outcome === \"invalid\")) return \"invalid\";\n if (required.some((metric) => metric.outcome.outcome === \"fail\")) return \"fail\";\n return \"pass\";\n}\n\nasync function aggregateResult<\n Input,\n Output,\n Expected,\n Metrics extends readonly EvalMetric<Input, Output, unknown, Expected, string>[],\n>(\n options: RunEvalSuiteOptions<Input, Output, Expected, Metrics>,\n results: Array<EvalCaseResult<Input, Output, Expected, Metrics>>,\n): Promise<{\n metrics: EvalTotals;\n cases: EvalTotals;\n usage: { target: Usage; evaluation: Usage; total: Usage };\n cost?: EvalCostSummary | undefined;\n}> {\n let targetUsage = UsageValue.empty();\n let evaluationUsage = UsageValue.empty();\n let targetCost = 0;\n let evaluationCost = 0;\n\n for (const result of results) {\n let caseTargetUsage = UsageValue.empty();\n let caseEvaluationUsage = UsageValue.empty();\n let caseTargetCost = 0;\n let caseEvaluationCost = 0;\n if (result.targetStatus === \"succeeded\") {\n const usage = await resolveTargetUsage(options, result.case, result.output as Output);\n if (usage !== undefined) {\n caseTargetUsage = usage;\n targetUsage = UsageValue.add(targetUsage, usage);\n if (options.cost !== undefined) {\n caseTargetCost = await calculateCost(\n options.cost.calculate({\n kind: \"target\",\n suiteName: options.name,\n case: result.case,\n output: result.output as Output,\n usage,\n }),\n );\n targetCost += caseTargetCost;\n }\n }\n }\n for (const metricResult of result.metrics) {\n const usage = metricResult.outcome.usage;\n if (usage === undefined) continue;\n assertUsage(usage, `Evaluation usage for metric ${metricResult.metricName}`);\n caseEvaluationUsage = UsageValue.add(caseEvaluationUsage, usage);\n evaluationUsage = UsageValue.add(evaluationUsage, usage);\n if (options.cost !== undefined && result.targetStatus === \"succeeded\") {\n const metric = options.metrics.find(\n (candidate) => candidate.name === metricResult.metricName,\n );\n if (metric !== undefined) {\n const metricCost = await calculateCost(\n options.cost.calculate({\n kind: \"evaluation\",\n suiteName: options.name,\n case: result.case,\n output: result.output as Output,\n metric,\n usage,\n }),\n );\n metricResult.cost = metricCost;\n caseEvaluationCost += metricCost;\n evaluationCost += metricCost;\n }\n }\n }\n result.usage = {\n target: caseTargetUsage,\n evaluation: caseEvaluationUsage,\n total: UsageValue.add(caseTargetUsage, caseEvaluationUsage),\n };\n if (options.cost !== undefined) {\n result.cost = {\n currency: options.cost.currency,\n target: caseTargetCost,\n evaluation: caseEvaluationCost,\n total: caseTargetCost + caseEvaluationCost,\n };\n }\n }\n\n const usage = {\n target: targetUsage,\n evaluation: evaluationUsage,\n total: UsageValue.add(targetUsage, evaluationUsage),\n };\n const aggregates: {\n metrics: EvalTotals;\n cases: EvalTotals;\n usage: typeof usage;\n cost?: EvalCostSummary | undefined;\n } = {\n metrics: countMetricOutcomes(results),\n cases: countCaseOutcomes(results),\n usage,\n };\n if (options.cost !== undefined) {\n aggregates.cost = {\n currency: options.cost.currency,\n target: targetCost,\n evaluation: evaluationCost,\n total: targetCost + evaluationCost,\n };\n }\n return aggregates;\n}\n\nasync function resolveTargetUsage<Input, Output, Expected>(\n options: RunEvalSuiteOptions<Input, Output, Expected>,\n testCase: EvalCase<Input, Expected>,\n output: Output,\n): Promise<Usage | undefined> {\n const usage =\n options.targetUsage === undefined\n ? usageFromOutput(output)\n : await options.targetUsage({\n suiteName: options.name,\n case: testCase,\n output,\n signal: new AbortController().signal,\n });\n if (usage !== undefined) assertUsage(usage, `Target usage for case ${testCase.id}`);\n return usage;\n}\n\nfunction usageFromOutput(output: unknown): Usage | undefined {\n if (typeof output !== \"object\" || output === null || !(\"usage\" in output)) return undefined;\n return (output as { usage?: Usage | undefined }).usage;\n}\n\nfunction assertUsage(usage: Usage, label: string): void {\n for (const [key, value] of Object.entries(usage)) {\n if (key === \"details\") continue;\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(`${label} must contain finite, non-negative token counts`);\n }\n }\n}\n\nasync function calculateCost(value: number | Promise<number>): Promise<number> {\n const cost = await value;\n if (!Number.isFinite(cost) || cost < 0) {\n throw new TypeError(\"Evaluation cost calculator must return a finite, non-negative number\");\n }\n return cost;\n}\n\nfunction validateSuiteOptions<Input, Output, Expected>(\n options: RunEvalSuiteOptions<Input, Output, Expected>,\n): void {\n if (options.name.trim().length === 0) {\n throw new TypeError(\"Evaluation suite name must not be empty\");\n }\n if (options.cases.length === 0) {\n throw new TypeError(\"Evaluation suite must contain at least one case\");\n }\n if (options.metrics.length === 0) {\n throw new TypeError(\"Evaluation suite must contain at least one metric\");\n }\n for (const testCase of options.cases) {\n if (testCase.id.trim().length === 0) {\n throw new TypeError(\"Evaluation case id must not be empty\");\n }\n }\n for (const metric of options.metrics) {\n if (metric.name.trim().length === 0) {\n throw new TypeError(\"Evaluation metric name must not be empty\");\n }\n }\n assertUnique(\n options.cases.map((testCase) => testCase.id),\n \"Evaluation case id\",\n );\n assertUnique(\n options.metrics.map((metric) => metric.name),\n \"Evaluation metric name\",\n );\n if (options.cost !== undefined && options.cost.currency.trim().length === 0) {\n throw new TypeError(\"Evaluation cost currency must not be empty\");\n }\n for (const [label, value] of [\n [\"concurrency\", options.concurrency],\n [\"targetConcurrency\", options.targetConcurrency],\n [\"metricConcurrency\", options.metricConcurrency],\n ] as const) {\n if (value !== undefined && (!Number.isSafeInteger(value) || value < 1)) {\n throw new RangeError(`Evaluation ${label} must be a positive integer`);\n }\n }\n if (\n options.caseTimeoutMs !== undefined &&\n (!Number.isSafeInteger(options.caseTimeoutMs) || options.caseTimeoutMs < 1)\n ) {\n throw new RangeError(\"Evaluation caseTimeoutMs must be a positive integer\");\n }\n if (options.shard !== undefined) {\n if (!Number.isSafeInteger(options.shard.count) || options.shard.count < 1) {\n throw new RangeError(\"Evaluation shard count must be a positive integer\");\n }\n if (\n !Number.isSafeInteger(options.shard.index) ||\n options.shard.index < 0 ||\n options.shard.index >= options.shard.count\n ) {\n throw new RangeError(\"Evaluation shard index must be between 0 and count - 1\");\n }\n }\n}\n\nfunction assertUnique(values: string[], label: string): void {\n const seen = new Set<string>();\n for (const value of values) {\n if (seen.has(value)) throw new TypeError(`${label} must be unique: ${value}`);\n seen.add(value);\n }\n}\n\nfunction selectCases<Input, Output, Expected>(\n options: RunEvalSuiteOptions<Input, Output, Expected>,\n): readonly EvalCase<Input, Expected>[] {\n const requested = options.caseIds === undefined ? undefined : new Set(options.caseIds);\n if (requested !== undefined) {\n assertUnique([...options.caseIds!], \"Evaluation selected case id\");\n const available = new Set(options.cases.map((testCase) => testCase.id));\n for (const id of requested) {\n if (!available.has(id))\n throw new TypeError(`Evaluation selected case id was not found: ${id}`);\n }\n }\n const filtered = options.cases.filter(\n (testCase, index) =>\n (requested === undefined || requested.has(testCase.id)) &&\n (options.caseFilter === undefined || options.caseFilter(testCase, index)),\n );\n if (options.shard === undefined) return filtered;\n return filtered.filter((_, index) => index % options.shard!.count === options.shard!.index);\n}\n\nasync function notifyProgress<Input, Output, Expected>(\n options: RunEvalSuiteOptions<Input, Output, Expected>,\n event: EvalProgressEvent<Input, Output, Expected>,\n): Promise<void> {\n await options.onProgress?.(event);\n}\n\nfunction isAborted(signal: AbortSignal | undefined): boolean {\n return signal?.aborted === true;\n}\n\nfunction suiteAbortReason(signal: AbortSignal | undefined): unknown {\n return signal?.reason === undefined ? new EvalAbortError() : signal.reason;\n}\n"],"mappings":"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","names":["usage"]}
|
|
@@ -15,7 +15,7 @@ var EvalAbortError = class extends Error {
|
|
|
15
15
|
};
|
|
16
16
|
function createEvalCaseSignal(parent, timeoutMs) {
|
|
17
17
|
const controller = new AbortController();
|
|
18
|
-
const abortFromParent = () => controller.abort(parent
|
|
18
|
+
const abortFromParent = () => controller.abort(parent === void 0 ? new EvalAbortError() : abortReason(parent));
|
|
19
19
|
if (parent?.aborted === true) abortFromParent();
|
|
20
20
|
else parent?.addEventListener("abort", abortFromParent, { once: true });
|
|
21
21
|
const timeout = timeoutMs === void 0 ? void 0 : setTimeout(() => controller.abort(new EvalTimeoutError(timeoutMs)), timeoutMs);
|
|
@@ -27,10 +27,43 @@ function createEvalCaseSignal(parent, timeoutMs) {
|
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
+
function composeEvalSignals(caseSignal, requestSignal) {
|
|
31
|
+
const signals = [.../* @__PURE__ */ new Set([caseSignal, requestSignal])].filter(
|
|
32
|
+
(signal) => signal !== void 0
|
|
33
|
+
);
|
|
34
|
+
if (signals.length < 2) return { signal: signals[0], dispose() {
|
|
35
|
+
} };
|
|
36
|
+
const aborted = signals.find((signal) => signal.aborted);
|
|
37
|
+
if (aborted !== void 0) return { signal: aborted, dispose() {
|
|
38
|
+
} };
|
|
39
|
+
const controller = new AbortController();
|
|
40
|
+
const links = /* @__PURE__ */ new Map();
|
|
41
|
+
const dispose = () => {
|
|
42
|
+
for (const [signal, listener] of links) signal.removeEventListener("abort", listener);
|
|
43
|
+
links.clear();
|
|
44
|
+
};
|
|
45
|
+
for (const signal of signals) {
|
|
46
|
+
const listener = () => {
|
|
47
|
+
controller.abort(abortReason(signal));
|
|
48
|
+
dispose();
|
|
49
|
+
};
|
|
50
|
+
links.set(signal, listener);
|
|
51
|
+
signal.addEventListener("abort", listener, { once: true });
|
|
52
|
+
}
|
|
53
|
+
return { signal: controller.signal, dispose };
|
|
54
|
+
}
|
|
30
55
|
function abortable(signal, operation) {
|
|
31
|
-
if (signal
|
|
56
|
+
if (signal === void 0) return operation;
|
|
57
|
+
if (signal.aborted) {
|
|
58
|
+
void operation.catch(() => {
|
|
59
|
+
});
|
|
60
|
+
return Promise.reject(abortReason(signal));
|
|
61
|
+
}
|
|
32
62
|
return new Promise((resolve, reject) => {
|
|
33
|
-
const onAbort = () =>
|
|
63
|
+
const onAbort = () => {
|
|
64
|
+
signal.removeEventListener("abort", onAbort);
|
|
65
|
+
reject(abortReason(signal));
|
|
66
|
+
};
|
|
34
67
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
35
68
|
operation.then(
|
|
36
69
|
(value) => {
|
|
@@ -61,14 +94,15 @@ function createConcurrencyLimiter(concurrency) {
|
|
|
61
94
|
};
|
|
62
95
|
}
|
|
63
96
|
function abortReason(signal) {
|
|
64
|
-
return signal.reason
|
|
97
|
+
return signal.reason === void 0 ? new EvalAbortError() : signal.reason;
|
|
65
98
|
}
|
|
66
99
|
|
|
67
100
|
export {
|
|
68
101
|
EvalTimeoutError,
|
|
69
102
|
EvalAbortError,
|
|
70
103
|
createEvalCaseSignal,
|
|
104
|
+
composeEvalSignals,
|
|
71
105
|
abortable,
|
|
72
106
|
createConcurrencyLimiter
|
|
73
107
|
};
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
108
|
+
//# sourceMappingURL=chunk-4OSA3MMA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/evals/execution.ts"],"sourcesContent":["export class EvalTimeoutError extends Error {\n constructor(readonly timeoutMs: number) {\n super(`Evaluation case exceeded its timeout of ${timeoutMs}ms.`);\n this.name = \"EvalTimeoutError\";\n }\n}\n\nexport class EvalAbortError extends Error {\n constructor(message = \"Evaluation run was aborted.\") {\n super(message);\n this.name = \"EvalAbortError\";\n }\n}\n\nexport type EvalCaseSignal = {\n signal: AbortSignal;\n dispose(): void;\n};\n\nexport function createEvalCaseSignal(\n parent: AbortSignal | undefined,\n timeoutMs: number | undefined,\n): EvalCaseSignal {\n const controller = new AbortController();\n const abortFromParent = () =>\n controller.abort(parent === undefined ? new EvalAbortError() : abortReason(parent));\n if (parent?.aborted === true) abortFromParent();\n else parent?.addEventListener(\"abort\", abortFromParent, { once: true });\n const timeout =\n timeoutMs === undefined\n ? undefined\n : setTimeout(() => controller.abort(new EvalTimeoutError(timeoutMs)), timeoutMs);\n return {\n signal: controller.signal,\n dispose() {\n if (timeout !== undefined) clearTimeout(timeout);\n parent?.removeEventListener(\"abort\", abortFromParent);\n },\n };\n}\n\nexport type EvalInvocationSignal = {\n signal: AbortSignal | undefined;\n dispose(): void;\n};\n\nexport function composeEvalSignals(\n caseSignal: AbortSignal | undefined,\n requestSignal: AbortSignal | undefined,\n): EvalInvocationSignal {\n const signals = [...new Set([caseSignal, requestSignal])].filter(\n (signal): signal is AbortSignal => signal !== undefined,\n );\n if (signals.length < 2) return { signal: signals[0], dispose() {} };\n const aborted = signals.find((signal) => signal.aborted);\n if (aborted !== undefined) return { signal: aborted, dispose() {} };\n\n const controller = new AbortController();\n const links = new Map<AbortSignal, () => void>();\n const dispose = () => {\n for (const [signal, listener] of links) signal.removeEventListener(\"abort\", listener);\n links.clear();\n };\n for (const signal of signals) {\n const listener = () => {\n controller.abort(abortReason(signal));\n dispose();\n };\n links.set(signal, listener);\n signal.addEventListener(\"abort\", listener, { once: true });\n }\n return { signal: controller.signal, dispose };\n}\n\nexport function abortable<T>(signal: AbortSignal | undefined, operation: Promise<T>): Promise<T> {\n if (signal === undefined) return operation;\n if (signal.aborted) {\n void operation.catch(() => {});\n return Promise.reject(abortReason(signal));\n }\n return new Promise<T>((resolve, reject) => {\n const onAbort = () => {\n signal.removeEventListener(\"abort\", onAbort);\n reject(abortReason(signal));\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n operation.then(\n (value) => {\n signal.removeEventListener(\"abort\", onAbort);\n resolve(value);\n },\n (error: unknown) => {\n signal.removeEventListener(\"abort\", onAbort);\n reject(error);\n },\n );\n });\n}\n\nexport type ConcurrencyLimiter = <T>(operation: () => Promise<T>) => Promise<T>;\n\nexport function createConcurrencyLimiter(concurrency: number): ConcurrencyLimiter {\n let active = 0;\n const waiting: Array<() => void> = [];\n return async <T>(operation: () => Promise<T>): Promise<T> => {\n if (active >= concurrency) {\n await new Promise<void>((resolve) => waiting.push(resolve));\n }\n active += 1;\n try {\n return await operation();\n } finally {\n active -= 1;\n waiting.shift()?.();\n }\n };\n}\n\nfunction abortReason(signal: AbortSignal): unknown {\n return signal.reason === undefined ? new EvalAbortError() : signal.reason;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
attachPreparedToolOwner,
|
|
3
3
|
preparedToolInput,
|
|
4
4
|
withoutPreparedToolInput
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5BO4OTTK.js";
|
|
6
6
|
import {
|
|
7
7
|
assertToolApprovalRequirement
|
|
8
8
|
} from "./chunk-YZVFIW5D.js";
|
|
@@ -55,4 +55,4 @@ function snapshotApprovalRequirement(requirement) {
|
|
|
55
55
|
export {
|
|
56
56
|
createTool
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-4WSICA6D.js.map
|
|
@@ -7,9 +7,9 @@ var JSON_SCHEMA_TARGET = "draft-2020-12";
|
|
|
7
7
|
function tryToProviderJsonSchemaFromStandardSchema(schema) {
|
|
8
8
|
const props = schema["~standard"];
|
|
9
9
|
if (props.vendor === "zod") {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
return {
|
|
11
|
+
jsonSchema: toProviderJsonSchemaShape(toProviderZodJsonSchema(schema))
|
|
12
|
+
};
|
|
13
13
|
}
|
|
14
14
|
const jsonSchema = props.jsonSchema;
|
|
15
15
|
if (typeof jsonSchema === "object" && jsonSchema !== null) {
|
|
@@ -85,10 +85,62 @@ async function valibotToProviderJsonSchema(schema) {
|
|
|
85
85
|
return toProviderJsonSchemaShape(jsonSchema);
|
|
86
86
|
}
|
|
87
87
|
function toProviderJsonSchemaShape(jsonSchema) {
|
|
88
|
-
const
|
|
88
|
+
const providerSchema = copyProviderSchema(jsonSchema);
|
|
89
89
|
completeStrictObjectRefinements(providerSchema);
|
|
90
90
|
return providerSchema;
|
|
91
91
|
}
|
|
92
|
+
function copyProviderSchema(source) {
|
|
93
|
+
if (typeof source !== "object" || source === null || Array.isArray(source)) {
|
|
94
|
+
throw new TypeError("Provider JSON schema must be a plain or null-prototype record.");
|
|
95
|
+
}
|
|
96
|
+
return copyJsonData(source, /* @__PURE__ */ new WeakSet(), true);
|
|
97
|
+
}
|
|
98
|
+
function copyJsonData(value, ancestors, omitRootSchema = false) {
|
|
99
|
+
if (value === null || typeof value === "string" || typeof value === "boolean" || typeof value === "number" && Number.isFinite(value)) {
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
102
|
+
if (typeof value !== "object") {
|
|
103
|
+
throw new TypeError("Provider JSON schema must contain only finite JSON data.");
|
|
104
|
+
}
|
|
105
|
+
if (ancestors.has(value)) {
|
|
106
|
+
throw new TypeError("Provider JSON schema must not contain cycles.");
|
|
107
|
+
}
|
|
108
|
+
ancestors.add(value);
|
|
109
|
+
if (Array.isArray(value)) {
|
|
110
|
+
const copy2 = [];
|
|
111
|
+
for (let index = 0; index < value.length; index++) {
|
|
112
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
113
|
+
if (descriptor === void 0 || !("value" in descriptor)) {
|
|
114
|
+
throw new TypeError(
|
|
115
|
+
"Provider JSON schema arrays must be dense data arrays without accessors."
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
copy2.push(copyJsonData(descriptor.value, ancestors));
|
|
119
|
+
}
|
|
120
|
+
ancestors.delete(value);
|
|
121
|
+
return copy2;
|
|
122
|
+
}
|
|
123
|
+
const prototype = Object.getPrototypeOf(value);
|
|
124
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
125
|
+
throw new TypeError("Provider JSON schema must contain only plain or null-prototype records.");
|
|
126
|
+
}
|
|
127
|
+
const copy = {};
|
|
128
|
+
for (const key of Object.keys(value)) {
|
|
129
|
+
if (omitRootSchema && key === "$schema") continue;
|
|
130
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
131
|
+
if (descriptor === void 0 || !("value" in descriptor)) {
|
|
132
|
+
throw new TypeError("Provider JSON schema records must not contain enumerable accessors.");
|
|
133
|
+
}
|
|
134
|
+
Object.defineProperty(copy, key, {
|
|
135
|
+
value: copyJsonData(descriptor.value, ancestors),
|
|
136
|
+
enumerable: true,
|
|
137
|
+
configurable: true,
|
|
138
|
+
writable: true
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
ancestors.delete(value);
|
|
142
|
+
return copy;
|
|
143
|
+
}
|
|
92
144
|
function completeStrictObjectRefinements(jsonSchema) {
|
|
93
145
|
completeSchemaNode(jsonSchema);
|
|
94
146
|
}
|
|
@@ -141,4 +193,4 @@ export {
|
|
|
141
193
|
tryToProviderJsonSchemaFromStandardSchema,
|
|
142
194
|
toProviderJsonSchemaFromStandardSchema
|
|
143
195
|
};
|
|
144
|
-
//# sourceMappingURL=chunk-
|
|
196
|
+
//# sourceMappingURL=chunk-57AUTEQ6.js.map
|