@keystrokehq/keystroke 0.0.0-staging-20260714181321
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/LICENSE +13 -0
- package/README.md +68 -0
- package/dist/action.cjs +29 -0
- package/dist/action.d.cts +3 -0
- package/dist/action.d.mts +3 -0
- package/dist/action.mjs +3 -0
- package/dist/agent-types.cjs +1 -0
- package/dist/agent-types.d.cts +4 -0
- package/dist/agent-types.d.mts +4 -0
- package/dist/agent-types.mjs +2 -0
- package/dist/agent.cjs +2901 -0
- package/dist/agent.cjs.map +1 -0
- package/dist/agent.d.cts +6 -0
- package/dist/agent.d.mts +6 -0
- package/dist/agent.mjs +2861 -0
- package/dist/agent.mjs.map +1 -0
- package/dist/alias-RTYYYW3D-BoplVz6M.mjs +10 -0
- package/dist/alias-RTYYYW3D-BoplVz6M.mjs.map +1 -0
- package/dist/alias-RTYYYW3D-DJi5ww-s.cjs +10 -0
- package/dist/alias-RTYYYW3D-DJi5ww-s.cjs.map +1 -0
- package/dist/app.cjs +37 -0
- package/dist/app.cjs.map +1 -0
- package/dist/app.d.cts +52 -0
- package/dist/app.d.cts.map +1 -0
- package/dist/app.d.mts +52 -0
- package/dist/app.d.mts.map +1 -0
- package/dist/app.mjs +36 -0
- package/dist/app.mjs.map +1 -0
- package/dist/awk2-LA3USKJP-Ch5apWe8.mjs +14 -0
- package/dist/awk2-LA3USKJP-Ch5apWe8.mjs.map +1 -0
- package/dist/awk2-LA3USKJP-p3zBRv5_.cjs +13 -0
- package/dist/awk2-LA3USKJP-p3zBRv5_.cjs.map +1 -0
- package/dist/base64-C2AIWVNC-C2dQcWz-.mjs +12 -0
- package/dist/base64-C2AIWVNC-C2dQcWz-.mjs.map +1 -0
- package/dist/base64-C2AIWVNC-CI9ThqJg.cjs +11 -0
- package/dist/base64-C2AIWVNC-CI9ThqJg.cjs.map +1 -0
- package/dist/basename-UB3CIYNI-CxZbgJkb.cjs +9 -0
- package/dist/basename-UB3CIYNI-CxZbgJkb.cjs.map +1 -0
- package/dist/basename-UB3CIYNI-DqFwCFM7.mjs +10 -0
- package/dist/basename-UB3CIYNI-DqFwCFM7.mjs.map +1 -0
- package/dist/bash-YZ33HQZQ-CgTYovun.cjs +11 -0
- package/dist/bash-YZ33HQZQ-CgTYovun.cjs.map +1 -0
- package/dist/bash-YZ33HQZQ-DAvz1MDp.mjs +11 -0
- package/dist/bash-YZ33HQZQ-DAvz1MDp.mjs.map +1 -0
- package/dist/cat-TSFMZVYS-BtIKZKsM.cjs +12 -0
- package/dist/cat-TSFMZVYS-BtIKZKsM.cjs.map +1 -0
- package/dist/cat-TSFMZVYS-CBat54wc.mjs +13 -0
- package/dist/cat-TSFMZVYS-CBat54wc.mjs.map +1 -0
- package/dist/chmod-TFEPA42X-BV8Tc2FK.cjs +9 -0
- package/dist/chmod-TFEPA42X-BV8Tc2FK.cjs.map +1 -0
- package/dist/chmod-TFEPA42X-Bz8vl7h5.mjs +10 -0
- package/dist/chmod-TFEPA42X-Bz8vl7h5.mjs.map +1 -0
- package/dist/chunk-27JIFWUR-C_jDOm1q.mjs +99 -0
- package/dist/chunk-27JIFWUR-C_jDOm1q.mjs.map +1 -0
- package/dist/chunk-27JIFWUR-CyXQ6J5p.cjs +115 -0
- package/dist/chunk-27JIFWUR-CyXQ6J5p.cjs.map +1 -0
- package/dist/chunk-2JIPICV3-B9OkmoBT.cjs +110 -0
- package/dist/chunk-2JIPICV3-B9OkmoBT.cjs.map +1 -0
- package/dist/chunk-2JIPICV3-BmWa83TV.mjs +100 -0
- package/dist/chunk-2JIPICV3-BmWa83TV.mjs.map +1 -0
- package/dist/chunk-2SMD2AUA-CYS-KNkj.cjs +77 -0
- package/dist/chunk-2SMD2AUA-CYS-KNkj.cjs.map +1 -0
- package/dist/chunk-2SMD2AUA-Dt6FJ5Cu.mjs +67 -0
- package/dist/chunk-2SMD2AUA-Dt6FJ5Cu.mjs.map +1 -0
- package/dist/chunk-2VDTE5BV-BX404P_Q.mjs +111 -0
- package/dist/chunk-2VDTE5BV-BX404P_Q.mjs.map +1 -0
- package/dist/chunk-2VDTE5BV-CvO85Ytl.cjs +121 -0
- package/dist/chunk-2VDTE5BV-CvO85Ytl.cjs.map +1 -0
- package/dist/chunk-2VJJEDV2-Bv9GMUKc.cjs +207 -0
- package/dist/chunk-2VJJEDV2-Bv9GMUKc.cjs.map +1 -0
- package/dist/chunk-2VJJEDV2-FnY5yUZB.mjs +197 -0
- package/dist/chunk-2VJJEDV2-FnY5yUZB.mjs.map +1 -0
- package/dist/chunk-46RN27KI-B95iSuAb.mjs +1742 -0
- package/dist/chunk-46RN27KI-B95iSuAb.mjs.map +1 -0
- package/dist/chunk-46RN27KI-DFcNXJPs.cjs +1752 -0
- package/dist/chunk-46RN27KI-DFcNXJPs.cjs.map +1 -0
- package/dist/chunk-4I3HOE5Z-BYotzP2w.mjs +718 -0
- package/dist/chunk-4I3HOE5Z-BYotzP2w.mjs.map +1 -0
- package/dist/chunk-4I3HOE5Z-CGJlGU0s.cjs +722 -0
- package/dist/chunk-4I3HOE5Z-CGJlGU0s.cjs.map +1 -0
- package/dist/chunk-4JLVZKHC-Bfvc4qEV.mjs +127 -0
- package/dist/chunk-4JLVZKHC-Bfvc4qEV.mjs.map +1 -0
- package/dist/chunk-4JLVZKHC-C55f7-bf.cjs +137 -0
- package/dist/chunk-4JLVZKHC-C55f7-bf.cjs.map +1 -0
- package/dist/chunk-4MZPEZTU-BTGVZBTX.cjs +32 -0
- package/dist/chunk-4MZPEZTU-BTGVZBTX.cjs.map +1 -0
- package/dist/chunk-4MZPEZTU-BcphrDpY.mjs +22 -0
- package/dist/chunk-4MZPEZTU-BcphrDpY.mjs.map +1 -0
- package/dist/chunk-4N6J7B5P-XNX8F_xN.mjs +91 -0
- package/dist/chunk-4N6J7B5P-XNX8F_xN.mjs.map +1 -0
- package/dist/chunk-4N6J7B5P-gzT_WzjI.cjs +101 -0
- package/dist/chunk-4N6J7B5P-gzT_WzjI.cjs.map +1 -0
- package/dist/chunk-4RUAZWKT-CISqwIli.mjs +22542 -0
- package/dist/chunk-4RUAZWKT-CISqwIli.mjs.map +1 -0
- package/dist/chunk-4RUAZWKT-D0EYlGEM.cjs +22552 -0
- package/dist/chunk-4RUAZWKT-D0EYlGEM.cjs.map +1 -0
- package/dist/chunk-4WKZNNJK-CuElmTiB.cjs +114 -0
- package/dist/chunk-4WKZNNJK-CuElmTiB.cjs.map +1 -0
- package/dist/chunk-4WKZNNJK-x25SBHbd.mjs +68 -0
- package/dist/chunk-4WKZNNJK-x25SBHbd.mjs.map +1 -0
- package/dist/chunk-5H5SCKJM-BAdWm9gp.mjs +601 -0
- package/dist/chunk-5H5SCKJM-BAdWm9gp.mjs.map +1 -0
- package/dist/chunk-5H5SCKJM-BRzmmj8G.cjs +611 -0
- package/dist/chunk-5H5SCKJM-BRzmmj8G.cjs.map +1 -0
- package/dist/chunk-6LASZU3O-Ct_82V6R.cjs +148 -0
- package/dist/chunk-6LASZU3O-Ct_82V6R.cjs.map +1 -0
- package/dist/chunk-6LASZU3O-D5mzy_lg.mjs +138 -0
- package/dist/chunk-6LASZU3O-D5mzy_lg.mjs.map +1 -0
- package/dist/chunk-6SHYIICL-BSYBVfvW.mjs +150 -0
- package/dist/chunk-6SHYIICL-BSYBVfvW.mjs.map +1 -0
- package/dist/chunk-6SHYIICL-DJqHuH0Q.cjs +160 -0
- package/dist/chunk-6SHYIICL-DJqHuH0Q.cjs.map +1 -0
- package/dist/chunk-6VAT5Z2D-DJEEw_Ty.mjs +108 -0
- package/dist/chunk-6VAT5Z2D-DJEEw_Ty.mjs.map +1 -0
- package/dist/chunk-6VAT5Z2D-DZJSQyuR.cjs +118 -0
- package/dist/chunk-6VAT5Z2D-DZJSQyuR.cjs.map +1 -0
- package/dist/chunk-7AISL3XV-BQAcS9rE.cjs +213 -0
- package/dist/chunk-7AISL3XV-BQAcS9rE.cjs.map +1 -0
- package/dist/chunk-7AISL3XV-DtlBq8ZM.mjs +203 -0
- package/dist/chunk-7AISL3XV-DtlBq8ZM.mjs.map +1 -0
- package/dist/chunk-7EUWTCWK-CFIPY2xQ.cjs +36 -0
- package/dist/chunk-7EUWTCWK-CFIPY2xQ.cjs.map +1 -0
- package/dist/chunk-7EUWTCWK-lrDJugXH.mjs +26 -0
- package/dist/chunk-7EUWTCWK-lrDJugXH.mjs.map +1 -0
- package/dist/chunk-7JHM3L42-CbQ7uKuB.mjs +138 -0
- package/dist/chunk-7JHM3L42-CbQ7uKuB.mjs.map +1 -0
- package/dist/chunk-7JHM3L42-o7UQXVvn.cjs +148 -0
- package/dist/chunk-7JHM3L42-o7UQXVvn.cjs.map +1 -0
- package/dist/chunk-A4R2GWRF-BhatkJvi.mjs +126 -0
- package/dist/chunk-A4R2GWRF-BhatkJvi.mjs.map +1 -0
- package/dist/chunk-A4R2GWRF-DnmmNb1N.cjs +148 -0
- package/dist/chunk-A4R2GWRF-DnmmNb1N.cjs.map +1 -0
- package/dist/chunk-ACSZB4FE-BteEu9EB.cjs +172 -0
- package/dist/chunk-ACSZB4FE-BteEu9EB.cjs.map +1 -0
- package/dist/chunk-ACSZB4FE-DztQwBfs.mjs +162 -0
- package/dist/chunk-ACSZB4FE-DztQwBfs.mjs.map +1 -0
- package/dist/chunk-AQ6FYS2X-BQ5Y2cHL.mjs +36 -0
- package/dist/chunk-AQ6FYS2X-BQ5Y2cHL.mjs.map +1 -0
- package/dist/chunk-AQ6FYS2X-BmpovEEJ.cjs +40 -0
- package/dist/chunk-AQ6FYS2X-BmpovEEJ.cjs.map +1 -0
- package/dist/chunk-BVKWRAS6-BTpbA0Ve.cjs +139 -0
- package/dist/chunk-BVKWRAS6-BTpbA0Ve.cjs.map +1 -0
- package/dist/chunk-BVKWRAS6-rGqDhDIf.mjs +129 -0
- package/dist/chunk-BVKWRAS6-rGqDhDIf.mjs.map +1 -0
- package/dist/chunk-BZUGFHVS-7RRM7Jpb.cjs +67 -0
- package/dist/chunk-BZUGFHVS-7RRM7Jpb.cjs.map +1 -0
- package/dist/chunk-BZUGFHVS-B2NchobP.mjs +33 -0
- package/dist/chunk-BZUGFHVS-B2NchobP.mjs.map +1 -0
- package/dist/chunk-CBJVD2XA-BTNFYxbU.mjs +772 -0
- package/dist/chunk-CBJVD2XA-BTNFYxbU.mjs.map +1 -0
- package/dist/chunk-CBJVD2XA-DNaADZvz.cjs +783 -0
- package/dist/chunk-CBJVD2XA-DNaADZvz.cjs.map +1 -0
- package/dist/chunk-CHFEPBH4-DgvknHqN.cjs +609 -0
- package/dist/chunk-CHFEPBH4-DgvknHqN.cjs.map +1 -0
- package/dist/chunk-CHFEPBH4-frsHsnTZ.mjs +593 -0
- package/dist/chunk-CHFEPBH4-frsHsnTZ.mjs.map +1 -0
- package/dist/chunk-CN5XGDNN-BJ4wq2Kf.cjs +139 -0
- package/dist/chunk-CN5XGDNN-BJ4wq2Kf.cjs.map +1 -0
- package/dist/chunk-CN5XGDNN-Bt9ykxRg.mjs +129 -0
- package/dist/chunk-CN5XGDNN-Bt9ykxRg.mjs.map +1 -0
- package/dist/chunk-DnnnRqeS.mjs +26 -0
- package/dist/chunk-EBAPSGAO-Bkf3xjZt.mjs +246 -0
- package/dist/chunk-EBAPSGAO-Bkf3xjZt.mjs.map +1 -0
- package/dist/chunk-EBAPSGAO-Jl9--2Uo.cjs +250 -0
- package/dist/chunk-EBAPSGAO-Jl9--2Uo.cjs.map +1 -0
- package/dist/chunk-FAXLQUCQ-BrRRzC5l.cjs +75 -0
- package/dist/chunk-FAXLQUCQ-BrRRzC5l.cjs.map +1 -0
- package/dist/chunk-FAXLQUCQ-DHw2Aai6.mjs +65 -0
- package/dist/chunk-FAXLQUCQ-DHw2Aai6.mjs.map +1 -0
- package/dist/chunk-FHC24QSK-0eusXJ-O.mjs +102 -0
- package/dist/chunk-FHC24QSK-0eusXJ-O.mjs.map +1 -0
- package/dist/chunk-FHC24QSK-B86B1Cz2.cjs +124 -0
- package/dist/chunk-FHC24QSK-B86B1Cz2.cjs.map +1 -0
- package/dist/chunk-FJK43EBQ-XInZFwsh.mjs +238 -0
- package/dist/chunk-FJK43EBQ-XInZFwsh.mjs.map +1 -0
- package/dist/chunk-FJK43EBQ-dasZe3EC.cjs +248 -0
- package/dist/chunk-FJK43EBQ-dasZe3EC.cjs.map +1 -0
- package/dist/chunk-FW54FHZR-CnEw1eCY.cjs +26 -0
- package/dist/chunk-FW54FHZR-CnEw1eCY.cjs.map +1 -0
- package/dist/chunk-FW54FHZR-D7uUjYjL.mjs +16 -0
- package/dist/chunk-FW54FHZR-D7uUjYjL.mjs.map +1 -0
- package/dist/chunk-FX4RBUYU-DpjbPT4m.cjs +52 -0
- package/dist/chunk-FX4RBUYU-DpjbPT4m.cjs.map +1 -0
- package/dist/chunk-FX4RBUYU-UO7fSPYF.mjs +42 -0
- package/dist/chunk-FX4RBUYU-UO7fSPYF.mjs.map +1 -0
- package/dist/chunk-FX7KQCEA-BcmaXUKB.cjs +1640 -0
- package/dist/chunk-FX7KQCEA-BcmaXUKB.cjs.map +1 -0
- package/dist/chunk-FX7KQCEA-DxfpN7b4.mjs +1629 -0
- package/dist/chunk-FX7KQCEA-DxfpN7b4.mjs.map +1 -0
- package/dist/chunk-FZRQOL3C-Bx5-8UBj.mjs +121 -0
- package/dist/chunk-FZRQOL3C-Bx5-8UBj.mjs.map +1 -0
- package/dist/chunk-FZRQOL3C-CBnDVYtW.cjs +131 -0
- package/dist/chunk-FZRQOL3C-CBnDVYtW.cjs.map +1 -0
- package/dist/chunk-GGC5NEPZ-BDcxHM8i.mjs +121 -0
- package/dist/chunk-GGC5NEPZ-BDcxHM8i.mjs.map +1 -0
- package/dist/chunk-GGC5NEPZ-D5IT5qVO.cjs +131 -0
- package/dist/chunk-GGC5NEPZ-D5IT5qVO.cjs.map +1 -0
- package/dist/chunk-GIUR5SNU-BTM2YOuk.cjs +896 -0
- package/dist/chunk-GIUR5SNU-BTM2YOuk.cjs.map +1 -0
- package/dist/chunk-GIUR5SNU-D36Uv3dr.mjs +885 -0
- package/dist/chunk-GIUR5SNU-D36Uv3dr.mjs.map +1 -0
- package/dist/chunk-GJC3WVOW-BYjyETf9.cjs +26 -0
- package/dist/chunk-GJC3WVOW-BYjyETf9.cjs.map +1 -0
- package/dist/chunk-GJC3WVOW-GJMDWjrT.mjs +16 -0
- package/dist/chunk-GJC3WVOW-GJMDWjrT.mjs.map +1 -0
- package/dist/chunk-GSPYNYZA-C_7GKjiT.cjs +151 -0
- package/dist/chunk-GSPYNYZA-C_7GKjiT.cjs.map +1 -0
- package/dist/chunk-GSPYNYZA-DVJtbW9g.mjs +129 -0
- package/dist/chunk-GSPYNYZA-DVJtbW9g.mjs.map +1 -0
- package/dist/chunk-GTQIUQM6-CbzW1lEX.mjs +153 -0
- package/dist/chunk-GTQIUQM6-CbzW1lEX.mjs.map +1 -0
- package/dist/chunk-GTQIUQM6-hJW9WFGA.cjs +163 -0
- package/dist/chunk-GTQIUQM6-hJW9WFGA.cjs.map +1 -0
- package/dist/chunk-HDRAUQK2-CJM41vHX.cjs +54 -0
- package/dist/chunk-HDRAUQK2-CJM41vHX.cjs.map +1 -0
- package/dist/chunk-HDRAUQK2-DqOxTpsf.mjs +32 -0
- package/dist/chunk-HDRAUQK2-DqOxTpsf.mjs.map +1 -0
- package/dist/chunk-HJBTD7PY-BczgIhpV.cjs +193 -0
- package/dist/chunk-HJBTD7PY-BczgIhpV.cjs.map +1 -0
- package/dist/chunk-HJBTD7PY-CrtQ4gie.mjs +183 -0
- package/dist/chunk-HJBTD7PY-CrtQ4gie.mjs.map +1 -0
- package/dist/chunk-ICIEVHY5-FEGmVNQ9.cjs +2894 -0
- package/dist/chunk-ICIEVHY5-FEGmVNQ9.cjs.map +1 -0
- package/dist/chunk-ICIEVHY5-fy83vdIp.mjs +2875 -0
- package/dist/chunk-ICIEVHY5-fy83vdIp.mjs.map +1 -0
- package/dist/chunk-KATRCGLX-CC0LaZYR.cjs +65 -0
- package/dist/chunk-KATRCGLX-CC0LaZYR.cjs.map +1 -0
- package/dist/chunk-KATRCGLX-UcOdcj3k.mjs +55 -0
- package/dist/chunk-KATRCGLX-UcOdcj3k.mjs.map +1 -0
- package/dist/chunk-KD3KENL6-BkDquANH.cjs +162 -0
- package/dist/chunk-KD3KENL6-BkDquANH.cjs.map +1 -0
- package/dist/chunk-KD3KENL6-DpwUxq9s.mjs +152 -0
- package/dist/chunk-KD3KENL6-DpwUxq9s.mjs.map +1 -0
- package/dist/chunk-KWGBQNTV-Ba-YzffV.cjs +719 -0
- package/dist/chunk-KWGBQNTV-Ba-YzffV.cjs.map +1 -0
- package/dist/chunk-KWGBQNTV-DfE0VBdx.mjs +684 -0
- package/dist/chunk-KWGBQNTV-DfE0VBdx.mjs.map +1 -0
- package/dist/chunk-LEKBROJD-C5ANB3SA.mjs +3111 -0
- package/dist/chunk-LEKBROJD-C5ANB3SA.mjs.map +1 -0
- package/dist/chunk-LEKBROJD-e48-Mcrg.cjs +3121 -0
- package/dist/chunk-LEKBROJD-e48-Mcrg.cjs.map +1 -0
- package/dist/chunk-LNBPBRV4-Dd_D8irI.cjs +2754 -0
- package/dist/chunk-LNBPBRV4-Dd_D8irI.cjs.map +1 -0
- package/dist/chunk-LNBPBRV4-dUOQ4a6x.mjs +2744 -0
- package/dist/chunk-LNBPBRV4-dUOQ4a6x.mjs.map +1 -0
- package/dist/chunk-LPJEKUCB-BSjA_8f7.mjs +95 -0
- package/dist/chunk-LPJEKUCB-BSjA_8f7.mjs.map +1 -0
- package/dist/chunk-LPJEKUCB-d_TFMtsF.cjs +105 -0
- package/dist/chunk-LPJEKUCB-d_TFMtsF.cjs.map +1 -0
- package/dist/chunk-LSLPJOYM-CNIdl9jx.cjs +58 -0
- package/dist/chunk-LSLPJOYM-CNIdl9jx.cjs.map +1 -0
- package/dist/chunk-LSLPJOYM-DLRxrFR6.mjs +48 -0
- package/dist/chunk-LSLPJOYM-DLRxrFR6.mjs.map +1 -0
- package/dist/chunk-MFDPAVC6-Lsnf2J2b.cjs +208 -0
- package/dist/chunk-MFDPAVC6-Lsnf2J2b.cjs.map +1 -0
- package/dist/chunk-MFDPAVC6-Qj00Ay3i.mjs +198 -0
- package/dist/chunk-MFDPAVC6-Qj00Ay3i.mjs.map +1 -0
- package/dist/chunk-MLIO3BK2-CHUA_NrL.mjs +61 -0
- package/dist/chunk-MLIO3BK2-CHUA_NrL.mjs.map +1 -0
- package/dist/chunk-MLIO3BK2-SVEJbZNB.cjs +71 -0
- package/dist/chunk-MLIO3BK2-SVEJbZNB.cjs.map +1 -0
- package/dist/chunk-MQKGGNPS-CoJpEuJU.mjs +121 -0
- package/dist/chunk-MQKGGNPS-CoJpEuJU.mjs.map +1 -0
- package/dist/chunk-MQKGGNPS-DkB6LiMi.cjs +131 -0
- package/dist/chunk-MQKGGNPS-DkB6LiMi.cjs.map +1 -0
- package/dist/chunk-MZFCCXPZ-CtqHeO_b.mjs +2881 -0
- package/dist/chunk-MZFCCXPZ-CtqHeO_b.mjs.map +1 -0
- package/dist/chunk-MZFCCXPZ-f-V1JFCy.cjs +2895 -0
- package/dist/chunk-MZFCCXPZ-f-V1JFCy.cjs.map +1 -0
- package/dist/chunk-N6DXJ2JN-BIRkw3tM.mjs +8630 -0
- package/dist/chunk-N6DXJ2JN-BIRkw3tM.mjs.map +1 -0
- package/dist/chunk-N6DXJ2JN-CbTOXlJg.cjs +8640 -0
- package/dist/chunk-N6DXJ2JN-CbTOXlJg.cjs.map +1 -0
- package/dist/chunk-OC35HPHG-D_SNv3be.cjs +64 -0
- package/dist/chunk-OC35HPHG-D_SNv3be.cjs.map +1 -0
- package/dist/chunk-OC35HPHG-ajyBAU_j.mjs +54 -0
- package/dist/chunk-OC35HPHG-ajyBAU_j.mjs.map +1 -0
- package/dist/chunk-OGJ5CFPR-BAmKHJkE.mjs +52 -0
- package/dist/chunk-OGJ5CFPR-BAmKHJkE.mjs.map +1 -0
- package/dist/chunk-OGJ5CFPR-DmSopoKh.cjs +62 -0
- package/dist/chunk-OGJ5CFPR-DmSopoKh.cjs.map +1 -0
- package/dist/chunk-OVGANXCG-C52GhE5U.mjs +167 -0
- package/dist/chunk-OVGANXCG-C52GhE5U.mjs.map +1 -0
- package/dist/chunk-OVGANXCG-CiIRldWP.cjs +177 -0
- package/dist/chunk-OVGANXCG-CiIRldWP.cjs.map +1 -0
- package/dist/chunk-Q7H5W7YE-DIAe7nW8.mjs +2941 -0
- package/dist/chunk-Q7H5W7YE-DIAe7nW8.mjs.map +1 -0
- package/dist/chunk-Q7H5W7YE-DPq8Od8j.cjs +2964 -0
- package/dist/chunk-Q7H5W7YE-DPq8Od8j.cjs.map +1 -0
- package/dist/chunk-QAYAQNCG-B1r1SmqS.mjs +62 -0
- package/dist/chunk-QAYAQNCG-B1r1SmqS.mjs.map +1 -0
- package/dist/chunk-QAYAQNCG-ROQh1hrZ.cjs +78 -0
- package/dist/chunk-QAYAQNCG-ROQh1hrZ.cjs.map +1 -0
- package/dist/chunk-QIQMJJZ4-Cm4e9-4O.cjs +96 -0
- package/dist/chunk-QIQMJJZ4-Cm4e9-4O.cjs.map +1 -0
- package/dist/chunk-QIQMJJZ4-Dn8UfvJ9.mjs +92 -0
- package/dist/chunk-QIQMJJZ4-Dn8UfvJ9.mjs.map +1 -0
- package/dist/chunk-R4IFXNY5-Csrv6AhU.cjs +1946 -0
- package/dist/chunk-R4IFXNY5-Csrv6AhU.cjs.map +1 -0
- package/dist/chunk-R4IFXNY5-TuOLBm8W.mjs +1935 -0
- package/dist/chunk-R4IFXNY5-TuOLBm8W.mjs.map +1 -0
- package/dist/chunk-R74UQCKX-CPtn5NJv.cjs +15903 -0
- package/dist/chunk-R74UQCKX-CPtn5NJv.cjs.map +1 -0
- package/dist/chunk-R74UQCKX-rTYiDvqn.mjs +15889 -0
- package/dist/chunk-R74UQCKX-rTYiDvqn.mjs.map +1 -0
- package/dist/chunk-S3LEJEPP-BUVoLpnB.mjs +16 -0
- package/dist/chunk-S3LEJEPP-BUVoLpnB.mjs.map +1 -0
- package/dist/chunk-S3LEJEPP-C-zWCDCK.cjs +26 -0
- package/dist/chunk-S3LEJEPP-C-zWCDCK.cjs.map +1 -0
- package/dist/chunk-S443BAN4-CWfl3e_x.mjs +66 -0
- package/dist/chunk-S443BAN4-CWfl3e_x.mjs.map +1 -0
- package/dist/chunk-S443BAN4-DzTRCubJ.cjs +76 -0
- package/dist/chunk-S443BAN4-DzTRCubJ.cjs.map +1 -0
- package/dist/chunk-SAI2SPQQ-D6YWGjkC.mjs +107 -0
- package/dist/chunk-SAI2SPQQ-D6YWGjkC.mjs.map +1 -0
- package/dist/chunk-SAI2SPQQ-DBSaHSMv.cjs +195 -0
- package/dist/chunk-SAI2SPQQ-DBSaHSMv.cjs.map +1 -0
- package/dist/chunk-SBBYKIYU-BX9jd0cC.mjs +22 -0
- package/dist/chunk-SBBYKIYU-BX9jd0cC.mjs.map +1 -0
- package/dist/chunk-SBBYKIYU-KcomBm3F.cjs +32 -0
- package/dist/chunk-SBBYKIYU-KcomBm3F.cjs.map +1 -0
- package/dist/chunk-SETW5JBN-BpqhTKA7.mjs +71 -0
- package/dist/chunk-SETW5JBN-BpqhTKA7.mjs.map +1 -0
- package/dist/chunk-SETW5JBN-CoDj5SEz.cjs +81 -0
- package/dist/chunk-SETW5JBN-CoDj5SEz.cjs.map +1 -0
- package/dist/chunk-SHKOQWO4-D30l6Ug1.mjs +38 -0
- package/dist/chunk-SHKOQWO4-D30l6Ug1.mjs.map +1 -0
- package/dist/chunk-SHKOQWO4-JHQfW8rf.cjs +48 -0
- package/dist/chunk-SHKOQWO4-JHQfW8rf.cjs.map +1 -0
- package/dist/chunk-SJYEXC2Z-BN7uvChV.mjs +137 -0
- package/dist/chunk-SJYEXC2Z-BN7uvChV.mjs.map +1 -0
- package/dist/chunk-SJYEXC2Z-BXK_p_zv.cjs +147 -0
- package/dist/chunk-SJYEXC2Z-BXK_p_zv.cjs.map +1 -0
- package/dist/chunk-SO6R3ZKN-DIoHJ9o1.mjs +139 -0
- package/dist/chunk-SO6R3ZKN-DIoHJ9o1.mjs.map +1 -0
- package/dist/chunk-SO6R3ZKN-DYeOBPNJ.cjs +161 -0
- package/dist/chunk-SO6R3ZKN-DYeOBPNJ.cjs.map +1 -0
- package/dist/chunk-SX2HC7SO-BrE3qB0x.mjs +19 -0
- package/dist/chunk-SX2HC7SO-BrE3qB0x.mjs.map +1 -0
- package/dist/chunk-SX2HC7SO-CN1P7tXw.cjs +23 -0
- package/dist/chunk-SX2HC7SO-CN1P7tXw.cjs.map +1 -0
- package/dist/chunk-T4TFLF3R-Bb_8pxg5.mjs +379 -0
- package/dist/chunk-T4TFLF3R-Bb_8pxg5.mjs.map +1 -0
- package/dist/chunk-T4TFLF3R-Gu-7ZmXM.cjs +389 -0
- package/dist/chunk-T4TFLF3R-Gu-7ZmXM.cjs.map +1 -0
- package/dist/chunk-TDD4NFYE-CyVGcZCt.cjs +24 -0
- package/dist/chunk-TDD4NFYE-CyVGcZCt.cjs.map +1 -0
- package/dist/chunk-TDD4NFYE-Djy1ztDY.mjs +20 -0
- package/dist/chunk-TDD4NFYE-Djy1ztDY.mjs.map +1 -0
- package/dist/chunk-TN7HHBQW-B8PYcKz5.mjs +1136 -0
- package/dist/chunk-TN7HHBQW-B8PYcKz5.mjs.map +1 -0
- package/dist/chunk-TN7HHBQW-D_SK6w5n.cjs +1146 -0
- package/dist/chunk-TN7HHBQW-D_SK6w5n.cjs.map +1 -0
- package/dist/chunk-U73A73IE-CDaNc6aR.mjs +239 -0
- package/dist/chunk-U73A73IE-CDaNc6aR.mjs.map +1 -0
- package/dist/chunk-U73A73IE-C_li6Ywy.cjs +249 -0
- package/dist/chunk-U73A73IE-C_li6Ywy.cjs.map +1 -0
- package/dist/chunk-UIJUTQPH-D5B7TGJb.mjs +49 -0
- package/dist/chunk-UIJUTQPH-D5B7TGJb.mjs.map +1 -0
- package/dist/chunk-UIJUTQPH-DwMywiZD.cjs +59 -0
- package/dist/chunk-UIJUTQPH-DwMywiZD.cjs.map +1 -0
- package/dist/chunk-UP6MSJGD-Ce_ugQjA.cjs +282 -0
- package/dist/chunk-UP6MSJGD-Ce_ugQjA.cjs.map +1 -0
- package/dist/chunk-UP6MSJGD-qtfY-kMd.mjs +272 -0
- package/dist/chunk-UP6MSJGD-qtfY-kMd.mjs.map +1 -0
- package/dist/chunk-VLCHOJWK-BkLKLhJt.mjs +128 -0
- package/dist/chunk-VLCHOJWK-BkLKLhJt.mjs.map +1 -0
- package/dist/chunk-VLCHOJWK-C6ClsB_n.cjs +138 -0
- package/dist/chunk-VLCHOJWK-C6ClsB_n.cjs.map +1 -0
- package/dist/chunk-WM5IJFMP-DaCkWqms.mjs +132 -0
- package/dist/chunk-WM5IJFMP-DaCkWqms.mjs.map +1 -0
- package/dist/chunk-WM5IJFMP-xVcv7T82.cjs +142 -0
- package/dist/chunk-WM5IJFMP-xVcv7T82.cjs.map +1 -0
- package/dist/chunk-WPGQVBSY-0OUgx3uG.mjs +81 -0
- package/dist/chunk-WPGQVBSY-0OUgx3uG.mjs.map +1 -0
- package/dist/chunk-WPGQVBSY-BFMb_fKs.cjs +91 -0
- package/dist/chunk-WPGQVBSY-BFMb_fKs.cjs.map +1 -0
- package/dist/chunk-WVRWIZF5-B5z8SbAq.cjs +4225 -0
- package/dist/chunk-WVRWIZF5-B5z8SbAq.cjs.map +1 -0
- package/dist/chunk-WVRWIZF5-DMlo9K-r.mjs +4214 -0
- package/dist/chunk-WVRWIZF5-DMlo9K-r.mjs.map +1 -0
- package/dist/chunk-XCQWV4AU-CGtzquM1.mjs +152 -0
- package/dist/chunk-XCQWV4AU-CGtzquM1.mjs.map +1 -0
- package/dist/chunk-XCQWV4AU-C_Y_0wWt.cjs +162 -0
- package/dist/chunk-XCQWV4AU-C_Y_0wWt.cjs.map +1 -0
- package/dist/chunk-XDGLKIHR-BDFXwzdX.cjs +464 -0
- package/dist/chunk-XDGLKIHR-BDFXwzdX.cjs.map +1 -0
- package/dist/chunk-XDGLKIHR-D0vcPbdW.mjs +430 -0
- package/dist/chunk-XDGLKIHR-D0vcPbdW.mjs.map +1 -0
- package/dist/chunk-XHLMAZX2-BrJucUTF.mjs +93 -0
- package/dist/chunk-XHLMAZX2-BrJucUTF.mjs.map +1 -0
- package/dist/chunk-XHLMAZX2-DNQuFoGb.cjs +103 -0
- package/dist/chunk-XHLMAZX2-DNQuFoGb.cjs.map +1 -0
- package/dist/chunk-XUIHBHL5-Bz2HzJ45.mjs +204 -0
- package/dist/chunk-XUIHBHL5-Bz2HzJ45.mjs.map +1 -0
- package/dist/chunk-XUIHBHL5-CaVMT8uQ.cjs +214 -0
- package/dist/chunk-XUIHBHL5-CaVMT8uQ.cjs.map +1 -0
- package/dist/chunk-XYXUMFSU-C1butS4L.cjs +295 -0
- package/dist/chunk-XYXUMFSU-C1butS4L.cjs.map +1 -0
- package/dist/chunk-XYXUMFSU-CbkoFwJa.mjs +285 -0
- package/dist/chunk-XYXUMFSU-CbkoFwJa.mjs.map +1 -0
- package/dist/chunk-Y4LIDHSD-CFAzhWFF.mjs +91 -0
- package/dist/chunk-Y4LIDHSD-CFAzhWFF.mjs.map +1 -0
- package/dist/chunk-Y4LIDHSD-DfVwb2PX.cjs +101 -0
- package/dist/chunk-Y4LIDHSD-DfVwb2PX.cjs.map +1 -0
- package/dist/chunk-YCLFEX4T-CzQl99Kn.mjs +76 -0
- package/dist/chunk-YCLFEX4T-CzQl99Kn.mjs.map +1 -0
- package/dist/chunk-YCLFEX4T-DHl1XO8T.cjs +86 -0
- package/dist/chunk-YCLFEX4T-DHl1XO8T.cjs.map +1 -0
- package/dist/chunk-YS4NUBYX-pjl7FL1K.cjs +128 -0
- package/dist/chunk-YS4NUBYX-pjl7FL1K.cjs.map +1 -0
- package/dist/chunk-YS4NUBYX-urCufyr4.mjs +118 -0
- package/dist/chunk-YS4NUBYX-urCufyr4.mjs.map +1 -0
- package/dist/chunk-ZDIT6ST5-BOhlYgab.mjs +106 -0
- package/dist/chunk-ZDIT6ST5-BOhlYgab.mjs.map +1 -0
- package/dist/chunk-ZDIT6ST5-BanJQ2rN.cjs +116 -0
- package/dist/chunk-ZDIT6ST5-BanJQ2rN.cjs.map +1 -0
- package/dist/chunk-ZDPFA4L3-B9CgTrRM.cjs +69 -0
- package/dist/chunk-ZDPFA4L3-B9CgTrRM.cjs.map +1 -0
- package/dist/chunk-ZDPFA4L3-CFiGvFmX.mjs +59 -0
- package/dist/chunk-ZDPFA4L3-CFiGvFmX.mjs.map +1 -0
- package/dist/chunk-ZZKH2ELC-ax83hgqF.mjs +1370 -0
- package/dist/chunk-ZZKH2ELC-ax83hgqF.mjs.map +1 -0
- package/dist/chunk-ZZKH2ELC-f-RKOsqX.cjs +1380 -0
- package/dist/chunk-ZZKH2ELC-f-RKOsqX.cjs.map +1 -0
- package/dist/chunk-emK7D4bc.cjs +35 -0
- package/dist/clear-HKGFEOF6-CYyBOq3X.mjs +10 -0
- package/dist/clear-HKGFEOF6-CYyBOq3X.mjs.map +1 -0
- package/dist/clear-HKGFEOF6-ZGwSsMXs.cjs +9 -0
- package/dist/clear-HKGFEOF6-ZGwSsMXs.cjs.map +1 -0
- package/dist/client.cjs +78 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +32 -0
- package/dist/client.d.cts.map +1 -0
- package/dist/client.d.mts +32 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +74 -0
- package/dist/client.mjs.map +1 -0
- package/dist/column-XT6UFXNQ-CWF7QRjz.cjs +11 -0
- package/dist/column-XT6UFXNQ-CWF7QRjz.cjs.map +1 -0
- package/dist/column-XT6UFXNQ-CoTCXAQA.mjs +12 -0
- package/dist/column-XT6UFXNQ-CoTCXAQA.mjs.map +1 -0
- package/dist/comm-VV2LDX2J-DOzyBOMs.cjs +10 -0
- package/dist/comm-VV2LDX2J-DOzyBOMs.cjs.map +1 -0
- package/dist/comm-VV2LDX2J-IeNG1fNU.mjs +11 -0
- package/dist/comm-VV2LDX2J-IeNG1fNU.mjs.map +1 -0
- package/dist/config.cjs +88 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +1316 -0
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.mts +1316 -0
- package/dist/config.d.mts.map +1 -0
- package/dist/config.mjs +81 -0
- package/dist/config.mjs.map +1 -0
- package/dist/context-compaction-Bxp4WK2B-CWLdNWoS.cjs +966 -0
- package/dist/context-compaction-Bxp4WK2B-CWLdNWoS.cjs.map +1 -0
- package/dist/context-compaction-Bxp4WK2B-Ct4RSjlg.mjs +811 -0
- package/dist/context-compaction-Bxp4WK2B-Ct4RSjlg.mjs.map +1 -0
- package/dist/cp-BISAAS7A-fWG_vkSv.cjs +11 -0
- package/dist/cp-BISAAS7A-fWG_vkSv.cjs.map +1 -0
- package/dist/cp-BISAAS7A-y3hdv9xC.mjs +12 -0
- package/dist/cp-BISAAS7A-y3hdv9xC.mjs.map +1 -0
- package/dist/credentials.cjs +10 -0
- package/dist/credentials.d.cts +2 -0
- package/dist/credentials.d.mts +2 -0
- package/dist/credentials.mjs +3 -0
- package/dist/curl-LV5Y3AMS-Bf9eKOTr.cjs +364 -0
- package/dist/curl-LV5Y3AMS-Bf9eKOTr.cjs.map +1 -0
- package/dist/curl-LV5Y3AMS-DY6AEvUN.mjs +365 -0
- package/dist/curl-LV5Y3AMS-DY6AEvUN.mjs.map +1 -0
- package/dist/cut-OKARJCCV-B5hj6PNw.cjs +11 -0
- package/dist/cut-OKARJCCV-B5hj6PNw.cjs.map +1 -0
- package/dist/cut-OKARJCCV-BeA2qK8B.mjs +12 -0
- package/dist/cut-OKARJCCV-BeA2qK8B.mjs.map +1 -0
- package/dist/date-UUUPW43J-BvO9KK8b.mjs +10 -0
- package/dist/date-UUUPW43J-BvO9KK8b.mjs.map +1 -0
- package/dist/date-UUUPW43J-mv37dOgT.cjs +9 -0
- package/dist/date-UUUPW43J-mv37dOgT.cjs.map +1 -0
- package/dist/diff-MWJFIG7X-CWeDF1mh.mjs +12 -0
- package/dist/diff-MWJFIG7X-CWeDF1mh.mjs.map +1 -0
- package/dist/diff-MWJFIG7X-Dt8HnbgX.cjs +11 -0
- package/dist/diff-MWJFIG7X-Dt8HnbgX.cjs.map +1 -0
- package/dist/dirname-MPHRFUTI-CG4kCjEj.mjs +10 -0
- package/dist/dirname-MPHRFUTI-CG4kCjEj.mjs.map +1 -0
- package/dist/dirname-MPHRFUTI-DSaDfKGY.cjs +9 -0
- package/dist/dirname-MPHRFUTI-DSaDfKGY.cjs.map +1 -0
- package/dist/dist-BQo9dZi7.cjs +30135 -0
- package/dist/dist-BQo9dZi7.cjs.map +1 -0
- package/dist/dist-C_APGtUJ.mjs +17330 -0
- package/dist/dist-C_APGtUJ.mjs.map +1 -0
- package/dist/dist-D0P3wUQe.mjs +3846 -0
- package/dist/dist-D0P3wUQe.mjs.map +1 -0
- package/dist/dist-DD3DTmkE.mjs +29949 -0
- package/dist/dist-DD3DTmkE.mjs.map +1 -0
- package/dist/dist-DbUdD0Ue.mjs +18643 -0
- package/dist/dist-DbUdD0Ue.mjs.map +1 -0
- package/dist/dist-Dg83IPct.cjs +4031 -0
- package/dist/dist-Dg83IPct.cjs.map +1 -0
- package/dist/dist-Dz88Bzu0.cjs +359 -0
- package/dist/dist-Dz88Bzu0.cjs.map +1 -0
- package/dist/dist-IS8Bvv2i.cjs +17803 -0
- package/dist/dist-IS8Bvv2i.cjs.map +1 -0
- package/dist/dist-UT46qwZV.mjs +246 -0
- package/dist/dist-UT46qwZV.mjs.map +1 -0
- package/dist/dist-j8370AIo.cjs +19057 -0
- package/dist/dist-j8370AIo.cjs.map +1 -0
- package/dist/du-572XNP42-BAVJiiXo.cjs +11 -0
- package/dist/du-572XNP42-BAVJiiXo.cjs.map +1 -0
- package/dist/du-572XNP42-D7y3efrk.mjs +12 -0
- package/dist/du-572XNP42-D7y3efrk.mjs.map +1 -0
- package/dist/echo-NDWZZHPO-C_aAwo4z.cjs +8 -0
- package/dist/echo-NDWZZHPO-C_aAwo4z.cjs.map +1 -0
- package/dist/echo-NDWZZHPO-DJUqNm-A.mjs +9 -0
- package/dist/echo-NDWZZHPO-DJUqNm-A.mjs.map +1 -0
- package/dist/env-36M5BO7M-BQURw4Ru.mjs +11 -0
- package/dist/env-36M5BO7M-BQURw4Ru.mjs.map +1 -0
- package/dist/env-36M5BO7M-D80iesj1.cjs +11 -0
- package/dist/env-36M5BO7M-D80iesj1.cjs.map +1 -0
- package/dist/expand-JSPG6VOP-Db6frNfE.mjs +11 -0
- package/dist/expand-JSPG6VOP-Db6frNfE.mjs.map +1 -0
- package/dist/expand-JSPG6VOP-qqexeJob.cjs +10 -0
- package/dist/expand-JSPG6VOP-qqexeJob.cjs.map +1 -0
- package/dist/expansion-R25BK4W3-DMCU-2pt.cjs +10 -0
- package/dist/expansion-R25BK4W3-DMCU-2pt.cjs.map +1 -0
- package/dist/expansion-R25BK4W3-VsydFac3.mjs +11 -0
- package/dist/expansion-R25BK4W3-VsydFac3.mjs.map +1 -0
- package/dist/expr-5JAACS4X-BtI6FOVh.cjs +10 -0
- package/dist/expr-5JAACS4X-BtI6FOVh.cjs.map +1 -0
- package/dist/expr-5JAACS4X-CguKIVSC.mjs +11 -0
- package/dist/expr-5JAACS4X-CguKIVSC.mjs.map +1 -0
- package/dist/file-IPZJC3FQ-BHvdw59X.cjs +9 -0
- package/dist/file-IPZJC3FQ-BHvdw59X.cjs.map +1 -0
- package/dist/file-IPZJC3FQ-DdWB_Mi3.mjs +10 -0
- package/dist/file-IPZJC3FQ-DdWB_Mi3.mjs.map +1 -0
- package/dist/find-INTH3OLC-D127IzUe.cjs +14 -0
- package/dist/find-INTH3OLC-D127IzUe.cjs.map +1 -0
- package/dist/find-INTH3OLC-DUj1QWUD.mjs +15 -0
- package/dist/find-INTH3OLC-DUj1QWUD.mjs.map +1 -0
- package/dist/flag-coverage-XWSYNE72-BvlYPLhT.cjs +193 -0
- package/dist/flag-coverage-XWSYNE72-BvlYPLhT.cjs.map +1 -0
- package/dist/flag-coverage-XWSYNE72-D2Xac5QE.mjs +194 -0
- package/dist/flag-coverage-XWSYNE72-D2Xac5QE.mjs.map +1 -0
- package/dist/fold-4TQNYMSW-CCrJbaeb.cjs +10 -0
- package/dist/fold-4TQNYMSW-CCrJbaeb.cjs.map +1 -0
- package/dist/fold-4TQNYMSW-CQSEN6_M.mjs +11 -0
- package/dist/fold-4TQNYMSW-CQSEN6_M.mjs.map +1 -0
- package/dist/grep-V3LQVMRQ-BNOljaul.mjs +14 -0
- package/dist/grep-V3LQVMRQ-BNOljaul.mjs.map +1 -0
- package/dist/grep-V3LQVMRQ-DsVq7Ozb.cjs +15 -0
- package/dist/grep-V3LQVMRQ-DsVq7Ozb.cjs.map +1 -0
- package/dist/gzip-O5ASJAFY-CJyjjhtQ.mjs +12 -0
- package/dist/gzip-O5ASJAFY-CJyjjhtQ.mjs.map +1 -0
- package/dist/gzip-O5ASJAFY-CbKyjNWZ.cjs +13 -0
- package/dist/gzip-O5ASJAFY-CbKyjNWZ.cjs.map +1 -0
- package/dist/head-442HYESI-6eRGfaC4.mjs +12 -0
- package/dist/head-442HYESI-6eRGfaC4.mjs.map +1 -0
- package/dist/head-442HYESI-Du8bb8I3.cjs +11 -0
- package/dist/head-442HYESI-Du8bb8I3.cjs.map +1 -0
- package/dist/help-HZ6M2CKN-CE-5DWIv.mjs +10 -0
- package/dist/help-HZ6M2CKN-CE-5DWIv.mjs.map +1 -0
- package/dist/help-HZ6M2CKN-Dz29-pqL.cjs +9 -0
- package/dist/help-HZ6M2CKN-Dz29-pqL.cjs.map +1 -0
- package/dist/history-WYYKSLSZ-D4HoTLXV.cjs +9 -0
- package/dist/history-WYYKSLSZ-D4HoTLXV.cjs.map +1 -0
- package/dist/history-WYYKSLSZ-mKzPt20Z.mjs +10 -0
- package/dist/history-WYYKSLSZ-mKzPt20Z.mjs.map +1 -0
- package/dist/hostname-C4HQXXUP-DkWSvRYp.mjs +9 -0
- package/dist/hostname-C4HQXXUP-DkWSvRYp.mjs.map +1 -0
- package/dist/hostname-C4HQXXUP-ZNyZ70pV.cjs +8 -0
- package/dist/hostname-C4HQXXUP-ZNyZ70pV.cjs.map +1 -0
- package/dist/html-to-markdown-JW4MSQZO-BWdLbF_8.mjs +11 -0
- package/dist/html-to-markdown-JW4MSQZO-BWdLbF_8.mjs.map +1 -0
- package/dist/html-to-markdown-JW4MSQZO-CG8v0p9s.cjs +10 -0
- package/dist/html-to-markdown-JW4MSQZO-CG8v0p9s.cjs.map +1 -0
- package/dist/index-BolOkiNw.d.mts +10808 -0
- package/dist/index-BolOkiNw.d.mts.map +1 -0
- package/dist/index-BpfGWrr3.d.cts +294 -0
- package/dist/index-BpfGWrr3.d.cts.map +1 -0
- package/dist/index-BrZw4MnL.d.mts +388 -0
- package/dist/index-BrZw4MnL.d.mts.map +1 -0
- package/dist/index-CPzkzEn8.d.mts +294 -0
- package/dist/index-CPzkzEn8.d.mts.map +1 -0
- package/dist/index-CX3Pvwnv.d.cts +388 -0
- package/dist/index-CX3Pvwnv.d.cts.map +1 -0
- package/dist/index-DO4QkV10.d.cts +167 -0
- package/dist/index-DO4QkV10.d.cts.map +1 -0
- package/dist/index-DT0Rt3bM.d.mts +167 -0
- package/dist/index-DT0Rt3bM.d.mts.map +1 -0
- package/dist/index-DVFIo-WE.d.cts +420 -0
- package/dist/index-DVFIo-WE.d.cts.map +1 -0
- package/dist/index-DZq4rZr0.d.cts +731 -0
- package/dist/index-DZq4rZr0.d.cts.map +1 -0
- package/dist/index-GJs4NjSJ.d.cts +10808 -0
- package/dist/index-GJs4NjSJ.d.cts.map +1 -0
- package/dist/index-KtVVfAg8.d.mts +421 -0
- package/dist/index-KtVVfAg8.d.mts.map +1 -0
- package/dist/index-vwk4evMi.d.mts +731 -0
- package/dist/index-vwk4evMi.d.mts.map +1 -0
- package/dist/index-whyhiCRD.d.cts +476 -0
- package/dist/index-whyhiCRD.d.cts.map +1 -0
- package/dist/index-whyhiCRD.d.mts +476 -0
- package/dist/index-whyhiCRD.d.mts.map +1 -0
- package/dist/join-TBRGI3LQ-D03-ugeA.cjs +10 -0
- package/dist/join-TBRGI3LQ-D03-ugeA.cjs.map +1 -0
- package/dist/join-TBRGI3LQ-DeOTGxwS.mjs +11 -0
- package/dist/join-TBRGI3LQ-DeOTGxwS.mjs.map +1 -0
- package/dist/jq-4XLYLOS5-BiaBAx7g.mjs +17 -0
- package/dist/jq-4XLYLOS5-BiaBAx7g.mjs.map +1 -0
- package/dist/jq-4XLYLOS5-DIhMdpox.cjs +16 -0
- package/dist/jq-4XLYLOS5-DIhMdpox.cjs.map +1 -0
- package/dist/js-exec-N5KEZBH7-Bsu5rZc5.cjs +326 -0
- package/dist/js-exec-N5KEZBH7-Bsu5rZc5.cjs.map +1 -0
- package/dist/js-exec-N5KEZBH7-mjx8kL-E.mjs +325 -0
- package/dist/js-exec-N5KEZBH7-mjx8kL-E.mjs.map +1 -0
- package/dist/lib-BDS_VKdS.cjs +47 -0
- package/dist/lib-BDS_VKdS.cjs.map +1 -0
- package/dist/lib-DtkdlhpW.mjs +44 -0
- package/dist/lib-DtkdlhpW.mjs.map +1 -0
- package/dist/ln-4LGSXXGD-BP3dsKRk.mjs +11 -0
- package/dist/ln-4LGSXXGD-BP3dsKRk.mjs.map +1 -0
- package/dist/ln-4LGSXXGD-CLME5hAZ.cjs +10 -0
- package/dist/ln-4LGSXXGD-CLME5hAZ.cjs.map +1 -0
- package/dist/ls-ZJGQER7M-BHjvyBRP.cjs +11 -0
- package/dist/ls-ZJGQER7M-BHjvyBRP.cjs.map +1 -0
- package/dist/ls-ZJGQER7M-D6ZqtwnS.mjs +12 -0
- package/dist/ls-ZJGQER7M-D6ZqtwnS.mjs.map +1 -0
- package/dist/lzma-DV6-5HMr.mjs +1134 -0
- package/dist/lzma-DV6-5HMr.mjs.map +1 -0
- package/dist/lzma-xM_ySpEU.cjs +1204 -0
- package/dist/lzma-xM_ySpEU.cjs.map +1 -0
- package/dist/md5sum-SPU24VSG-BpB7MOoX.cjs +11 -0
- package/dist/md5sum-SPU24VSG-BpB7MOoX.cjs.map +1 -0
- package/dist/md5sum-SPU24VSG-tBMX8Ykn.mjs +12 -0
- package/dist/md5sum-SPU24VSG-tBMX8Ykn.mjs.map +1 -0
- package/dist/microsandbox-CcqbJofH-BPQ_yy69.cjs +356 -0
- package/dist/microsandbox-CcqbJofH-BPQ_yy69.cjs.map +1 -0
- package/dist/microsandbox-CcqbJofH-BpjD0cPa.mjs +355 -0
- package/dist/microsandbox-CcqbJofH-BpjD0cPa.mjs.map +1 -0
- package/dist/mkdir-MEPGZOB6-2LBcfvx6.mjs +12 -0
- package/dist/mkdir-MEPGZOB6-2LBcfvx6.mjs.map +1 -0
- package/dist/mkdir-MEPGZOB6-CvvrtAwB.cjs +11 -0
- package/dist/mkdir-MEPGZOB6-CvvrtAwB.cjs.map +1 -0
- package/dist/mv-W5BIQ646-DAcBlQnB.mjs +12 -0
- package/dist/mv-W5BIQ646-DAcBlQnB.mjs.map +1 -0
- package/dist/mv-W5BIQ646-DyH_IHk6.cjs +11 -0
- package/dist/mv-W5BIQ646-DyH_IHk6.cjs.map +1 -0
- package/dist/nl-WSDW7I4O-BIPyW92d.cjs +10 -0
- package/dist/nl-WSDW7I4O-BIPyW92d.cjs.map +1 -0
- package/dist/nl-WSDW7I4O-CeIwgoyv.mjs +11 -0
- package/dist/nl-WSDW7I4O-CeIwgoyv.mjs.map +1 -0
- package/dist/od-WOKFDJTP-B5F93Msv.cjs +9 -0
- package/dist/od-WOKFDJTP-B5F93Msv.cjs.map +1 -0
- package/dist/od-WOKFDJTP-DoAnAOHS.mjs +10 -0
- package/dist/od-WOKFDJTP-DoAnAOHS.mjs.map +1 -0
- package/dist/paste-7JC6S4DX-BpJGsGFI.mjs +12 -0
- package/dist/paste-7JC6S4DX-BpJGsGFI.mjs.map +1 -0
- package/dist/paste-7JC6S4DX-Bxm6lkH0.cjs +11 -0
- package/dist/paste-7JC6S4DX-Bxm6lkH0.cjs.map +1 -0
- package/dist/printf-TWGXF445-CM_JvUBE.mjs +13 -0
- package/dist/printf-TWGXF445-CM_JvUBE.mjs.map +1 -0
- package/dist/printf-TWGXF445-DWZu7Yxe.cjs +12 -0
- package/dist/printf-TWGXF445-DWZu7Yxe.cjs.map +1 -0
- package/dist/pwd-WE6EN5AV-BJeFTIaB.cjs +8 -0
- package/dist/pwd-WE6EN5AV-BJeFTIaB.cjs.map +1 -0
- package/dist/pwd-WE6EN5AV-E0-h0Wwr.mjs +9 -0
- package/dist/pwd-WE6EN5AV-E0-h0Wwr.mjs.map +1 -0
- package/dist/python3-POMOR4OA-B2lp8q-q.mjs +290 -0
- package/dist/python3-POMOR4OA-B2lp8q-q.mjs.map +1 -0
- package/dist/python3-POMOR4OA-DWaHkuYd.cjs +291 -0
- package/dist/python3-POMOR4OA-DWaHkuYd.cjs.map +1 -0
- package/dist/readlink-OPJF4DL5-CGTRp9ZR.cjs +9 -0
- package/dist/readlink-OPJF4DL5-CGTRp9ZR.cjs.map +1 -0
- package/dist/readlink-OPJF4DL5-VSFHWdJq.mjs +10 -0
- package/dist/readlink-OPJF4DL5-VSFHWdJq.mjs.map +1 -0
- package/dist/rev-5EHFX4EJ-BFssnHjX.cjs +10 -0
- package/dist/rev-5EHFX4EJ-BFssnHjX.cjs.map +1 -0
- package/dist/rev-5EHFX4EJ-DUvotxKa.mjs +11 -0
- package/dist/rev-5EHFX4EJ-DUvotxKa.mjs.map +1 -0
- package/dist/rg-S4FXYXWB-BwJXnxm4.mjs +14 -0
- package/dist/rg-S4FXYXWB-BwJXnxm4.mjs.map +1 -0
- package/dist/rg-S4FXYXWB-kNVxue3X.cjs +13 -0
- package/dist/rg-S4FXYXWB-kNVxue3X.cjs.map +1 -0
- package/dist/rm-SSGETQVQ-BxR8YqEi.cjs +11 -0
- package/dist/rm-SSGETQVQ-BxR8YqEi.cjs.map +1 -0
- package/dist/rm-SSGETQVQ-COVyMix7.mjs +12 -0
- package/dist/rm-SSGETQVQ-COVyMix7.mjs.map +1 -0
- package/dist/rmdir-OC4ZLPYA-BlyrDOEB.mjs +12 -0
- package/dist/rmdir-OC4ZLPYA-BlyrDOEB.mjs.map +1 -0
- package/dist/rmdir-OC4ZLPYA-CFXt8yJF.cjs +11 -0
- package/dist/rmdir-OC4ZLPYA-CFXt8yJF.cjs.map +1 -0
- package/dist/sandbox.cjs +42 -0
- package/dist/sandbox.d.cts +3 -0
- package/dist/sandbox.d.mts +3 -0
- package/dist/sandbox.mjs +3 -0
- package/dist/schemas-B9dXuD9C-C8e8P8s7.d.cts +132 -0
- package/dist/schemas-B9dXuD9C-C8e8P8s7.d.cts.map +1 -0
- package/dist/schemas-B9dXuD9C-Ddw29BVM.d.mts +132 -0
- package/dist/schemas-B9dXuD9C-Ddw29BVM.d.mts.map +1 -0
- package/dist/sed-S5UIK574-CJzty4_y.cjs +13 -0
- package/dist/sed-S5UIK574-CJzty4_y.cjs.map +1 -0
- package/dist/sed-S5UIK574-DvVx1z1Q.mjs +14 -0
- package/dist/sed-S5UIK574-DvVx1z1Q.mjs.map +1 -0
- package/dist/seq-M5EC7Q57-BQh8_jzT.cjs +8 -0
- package/dist/seq-M5EC7Q57-BQh8_jzT.cjs.map +1 -0
- package/dist/seq-M5EC7Q57-DH2Gzjh4.mjs +9 -0
- package/dist/seq-M5EC7Q57-DH2Gzjh4.mjs.map +1 -0
- package/dist/sha1sum-2PTOAFR6-Cvv2AvkK.mjs +12 -0
- package/dist/sha1sum-2PTOAFR6-Cvv2AvkK.mjs.map +1 -0
- package/dist/sha1sum-2PTOAFR6-D0D026_D.cjs +11 -0
- package/dist/sha1sum-2PTOAFR6-D0D026_D.cjs.map +1 -0
- package/dist/sha256sum-NS7D3IXX-BUptyILb.mjs +12 -0
- package/dist/sha256sum-NS7D3IXX-BUptyILb.mjs.map +1 -0
- package/dist/sha256sum-NS7D3IXX-f4vjCg8j.cjs +11 -0
- package/dist/sha256sum-NS7D3IXX-f4vjCg8j.cjs.map +1 -0
- package/dist/sleep-X22JJINO-CUccG_hp.cjs +12 -0
- package/dist/sleep-X22JJINO-CUccG_hp.cjs.map +1 -0
- package/dist/sleep-X22JJINO-DKqudoCa.mjs +13 -0
- package/dist/sleep-X22JJINO-DKqudoCa.mjs.map +1 -0
- package/dist/sort-SW2YEO5B-C1iiYCfD.mjs +12 -0
- package/dist/sort-SW2YEO5B-C1iiYCfD.mjs.map +1 -0
- package/dist/sort-SW2YEO5B-UwvRD2KZ.cjs +11 -0
- package/dist/sort-SW2YEO5B-UwvRD2KZ.cjs.map +1 -0
- package/dist/split-4KKZZXXE-C8oQYolE.cjs +10 -0
- package/dist/split-4KKZZXXE-C8oQYolE.cjs.map +1 -0
- package/dist/split-4KKZZXXE-DawUQvpV.mjs +11 -0
- package/dist/split-4KKZZXXE-DawUQvpV.mjs.map +1 -0
- package/dist/sqlite3-CGOEFJAO-CWUiOXbW.mjs +12 -0
- package/dist/sqlite3-CGOEFJAO-CWUiOXbW.mjs.map +1 -0
- package/dist/sqlite3-CGOEFJAO-NAfEsd3K.cjs +11 -0
- package/dist/sqlite3-CGOEFJAO-NAfEsd3K.cjs.map +1 -0
- package/dist/stat-CD34IZ4P-3s7p-H_1.mjs +12 -0
- package/dist/stat-CD34IZ4P-3s7p-H_1.mjs.map +1 -0
- package/dist/stat-CD34IZ4P-mFmbg9jE.cjs +11 -0
- package/dist/stat-CD34IZ4P-mFmbg9jE.cjs.map +1 -0
- package/dist/strings-6WDHLGMX-C0mZR3rL.cjs +10 -0
- package/dist/strings-6WDHLGMX-C0mZR3rL.cjs.map +1 -0
- package/dist/strings-6WDHLGMX-rN-GcYzc.mjs +11 -0
- package/dist/strings-6WDHLGMX-rN-GcYzc.mjs.map +1 -0
- package/dist/tac-2STMMJYW-CCGCXdL3.mjs +10 -0
- package/dist/tac-2STMMJYW-CCGCXdL3.mjs.map +1 -0
- package/dist/tac-2STMMJYW-CF3jBQn-.cjs +9 -0
- package/dist/tac-2STMMJYW-CF3jBQn-.cjs.map +1 -0
- package/dist/tail-R4PCA2C4-Dm1YzgX1.cjs +11 -0
- package/dist/tail-R4PCA2C4-Dm1YzgX1.cjs.map +1 -0
- package/dist/tail-R4PCA2C4-nWJj_9BP.mjs +12 -0
- package/dist/tail-R4PCA2C4-nWJj_9BP.mjs.map +1 -0
- package/dist/tar-STHHZTZ6-B1QzW_Yc.cjs +13 -0
- package/dist/tar-STHHZTZ6-B1QzW_Yc.cjs.map +1 -0
- package/dist/tar-STHHZTZ6-pW3sdOC1.mjs +14 -0
- package/dist/tar-STHHZTZ6-pW3sdOC1.mjs.map +1 -0
- package/dist/tee-YUZ2FKCJ-Ckn5_Rfr.mjs +12 -0
- package/dist/tee-YUZ2FKCJ-Ckn5_Rfr.mjs.map +1 -0
- package/dist/tee-YUZ2FKCJ-DG2P81sh.cjs +11 -0
- package/dist/tee-YUZ2FKCJ-DG2P81sh.cjs.map +1 -0
- package/dist/time-D4LNBSWX-BqX1SKTT.cjs +9 -0
- package/dist/time-D4LNBSWX-BqX1SKTT.cjs.map +1 -0
- package/dist/time-D4LNBSWX-CQ-61FuA.mjs +10 -0
- package/dist/time-D4LNBSWX-CQ-61FuA.mjs.map +1 -0
- package/dist/timeout-YDCRSLPQ-Bjpy2rYC.mjs +13 -0
- package/dist/timeout-YDCRSLPQ-Bjpy2rYC.mjs.map +1 -0
- package/dist/timeout-YDCRSLPQ-DHxvt-m9.cjs +12 -0
- package/dist/timeout-YDCRSLPQ-DHxvt-m9.cjs.map +1 -0
- package/dist/token-D8ZVWGW9.mjs +57 -0
- package/dist/token-D8ZVWGW9.mjs.map +1 -0
- package/dist/token-n2UdmfEO.cjs +61 -0
- package/dist/token-n2UdmfEO.cjs.map +1 -0
- package/dist/touch-UA33VN3N-CnPhjQMY.cjs +10 -0
- package/dist/touch-UA33VN3N-CnPhjQMY.cjs.map +1 -0
- package/dist/touch-UA33VN3N-Js-2D7wH.mjs +11 -0
- package/dist/touch-UA33VN3N-Js-2D7wH.mjs.map +1 -0
- package/dist/tr-36LHWFRQ-BX3JsTgE.mjs +12 -0
- package/dist/tr-36LHWFRQ-BX3JsTgE.mjs.map +1 -0
- package/dist/tr-36LHWFRQ-CTUGBq_y.cjs +11 -0
- package/dist/tr-36LHWFRQ-CTUGBq_y.cjs.map +1 -0
- package/dist/tree-YLD52CNT-BFjxBVvk.cjs +11 -0
- package/dist/tree-YLD52CNT-BFjxBVvk.cjs.map +1 -0
- package/dist/tree-YLD52CNT-CWiXyUaB.mjs +12 -0
- package/dist/tree-YLD52CNT-CWiXyUaB.mjs.map +1 -0
- package/dist/trigger.cjs +9156 -0
- package/dist/trigger.cjs.map +1 -0
- package/dist/trigger.d.cts +1309 -0
- package/dist/trigger.d.cts.map +1 -0
- package/dist/trigger.d.mts +1309 -0
- package/dist/trigger.d.mts.map +1 -0
- package/dist/trigger.mjs +9112 -0
- package/dist/trigger.mjs.map +1 -0
- package/dist/true-FHQXJXBE-BlqzUPqo.mjs +9 -0
- package/dist/true-FHQXJXBE-BlqzUPqo.mjs.map +1 -0
- package/dist/true-FHQXJXBE-DPgY13SB.cjs +9 -0
- package/dist/true-FHQXJXBE-DPgY13SB.cjs.map +1 -0
- package/dist/unexpand-CADSA4VO-C1IYKiZT.cjs +10 -0
- package/dist/unexpand-CADSA4VO-C1IYKiZT.cjs.map +1 -0
- package/dist/unexpand-CADSA4VO-Dma5x4Hd.mjs +11 -0
- package/dist/unexpand-CADSA4VO-Dma5x4Hd.mjs.map +1 -0
- package/dist/uniq-XSIZR6PB-DhPcC3e6.cjs +12 -0
- package/dist/uniq-XSIZR6PB-DhPcC3e6.cjs.map +1 -0
- package/dist/uniq-XSIZR6PB-s2lyDSBa.mjs +13 -0
- package/dist/uniq-XSIZR6PB-s2lyDSBa.mjs.map +1 -0
- package/dist/wc-LF7NU4LA-Bw66Xw1g.mjs +13 -0
- package/dist/wc-LF7NU4LA-Bw66Xw1g.mjs.map +1 -0
- package/dist/wc-LF7NU4LA-Crk1776-.cjs +12 -0
- package/dist/wc-LF7NU4LA-Crk1776-.cjs.map +1 -0
- package/dist/which-XEM24D5D-BH8nIFWN.cjs +10 -0
- package/dist/which-XEM24D5D-BH8nIFWN.cjs.map +1 -0
- package/dist/which-XEM24D5D-BVK1Mp4Z.mjs +11 -0
- package/dist/which-XEM24D5D-BVK1Mp4Z.mjs.map +1 -0
- package/dist/whoami-XMTX52VE-BesJdRRD.mjs +9 -0
- package/dist/whoami-XMTX52VE-BesJdRRD.mjs.map +1 -0
- package/dist/whoami-XMTX52VE-BwqJ8U2J.cjs +8 -0
- package/dist/whoami-XMTX52VE-BwqJ8U2J.cjs.map +1 -0
- package/dist/workflow.cjs +20 -0
- package/dist/workflow.d.cts +3 -0
- package/dist/workflow.d.mts +3 -0
- package/dist/workflow.mjs +2 -0
- package/dist/xan-Y6WF3IRG-B7cPBFsH.cjs +17 -0
- package/dist/xan-Y6WF3IRG-B7cPBFsH.cjs.map +1 -0
- package/dist/xan-Y6WF3IRG-BSQujFfS.mjs +18 -0
- package/dist/xan-Y6WF3IRG-BSQujFfS.mjs.map +1 -0
- package/dist/xan-view-HDVKHFC2-CKQzVgGS.cjs +10 -0
- package/dist/xan-view-HDVKHFC2-CKQzVgGS.cjs.map +1 -0
- package/dist/xan-view-HDVKHFC2-LBHIXDkw.mjs +11 -0
- package/dist/xan-view-HDVKHFC2-LBHIXDkw.mjs.map +1 -0
- package/dist/xargs-MGZPH7AX-C5Es61sr.mjs +11 -0
- package/dist/xargs-MGZPH7AX-C5Es61sr.mjs.map +1 -0
- package/dist/xargs-MGZPH7AX-zKLR_wid.cjs +10 -0
- package/dist/xargs-MGZPH7AX-zKLR_wid.cjs.map +1 -0
- package/dist/yq-4QJW3EQG-Bxs5Q2R8.mjs +17 -0
- package/dist/yq-4QJW3EQG-Bxs5Q2R8.mjs.map +1 -0
- package/dist/yq-4QJW3EQG-CoeNxruD.cjs +16 -0
- package/dist/yq-4QJW3EQG-CoeNxruD.cjs.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,811 @@
|
|
|
1
|
+
import { D as parseChatAttachmentServePath, c as LLM_RUN_KIND_HEADER, l as LLM_SKIP_USAGE_HEADER, o as LLM_KEY_SOURCE_HEADER, s as LLM_RUN_ID_HEADER } from "./dist-D0P3wUQe.mjs";
|
|
2
|
+
import { L as getProjectScopeId, _ as generateId, a as generateText, f as createGateway, s as isFileUIPart } from "./dist-C_APGtUJ.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
|
+
//#region ../agent/dist/schemas-DDyTkszQ.mjs
|
|
6
|
+
function capabilitiesFromGatewayTags(tags) {
|
|
7
|
+
const set = new Set(tags ?? []);
|
|
8
|
+
return {
|
|
9
|
+
images: set.has("vision"),
|
|
10
|
+
files: set.has("file-input")
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function attachmentPlaceholderText(filename, mediaType) {
|
|
14
|
+
return `[attachment omitted: ${filename?.trim() || mediaType} — model has no ${mediaType.startsWith("image/") ? "image" : "file"} support]`;
|
|
15
|
+
}
|
|
16
|
+
const storage = new AsyncLocalStorage();
|
|
17
|
+
/**
|
|
18
|
+
* Best-effort run attribution for LLM proxy traffic. The gateway client reads
|
|
19
|
+
* this to stamp run headers on each request so the platform can tag the usage
|
|
20
|
+
* it records to a run. Billing never depends on it — losing the context only
|
|
21
|
+
* drops the history-UI attribution.
|
|
22
|
+
*/
|
|
23
|
+
function withLlmRunContext(context, fn) {
|
|
24
|
+
return storage.run(context, fn);
|
|
25
|
+
}
|
|
26
|
+
function currentLlmRunContext() {
|
|
27
|
+
return storage.getStore();
|
|
28
|
+
}
|
|
29
|
+
const DEFAULT_GATEWAY_ORIGIN = "https://ai-gateway.vercel.sh";
|
|
30
|
+
/**
|
|
31
|
+
* Wrap `fetch` so every gateway request carries the current run's attribution
|
|
32
|
+
* headers. Read at call time (not client-construction time) so the cached
|
|
33
|
+
* singleton client still tags each request with its own run.
|
|
34
|
+
*/
|
|
35
|
+
const runContextFetch = (input, init) => {
|
|
36
|
+
const run = currentLlmRunContext();
|
|
37
|
+
if (!run) return fetch(input, init);
|
|
38
|
+
const headers = new Headers(init?.headers);
|
|
39
|
+
headers.set(LLM_RUN_ID_HEADER, run.runId);
|
|
40
|
+
headers.set(LLM_RUN_KIND_HEADER, run.runKind);
|
|
41
|
+
if (run.skipUsage) headers.set(LLM_SKIP_USAGE_HEADER, "1");
|
|
42
|
+
return fetch(input, {
|
|
43
|
+
...init,
|
|
44
|
+
headers
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
/** Resolve the model catalog URL for pricing metadata (via platform proxy when configured). */
|
|
48
|
+
function resolveGatewayCatalogUrl(modelId) {
|
|
49
|
+
const baseUrl = resolveGatewayBaseUrl();
|
|
50
|
+
const apiKey = process.env.AI_GATEWAY_API_KEY?.trim();
|
|
51
|
+
if (baseUrl && apiKey) return {
|
|
52
|
+
url: `${baseUrl.replace(/\/$/, "")}/models/${modelId}`,
|
|
53
|
+
headers: {
|
|
54
|
+
accept: "application/json",
|
|
55
|
+
authorization: `Bearer ${apiKey}`
|
|
56
|
+
},
|
|
57
|
+
cacheKey: baseUrl
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
url: `${DEFAULT_GATEWAY_ORIGIN}/v1/models/${modelId}`,
|
|
61
|
+
headers: { accept: "application/json" },
|
|
62
|
+
cacheKey: DEFAULT_GATEWAY_ORIGIN
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
let cachedGateway;
|
|
66
|
+
function resolveGatewayBaseUrl() {
|
|
67
|
+
const configured = process.env.AI_GATEWAY_BASE_URL?.trim();
|
|
68
|
+
if (configured) return configured.replace(/\/$/, "");
|
|
69
|
+
const platformUrl = process.env.PLATFORM_URL?.trim();
|
|
70
|
+
if (!platformUrl || !process.env.AI_GATEWAY_API_KEY?.trim()) return;
|
|
71
|
+
const projectId = getProjectScopeId();
|
|
72
|
+
return `${platformUrl.replace(/\/$/, "")}/internal/projects/${encodeURIComponent(projectId)}/llm`;
|
|
73
|
+
}
|
|
74
|
+
/** Shared AI Gateway client honoring keystroke env conventions. */
|
|
75
|
+
function getGatewayClient(baseUrl) {
|
|
76
|
+
const resolvedBaseUrl = baseUrl ?? resolveGatewayBaseUrl();
|
|
77
|
+
const cacheKey = resolvedBaseUrl ?? DEFAULT_GATEWAY_ORIGIN;
|
|
78
|
+
if (cachedGateway && cachedGateway.__baseUrl === cacheKey) return cachedGateway;
|
|
79
|
+
const apiKey = process.env.AI_GATEWAY_API_KEY?.trim();
|
|
80
|
+
const gateway = createGateway({
|
|
81
|
+
...resolvedBaseUrl ? { baseURL: resolvedBaseUrl } : {},
|
|
82
|
+
...apiKey ? { apiKey } : {},
|
|
83
|
+
fetch: runContextFetch
|
|
84
|
+
});
|
|
85
|
+
gateway.__baseUrl = cacheKey;
|
|
86
|
+
cachedGateway = gateway;
|
|
87
|
+
return gateway;
|
|
88
|
+
}
|
|
89
|
+
const AGENT_MODEL_ID_PATTERN = /^[a-z0-9-]+\/.+/;
|
|
90
|
+
const AgentModelIdSchema = z.custom((value) => typeof value === "string" && AGENT_MODEL_ID_PATTERN.test(value), "model must be vendor/model-id");
|
|
91
|
+
const GatewayModelPricingSchema = z.object({
|
|
92
|
+
input: z.string().optional(),
|
|
93
|
+
output: z.string().optional(),
|
|
94
|
+
input_cache_read: z.string().optional(),
|
|
95
|
+
input_cache_write: z.string().optional()
|
|
96
|
+
});
|
|
97
|
+
const GatewayModelResponseSchema = z.object({
|
|
98
|
+
id: z.string().min(1),
|
|
99
|
+
name: z.string().optional(),
|
|
100
|
+
type: z.string().optional(),
|
|
101
|
+
context_window: z.number().int().positive().optional(),
|
|
102
|
+
max_tokens: z.number().int().positive().optional(),
|
|
103
|
+
tags: z.array(z.string()).optional(),
|
|
104
|
+
pricing: GatewayModelPricingSchema.optional()
|
|
105
|
+
});
|
|
106
|
+
function splitAgentModelId(modelId) {
|
|
107
|
+
const slash = modelId.indexOf("/");
|
|
108
|
+
return {
|
|
109
|
+
vendor: modelId.slice(0, slash),
|
|
110
|
+
directId: modelId.slice(slash + 1)
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function parseGatewayModelResponse(body) {
|
|
114
|
+
const parsed = GatewayModelResponseSchema.safeParse(body);
|
|
115
|
+
return parsed.success ? parsed.data : void 0;
|
|
116
|
+
}
|
|
117
|
+
function pricePerMillion(value) {
|
|
118
|
+
if (!value) return 0;
|
|
119
|
+
const perToken = Number(value);
|
|
120
|
+
if (!Number.isFinite(perToken) || perToken <= 0) return 0;
|
|
121
|
+
return perToken * 1e6;
|
|
122
|
+
}
|
|
123
|
+
const gatewayModelCache = /* @__PURE__ */ new Map();
|
|
124
|
+
const gatewayModelPending = /* @__PURE__ */ new Map();
|
|
125
|
+
function gatewayModelCacheKey(modelId, catalog) {
|
|
126
|
+
return `${catalog.cacheKey}::${modelId}`;
|
|
127
|
+
}
|
|
128
|
+
function catalogLogContext(modelId, catalog) {
|
|
129
|
+
return {
|
|
130
|
+
modelId,
|
|
131
|
+
url: catalog.url,
|
|
132
|
+
projectScopeId: getProjectScopeId(),
|
|
133
|
+
cacheKey: gatewayModelCacheKey(modelId, catalog)
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function snippet(value, max = 400) {
|
|
137
|
+
const trimmed = value.trim();
|
|
138
|
+
return trimmed.length <= max ? trimmed : `${trimmed.slice(0, max)}…`;
|
|
139
|
+
}
|
|
140
|
+
async function fetchGatewayModelMetadata(modelId) {
|
|
141
|
+
const catalog = resolveGatewayCatalogUrl(modelId);
|
|
142
|
+
const cacheKey = gatewayModelCacheKey(modelId, catalog);
|
|
143
|
+
const cached = gatewayModelCache.get(cacheKey);
|
|
144
|
+
if (cached) {
|
|
145
|
+
if (cached.status === "found") {
|
|
146
|
+
const { status: _status, ...metadata } = cached;
|
|
147
|
+
return metadata;
|
|
148
|
+
}
|
|
149
|
+
console.warn("[gateway-model] catalog lookup cache miss (missing)", catalogLogContext(modelId, catalog));
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const pending = gatewayModelPending.get(cacheKey);
|
|
153
|
+
if (pending) return pending;
|
|
154
|
+
const request = (async () => {
|
|
155
|
+
try {
|
|
156
|
+
const response = await fetch(catalog.url, { headers: catalog.headers });
|
|
157
|
+
if (!response.ok) {
|
|
158
|
+
const body = await response.text().catch(() => "");
|
|
159
|
+
console.warn("[gateway-model] catalog HTTP error", {
|
|
160
|
+
...catalogLogContext(modelId, catalog),
|
|
161
|
+
status: response.status,
|
|
162
|
+
statusText: response.statusText,
|
|
163
|
+
body: snippet(body)
|
|
164
|
+
});
|
|
165
|
+
gatewayModelCache.set(cacheKey, { status: "missing" });
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const body = await response.json();
|
|
169
|
+
const raw = parseGatewayModelResponse(body);
|
|
170
|
+
if (!raw || raw.type && raw.type !== "language") {
|
|
171
|
+
console.warn("[gateway-model] catalog payload rejected", {
|
|
172
|
+
...catalogLogContext(modelId, catalog),
|
|
173
|
+
type: raw?.type,
|
|
174
|
+
body: snippet(JSON.stringify(body))
|
|
175
|
+
});
|
|
176
|
+
gatewayModelCache.set(cacheKey, { status: "missing" });
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const capabilities = capabilitiesFromGatewayTags(raw.tags);
|
|
180
|
+
const metadata = {
|
|
181
|
+
pricing: {
|
|
182
|
+
inputPerMillion: pricePerMillion(raw.pricing?.input),
|
|
183
|
+
outputPerMillion: pricePerMillion(raw.pricing?.output),
|
|
184
|
+
cacheReadPerMillion: pricePerMillion(raw.pricing?.input_cache_read),
|
|
185
|
+
cacheWritePerMillion: pricePerMillion(raw.pricing?.input_cache_write)
|
|
186
|
+
},
|
|
187
|
+
capabilities,
|
|
188
|
+
...raw.context_window !== void 0 ? { contextWindow: raw.context_window } : {},
|
|
189
|
+
...raw.max_tokens !== void 0 ? { maxOutputTokens: raw.max_tokens } : {}
|
|
190
|
+
};
|
|
191
|
+
gatewayModelCache.set(cacheKey, {
|
|
192
|
+
status: "found",
|
|
193
|
+
...metadata
|
|
194
|
+
});
|
|
195
|
+
return metadata;
|
|
196
|
+
} catch (error) {
|
|
197
|
+
console.warn("[gateway-model] catalog fetch failed", {
|
|
198
|
+
...catalogLogContext(modelId, catalog),
|
|
199
|
+
error: error instanceof Error ? error.message : String(error)
|
|
200
|
+
});
|
|
201
|
+
gatewayModelCache.set(cacheKey, { status: "missing" });
|
|
202
|
+
return;
|
|
203
|
+
} finally {
|
|
204
|
+
gatewayModelPending.delete(cacheKey);
|
|
205
|
+
}
|
|
206
|
+
})();
|
|
207
|
+
gatewayModelPending.set(cacheKey, request);
|
|
208
|
+
return request;
|
|
209
|
+
}
|
|
210
|
+
/** Cached gateway catalog lookup for model multimodal capabilities. */
|
|
211
|
+
async function resolveModelCapabilities(modelId) {
|
|
212
|
+
return (await fetchGatewayModelMetadata(modelId))?.capabilities ?? {
|
|
213
|
+
images: false,
|
|
214
|
+
files: false
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
/** Resolve a user-authored model id to an AI Gateway language model + optional pricing metadata. */
|
|
218
|
+
async function resolveAgentModel(modelId) {
|
|
219
|
+
const baseUrl = resolveGatewayBaseUrl();
|
|
220
|
+
const gateway = getGatewayClient(baseUrl);
|
|
221
|
+
const metadata = await fetchGatewayModelMetadata(modelId);
|
|
222
|
+
const pricing = metadata?.pricing;
|
|
223
|
+
const capabilities = metadata?.capabilities ?? {
|
|
224
|
+
images: false,
|
|
225
|
+
files: false
|
|
226
|
+
};
|
|
227
|
+
if (pricing === void 0) {
|
|
228
|
+
const catalog = resolveGatewayCatalogUrl(modelId);
|
|
229
|
+
if (gatewayModelCache.get(gatewayModelCacheKey(modelId, catalog))?.status === "missing" && process.env.AI_GATEWAY_API_KEY?.trim()) {
|
|
230
|
+
console.warn("[gateway-model] rejecting model after catalog miss", catalogLogContext(modelId, catalog));
|
|
231
|
+
throw new Error(`Unknown gateway model: ${modelId}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
languageModel: gateway(modelId),
|
|
236
|
+
modelId,
|
|
237
|
+
provider: "vercel-ai-gateway",
|
|
238
|
+
capabilities,
|
|
239
|
+
...baseUrl ? { baseUrl } : {},
|
|
240
|
+
...pricing ? { pricing } : {},
|
|
241
|
+
...metadata?.contextWindow !== void 0 ? { contextWindow: metadata.contextWindow } : {},
|
|
242
|
+
...metadata?.maxOutputTokens !== void 0 ? { maxOutputTokens: metadata.maxOutputTokens } : {}
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
const ThinkingLevelSchema = z.enum([
|
|
246
|
+
"provider-default",
|
|
247
|
+
"none",
|
|
248
|
+
"minimal",
|
|
249
|
+
"low",
|
|
250
|
+
"medium",
|
|
251
|
+
"high",
|
|
252
|
+
"xhigh"
|
|
253
|
+
]);
|
|
254
|
+
const DEFAULT_THINKING_LEVEL = "medium";
|
|
255
|
+
/** Default model for automatic context compaction when `compactionModel` is omitted. */
|
|
256
|
+
const DEFAULT_COMPACTION_MODEL_ID = "deepseek/deepseek-v4-flash";
|
|
257
|
+
/** Serializable subset of {@link AgentConfig} for JSON/env/CLI boundaries. */
|
|
258
|
+
const AgentCreateInputSchema = z.object({
|
|
259
|
+
systemPrompt: z.string(),
|
|
260
|
+
model: AgentModelIdSchema,
|
|
261
|
+
/**
|
|
262
|
+
* Optional model used only for context compaction. Same `vendor/model-id` form as
|
|
263
|
+
* `model`. When omitted, Keystroke uses {@link DEFAULT_COMPACTION_MODEL_ID}.
|
|
264
|
+
*/
|
|
265
|
+
compactionModel: AgentModelIdSchema.optional(),
|
|
266
|
+
thinkingLevel: ThinkingLevelSchema.optional()
|
|
267
|
+
});
|
|
268
|
+
function parseAgentCreateInput(input) {
|
|
269
|
+
return AgentCreateInputSchema.parse(input);
|
|
270
|
+
}
|
|
271
|
+
function resolveThinkingLevel(level) {
|
|
272
|
+
return level ?? "medium";
|
|
273
|
+
}
|
|
274
|
+
//#endregion
|
|
275
|
+
//#region ../agent/dist/context-compaction-Bxp4WK2B.mjs
|
|
276
|
+
/** Map every `FileUIPart` in each message, leaving other parts and non-array messages untouched. */
|
|
277
|
+
async function mapMessageFileParts(messages, mapFilePart) {
|
|
278
|
+
return Promise.all(messages.map(async (message) => {
|
|
279
|
+
if (!Array.isArray(message.parts)) return message;
|
|
280
|
+
const parts = await Promise.all(message.parts.map((part) => isFileUIPart(part) ? mapFilePart(part) : part));
|
|
281
|
+
return {
|
|
282
|
+
...message,
|
|
283
|
+
parts
|
|
284
|
+
};
|
|
285
|
+
}));
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Approximate model-token cost of one image attachment. Vision pricing is
|
|
289
|
+
* tile-based (provider-dependent, roughly 750–1,600 tokens for a typical
|
|
290
|
+
* photo), not proportional to serialized bytes — a flat per-image charge is
|
|
291
|
+
* closer to reality than counting base64 chars.
|
|
292
|
+
*/
|
|
293
|
+
const APPROX_ATTACHMENT_IMAGE_TOKENS = 1100;
|
|
294
|
+
/**
|
|
295
|
+
* Approximate model-token cost of one non-image attachment (PDFs). Page count
|
|
296
|
+
* is unknown without downloading, so this assumes a short document; a giant
|
|
297
|
+
* PDF under-counts, but the estimate only steers the compaction heuristic.
|
|
298
|
+
*/
|
|
299
|
+
const APPROX_ATTACHMENT_FILE_TOKENS = 3e3;
|
|
300
|
+
function isUnhydratedAttachment(part) {
|
|
301
|
+
return parseChatAttachmentServePath(part.url) !== null;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Replace unhydrated chat-attachment file parts (relative serve paths) with
|
|
305
|
+
* text placeholders so the messages survive `convertToModelMessages` — the AI
|
|
306
|
+
* SDK's `new URL(part.url)` throws `TypeError: Invalid URL` on relative paths.
|
|
307
|
+
*
|
|
308
|
+
* For estimation and compaction only: the placeholder tells the compaction
|
|
309
|
+
* model an attachment existed, and the real model call hydrates the actual
|
|
310
|
+
* bytes via `hydrateChatAttachmentMessages` instead.
|
|
311
|
+
*/
|
|
312
|
+
function placeholderChatAttachmentMessages(messages) {
|
|
313
|
+
return mapMessageFileParts(messages, (part) => isUnhydratedAttachment(part) ? {
|
|
314
|
+
type: "text",
|
|
315
|
+
text: `[attachment: ${part.filename?.trim() || "file"} (${part.mediaType})]`
|
|
316
|
+
} : part);
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Estimated token cost of the unhydrated attachments in `messages`, to add on
|
|
320
|
+
* top of a char-based serialized estimate (which only sees the placeholder
|
|
321
|
+
* text, not what the attachment will cost once hydrated for the model).
|
|
322
|
+
*/
|
|
323
|
+
function estimateChatAttachmentTokens(messages) {
|
|
324
|
+
let total = 0;
|
|
325
|
+
for (const message of messages) {
|
|
326
|
+
if (!Array.isArray(message.parts)) continue;
|
|
327
|
+
for (const part of message.parts) {
|
|
328
|
+
if (!isFileUIPart(part) || !isUnhydratedAttachment(part)) continue;
|
|
329
|
+
total += part.mediaType.startsWith("image/") ? APPROX_ATTACHMENT_IMAGE_TOKENS : APPROX_ATTACHMENT_FILE_TOKENS;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return total;
|
|
333
|
+
}
|
|
334
|
+
/** Soft compaction trigger as a fraction of the usable input budget. */
|
|
335
|
+
const CONTEXT_COMPACTION_SOFT_RATIO = .9;
|
|
336
|
+
/**
|
|
337
|
+
* Fraction of the soft limit the retained raw tail may occupy after a
|
|
338
|
+
* compaction. The remainder is headroom for the summary, system prompt, and
|
|
339
|
+
* tool schemas.
|
|
340
|
+
*/
|
|
341
|
+
const COMPACTION_TAIL_BUDGET_RATIO = .4;
|
|
342
|
+
/** Floor for reserved output + framing tokens. */
|
|
343
|
+
const MIN_OUTPUT_RESERVE = 4096;
|
|
344
|
+
/** Cap so million-token models are not compacted prematurely. */
|
|
345
|
+
const MAX_OUTPUT_RESERVE = 32768;
|
|
346
|
+
/** Extra framing/tool-schema overhead beyond the output reservation. */
|
|
347
|
+
const SAFETY_RESERVE = 2048;
|
|
348
|
+
/**
|
|
349
|
+
* Conservative fixed chars-per-token ratio. Anchored estimates only apply it
|
|
350
|
+
* to the delta since the last real `input_tokens`, so a systematic error here
|
|
351
|
+
* is bounded by one step's new content, not the whole transcript.
|
|
352
|
+
*/
|
|
353
|
+
const DEFAULT_CHARS_PER_TOKEN = 3.5;
|
|
354
|
+
/**
|
|
355
|
+
* Derive the usable input budget from gateway context metadata.
|
|
356
|
+
* Returns null when the model has no known context window — auto-compaction is disabled.
|
|
357
|
+
*/
|
|
358
|
+
function resolveContextBudget(resolved) {
|
|
359
|
+
const contextWindow = resolved.contextWindow;
|
|
360
|
+
if (contextWindow == null || contextWindow <= 0) return null;
|
|
361
|
+
const catalogMax = resolved.maxOutputTokens;
|
|
362
|
+
const proportional = Math.floor(contextWindow * .05);
|
|
363
|
+
const outputReserve = Math.min(MAX_OUTPUT_RESERVE, Math.max(MIN_OUTPUT_RESERVE, catalogMax ?? proportional, proportional));
|
|
364
|
+
const safetyReserve = Math.min(SAFETY_RESERVE, Math.floor(contextWindow * .01));
|
|
365
|
+
const inputBudget = Math.max(1, contextWindow - outputReserve - safetyReserve);
|
|
366
|
+
return {
|
|
367
|
+
contextWindow,
|
|
368
|
+
outputReserve,
|
|
369
|
+
safetyReserve,
|
|
370
|
+
inputBudget,
|
|
371
|
+
softLimit: Math.floor(inputBudget * CONTEXT_COMPACTION_SOFT_RATIO),
|
|
372
|
+
hardLimit: inputBudget
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
/** Rough serialized size used for preflight estimation (chars ≈ JSON length). */
|
|
376
|
+
function estimateSerializedChars(input) {
|
|
377
|
+
let total = 0;
|
|
378
|
+
if (input.systemPrompt) total += input.systemPrompt.length;
|
|
379
|
+
if (input.messages !== void 0) total += JSON.stringify(input.messages).length;
|
|
380
|
+
if (input.tools !== void 0) total += JSON.stringify(input.tools).length;
|
|
381
|
+
return total;
|
|
382
|
+
}
|
|
383
|
+
const DATA_URL_MEDIA_MIN_CHARS = 4096;
|
|
384
|
+
function approxMediaTokens(mediaType) {
|
|
385
|
+
return typeof mediaType === "string" && mediaType.startsWith("image/") ? APPROX_ATTACHMENT_IMAGE_TOKENS : APPROX_ATTACHMENT_FILE_TOKENS;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Serialized message size with media content measured as flat token estimates
|
|
389
|
+
* instead of chars. Vision/file pricing is tile- or page-based — counting a
|
|
390
|
+
* 4 MB image's ~5.3M base64 chars would estimate ~1.5M tokens for what the
|
|
391
|
+
* provider bills as ~1,100, wrongly triggering compaction on any large image.
|
|
392
|
+
*/
|
|
393
|
+
function measureMessagesForBudget(messages) {
|
|
394
|
+
let mediaTokens = 0;
|
|
395
|
+
return {
|
|
396
|
+
chars: JSON.stringify(messages, (_key, value) => {
|
|
397
|
+
if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {
|
|
398
|
+
mediaTokens += 3e3;
|
|
399
|
+
return "[media]";
|
|
400
|
+
}
|
|
401
|
+
if (typeof value === "object" && value !== null) {
|
|
402
|
+
const part = value;
|
|
403
|
+
if (part.type === "image" && part.image !== void 0) {
|
|
404
|
+
mediaTokens += 1100;
|
|
405
|
+
return {
|
|
406
|
+
type: "image",
|
|
407
|
+
omitted: true
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
if ((part.type === "file" || part.type === "media") && part.data !== void 0) {
|
|
411
|
+
mediaTokens += approxMediaTokens(part.mediaType);
|
|
412
|
+
return {
|
|
413
|
+
type: part.type,
|
|
414
|
+
omitted: true
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
if (part.type === "Buffer" && Array.isArray(part.data)) {
|
|
418
|
+
mediaTokens += 3e3;
|
|
419
|
+
return "[media]";
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
if (typeof value === "string" && value.length >= DATA_URL_MEDIA_MIN_CHARS && value.startsWith("data:")) {
|
|
423
|
+
mediaTokens += value.startsWith("data:image/") ? 1100 : 3e3;
|
|
424
|
+
return "[media]";
|
|
425
|
+
}
|
|
426
|
+
return value;
|
|
427
|
+
})?.length ?? 0,
|
|
428
|
+
mediaTokens
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Per-prompt tracker: anchors on the last real `input_tokens` and estimates
|
|
433
|
+
* only the delta (new content since that request), so estimation error is
|
|
434
|
+
* bounded by one step's new content instead of the whole transcript. Before
|
|
435
|
+
* the first completed step it falls back to a full char scan with media
|
|
436
|
+
* priced at flat token constants.
|
|
437
|
+
*/
|
|
438
|
+
var ContextBudgetTracker = class {
|
|
439
|
+
budget;
|
|
440
|
+
anchor;
|
|
441
|
+
lastMeasure;
|
|
442
|
+
constructor(budget) {
|
|
443
|
+
this.budget = budget;
|
|
444
|
+
}
|
|
445
|
+
get contextBudget() {
|
|
446
|
+
return this.budget;
|
|
447
|
+
}
|
|
448
|
+
get lastInputTokens() {
|
|
449
|
+
return this.anchor?.inputTokens;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Anchor on a completed primary-model step's input token count, paired with
|
|
453
|
+
* the measure taken by the estimate that preceded that request — future
|
|
454
|
+
* estimates price only content added after this point.
|
|
455
|
+
*/
|
|
456
|
+
recordStepUsage(inputTokens) {
|
|
457
|
+
if (inputTokens > 0 && this.lastMeasure) this.anchor = {
|
|
458
|
+
inputTokens,
|
|
459
|
+
...this.lastMeasure
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
/** Reset after a successful compaction: the transcript the anchor priced no longer exists. */
|
|
463
|
+
resetAfterCompaction() {
|
|
464
|
+
this.anchor = void 0;
|
|
465
|
+
this.lastMeasure = void 0;
|
|
466
|
+
}
|
|
467
|
+
estimate(input) {
|
|
468
|
+
if (!this.budget) return null;
|
|
469
|
+
const measure = measureMessagesForBudget(input.messages);
|
|
470
|
+
const overheadChars = input.overheadChars ?? estimateSerializedChars({
|
|
471
|
+
systemPrompt: input.systemPrompt,
|
|
472
|
+
tools: input.tools
|
|
473
|
+
});
|
|
474
|
+
const mediaTokens = measure.mediaTokens + (input.extraMessageTokens ?? 0);
|
|
475
|
+
this.lastMeasure = {
|
|
476
|
+
chars: measure.chars,
|
|
477
|
+
mediaTokens
|
|
478
|
+
};
|
|
479
|
+
const toTokens = (chars) => Math.ceil(chars / DEFAULT_CHARS_PER_TOKEN);
|
|
480
|
+
let estimatedInputTokens;
|
|
481
|
+
let estimatedMessageTokens;
|
|
482
|
+
if (this.anchor) {
|
|
483
|
+
const deltaTokens = toTokens(Math.max(0, measure.chars - this.anchor.chars)) + Math.max(0, mediaTokens - this.anchor.mediaTokens);
|
|
484
|
+
estimatedInputTokens = this.anchor.inputTokens + deltaTokens;
|
|
485
|
+
estimatedMessageTokens = Math.max(deltaTokens, estimatedInputTokens - toTokens(overheadChars));
|
|
486
|
+
} else {
|
|
487
|
+
estimatedInputTokens = toTokens(overheadChars + measure.chars) + mediaTokens;
|
|
488
|
+
estimatedMessageTokens = toTokens(measure.chars) + mediaTokens;
|
|
489
|
+
}
|
|
490
|
+
const decision = estimatedInputTokens >= this.budget.softLimit && estimatedMessageTokens > Math.floor(this.budget.softLimit * .5) ? "compact" : "allow";
|
|
491
|
+
return {
|
|
492
|
+
estimatedInputTokens,
|
|
493
|
+
estimatedMessageTokens,
|
|
494
|
+
decision,
|
|
495
|
+
budget: this.budget
|
|
496
|
+
};
|
|
497
|
+
}
|
|
498
|
+
};
|
|
499
|
+
/**
|
|
500
|
+
* Key source from the platform LLM proxy's response header. Undefined when the
|
|
501
|
+
* request didn't go through the proxy (standalone / direct provider).
|
|
502
|
+
*/
|
|
503
|
+
function byokFromResponseHeaders(headers) {
|
|
504
|
+
const value = headers?.[LLM_KEY_SOURCE_HEADER];
|
|
505
|
+
if (value === "byok") return true;
|
|
506
|
+
if (value === "platform") return false;
|
|
507
|
+
}
|
|
508
|
+
function llmUsageFromLanguageModelUsage(usage, resolved, options) {
|
|
509
|
+
const input = usage.inputTokens ?? 0;
|
|
510
|
+
const output = usage.outputTokens ?? 0;
|
|
511
|
+
const reasoning = usage.outputTokenDetails.reasoningTokens ?? 0;
|
|
512
|
+
const cacheRead = usage.inputTokenDetails.cacheReadTokens ?? 0;
|
|
513
|
+
const cacheWrite = usage.inputTokenDetails.cacheWriteTokens ?? 0;
|
|
514
|
+
const noCache = usage.inputTokenDetails.noCacheTokens ?? Math.max(0, input - cacheRead - cacheWrite);
|
|
515
|
+
const totalTokens = usage.totalTokens ?? input + output;
|
|
516
|
+
const pricing = resolved.pricing;
|
|
517
|
+
const inputCost = pricing ? noCache / 1e6 * pricing.inputPerMillion : 0;
|
|
518
|
+
const outputCost = pricing ? output / 1e6 * pricing.outputPerMillion : 0;
|
|
519
|
+
const cacheReadCost = pricing ? cacheRead / 1e6 * pricing.cacheReadPerMillion : 0;
|
|
520
|
+
const cacheWriteCost = pricing ? cacheWrite / 1e6 * pricing.cacheWritePerMillion : 0;
|
|
521
|
+
const total = inputCost + outputCost + cacheReadCost + cacheWriteCost;
|
|
522
|
+
const { directId } = splitAgentModelId(resolved.modelId);
|
|
523
|
+
return {
|
|
524
|
+
label: resolved.modelId,
|
|
525
|
+
quantity: totalTokens,
|
|
526
|
+
amount: total,
|
|
527
|
+
...options?.byok !== void 0 ? { byok: options.byok } : {},
|
|
528
|
+
...options?.stepRef ? { stepRef: options.stepRef } : {},
|
|
529
|
+
metadata: {
|
|
530
|
+
provider: resolved.provider,
|
|
531
|
+
model: directId,
|
|
532
|
+
...options?.byok !== void 0 ? { keySource: options.byok ? "byok" : "platform" } : {},
|
|
533
|
+
responseModel: resolved.modelId,
|
|
534
|
+
input,
|
|
535
|
+
noCache,
|
|
536
|
+
output,
|
|
537
|
+
reasoning,
|
|
538
|
+
cacheRead,
|
|
539
|
+
cacheWrite,
|
|
540
|
+
cost: {
|
|
541
|
+
noCache: inputCost,
|
|
542
|
+
output: outputCost,
|
|
543
|
+
cacheRead: cacheReadCost,
|
|
544
|
+
cacheWrite: cacheWriteCost,
|
|
545
|
+
total
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
};
|
|
549
|
+
}
|
|
550
|
+
/** Soft char budget for one compaction-model request (chunk recursively above this). */
|
|
551
|
+
const COMPACTION_CHUNK_CHARS = 12e4;
|
|
552
|
+
function resolveCompactionModelId(explicit) {
|
|
553
|
+
return explicit ?? "deepseek/deepseek-v4-flash";
|
|
554
|
+
}
|
|
555
|
+
const COMPACTION_SYSTEM_PROMPT = [
|
|
556
|
+
"You compress long agent conversation history into a compact context summary.",
|
|
557
|
+
"Preserve durable facts, decisions, IDs, file paths, unresolved tasks, and recent tool outcomes.",
|
|
558
|
+
"Omit chit-chat, repeated tool dumps, and superseded drafts.",
|
|
559
|
+
"Write plain prose the primary agent can continue from. Do not call tools.",
|
|
560
|
+
"Respond with ONLY the summary text."
|
|
561
|
+
].join("\n");
|
|
562
|
+
function messageTextPreview(message) {
|
|
563
|
+
if (typeof message.content === "string") return message.content;
|
|
564
|
+
if (!Array.isArray(message.content)) return JSON.stringify(message.content);
|
|
565
|
+
return message.content.map((part) => {
|
|
566
|
+
if (typeof part === "object" && part !== null && "type" in part) {
|
|
567
|
+
if (part.type === "text" && "text" in part) return String(part.text);
|
|
568
|
+
if (part.type === "tool-call") return `[tool-call ${part.toolName ?? "unknown"}]`;
|
|
569
|
+
if (part.type === "tool-result") return `[tool-result ${part.toolName ?? "unknown"}]`;
|
|
570
|
+
}
|
|
571
|
+
return JSON.stringify(part);
|
|
572
|
+
}).join("\n");
|
|
573
|
+
}
|
|
574
|
+
function formatMessagesForCompaction(messages) {
|
|
575
|
+
return messages.map((message, index) => {
|
|
576
|
+
const role = message.role;
|
|
577
|
+
return `### ${index + 1}. ${role}\n${messageTextPreview(message)}`;
|
|
578
|
+
}).join("\n\n");
|
|
579
|
+
}
|
|
580
|
+
/**
|
|
581
|
+
* Split off a recent raw tail. Prefer a user-turn boundary and never start the
|
|
582
|
+
* tail on an orphaned tool result (keeps tool-call / tool-result pairs intact).
|
|
583
|
+
*/
|
|
584
|
+
function splitTail(messages, retain, options) {
|
|
585
|
+
if (messages.length <= retain) return {
|
|
586
|
+
prefix: [],
|
|
587
|
+
tail: messages
|
|
588
|
+
};
|
|
589
|
+
let start = messages.length - retain;
|
|
590
|
+
while (start > 0 && messages[start]?.role === "tool") start -= 1;
|
|
591
|
+
if (options?.preferUserBoundary !== false) while (start > 0 && messages[start]?.role !== "user") start -= 1;
|
|
592
|
+
return {
|
|
593
|
+
prefix: messages.slice(0, start),
|
|
594
|
+
tail: messages.slice(start)
|
|
595
|
+
};
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Fraction of the soft limit the retained raw tail may occupy. Kept below the
|
|
599
|
+
* compaction trigger's messages-only floor so a just-compacted context can't
|
|
600
|
+
* immediately re-trigger (see COMPACTION_MIN_MESSAGE_RATIO).
|
|
601
|
+
*/
|
|
602
|
+
const TAIL_BUDGET_RATIO = COMPACTION_TAIL_BUDGET_RATIO;
|
|
603
|
+
/**
|
|
604
|
+
* Token allowance for the summary itself: capped at the summarizer's
|
|
605
|
+
* maxOutputTokens, scaled down for small budgets (summaries track content
|
|
606
|
+
* size, not the cap).
|
|
607
|
+
*/
|
|
608
|
+
function summaryReserveTokens(softLimit) {
|
|
609
|
+
return Math.min(4096, Math.ceil(softLimit * .1));
|
|
610
|
+
}
|
|
611
|
+
/**
|
|
612
|
+
* Choose which messages to summarize vs keep raw. Starts from the requested
|
|
613
|
+
* retained tail, then shrinks it while it exceeds the tail budget — down to
|
|
614
|
+
* zero, so even a single oversized latest message gets summarized instead of
|
|
615
|
+
* staying protected and blowing the context window.
|
|
616
|
+
*/
|
|
617
|
+
function resolveCompactionSplit(options) {
|
|
618
|
+
const { messages, budget } = options;
|
|
619
|
+
let retain = options.retainTail;
|
|
620
|
+
let split = splitTail(messages, retain);
|
|
621
|
+
if (budget) {
|
|
622
|
+
const tailBudget = Math.max(1, Math.min(Math.floor(budget.softLimit * TAIL_BUDGET_RATIO), budget.softLimit - (options.overheadTokens ?? 0) - summaryReserveTokens(budget.softLimit)));
|
|
623
|
+
while (split.tail.length > 0 && estimateSerializedCharsApprox(split.tail) > tailBudget) {
|
|
624
|
+
retain = Math.min(retain - 1, split.tail.length - 1);
|
|
625
|
+
if (retain <= 0) {
|
|
626
|
+
split = {
|
|
627
|
+
prefix: messages,
|
|
628
|
+
tail: []
|
|
629
|
+
};
|
|
630
|
+
break;
|
|
631
|
+
}
|
|
632
|
+
split = splitTail(messages, retain, { preferUserBoundary: false });
|
|
633
|
+
}
|
|
634
|
+
return split;
|
|
635
|
+
}
|
|
636
|
+
if (split.prefix.length === 0 && !options.hasPriorSummary && split.tail.length > 0) return {
|
|
637
|
+
prefix: messages,
|
|
638
|
+
tail: []
|
|
639
|
+
};
|
|
640
|
+
return split;
|
|
641
|
+
}
|
|
642
|
+
async function summarizeChunk(resolved, text, priorSummary) {
|
|
643
|
+
const prompt = [
|
|
644
|
+
priorSummary ? `Prior summary:\n${priorSummary}\n` : "",
|
|
645
|
+
"Conversation to compress:\n",
|
|
646
|
+
text
|
|
647
|
+
].filter(Boolean).join("\n");
|
|
648
|
+
const result = await generateText({
|
|
649
|
+
model: resolved.languageModel,
|
|
650
|
+
system: COMPACTION_SYSTEM_PROMPT,
|
|
651
|
+
prompt,
|
|
652
|
+
maxOutputTokens: 4096,
|
|
653
|
+
reasoning: "minimal"
|
|
654
|
+
});
|
|
655
|
+
const usage = llmUsageFromLanguageModelUsage(result.usage, resolved, {
|
|
656
|
+
byok: byokFromResponseHeaders(result.response?.headers),
|
|
657
|
+
stepRef: `compaction:${generateId()}`
|
|
658
|
+
});
|
|
659
|
+
usage.label = `LLM compaction · ${resolved.modelId}`;
|
|
660
|
+
usage.metadata = {
|
|
661
|
+
...usage.metadata,
|
|
662
|
+
operation: "context_compaction"
|
|
663
|
+
};
|
|
664
|
+
return {
|
|
665
|
+
summary: result.text.trim() || priorSummary || "(empty summary)",
|
|
666
|
+
usage
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
async function summarizeMessages(resolved, messages, priorSummary) {
|
|
670
|
+
const formatted = formatMessagesForCompaction(messages);
|
|
671
|
+
if (formatted.length <= COMPACTION_CHUNK_CHARS) {
|
|
672
|
+
const chunk = await summarizeChunk(resolved, priorSummary ? `${priorSummary}\n\n${formatted}` : formatted, void 0);
|
|
673
|
+
return {
|
|
674
|
+
summary: chunk.summary,
|
|
675
|
+
usages: [chunk.usage]
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
const usages = [];
|
|
679
|
+
let rolling = priorSummary;
|
|
680
|
+
let offset = 0;
|
|
681
|
+
while (offset < formatted.length) {
|
|
682
|
+
const chunk = await summarizeChunk(resolved, formatted.slice(offset, offset + COMPACTION_CHUNK_CHARS), rolling);
|
|
683
|
+
usages.push(chunk.usage);
|
|
684
|
+
rolling = chunk.summary;
|
|
685
|
+
offset += COMPACTION_CHUNK_CHARS;
|
|
686
|
+
}
|
|
687
|
+
return {
|
|
688
|
+
summary: rolling ?? "(empty summary)",
|
|
689
|
+
usages
|
|
690
|
+
};
|
|
691
|
+
}
|
|
692
|
+
function summaryToModelMessage(summary) {
|
|
693
|
+
return {
|
|
694
|
+
role: "user",
|
|
695
|
+
content: [
|
|
696
|
+
"Context summary from earlier in this session (older messages were compacted):",
|
|
697
|
+
"",
|
|
698
|
+
summary
|
|
699
|
+
].join("\n")
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
function summaryToUiMessage(summary) {
|
|
703
|
+
return {
|
|
704
|
+
id: generateId(),
|
|
705
|
+
role: "user",
|
|
706
|
+
parts: [{
|
|
707
|
+
type: "text",
|
|
708
|
+
text: [
|
|
709
|
+
"Context summary from earlier in this session (older messages were compacted):",
|
|
710
|
+
"",
|
|
711
|
+
summary
|
|
712
|
+
].join("\n")
|
|
713
|
+
}]
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Compact model messages with the compaction model. Retains a recent raw tail.
|
|
718
|
+
* Caller supplies `compactedThroughSeq` for durable checkpoints (message event seq).
|
|
719
|
+
*/
|
|
720
|
+
async function compactModelMessages(options) {
|
|
721
|
+
const retain = options.retainTail ?? 4;
|
|
722
|
+
const { prefix, tail } = resolveCompactionSplit({
|
|
723
|
+
messages: options.messages,
|
|
724
|
+
retainTail: retain,
|
|
725
|
+
budget: options.budget ?? null,
|
|
726
|
+
hasPriorSummary: Boolean(options.priorSummary),
|
|
727
|
+
...options.overheadTokens !== void 0 ? { overheadTokens: options.overheadTokens } : {}
|
|
728
|
+
});
|
|
729
|
+
if (prefix.length === 0 && !options.priorSummary) throw new Error("Nothing to compact");
|
|
730
|
+
const compactedThroughSeq = typeof options.compactedThroughSeq === "function" ? options.compactedThroughSeq(prefix.length) : options.compactedThroughSeq;
|
|
731
|
+
const resolved = await resolveAgentModel(options.compactionModelId);
|
|
732
|
+
const { summary, usages } = await summarizeMessages(resolved, prefix.length > 0 ? prefix : [], options.priorSummary);
|
|
733
|
+
const primary = usages[0];
|
|
734
|
+
let quantity = 0;
|
|
735
|
+
let amount = 0;
|
|
736
|
+
let summaryInputTokens = 0;
|
|
737
|
+
let summaryOutputTokens = 0;
|
|
738
|
+
for (const usage of usages) {
|
|
739
|
+
quantity += usage.quantity;
|
|
740
|
+
amount += usage.amount;
|
|
741
|
+
if (typeof usage.metadata.input === "number") summaryInputTokens += usage.metadata.input;
|
|
742
|
+
if (typeof usage.metadata.output === "number") summaryOutputTokens += usage.metadata.output;
|
|
743
|
+
}
|
|
744
|
+
const usage = {
|
|
745
|
+
...primary,
|
|
746
|
+
quantity,
|
|
747
|
+
amount,
|
|
748
|
+
label: `LLM compaction · ${resolved.modelId}`,
|
|
749
|
+
metadata: {
|
|
750
|
+
...primary.metadata,
|
|
751
|
+
operation: "context_compaction",
|
|
752
|
+
sourceModel: options.sourceModel,
|
|
753
|
+
compactedThroughSeq,
|
|
754
|
+
durable: options.durable,
|
|
755
|
+
compactionChunks: usages.length,
|
|
756
|
+
input: summaryInputTokens || primary.metadata.input,
|
|
757
|
+
output: summaryOutputTokens || primary.metadata.output,
|
|
758
|
+
cost: {
|
|
759
|
+
...primary.metadata.cost ?? {},
|
|
760
|
+
total: amount
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
};
|
|
764
|
+
const checkpoint = {
|
|
765
|
+
compactedThroughSeq,
|
|
766
|
+
summary,
|
|
767
|
+
compactionModel: resolved.modelId,
|
|
768
|
+
sourceModel: options.sourceModel,
|
|
769
|
+
durable: options.durable,
|
|
770
|
+
...options.estimatedBeforeTokens !== void 0 ? { estimatedBeforeTokens: options.estimatedBeforeTokens } : {},
|
|
771
|
+
...options.actualBeforeTokens !== void 0 ? { actualBeforeTokens: options.actualBeforeTokens } : {},
|
|
772
|
+
retainedTailEstimate: estimateSerializedCharsApprox(tail),
|
|
773
|
+
summaryInputTokens: summaryInputTokens > 0 ? summaryInputTokens : void 0,
|
|
774
|
+
summaryOutputTokens: summaryOutputTokens > 0 ? summaryOutputTokens : void 0,
|
|
775
|
+
...options.budget ? {
|
|
776
|
+
contextWindow: options.budget.contextWindow,
|
|
777
|
+
softLimit: options.budget.softLimit
|
|
778
|
+
} : {},
|
|
779
|
+
...options.promptId !== void 0 ? { promptId: options.promptId } : {}
|
|
780
|
+
};
|
|
781
|
+
return {
|
|
782
|
+
messages: [summaryToModelMessage(summary), ...tail],
|
|
783
|
+
checkpoint,
|
|
784
|
+
usage
|
|
785
|
+
};
|
|
786
|
+
}
|
|
787
|
+
function estimateSerializedCharsApprox(messages) {
|
|
788
|
+
return Math.ceil(JSON.stringify(messages).length / 4);
|
|
789
|
+
}
|
|
790
|
+
/**
|
|
791
|
+
* Rebuild model-facing UI messages from a durable checkpoint + newer transcript.
|
|
792
|
+
* The full transcript is unchanged; this only shapes what the model sees.
|
|
793
|
+
*/
|
|
794
|
+
function rebuildMessagesFromCheckpoint(options) {
|
|
795
|
+
const { checkpoint, messageEvents } = options;
|
|
796
|
+
if (!checkpoint || !checkpoint.durable) return messageEvents.map((event) => event.message);
|
|
797
|
+
const suffix = messageEvents.filter((event) => event.seq > checkpoint.compactedThroughSeq).map((event) => event.message);
|
|
798
|
+
return [summaryToUiMessage(checkpoint.summary), ...suffix];
|
|
799
|
+
}
|
|
800
|
+
/** Parse a durable checkpoint from a persisted agent event payload. */
|
|
801
|
+
function parseContextCompactionCheckpoint(payload) {
|
|
802
|
+
if (typeof payload !== "object" || payload === null) return null;
|
|
803
|
+
const record = payload;
|
|
804
|
+
const checkpoint = record.type === "context_compacted" && typeof record.checkpoint === "object" && record.checkpoint !== null ? record.checkpoint : record;
|
|
805
|
+
if (typeof checkpoint.compactedThroughSeq !== "number" || typeof checkpoint.summary !== "string" || typeof checkpoint.compactionModel !== "string" || typeof checkpoint.sourceModel !== "string" || typeof checkpoint.durable !== "boolean") return null;
|
|
806
|
+
return checkpoint;
|
|
807
|
+
}
|
|
808
|
+
//#endregion
|
|
809
|
+
export { resolveModelCapabilities as C, withLlmRunContext as E, resolveAgentModel as S, splitAgentModelId as T, DEFAULT_THINKING_LEVEL as _, estimateSerializedChars as a, currentLlmRunContext as b, parseContextCompactionCheckpoint as c, resolveCompactionModelId as d, resolveContextBudget as f, DEFAULT_COMPACTION_MODEL_ID as g, AgentModelIdSchema as h, estimateChatAttachmentTokens as i, placeholderChatAttachmentMessages as l, AgentCreateInputSchema as m, byokFromResponseHeaders as n, llmUsageFromLanguageModelUsage as o, summaryToUiMessage as p, compactModelMessages as r, mapMessageFileParts as s, ContextBudgetTracker as t, rebuildMessagesFromCheckpoint as u, ThinkingLevelSchema as v, resolveThinkingLevel as w, parseAgentCreateInput as x, attachmentPlaceholderText as y };
|
|
810
|
+
|
|
811
|
+
//# sourceMappingURL=context-compaction-Bxp4WK2B-Ct4RSjlg.mjs.map
|