@poe-platform/safe-bash 0.1.799 → 0.1.800
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 +32 -17
- package/dist/image-ast/index.browser.js +1384 -23
- package/dist/image-ast/index.js +1384 -23
- package/dist/mp4-ast/types.d.ts +1 -0
- package/dist/office-package/zip.d.ts +2 -0
- package/dist/office-package/zip.js +1 -1
- package/dist/pdf-ast/index.js +1 -1
- package/dist/safe-bash/chunks/{chunk-IUTD5FH5.js → chunk-46UISJCK.js} +1 -6
- package/dist/safe-bash/chunks/chunk-4SEW2Q6H.js +26 -0
- package/dist/safe-bash/chunks/{chunk-AKC46AF6.js → chunk-7YSRXFEG.js} +7 -40
- package/dist/safe-bash/chunks/{chunk-KTGR4U57.js → chunk-BHJE5LPZ.js} +1 -2
- package/dist/safe-bash/chunks/{chunk-TRVGCN3U.js → chunk-HHW7MGS2.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-ZNAFMYIA.js → chunk-I7L3G3NX.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KMH2DF3I.js → chunk-JJSTTIEZ.js} +6 -1
- package/dist/safe-bash/chunks/{chunk-6IBTC4YL.js → chunk-JTLSUJ7V.js} +57 -20
- package/dist/safe-bash/chunks/chunk-K2VCOJ2B.js +111 -0
- package/dist/safe-bash/chunks/chunk-K4YMYFRJ.js +9802 -0
- package/dist/safe-bash/chunks/{chunk-SPYL72GN.js → chunk-KW24TAIU.js} +446 -5519
- package/dist/safe-bash/chunks/{chunk-ENR3HB2B.js → chunk-NLAW7KDI.js} +0 -1
- package/dist/safe-bash/chunks/{chunk-B3DDEDH2.js → chunk-PPYM75Z3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-NX2SQVON.js → chunk-RKKRJ54E.js} +19 -7
- package/dist/safe-bash/chunks/{chunk-WUNK5NXJ.js → chunk-RMWLWH7Q.js} +870 -953
- package/dist/safe-bash/chunks/{chunk-JSVX4VIA.js → chunk-TFGRKY43.js} +2 -1
- package/dist/safe-bash/chunks/{chunk-T5KKDMYB.js → chunk-TYD7EVUJ.js} +6 -0
- package/dist/safe-bash/chunks/{csvkit-W2UEKH6P.js → csvkit-QGP3GAOB.js} +1 -1
- package/dist/safe-bash/chunks/{ffmpeg-42CGASMV.js → ffmpeg-JTVH26MK.js} +1 -1
- package/dist/safe-bash/chunks/{gh-26GYLH6D.js → gh-I7QX7N5C.js} +1 -1
- package/dist/safe-bash/chunks/{git-YREKMUVD.js → git-MA7NKYVP.js} +1 -1
- package/dist/safe-bash/chunks/{imagemagick-3YIX4XO2.js → imagemagick-Y4NPWX2Q.js} +1 -1
- package/dist/safe-bash/chunks/{implementation-E3YMKU3Z.js → implementation-BWDKOVQJ.js} +1 -1
- package/dist/safe-bash/chunks/mmdc-44PELHDG.js +118 -0
- package/dist/safe-bash/chunks/{pdfimages-UE2UISP2.js → pdfimages-635TRW4Q.js} +1 -1
- package/dist/safe-bash/chunks/{pdfinfo-RGARKLI5.js → pdfinfo-FSDAA2KY.js} +3 -11
- package/dist/safe-bash/chunks/{pdftk-JY3WVCCC.js → pdftk-GQ5UH3VG.js} +1 -1
- package/dist/safe-bash/chunks/{pdftoppm-GPD3BMPY.js → pdftoppm-YTXQCAYT.js} +1 -1
- package/dist/safe-bash/chunks/{pdftotext-K7GQ2QJZ.js → pdftotext-CVA2G7FY.js} +1 -1
- package/dist/safe-bash/chunks/{qpdf-F4U7WUSU.js → qpdf-HZMIFG4A.js} +1 -1
- package/dist/safe-bash/chunks/{sips-RWENS7X5.js → sips-E7UBDP33.js} +1 -1
- package/dist/safe-bash/chunks/{soffice-IT6W2C5F.js → soffice-ELASUWUK.js} +1 -1
- package/dist/safe-bash/chunks/{wkhtmltopdf-JYNDAHIZ.js → wkhtmltopdf-EPO6YCMG.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-2FGJYFWZ.js +44 -0
- package/dist/safe-bash/command-chunks/chunk-2H4JTFIL.js +53 -0
- package/dist/safe-bash/command-chunks/{chunk-LLCXZKZ6.js → chunk-2QHG43WJ.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-364TMWBT.js +946 -0
- package/dist/safe-bash/command-chunks/{chunk-EIVW3X3N.js → chunk-3DT2YOGW.js} +11 -6
- package/dist/safe-bash/command-chunks/chunk-3E2OIS2J.js +7037 -0
- package/dist/safe-bash/command-chunks/{chunk-AIRGA2SU.js → chunk-3HXDA5PT.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-3LSOYLNV.js +1091 -0
- package/dist/safe-bash/command-chunks/chunk-4B7Y7S6E.js +61 -0
- package/dist/safe-bash/command-chunks/{chunk-HRLIAMXC.js → chunk-4C6QI5BQ.js} +3 -2
- package/dist/safe-bash/command-chunks/chunk-4ZHMW6F5.js +104 -0
- package/dist/safe-bash/command-chunks/{chunk-4ZALPDBV.js → chunk-53P53XFM.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-5LSGEIZY.js +379 -0
- package/dist/safe-bash/command-chunks/{chunk-MKQVQMXO.js → chunk-5LU4UCBR.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-5T7CRJHW.js +560 -0
- package/dist/safe-bash/command-chunks/chunk-5TBUOBDE.js +346 -0
- package/dist/safe-bash/command-chunks/chunk-5XY4DTNG.js +34 -0
- package/dist/safe-bash/command-chunks/chunk-5ZMZ573Q.js +140 -0
- package/dist/safe-bash/command-chunks/{chunk-OPUJSTHS.js → chunk-67IQF5GC.js} +200 -66
- package/dist/safe-bash/command-chunks/chunk-67QKREJK.js +347 -0
- package/dist/safe-bash/command-chunks/chunk-6EPHJGGF.js +23 -0
- package/dist/safe-bash/command-chunks/chunk-6F4XCVON.js +266 -0
- package/dist/safe-bash/command-chunks/{chunk-ESMCX3YV.js → chunk-6HMX4CQS.js} +669 -130
- package/dist/safe-bash/command-chunks/chunk-7K6JYKPJ.js +422 -0
- package/dist/safe-bash/command-chunks/chunk-7N2LI2KO.js +206 -0
- package/dist/safe-bash/command-chunks/chunk-7RGB363W.js +362 -0
- package/dist/safe-bash/command-chunks/{pptx-GBPNWNEP-7EQEVXV5.js → chunk-AI5JAXQF.js} +34820 -18029
- package/dist/safe-bash/command-chunks/chunk-AMO3THU4.js +105 -0
- package/dist/safe-bash/command-chunks/chunk-BAGCY35S.js +231 -0
- package/dist/safe-bash/command-chunks/chunk-BAXU7B5Z.js +101 -0
- package/dist/safe-bash/command-chunks/{chunk-KMCZ6P4O.js → chunk-BKCNF5U3.js} +68 -7
- package/dist/safe-bash/command-chunks/chunk-BNOU5YQS.js +182 -0
- package/dist/safe-bash/command-chunks/chunk-C7I25AAL.js +25 -0
- package/dist/safe-bash/command-chunks/chunk-CKXV2CLD.js +65 -0
- package/dist/safe-bash/command-chunks/chunk-CQ5YGOGB.js +150 -0
- package/dist/safe-bash/command-chunks/{chunk-I3K5RYU4.js → chunk-D4OP2BR3.js} +72 -24
- package/dist/safe-bash/command-chunks/chunk-DB453IE6.js +122 -0
- package/dist/safe-bash/command-chunks/chunk-DOKKNRRM.js +87 -0
- package/dist/safe-bash/command-chunks/{chunk-2PX5B7T5.js → chunk-DQAVUDDX.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-DT7BCTWY.js +249 -0
- package/dist/safe-bash/command-chunks/chunk-E2LB7FRT.js +42 -0
- package/dist/safe-bash/command-chunks/chunk-EK6YNAXT.js +343 -0
- package/dist/safe-bash/command-chunks/chunk-EQ4HV54N.js +22 -0
- package/dist/safe-bash/command-chunks/chunk-ERYJLO6G.js +293 -0
- package/dist/safe-bash/command-chunks/{chunk-4ONEXMD3.js → chunk-EUSPTFAX.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-FKKB5X5V.js +97 -0
- package/dist/safe-bash/command-chunks/chunk-FXELCPFX.js +195 -0
- package/dist/safe-bash/command-chunks/{chunk-JCNNOMBV.js → chunk-GI4CJED2.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-CU5RLO62.js → chunk-GLOZX57Y.js} +92 -18
- package/dist/safe-bash/command-chunks/chunk-GMIHJYDG.js +331 -0
- package/dist/safe-bash/command-chunks/chunk-H622NS6Z.js +11 -0
- package/dist/safe-bash/command-chunks/{chunk-UI32HWGS.js → chunk-HMOZ6XVJ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AVSPNLWV.js → chunk-I237SNW5.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ZS3QPNUL.js → chunk-IR2BY7EL.js} +21 -6
- package/dist/safe-bash/command-chunks/chunk-IYPAQ7PH.js +42 -0
- package/dist/safe-bash/command-chunks/chunk-JN7WIP6S.js +94 -0
- package/dist/safe-bash/command-chunks/chunk-JNZ3CVAE.js +147 -0
- package/dist/safe-bash/command-chunks/{chunk-HLBX5IRS.js → chunk-JQ74HC37.js} +24 -32
- package/dist/safe-bash/command-chunks/chunk-KFVV7ZJO.js +216 -0
- package/dist/safe-bash/command-chunks/{chunk-G4PNVO6Z.js → chunk-KP7AO66M.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-KWESKQHR.js +25 -0
- package/dist/safe-bash/command-chunks/chunk-KYSPGS33.js +41 -0
- package/dist/safe-bash/command-chunks/{chunk-C7IHMJEW.js → chunk-KZC5UWFF.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-L6DVEBW3.js +553 -0
- package/dist/safe-bash/command-chunks/chunk-LC2MFKT4.js +2489 -0
- package/dist/safe-bash/command-chunks/chunk-LE5LZNHE.js +204 -0
- package/dist/safe-bash/command-chunks/chunk-MDH5T4OS.js +41 -0
- package/dist/safe-bash/command-chunks/chunk-MM6HU6CX.js +20 -0
- package/dist/safe-bash/command-chunks/{chunk-MYJAZ3U2.js → chunk-MPL2466A.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-VZHRZMS7.js → chunk-NAY27PXB.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-NCD7PEWH.js +298 -0
- package/dist/safe-bash/command-chunks/chunk-NFGI5IGF.js +266 -0
- package/dist/safe-bash/command-chunks/{chunk-KVFCSLKK.js → chunk-NXEQ3ESQ.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-3VGGYEDH.js → chunk-ORYGZYKW.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-OLQG7ZCN.js → chunk-PEF7K3UQ.js} +136 -75
- package/dist/safe-bash/command-chunks/chunk-PII4YEZW.js +123 -0
- package/dist/safe-bash/command-chunks/{chunk-43GSSUAY.js → chunk-PJJUYO3R.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-ZT4KSS2V.js → chunk-PTT3I223.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-Q3DII3Q7.js +174 -0
- package/dist/safe-bash/command-chunks/chunk-Q3EWDEUQ.js +185 -0
- package/dist/safe-bash/command-chunks/{chunk-2FUAW6GO.js → chunk-QI7LGHJJ.js} +58 -9
- package/dist/safe-bash/command-chunks/{chunk-6BETHLXZ.js → chunk-QJAFJP2G.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-QNIMV57G.js +63 -0
- package/dist/safe-bash/command-chunks/{chunk-VVI4Z73I.js → chunk-QP4R6GLA.js} +5 -1
- package/dist/safe-bash/command-chunks/{chunk-LPORMIZS.js → chunk-QWIDNAAK.js} +8 -8
- package/dist/safe-bash/command-chunks/chunk-RVLO4DYT.js +35 -0
- package/dist/safe-bash/command-chunks/{chunk-X2YQLGKS.js → chunk-SAMH7SQE.js} +4 -4
- package/dist/safe-bash/command-chunks/chunk-SEM36PG5.js +11 -0
- package/dist/safe-bash/command-chunks/chunk-STC3LEWJ.js +634 -0
- package/dist/safe-bash/command-chunks/chunk-SVULUDOP.js +331 -0
- package/dist/safe-bash/command-chunks/chunk-TEVJJPTC.js +1392 -0
- package/dist/safe-bash/command-chunks/{chunk-ZXKW7SJ2.js → chunk-TYCGMRLM.js} +2 -2
- package/dist/safe-bash/command-chunks/chunk-UG7SMZFF.js +178 -0
- package/dist/safe-bash/command-chunks/{chunk-YZ5SVZFD.js → chunk-UMDIOL3O.js} +3 -3
- package/dist/safe-bash/command-chunks/chunk-UXSR5BZH.js +136 -0
- package/dist/safe-bash/command-chunks/chunk-V6BEDRMQ.js +112 -0
- package/dist/safe-bash/command-chunks/chunk-V6MSPQLA.js +362 -0
- package/dist/safe-bash/command-chunks/{chunk-J4PEQWSF.js → chunk-VGG2DL5Q.js} +0 -1
- package/dist/safe-bash/command-chunks/{chunk-SG424QWS.js → chunk-VL67NWNS.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-WB5SVIG7.js +1034 -0
- package/dist/safe-bash/command-chunks/{src-UJOWAS2S.js → chunk-WD3ERGRY.js} +77 -277
- package/dist/safe-bash/command-chunks/{chunk-YFSDDFGV.js → chunk-WH627NJL.js} +446 -53
- package/dist/safe-bash/command-chunks/chunk-WNE7FPVR.js +236 -0
- package/dist/safe-bash/command-chunks/{chunk-UKS2XJZI.js → chunk-WPYIOKE3.js} +4 -4
- package/dist/safe-bash/command-chunks/chunk-XETLEHZP.js +1227 -0
- package/dist/safe-bash/command-chunks/chunk-XIIBTGC5.js +580 -0
- package/dist/safe-bash/command-chunks/chunk-XJXU3VVH.js +737 -0
- package/dist/safe-bash/command-chunks/chunk-Y5INTD6S.js +220 -0
- package/dist/safe-bash/command-chunks/{chunk-5ZSM4UFN.js → chunk-YGC6OS5O.js} +3 -56
- package/dist/safe-bash/command-chunks/chunk-YJDV76GL.js +262 -0
- package/dist/safe-bash/command-chunks/chunk-YOF7R4OY.js +80 -0
- package/dist/safe-bash/command-chunks/chunk-Z7RVSD5K.js +594 -0
- package/dist/safe-bash/command-chunks/chunk-ZHUWOUWB.js +618 -0
- package/dist/safe-bash/command-chunks/{model-store-L35QTZMJ.js → model-store-WPKMRPV4.js} +2 -2
- package/dist/safe-bash/command-chunks/pptx-7G52EJ6L-4JACH5FB.js +625 -0
- package/dist/safe-bash/command-chunks/python-worker-source-TYOFJMCW.js +4 -0
- package/dist/safe-bash/command-chunks/src-ICMQISAA.js +501 -0
- package/dist/safe-bash/commands/archive/create.d.ts +1 -17
- package/dist/safe-bash/commands/archive/create.js +1 -252
- package/dist/safe-bash/commands/archive/extract.d.ts +1 -11
- package/dist/safe-bash/commands/archive/extract.js +1 -640
- package/dist/safe-bash/commands/archive/format.d.ts +1 -32
- package/dist/safe-bash/commands/archive/format.js +1 -225
- package/dist/safe-bash/commands/archive/index.d.ts +5 -10
- package/dist/safe-bash/commands/archive/index.js +6 -931
- package/dist/safe-bash/commands/archive/listing.d.ts +1 -2
- package/dist/safe-bash/commands/archive/listing.js +1 -21
- package/dist/safe-bash/commands/archive/modes.d.ts +1 -5
- package/dist/safe-bash/commands/archive/modes.js +1 -182
- package/dist/safe-bash/commands/archive/options.d.ts +1 -53
- package/dist/safe-bash/commands/archive/options.js +1 -462
- package/dist/safe-bash/commands/archive/stream.d.ts +1 -22
- package/dist/safe-bash/commands/archive/stream.js +1 -188
- package/dist/safe-bash/commands/archive/transform.d.ts +1 -16
- package/dist/safe-bash/commands/archive/transform.js +1 -85
- package/dist/safe-bash/commands/archive/unzip/arguments.d.ts +1 -53
- package/dist/safe-bash/commands/archive/unzip/arguments.js +1 -322
- package/dist/safe-bash/commands/archive/unzip/safety.d.ts +1 -32
- package/dist/safe-bash/commands/archive/unzip/safety.js +1 -295
- package/dist/safe-bash/commands/archive/unzip.d.ts +1 -3
- package/dist/safe-bash/commands/archive/unzip.js +1 -398
- package/dist/safe-bash/commands/archive/zip/aes.d.ts +1 -17
- package/dist/safe-bash/commands/archive/zip/aes.js +1 -156
- package/dist/safe-bash/commands/archive/zip/comments.d.ts +1 -17
- package/dist/safe-bash/commands/archive/zip/comments.js +1 -83
- package/dist/safe-bash/commands/archive/zip/crc.d.ts +1 -1
- package/dist/safe-bash/commands/archive/zip/crc.js +1 -1
- package/dist/safe-bash/commands/archive/zip/crypto.d.ts +1 -19
- package/dist/safe-bash/commands/archive/zip/crypto.js +1 -118
- package/dist/safe-bash/commands/archive/zip/dates.d.ts +1 -4
- package/dist/safe-bash/commands/archive/zip/dates.js +1 -66
- package/dist/safe-bash/commands/archive/zip/environment.d.ts +1 -2
- package/dist/safe-bash/commands/archive/zip/environment.js +1 -62
- package/dist/safe-bash/commands/archive/zip/grow.d.ts +1 -3
- package/dist/safe-bash/commands/archive/zip/grow.js +1 -2
- package/dist/safe-bash/commands/archive/zip/help.d.ts +1 -4
- package/dist/safe-bash/commands/archive/zip/help.js +1 -182
- package/dist/safe-bash/commands/archive/zip/line-endings.d.ts +1 -2
- package/dist/safe-bash/commands/archive/zip/line-endings.js +1 -194
- package/dist/safe-bash/commands/archive/zip/log.d.ts +1 -22
- package/dist/safe-bash/commands/archive/zip/log.js +1 -159
- package/dist/safe-bash/commands/archive/zip/lzma.d.ts +1 -9
- package/dist/safe-bash/commands/archive/zip/lzma.js +1 -40
- package/dist/safe-bash/commands/archive/zip/move.d.ts +1 -11
- package/dist/safe-bash/commands/archive/zip/move.js +1 -59
- package/dist/safe-bash/commands/archive/zip/names.d.ts +1 -2
- package/dist/safe-bash/commands/archive/zip/names.js +1 -33
- package/dist/safe-bash/commands/archive/zip/options.d.ts +1 -13
- package/dist/safe-bash/commands/archive/zip/options.js +1 -124
- package/dist/safe-bash/commands/archive/zip/repair.d.ts +1 -10
- package/dist/safe-bash/commands/archive/zip/repair.js +1 -392
- package/dist/safe-bash/commands/archive/zip/safety.d.ts +1 -54
- package/dist/safe-bash/commands/archive/zip/safety.js +1 -360
- package/dist/safe-bash/commands/archive/zip/sfx.d.ts +1 -4
- package/dist/safe-bash/commands/archive/zip/sfx.js +1 -52
- package/dist/safe-bash/commands/archive/zip/test-command.d.ts +1 -5
- package/dist/safe-bash/commands/archive/zip/test-command.js +1 -101
- package/dist/safe-bash/commands/archive/zip/volumes.d.ts +1 -21
- package/dist/safe-bash/commands/archive/zip/volumes.js +1 -281
- package/dist/safe-bash/commands/archive/zip/zip64.d.ts +1 -30
- package/dist/safe-bash/commands/archive/zip/zip64.js +1 -227
- package/dist/safe-bash/commands/archive/zip-format.d.ts +1 -68
- package/dist/safe-bash/commands/archive/zip-format.js +1 -1075
- package/dist/safe-bash/commands/archive/zip.d.ts +1 -3
- package/dist/safe-bash/commands/archive/zip.js +1 -1523
- package/dist/safe-bash/commands/awk/index.d.ts +2 -0
- package/dist/safe-bash/commands/awk/index.js +2 -0
- package/dist/safe-bash/commands/bytes/compression/index.js +2 -1
- package/dist/safe-bash/commands/curl/index.d.ts +2 -0
- package/dist/safe-bash/commands/curl/index.js +2 -0
- package/dist/safe-bash/commands/diff/index.d.ts +2 -0
- package/dist/safe-bash/commands/diff/index.js +2 -0
- package/dist/safe-bash/commands/diff-patch/diff-format.d.ts +1 -10
- package/dist/safe-bash/commands/diff-patch/diff-format.js +1 -237
- package/dist/safe-bash/commands/diff-patch/diff-options.d.ts +1 -38
- package/dist/safe-bash/commands/diff-patch/diff-options.js +1 -261
- package/dist/safe-bash/commands/diff-patch/diff-output.d.ts +1 -20
- package/dist/safe-bash/commands/diff-patch/diff-output.js +1 -290
- package/dist/safe-bash/commands/diff-patch/diff.d.ts +1 -2
- package/dist/safe-bash/commands/diff-patch/diff.js +1 -656
- package/dist/safe-bash/commands/diff-patch/index.d.ts +4 -5
- package/dist/safe-bash/commands/diff-patch/index.js +8 -333
- package/dist/safe-bash/commands/diff-patch/patch-envelope.d.ts +1 -2
- package/dist/safe-bash/commands/diff-patch/patch-envelope.js +1 -63
- package/dist/safe-bash/commands/diff-patch/patch-formats.d.ts +1 -7
- package/dist/safe-bash/commands/diff-patch/patch-formats.js +1 -264
- package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.d.ts +1 -41
- package/dist/safe-bash/commands/diff-patch/patch-gnu-paths.js +1 -263
- package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.d.ts +1 -3
- package/dist/safe-bash/commands/diff-patch/patch-gnu-reject.js +1 -100
- package/dist/safe-bash/commands/diff-patch/patch-path.d.ts +1 -3
- package/dist/safe-bash/commands/diff-patch/patch-path.js +1 -91
- package/dist/safe-bash/commands/diff-patch/patch-publication.d.ts +1 -13
- package/dist/safe-bash/commands/diff-patch/patch-publication.js +1 -107
- package/dist/safe-bash/commands/diff-patch/patch.d.ts +1 -2
- package/dist/safe-bash/commands/diff-patch/patch.js +1 -653
- package/dist/safe-bash/commands/diff-patch/shared.d.ts +1 -53
- package/dist/safe-bash/commands/diff-patch/shared.js +1 -267
- package/dist/safe-bash/commands/diff-patch/unified.d.ts +1 -52
- package/dist/safe-bash/commands/diff-patch/unified.js +1 -385
- package/dist/safe-bash/commands/directory-admission.d.ts +1 -3
- package/dist/safe-bash/commands/directory-admission.js +1 -26
- package/dist/safe-bash/commands/find/index.d.ts +2 -0
- package/dist/safe-bash/commands/find/index.js +2 -0
- package/dist/safe-bash/commands/find-format.d.ts +1 -20
- package/dist/safe-bash/commands/find-format.js +1 -161
- package/dist/safe-bash/commands/find.d.ts +2 -18
- package/dist/safe-bash/commands/find.js +2 -1236
- package/dist/safe-bash/commands/gzip/index.d.ts +2 -0
- package/dist/safe-bash/commands/gzip/index.js +2 -0
- package/dist/safe-bash/commands/line-endings/index.browser.js +1 -1
- package/dist/safe-bash/commands/line-endings/index.d.ts +1 -1
- package/dist/safe-bash/commands/line-endings/index.js +1 -262
- package/dist/safe-bash/commands/llm/index.browser.js +3 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +2 -2
- package/dist/safe-bash/commands/metadata/chmod.d.ts +1 -4
- package/dist/safe-bash/commands/metadata/chmod.js +2 -63
- package/dist/safe-bash/commands/network/aggregate.d.ts +1 -4
- package/dist/safe-bash/commands/network/aggregate.js +1 -23
- package/dist/safe-bash/commands/network/args.d.ts +1 -68
- package/dist/safe-bash/commands/network/args.js +1 -321
- package/dist/safe-bash/commands/network/authorizer.d.ts +1 -6
- package/dist/safe-bash/commands/network/authorizer.js +1 -33
- package/dist/safe-bash/commands/network/body.d.ts +1 -9
- package/dist/safe-bash/commands/network/body.js +1 -393
- package/dist/safe-bash/commands/network/curl.d.ts +3 -13
- package/dist/safe-bash/commands/network/curl.js +6 -693
- package/dist/safe-bash/commands/network/deadline.d.ts +1 -2
- package/dist/safe-bash/commands/network/deadline.js +1 -14
- package/dist/safe-bash/commands/network/decode.d.ts +1 -2
- package/dist/safe-bash/commands/network/decode.js +1 -79
- package/dist/safe-bash/commands/network/fetch-transport.d.ts +1 -7
- package/dist/safe-bash/commands/network/fetch-transport.js +1 -94
- package/dist/safe-bash/commands/network/form-content-type.d.ts +1 -5
- package/dist/safe-bash/commands/network/form-content-type.js +1 -63
- package/dist/safe-bash/commands/network/form-headers.d.ts +1 -2
- package/dist/safe-bash/commands/network/form-headers.js +1 -35
- package/dist/safe-bash/commands/network/glob.d.ts +1 -7
- package/dist/safe-bash/commands/network/glob.js +1 -134
- package/dist/safe-bash/commands/network/index.browser.js +2 -10
- package/dist/safe-bash/commands/network/input.d.ts +1 -5
- package/dist/safe-bash/commands/network/input.js +1 -276
- package/dist/safe-bash/commands/network/output.d.ts +1 -6
- package/dist/safe-bash/commands/network/output.js +1 -131
- package/dist/safe-bash/commands/network/private-address.d.ts +1 -1
- package/dist/safe-bash/commands/network/private-address.js +1 -44
- package/dist/safe-bash/commands/network/shared.d.ts +1 -14
- package/dist/safe-bash/commands/network/shared.js +1 -71
- package/dist/safe-bash/commands/network/types.d.ts +1 -37
- package/dist/safe-bash/commands/network/types.js +1 -31
- package/dist/safe-bash/commands/network/url.d.ts +1 -2
- package/dist/safe-bash/commands/network/url.js +1 -30
- package/dist/safe-bash/commands/network/wget.d.ts +3 -3
- package/dist/safe-bash/commands/network/wget.js +10 -331
- package/dist/safe-bash/commands/node/index.browser.js +4 -5
- package/dist/safe-bash/commands/node/index.d.ts +3 -3
- package/dist/safe-bash/commands/node/index.js +5 -0
- package/dist/safe-bash/commands/node/safejs.d.ts +3 -3
- package/dist/safe-bash/commands/node/safejs.js +6 -1
- package/dist/safe-bash/commands/node/types.d.ts +1 -1
- package/dist/safe-bash/commands/node/unconfigured.d.ts +3 -0
- package/dist/safe-bash/commands/node/unconfigured.js +10 -0
- package/dist/safe-bash/commands/op/index.browser.js +2 -2
- package/dist/safe-bash/commands/patch/index.d.ts +2 -0
- package/dist/safe-bash/commands/patch/index.js +2 -0
- package/dist/safe-bash/commands/pdfinfo/index.js +2 -1
- package/dist/safe-bash/commands/predicates.js +3 -4
- package/dist/safe-bash/commands/python/index.browser.js +5 -5
- package/dist/safe-bash/commands/python/llm-capability.d.ts +1 -0
- package/dist/safe-bash/commands/python/llm-capability.js +27 -7
- package/dist/safe-bash/commands/python/llm-module.js +11 -0
- package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
- package/dist/safe-bash/commands/python/manifest.js +9 -5
- package/dist/safe-bash/commands/python/provisioning.js +1 -1
- package/dist/safe-bash/commands/regex-execution/matching.js +1 -2
- package/dist/safe-bash/commands/regex-execution/public.browser.js +5 -5
- package/dist/safe-bash/commands/search/index.d.ts +1 -1
- package/dist/safe-bash/commands/search/index.js +1 -347
- package/dist/safe-bash/commands/search/portable.d.ts +2 -2
- package/dist/safe-bash/commands/search/portable.js +3 -2
- package/dist/safe-bash/commands/sed/index.d.ts +2 -0
- package/dist/safe-bash/commands/sed/index.js +2 -0
- package/dist/safe-bash/commands/tar/index.d.ts +2 -0
- package/dist/safe-bash/commands/tar/index.js +2 -0
- package/dist/safe-bash/commands/text-programs/awk-inspection.d.ts +1 -19
- package/dist/safe-bash/commands/text-programs/awk-inspection.js +1 -50
- package/dist/safe-bash/commands/text-programs/awk-pipes.d.ts +2 -0
- package/dist/safe-bash/commands/text-programs/awk-pipes.js +2 -0
- package/dist/safe-bash/commands/text-programs/awk-pretty.d.ts +1 -3
- package/dist/safe-bash/commands/text-programs/awk-pretty.js +1 -197
- package/dist/safe-bash/commands/text-programs/awk-quote.d.ts +1 -2
- package/dist/safe-bash/commands/text-programs/awk-quote.js +1 -15
- package/dist/safe-bash/commands/text-programs/awk-reader.d.ts +1 -42
- package/dist/safe-bash/commands/text-programs/awk-reader.js +1 -449
- package/dist/safe-bash/commands/text-programs/awk-retention.d.ts +1 -13
- package/dist/safe-bash/commands/text-programs/awk-retention.js +1 -51
- package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts +1 -150
- package/dist/safe-bash/commands/text-programs/awk-runtime.js +1 -2627
- package/dist/safe-bash/commands/text-programs/awk-syntax.d.ts +1 -142
- package/dist/safe-bash/commands/text-programs/awk-syntax.js +1 -509
- package/dist/safe-bash/commands/text-programs/awk-values.d.ts +1 -32
- package/dist/safe-bash/commands/text-programs/awk-values.js +1 -386
- package/dist/safe-bash/commands/text-programs/awk.d.ts +1 -3
- package/dist/safe-bash/commands/text-programs/awk.js +1 -361
- package/dist/safe-bash/commands/text-programs/inplace.d.ts +1 -16
- package/dist/safe-bash/commands/text-programs/inplace.js +1 -155
- package/dist/safe-bash/commands/text-programs/sed.d.ts +1 -3
- package/dist/safe-bash/commands/text-programs/sed.js +1 -1647
- package/dist/safe-bash/commands/unzip/index.d.ts +2 -0
- package/dist/safe-bash/commands/unzip/index.js +2 -0
- package/dist/safe-bash/commands/wget/index.d.ts +2 -0
- package/dist/safe-bash/commands/wget/index.js +2 -0
- package/dist/safe-bash/commands/yq/index.browser.js +7 -2
- package/dist/safe-bash/commands/yq/index.d.ts +1 -6
- package/dist/safe-bash/commands/yq/index.js +1 -36
- package/dist/safe-bash/commands/zip/index.d.ts +2 -0
- package/dist/safe-bash/commands/zip/index.js +2 -0
- package/dist/safe-bash/core.browser.js +1 -1
- package/dist/safe-bash/core.d.ts +8 -1
- package/dist/safe-bash/core.js +7 -1
- package/dist/safe-bash/fs/s3/index.d.ts +2 -2
- package/dist/safe-bash/fs/s3/index.js +1 -1
- package/dist/safe-bash/full-core.browser.js +254 -223
- package/dist/safe-bash/jobs.browser.js +2 -2
- package/dist/safe-bash/lazy-mmdc.d.ts +6 -0
- package/dist/safe-bash/lazy-mmdc.js +23 -0
- package/dist/safe-bash/opt-in/commands/yq/mike.js +6 -13
- package/dist/safe-bash/opt-in/commands/yq/native-work.d.ts +1 -0
- package/dist/safe-bash/opt-in/commands/yq/native-work.js +17 -0
- package/dist/safe-bash/optional-host.browser.js +8 -4
- package/dist/safe-bash/optional-host.d.ts +1 -1
- package/dist/safe-bash/optional-host.js +1 -1
- package/dist/safe-bash/playwright/ability-execution.js +3 -2
- package/dist/safe-bash/playwright/adapter.js +1 -1
- package/dist/safe-bash/playwright/controller.js +9 -8
- package/dist/safe-bash/playwright/modal-capabilities.js +2 -1
- package/dist/safe-bash/playwright/native-json-snapshot.js +4 -3
- package/dist/safe-bash/playwright/native-snapshot.js +5 -4
- package/dist/safe-bash/playwright/open-options.js +3 -3
- package/dist/safe-bash/playwright/resource-limit.d.ts +2 -0
- package/dist/safe-bash/playwright/resource-limit.js +4 -0
- package/dist/safe-bash/playwright/session-configuration.js +8 -3
- package/dist/safe-bash/playwright/snapshot.js +8 -7
- package/dist/safe-bash/playwright/standard-capabilities.js +5 -4
- package/dist/safe-bash/plugins/index.browser.js +14 -16
- package/dist/safe-bash/registry-entry.browser.js +14 -16
- package/dist/safe-bash/shell/arrays/bindings.d.ts +3 -5
- package/dist/safe-bash/shell/arrays/bindings.js +6 -2
- package/dist/safe-bash/shell/input.js +16 -14
- package/dist/safe-bash/shell/runtime.d.ts +3 -0
- package/dist/safe-bash/shell/runtime.js +316 -64
- package/dist/safe-bash/shell/types.d.ts +2 -0
- package/dist/safe-bash/shell/value-state.js +17 -2
- package/dist/safe-bash/shell/worker-limits.js +1 -0
- package/dist/safe-bash/shell-entry.browser.js +13 -15
- package/dist/safe-bash/trap.browser.d.ts +3 -0
- package/dist/safe-bash/trap.browser.js +14 -0
- package/dist/safe-bash/worker/host.js +1 -1
- package/dist/safe-bash-command-apply-patch/apply.js +2 -2
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-awk/LICENSE +21 -0
- package/dist/safe-bash-command-awk/awk-inspection.d.ts +19 -0
- package/dist/safe-bash-command-awk/awk-inspection.js +9 -0
- package/dist/safe-bash-command-awk/awk-pipes.d.ts +19 -0
- package/dist/safe-bash-command-awk/awk-pipes.js +8 -0
- package/dist/safe-bash-command-awk/awk-pretty.d.ts +3 -0
- package/dist/safe-bash-command-awk/awk-pretty.js +8 -0
- package/dist/safe-bash-command-awk/awk-quote.d.ts +2 -0
- package/dist/safe-bash-command-awk/awk-quote.js +7 -0
- package/dist/safe-bash-command-awk/awk-reader.d.ts +42 -0
- package/dist/safe-bash-command-awk/awk-reader.js +9 -0
- package/dist/safe-bash-command-awk/awk-retention.d.ts +13 -0
- package/dist/safe-bash-command-awk/awk-retention.js +7 -0
- package/dist/safe-bash-command-awk/awk-runtime.d.ts +151 -0
- package/dist/safe-bash-command-awk/awk-runtime.js +11 -0
- package/dist/safe-bash-command-awk/awk-syntax.d.ts +144 -0
- package/dist/safe-bash-command-awk/awk-syntax.js +14 -0
- package/dist/safe-bash-command-awk/awk-values.d.ts +32 -0
- package/dist/safe-bash-command-awk/awk-values.js +35 -0
- package/dist/safe-bash-command-awk/awk.d.ts +3 -0
- package/dist/safe-bash-command-awk/awk.js +16 -0
- package/dist/safe-bash-command-awk/index.d.ts +7 -0
- package/dist/safe-bash-command-awk/index.js +36 -0
- package/dist/safe-bash-command-bc/index.d.ts +4 -0
- package/dist/safe-bash-command-bc/index.js +15 -176
- package/dist/safe-bash-command-column/column.js +3 -3
- package/dist/safe-bash-command-column/index.js +3 -3
- package/dist/safe-bash-command-column/layout.js +2 -2
- package/dist/safe-bash-command-csplit/command.js +2 -2
- package/dist/safe-bash-command-csplit/index.js +2 -2
- package/dist/safe-bash-command-csvkit/contracts.d.ts +1 -0
- package/dist/safe-bash-command-csvkit/csvpy-interpreter.d.ts +2 -1
- package/dist/safe-bash-command-csvkit/default-csvpy.d.ts +11 -0
- package/dist/safe-bash-command-csvkit/errors.js +22 -0
- package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
- package/dist/safe-bash-command-csvkit/index.js +172 -4
- package/dist/safe-bash-command-csvkit/python-worker-browser.d.ts +3 -0
- package/dist/safe-bash-command-csvkit/python-worker-browser.js +16 -0
- package/dist/safe-bash-command-csvkit/python-worker-contract.d.ts +20 -0
- package/dist/safe-bash-command-csvkit/python-worker-node.d.ts +3 -0
- package/dist/safe-bash-command-csvkit/python-worker-node.js +9 -0
- package/dist/safe-bash-command-csvkit/runtime.d.ts +1 -0
- package/dist/safe-bash-command-curl/LICENSE +21 -0
- package/dist/safe-bash-command-curl/curl.d.ts +13 -0
- package/dist/safe-bash-command-curl/curl.js +9 -0
- package/dist/safe-bash-command-curl/index.d.ts +6 -0
- package/dist/safe-bash-command-curl/index.js +26 -0
- package/dist/safe-bash-command-diff/LICENSE +21 -0
- package/dist/safe-bash-command-diff/diff-format.d.ts +10 -0
- package/dist/safe-bash-command-diff/diff-format.js +10 -0
- package/dist/safe-bash-command-diff/diff-options.d.ts +38 -0
- package/dist/safe-bash-command-diff/diff-options.js +7 -0
- package/dist/safe-bash-command-diff/diff-output.d.ts +20 -0
- package/dist/safe-bash-command-diff/diff-output.js +19 -0
- package/dist/safe-bash-command-diff/diff.d.ts +2 -0
- package/dist/safe-bash-command-diff/diff.js +10 -0
- package/dist/safe-bash-command-diff/index.d.ts +8 -0
- package/dist/safe-bash-command-diff/index.js +34 -0
- package/dist/safe-bash-command-diff/sync.d.ts +2 -0
- package/dist/safe-bash-command-diff/sync.js +9 -0
- package/dist/safe-bash-command-diff3/index.js +5 -5
- package/dist/safe-bash-command-docx/index.d.ts +4 -4
- package/dist/safe-bash-command-docx/index.js +12 -5
- package/dist/safe-bash-command-dos2unix/index.d.ts +1 -0
- package/dist/safe-bash-command-dos2unix/index.js +225 -1
- package/dist/safe-bash-command-dos2unix/sync.d.ts +1 -0
- package/dist/safe-bash-command-exiftool/index.js +2 -2
- package/dist/safe-bash-command-factor/command.js +2 -2
- package/dist/safe-bash-command-factor/index.js +2 -2
- package/dist/safe-bash-command-ffmpeg/index.js +86 -94
- package/dist/safe-bash-command-file/index.js +3 -3
- package/dist/safe-bash-command-find/LICENSE +21 -0
- package/dist/safe-bash-command-find/find-format.d.ts +20 -0
- package/dist/safe-bash-command-find/find-format.js +9 -0
- package/dist/safe-bash-command-find/find.d.ts +18 -0
- package/dist/safe-bash-command-find/find.js +10 -0
- package/dist/safe-bash-command-find/index.d.ts +13 -0
- package/dist/safe-bash-command-find/index.js +45 -0
- package/dist/safe-bash-command-fmt/index.js +7 -4
- package/dist/safe-bash-command-git/git_rust.wasm +0 -0
- package/dist/safe-bash-command-git/index.js +5 -7
- package/dist/safe-bash-command-git/wasm.generated.js +1 -1
- package/dist/safe-bash-command-gzip/LICENSE +21 -0
- package/dist/safe-bash-command-gzip/index.d.ts +11 -0
- package/dist/safe-bash-command-gzip/index.js +94 -0
- package/dist/safe-bash-command-html-to-markdown/index.js +5 -5
- package/dist/safe-bash-command-htmlq/index.js +12 -8
- package/dist/safe-bash-command-imagemagick/index.js +22 -30
- package/dist/safe-bash-command-jq/index.js +1 -1
- package/dist/safe-bash-command-jq/jq.js +1 -1
- package/dist/safe-bash-command-llm/command.js +1 -1
- package/dist/safe-bash-command-llm/index.d.ts +1 -0
- package/dist/safe-bash-command-llm/index.js +16 -14
- package/dist/safe-bash-command-llm/openai.js +3 -3
- package/dist/safe-bash-command-llm/providers/index.js +3 -3
- package/dist/safe-bash-command-llm/providers/openai.js +3 -3
- package/dist/safe-bash-command-llm/stored-schema.d.ts +10 -0
- package/dist/safe-bash-command-mmdc/index.js +13 -604
- package/dist/safe-bash-command-mmdc/settings.d.ts +2 -0
- package/dist/safe-bash-command-mmdc/settings.js +7 -0
- package/dist/safe-bash-command-pandoc/command.js +4 -3
- package/dist/safe-bash-command-pandoc/defaults.d.ts +1 -0
- package/dist/safe-bash-command-pandoc/index.js +4 -3
- package/dist/safe-bash-command-pandoc/lua-filters.js +1 -1
- package/dist/safe-bash-command-pandoc/types.d.ts +3 -1
- package/dist/safe-bash-command-patch/LICENSE +21 -0
- package/dist/safe-bash-command-patch/index.d.ts +8 -0
- package/dist/safe-bash-command-patch/index.js +38 -0
- package/dist/safe-bash-command-patch/patch-envelope.d.ts +2 -0
- package/dist/safe-bash-command-patch/patch-envelope.js +7 -0
- package/dist/safe-bash-command-patch/patch-formats.d.ts +7 -0
- package/dist/safe-bash-command-patch/patch-formats.js +9 -0
- package/dist/safe-bash-command-patch/patch-gnu-paths.d.ts +41 -0
- package/dist/safe-bash-command-patch/patch-gnu-paths.js +26 -0
- package/dist/safe-bash-command-patch/patch-gnu-reject.d.ts +3 -0
- package/dist/safe-bash-command-patch/patch-gnu-reject.js +7 -0
- package/dist/safe-bash-command-patch/patch-path.d.ts +3 -0
- package/dist/safe-bash-command-patch/patch-path.js +11 -0
- package/dist/safe-bash-command-patch/patch-publication.d.ts +13 -0
- package/dist/safe-bash-command-patch/patch-publication.js +7 -0
- package/dist/safe-bash-command-patch/patch.d.ts +2 -0
- package/dist/safe-bash-command-patch/patch.js +14 -0
- package/dist/safe-bash-command-patch/sync.d.ts +2 -0
- package/dist/safe-bash-command-patch/sync.js +7 -0
- package/dist/safe-bash-command-patch/unified.d.ts +52 -0
- package/dist/safe-bash-command-patch/unified.js +16 -0
- package/dist/safe-bash-command-pdfimages/index.js +37 -16
- package/dist/safe-bash-command-pdfinfo/index.d.ts +0 -23
- package/dist/safe-bash-command-pdfinfo/index.js +20 -772
- package/dist/safe-bash-command-pdftk/index.js +37 -9
- package/dist/safe-bash-command-pdftoppm/index.js +50 -20
- package/dist/safe-bash-command-pdftotext/index.js +10 -2
- package/dist/safe-bash-command-pptx/index.d.ts +4 -4
- package/dist/safe-bash-command-pptx/index.js +11 -5
- package/dist/safe-bash-command-pr/command.js +2 -2
- package/dist/safe-bash-command-pr/index.js +4 -4
- package/dist/safe-bash-command-qpdf/index.js +26 -13
- package/dist/safe-bash-command-rg/index.d.ts +1 -0
- package/dist/safe-bash-command-rg/index.js +222 -1
- package/dist/safe-bash-command-rg/rg-command.js +1 -1
- package/dist/safe-bash-command-rg/sync.d.ts +1 -0
- package/dist/safe-bash-command-sed/LICENSE +21 -0
- package/dist/safe-bash-command-sed/index.d.ts +7 -0
- package/dist/safe-bash-command-sed/index.js +28 -0
- package/dist/safe-bash-command-sed/inplace.d.ts +16 -0
- package/dist/safe-bash-command-sed/inplace.js +9 -0
- package/dist/safe-bash-command-sed/sed.d.ts +3 -0
- package/dist/safe-bash-command-sed/sed.js +8 -0
- package/dist/safe-bash-command-sips/index.js +111 -35
- package/dist/safe-bash-command-soffice/index.js +4 -4
- package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -2
- package/dist/safe-bash-command-sqlite3/index.js +152 -452
- package/dist/safe-bash-command-ssconvert/commands.js +1 -1
- package/dist/safe-bash-command-ssconvert/formats/ods.js +2 -2
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +3 -3
- package/dist/safe-bash-command-ssconvert/index.js +5 -5
- package/dist/safe-bash-command-tar/LICENSE +21 -0
- package/dist/safe-bash-command-tar/create.d.ts +17 -0
- package/dist/safe-bash-command-tar/create.js +14 -0
- package/dist/safe-bash-command-tar/extract.d.ts +11 -0
- package/dist/safe-bash-command-tar/extract.js +14 -0
- package/dist/safe-bash-command-tar/format.d.ts +32 -0
- package/dist/safe-bash-command-tar/format.js +19 -0
- package/dist/safe-bash-command-tar/index.d.ts +8 -0
- package/dist/safe-bash-command-tar/index.js +550 -0
- package/dist/safe-bash-command-tar/listing.d.ts +2 -0
- package/dist/safe-bash-command-tar/listing.js +7 -0
- package/dist/safe-bash-command-tar/modes.d.ts +5 -0
- package/dist/safe-bash-command-tar/modes.js +16 -0
- package/dist/safe-bash-command-tar/options.d.ts +53 -0
- package/dist/safe-bash-command-tar/options.js +10 -0
- package/dist/safe-bash-command-tar/stream.d.ts +22 -0
- package/dist/safe-bash-command-tar/stream.js +15 -0
- package/dist/safe-bash-command-tar/transform.d.ts +16 -0
- package/dist/safe-bash-command-tar/transform.js +9 -0
- package/dist/safe-bash-command-unzip/LICENSE +21 -0
- package/dist/safe-bash-command-unzip/index.d.ts +7 -0
- package/dist/safe-bash-command-unzip/index.js +39 -0
- package/dist/safe-bash-command-unzip/sync.d.ts +3 -0
- package/dist/safe-bash-command-unzip/sync.js +9 -0
- package/dist/safe-bash-command-unzip/unzip/safety.d.ts +32 -0
- package/dist/safe-bash-command-unzip/unzip/safety.js +7 -0
- package/dist/safe-bash-command-unzip/unzip.d.ts +3 -0
- package/dist/safe-bash-command-unzip/unzip.js +8 -0
- package/dist/safe-bash-command-wget/LICENSE +21 -0
- package/dist/safe-bash-command-wget/index.d.ts +6 -0
- package/dist/safe-bash-command-wget/index.js +26 -0
- package/dist/safe-bash-command-wget/wget.d.ts +3 -0
- package/dist/safe-bash-command-wget/wget.js +7 -0
- package/dist/safe-bash-command-xan/argv.d.ts +4 -1
- package/dist/safe-bash-command-xan/argv.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +4 -3
- package/dist/safe-bash-command-xan/index.js +15 -14
- package/dist/safe-bash-command-xan/io.js +2 -2
- package/dist/safe-bash-command-xmllint/index.js +189 -49
- package/dist/safe-bash-command-xz/index.js +3 -2
- package/dist/safe-bash-command-xz/options.d.ts +9 -1
- package/dist/safe-bash-command-xz/options.js +3 -1
- package/dist/safe-bash-command-yq/index.d.ts +4 -11
- package/dist/safe-bash-command-yq/index.js +3367 -670
- package/dist/safe-bash-command-yq/mike.js +6 -13
- package/dist/safe-bash-command-yq/native-work.d.ts +1 -0
- package/dist/safe-bash-command-yq/native-work.js +17 -0
- package/dist/safe-bash-command-yq/query.d.ts +11 -0
- package/dist/safe-bash-command-yq/query.js +735 -0
- package/dist/safe-bash-command-zip/LICENSE +21 -0
- package/dist/safe-bash-command-zip/index.d.ts +7 -0
- package/dist/safe-bash-command-zip/index.js +38 -0
- package/dist/safe-bash-command-zip/sync.d.ts +3 -0
- package/dist/safe-bash-command-zip/sync.js +9 -0
- package/dist/safe-bash-command-zip/zip.d.ts +3 -0
- package/dist/safe-bash-command-zip/zip.js +7 -0
- package/dist/safe-bash-compression-engine/files.js +4 -4
- package/dist/safe-bash-compression-engine/index.js +2 -2
- package/dist/safe-bash-compression-engine/operand.js +6 -6
- package/dist/safe-bash-compression-engine/stream.js +2 -2
- package/dist/safe-bash-compression-engine/zstd-decode.js +1 -1
- package/dist/safe-bash-contracts/command.js +1 -1
- package/dist/safe-bash-contracts/diagnostics.js +4 -4
- package/dist/safe-bash-contracts/escaping.js +11 -11
- package/dist/safe-bash-contracts/filesystem-descriptor.js +1 -1
- package/dist/safe-bash-contracts/filesystem-output.js +8 -8
- package/dist/safe-bash-contracts/index.js +34 -34
- package/dist/safe-bash-contracts/io.js +2 -2
- package/dist/safe-bash-contracts/output.js +3 -3
- package/dist/safe-bash-diff-engine/LICENSE +21 -0
- package/dist/safe-bash-diff-engine/index.d.ts +1 -0
- package/dist/safe-bash-diff-engine/index.js +24 -0
- package/dist/safe-bash-diff-engine/shared.d.ts +53 -0
- package/dist/safe-bash-diff-engine/shared.js +19 -0
- package/dist/safe-bash-io-engine/commands/directory-admission.d.ts +3 -0
- package/dist/safe-bash-io-engine/commands/directory-admission.js +34 -0
- package/dist/safe-bash-io-engine/commands/mode-change.d.ts +4 -0
- package/dist/safe-bash-io-engine/commands/mode-change.js +60 -0
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +20 -31
- package/dist/safe-bash-io-engine/shell/pattern.js +7 -12
- package/dist/safe-bash-markdown-engine/commonmark-blocks.js +4 -4
- package/dist/safe-bash-markdown-engine/commonmark-inlines.js +4 -4
- package/dist/safe-bash-markdown-engine/commonmark-syntax.js +2 -2
- package/dist/safe-bash-markdown-engine/gfm-syntax.js +3 -3
- package/dist/safe-bash-markdown-engine/index.js +7 -7
- package/dist/safe-bash-mcp/index.browser.d.ts +6 -0
- package/dist/safe-bash-mcp/index.browser.js +1 -0
- package/dist/safe-bash-mcp/index.d.ts +12 -0
- package/dist/safe-bash-mcp/index.js +1558 -36
- package/dist/safe-bash-network-engine/LICENSE +21 -0
- package/dist/safe-bash-network-engine/aggregate.d.ts +4 -0
- package/dist/safe-bash-network-engine/aggregate.js +37 -0
- package/dist/safe-bash-network-engine/args.d.ts +68 -0
- package/dist/safe-bash-network-engine/args.js +19 -0
- package/dist/safe-bash-network-engine/authorizer.d.ts +6 -0
- package/dist/safe-bash-network-engine/authorizer.js +8 -0
- package/dist/safe-bash-network-engine/body.d.ts +9 -0
- package/dist/safe-bash-network-engine/body.js +374 -0
- package/dist/safe-bash-network-engine/deadline.d.ts +2 -0
- package/dist/safe-bash-network-engine/deadline.js +7 -0
- package/dist/safe-bash-network-engine/decode.d.ts +2 -0
- package/dist/safe-bash-network-engine/decode.js +81 -0
- package/dist/safe-bash-network-engine/fetch-transport.d.ts +7 -0
- package/dist/safe-bash-network-engine/fetch-transport.js +9 -0
- package/dist/safe-bash-network-engine/form-content-type.d.ts +5 -0
- package/dist/safe-bash-network-engine/form-content-type.js +8 -0
- package/dist/safe-bash-network-engine/form-headers.d.ts +2 -0
- package/dist/safe-bash-network-engine/form-headers.js +10 -0
- package/dist/safe-bash-network-engine/glob.d.ts +7 -0
- package/dist/safe-bash-network-engine/glob.js +124 -0
- package/dist/safe-bash-network-engine/index.d.ts +3 -0
- package/dist/safe-bash-network-engine/index.js +26 -0
- package/dist/safe-bash-network-engine/input.d.ts +5 -0
- package/dist/safe-bash-network-engine/input.js +255 -0
- package/dist/safe-bash-network-engine/output.d.ts +6 -0
- package/dist/safe-bash-network-engine/output.js +132 -0
- package/dist/safe-bash-network-engine/platform-portable.d.ts +5 -0
- package/dist/safe-bash-network-engine/platform-portable.js +19 -0
- package/dist/safe-bash-network-engine/private-address.d.ts +1 -0
- package/dist/safe-bash-network-engine/private-address.js +7 -0
- package/dist/safe-bash-network-engine/shared.d.ts +14 -0
- package/dist/safe-bash-network-engine/shared.js +23 -0
- package/dist/safe-bash-network-engine/types.d.ts +37 -0
- package/dist/safe-bash-network-engine/types.js +11 -0
- package/dist/safe-bash-network-engine/url.d.ts +2 -0
- package/dist/safe-bash-network-engine/url.js +8 -0
- package/dist/safe-bash-query-engine/capture.d.ts +1 -0
- package/dist/safe-bash-query-engine/capture.js +9 -7
- package/dist/safe-bash-query-engine/dates.d.ts +5 -1
- package/dist/safe-bash-query-engine/dates.js +10 -2
- package/dist/safe-bash-query-engine/delpaths.js +5 -5
- package/dist/safe-bash-query-engine/formats.js +3 -3
- package/dist/safe-bash-query-engine/index.js +15 -15
- package/dist/safe-bash-query-engine/indices.js +5 -5
- package/dist/safe-bash-query-engine/input.d.ts +1 -2
- package/dist/safe-bash-query-engine/input.js +2 -4
- package/dist/safe-bash-query-engine/interpreter.d.ts +5 -0
- package/dist/safe-bash-query-engine/interpreter.js +13 -13
- package/dist/safe-bash-query-engine/limits.js +1 -1
- package/dist/safe-bash-query-engine/parser.d.ts +8 -1
- package/dist/safe-bash-query-engine/parser.js +2 -2
- package/dist/safe-bash-query-engine/query-core.js +15 -15
- package/dist/safe-bash-query-engine/recurse.js +2 -2
- package/dist/safe-bash-query-engine/regex.d.ts +4 -2
- package/dist/safe-bash-query-engine/regex.js +10 -5
- package/dist/safe-bash-query-engine/split.js +2 -2
- package/dist/safe-bash-query-engine/splits.d.ts +1 -1
- package/dist/safe-bash-query-engine/splits.js +7 -6
- package/dist/safe-bash-query-engine/values.js +4 -4
- package/dist/safe-bash-regex-engine/ere/matcher.js +4 -4
- package/dist/safe-bash-regex-engine/index.js +2 -2
- package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -0
- package/dist/safe-bash-regex-engine/text/regex.js +2 -2
- package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +12 -2
- package/dist/safe-bash-search-engine/ergonomic-regex.js +2 -2
- package/dist/safe-bash-search-engine/glob.js +2 -2
- package/dist/safe-bash-search-engine/grep.js +2 -2
- package/dist/safe-bash-search-engine/matcher.d.ts +6 -2
- package/dist/safe-bash-search-engine/matcher.js +30 -8
- package/dist/safe-bash-search-engine/options.js +1 -1
- package/dist/safe-bash-search-engine/output.d.ts +3 -2
- package/dist/safe-bash-search-engine/output.js +111 -30
- package/dist/safe-bash-search-engine/shared.d.ts +2 -0
- package/dist/safe-bash-search-engine/shared.js +2 -2
- package/dist/safe-bash-search-engine/walk.js +11 -10
- package/dist/safe-bash-xml-engine/document.d.ts +1 -1
- package/dist/safe-bash-xml-engine/document.js +3 -3
- package/dist/safe-bash-xml-engine/evaluate.d.ts +1 -0
- package/dist/safe-bash-xml-engine/evaluate.js +4 -1
- package/dist/safe-bash-xml-engine/index.js +8 -6
- package/dist/safe-bash-xml-engine/io.js +1 -1
- package/dist/safe-bash-xml-engine/limits.d.ts +2 -0
- package/dist/safe-bash-xml-engine/limits.js +1 -1
- package/dist/safe-bash-xml-engine/predicate.d.ts +57 -0
- package/dist/safe-bash-xml-engine/query.d.ts +3 -15
- package/dist/safe-bash-xml-engine/query.js +3 -2
- package/dist/safe-bash-zip-engine/LICENSE +21 -0
- package/dist/safe-bash-zip-engine/index.d.ts +1 -0
- package/dist/safe-bash-zip-engine/index.js +32 -0
- package/dist/safe-bash-zip-engine/unzip/arguments.d.ts +53 -0
- package/dist/safe-bash-zip-engine/unzip/arguments.js +270 -0
- package/dist/safe-bash-zip-engine/zip/aes.d.ts +17 -0
- package/dist/safe-bash-zip-engine/zip/aes.js +15 -0
- package/dist/safe-bash-zip-engine/zip/comments.d.ts +17 -0
- package/dist/safe-bash-zip-engine/zip/comments.js +77 -0
- package/dist/safe-bash-zip-engine/zip/crc.d.ts +1 -0
- package/dist/safe-bash-zip-engine/zip/crc.js +7 -0
- package/dist/safe-bash-zip-engine/zip/crypto.d.ts +19 -0
- package/dist/safe-bash-zip-engine/zip/crypto.js +16 -0
- package/dist/safe-bash-zip-engine/zip/dates.d.ts +4 -0
- package/dist/safe-bash-zip-engine/zip/dates.js +68 -0
- package/dist/safe-bash-zip-engine/zip/environment.d.ts +2 -0
- package/dist/safe-bash-zip-engine/zip/environment.js +60 -0
- package/dist/safe-bash-zip-engine/zip/grow.d.ts +3 -0
- package/dist/safe-bash-zip-engine/zip/grow.js +7 -0
- package/dist/safe-bash-zip-engine/zip/help.d.ts +4 -0
- package/dist/safe-bash-zip-engine/zip/help.js +194 -0
- package/dist/safe-bash-zip-engine/zip/line-endings.d.ts +2 -0
- package/dist/safe-bash-zip-engine/zip/line-endings.js +165 -0
- package/dist/safe-bash-zip-engine/zip/log.d.ts +22 -0
- package/dist/safe-bash-zip-engine/zip/log.js +153 -0
- package/dist/safe-bash-zip-engine/zip/lzma.d.ts +9 -0
- package/dist/safe-bash-zip-engine/zip/lzma.js +7 -0
- package/dist/safe-bash-zip-engine/zip/move.d.ts +11 -0
- package/dist/safe-bash-zip-engine/zip/move.js +57 -0
- package/dist/safe-bash-zip-engine/zip/names.d.ts +2 -0
- package/dist/safe-bash-zip-engine/zip/names.js +37 -0
- package/dist/safe-bash-zip-engine/zip/options.d.ts +13 -0
- package/dist/safe-bash-zip-engine/zip/options.js +23 -0
- package/dist/safe-bash-zip-engine/zip/repair.d.ts +10 -0
- package/dist/safe-bash-zip-engine/zip/repair.js +348 -0
- package/dist/safe-bash-zip-engine/zip/safety.d.ts +54 -0
- package/dist/safe-bash-zip-engine/zip/safety.js +19 -0
- package/dist/safe-bash-zip-engine/zip/sfx.d.ts +4 -0
- package/dist/safe-bash-zip-engine/zip/sfx.js +58 -0
- package/dist/safe-bash-zip-engine/zip/test-command.d.ts +5 -0
- package/dist/safe-bash-zip-engine/zip/test-command.js +98 -0
- package/dist/safe-bash-zip-engine/zip/volumes.d.ts +21 -0
- package/dist/safe-bash-zip-engine/zip/volumes.js +255 -0
- package/dist/safe-bash-zip-engine/zip/zip64.d.ts +30 -0
- package/dist/safe-bash-zip-engine/zip/zip64.js +25 -0
- package/dist/safe-bash-zip-engine/zip-format.d.ts +68 -0
- package/dist/safe-bash-zip-engine/zip-format.js +27 -0
- package/dist/safe-playwright-cloudflare/browser-codegen.generated.d.ts +7 -7
- package/dist/safe-playwright-cloudflare/browser-codegen.generated.js +866 -8069
- package/dist/safe-playwright-cloudflare/browser-run-code-budget.d.ts +0 -1
- package/dist/safe-playwright-cloudflare/browser-run-code-budget.js +0 -2
- package/dist/safe-playwright-cloudflare/browser-trace-archive.d.ts +5 -1
- package/dist/safe-playwright-cloudflare/browser-trace-archive.js +2 -1
- package/dist/safe-playwright-cloudflare/browser-trace-budget.js +2 -2
- package/dist/safe-playwright-cloudflare/shell-browser-resource.d.ts +2 -0
- package/dist/safe-playwright-cloudflare/shell-browser-resource.js +3 -11
- package/dist/safe-playwright-cloudflare/shell-playwright.d.ts +2 -0
- package/dist/safe-playwright-cloudflare/shell-playwright.js +1 -1
- package/dist/spreadsheet-engine/io/publication.d.ts +1 -0
- package/package.json +163 -14
- package/dist/safe-bash/chunks/chunk-AZAJJVFX.js +0 -23017
- package/dist/safe-bash/chunks/chunk-O4ZUCRGN.js +0 -13
- package/dist/safe-bash/chunks/chunk-S264DZO2.js +0 -243
- package/dist/safe-bash/chunks/chunk-WVG5SHHQ.js +0 -12
- package/dist/safe-bash/chunks/chunk-ZW6K2J7P.js +0 -2652
- package/dist/safe-bash/command-chunks/chunk-5MPOQ6V3.js +0 -181
- package/dist/safe-bash/command-chunks/chunk-BIXLZ3OG.js +0 -14342
- package/dist/safe-bash/command-chunks/chunk-DUYJE2HY.js +0 -14
- package/dist/safe-bash/command-chunks/chunk-NETECMOF.js +0 -40
- package/dist/safe-bash/command-chunks/chunk-XS3PGJU2.js +0 -343
- package/dist/safe-bash/command-chunks/chunk-XTZALMLR.js +0 -488
- package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.d.ts +0 -2
- package/dist/safe-bash/commands/archive/zip/aes-primitives-unavailable.js +0 -3
- package/dist/safe-bash/commands/archive/zip/aes-primitives.d.ts +0 -2
- package/dist/safe-bash/commands/archive/zip/aes-primitives.js +0 -3
- package/dist/safe-bash/commands/xml/document.d.ts +0 -2
- package/dist/safe-bash/commands/xml/document.js +0 -2
- package/dist/safe-bash/commands/xml/evaluate.d.ts +0 -2
- package/dist/safe-bash/commands/xml/evaluate.js +0 -2
- package/dist/safe-bash/commands/xml/json.d.ts +0 -2
- package/dist/safe-bash/commands/xml/json.js +0 -2
- package/dist/safe-bash/commands/xml/limits.d.ts +0 -2
- package/dist/safe-bash/commands/xml/limits.js +0 -2
- package/dist/safe-bash/commands/xml/query.d.ts +0 -2
- package/dist/safe-bash/commands/xml/query.js +0 -2
- package/dist/safe-bash/chunks/{chunk-NHOXKQNE.js → chunk-QVSRRNZT.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-FIUFIDAO.js → chunk-2JRBIDAD.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-B5BKA5WH.js → chunk-B5TAOCKD.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-TYVCKQDH.js → chunk-J5SN3PZ3.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2ENZ6JGA.js → chunk-KEV7C3KH.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-S62HELHU.js → chunk-PL6O4K6W.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-2WRTLCGK.js → chunk-QZF3SINC.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-X7TM3AKW.js → chunk-U6G67N23.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-DDLQ5YDB.js → chunk-YHFXOX6U.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-DQMOM72Z.js → chunk-ZRRBXU3M.js} +4 -4
|
@@ -12,10 +12,11 @@ import {
|
|
|
12
12
|
|
|
13
13
|
// packages/safe-bash-command-llm/src/command.ts
|
|
14
14
|
init_buffer();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
import {
|
|
15
|
+
|
|
16
|
+
// packages/safe-bash-command-llm/src/stored-schema.ts
|
|
17
|
+
init_buffer();
|
|
18
|
+
import { FsError as FsError7 } from "../../safe-bash-contracts/index.js";
|
|
19
|
+
import { pathOf as pathOf2 } from "../../safe-bash-contracts/path.js";
|
|
19
20
|
|
|
20
21
|
// packages/safe-bash-command-llm/src/configuration.ts
|
|
21
22
|
init_buffer();
|
|
@@ -246,10 +247,400 @@ function createLlmConfiguration(context) {
|
|
|
246
247
|
};
|
|
247
248
|
}
|
|
248
249
|
|
|
249
|
-
// packages/safe-bash-command-llm/src/
|
|
250
|
+
// packages/safe-bash-command-llm/src/sqlite-scan.ts
|
|
251
|
+
init_buffer();
|
|
252
|
+
|
|
253
|
+
// packages/safe-bash-command-llm/src/sqlite-pages.ts
|
|
254
|
+
init_buffer();
|
|
255
|
+
|
|
256
|
+
// packages/safe-bash-command-llm/src/sqlite-varint.ts
|
|
250
257
|
init_buffer();
|
|
251
258
|
import { FsError as FsError3 } from "../../safe-bash-contracts/index.js";
|
|
252
|
-
|
|
259
|
+
function readSqliteVarint(bytes, start) {
|
|
260
|
+
let value = 0n;
|
|
261
|
+
for (let i = 0; i < 9; i++) {
|
|
262
|
+
const byte = bytes[start + i];
|
|
263
|
+
if (byte === void 0) throw new FsError3("EIO", { message: "Invalid SQLite varint" });
|
|
264
|
+
value = value << BigInt(i === 8 ? 8 : 7) | BigInt(i === 8 ? byte : byte & 127);
|
|
265
|
+
if (i === 8 || byte < 128) return { value, end: start + i + 1 };
|
|
266
|
+
}
|
|
267
|
+
throw new FsError3("EIO", { message: "Invalid SQLite varint" });
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// packages/safe-bash-command-llm/src/sqlite-pages.ts
|
|
271
|
+
import { FsError as FsError5 } from "../../safe-bash-contracts/index.js";
|
|
272
|
+
|
|
273
|
+
// packages/safe-bash-command-llm/src/sqlite-snapshot.ts
|
|
274
|
+
init_buffer();
|
|
275
|
+
import { FsError as FsError4 } from "../../safe-bash-contracts/index.js";
|
|
276
|
+
function verifySqliteSnapshot(actual, expected) {
|
|
277
|
+
const identity = expected.opaqueIdentity !== void 0 ? actual.opaqueIdentity === expected.opaqueIdentity : expected.dev !== void 0 && expected.ino !== void 0 && actual.dev === expected.dev && actual.ino === expected.ino;
|
|
278
|
+
if (!identity || expected.identityScope === void 0 || expected.identityScope !== actual.identityScope || actual.type !== "file" || actual.size !== expected.size || actual.revision !== expected.revision || actual.opaqueVersion !== expected.opaqueVersion || actual.mtimeMs !== expected.mtimeMs || actual.ctimeMs !== expected.ctimeMs) {
|
|
279
|
+
throw new FsError4("EBUSY", { message: "SQLite retained snapshot changed" });
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// packages/safe-bash-command-llm/src/sqlite-pages.ts
|
|
284
|
+
import { yieldTurn } from "../../safe-bash-contracts/yield.js";
|
|
285
|
+
function corrupt() {
|
|
286
|
+
throw new FsError5("EIO", { message: "Invalid SQLite table record or page chain" });
|
|
287
|
+
}
|
|
288
|
+
function u16(bytes, offset) {
|
|
289
|
+
if (offset < 0 || offset + 2 > bytes.length) return corrupt();
|
|
290
|
+
return bytes[offset] * 256 + bytes[offset + 1];
|
|
291
|
+
}
|
|
292
|
+
function u32(bytes, offset) {
|
|
293
|
+
return u16(bytes, offset) * 65536 + u16(bytes, offset + 2);
|
|
294
|
+
}
|
|
295
|
+
async function findSqliteRecord(file, rootPage, rowid, signal, match = "exact") {
|
|
296
|
+
signal.throwIfAborted();
|
|
297
|
+
if (rowid < -(1n << 63n) || rowid >= 1n << 63n) throw new RangeError("SQLite rowid out of range");
|
|
298
|
+
const expected = await file.stat({ signal });
|
|
299
|
+
verifySqliteSnapshot(expected, expected);
|
|
300
|
+
if (!Number.isSafeInteger(expected.size) || expected.size < 100) return corrupt();
|
|
301
|
+
const check = async () => {
|
|
302
|
+
signal.throwIfAborted();
|
|
303
|
+
verifySqliteSnapshot(await file.stat({ signal }), expected);
|
|
304
|
+
};
|
|
305
|
+
const read = async (position, count) => {
|
|
306
|
+
await check();
|
|
307
|
+
if (!Number.isSafeInteger(position) || position < 0 || count < 0 || count > 65536 || position + count > expected.size) return corrupt();
|
|
308
|
+
const bytes = new Uint8Array(count);
|
|
309
|
+
for (let offset = 0; offset < count; ) {
|
|
310
|
+
const part = await file.read(position + offset, count - offset, { signal });
|
|
311
|
+
if (!(part instanceof Uint8Array) || !part.length || part.length > count - offset) return corrupt();
|
|
312
|
+
bytes.set(part, offset);
|
|
313
|
+
offset += part.length;
|
|
314
|
+
}
|
|
315
|
+
await check();
|
|
316
|
+
return bytes;
|
|
317
|
+
};
|
|
318
|
+
const header = await read(0, 100);
|
|
319
|
+
const magic = "SQLite format 3\0";
|
|
320
|
+
if ([...magic].some((character, index) => header[index] !== character.charCodeAt(0))) return corrupt();
|
|
321
|
+
const encodedSize = u16(header, 16), pageSize = encodedSize === 1 ? 65536 : encodedSize;
|
|
322
|
+
if (pageSize < 512 || pageSize > 65536 || (pageSize & pageSize - 1) !== 0 || expected.size % pageSize) return corrupt();
|
|
323
|
+
const usable = pageSize - header[20];
|
|
324
|
+
if (usable < 480) return corrupt();
|
|
325
|
+
const pages = expected.size / pageSize;
|
|
326
|
+
const page = async (number2, length = pageSize) => {
|
|
327
|
+
if (!Number.isSafeInteger(number2) || number2 < 1 || number2 > pages) return corrupt();
|
|
328
|
+
await yieldTurn(signal);
|
|
329
|
+
return (await read((number2 - 1) * pageSize, length)).subarray(0, usable);
|
|
330
|
+
};
|
|
331
|
+
let number = rootPage, successor;
|
|
332
|
+
for (let depth = 0; depth < pages * (match === "exact" ? 1 : 2); depth++) {
|
|
333
|
+
const data = await page(number), start = number === 1 ? 100 : 0;
|
|
334
|
+
const kind = data[start];
|
|
335
|
+
if (kind !== 5 && kind !== 13) return corrupt();
|
|
336
|
+
const count = u16(data, start + 3), pointers = start + (kind === 5 ? 12 : 8);
|
|
337
|
+
if (pointers + count * 2 > usable) return corrupt();
|
|
338
|
+
let child = kind === 5 ? u32(data, start + 8) : 0;
|
|
339
|
+
for (let i = 0; i < count; i++) {
|
|
340
|
+
const cell = u16(data, pointers + i * 2);
|
|
341
|
+
if (cell < pointers + count * 2 || cell >= usable) return corrupt();
|
|
342
|
+
if (kind === 5) {
|
|
343
|
+
const key = BigInt.asIntN(64, readSqliteVarint(data, cell + 4).value);
|
|
344
|
+
if (rowid <= key) {
|
|
345
|
+
child = u32(data, cell);
|
|
346
|
+
if (key < (1n << 63n) - 1n && (successor === void 0 || key + 1n < successor)) successor = key + 1n;
|
|
347
|
+
break;
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
const payload = readSqliteVarint(data, cell), key = readSqliteVarint(data, payload.end);
|
|
351
|
+
const foundRowid = BigInt.asIntN(64, key.value);
|
|
352
|
+
if (match === "exact" ? foundRowid !== rowid : foundRowid < rowid) continue;
|
|
353
|
+
const size = Number(payload.value);
|
|
354
|
+
if (!Number.isSafeInteger(size)) return corrupt();
|
|
355
|
+
const max = usable - 35, min = Math.floor((usable - 12) * 32 / 255) - 23;
|
|
356
|
+
let local = size <= max ? size : min + (size - min) % (usable - 4);
|
|
357
|
+
if (local > max) local = min;
|
|
358
|
+
if (key.end + local + (local < size ? 4 : 0) > usable) return corrupt();
|
|
359
|
+
const first = data.slice(key.end, key.end + local);
|
|
360
|
+
const overflow = local < size ? u32(data, key.end + local) : 0;
|
|
361
|
+
return { size, rowid: foundRowid, async *bytes(offset = 0, length = size - offset) {
|
|
362
|
+
if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(length) || offset < 0 || length < 0 || offset > size || length > size - offset) throw new RangeError("Invalid SQLite record range");
|
|
363
|
+
await check();
|
|
364
|
+
const stop = offset + length;
|
|
365
|
+
async function* emit(content, position2) {
|
|
366
|
+
const start2 = Math.max(0, offset - position2), end = Math.min(content.length, stop - position2);
|
|
367
|
+
for (let index = start2; index < end; index += 16384) {
|
|
368
|
+
await check();
|
|
369
|
+
yield content.slice(index, Math.min(end, index + 16384));
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
yield* emit(first, 0);
|
|
373
|
+
let position = local, next = overflow, traversed = 0;
|
|
374
|
+
while (length && position < stop) {
|
|
375
|
+
if (++traversed > pages) return corrupt();
|
|
376
|
+
const available = Math.min(size - position, usable - 4);
|
|
377
|
+
const skipped = position + available <= offset;
|
|
378
|
+
const content = await page(next, skipped ? 4 : pageSize);
|
|
379
|
+
next = u32(content, 0);
|
|
380
|
+
if (!skipped) yield* emit(content.subarray(4, 4 + available), position);
|
|
381
|
+
position += available;
|
|
382
|
+
}
|
|
383
|
+
if (stop === size && length && next !== 0) return corrupt();
|
|
384
|
+
await check();
|
|
385
|
+
} };
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (kind === 13) {
|
|
389
|
+
if (match === "exact" || successor === void 0) return void 0;
|
|
390
|
+
rowid = successor;
|
|
391
|
+
successor = void 0;
|
|
392
|
+
number = rootPage;
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
number = child;
|
|
396
|
+
}
|
|
397
|
+
return corrupt();
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
// packages/safe-bash-command-llm/src/sqlite-scan.ts
|
|
401
|
+
async function* scanSqliteRecords(file, rootPage, signal) {
|
|
402
|
+
signal.throwIfAborted();
|
|
403
|
+
const snapshot = await file.stat({ signal });
|
|
404
|
+
verifySqliteSnapshot(snapshot, snapshot);
|
|
405
|
+
let next = -(1n << 63n);
|
|
406
|
+
while (next < 1n << 63n) {
|
|
407
|
+
signal.throwIfAborted();
|
|
408
|
+
verifySqliteSnapshot(await file.stat({ signal }), snapshot);
|
|
409
|
+
const record2 = await findSqliteRecord(file, rootPage, next, signal, "at-or-after");
|
|
410
|
+
verifySqliteSnapshot(await file.stat({ signal }), snapshot);
|
|
411
|
+
if (!record2) return;
|
|
412
|
+
yield record2;
|
|
413
|
+
next = record2.rowid + 1n;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
// packages/safe-bash-command-llm/src/sqlite-values.ts
|
|
418
|
+
init_buffer();
|
|
419
|
+
import { FsError as FsError6 } from "../../safe-bash-contracts/index.js";
|
|
420
|
+
|
|
421
|
+
// packages/safe-bash-command-llm/src/sqlite-stream.ts
|
|
422
|
+
init_buffer();
|
|
423
|
+
function interruptible(start, signal) {
|
|
424
|
+
signal.throwIfAborted();
|
|
425
|
+
return new Promise((resolve, reject) => {
|
|
426
|
+
const abort = () => reject(signal.reason);
|
|
427
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
428
|
+
Promise.resolve().then(() => {
|
|
429
|
+
signal.throwIfAborted();
|
|
430
|
+
return start();
|
|
431
|
+
}).then(
|
|
432
|
+
(value) => {
|
|
433
|
+
signal.removeEventListener("abort", abort);
|
|
434
|
+
if (signal.aborted) reject(signal.reason);
|
|
435
|
+
else resolve(value);
|
|
436
|
+
},
|
|
437
|
+
(error) => {
|
|
438
|
+
signal.removeEventListener("abort", abort);
|
|
439
|
+
reject(signal.aborted ? signal.reason : error);
|
|
440
|
+
}
|
|
441
|
+
);
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
async function* sqliteSourceChunks(source, signal) {
|
|
445
|
+
const iterator = source[Symbol.asyncIterator]();
|
|
446
|
+
let done = false;
|
|
447
|
+
try {
|
|
448
|
+
while (true) {
|
|
449
|
+
const result = await interruptible(() => iterator.next(), signal);
|
|
450
|
+
if (result.done) {
|
|
451
|
+
done = true;
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
yield result.value;
|
|
455
|
+
}
|
|
456
|
+
} finally {
|
|
457
|
+
if (!done) {
|
|
458
|
+
const closing = Promise.resolve().then(() => iterator.return?.());
|
|
459
|
+
if (signal.aborted) void closing.catch(() => void 0);
|
|
460
|
+
else await interruptible(() => closing, signal);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
// packages/safe-bash-command-llm/src/sqlite-values.ts
|
|
466
|
+
function corrupt2() {
|
|
467
|
+
throw new FsError6("EIO", { message: "Invalid SQLite record fields" });
|
|
468
|
+
}
|
|
469
|
+
async function readSqliteValues(record2, columns, signal) {
|
|
470
|
+
signal.throwIfAborted();
|
|
471
|
+
if (!Number.isSafeInteger(columns) || columns < 0 || !Number.isSafeInteger(columns * 9 + 9)) {
|
|
472
|
+
throw new RangeError("Invalid SQLite column count");
|
|
473
|
+
}
|
|
474
|
+
if (!Number.isSafeInteger(record2.size) || record2.size < 1) return corrupt2();
|
|
475
|
+
async function read(offset, length) {
|
|
476
|
+
const result = new Uint8Array(length);
|
|
477
|
+
let received = 0;
|
|
478
|
+
for await (const chunk of sqliteSourceChunks(record2.bytes(offset, length), signal)) {
|
|
479
|
+
signal.throwIfAborted();
|
|
480
|
+
if (!(chunk instanceof Uint8Array) || chunk.length > length - received) return corrupt2();
|
|
481
|
+
result.set(chunk, received);
|
|
482
|
+
received += chunk.length;
|
|
483
|
+
}
|
|
484
|
+
if (received !== length) return corrupt2();
|
|
485
|
+
return result;
|
|
486
|
+
}
|
|
487
|
+
const prefix = readSqliteVarint(await read(0, Math.min(9, record2.size)), 0);
|
|
488
|
+
const headerSize = Number(prefix.value);
|
|
489
|
+
if (!Number.isSafeInteger(headerSize) || headerSize < prefix.end || headerSize > record2.size || headerSize > columns * 9 + 9) return corrupt2();
|
|
490
|
+
const header = await read(prefix.end, headerSize - prefix.end);
|
|
491
|
+
const fields = [];
|
|
492
|
+
let cursor = 0, position = headerSize;
|
|
493
|
+
while (cursor < header.length) {
|
|
494
|
+
if (fields.length >= columns) return corrupt2();
|
|
495
|
+
const next = readSqliteVarint(header, cursor);
|
|
496
|
+
cursor = next.end;
|
|
497
|
+
const serial2 = Number(next.value);
|
|
498
|
+
if (!Number.isSafeInteger(serial2) || serial2 === 10 || serial2 === 11) return corrupt2();
|
|
499
|
+
const size = serial2 >= 12 ? Math.floor((serial2 - 12) / 2) : [0, 1, 2, 3, 4, 6, 8, 8, 0, 0][serial2];
|
|
500
|
+
if (size > record2.size - position) return corrupt2();
|
|
501
|
+
fields.push({ serial: serial2, offset: position, size });
|
|
502
|
+
position += size;
|
|
503
|
+
}
|
|
504
|
+
if (fields.length !== columns || position !== record2.size) return corrupt2();
|
|
505
|
+
const values = [];
|
|
506
|
+
for (const field of fields) {
|
|
507
|
+
signal.throwIfAborted();
|
|
508
|
+
if (field.serial === 0) values.push(null);
|
|
509
|
+
else if (field.serial === 8 || field.serial === 9) values.push(BigInt(field.serial - 8));
|
|
510
|
+
else if (field.serial >= 12) {
|
|
511
|
+
values.push({ type: field.serial % 2 ? "text" : "blob", size: field.size, bytes: {
|
|
512
|
+
async *[Symbol.asyncIterator]() {
|
|
513
|
+
let received = 0;
|
|
514
|
+
for await (const chunk of sqliteSourceChunks(record2.bytes(field.offset, field.size), signal)) {
|
|
515
|
+
signal.throwIfAborted();
|
|
516
|
+
if (!(chunk instanceof Uint8Array) || chunk.length > field.size - received) return corrupt2();
|
|
517
|
+
for (let offset = 0; offset < chunk.length; offset += 16384) {
|
|
518
|
+
signal.throwIfAborted();
|
|
519
|
+
yield chunk.slice(offset, offset + 16384);
|
|
520
|
+
}
|
|
521
|
+
received += chunk.length;
|
|
522
|
+
}
|
|
523
|
+
if (received !== field.size) return corrupt2();
|
|
524
|
+
}
|
|
525
|
+
} });
|
|
526
|
+
} else {
|
|
527
|
+
const bytes = await read(field.offset, field.size);
|
|
528
|
+
if (field.serial === 7) values.push(new DataView(bytes.buffer, bytes.byteOffset, 8).getFloat64(0));
|
|
529
|
+
else {
|
|
530
|
+
let value = 0n;
|
|
531
|
+
for (const byte of bytes) value = value * 256n + BigInt(byte);
|
|
532
|
+
values.push(BigInt.asIntN(field.size * 8, value));
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
return values;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
// packages/safe-bash-command-llm/src/stored-schema.ts
|
|
540
|
+
async function loadLlmStoredSchema(context, id, options = {}) {
|
|
541
|
+
const { fs, signal } = context;
|
|
542
|
+
signal.throwIfAborted();
|
|
543
|
+
const maxBytes = options.maxBytes ?? Infinity;
|
|
544
|
+
if (maxBytes !== Infinity && (!Number.isSafeInteger(maxBytes) || maxBytes < 0)) throw new RangeError("Invalid schema byte limit");
|
|
545
|
+
const path = options.database === void 0 ? `${createLlmConfiguration(context).directory}/logs.db` : pathOf2(context, options.database);
|
|
546
|
+
let expected;
|
|
547
|
+
try {
|
|
548
|
+
expected = await fs.stat(path, { signal });
|
|
549
|
+
} catch (error) {
|
|
550
|
+
if (error instanceof FsError7 && error.code === "ENOENT") return void 0;
|
|
551
|
+
throw error;
|
|
552
|
+
}
|
|
553
|
+
const checkpointed = async () => {
|
|
554
|
+
for (const suffix of ["-wal", "-journal"]) {
|
|
555
|
+
try {
|
|
556
|
+
if ((await fs.stat(path + suffix, { signal })).size > 0) throw new FsError7("ENOTSUP", { path, message: "LLM history requires a checkpointed SQLite snapshot" });
|
|
557
|
+
} catch (error) {
|
|
558
|
+
if (!(error instanceof FsError7) || error.code !== "ENOENT") throw error;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
};
|
|
562
|
+
await checkpointed();
|
|
563
|
+
if (expected.type !== "file") throw new FsError7("EINVAL", { path });
|
|
564
|
+
if (!expected.size) return void 0;
|
|
565
|
+
const capabilities = await fs.capabilitiesFor?.(path, { signal }) ?? fs.capabilities;
|
|
566
|
+
if (!capabilities.retainedRead || !fs.openReadFile) throw new FsError7("ENOTSUP", { path, message: "LLM history requires retained reads" });
|
|
567
|
+
const file = await fs.openReadFile(path, { signal });
|
|
568
|
+
try {
|
|
569
|
+
verifySqliteSnapshot(await file.stat({ signal }), expected);
|
|
570
|
+
const header = new Uint8Array(60);
|
|
571
|
+
for (let position = 0; position < header.length; ) {
|
|
572
|
+
const bytes = await file.read(position, header.length - position, { signal });
|
|
573
|
+
if (!bytes.length || bytes.length > header.length - position) throw new FsError7("EIO", { path, message: "Invalid SQLite header" });
|
|
574
|
+
header.set(bytes, position);
|
|
575
|
+
position += bytes.length;
|
|
576
|
+
}
|
|
577
|
+
verifySqliteSnapshot(await file.stat({ signal }), expected);
|
|
578
|
+
const encoding = [void 0, "utf-8", "utf-16le", "utf-16be"][new DataView(header.buffer).getUint32(56)];
|
|
579
|
+
if (!encoding) throw new FsError7("EIO", { path, message: "Invalid SQLite text encoding" });
|
|
580
|
+
async function matches(value, target) {
|
|
581
|
+
if (!value || typeof value !== "object" || value.type !== "text") return false;
|
|
582
|
+
const decoder = new TextDecoder(encoding, { fatal: true, ignoreBOM: true });
|
|
583
|
+
let position = 0;
|
|
584
|
+
for await (const bytes of value.bytes) {
|
|
585
|
+
const text = decoder.decode(bytes, { stream: true });
|
|
586
|
+
if (text !== target.slice(position, position + text.length)) return false;
|
|
587
|
+
position += text.length;
|
|
588
|
+
}
|
|
589
|
+
const final = decoder.decode();
|
|
590
|
+
return final === target.slice(position) && position + final.length === target.length;
|
|
591
|
+
}
|
|
592
|
+
let root;
|
|
593
|
+
for await (const record2 of scanSqliteRecords(file, 1, signal)) {
|
|
594
|
+
const row = await readSqliteValues(record2, 5, signal);
|
|
595
|
+
if (await matches(row[0], "table") && await matches(row[1], "schemas")) {
|
|
596
|
+
if (typeof row[3] !== "bigint" || row[3] < 1n || row[3] > BigInt(Number.MAX_SAFE_INTEGER)) throw new FsError7("EIO", { path, message: "Invalid SQLite schema root" });
|
|
597
|
+
root = Number(row[3]);
|
|
598
|
+
break;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
let result;
|
|
602
|
+
if (root !== void 0) for await (const record2 of scanSqliteRecords(file, root, signal)) {
|
|
603
|
+
const row = await readSqliteValues(record2, 2, signal);
|
|
604
|
+
if (!await matches(row[0], id)) continue;
|
|
605
|
+
const content = row[1];
|
|
606
|
+
if (!content || typeof content !== "object" || content.type !== "text") throw new Error("Invalid schema");
|
|
607
|
+
if (content.size > maxBytes) throw new FsError7("EFBIG", { path, message: "LLM schema input byte limit exceeded" });
|
|
608
|
+
const decoder = new TextDecoder(encoding, { fatal: true, ignoreBOM: true });
|
|
609
|
+
let text = "";
|
|
610
|
+
for await (const bytes of content.bytes) {
|
|
611
|
+
options.admitBytes?.(bytes.length);
|
|
612
|
+
text += decoder.decode(bytes, { stream: true });
|
|
613
|
+
}
|
|
614
|
+
text += decoder.decode();
|
|
615
|
+
let value;
|
|
616
|
+
try {
|
|
617
|
+
value = JSON.parse(text);
|
|
618
|
+
} catch {
|
|
619
|
+
throw new Error("Invalid schema");
|
|
620
|
+
}
|
|
621
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error("Invalid schema");
|
|
622
|
+
result = value;
|
|
623
|
+
break;
|
|
624
|
+
}
|
|
625
|
+
await checkpointed();
|
|
626
|
+
verifySqliteSnapshot(await file.stat({ signal }), expected);
|
|
627
|
+
signal.throwIfAborted();
|
|
628
|
+
return result;
|
|
629
|
+
} finally {
|
|
630
|
+
await file.close();
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
// packages/safe-bash-command-llm/src/command.ts
|
|
635
|
+
import { createOutputOperation, getCommandArguments, FsError as FsError12 } from "../../safe-bash-contracts/index.js";
|
|
636
|
+
import { inheritYieldCheckpoint, yieldTurn as yieldTurn4 } from "../../safe-bash-contracts/yield.js";
|
|
637
|
+
import { writeDiagnostic } from "../../safe-bash-contracts/escaping.js";
|
|
638
|
+
import { pathOf as pathOf5 } from "../../safe-bash-contracts/path.js";
|
|
639
|
+
|
|
640
|
+
// packages/safe-bash-command-llm/src/templates.ts
|
|
641
|
+
init_buffer();
|
|
642
|
+
import { FsError as FsError8 } from "../../safe-bash-contracts/index.js";
|
|
643
|
+
import { pathOf as pathOf3 } from "../../safe-bash-contracts/path.js";
|
|
253
644
|
function unicodeOrder(left, right) {
|
|
254
645
|
let a = 0, b = 0;
|
|
255
646
|
while (a < left.length && b < right.length) {
|
|
@@ -437,11 +828,11 @@ For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/St
|
|
|
437
828
|
}
|
|
438
829
|
}
|
|
439
830
|
const { parse: parse2 } = await import("../bundled-yaml/index.js");
|
|
440
|
-
let path =
|
|
831
|
+
let path = pathOf3(context, name);
|
|
441
832
|
try {
|
|
442
833
|
await context.fs.stat(path, { signal: context.signal });
|
|
443
834
|
} catch (error) {
|
|
444
|
-
if (!(error instanceof
|
|
835
|
+
if (!(error instanceof FsError8) || error.code !== "ENOENT") throw error;
|
|
445
836
|
const colon = name.indexOf(":");
|
|
446
837
|
if (colon > 0) {
|
|
447
838
|
const prefix = name.slice(0, colon);
|
|
@@ -470,7 +861,7 @@ For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/St
|
|
|
470
861
|
const bytes = await context.fs.readFile(path, { signal: context.signal });
|
|
471
862
|
return template(parse2(new TextDecoder("utf-8", { fatal: true }).decode(bytes)), name);
|
|
472
863
|
} catch (error) {
|
|
473
|
-
if (error instanceof
|
|
864
|
+
if (error instanceof FsError8 && error.code === "ENOENT") throw new Error(`Invalid template: ${name}`);
|
|
474
865
|
throw error;
|
|
475
866
|
}
|
|
476
867
|
};
|
|
@@ -482,7 +873,7 @@ For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/St
|
|
|
482
873
|
try {
|
|
483
874
|
expected = await context.fs.lstat(path, { signal: context.signal });
|
|
484
875
|
} catch (error) {
|
|
485
|
-
if (!(error instanceof
|
|
876
|
+
if (!(error instanceof FsError8) || error.code !== "ENOENT") throw error;
|
|
486
877
|
expected = null;
|
|
487
878
|
}
|
|
488
879
|
await publishConfiguration(context.fs, directory, path, bytes, parent, expected, context.signal);
|
|
@@ -603,7 +994,7 @@ Options:
|
|
|
603
994
|
try {
|
|
604
995
|
await context.fs.lstat(path, { signal: context.signal });
|
|
605
996
|
} catch (error) {
|
|
606
|
-
if (!(error instanceof
|
|
997
|
+
if (!(error instanceof FsError8) || error.code !== "ENOENT") throw error;
|
|
607
998
|
await publish(name, new TextEncoder().encode("prompt: "));
|
|
608
999
|
}
|
|
609
1000
|
const editor = context.env.VISUAL || context.env.EDITOR || "vi";
|
|
@@ -626,7 +1017,7 @@ Options:
|
|
|
626
1017
|
try {
|
|
627
1018
|
files = await context.fs.readdir(directory, { signal: context.signal });
|
|
628
1019
|
} catch (error) {
|
|
629
|
-
if (error instanceof
|
|
1020
|
+
if (error instanceof FsError8 && error.code === "ENOENT") return 0;
|
|
630
1021
|
throw error;
|
|
631
1022
|
}
|
|
632
1023
|
const values = [];
|
|
@@ -663,18 +1054,18 @@ Options:
|
|
|
663
1054
|
|
|
664
1055
|
// packages/safe-bash-command-llm/src/retained-spool.ts
|
|
665
1056
|
init_buffer();
|
|
666
|
-
import { FsError as
|
|
1057
|
+
import { FsError as FsError9 } from "../../safe-bash-contracts/index.js";
|
|
667
1058
|
var serial = 0;
|
|
668
1059
|
function verifyRetainedFile(actual, expected) {
|
|
669
1060
|
const sameOwner = expected.identityScope !== void 0 && expected.identityScope === actual.identityScope;
|
|
670
1061
|
const sameIdentity = expected.opaqueIdentity !== void 0 ? expected.opaqueIdentity === actual.opaqueIdentity : expected.dev !== void 0 && expected.ino !== void 0 && expected.dev === actual.dev && expected.ino === actual.ino;
|
|
671
|
-
if (!sameOwner || !sameIdentity || actual.type !== "file" || actual.size !== expected.size || actual.revision !== expected.revision || actual.opaqueVersion !== expected.opaqueVersion || actual.mtimeMs !== expected.mtimeMs || actual.ctimeMs !== expected.ctimeMs) throw new
|
|
1062
|
+
if (!sameOwner || !sameIdentity || actual.type !== "file" || actual.size !== expected.size || actual.revision !== expected.revision || actual.opaqueVersion !== expected.opaqueVersion || actual.mtimeMs !== expected.mtimeMs || actual.ctimeMs !== expected.ctimeMs) throw new FsError9("EBUSY", { message: "LLM spool changed" });
|
|
672
1063
|
}
|
|
673
1064
|
async function createLlmSpool(fs, directory, signal, purpose = "output") {
|
|
674
1065
|
const parent = await fs.stat(directory, { signal });
|
|
675
|
-
if (parent.type !== "directory") throw new
|
|
1066
|
+
if (parent.type !== "directory") throw new FsError9("ENOTDIR", { path: directory });
|
|
676
1067
|
const caps = await fs.capabilitiesFor?.(directory, { signal }) ?? fs.capabilities;
|
|
677
|
-
if (!caps.retainedStagingCleanup || !caps.retainedStagingWrite || !caps.retainedRead || !fs.createStagedFile || !fs.openReadFile) throw new
|
|
1068
|
+
if (!caps.retainedStagingCleanup || !caps.retainedStagingWrite || !caps.retainedRead || !fs.createStagedFile || !fs.openReadFile) throw new FsError9("ENOTSUP", { message: "LLM staging requires caller filesystem retained staging and reads" });
|
|
678
1069
|
let staging;
|
|
679
1070
|
for (let attempt = 0; attempt < 16; attempt++) {
|
|
680
1071
|
try {
|
|
@@ -682,10 +1073,10 @@ async function createLlmSpool(fs, directory, signal, purpose = "output") {
|
|
|
682
1073
|
break;
|
|
683
1074
|
} catch (error) {
|
|
684
1075
|
signal.throwIfAborted();
|
|
685
|
-
if (!(error instanceof
|
|
1076
|
+
if (!(error instanceof FsError9) || error.code !== "EEXIST") throw error;
|
|
686
1077
|
}
|
|
687
1078
|
}
|
|
688
|
-
if (!staging) throw new
|
|
1079
|
+
if (!staging) throw new FsError9("EEXIST", { message: "LLM output staging names exhausted" });
|
|
689
1080
|
const owner = staging;
|
|
690
1081
|
const cleanup = owner.cleanup;
|
|
691
1082
|
const writer = owner.writer;
|
|
@@ -695,7 +1086,7 @@ async function createLlmSpool(fs, directory, signal, purpose = "output") {
|
|
|
695
1086
|
} finally {
|
|
696
1087
|
await cleanup?.close();
|
|
697
1088
|
}
|
|
698
|
-
throw new
|
|
1089
|
+
throw new FsError9("EIO", { message: "Caller filesystem omitted its retained staging handles" });
|
|
699
1090
|
}
|
|
700
1091
|
let reader;
|
|
701
1092
|
let sealed;
|
|
@@ -704,7 +1095,7 @@ async function createLlmSpool(fs, directory, signal, purpose = "output") {
|
|
|
704
1095
|
return {
|
|
705
1096
|
async write(bytes) {
|
|
706
1097
|
signal.throwIfAborted();
|
|
707
|
-
if (sealed || closing) throw new
|
|
1098
|
+
if (sealed || closing) throw new FsError9("EBADF", { message: "LLM spool is closed" });
|
|
708
1099
|
for (let offset = 0; offset < bytes.byteLength; offset += 16384) {
|
|
709
1100
|
const chunk = bytes.subarray(offset, offset + 16384);
|
|
710
1101
|
await writer.write(chunk, { signal });
|
|
@@ -713,32 +1104,32 @@ async function createLlmSpool(fs, directory, signal, purpose = "output") {
|
|
|
713
1104
|
},
|
|
714
1105
|
async *replay(select) {
|
|
715
1106
|
signal.throwIfAborted();
|
|
716
|
-
if (sealed || closing) throw new
|
|
1107
|
+
if (sealed || closing) throw new FsError9("EBADF", { message: "LLM spool is closed" });
|
|
717
1108
|
sealed = await writer.finish({ signal });
|
|
718
|
-
if (sealed.size !== written) throw new
|
|
1109
|
+
if (sealed.size !== written) throw new FsError9("EIO", { message: "LLM spool size mismatch" });
|
|
719
1110
|
signal.throwIfAborted();
|
|
720
|
-
if (closing) throw new
|
|
1111
|
+
if (closing) throw new FsError9("EBADF", { message: "LLM spool is closed" });
|
|
721
1112
|
const opened = await fs.openReadFile(owner.file.path, { signal });
|
|
722
1113
|
if (closing || signal.aborted) {
|
|
723
1114
|
await opened.close();
|
|
724
1115
|
signal.throwIfAborted();
|
|
725
|
-
throw new
|
|
1116
|
+
throw new FsError9("EBADF", { message: "LLM spool is closed" });
|
|
726
1117
|
}
|
|
727
1118
|
reader = opened;
|
|
728
1119
|
verifyRetainedFile(await reader.stat({ signal }), sealed);
|
|
729
1120
|
const read = async (position2, maxBytes) => {
|
|
730
1121
|
signal.throwIfAborted();
|
|
731
|
-
if (closing || !reader) throw new
|
|
732
|
-
if (!Number.isSafeInteger(position2) || position2 < 0 || position2 >= written || !Number.isSafeInteger(maxBytes) || maxBytes <= 0 || maxBytes > 16384) throw new
|
|
1122
|
+
if (closing || !reader) throw new FsError9("EBADF", { message: "LLM spool is closed" });
|
|
1123
|
+
if (!Number.isSafeInteger(position2) || position2 < 0 || position2 >= written || !Number.isSafeInteger(maxBytes) || maxBytes <= 0 || maxBytes > 16384) throw new FsError9("EINVAL", { message: "Invalid LLM spool range" });
|
|
733
1124
|
const count = Math.min(maxBytes, written - position2);
|
|
734
1125
|
verifyRetainedFile(await reader.stat({ signal }), sealed);
|
|
735
1126
|
const bytes = await reader.read(position2, count, { signal });
|
|
736
|
-
if (!bytes.byteLength || bytes.byteLength > count) throw new
|
|
1127
|
+
if (!bytes.byteLength || bytes.byteLength > count) throw new FsError9("EIO", { message: "Invalid LLM spool read" });
|
|
737
1128
|
verifyRetainedFile(await reader.stat({ signal }), sealed);
|
|
738
1129
|
return bytes;
|
|
739
1130
|
};
|
|
740
1131
|
const range = await select?.({ size: written, read });
|
|
741
|
-
if (range && (!Number.isSafeInteger(range.start) || !Number.isSafeInteger(range.end) || range.start < 0 || range.end < range.start || range.end > written)) throw new
|
|
1132
|
+
if (range && (!Number.isSafeInteger(range.start) || !Number.isSafeInteger(range.end) || range.start < 0 || range.end < range.start || range.end > written)) throw new FsError9("EINVAL", { message: "Invalid LLM spool selection" });
|
|
742
1133
|
let position = range?.start ?? 0;
|
|
743
1134
|
const end = range?.end ?? written;
|
|
744
1135
|
while (position < end) {
|
|
@@ -766,7 +1157,7 @@ async function createLlmSpool(fs, directory, signal, purpose = "output") {
|
|
|
766
1157
|
|
|
767
1158
|
// packages/safe-bash-command-llm/src/extract-range.ts
|
|
768
1159
|
init_buffer();
|
|
769
|
-
import { yieldTurn } from "../../safe-bash-contracts/yield.js";
|
|
1160
|
+
import { yieldTurn as yieldTurn2 } from "../../safe-bash-contracts/yield.js";
|
|
770
1161
|
|
|
771
1162
|
// packages/safe-bash-command-llm/src/word-ranges.ts
|
|
772
1163
|
init_buffer();
|
|
@@ -789,7 +1180,7 @@ async function findExtractedRange(reader, last, signal) {
|
|
|
789
1180
|
let cacheStart = -1, work = 0;
|
|
790
1181
|
async function byte(position2) {
|
|
791
1182
|
signal.throwIfAborted();
|
|
792
|
-
if (++work % 4096 === 0) await
|
|
1183
|
+
if (++work % 4096 === 0) await yieldTurn2(signal);
|
|
793
1184
|
if (position2 < 0 || position2 >= reader.size) throw new Error("Invalid extraction position");
|
|
794
1185
|
if (position2 < cacheStart || position2 >= cacheStart + cache.length) {
|
|
795
1186
|
cache = await reader.read(position2, Math.min(16384, reader.size - position2));
|
|
@@ -861,19 +1252,19 @@ async function findExtractedRange(reader, last, signal) {
|
|
|
861
1252
|
|
|
862
1253
|
// packages/safe-bash-command-llm/src/file-source.ts
|
|
863
1254
|
init_buffer();
|
|
864
|
-
import { FsError as
|
|
1255
|
+
import { FsError as FsError10 } from "../../safe-bash-contracts/index.js";
|
|
865
1256
|
function sameFile(actual, expected) {
|
|
866
1257
|
const identified = expected.opaqueIdentity !== void 0 ? expected.opaqueIdentity === actual.opaqueIdentity : expected.dev !== void 0 && expected.ino !== void 0 && expected.dev === actual.dev && expected.ino === actual.ino;
|
|
867
|
-
if (!identified || expected.identityScope === void 0 || expected.identityScope !== actual.identityScope || actual.type !== "file" || actual.size !== expected.size || actual.revision !== expected.revision || actual.opaqueVersion !== expected.opaqueVersion || actual.mtimeMs !== expected.mtimeMs || actual.ctimeMs !== expected.ctimeMs) throw new
|
|
1258
|
+
if (!identified || expected.identityScope === void 0 || expected.identityScope !== actual.identityScope || actual.type !== "file" || actual.size !== expected.size || actual.revision !== expected.revision || actual.opaqueVersion !== expected.opaqueVersion || actual.mtimeMs !== expected.mtimeMs || actual.ctimeMs !== expected.ctimeMs) throw new FsError10("EBUSY", { message: "LLM attachment changed" });
|
|
868
1259
|
}
|
|
869
1260
|
async function fileSource({ fs, path, signal, maxBytes = Infinity, expectedStat }) {
|
|
870
1261
|
signal.throwIfAborted();
|
|
871
1262
|
const capabilities = await fs.capabilitiesFor?.(path, { signal }) ?? fs.capabilities;
|
|
872
|
-
if (!capabilities.retainedRead || !fs.openReadFile) throw new
|
|
1263
|
+
if (!capabilities.retainedRead || !fs.openReadFile) throw new FsError10("ENOTSUP", { message: "LLM attachment sources require retained reads" });
|
|
873
1264
|
const expected = await fs.stat(path, { signal });
|
|
874
1265
|
if (expectedStat) sameFile(expected, expectedStat);
|
|
875
|
-
if (expected.type !== "file") throw new
|
|
876
|
-
if (expected.size > maxBytes) throw new
|
|
1266
|
+
if (expected.type !== "file") throw new FsError10("EINVAL", { path });
|
|
1267
|
+
if (expected.size > maxBytes) throw new FsError10("EFBIG", { message: "LLM attachment input byte limit exceeded" });
|
|
877
1268
|
const reader = await fs.openReadFile(path, { signal });
|
|
878
1269
|
let closing;
|
|
879
1270
|
const dispose = () => closing ??= reader.close();
|
|
@@ -887,18 +1278,18 @@ async function fileSource({ fs, path, signal, maxBytes = Infinity, expectedStat
|
|
|
887
1278
|
return {
|
|
888
1279
|
dispose,
|
|
889
1280
|
bytes: { async *[Symbol.asyncIterator]() {
|
|
890
|
-
if (consumed || closing) throw new
|
|
1281
|
+
if (consumed || closing) throw new FsError10("EBADF", { message: "LLM attachment source is closed" });
|
|
891
1282
|
consumed = true;
|
|
892
1283
|
let position = 0;
|
|
893
1284
|
while (position < expected.size) {
|
|
894
1285
|
signal.throwIfAborted();
|
|
895
|
-
if (closing) throw new
|
|
1286
|
+
if (closing) throw new FsError10("EBADF", { message: "LLM attachment source is closed" });
|
|
896
1287
|
sameFile(await reader.stat({ signal }), expected);
|
|
897
1288
|
const length = Math.min(16384, expected.size - position);
|
|
898
1289
|
const bytes = await reader.read(position, length, { signal });
|
|
899
|
-
if (closing) throw new
|
|
1290
|
+
if (closing) throw new FsError10("EBADF", { message: "LLM attachment source is closed" });
|
|
900
1291
|
signal.throwIfAborted();
|
|
901
|
-
if (!bytes.byteLength || bytes.byteLength > length) throw new
|
|
1292
|
+
if (!bytes.byteLength || bytes.byteLength > length) throw new FsError10("EIO", { message: "Invalid LLM attachment read" });
|
|
902
1293
|
sameFile(await reader.stat({ signal }), expected);
|
|
903
1294
|
position += bytes.byteLength;
|
|
904
1295
|
yield bytes;
|
|
@@ -940,8 +1331,8 @@ function parseLlmSchemaDsl(input, multi = false) {
|
|
|
940
1331
|
|
|
941
1332
|
// packages/safe-bash-command-llm/src/schema-input.ts
|
|
942
1333
|
init_buffer();
|
|
943
|
-
import { FsError as
|
|
944
|
-
import { pathOf as
|
|
1334
|
+
import { FsError as FsError11 } from "../../safe-bash-contracts/index.js";
|
|
1335
|
+
import { pathOf as pathOf4 } from "../../safe-bash-contracts/path.js";
|
|
945
1336
|
async function resolveLlmSchemaInput(context, input, options) {
|
|
946
1337
|
context.signal.throwIfAborted();
|
|
947
1338
|
let schema;
|
|
@@ -960,12 +1351,12 @@ async function resolveLlmSchemaInput(context, input, options) {
|
|
|
960
1351
|
}
|
|
961
1352
|
if (schema === void 0 && (trimmed.includes(" ") || input.includes(","))) schema = parseLlmSchemaDsl(input);
|
|
962
1353
|
if (schema === void 0) {
|
|
963
|
-
const path =
|
|
1354
|
+
const path = pathOf4(context, input);
|
|
964
1355
|
let stat;
|
|
965
1356
|
try {
|
|
966
1357
|
stat = await context.fs.stat(path, { signal: context.signal });
|
|
967
1358
|
} catch (error) {
|
|
968
|
-
if (!(error instanceof
|
|
1359
|
+
if (!(error instanceof FsError11) || error.code !== "ENOENT") throw error;
|
|
969
1360
|
}
|
|
970
1361
|
if (stat) {
|
|
971
1362
|
const source = await fileSource({ fs: context.fs, path, signal: context.signal, maxBytes: options.maxBytes ?? Infinity, expectedStat: stat });
|
|
@@ -1175,7 +1566,7 @@ init_buffer();
|
|
|
1175
1566
|
|
|
1176
1567
|
// packages/safe-bash-command-llm/src/model-selection.ts
|
|
1177
1568
|
init_buffer();
|
|
1178
|
-
import { yieldTurn as
|
|
1569
|
+
import { yieldTurn as yieldTurn3 } from "../../safe-bash-contracts/yield.js";
|
|
1179
1570
|
function getLlmModelAliases({ provider, model }, configured) {
|
|
1180
1571
|
const aliases = new Set(model.aliases);
|
|
1181
1572
|
for (const [alias, target] of Object.entries(configured)) {
|
|
@@ -1189,7 +1580,7 @@ async function selectLlmModelByQuery(models, queries, configuredAliases = {}, si
|
|
|
1189
1580
|
const normalized = queries.map((query) => query.toLowerCase());
|
|
1190
1581
|
for (let index = 0; index < models.length; index++) {
|
|
1191
1582
|
signal?.throwIfAborted();
|
|
1192
|
-
if (signal && index && index % 256 === 0) await
|
|
1583
|
+
if (signal && index && index % 256 === 0) await yieldTurn3(signal);
|
|
1193
1584
|
const entry = models[index];
|
|
1194
1585
|
const terms = [`${entry.provider.name}: ${entry.model.id}`, ...getLlmModelAliases(entry, configuredAliases)].map((value) => value.toLowerCase());
|
|
1195
1586
|
if (normalized.every((query) => terms.some((term) => term.includes(query))) && (!selected || [...entry.model.id].length < [...selected.model.id].length)) selected = entry;
|
|
@@ -1421,13 +1812,13 @@ async function execute(context, service, limits, templateLoaderOptions) {
|
|
|
1421
1812
|
signal.throwIfAborted();
|
|
1422
1813
|
if (closed) throw new Error("LLM invocation is closed");
|
|
1423
1814
|
work++;
|
|
1424
|
-
if (work % 256 === 0) await
|
|
1815
|
+
if (work % 256 === 0) await yieldTurn4(signal);
|
|
1425
1816
|
};
|
|
1426
1817
|
let outputSpool;
|
|
1427
1818
|
let outputBytes = 0;
|
|
1428
1819
|
let writing = false;
|
|
1429
1820
|
const write = async (chunk) => {
|
|
1430
|
-
if (chunk.byteLength > (limits?.maxOutputBytes ?? Infinity) - outputBytes) throw new
|
|
1821
|
+
if (chunk.byteLength > (limits?.maxOutputBytes ?? Infinity) - outputBytes) throw new FsError12("EFBIG", { message: "llm output byte limit exceeded" });
|
|
1431
1822
|
outputBytes += chunk.byteLength;
|
|
1432
1823
|
if (outputSpool) {
|
|
1433
1824
|
await outputSpool.write(chunk);
|
|
@@ -1451,7 +1842,7 @@ async function execute(context, service, limits, templateLoaderOptions) {
|
|
|
1451
1842
|
const inputLimit = Math.min(context.inputBudget?.maxBytes ?? Infinity, limits?.maxInputBytes ?? Infinity);
|
|
1452
1843
|
const checkInput = (size) => {
|
|
1453
1844
|
context.inputBudget?.check(inputBytes + size);
|
|
1454
|
-
if (size > inputLimit - inputBytes) throw new
|
|
1845
|
+
if (size > inputLimit - inputBytes) throw new FsError12("EFBIG", { message: "llm input byte limit exceeded" });
|
|
1455
1846
|
};
|
|
1456
1847
|
const admitInput = (size) => {
|
|
1457
1848
|
checkInput(size);
|
|
@@ -1543,7 +1934,8 @@ async function execute(context, service, limits, templateLoaderOptions) {
|
|
|
1543
1934
|
multi: Boolean(args.schemaMulti),
|
|
1544
1935
|
maxBytes: inputLimit - inputBytes,
|
|
1545
1936
|
admitBytes: admitInput,
|
|
1546
|
-
loadTemplate: (name) => templateStore.load(name)
|
|
1937
|
+
loadTemplate: (name) => templateStore.load(name),
|
|
1938
|
+
loadSchema: (id) => loadLlmStoredSchema({ ...context, signal }, id, { maxBytes: inputLimit - inputBytes, admitBytes: admitInput })
|
|
1547
1939
|
}) : void 0;
|
|
1548
1940
|
if (args.save && args.template) throw new Error("Error: --save cannot be used with --template");
|
|
1549
1941
|
let stored;
|
|
@@ -1668,7 +2060,7 @@ ${args.prompt}` : evaluated.prompt;
|
|
|
1668
2060
|
for (const attachment of args.attachments) {
|
|
1669
2061
|
await step();
|
|
1670
2062
|
if (attachment.path.includes("://")) throw new Error("URL attachments are not supported");
|
|
1671
|
-
const path =
|
|
2063
|
+
const path = pathOf5(context, attachment.path);
|
|
1672
2064
|
const stat = await interrupted(() => context.fs.stat(path, { signal }), signal);
|
|
1673
2065
|
checkInput(stat.size);
|
|
1674
2066
|
if (streamed) {
|
|
@@ -1685,14 +2077,14 @@ ${args.prompt}` : evaluated.prompt;
|
|
|
1685
2077
|
await source.dispose();
|
|
1686
2078
|
},
|
|
1687
2079
|
bytes: { async *[Symbol.asyncIterator]() {
|
|
1688
|
-
if (closed2 || consumed) throw new
|
|
2080
|
+
if (closed2 || consumed) throw new FsError12("EBADF", { message: "LLM attachment source is closed" });
|
|
1689
2081
|
consumed = true;
|
|
1690
2082
|
signal.throwIfAborted();
|
|
1691
2083
|
if (!first.done) yield first.value;
|
|
1692
2084
|
while (true) {
|
|
1693
|
-
if (closed2) throw new
|
|
2085
|
+
if (closed2) throw new FsError12("EBADF", { message: "LLM attachment source is closed" });
|
|
1694
2086
|
const next = await interrupted(() => input.next(), signal);
|
|
1695
|
-
if (closed2) throw new
|
|
2087
|
+
if (closed2) throw new FsError12("EBADF", { message: "LLM attachment source is closed" });
|
|
1696
2088
|
if (next.done) break;
|
|
1697
2089
|
yield next.value;
|
|
1698
2090
|
}
|
|
@@ -1816,6 +2208,7 @@ function llmCommands(options = {}) {
|
|
|
1816
2208
|
|
|
1817
2209
|
export {
|
|
1818
2210
|
createLlmConfiguration,
|
|
2211
|
+
loadLlmStoredSchema,
|
|
1819
2212
|
validateLlmTemplateParameters,
|
|
1820
2213
|
llmTemplateUsesInput,
|
|
1821
2214
|
evaluateLlmTemplate,
|