@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/team-runtime/run.ts"],"sourcesContent":["import { AgentRunCancelledError, AgentStreamClosedError } from \"../../agent/errors\";\nimport {\n assertAgentInteractionResponse,\n parseAgentInteractionResponse,\n} from \"../../agent/interactions\";\nimport { composeAgentLifecycle, lifecycleSnapshot } from \"../../agent/lifecycle\";\nimport { createResolvedAgent, getResolvedAgentOptions } from \"../../agent/resolved-agent\";\nimport type {\n AgentInput,\n AgentOutcome,\n AgentSteerInput,\n AgentSteerReceipt,\n AgentStreamEvent,\n} from \"../../agent/run-types\";\nimport { AgentTeamInteractionError, AgentTeamLimitError } from \"../../agent/team/errors\";\nimport type {\n AgentTeamEvent,\n AgentTeamLimits,\n AgentTeamMember,\n AgentTeamMessage,\n AgentTeamOutcome,\n AgentTeamRunOptions,\n} from \"../../agent/team/types\";\nimport { isStreamingCompletionModel } from \"../../completion/generate-completion\";\nimport { parseMessages, Usage, type CompletionResponse } from \"../../completion\";\nimport { throwIfAborted } from \"../abort\";\nimport { AgentRun } from \"../agent-runtime/agent-run\";\nimport { withInternalAgentRunOptions } from \"../agent-runtime/run-options\";\nimport { abortable, TeamChanges, TeamSlots } from \"./coordination\";\nimport {\n agentMessageInput,\n memberSummary,\n steeringMessages,\n type TeamInput,\n type TeamMember,\n} from \"./member\";\nimport { TEAM_INSTRUCTIONS, teamTools } from \"./tools\";\nimport type { TeamPolicy } from \"./policy\";\n\nexport class TeamRun<Output = unknown> {\n readonly id = globalThis.crypto.randomUUID();\n private readonly controller = new AbortController();\n private readonly changes = new TeamChanges();\n private readonly slots: TeamSlots;\n private readonly instances = new Map<string, TeamMember>();\n private readonly leader: TeamMember;\n private closed = false;\n private started = false;\n private turns = 0;\n private fatal: unknown;\n private removeAbortListener: (() => void) | undefined;\n\n constructor(\n leader: AgentTeamMember,\n private readonly policy: TeamPolicy,\n private readonly limits: Required<AgentTeamLimits>,\n private readonly options: AgentTeamRunOptions<unknown>,\n private readonly streaming: boolean,\n private readonly emit: (event: AgentTeamEvent<Output>) => void,\n ) {\n this.slots = new TeamSlots(limits.maxConcurrentAgents);\n this.leader = this.createMember(leader, leader.name ?? leader.id);\n const messages =\n options.messages === undefined\n ? steeringMessages({ prompt: options.prompt! })\n : parseMessages(options.messages);\n const last = messages.at(-1);\n if (last?.role !== \"user\")\n throw new TypeError(\"Agent team input must end with a user message.\");\n this.leader.history = messages.slice(0, -1);\n this.leader.inputs.push({\n id: globalThis.crypto.randomUUID(),\n messages: [last],\n submitted: false,\n });\n if (options.abortSignal !== undefined) {\n const signal = options.abortSignal;\n const abort = () => this.cancel(\"Agent team aborted.\");\n if (signal.aborted) abort();\n else {\n signal.addEventListener(\"abort\", abort, { once: true });\n this.removeAbortListener = () => signal.removeEventListener(\"abort\", abort);\n }\n }\n }\n\n async execute(): Promise<AgentTeamOutcome<Output>> {\n if (this.started) throw new Error(\"Agent team execution has already started.\");\n this.started = true;\n try {\n this.assertOpen();\n this.launch(this.leader);\n while (true) {\n this.assertOpen();\n const version = this.changes.version;\n if (this.leader.status === \"failed\" && this.leader.outcome?.type !== \"blocked\")\n throw this.leader.error;\n const outcome = this.leader.outcome;\n if (\n outcome !== undefined &&\n (outcome.type === \"blocked\" ||\n (this.leader.status === \"idle\" &&\n this.leader.task === undefined &&\n this.leader.inputs.length === 0 &&\n !this.childrenBusy()))\n ) {\n this.closed = true;\n this.stopMembers();\n await this.settleMembers();\n const result = {\n ...outcome,\n teamRunId: this.id,\n usage: [...this.instances.values()].reduce(\n (usage, member) => Usage.add(usage, member.usage),\n Usage.empty(),\n ),\n members: [...this.instances.values()]\n .filter((member) => member !== this.leader)\n .map(memberSummary),\n } as AgentTeamOutcome<Output>;\n this.emit(result);\n return result;\n }\n await this.changes.wait(version, this.controller.signal);\n }\n } catch (error) {\n this.closed = true;\n this.stopMembers();\n await this.settleMembers();\n throw this.fatal ?? error;\n } finally {\n this.removeAbortListener?.();\n }\n }\n\n steer(input: AgentSteerInput): AgentSteerReceipt {\n this.assertOpen();\n const entry: TeamInput = {\n id: globalThis.crypto.randomUUID(),\n messages: steeringMessages(input),\n submitted: false,\n };\n this.enqueue(this.leader, entry);\n return { id: entry.id, status: \"queued\" };\n }\n\n cancel(reason = \"Agent team cancelled.\"): void {\n if (this.closed || this.controller.signal.aborted) return;\n this.fail(new AgentRunCancelledError([], reason));\n }\n\n spawn(parent: TeamMember, definition: AgentTeamMember, prompt: string, name?: string) {\n this.assertOpen();\n throwIfAborted(parent.controller.signal);\n if (!this.policy.spawnTargets(parent).includes(definition))\n throw new Error(`Agent \"${parent.definition.id}\" cannot spawn \"${definition.id}\".`);\n if (parent.depth >= this.limits.maxDepth) throw new AgentTeamLimitError(\"maxDepth\");\n if (this.instances.size >= this.limits.maxAgentInstances)\n throw new AgentTeamLimitError(\"maxAgentInstances\");\n const member = this.createMember(definition, name ?? definition.name ?? definition.id, parent);\n member.inputs.push({\n id: globalThis.crypto.randomUUID(),\n messages: [{ role: \"user\", content: prompt }],\n submitted: false,\n });\n this.memberEvent(member, \"agent_queued\");\n this.launch(member);\n return { instanceId: member.instanceId, status: \"queued\" as const };\n }\n\n send(sender: TeamMember, input: { to: string; content: string; replyTo?: string | undefined }) {\n this.assertOpen();\n throwIfAborted(sender.controller.signal);\n const recipient = this.recipient(sender, input.to);\n if (recipient.status === \"failed\" || recipient.status === \"cancelled\") {\n throw new Error(`Agent instance \"${recipient.instanceId}\" is ${recipient.status}.`);\n }\n return this.queueMessage(sender, recipient, input);\n }\n\n private queueMessage(\n sender: TeamMember,\n recipient: TeamMember,\n input: { content: string; replyTo?: string | undefined },\n notificationType: \"message\" | \"outcome\" = \"message\",\n ) {\n const message: AgentTeamMessage = {\n id: globalThis.crypto.randomUUID(),\n teamRunId: this.id,\n fromInstanceId: sender.instanceId,\n toInstanceId: recipient.instanceId,\n content: input.content,\n createdAt: new Date().toISOString(),\n ...(input.replyTo === undefined ? {} : { replyTo: input.replyTo }),\n };\n this.enqueue(recipient, agentMessageInput(message), notificationType);\n return { messageId: message.id, status: \"queued\" as const };\n }\n\n visibleMembers(caller: TeamMember) {\n return [...this.instances.values()]\n .filter((member) => this.policy.canAccess(caller, member))\n .map((member) => ({\n instanceId: member.instanceId,\n agentId: member.agent.id,\n name: member.name,\n status: member.status,\n depth: member.depth,\n ...(member.parentInstanceId === undefined\n ? {}\n : { parentInstanceId: member.parentInstanceId }),\n }));\n }\n\n cancelMember(caller: TeamMember, instanceId: string, reason = \"Cancelled by parent.\") {\n this.assertOpen();\n throwIfAborted(caller.controller.signal);\n const member = this.recipient(caller, instanceId);\n if (member.parentInstanceId !== caller.instanceId)\n throw new Error(\"Only a parent can cancel its child.\");\n if (member.status === \"cancelled\") return { instanceId, status: \"cancelled\" as const };\n this.stopMember(member, reason);\n this.stopDescendants(member, reason);\n if (member.task === undefined) this.reportOutcome(member);\n return { instanceId, status: \"cancelled\" as const };\n }\n\n async wait(member: TeamMember, instanceId: string | undefined, timeoutMs: number) {\n this.assertOpen();\n const target = instanceId === undefined ? undefined : this.recipient(member, instanceId);\n const deadline = Date.now() + timeoutMs;\n return this.yieldSlot(member, \"waiting\", async () => {\n while (true) {\n const version = this.changes.version;\n const index = member.notifications.findIndex(\n (notification) => target === undefined || notification.from === target.instanceId,\n );\n if (index !== -1) {\n const notification = member.notifications.splice(index, 1)[0]!;\n return {\n reason: notification.type,\n instanceId: notification.from,\n messageId: notification.id,\n };\n }\n if (target !== undefined && [\"idle\", \"failed\", \"cancelled\"].includes(target.status)) {\n return { reason: \"outcome\", instanceId: target.instanceId, status: target.status };\n }\n const remaining = deadline - Date.now();\n if (remaining <= 0) return { reason: \"timeout\" };\n await this.changes.wait(version, member.controller.signal, remaining);\n }\n });\n }\n\n private createMember(agent: AgentTeamMember, name: string, parent?: TeamMember): TeamMember {\n const parentInstanceId = parent?.instanceId;\n const member: TeamMember = {\n instanceId: globalThis.crypto.randomUUID(),\n agent,\n definition: agent,\n depth: parent === undefined ? 0 : parent.depth + 1,\n name,\n ...(parentInstanceId === undefined ? {} : { parentInstanceId }),\n status: \"queued\",\n history: [],\n inputs: [],\n receipts: new Map(),\n controller: new AbortController(),\n usage: Usage.empty(),\n notifications: [],\n };\n const resolved = getResolvedAgentOptions(member.agent);\n member.agent = createResolvedAgent({\n ...resolved,\n instructions: [\n resolved.instructions,\n TEAM_INSTRUCTIONS,\n `Your instance ID is ${member.instanceId}. ${parentInstanceId === undefined ? \"You are the coordinator. Spawn tools create independent members; their outcomes are delivered automatically.\" : `Your parent instance is ${parentInstanceId}.`}`,\n ]\n .filter(Boolean)\n .join(\"\\n\\n\"),\n tools: [\n ...(resolved.tools ?? []),\n ...teamTools(this, member, this.policy.spawnTargets(member)),\n ],\n });\n this.instances.set(member.instanceId, member);\n return member;\n }\n\n private recipient(sender: TeamMember, to: string): TeamMember {\n const id = to === \"parent\" ? sender.parentInstanceId : to;\n const recipient = id === undefined ? undefined : this.instances.get(id);\n if (\n recipient === undefined ||\n recipient === sender ||\n !this.policy.canAccess(sender, recipient)\n ) {\n throw new Error(\n `Agent instance \"${to}\" is not an accessible parent or child, or enabled sibling.`,\n );\n }\n return recipient;\n }\n\n private enqueue(\n member: TeamMember,\n input: TeamInput,\n notificationType: \"message\" | \"outcome\" = \"message\",\n ): void {\n if (member.inputs.length >= 128)\n throw new AgentTeamLimitError(\"pending messages per instance (128)\");\n member.inputs.push(input);\n if (input.message !== undefined) {\n this.emit({ type: \"message_queued\", ...this.identity(member), message: input.message });\n member.notifications.push({\n type: notificationType,\n from: input.message.fromInstanceId,\n id: input.id,\n });\n }\n this.submitInputs(member);\n if (this.started && member.task === undefined) this.launch(member);\n this.changes.notify();\n }\n\n private submitInputs(member: TeamMember): void {\n if (member.activeRun === undefined) return;\n for (const input of member.inputs) {\n if (input.submitted) continue;\n try {\n const receipt = member.activeRun.steer({ messages: input.messages });\n member.receipts.set(receipt.id, input);\n input.submitted = true;\n } catch (error) {\n // Closing runs reject steering; leave this input pending for the next assignment.\n if (error instanceof AgentStreamClosedError) return;\n throw error;\n }\n }\n }\n\n private delivered(member: TeamMember, input: TeamInput): void {\n const index = member.inputs.indexOf(input);\n if (index !== -1) member.inputs.splice(index, 1);\n member.notifications = member.notifications.filter(\n (notification) => notification.id !== input.id,\n );\n if (input.message !== undefined)\n this.emit({ type: \"message_delivered\", ...this.identity(member), message: input.message });\n }\n\n private launch(member: TeamMember): void {\n if (member.task !== undefined || this.closed || member.controller.signal.aborted) return;\n member.status = \"queued\";\n member.task = Promise.resolve()\n .then(() => this.runMember(member))\n .catch((error: unknown) => {\n member.error = error;\n member.inputs.length = 0;\n if (member.controller.signal.aborted) member.status = \"cancelled\";\n else {\n member.status = \"failed\";\n this.memberEvent(member, \"agent_failed\");\n }\n this.stopDescendants(member, \"Parent failed or was cancelled.\");\n if (!this.closed && !this.controller.signal.aborted && member !== this.leader) {\n try {\n this.reportOutcome(member);\n } catch (reportError) {\n this.fail(reportError);\n }\n }\n })\n .finally(() => {\n member.release?.();\n member.release = undefined;\n member.activeRun = undefined;\n member.task = undefined;\n if (member.status === \"idle\" && member.inputs.length > 0) this.launch(member);\n this.changes.notify();\n });\n this.changes.notify();\n }\n\n private async runMember(member: TeamMember): Promise<void> {\n const signal = member.controller.signal;\n member.release = await this.slots.acquire(signal);\n let nextInput: AgentInput | undefined;\n let firstInputs: TeamInput[] = [];\n while (true) {\n throwIfAborted(signal);\n member.status = \"running\";\n member.runId = globalThis.crypto.randomUUID();\n if (nextInput === undefined) {\n firstInputs = member.inputs.filter((input) => !input.submitted);\n const incoming = firstInputs.flatMap((input) => input.messages);\n if (incoming.length === 0) throw new Error(\"Agent team member has no input.\");\n nextInput = { messages: [...member.history, ...incoming] };\n member.history.push(...incoming.slice(0, -1));\n for (const input of firstInputs) input.submitted = true;\n }\n const streaming =\n this.streaming &&\n member.agent.model.capabilities.streaming &&\n isStreamingCompletionModel(member.agent.model);\n const baseSettings =\n member === this.leader\n ? {\n maxTurns: this.options.maxTurns,\n retries: this.options.retries,\n lifecycle: this.options.lifecycle,\n guardrails: this.options.guardrails,\n middlewares: this.options.middlewares,\n trace: this.options.trace,\n controls: this.options.controls,\n }\n : {};\n const run = AgentRun.fromAgent(\n member.agent,\n withInternalAgentRunOptions(\n {\n ...baseSettings,\n ...nextInput,\n abortSignal: signal,\n // Collaboration tools mutate one inbox/permit at a time; provider tools may still run independently across agents.\n toolConcurrency: 1,\n lifecycle: composeAgentLifecycle(baseSettings.lifecycle, {\n onStepFinish: (event) => {\n if (!streaming)\n this.agentEvent(member, {\n type: \"turn_end\",\n turn: event.step,\n response: lifecycleSnapshot(event.response) as CompletionResponse,\n });\n },\n onError: (event) => {\n member.usage = Usage.add(member.usage, event.usage);\n },\n }),\n },\n {\n runId: member.runId,\n hook: {\n onCompletionCall: () => {\n this.assertOpen();\n if (this.turns >= this.limits.maxTotalTurns) {\n const error = new AgentTeamLimitError(\"maxTotalTurns\");\n this.fail(error);\n throw error;\n }\n this.turns += 1;\n for (const input of firstInputs) this.delivered(member, input);\n firstInputs = [];\n },\n },\n beforeFinish: () => this.waitForChildren(member),\n onSteeringApplied: (id) => {\n const input = member.receipts.get(id);\n if (input !== undefined) {\n member.receipts.delete(id);\n this.delivered(member, input);\n }\n },\n },\n ),\n );\n member.activeRun = run;\n this.submitInputs(member);\n this.memberEvent(member, \"agent_started\");\n // Caller-owned models/tools may ignore abort. Close the team promptly, and discard late events.\n const outcome = await abortable(this.consumeRun(member, run, streaming), signal);\n member.activeRun = undefined;\n member.usage = Usage.add(member.usage, outcome.usage);\n member.history.push(...outcome.messages);\n if (outcome.type === \"interaction\") {\n const resolver = this.options.resolveInteraction;\n this.emit({\n type: \"interaction\",\n ...this.identity(member),\n interaction: lifecycleSnapshot(outcome.interaction),\n });\n if (resolver === undefined) {\n const error = new AgentTeamInteractionError(member.instanceId);\n this.fail(error);\n throw error;\n }\n try {\n const response = await this.yieldSlot(member, \"awaiting_interaction\", () =>\n abortable(\n Promise.resolve().then(() =>\n resolver({\n teamRunId: this.id,\n instanceId: member.instanceId,\n runId: outcome.runId,\n interaction: lifecycleSnapshot(outcome.interaction),\n abortSignal: signal,\n }),\n ),\n signal,\n ),\n );\n const parsed = parseAgentInteractionResponse(response);\n assertAgentInteractionResponse(outcome.interaction, parsed);\n nextInput = { continuation: outcome.continuation, response: parsed };\n } catch (cause) {\n if (signal.aborted) throw cause;\n const error = new AgentTeamInteractionError(member.instanceId, { cause });\n this.fail(error);\n throw error;\n }\n continue;\n }\n member.outcome = outcome;\n member.status = outcome.type === \"blocked\" ? \"failed\" : \"idle\";\n if (outcome.type === \"blocked\") {\n member.inputs.length = 0;\n this.stopDescendants(member, \"Parent was blocked.\");\n }\n this.memberEvent(member, outcome.type === \"blocked\" ? \"agent_failed\" : \"agent_idle\");\n if (member !== this.leader) this.reportOutcome(member);\n return;\n }\n }\n\n private async consumeRun(\n member: TeamMember,\n run: AgentRun<unknown>,\n streaming: boolean,\n ): Promise<AgentOutcome<unknown>> {\n if (!streaming) {\n const outcome = await run.generate();\n if (outcome.type === \"response\")\n this.agentEvent(member, { type: \"text_delta\", turn: 0, delta: outcome.text });\n this.agentEvent(member, outcome);\n return outcome;\n }\n for await (const event of run.events()) {\n this.agentEvent(member, event);\n if (event.type === \"error\") throw event.error;\n if (event.type === \"response\" || event.type === \"blocked\" || event.type === \"interaction\")\n return event;\n }\n throw new Error(\"Agent team member stream ended without an outcome.\");\n }\n\n private reportOutcome(member: TeamMember): void {\n const parent = this.instances.get(member.parentInstanceId!);\n if (parent === undefined || parent.status === \"failed\" || parent.status === \"cancelled\") return;\n const content = JSON.stringify({\n type: \"agent-outcome\",\n instanceId: member.instanceId,\n status: member.status,\n ...(member.outcome?.type === \"response\" ? { output: member.outcome.output } : {}),\n ...(member.outcome?.type === \"blocked\" ? { reason: member.outcome.reason } : {}),\n ...(member.error === undefined\n ? {}\n : { error: member.error instanceof Error ? member.error.message : String(member.error) }),\n });\n this.queueMessage(member, parent, { content }, \"outcome\");\n }\n\n private async waitForChildren(member: TeamMember): Promise<void> {\n if (!this.childrenBusy(member) || member.inputs.length > 0) return;\n await this.yieldSlot(member, \"waiting\", async () => {\n while (this.childrenBusy(member) && member.inputs.length === 0) {\n const version = this.changes.version;\n await this.changes.wait(version, member.controller.signal);\n }\n });\n }\n\n // Without a parent, final team settlement checks all descendants, including revived assignments.\n private childrenBusy(parent?: TeamMember): boolean {\n return [...this.instances.values()].some(\n (member) =>\n member !== this.leader &&\n (parent === undefined || member.parentInstanceId === parent.instanceId) &&\n ([\"queued\", \"running\", \"waiting\", \"awaiting_interaction\"].includes(member.status) ||\n member.inputs.length > 0),\n );\n }\n\n private async yieldSlot<T>(\n member: TeamMember,\n status: \"waiting\" | \"awaiting_interaction\",\n work: () => Promise<T>,\n ): Promise<T> {\n member.release?.();\n member.release = undefined;\n member.status = status;\n this.memberEvent(member, \"agent_waiting\");\n this.changes.notify();\n try {\n return await work();\n } finally {\n if (!member.controller.signal.aborted && !this.closed) {\n member.release = await this.slots.acquire(member.controller.signal);\n member.status = \"running\";\n this.changes.notify();\n }\n }\n }\n\n private identity(member: TeamMember) {\n return {\n teamRunId: this.id,\n instanceId: member.instanceId,\n ...(member.runId === undefined ? {} : { runId: member.runId }),\n };\n }\n\n private memberEvent(\n member: TeamMember,\n type:\n | \"agent_queued\"\n | \"agent_started\"\n | \"agent_waiting\"\n | \"agent_idle\"\n | \"agent_failed\"\n | \"agent_cancelled\",\n ) {\n this.emit({ type, ...this.identity(member), member: memberSummary(member) });\n }\n\n private agentEvent(member: TeamMember, event: AgentStreamEvent<unknown>) {\n if (this.closed || member.controller.signal.aborted) return;\n this.emit({\n type: \"agent_event\",\n ...this.identity(member),\n coordinator: member === this.leader,\n event: lifecycleSnapshot(event),\n });\n }\n\n private assertOpen(): void {\n if (this.fatal !== undefined) throw this.fatal;\n if (this.closed) throw new AgentStreamClosedError();\n throwIfAborted(this.controller.signal);\n }\n\n private fail(error: unknown): void {\n this.fatal ??= error;\n this.controller.abort(error);\n this.stopMembers();\n this.changes.notify();\n }\n\n private stopMember(member: TeamMember, reason: string): void {\n if (member.status === \"cancelled\") return;\n member.status = \"cancelled\";\n member.inputs.length = 0;\n member.controller.abort(reason);\n member.activeRun?.cancel(reason);\n this.memberEvent(member, \"agent_cancelled\");\n this.changes.notify();\n }\n\n private stopMembers(): void {\n for (const member of this.instances.values()) {\n if ([\"queued\", \"running\", \"waiting\", \"awaiting_interaction\"].includes(member.status))\n this.stopMember(member, \"Agent team closed.\");\n }\n }\n\n private stopDescendants(parent: TeamMember, reason: string): void {\n // Instances are inserted after their parents; this also reaches idle descendants without recursion.\n // The subtree root is already terminal, and each descendant's parent is stopped first.\n // Only the subtree root reports cancellation to a surviving parent; descendant reports are suppressed.\n const stopped = new Set([parent.instanceId]);\n for (const member of this.instances.values()) {\n if (member.parentInstanceId !== undefined && stopped.has(member.parentInstanceId)) {\n stopped.add(member.instanceId);\n this.stopMember(member, reason);\n }\n }\n }\n\n private async settleMembers(): Promise<void> {\n await Promise.allSettled(\n [...this.instances.values()].flatMap((member) =>\n member.task === undefined ? [] : [member.task],\n ),\n );\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// src/schema/zod-schema.ts
|
|
2
|
+
import { toJSONSchema } from "zod";
|
|
3
|
+
function toProviderJsonSchema(schema, options = {}) {
|
|
4
|
+
const jsonSchema = toJSONSchema(schema, options);
|
|
5
|
+
const { $schema: _schema, ...providerSchema } = jsonSchema;
|
|
6
|
+
return providerSchema;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
toProviderJsonSchema
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=chunk-SQAAVYJG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema/zod-schema.ts"],"sourcesContent":["import { toJSONSchema, type z } from \"zod\";\nimport type { JsonObject } from \"../completion/index\";\n\nexport type ZodSchema<T = unknown> = z.ZodType<T>;\n\nexport function toProviderJsonSchema(\n schema: z.ZodType,\n options: { io?: \"input\" | \"output\" } = {},\n): JsonObject {\n const jsonSchema = toJSONSchema(schema, options) as JsonObject;\n const { $schema: _schema, ...providerSchema } = jsonSchema;\n return providerSchema;\n}\n"],"mappings":";AAAA,SAAS,oBAA4B;AAK9B,SAAS,qBACd,QACA,UAAuC,CAAC,GAC5B;AACZ,QAAM,aAAa,aAAa,QAAQ,OAAO;AAC/C,QAAM,EAAE,SAAS,SAAS,GAAG,eAAe,IAAI;AAChD,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// src/internal/agent-runtime/structured-output.ts
|
|
2
|
+
var JSON_FENCE_START = "```json\n";
|
|
3
|
+
var JSON_FENCE_CRLF_START = "```json\r\n";
|
|
4
|
+
var UNLABELED_FENCE_START = "```\n";
|
|
5
|
+
var UNLABELED_FENCE_CRLF_START = "```\r\n";
|
|
6
|
+
var FENCE_END = "\n```";
|
|
7
|
+
var STRUCTURED_OUTPUT_RETRY_PROMPT = "Your previous response was invalid structured output. Return only raw JSON that matches the supplied JSON schema. Do not use Markdown fences or include commentary.";
|
|
8
|
+
var STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT = "Your previous response exceeded the provider output limit. Return substantially shorter raw JSON that matches the supplied JSON schema. Do not use Markdown fences or include commentary.";
|
|
9
|
+
var STRUCTURED_OUTPUT_REPAIR_PREVIEW_MAX_LENGTH = 8192;
|
|
10
|
+
var STRUCTURED_OUTPUT_REPAIR_PREVIEW_MARKER = "\n...[output omitted]...\n";
|
|
11
|
+
function structuredOutputRepairPreview(text) {
|
|
12
|
+
if (text.length <= STRUCTURED_OUTPUT_REPAIR_PREVIEW_MAX_LENGTH) {
|
|
13
|
+
return { text, includedOutputLength: text.length };
|
|
14
|
+
}
|
|
15
|
+
const availableLength = STRUCTURED_OUTPUT_REPAIR_PREVIEW_MAX_LENGTH - STRUCTURED_OUTPUT_REPAIR_PREVIEW_MARKER.length;
|
|
16
|
+
const headLength = Math.ceil(availableLength / 2);
|
|
17
|
+
const tailLength = availableLength - headLength;
|
|
18
|
+
return {
|
|
19
|
+
text: `${text.slice(0, headLength)}${STRUCTURED_OUTPUT_REPAIR_PREVIEW_MARKER}${text.slice(-tailLength)}`,
|
|
20
|
+
includedOutputLength: headLength + tailLength
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function normalizeStructuredOutput(text) {
|
|
24
|
+
const trimmed = text.trim();
|
|
25
|
+
const opening = fenceOpening(trimmed);
|
|
26
|
+
if (opening === void 0 || !trimmed.endsWith(FENCE_END)) {
|
|
27
|
+
return { text: trimmed, format: "raw" };
|
|
28
|
+
}
|
|
29
|
+
const closingStart = trimmed.length - 3;
|
|
30
|
+
const precedingNewline = closingStart - 1;
|
|
31
|
+
const contentEnd = trimmed[precedingNewline - 1] === "\r" ? precedingNewline - 1 : precedingNewline;
|
|
32
|
+
return {
|
|
33
|
+
text: trimmed.slice(opening.length, contentEnd).trim(),
|
|
34
|
+
format: opening.format
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function fenceOpening(text) {
|
|
38
|
+
if (text.startsWith(JSON_FENCE_START)) {
|
|
39
|
+
return { length: JSON_FENCE_START.length, format: "json-fence" };
|
|
40
|
+
}
|
|
41
|
+
if (text.startsWith(JSON_FENCE_CRLF_START)) {
|
|
42
|
+
return { length: JSON_FENCE_CRLF_START.length, format: "json-fence" };
|
|
43
|
+
}
|
|
44
|
+
if (text.startsWith(UNLABELED_FENCE_START)) {
|
|
45
|
+
return { length: UNLABELED_FENCE_START.length, format: "unlabeled-fence" };
|
|
46
|
+
}
|
|
47
|
+
if (text.startsWith(UNLABELED_FENCE_CRLF_START)) {
|
|
48
|
+
return { length: UNLABELED_FENCE_CRLF_START.length, format: "unlabeled-fence" };
|
|
49
|
+
}
|
|
50
|
+
return void 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
STRUCTURED_OUTPUT_RETRY_PROMPT,
|
|
55
|
+
STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT,
|
|
56
|
+
structuredOutputRepairPreview,
|
|
57
|
+
normalizeStructuredOutput
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=chunk-SXE4J43E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/agent-runtime/structured-output.ts"],"sourcesContent":["import type { AgentStructuredOutputFormat } from \"../../agent/errors\";\n\nconst JSON_FENCE_START = \"```json\\n\";\nconst JSON_FENCE_CRLF_START = \"```json\\r\\n\";\nconst UNLABELED_FENCE_START = \"```\\n\";\nconst UNLABELED_FENCE_CRLF_START = \"```\\r\\n\";\nconst FENCE_END = \"\\n```\";\n\nexport const STRUCTURED_OUTPUT_RETRY_PROMPT =\n \"Your previous response was invalid structured output. Return only raw JSON that matches the supplied JSON schema. Do not use Markdown fences or include commentary.\";\n\nexport const STRUCTURED_OUTPUT_TRUNCATED_RETRY_PROMPT =\n \"Your previous response exceeded the provider output limit. Return substantially shorter raw JSON that matches the supplied JSON schema. Do not use Markdown fences or include commentary.\";\n\nconst STRUCTURED_OUTPUT_REPAIR_PREVIEW_MAX_LENGTH = 8_192;\nconst STRUCTURED_OUTPUT_REPAIR_PREVIEW_MARKER = \"\\n...[output omitted]...\\n\";\n\nexport type StructuredOutputRepairPreview = Readonly<{\n text: string;\n includedOutputLength: number;\n}>;\n\nexport function structuredOutputRepairPreview(text: string): StructuredOutputRepairPreview {\n if (text.length <= STRUCTURED_OUTPUT_REPAIR_PREVIEW_MAX_LENGTH) {\n return { text, includedOutputLength: text.length };\n }\n const availableLength =\n STRUCTURED_OUTPUT_REPAIR_PREVIEW_MAX_LENGTH - STRUCTURED_OUTPUT_REPAIR_PREVIEW_MARKER.length;\n const headLength = Math.ceil(availableLength / 2);\n const tailLength = availableLength - headLength;\n return {\n text: `${text.slice(0, headLength)}${STRUCTURED_OUTPUT_REPAIR_PREVIEW_MARKER}${text.slice(-tailLength)}`,\n includedOutputLength: headLength + tailLength,\n };\n}\n\nexport type NormalizedStructuredOutput = Readonly<{\n text: string;\n format: AgentStructuredOutputFormat;\n}>;\n\nexport function normalizeStructuredOutput(text: string): NormalizedStructuredOutput {\n const trimmed = text.trim();\n const opening = fenceOpening(trimmed);\n if (opening === undefined || !trimmed.endsWith(FENCE_END)) {\n return { text: trimmed, format: \"raw\" };\n }\n\n const closingStart = trimmed.length - 3;\n const precedingNewline = closingStart - 1;\n const contentEnd =\n trimmed[precedingNewline - 1] === \"\\r\" ? precedingNewline - 1 : precedingNewline;\n return {\n text: trimmed.slice(opening.length, contentEnd).trim(),\n format: opening.format,\n };\n}\n\nfunction fenceOpening(\n text: string,\n): Readonly<{ length: number; format: Exclude<AgentStructuredOutputFormat, \"raw\"> }> | undefined {\n if (text.startsWith(JSON_FENCE_START)) {\n return { length: JSON_FENCE_START.length, format: \"json-fence\" };\n }\n if (text.startsWith(JSON_FENCE_CRLF_START)) {\n return { length: JSON_FENCE_CRLF_START.length, format: \"json-fence\" };\n }\n if (text.startsWith(UNLABELED_FENCE_START)) {\n return { length: UNLABELED_FENCE_START.length, format: \"unlabeled-fence\" };\n }\n if (text.startsWith(UNLABELED_FENCE_CRLF_START)) {\n return { length: UNLABELED_FENCE_CRLF_START.length, format: \"unlabeled-fence\" };\n }\n return undefined;\n}\n"],"mappings":";AAEA,IAAM,mBAAmB;AACzB,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAC9B,IAAM,6BAA6B;AACnC,IAAM,YAAY;AAEX,IAAM,iCACX;AAEK,IAAM,2CACX;AAEF,IAAM,8CAA8C;AACpD,IAAM,0CAA0C;AAOzC,SAAS,8BAA8B,MAA6C;AACzF,MAAI,KAAK,UAAU,6CAA6C;AAC9D,WAAO,EAAE,MAAM,sBAAsB,KAAK,OAAO;AAAA,EACnD;AACA,QAAM,kBACJ,8CAA8C,wCAAwC;AACxF,QAAM,aAAa,KAAK,KAAK,kBAAkB,CAAC;AAChD,QAAM,aAAa,kBAAkB;AACrC,SAAO;AAAA,IACL,MAAM,GAAG,KAAK,MAAM,GAAG,UAAU,CAAC,GAAG,uCAAuC,GAAG,KAAK,MAAM,CAAC,UAAU,CAAC;AAAA,IACtG,sBAAsB,aAAa;AAAA,EACrC;AACF;AAOO,SAAS,0BAA0B,MAA0C;AAClF,QAAM,UAAU,KAAK,KAAK;AAC1B,QAAM,UAAU,aAAa,OAAO;AACpC,MAAI,YAAY,UAAa,CAAC,QAAQ,SAAS,SAAS,GAAG;AACzD,WAAO,EAAE,MAAM,SAAS,QAAQ,MAAM;AAAA,EACxC;AAEA,QAAM,eAAe,QAAQ,SAAS;AACtC,QAAM,mBAAmB,eAAe;AACxC,QAAM,aACJ,QAAQ,mBAAmB,CAAC,MAAM,OAAO,mBAAmB,IAAI;AAClE,SAAO;AAAA,IACL,MAAM,QAAQ,MAAM,QAAQ,QAAQ,UAAU,EAAE,KAAK;AAAA,IACrD,QAAQ,QAAQ;AAAA,EAClB;AACF;AAEA,SAAS,aACP,MAC+F;AAC/F,MAAI,KAAK,WAAW,gBAAgB,GAAG;AACrC,WAAO,EAAE,QAAQ,iBAAiB,QAAQ,QAAQ,aAAa;AAAA,EACjE;AACA,MAAI,KAAK,WAAW,qBAAqB,GAAG;AAC1C,WAAO,EAAE,QAAQ,sBAAsB,QAAQ,QAAQ,aAAa;AAAA,EACtE;AACA,MAAI,KAAK,WAAW,qBAAqB,GAAG;AAC1C,WAAO,EAAE,QAAQ,sBAAsB,QAAQ,QAAQ,kBAAkB;AAAA,EAC3E;AACA,MAAI,KAAK,WAAW,0BAA0B,GAAG;AAC/C,WAAO,EAAE,QAAQ,2BAA2B,QAAQ,QAAQ,kBAAkB;AAAA,EAChF;AACA,SAAO;AACT;","names":[]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assertJsonObject
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4ONUNWGC.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveRetryOptions,
|
|
6
|
-
runWithRetries
|
|
6
|
+
runWithRetries
|
|
7
|
+
} from "./chunk-POXHJF3H.js";
|
|
8
|
+
import {
|
|
7
9
|
throwIfAborted
|
|
8
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-USRKPEQN.js";
|
|
9
11
|
|
|
10
12
|
// src/speech-generation/generate-speech.ts
|
|
11
13
|
async function generateSpeech(options) {
|
|
@@ -48,4 +50,4 @@ function assertNonEmptyString(value, name) {
|
|
|
48
50
|
export {
|
|
49
51
|
generateSpeech
|
|
50
52
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-SYULMZGL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/speech-generation/generate-speech.ts"],"sourcesContent":["import type { JsonObject } from \"../completion/types\";\nimport { throwIfAborted } from \"../internal/abort\";\nimport { assertJsonObject } from \"../internal/json-object\";\nimport type { ModelCallOptions } from \"../model-call-options\";\nimport {\n type ResolvedRetryOptions,\n type RetrySetting,\n resolveRetryOptions,\n runWithRetries,\n} from \"../retry\";\nimport type {\n SpeechGenerationModel,\n SpeechGenerationRequest,\n SpeechGenerationResult,\n} from \"./types\";\n\nexport type GenerateSpeechOptions<Model extends SpeechGenerationModel = SpeechGenerationModel> = {\n model: Model;\n text: string;\n voice: string;\n speed?: number | undefined;\n providerOptions?: JsonObject | undefined;\n retries?: RetrySetting | undefined;\n abortSignal?: AbortSignal | undefined;\n};\n\ntype RawResponseOf<Model> =\n Model extends SpeechGenerationModel<infer RawResponse> ? RawResponse : unknown;\n\nexport async function generateSpeech<Model extends SpeechGenerationModel>(\n options: GenerateSpeechOptions<Model>,\n): Promise<SpeechGenerationResult<RawResponseOf<Model>>> {\n assertNonEmptyString(options.text, \"Speech text\");\n assertNonEmptyString(options.voice, \"Speech voice\");\n throwIfAborted(options.abortSignal);\n const speed = options.speed ?? 1;\n if (!Number.isFinite(speed) || speed <= 0) {\n throw new RangeError(\"Speech speed must be a positive finite number.\");\n }\n\n const request: SpeechGenerationRequest = { text: options.text, voice: options.voice, speed };\n if (options.providerOptions !== undefined) {\n assertJsonObject(options.providerOptions, \"providerOptions\");\n request.providerOptions = options.providerOptions;\n }\n return runWithRetries(\n () => {\n throwIfAborted(options.abortSignal);\n return options.model.speechGeneration(\n request,\n modelCallOptions(options.abortSignal),\n ) as Promise<SpeechGenerationResult<RawResponseOf<Model>>>;\n },\n resolveRetries(options.retries),\n { streaming: false, abortSignal: options.abortSignal },\n );\n}\n\nfunction resolveRetries(setting: RetrySetting | undefined): ResolvedRetryOptions | undefined {\n return setting === undefined || setting === false ? undefined : resolveRetryOptions(setting);\n}\n\nfunction modelCallOptions(abortSignal: AbortSignal | undefined): ModelCallOptions | undefined {\n return abortSignal === undefined ? undefined : { abortSignal };\n}\n\nfunction assertNonEmptyString(value: string, name: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`${name} must be a non-empty string.`);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/speech-generation/generate-speech.ts"],"sourcesContent":["import type { JsonObject } from \"../completion/types\";\nimport { throwIfAborted } from \"../internal/abort\";\nimport { assertJsonObject } from \"../internal/json-object\";\nimport type { ModelCallOptions } from \"../model-call-options\";\nimport {\n type ResolvedRetryOptions,\n type RetrySetting,\n resolveRetryOptions,\n runWithRetries,\n} from \"../retry\";\nimport type {\n SpeechGenerationModel,\n SpeechGenerationRequest,\n SpeechGenerationResult,\n} from \"./types\";\n\nexport type GenerateSpeechOptions<Model extends SpeechGenerationModel = SpeechGenerationModel> = {\n model: Model;\n text: string;\n voice: string;\n speed?: number | undefined;\n providerOptions?: JsonObject | undefined;\n retries?: RetrySetting | undefined;\n abortSignal?: AbortSignal | undefined;\n};\n\ntype RawResponseOf<Model> =\n Model extends SpeechGenerationModel<infer RawResponse> ? RawResponse : unknown;\n\nexport async function generateSpeech<Model extends SpeechGenerationModel>(\n options: GenerateSpeechOptions<Model>,\n): Promise<SpeechGenerationResult<RawResponseOf<Model>>> {\n assertNonEmptyString(options.text, \"Speech text\");\n assertNonEmptyString(options.voice, \"Speech voice\");\n throwIfAborted(options.abortSignal);\n const speed = options.speed ?? 1;\n if (!Number.isFinite(speed) || speed <= 0) {\n throw new RangeError(\"Speech speed must be a positive finite number.\");\n }\n\n const request: SpeechGenerationRequest = { text: options.text, voice: options.voice, speed };\n if (options.providerOptions !== undefined) {\n assertJsonObject(options.providerOptions, \"providerOptions\");\n request.providerOptions = options.providerOptions;\n }\n return runWithRetries(\n () => {\n throwIfAborted(options.abortSignal);\n return options.model.speechGeneration(\n request,\n modelCallOptions(options.abortSignal),\n ) as Promise<SpeechGenerationResult<RawResponseOf<Model>>>;\n },\n resolveRetries(options.retries),\n { streaming: false, abortSignal: options.abortSignal },\n );\n}\n\nfunction resolveRetries(setting: RetrySetting | undefined): ResolvedRetryOptions | undefined {\n return setting === undefined || setting === false ? undefined : resolveRetryOptions(setting);\n}\n\nfunction modelCallOptions(abortSignal: AbortSignal | undefined): ModelCallOptions | undefined {\n return abortSignal === undefined ? undefined : { abortSignal };\n}\n\nfunction assertNonEmptyString(value: string, name: string): void {\n if (typeof value !== \"string\" || value.trim().length === 0) {\n throw new TypeError(`${name} must be a non-empty string.`);\n }\n}\n"],"mappings":";;;;;;;;;;;;AA6BA,eAAsB,eACpB,SACuD;AACvD,uBAAqB,QAAQ,MAAM,aAAa;AAChD,uBAAqB,QAAQ,OAAO,cAAc;AAClD,iBAAe,QAAQ,WAAW;AAClC,QAAM,QAAQ,QAAQ,SAAS;AAC/B,MAAI,CAAC,OAAO,SAAS,KAAK,KAAK,SAAS,GAAG;AACzC,UAAM,IAAI,WAAW,gDAAgD;AAAA,EACvE;AAEA,QAAM,UAAmC,EAAE,MAAM,QAAQ,MAAM,OAAO,QAAQ,OAAO,MAAM;AAC3F,MAAI,QAAQ,oBAAoB,QAAW;AACzC,qBAAiB,QAAQ,iBAAiB,iBAAiB;AAC3D,YAAQ,kBAAkB,QAAQ;AAAA,EACpC;AACA,SAAO;AAAA,IACL,MAAM;AACJ,qBAAe,QAAQ,WAAW;AAClC,aAAO,QAAQ,MAAM;AAAA,QACnB;AAAA,QACA,iBAAiB,QAAQ,WAAW;AAAA,MACtC;AAAA,IACF;AAAA,IACA,eAAe,QAAQ,OAAO;AAAA,IAC9B,EAAE,WAAW,OAAO,aAAa,QAAQ,YAAY;AAAA,EACvD;AACF;AAEA,SAAS,eAAe,SAAqE;AAC3F,SAAO,YAAY,UAAa,YAAY,QAAQ,SAAY,oBAAoB,OAAO;AAC7F;AAEA,SAAS,iBAAiB,aAAoE;AAC5F,SAAO,gBAAgB,SAAY,SAAY,EAAE,YAAY;AAC/D;AAEA,SAAS,qBAAqB,OAAe,MAAoB;AAC/D,MAAI,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,WAAW,GAAG;AAC1D,UAAM,IAAI,UAAU,GAAG,IAAI,8BAA8B;AAAA,EAC3D;AACF;","names":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Agent
|
|
3
|
+
} from "./chunk-4S4OECPW.js";
|
|
4
|
+
import {
|
|
5
|
+
getAgentToolState
|
|
6
|
+
} from "./chunk-A7BXVZXZ.js";
|
|
7
|
+
import {
|
|
8
|
+
markResolvedAgentOptions
|
|
9
|
+
} from "./chunk-5FCZ64HM.js";
|
|
10
|
+
|
|
11
|
+
// src/agent/resolved-agent.ts
|
|
12
|
+
function createResolvedAgent(options) {
|
|
13
|
+
return new Agent(markResolvedAgentOptions(options));
|
|
14
|
+
}
|
|
15
|
+
function getResolvedAgentOptions(agent) {
|
|
16
|
+
const toolState = getAgentToolState(agent);
|
|
17
|
+
return {
|
|
18
|
+
id: agent.id,
|
|
19
|
+
name: agent.name,
|
|
20
|
+
description: agent.description,
|
|
21
|
+
model: agent.model,
|
|
22
|
+
instructions: agent.instructions,
|
|
23
|
+
context: [...agent.context],
|
|
24
|
+
temperature: agent.temperature,
|
|
25
|
+
maxTokens: agent.maxTokens,
|
|
26
|
+
providerOptions: agent.providerOptions,
|
|
27
|
+
controls: agent.controls,
|
|
28
|
+
retries: agent.retries,
|
|
29
|
+
tools: [...toolState.configuredTools],
|
|
30
|
+
mcpServers: [...agent.mcpServers],
|
|
31
|
+
providerTools: [...toolState.providerTools],
|
|
32
|
+
toolIndexes: [...toolState.toolIndexes],
|
|
33
|
+
toolChoice: agent.toolChoice,
|
|
34
|
+
defaultMaxTurns: agent.defaultMaxTurns,
|
|
35
|
+
lifecycle: agent.lifecycle,
|
|
36
|
+
outputSchema: agent.outputSchema,
|
|
37
|
+
observability: agent.observability,
|
|
38
|
+
guardrails: [...agent.guardrails],
|
|
39
|
+
middlewares: [...agent.middlewares],
|
|
40
|
+
memory: agent.memory
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
createResolvedAgent,
|
|
46
|
+
getResolvedAgentOptions
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=chunk-T4IAJJUU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/agent/resolved-agent.ts"],"sourcesContent":["import type { CompletionModel } from \"../completion\";\nimport { Agent } from \"./agent\";\nimport { markResolvedAgentOptions } from \"./resolve-options\";\nimport { getAgentToolState } from \"./tool-state\";\nimport type { ResolvedAgentOptions } from \"./types\";\n\nexport function createResolvedAgent<\n Output = string,\n M extends CompletionModel = CompletionModel,\n ContextDocument = unknown,\n>(options: ResolvedAgentOptions<Output, M, ContextDocument>): Agent<Output, M, ContextDocument> {\n return new Agent(markResolvedAgentOptions(options));\n}\n\nexport function getResolvedAgentOptions<Output, M extends CompletionModel, ContextDocument>(\n agent: Agent<Output, M, ContextDocument>,\n): ResolvedAgentOptions<Output, M, ContextDocument> {\n const toolState = getAgentToolState(agent);\n return {\n id: agent.id,\n name: agent.name,\n description: agent.description,\n model: agent.model,\n instructions: agent.instructions,\n context: [...agent.context],\n temperature: agent.temperature,\n maxTokens: agent.maxTokens,\n providerOptions: agent.providerOptions,\n controls: agent.controls,\n retries: agent.retries,\n tools: [...toolState.configuredTools],\n mcpServers: [...agent.mcpServers],\n providerTools: [...toolState.providerTools],\n toolIndexes: [...toolState.toolIndexes],\n toolChoice: agent.toolChoice,\n defaultMaxTurns: agent.defaultMaxTurns,\n lifecycle: agent.lifecycle,\n outputSchema: agent.outputSchema,\n observability: agent.observability,\n guardrails: [...agent.guardrails],\n middlewares: [...agent.middlewares],\n memory: agent.memory,\n };\n}\n"],"mappings":";;;;;;;;;;;AAMO,SAAS,oBAId,SAA8F;AAC9F,SAAO,IAAI,MAAM,yBAAyB,OAAO,CAAC;AACpD;AAEO,SAAS,wBACd,OACkD;AAClD,QAAM,YAAY,kBAAkB,KAAK;AACzC,SAAO;AAAA,IACL,IAAI,MAAM;AAAA,IACV,MAAM,MAAM;AAAA,IACZ,aAAa,MAAM;AAAA,IACnB,OAAO,MAAM;AAAA,IACb,cAAc,MAAM;AAAA,IACpB,SAAS,CAAC,GAAG,MAAM,OAAO;AAAA,IAC1B,aAAa,MAAM;AAAA,IACnB,WAAW,MAAM;AAAA,IACjB,iBAAiB,MAAM;AAAA,IACvB,UAAU,MAAM;AAAA,IAChB,SAAS,MAAM;AAAA,IACf,OAAO,CAAC,GAAG,UAAU,eAAe;AAAA,IACpC,YAAY,CAAC,GAAG,MAAM,UAAU;AAAA,IAChC,eAAe,CAAC,GAAG,UAAU,aAAa;AAAA,IAC1C,aAAa,CAAC,GAAG,UAAU,WAAW;AAAA,IACtC,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IACvB,WAAW,MAAM;AAAA,IACjB,cAAc,MAAM;AAAA,IACpB,eAAe,MAAM;AAAA,IACrB,YAAY,CAAC,GAAG,MAAM,UAAU;AAAA,IAChC,aAAa,CAAC,GAAG,MAAM,WAAW;AAAA,IAClC,QAAQ,MAAM;AAAA,EAChB;AACF;","names":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
lifecycleSnapshot
|
|
3
|
+
} from "./chunk-KFAVEL5F.js";
|
|
4
|
+
import {
|
|
5
|
+
parseMessage,
|
|
6
|
+
parseMessages
|
|
7
|
+
} from "./chunk-BONQTXRQ.js";
|
|
8
|
+
|
|
9
|
+
// src/internal/team-runtime/member.ts
|
|
10
|
+
function memberSummary(member) {
|
|
11
|
+
return {
|
|
12
|
+
instanceId: member.instanceId,
|
|
13
|
+
agentId: member.agent.id,
|
|
14
|
+
name: member.name,
|
|
15
|
+
depth: member.depth,
|
|
16
|
+
status: member.status,
|
|
17
|
+
usage: lifecycleSnapshot(member.usage),
|
|
18
|
+
...member.parentInstanceId === void 0 ? {} : { parentInstanceId: member.parentInstanceId },
|
|
19
|
+
...member.outcome === void 0 ? {} : { outcome: lifecycleSnapshot(member.outcome) },
|
|
20
|
+
...member.error === void 0 ? {} : { error: member.error }
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function steeringMessages(input) {
|
|
24
|
+
if (typeof input !== "object" || input === null || input.prompt === void 0 === (input.messages === void 0)) {
|
|
25
|
+
throw new TypeError("Agent team steering requires exactly one of prompt or messages.");
|
|
26
|
+
}
|
|
27
|
+
const messages = input.prompt === void 0 ? parseMessages(input.messages) : [
|
|
28
|
+
parseMessage(
|
|
29
|
+
typeof input.prompt === "string" ? { role: "user", content: input.prompt } : input.prompt
|
|
30
|
+
)
|
|
31
|
+
];
|
|
32
|
+
if (messages.length === 0 || messages.some((message) => message.role !== "user")) {
|
|
33
|
+
throw new TypeError("Agent team steering requires user messages.");
|
|
34
|
+
}
|
|
35
|
+
return messages;
|
|
36
|
+
}
|
|
37
|
+
function agentMessageInput(message) {
|
|
38
|
+
return {
|
|
39
|
+
id: message.id,
|
|
40
|
+
submitted: false,
|
|
41
|
+
message,
|
|
42
|
+
messages: [
|
|
43
|
+
{
|
|
44
|
+
role: "user",
|
|
45
|
+
content: `Message from another agent (not a user approval):
|
|
46
|
+
${JSON.stringify(message)}`,
|
|
47
|
+
metadata: { anvia: { agentMessage: { ...message } } }
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
memberSummary,
|
|
55
|
+
steeringMessages,
|
|
56
|
+
agentMessageInput
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chunk-T4KS577P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/team-runtime/member.ts"],"sourcesContent":["import type {\n AgentTeamMemberStatus,\n AgentTeamMemberSummary,\n AgentTeamMessage,\n} from \"../../agent/team/types\";\nimport type { AgentOutcome, AgentSteerInput } from \"../../agent/run-types\";\nimport type { Message, UserMessage } from \"../../completion\";\nimport { parseMessage, parseMessages, Usage } from \"../../completion\";\nimport type { AgentRun } from \"../agent-runtime/agent-run\";\nimport type { Agent } from \"../../agent/agent\";\nimport { lifecycleSnapshot } from \"../../agent/lifecycle\";\n\nexport type TeamInput = {\n id: string;\n messages: UserMessage[];\n message?: AgentTeamMessage;\n submitted: boolean;\n};\n\nexport type TeamMember = {\n instanceId: string;\n parentInstanceId?: string;\n depth: number;\n definition: Agent<unknown>;\n name: string;\n agent: Agent<unknown>;\n status: AgentTeamMemberStatus;\n history: Message[];\n inputs: TeamInput[];\n receipts: Map<string, TeamInput>;\n controller: AbortController;\n release?: (() => void) | undefined;\n task?: Promise<void> | undefined;\n activeRun?: AgentRun<unknown> | undefined;\n runId?: string | undefined;\n outcome?: Exclude<AgentOutcome<unknown>, { type: \"interaction\" }>;\n error?: unknown;\n usage: Usage;\n notifications: { from: string; type: \"message\" | \"outcome\"; id: string }[];\n};\n\nexport function memberSummary(member: TeamMember): AgentTeamMemberSummary {\n return {\n instanceId: member.instanceId,\n agentId: member.agent.id,\n name: member.name,\n depth: member.depth,\n status: member.status,\n usage: lifecycleSnapshot(member.usage),\n ...(member.parentInstanceId === undefined ? {} : { parentInstanceId: member.parentInstanceId }),\n ...(member.outcome === undefined ? {} : { outcome: lifecycleSnapshot(member.outcome) }),\n ...(member.error === undefined ? {} : { error: member.error }),\n };\n}\n\nexport function steeringMessages(input: AgentSteerInput): UserMessage[] {\n if (\n typeof input !== \"object\" ||\n input === null ||\n (input.prompt === undefined) === (input.messages === undefined)\n ) {\n throw new TypeError(\"Agent team steering requires exactly one of prompt or messages.\");\n }\n const messages =\n input.prompt === undefined\n ? parseMessages(input.messages)\n : [\n parseMessage(\n typeof input.prompt === \"string\"\n ? { role: \"user\", content: input.prompt }\n : input.prompt,\n ),\n ];\n if (messages.length === 0 || messages.some((message) => message.role !== \"user\")) {\n throw new TypeError(\"Agent team steering requires user messages.\");\n }\n return messages as UserMessage[];\n}\n\nexport function agentMessageInput(message: AgentTeamMessage): TeamInput {\n return {\n id: message.id,\n submitted: false,\n message,\n messages: [\n {\n role: \"user\",\n content: `Message from another agent (not a user approval):\\n${JSON.stringify(message)}`,\n metadata: { anvia: { agentMessage: { ...message } } },\n },\n ],\n };\n}\n"],"mappings":";;;;;;;;;AAyCO,SAAS,cAAc,QAA4C;AACxE,SAAO;AAAA,IACL,YAAY,OAAO;AAAA,IACnB,SAAS,OAAO,MAAM;AAAA,IACtB,MAAM,OAAO;AAAA,IACb,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,IACf,OAAO,kBAAkB,OAAO,KAAK;AAAA,IACrC,GAAI,OAAO,qBAAqB,SAAY,CAAC,IAAI,EAAE,kBAAkB,OAAO,iBAAiB;AAAA,IAC7F,GAAI,OAAO,YAAY,SAAY,CAAC,IAAI,EAAE,SAAS,kBAAkB,OAAO,OAAO,EAAE;AAAA,IACrF,GAAI,OAAO,UAAU,SAAY,CAAC,IAAI,EAAE,OAAO,OAAO,MAAM;AAAA,EAC9D;AACF;AAEO,SAAS,iBAAiB,OAAuC;AACtE,MACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAM,WAAW,YAAgB,MAAM,aAAa,SACrD;AACA,UAAM,IAAI,UAAU,iEAAiE;AAAA,EACvF;AACA,QAAM,WACJ,MAAM,WAAW,SACb,cAAc,MAAM,QAAQ,IAC5B;AAAA,IACE;AAAA,MACE,OAAO,MAAM,WAAW,WACpB,EAAE,MAAM,QAAQ,SAAS,MAAM,OAAO,IACtC,MAAM;AAAA,IACZ;AAAA,EACF;AACN,MAAI,SAAS,WAAW,KAAK,SAAS,KAAK,CAAC,YAAY,QAAQ,SAAS,MAAM,GAAG;AAChF,UAAM,IAAI,UAAU,6CAA6C;AAAA,EACnE;AACA,SAAO;AACT;AAEO,SAAS,kBAAkB,SAAsC;AACtE,SAAO;AAAA,IACL,IAAI,QAAQ;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR;AAAA,QACE,MAAM;AAAA,QACN,SAAS;AAAA,EAAsD,KAAK,UAAU,OAAO,CAAC;AAAA,QACtF,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,EAAE;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
chunkText
|
|
3
|
+
} from "./chunk-GPVXCY5I.js";
|
|
4
|
+
|
|
5
|
+
// src/documents/text-document.ts
|
|
6
|
+
function chunkTextDocuments(options) {
|
|
7
|
+
if (typeof options !== "object" || options === null) {
|
|
8
|
+
throw new TypeError("chunkTextDocuments options must contain a documents array");
|
|
9
|
+
}
|
|
10
|
+
const documents = options.documents;
|
|
11
|
+
if (!Array.isArray(documents)) {
|
|
12
|
+
throw new TypeError("chunkTextDocuments options must contain a documents array");
|
|
13
|
+
}
|
|
14
|
+
const ids = /* @__PURE__ */ new Set();
|
|
15
|
+
const chunks = [];
|
|
16
|
+
for (const document of documents) {
|
|
17
|
+
validateDocument(document, ids);
|
|
18
|
+
chunks.push(...chunkDocument(document, options.chunking));
|
|
19
|
+
}
|
|
20
|
+
return chunks;
|
|
21
|
+
}
|
|
22
|
+
function validateDocument(document, ids) {
|
|
23
|
+
if (typeof document !== "object" || document === null) {
|
|
24
|
+
throw new TypeError("Text documents must be objects");
|
|
25
|
+
}
|
|
26
|
+
if (typeof document.id !== "string" || document.id.length === 0) {
|
|
27
|
+
throw new TypeError("Text document ids must be non-empty strings");
|
|
28
|
+
}
|
|
29
|
+
if (ids.has(document.id)) {
|
|
30
|
+
throw new TypeError(`Duplicate text document id: ${document.id}`);
|
|
31
|
+
}
|
|
32
|
+
if (typeof document.text !== "string" || document.text.length === 0) {
|
|
33
|
+
throw new TypeError(`Text document ${document.id} must contain non-empty text`);
|
|
34
|
+
}
|
|
35
|
+
ids.add(document.id);
|
|
36
|
+
}
|
|
37
|
+
function chunkDocument(document, chunking) {
|
|
38
|
+
if (chunking === void 0 || chunking.strategy === "none") {
|
|
39
|
+
return [createDocumentChunk(document, 0, document.text)];
|
|
40
|
+
}
|
|
41
|
+
const textChunks = chunkDocumentText(document.text, chunking);
|
|
42
|
+
return textChunks.map((chunk) => createDocumentChunk(document, chunk.index, chunk.text));
|
|
43
|
+
}
|
|
44
|
+
function chunkDocumentText(text, chunking) {
|
|
45
|
+
const overlap = chunking.overlap ?? 0;
|
|
46
|
+
if (chunking.strategy === "fixed") {
|
|
47
|
+
return chunkText({
|
|
48
|
+
text,
|
|
49
|
+
strategy: "fixed",
|
|
50
|
+
maxSize: chunking.maxSize,
|
|
51
|
+
overlap
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return chunkText({
|
|
55
|
+
text,
|
|
56
|
+
strategy: "recursive",
|
|
57
|
+
maxSize: chunking.maxSize,
|
|
58
|
+
overlap,
|
|
59
|
+
separators: chunking.separators
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function createDocumentChunk(document, index, text) {
|
|
63
|
+
const chunk = {
|
|
64
|
+
id: `${document.id}:chunk:${index}`,
|
|
65
|
+
documentId: document.id,
|
|
66
|
+
index,
|
|
67
|
+
text
|
|
68
|
+
};
|
|
69
|
+
if (document.metadata === void 0) {
|
|
70
|
+
return chunk;
|
|
71
|
+
}
|
|
72
|
+
return { ...chunk, metadata: document.metadata };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
chunkTextDocuments
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=chunk-TFIOU6UR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/documents/text-document.ts"],"sourcesContent":["import { chunkText } from \"./chunk-text\";\n\nexport type TextDocumentMetadata = Record<string, string | number | boolean>;\n\nexport type TextDocument<Metadata = TextDocumentMetadata> = Readonly<{\n id: string;\n text: string;\n metadata?: Metadata | undefined;\n}>;\n\nexport type TextDocumentChunk<Metadata = TextDocumentMetadata> = Readonly<{\n id: string;\n documentId: string;\n index: number;\n text: string;\n metadata?: Metadata | undefined;\n}>;\n\nexport type TextDocumentChunkingOptions =\n | Readonly<{ strategy: \"none\" }>\n | Readonly<{\n strategy: \"fixed\";\n maxSize: number;\n overlap?: number | undefined;\n }>\n | Readonly<{\n strategy: \"recursive\";\n maxSize: number;\n overlap?: number | undefined;\n separators: readonly string[];\n }>;\n\nexport type ChunkTextDocumentsOptions<Metadata = TextDocumentMetadata> = Readonly<{\n documents: readonly TextDocument<Metadata>[];\n chunking?: TextDocumentChunkingOptions | undefined;\n}>;\n\nexport function chunkTextDocuments<Metadata>(\n options: ChunkTextDocumentsOptions<Metadata>,\n): readonly TextDocumentChunk<Metadata>[] {\n if (typeof options !== \"object\" || options === null) {\n throw new TypeError(\"chunkTextDocuments options must contain a documents array\");\n }\n const documents = options.documents;\n if (!Array.isArray(documents)) {\n throw new TypeError(\"chunkTextDocuments options must contain a documents array\");\n }\n\n const ids = new Set<string>();\n const chunks: TextDocumentChunk<Metadata>[] = [];\n for (const document of documents as readonly TextDocument<Metadata>[]) {\n validateDocument(document, ids);\n chunks.push(...chunkDocument(document, options.chunking));\n }\n return chunks;\n}\n\nfunction validateDocument<Metadata>(document: TextDocument<Metadata>, ids: Set<string>): void {\n if (typeof document !== \"object\" || document === null) {\n throw new TypeError(\"Text documents must be objects\");\n }\n if (typeof document.id !== \"string\" || document.id.length === 0) {\n throw new TypeError(\"Text document ids must be non-empty strings\");\n }\n if (ids.has(document.id)) {\n throw new TypeError(`Duplicate text document id: ${document.id}`);\n }\n if (typeof document.text !== \"string\" || document.text.length === 0) {\n throw new TypeError(`Text document ${document.id} must contain non-empty text`);\n }\n ids.add(document.id);\n}\n\nfunction chunkDocument<Metadata>(\n document: TextDocument<Metadata>,\n chunking: TextDocumentChunkingOptions | undefined,\n): readonly TextDocumentChunk<Metadata>[] {\n if (chunking === undefined || chunking.strategy === \"none\") {\n return [createDocumentChunk(document, 0, document.text)];\n }\n\n const textChunks = chunkDocumentText(document.text, chunking);\n return textChunks.map((chunk) => createDocumentChunk(document, chunk.index, chunk.text));\n}\n\nfunction chunkDocumentText(\n text: string,\n chunking: Exclude<TextDocumentChunkingOptions, Readonly<{ strategy: \"none\" }>>,\n) {\n const overlap = chunking.overlap ?? 0;\n if (chunking.strategy === \"fixed\") {\n return chunkText({\n text,\n strategy: \"fixed\",\n maxSize: chunking.maxSize,\n overlap,\n });\n }\n return chunkText({\n text,\n strategy: \"recursive\",\n maxSize: chunking.maxSize,\n overlap,\n separators: chunking.separators,\n });\n}\n\nfunction createDocumentChunk<Metadata>(\n document: TextDocument<Metadata>,\n index: number,\n text: string,\n): TextDocumentChunk<Metadata> {\n const chunk = {\n id: `${document.id}:chunk:${index}`,\n documentId: document.id,\n index,\n text,\n };\n if (document.metadata === undefined) {\n return chunk;\n }\n return { ...chunk, metadata: document.metadata };\n}\n"],"mappings":";;;;;AAqCO,SAAS,mBACd,SACwC;AACxC,MAAI,OAAO,YAAY,YAAY,YAAY,MAAM;AACnD,UAAM,IAAI,UAAU,2DAA2D;AAAA,EACjF;AACA,QAAM,YAAY,QAAQ;AAC1B,MAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,UAAM,IAAI,UAAU,2DAA2D;AAAA,EACjF;AAEA,QAAM,MAAM,oBAAI,IAAY;AAC5B,QAAM,SAAwC,CAAC;AAC/C,aAAW,YAAY,WAAgD;AACrE,qBAAiB,UAAU,GAAG;AAC9B,WAAO,KAAK,GAAG,cAAc,UAAU,QAAQ,QAAQ,CAAC;AAAA,EAC1D;AACA,SAAO;AACT;AAEA,SAAS,iBAA2B,UAAkC,KAAwB;AAC5F,MAAI,OAAO,aAAa,YAAY,aAAa,MAAM;AACrD,UAAM,IAAI,UAAU,gCAAgC;AAAA,EACtD;AACA,MAAI,OAAO,SAAS,OAAO,YAAY,SAAS,GAAG,WAAW,GAAG;AAC/D,UAAM,IAAI,UAAU,6CAA6C;AAAA,EACnE;AACA,MAAI,IAAI,IAAI,SAAS,EAAE,GAAG;AACxB,UAAM,IAAI,UAAU,+BAA+B,SAAS,EAAE,EAAE;AAAA,EAClE;AACA,MAAI,OAAO,SAAS,SAAS,YAAY,SAAS,KAAK,WAAW,GAAG;AACnE,UAAM,IAAI,UAAU,iBAAiB,SAAS,EAAE,8BAA8B;AAAA,EAChF;AACA,MAAI,IAAI,SAAS,EAAE;AACrB;AAEA,SAAS,cACP,UACA,UACwC;AACxC,MAAI,aAAa,UAAa,SAAS,aAAa,QAAQ;AAC1D,WAAO,CAAC,oBAAoB,UAAU,GAAG,SAAS,IAAI,CAAC;AAAA,EACzD;AAEA,QAAM,aAAa,kBAAkB,SAAS,MAAM,QAAQ;AAC5D,SAAO,WAAW,IAAI,CAAC,UAAU,oBAAoB,UAAU,MAAM,OAAO,MAAM,IAAI,CAAC;AACzF;AAEA,SAAS,kBACP,MACA,UACA;AACA,QAAM,UAAU,SAAS,WAAW;AACpC,MAAI,SAAS,aAAa,SAAS;AACjC,WAAO,UAAU;AAAA,MACf;AAAA,MACA,UAAU;AAAA,MACV,SAAS,SAAS;AAAA,MAClB;AAAA,IACF,CAAC;AAAA,EACH;AACA,SAAO,UAAU;AAAA,IACf;AAAA,IACA,UAAU;AAAA,IACV,SAAS,SAAS;AAAA,IAClB;AAAA,IACA,YAAY,SAAS;AAAA,EACvB,CAAC;AACH;AAEA,SAAS,oBACP,UACA,OACA,MAC6B;AAC7B,QAAM,QAAQ;AAAA,IACZ,IAAI,GAAG,SAAS,EAAE,UAAU,KAAK;AAAA,IACjC,YAAY,SAAS;AAAA,IACrB;AAAA,IACA;AAAA,EACF;AACA,MAAI,SAAS,aAAa,QAAW;AACnC,WAAO;AAAA,EACT;AACA,SAAO,EAAE,GAAG,OAAO,UAAU,SAAS,SAAS;AACjD;","names":[]}
|