@anvia/core 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-2QZJTG2E.js → chunk-23GEYG2X.js} +11 -71
- package/dist/chunk-23GEYG2X.js.map +1 -0
- 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-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-5AETKC4L.js +107 -0
- package/dist/chunk-5AETKC4L.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-5P2YOQSA.js +355 -0
- package/dist/chunk-5P2YOQSA.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-7F53DOML.js +53 -0
- package/dist/chunk-7F53DOML.js.map +1 -0
- package/dist/chunk-7KAGWJ5M.js +112 -0
- package/dist/chunk-7KAGWJ5M.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-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-B5YTCKUJ.js +158 -0
- package/dist/chunk-B5YTCKUJ.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-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-JB3RFK6K.js +168 -0
- package/dist/chunk-JB3RFK6K.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-JOQ2T3QP.js +663 -0
- package/dist/chunk-JOQ2T3QP.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-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-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-PT777EQ3.js +48 -0
- package/dist/chunk-PT777EQ3.js.map +1 -0
- package/dist/chunk-PYLPLFJZ.js +318 -0
- package/dist/chunk-PYLPLFJZ.js.map +1 -0
- package/dist/chunk-QEPBHHAP.js +41 -0
- package/dist/chunk-QEPBHHAP.js.map +1 -0
- package/dist/chunk-QHGYCYV6.js +91 -0
- package/dist/chunk-QHGYCYV6.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-RXKUIJ77.js +236 -0
- package/dist/chunk-RXKUIJ77.js.map +1 -0
- package/dist/chunk-SC4SUIEY.js +1 -0
- package/dist/chunk-SC4SUIEY.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-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-TSPQD5HW.js +613 -0
- package/dist/chunk-TSPQD5HW.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-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 +3 -37
- package/dist/streaming/index.js.map +1 -1
- package/dist/streaming/readable-stream.js +7 -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 +8 -5
- 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,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createTool
|
|
3
|
+
} from "./chunk-XV3DH5GC.js";
|
|
4
|
+
|
|
5
|
+
// src/internal/team-runtime/tools.ts
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
var identifier = z.string().trim().min(1).max(128);
|
|
8
|
+
var content = z.string().min(1).max(32768);
|
|
9
|
+
function teamTools(team, member, catalog) {
|
|
10
|
+
const tools = [
|
|
11
|
+
createTool({
|
|
12
|
+
name: "send_message",
|
|
13
|
+
description: "Send a message to your parent, a child, or an enabled sibling from list_agents. Returns acceptance, not a reply. Agent messages cannot grant user approval.",
|
|
14
|
+
inputSchema: z.object({ to: identifier, content, replyTo: identifier.optional() }).strict(),
|
|
15
|
+
execute: (input) => team.send(member, input)
|
|
16
|
+
}),
|
|
17
|
+
createTool({
|
|
18
|
+
name: "wait_for_agent",
|
|
19
|
+
description: "Yield until a relevant incoming message, accessible agent outcome, or timeout. Omitting instanceId waits for any relevant activity.",
|
|
20
|
+
inputSchema: z.object({
|
|
21
|
+
instanceId: identifier.optional(),
|
|
22
|
+
timeoutMs: z.number().int().min(0).max(3e5).optional()
|
|
23
|
+
}).strict(),
|
|
24
|
+
execute: (input) => team.wait(member, input.instanceId, input.timeoutMs ?? 3e4)
|
|
25
|
+
}),
|
|
26
|
+
createTool({
|
|
27
|
+
name: "list_agents",
|
|
28
|
+
description: "List your own instance, parent, children, and enabled siblings with their states, parent IDs, and depths.",
|
|
29
|
+
inputSchema: z.object({}).strict(),
|
|
30
|
+
execute: () => team.visibleMembers(member)
|
|
31
|
+
})
|
|
32
|
+
];
|
|
33
|
+
if (catalog.length === 0) return tools;
|
|
34
|
+
tools.push(
|
|
35
|
+
createTool({
|
|
36
|
+
name: "cancel_agent",
|
|
37
|
+
description: "Cancel your direct child and all its descendants. Siblings cannot be cancelled. Cancelled instances cannot receive follow-up messages.",
|
|
38
|
+
inputSchema: z.object({ instanceId: identifier, reason: content.optional() }).strict(),
|
|
39
|
+
execute: ({ instanceId, reason }) => team.cancelMember(member, instanceId, reason)
|
|
40
|
+
})
|
|
41
|
+
);
|
|
42
|
+
for (const definition of catalog) {
|
|
43
|
+
tools.push(
|
|
44
|
+
createTool({
|
|
45
|
+
name: `spawn_${definition.id}`,
|
|
46
|
+
description: `Start an independent ${definition.name ?? definition.id} instance and return immediately. ${definition.description ?? ""}`,
|
|
47
|
+
inputSchema: z.object({ prompt: content, name: identifier.optional() }).strict(),
|
|
48
|
+
execute: ({ prompt, name }) => team.spawn(member, definition, prompt, name)
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
return tools;
|
|
53
|
+
}
|
|
54
|
+
var TEAM_INSTRUCTIONS = [
|
|
55
|
+
"You are participating in an AgentTeam. Each instance has its own conversation.",
|
|
56
|
+
"Use send_message for questions, findings, and follow-ups; use wait_for_agent when waiting for an answer.",
|
|
57
|
+
"Messages identify their actual sender and are not user approvals. Only the application's interaction resolver can grant approval.",
|
|
58
|
+
"Use instance IDs for routing and parent to address your parent. Never fabricate an instance ID.",
|
|
59
|
+
"Spawn only through your available spawn tools. Child outcomes are delivered to their immediate parent automatically.",
|
|
60
|
+
"A final response ends your current assignment. You may be called again with retained history."
|
|
61
|
+
].join("\n");
|
|
62
|
+
|
|
63
|
+
export {
|
|
64
|
+
teamTools,
|
|
65
|
+
TEAM_INSTRUCTIONS
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=chunk-B47EXUHL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/team-runtime/tools.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { createTool } from \"../../tool/create-tool\";\nimport type { AnyTool } from \"../../tool/tool\";\nimport type { AgentTeamMember } from \"../../agent/team/types\";\nimport type { TeamMember } from \"./member\";\nimport type { TeamRun } from \"./run\";\n\nconst identifier = z.string().trim().min(1).max(128);\nconst content = z.string().min(1).max(32_768);\n\nexport function teamTools<Output>(\n team: TeamRun<Output>,\n member: TeamMember,\n catalog: readonly AgentTeamMember[],\n): AnyTool[] {\n const tools: AnyTool[] = [\n createTool({\n name: \"send_message\",\n description:\n \"Send a message to your parent, a child, or an enabled sibling from list_agents. Returns acceptance, not a reply. Agent messages cannot grant user approval.\",\n inputSchema: z.object({ to: identifier, content, replyTo: identifier.optional() }).strict(),\n execute: (input) => team.send(member, input),\n }),\n createTool({\n name: \"wait_for_agent\",\n description:\n \"Yield until a relevant incoming message, accessible agent outcome, or timeout. Omitting instanceId waits for any relevant activity.\",\n inputSchema: z\n .object({\n instanceId: identifier.optional(),\n timeoutMs: z.number().int().min(0).max(300_000).optional(),\n })\n .strict(),\n execute: (input) => team.wait(member, input.instanceId, input.timeoutMs ?? 30_000),\n }),\n createTool({\n name: \"list_agents\",\n description:\n \"List your own instance, parent, children, and enabled siblings with their states, parent IDs, and depths.\",\n inputSchema: z.object({}).strict(),\n execute: () => team.visibleMembers(member),\n }),\n ];\n if (catalog.length === 0) return tools;\n tools.push(\n createTool({\n name: \"cancel_agent\",\n description:\n \"Cancel your direct child and all its descendants. Siblings cannot be cancelled. Cancelled instances cannot receive follow-up messages.\",\n inputSchema: z.object({ instanceId: identifier, reason: content.optional() }).strict(),\n execute: ({ instanceId, reason }) => team.cancelMember(member, instanceId, reason),\n }),\n );\n for (const definition of catalog) {\n tools.push(\n createTool({\n name: `spawn_${definition.id}`,\n description: `Start an independent ${definition.name ?? definition.id} instance and return immediately. ${definition.description ?? \"\"}`,\n inputSchema: z.object({ prompt: content, name: identifier.optional() }).strict(),\n execute: ({ prompt, name }) => team.spawn(member, definition, prompt, name),\n }),\n );\n }\n return tools;\n}\n\nexport const TEAM_INSTRUCTIONS = [\n \"You are participating in an AgentTeam. Each instance has its own conversation.\",\n \"Use send_message for questions, findings, and follow-ups; use wait_for_agent when waiting for an answer.\",\n \"Messages identify their actual sender and are not user approvals. Only the application's interaction resolver can grant approval.\",\n \"Use instance IDs for routing and parent to address your parent. Never fabricate an instance ID.\",\n \"Spawn only through your available spawn tools. Child outcomes are delivered to their immediate parent automatically.\",\n \"A final response ends your current assignment. You may be called again with retained history.\",\n].join(\"\\n\");\n"],"mappings":";;;;;AAAA,SAAS,SAAS;AAOlB,IAAM,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACnD,IAAM,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAM;AAErC,SAAS,UACd,MACA,QACA,SACW;AACX,QAAM,QAAmB;AAAA,IACvB,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aACE;AAAA,MACF,aAAa,EAAE,OAAO,EAAE,IAAI,YAAY,SAAS,SAAS,WAAW,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,MAC1F,SAAS,CAAC,UAAU,KAAK,KAAK,QAAQ,KAAK;AAAA,IAC7C,CAAC;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aACE;AAAA,MACF,aAAa,EACV,OAAO;AAAA,QACN,YAAY,WAAW,SAAS;AAAA,QAChC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAO,EAAE,SAAS;AAAA,MAC3D,CAAC,EACA,OAAO;AAAA,MACV,SAAS,CAAC,UAAU,KAAK,KAAK,QAAQ,MAAM,YAAY,MAAM,aAAa,GAAM;AAAA,IACnF,CAAC;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aACE;AAAA,MACF,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO;AAAA,MACjC,SAAS,MAAM,KAAK,eAAe,MAAM;AAAA,IAC3C,CAAC;AAAA,EACH;AACA,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QAAM;AAAA,IACJ,WAAW;AAAA,MACT,MAAM;AAAA,MACN,aACE;AAAA,MACF,aAAa,EAAE,OAAO,EAAE,YAAY,YAAY,QAAQ,QAAQ,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,MACrF,SAAS,CAAC,EAAE,YAAY,OAAO,MAAM,KAAK,aAAa,QAAQ,YAAY,MAAM;AAAA,IACnF,CAAC;AAAA,EACH;AACA,aAAW,cAAc,SAAS;AAChC,UAAM;AAAA,MACJ,WAAW;AAAA,QACT,MAAM,SAAS,WAAW,EAAE;AAAA,QAC5B,aAAa,wBAAwB,WAAW,QAAQ,WAAW,EAAE,qCAAqC,WAAW,eAAe,EAAE;AAAA,QACtI,aAAa,EAAE,OAAO,EAAE,QAAQ,SAAS,MAAM,WAAW,SAAS,EAAE,CAAC,EAAE,OAAO;AAAA,QAC/E,SAAS,CAAC,EAAE,QAAQ,KAAK,MAAM,KAAK,MAAM,QAAQ,YAAY,QAAQ,IAAI;AAAA,MAC5E,CAAC;AAAA,IACH;AAAA,EACF;AACA,SAAO;AACT;AAEO,IAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,IAAI;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// src/skills/types.ts
|
|
2
|
+
var SkillValidationError = class extends Error {
|
|
3
|
+
issues;
|
|
4
|
+
constructor(message, issues) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = "SkillValidationError";
|
|
7
|
+
this.issues = issues;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
SkillValidationError
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=chunk-B5JQDR33.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/skills/types.ts"],"sourcesContent":["import type { AnyTool } from \"../tool\";\n\nexport type Skill = {\n readonly name: string;\n readonly description: string;\n readonly instructions: string;\n readonly directory: string;\n readonly references: string[];\n readonly scripts: string[];\n readonly license?: string | undefined;\n readonly metadata?: Record<string, unknown> | undefined;\n};\n\nexport type SkillLoader = {\n load(): Promise<Skill[]>;\n};\n\nexport type SkillSet = {\n readonly skills: Skill[];\n readonly tools: AnyTool[];\n readonly instructions: string;\n};\n\nexport type SkillValidationIssue = {\n path: string;\n message: string;\n};\n\nexport class SkillValidationError extends Error {\n readonly issues: SkillValidationIssue[];\n\n constructor(message: string, issues: SkillValidationIssue[]) {\n super(message);\n this.name = \"SkillValidationError\";\n this.issues = issues;\n }\n}\n"],"mappings":";AA4BO,IAAM,uBAAN,cAAmC,MAAM;AAAA,EACrC;AAAA,EAET,YAAY,SAAiB,QAAgC;AAC3D,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,SAAS;AAAA,EAChB;AACF;","names":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AgentRun
|
|
3
|
+
} from "./chunk-RT5LUEO3.js";
|
|
4
|
+
import {
|
|
5
|
+
assertNonnegativeSafeInteger
|
|
6
|
+
} from "./chunk-NPJ2T3L5.js";
|
|
7
|
+
import {
|
|
8
|
+
normalizeMemoryScope
|
|
9
|
+
} from "./chunk-LAIATEUB.js";
|
|
10
|
+
import {
|
|
11
|
+
AgentRunMemory
|
|
12
|
+
} from "./chunk-F3E2RLC7.js";
|
|
13
|
+
import {
|
|
14
|
+
prepareAgentTools
|
|
15
|
+
} from "./chunk-JB3RFK6K.js";
|
|
16
|
+
import {
|
|
17
|
+
getRegisteredAgentTool,
|
|
18
|
+
registerAgentToolState
|
|
19
|
+
} from "./chunk-A7BXVZXZ.js";
|
|
20
|
+
import {
|
|
21
|
+
registerAgentProviderOutputSchema
|
|
22
|
+
} from "./chunk-GLMYZ6OA.js";
|
|
23
|
+
import {
|
|
24
|
+
resolveAgentOptions
|
|
25
|
+
} from "./chunk-7KAGWJ5M.js";
|
|
26
|
+
import {
|
|
27
|
+
cloneFrozenPlainData,
|
|
28
|
+
snapshotAgentContext,
|
|
29
|
+
snapshotAgentMemory,
|
|
30
|
+
snapshotAgentObservability,
|
|
31
|
+
snapshotGuardrailPolicies
|
|
32
|
+
} from "./chunk-NVALGVQG.js";
|
|
33
|
+
import {
|
|
34
|
+
createAgentStream
|
|
35
|
+
} from "./chunk-KY4VXIN2.js";
|
|
36
|
+
import {
|
|
37
|
+
createAgentTool
|
|
38
|
+
} from "./chunk-PPJ7SYQL.js";
|
|
39
|
+
import {
|
|
40
|
+
isStreamingCompletionModel
|
|
41
|
+
} from "./chunk-BDKFFFVX.js";
|
|
42
|
+
import {
|
|
43
|
+
assertJsonObject
|
|
44
|
+
} from "./chunk-4ONUNWGC.js";
|
|
45
|
+
import {
|
|
46
|
+
prepareToolCall
|
|
47
|
+
} from "./chunk-MHOJJYDK.js";
|
|
48
|
+
import {
|
|
49
|
+
ToolNotFoundError
|
|
50
|
+
} from "./chunk-J6S6MT7O.js";
|
|
51
|
+
import {
|
|
52
|
+
assertCompletionControlsSupported
|
|
53
|
+
} from "./chunk-IDNL6IH4.js";
|
|
54
|
+
import {
|
|
55
|
+
normalizeAgentId
|
|
56
|
+
} from "./chunk-KBBQSP4M.js";
|
|
57
|
+
|
|
58
|
+
// src/agent/agent.ts
|
|
59
|
+
var DEFAULT_MAX_TURNS = 20;
|
|
60
|
+
var Agent = class {
|
|
61
|
+
id;
|
|
62
|
+
name;
|
|
63
|
+
description;
|
|
64
|
+
model;
|
|
65
|
+
instructions;
|
|
66
|
+
context;
|
|
67
|
+
temperature;
|
|
68
|
+
maxTokens;
|
|
69
|
+
providerOptions;
|
|
70
|
+
controls;
|
|
71
|
+
retries;
|
|
72
|
+
mcpServers;
|
|
73
|
+
tools;
|
|
74
|
+
toolChoice;
|
|
75
|
+
defaultMaxTurns;
|
|
76
|
+
lifecycle;
|
|
77
|
+
outputSchema;
|
|
78
|
+
observability;
|
|
79
|
+
guardrails;
|
|
80
|
+
middlewares;
|
|
81
|
+
memory;
|
|
82
|
+
constructor(options) {
|
|
83
|
+
const resolved = resolveAgentOptions(options);
|
|
84
|
+
this.id = normalizeAgentId(resolved.id);
|
|
85
|
+
this.name = resolved.name;
|
|
86
|
+
this.description = resolved.description;
|
|
87
|
+
this.model = resolved.model;
|
|
88
|
+
this.instructions = resolved.instructions;
|
|
89
|
+
this.context = snapshotAgentContext(resolved.context);
|
|
90
|
+
this.temperature = resolved.temperature;
|
|
91
|
+
this.maxTokens = resolved.maxTokens;
|
|
92
|
+
if (resolved.providerOptions !== void 0) {
|
|
93
|
+
assertJsonObject(resolved.providerOptions, "Agent providerOptions");
|
|
94
|
+
}
|
|
95
|
+
this.providerOptions = cloneFrozenPlainData(resolved.providerOptions);
|
|
96
|
+
assertCompletionControlsSupported(this.model, resolved.controls);
|
|
97
|
+
this.controls = cloneFrozenPlainData(resolved.controls);
|
|
98
|
+
this.retries = cloneFrozenPlainData(resolved.retries);
|
|
99
|
+
const preparedTools = prepareAgentTools(resolved);
|
|
100
|
+
this.mcpServers = preparedTools.mcpServers;
|
|
101
|
+
this.tools = preparedTools.tools;
|
|
102
|
+
registerAgentToolState(this, preparedTools.publicState, preparedTools.toolsByName);
|
|
103
|
+
this.toolChoice = cloneFrozenPlainData(resolved.toolChoice);
|
|
104
|
+
this.defaultMaxTurns = assertNonnegativeSafeInteger(
|
|
105
|
+
resolved.defaultMaxTurns ?? DEFAULT_MAX_TURNS,
|
|
106
|
+
"maxTurns"
|
|
107
|
+
);
|
|
108
|
+
this.lifecycle = resolved.lifecycle;
|
|
109
|
+
this.outputSchema = resolved.outputSchema;
|
|
110
|
+
registerAgentProviderOutputSchema(this, resolved.outputSchema);
|
|
111
|
+
this.observability = snapshotAgentObservability(resolved.observability);
|
|
112
|
+
this.guardrails = snapshotGuardrailPolicies(resolved.guardrails);
|
|
113
|
+
this.middlewares = Object.freeze([...resolved.middlewares ?? []]);
|
|
114
|
+
this.memory = snapshotAgentMemory(resolved.memory);
|
|
115
|
+
}
|
|
116
|
+
generate(options) {
|
|
117
|
+
return AgentRun.fromAgent(this, options).generate();
|
|
118
|
+
}
|
|
119
|
+
resume(continuation, response, settings = {}) {
|
|
120
|
+
return this.generate({ continuation, response, ...settings });
|
|
121
|
+
}
|
|
122
|
+
stream(options) {
|
|
123
|
+
const run = AgentRun.fromAgent(this, options);
|
|
124
|
+
if (!this.model.capabilities.streaming || !isStreamingCompletionModel(this.model)) {
|
|
125
|
+
throw new Error("This completion model does not support streaming");
|
|
126
|
+
}
|
|
127
|
+
return createAgentStream(run);
|
|
128
|
+
}
|
|
129
|
+
compactMemory(options) {
|
|
130
|
+
if (typeof options !== "object" || options === null || Array.isArray(options)) {
|
|
131
|
+
throw new TypeError("Manual memory compaction requires an options object.");
|
|
132
|
+
}
|
|
133
|
+
const scope = normalizeMemoryScope(options.session, "Manual memory compaction");
|
|
134
|
+
const memory = new AgentRunMemory(this, scope, []);
|
|
135
|
+
return memory.compact(
|
|
136
|
+
`manual-memory-compaction:${globalThis.crypto.randomUUID()}`,
|
|
137
|
+
options.abortSignal
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
asTool(options) {
|
|
141
|
+
return createAgentTool(this, options);
|
|
142
|
+
}
|
|
143
|
+
getTool(toolName) {
|
|
144
|
+
return getRegisteredAgentTool(this, toolName);
|
|
145
|
+
}
|
|
146
|
+
async callTool(toolName, args, context) {
|
|
147
|
+
const tool = this.getTool(toolName);
|
|
148
|
+
if (tool === void 0) {
|
|
149
|
+
throw new ToolNotFoundError(toolName);
|
|
150
|
+
}
|
|
151
|
+
return prepareToolCall(tool, args).call(context ?? {});
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export {
|
|
156
|
+
Agent
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=chunk-B5YTCKUJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/agent/agent.ts"],"sourcesContent":["import { isStreamingCompletionModel } from \"../completion/generate-completion\";\nimport {\n assertCompletionControlsSupported,\n type CompletionControlValues,\n type CompletionModel,\n type CompletionModelControlsOf,\n type JsonObject,\n type ToolChoice,\n} from \"../completion/index\";\nimport type { GuardrailPolicy } from \"../guardrails\";\nimport { AgentRun } from \"../internal/agent-runtime/agent-run\";\nimport { AgentRunMemory } from \"../internal/agent-runtime/memory\";\nimport { normalizeMemoryScope } from \"../internal/agent-runtime/memory-scope\";\nimport { prepareToolCall } from \"../internal/agent-runtime/prepared-tool-call\";\nimport { assertNonnegativeSafeInteger } from \"../internal/agent-runtime/run-validation\";\nimport { assertJsonObject } from \"../internal/json-object\";\nimport type { McpServer } from \"../mcp\";\nimport type { MemoryCompactionResult } from \"../memory\";\nimport type { AgentObservabilityOptions } from \"../observability\";\nimport type { RetrySetting } from \"../retry\";\nimport type { ZodSchema } from \"../schema/zod-schema\";\nimport { ToolNotFoundError } from \"../tool/errors\";\nimport type { AgentMiddleware } from \"../tool/middleware\";\nimport type { AnyTool, NormalizedToolOutput, Tool, ToolCallContext } from \"../tool/tool\";\nimport { createAgentStream } from \"./agent-stream\";\nimport { createAgentTool } from \"./agent-tool\";\nimport { normalizeAgentId } from \"./ids\";\nimport type { AgentContinuation, AgentInteractionResponse } from \"./interactions\";\nimport type { AgentLifecycle } from \"./lifecycle\";\nimport { registerAgentProviderOutputSchema } from \"./output-schema\";\nimport { resolveAgentOptions } from \"./resolve-options\";\nimport type {\n AgentMemoryCompactionOptions,\n AgentOutcome,\n AgentRunOptions,\n AgentRunSettings,\n AgentStream,\n} from \"./run-types\";\nimport {\n cloneFrozenPlainData,\n snapshotAgentContext,\n snapshotAgentMemory,\n snapshotAgentObservability,\n snapshotGuardrailPolicies,\n} from \"./snapshot\";\nimport { prepareAgentTools } from \"./tool-catalog\";\nimport { getRegisteredAgentTool, registerAgentToolState } from \"./tool-state\";\nimport type { AgentContextInput, AgentMemory, AgentOptions, AgentToolOptions } from \"./types\";\n\nconst DEFAULT_MAX_TURNS = 20;\n\ntype RawResponseOf<Model> =\n Model extends CompletionModel<infer RawResponse> ? RawResponse : unknown;\n\nexport class Agent<\n Output = string,\n M extends CompletionModel = CompletionModel,\n ContextDocument = unknown,\n> {\n readonly id: string;\n readonly name: string | undefined;\n readonly description: string | undefined;\n readonly model: M;\n readonly instructions: string | undefined;\n readonly context: readonly AgentContextInput<ContextDocument>[];\n readonly temperature: number | undefined;\n readonly maxTokens: number | undefined;\n readonly providerOptions: JsonObject | undefined;\n readonly controls: CompletionControlValues<CompletionModelControlsOf<M>> | undefined;\n readonly retries: RetrySetting | undefined;\n readonly mcpServers: readonly McpServer[];\n readonly tools: readonly AnyTool[];\n readonly toolChoice: ToolChoice | undefined;\n readonly defaultMaxTurns: number | undefined;\n readonly lifecycle: AgentLifecycle<Output, RawResponseOf<M>> | undefined;\n readonly outputSchema: ZodSchema<Output> | undefined;\n readonly observability: AgentObservabilityOptions | undefined;\n readonly guardrails: readonly GuardrailPolicy[];\n readonly middlewares: readonly AgentMiddleware[];\n readonly memory: AgentMemory | undefined;\n\n constructor(options: AgentOptions<Output, M, ContextDocument>) {\n const resolved = resolveAgentOptions(options);\n this.id = normalizeAgentId(resolved.id);\n this.name = resolved.name;\n this.description = resolved.description;\n this.model = resolved.model;\n this.instructions = resolved.instructions;\n this.context = snapshotAgentContext(resolved.context);\n this.temperature = resolved.temperature;\n this.maxTokens = resolved.maxTokens;\n if (resolved.providerOptions !== undefined) {\n assertJsonObject(resolved.providerOptions, \"Agent providerOptions\");\n }\n this.providerOptions = cloneFrozenPlainData(resolved.providerOptions);\n assertCompletionControlsSupported(this.model, resolved.controls);\n this.controls = cloneFrozenPlainData(resolved.controls);\n this.retries = cloneFrozenPlainData(resolved.retries);\n\n const preparedTools = prepareAgentTools(resolved);\n this.mcpServers = preparedTools.mcpServers;\n this.tools = preparedTools.tools;\n registerAgentToolState(this, preparedTools.publicState, preparedTools.toolsByName);\n\n this.toolChoice = cloneFrozenPlainData(resolved.toolChoice);\n this.defaultMaxTurns = assertNonnegativeSafeInteger(\n resolved.defaultMaxTurns ?? DEFAULT_MAX_TURNS,\n \"maxTurns\",\n );\n this.lifecycle = resolved.lifecycle;\n this.outputSchema = resolved.outputSchema;\n registerAgentProviderOutputSchema(this, resolved.outputSchema);\n this.observability = snapshotAgentObservability(resolved.observability);\n this.guardrails = snapshotGuardrailPolicies(resolved.guardrails);\n this.middlewares = Object.freeze([...(resolved.middlewares ?? [])]);\n this.memory = snapshotAgentMemory(resolved.memory);\n }\n\n generate(\n options: AgentRunOptions<Output, RawResponseOf<M>, CompletionModelControlsOf<M>>,\n ): Promise<AgentOutcome<Output>> {\n return AgentRun.fromAgent(this, options).generate();\n }\n\n resume(\n continuation: AgentContinuation,\n response: AgentInteractionResponse,\n settings: AgentRunSettings<Output, RawResponseOf<M>, CompletionModelControlsOf<M>> = {},\n ): Promise<AgentOutcome<Output>> {\n return this.generate({ continuation, response, ...settings });\n }\n\n stream(\n options: AgentRunOptions<Output, RawResponseOf<M>, CompletionModelControlsOf<M>>,\n ): AgentStream<Output, RawResponseOf<M>> {\n const run = AgentRun.fromAgent(this, options);\n if (!this.model.capabilities.streaming || !isStreamingCompletionModel(this.model)) {\n throw new Error(\"This completion model does not support streaming\");\n }\n return createAgentStream(run);\n }\n\n compactMemory(options: AgentMemoryCompactionOptions): Promise<MemoryCompactionResult> {\n if (typeof options !== \"object\" || options === null || Array.isArray(options)) {\n throw new TypeError(\"Manual memory compaction requires an options object.\");\n }\n const scope = normalizeMemoryScope(options.session, \"Manual memory compaction\");\n const memory = new AgentRunMemory(this, scope, []);\n return memory.compact(\n `manual-memory-compaction:${globalThis.crypto.randomUUID()}`,\n options.abortSignal,\n );\n }\n\n asTool(options: AgentToolOptions): Tool<{ prompt: string }, Output> {\n return createAgentTool(this, options);\n }\n\n getTool(toolName: string): AnyTool | undefined {\n return getRegisteredAgentTool(this, toolName);\n }\n\n async callTool(\n toolName: string,\n args: string,\n context?: ToolCallContext,\n ): Promise<NormalizedToolOutput> {\n const tool = this.getTool(toolName);\n if (tool === undefined) {\n throw new ToolNotFoundError(toolName);\n }\n return prepareToolCall(tool, args).call(context ?? {});\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import {
|
|
2
|
+
markSkillTool
|
|
3
|
+
} from "./chunk-2NLINXRF.js";
|
|
4
|
+
import {
|
|
5
|
+
createTool
|
|
6
|
+
} from "./chunk-XV3DH5GC.js";
|
|
7
|
+
|
|
8
|
+
// src/skills/tools.ts
|
|
9
|
+
import { spawn } from "child_process";
|
|
10
|
+
import { readFile } from "fs/promises";
|
|
11
|
+
import { isAbsolute, relative, resolve } from "path";
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
var DEFAULT_TIMEOUT_MS = 3e4;
|
|
14
|
+
var MAX_OUTPUT_CHARS = 2e4;
|
|
15
|
+
function createSkillTools(skills) {
|
|
16
|
+
const registry = new SkillRegistry(skills);
|
|
17
|
+
return [
|
|
18
|
+
markSkillTool(
|
|
19
|
+
createTool({
|
|
20
|
+
name: "get_skill_instructions",
|
|
21
|
+
description: "Load the full SKILL.md instructions for an Agent Skill.",
|
|
22
|
+
inputSchema: z.object({
|
|
23
|
+
skillName: z.string().describe("The name of the skill to load.")
|
|
24
|
+
}),
|
|
25
|
+
outputSchema: z.string(),
|
|
26
|
+
execute: ({ skillName }) => registry.get(skillName).instructions
|
|
27
|
+
})
|
|
28
|
+
),
|
|
29
|
+
markSkillTool(
|
|
30
|
+
createTool({
|
|
31
|
+
name: "get_skill_reference",
|
|
32
|
+
description: "Read a reference file from an Agent Skill.",
|
|
33
|
+
inputSchema: z.object({
|
|
34
|
+
skillName: z.string().describe("The name of the skill."),
|
|
35
|
+
referencePath: z.string().describe("A path listed in the skill references.")
|
|
36
|
+
}),
|
|
37
|
+
outputSchema: z.string(),
|
|
38
|
+
execute: ({ skillName, referencePath }) => registry.readReference(skillName, referencePath)
|
|
39
|
+
})
|
|
40
|
+
),
|
|
41
|
+
markSkillTool(
|
|
42
|
+
createTool({
|
|
43
|
+
name: "get_skill_script",
|
|
44
|
+
description: "Read a script file from an Agent Skill.",
|
|
45
|
+
inputSchema: z.object({
|
|
46
|
+
skillName: z.string().describe("The name of the skill."),
|
|
47
|
+
scriptPath: z.string().describe("A path listed in the skill scripts.")
|
|
48
|
+
}),
|
|
49
|
+
outputSchema: z.string(),
|
|
50
|
+
execute: ({ skillName, scriptPath }) => registry.readScript(skillName, scriptPath)
|
|
51
|
+
})
|
|
52
|
+
),
|
|
53
|
+
markSkillTool(
|
|
54
|
+
createTool({
|
|
55
|
+
name: "run_skill_script",
|
|
56
|
+
description: "Execute a script from an Agent Skill with optional arguments.",
|
|
57
|
+
inputSchema: z.object({
|
|
58
|
+
skillName: z.string().describe("The name of the skill."),
|
|
59
|
+
scriptPath: z.string().describe("A path listed in the skill scripts."),
|
|
60
|
+
args: z.array(z.string()).optional().describe("Arguments passed to the script."),
|
|
61
|
+
timeoutMs: z.number().int().positive().optional().describe("Execution timeout in ms.")
|
|
62
|
+
}),
|
|
63
|
+
outputSchema: z.string(),
|
|
64
|
+
execute: ({ skillName, scriptPath, args = [], timeoutMs = DEFAULT_TIMEOUT_MS }) => registry.runScript(skillName, scriptPath, args, timeoutMs)
|
|
65
|
+
})
|
|
66
|
+
)
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
var SkillRegistry = class {
|
|
70
|
+
skills = /* @__PURE__ */ new Map();
|
|
71
|
+
constructor(skills) {
|
|
72
|
+
for (const skill of skills) {
|
|
73
|
+
this.skills.set(skill.name, skill);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
get(skillName) {
|
|
77
|
+
const skill = this.skills.get(skillName);
|
|
78
|
+
if (skill === void 0) {
|
|
79
|
+
throw new Error(`Skill not found: ${skillName}`);
|
|
80
|
+
}
|
|
81
|
+
return skill;
|
|
82
|
+
}
|
|
83
|
+
async readReference(skillName, referencePath) {
|
|
84
|
+
const skill = this.get(skillName);
|
|
85
|
+
const path = this.resolveContainedPath(skill, "references", referencePath);
|
|
86
|
+
if (!skill.references.includes(referencePath)) {
|
|
87
|
+
throw new Error(`Skill reference not found: ${skillName}/${referencePath}`);
|
|
88
|
+
}
|
|
89
|
+
return readFile(path, "utf8");
|
|
90
|
+
}
|
|
91
|
+
async readScript(skillName, scriptPath) {
|
|
92
|
+
const skill = this.get(skillName);
|
|
93
|
+
const path = this.resolveContainedPath(skill, "scripts", scriptPath);
|
|
94
|
+
if (!skill.scripts.includes(scriptPath)) {
|
|
95
|
+
throw new Error(`Skill script not found: ${skillName}/${scriptPath}`);
|
|
96
|
+
}
|
|
97
|
+
return readFile(path, "utf8");
|
|
98
|
+
}
|
|
99
|
+
async runScript(skillName, scriptPath, args, timeoutMs) {
|
|
100
|
+
const skill = this.get(skillName);
|
|
101
|
+
const script = this.resolveContainedPath(skill, "scripts", scriptPath);
|
|
102
|
+
if (!skill.scripts.includes(scriptPath)) {
|
|
103
|
+
throw new Error(`Skill script not found: ${skillName}/${scriptPath}`);
|
|
104
|
+
}
|
|
105
|
+
return runExecutable(script, args, skill.directory, timeoutMs);
|
|
106
|
+
}
|
|
107
|
+
resolveContainedPath(skill, section, requestedPath) {
|
|
108
|
+
if (requestedPath.length === 0 || isAbsolute(requestedPath)) {
|
|
109
|
+
throw new Error(`Invalid skill path: ${requestedPath}`);
|
|
110
|
+
}
|
|
111
|
+
const root = resolve(skill.directory, section);
|
|
112
|
+
const resolved = resolve(root, requestedPath);
|
|
113
|
+
const rel = relative(root, resolved);
|
|
114
|
+
if (rel === ".." || rel.startsWith(`..${"/"}`) || rel.startsWith(`..${"\\"}`)) {
|
|
115
|
+
throw new Error(`Invalid skill path: ${requestedPath}`);
|
|
116
|
+
}
|
|
117
|
+
return resolved;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
function runExecutable(command, args, cwd, timeoutMs) {
|
|
121
|
+
return new Promise((resolvePromise, reject) => {
|
|
122
|
+
const child = spawn(command, args, {
|
|
123
|
+
cwd,
|
|
124
|
+
shell: false,
|
|
125
|
+
stdio: ["ignore", "pipe", "pipe"]
|
|
126
|
+
});
|
|
127
|
+
let stdout = "";
|
|
128
|
+
let stderr = "";
|
|
129
|
+
let timedOut = false;
|
|
130
|
+
const timeout = setTimeout(() => {
|
|
131
|
+
timedOut = true;
|
|
132
|
+
child.kill();
|
|
133
|
+
}, timeoutMs);
|
|
134
|
+
child.stdout.setEncoding("utf8");
|
|
135
|
+
child.stderr.setEncoding("utf8");
|
|
136
|
+
child.stdout.on("data", (chunk) => {
|
|
137
|
+
stdout = appendLimited(stdout, chunk);
|
|
138
|
+
});
|
|
139
|
+
child.stderr.on("data", (chunk) => {
|
|
140
|
+
stderr = appendLimited(stderr, chunk);
|
|
141
|
+
});
|
|
142
|
+
child.on("error", (error) => {
|
|
143
|
+
clearTimeout(timeout);
|
|
144
|
+
reject(error);
|
|
145
|
+
});
|
|
146
|
+
child.on("close", (code, signal) => {
|
|
147
|
+
clearTimeout(timeout);
|
|
148
|
+
if (timedOut) {
|
|
149
|
+
reject(new Error(`Skill script timed out after ${timeoutMs}ms`));
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const output = formatProcessOutput(stdout, stderr);
|
|
153
|
+
if (code !== 0) {
|
|
154
|
+
reject(new Error(`Skill script exited with code ${code ?? "unknown"}: ${output}`));
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (signal !== null) {
|
|
158
|
+
reject(new Error(`Skill script exited with signal ${signal}: ${output}`));
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
resolvePromise(output);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function formatProcessOutput(stdout, stderr) {
|
|
166
|
+
const parts = [];
|
|
167
|
+
if (stdout.length > 0) {
|
|
168
|
+
parts.push(`stdout:
|
|
169
|
+
${stdout}`);
|
|
170
|
+
}
|
|
171
|
+
if (stderr.length > 0) {
|
|
172
|
+
parts.push(`stderr:
|
|
173
|
+
${stderr}`);
|
|
174
|
+
}
|
|
175
|
+
return parts.length === 0 ? "" : parts.join("\n\n");
|
|
176
|
+
}
|
|
177
|
+
function appendLimited(current, chunk) {
|
|
178
|
+
const next = current + chunk;
|
|
179
|
+
if (next.length <= MAX_OUTPUT_CHARS) {
|
|
180
|
+
return next;
|
|
181
|
+
}
|
|
182
|
+
return `${next.slice(0, MAX_OUTPUT_CHARS)}
|
|
183
|
+
[truncated]`;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export {
|
|
187
|
+
createSkillTools
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=chunk-BDDC72GF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/skills/tools.ts"],"sourcesContent":["import { spawn } from \"node:child_process\";\nimport { readFile } from \"node:fs/promises\";\nimport { isAbsolute, relative, resolve } from \"node:path\";\nimport { z } from \"zod\";\nimport { type AnyTool, createTool } from \"../tool\";\nimport { markSkillTool } from \"../tool/skill-tool-marker\";\nimport type { Skill } from \"./types\";\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst MAX_OUTPUT_CHARS = 20_000;\n\nexport function createSkillTools(skills: Skill[]): AnyTool[] {\n const registry = new SkillRegistry(skills);\n\n return [\n markSkillTool(\n createTool({\n name: \"get_skill_instructions\",\n description: \"Load the full SKILL.md instructions for an Agent Skill.\",\n inputSchema: z.object({\n skillName: z.string().describe(\"The name of the skill to load.\"),\n }),\n outputSchema: z.string(),\n execute: ({ skillName }) => registry.get(skillName).instructions,\n }),\n ),\n markSkillTool(\n createTool({\n name: \"get_skill_reference\",\n description: \"Read a reference file from an Agent Skill.\",\n inputSchema: z.object({\n skillName: z.string().describe(\"The name of the skill.\"),\n referencePath: z.string().describe(\"A path listed in the skill references.\"),\n }),\n outputSchema: z.string(),\n execute: ({ skillName, referencePath }) => registry.readReference(skillName, referencePath),\n }),\n ),\n markSkillTool(\n createTool({\n name: \"get_skill_script\",\n description: \"Read a script file from an Agent Skill.\",\n inputSchema: z.object({\n skillName: z.string().describe(\"The name of the skill.\"),\n scriptPath: z.string().describe(\"A path listed in the skill scripts.\"),\n }),\n outputSchema: z.string(),\n execute: ({ skillName, scriptPath }) => registry.readScript(skillName, scriptPath),\n }),\n ),\n markSkillTool(\n createTool({\n name: \"run_skill_script\",\n description: \"Execute a script from an Agent Skill with optional arguments.\",\n inputSchema: z.object({\n skillName: z.string().describe(\"The name of the skill.\"),\n scriptPath: z.string().describe(\"A path listed in the skill scripts.\"),\n args: z.array(z.string()).optional().describe(\"Arguments passed to the script.\"),\n timeoutMs: z.number().int().positive().optional().describe(\"Execution timeout in ms.\"),\n }),\n outputSchema: z.string(),\n execute: ({ skillName, scriptPath, args = [], timeoutMs = DEFAULT_TIMEOUT_MS }) =>\n registry.runScript(skillName, scriptPath, args, timeoutMs),\n }),\n ),\n ];\n}\n\nclass SkillRegistry {\n private readonly skills = new Map<string, Skill>();\n\n constructor(skills: Skill[]) {\n for (const skill of skills) {\n this.skills.set(skill.name, skill);\n }\n }\n\n get(skillName: string): Skill {\n const skill = this.skills.get(skillName);\n if (skill === undefined) {\n throw new Error(`Skill not found: ${skillName}`);\n }\n return skill;\n }\n\n async readReference(skillName: string, referencePath: string): Promise<string> {\n const skill = this.get(skillName);\n const path = this.resolveContainedPath(skill, \"references\", referencePath);\n if (!skill.references.includes(referencePath)) {\n throw new Error(`Skill reference not found: ${skillName}/${referencePath}`);\n }\n return readFile(path, \"utf8\");\n }\n\n async readScript(skillName: string, scriptPath: string): Promise<string> {\n const skill = this.get(skillName);\n const path = this.resolveContainedPath(skill, \"scripts\", scriptPath);\n if (!skill.scripts.includes(scriptPath)) {\n throw new Error(`Skill script not found: ${skillName}/${scriptPath}`);\n }\n return readFile(path, \"utf8\");\n }\n\n async runScript(\n skillName: string,\n scriptPath: string,\n args: string[],\n timeoutMs: number,\n ): Promise<string> {\n const skill = this.get(skillName);\n const script = this.resolveContainedPath(skill, \"scripts\", scriptPath);\n if (!skill.scripts.includes(scriptPath)) {\n throw new Error(`Skill script not found: ${skillName}/${scriptPath}`);\n }\n return runExecutable(script, args, skill.directory, timeoutMs);\n }\n\n private resolveContainedPath(\n skill: Skill,\n section: \"references\" | \"scripts\",\n requestedPath: string,\n ): string {\n if (requestedPath.length === 0 || isAbsolute(requestedPath)) {\n throw new Error(`Invalid skill path: ${requestedPath}`);\n }\n\n const root = resolve(skill.directory, section);\n const resolved = resolve(root, requestedPath);\n const rel = relative(root, resolved);\n if (rel === \"..\" || rel.startsWith(`..${\"/\"}`) || rel.startsWith(`..${\"\\\\\"}`)) {\n throw new Error(`Invalid skill path: ${requestedPath}`);\n }\n\n return resolved;\n }\n}\n\nfunction runExecutable(\n command: string,\n args: string[],\n cwd: string,\n timeoutMs: number,\n): Promise<string> {\n return new Promise((resolvePromise, reject) => {\n const child = spawn(command, args, {\n cwd,\n shell: false,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n\n let stdout = \"\";\n let stderr = \"\";\n let timedOut = false;\n const timeout = setTimeout(() => {\n timedOut = true;\n child.kill();\n }, timeoutMs);\n\n child.stdout.setEncoding(\"utf8\");\n child.stderr.setEncoding(\"utf8\");\n child.stdout.on(\"data\", (chunk) => {\n stdout = appendLimited(stdout, chunk);\n });\n child.stderr.on(\"data\", (chunk) => {\n stderr = appendLimited(stderr, chunk);\n });\n child.on(\"error\", (error) => {\n clearTimeout(timeout);\n reject(error);\n });\n child.on(\"close\", (code, signal) => {\n clearTimeout(timeout);\n if (timedOut) {\n reject(new Error(`Skill script timed out after ${timeoutMs}ms`));\n return;\n }\n\n const output = formatProcessOutput(stdout, stderr);\n if (code !== 0) {\n reject(new Error(`Skill script exited with code ${code ?? \"unknown\"}: ${output}`));\n return;\n }\n if (signal !== null) {\n reject(new Error(`Skill script exited with signal ${signal}: ${output}`));\n return;\n }\n\n resolvePromise(output);\n });\n });\n}\n\nfunction formatProcessOutput(stdout: string, stderr: string): string {\n const parts: string[] = [];\n if (stdout.length > 0) {\n parts.push(`stdout:\\n${stdout}`);\n }\n if (stderr.length > 0) {\n parts.push(`stderr:\\n${stderr}`);\n }\n return parts.length === 0 ? \"\" : parts.join(\"\\n\\n\");\n}\n\nfunction appendLimited(current: string, chunk: string): string {\n const next = current + chunk;\n if (next.length <= MAX_OUTPUT_CHARS) {\n return next;\n }\n return `${next.slice(0, MAX_OUTPUT_CHARS)}\\n[truncated]`;\n}\n"],"mappings":"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","names":[]}
|