@poe-platform/safe-bash 0.1.803 → 0.1.804
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 +56 -31
- package/dist/image-ast/ast.d.ts +1 -0
- package/dist/image-ast/browser/ast.d.ts +1 -0
- package/dist/image-ast/browser/codecs/jpeg.d.ts +2 -2
- package/dist/image-ast/codecs/jpeg.d.ts +2 -2
- package/dist/image-ast/index.browser.js +692 -8364
- package/dist/image-ast/index.js +692 -8364
- package/dist/mp4-ast/codecs.d.ts +7 -2
- package/dist/safe-bash/chunks/{chunk-CHYGPFVM.js → chunk-22SX3F2R.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-FBUCWVTE.js → chunk-2IVBJTBD.js} +1 -1
- package/dist/safe-bash/chunks/chunk-2POETUMB.js +190 -0
- package/dist/safe-bash/chunks/{chunk-XVOSKJE2.js → chunk-47D7WBJK.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-VKNVHEX3.js → chunk-4ESI236Y.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-74GHTNJA.js → chunk-4KTMKD5W.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-55YJASTN.js → chunk-4T53AERN.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-DQP3VHSB.js → chunk-5XIFJVOO.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-5OHX7C2V.js → chunk-62BOHHJT.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-HZAMGT5I.js → chunk-67WIFM3N.js} +17 -6
- package/dist/safe-bash/chunks/{chunk-4D4N7IU2.js → chunk-6LNFRPW5.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-6O77NL2S.js → chunk-6SMICPI3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-4BSJLKNM.js → chunk-7O76UFQD.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PNBBUWSM.js → chunk-AW5KIT6V.js} +3488 -39
- package/dist/safe-bash/chunks/{chunk-JMMEIDPF.js → chunk-B2Z73HTZ.js} +52 -28
- package/dist/safe-bash/chunks/chunk-B3ZMOJVM.js +319 -0
- package/dist/safe-bash/chunks/{chunk-7ZBU7KYV.js → chunk-CFAWS3O4.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I5HZ4FGE.js → chunk-CL2FCTTO.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-2LSAMQER.js → chunk-CTXNARJH.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-TFIBK2GI.js → chunk-D5Q7NFWI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-OQRVVGR6.js → chunk-DSOOVZ6Q.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-VTH3MLDU.js → chunk-DUTAG6ZD.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-XAQMU6OY.js → chunk-EE5YGFIZ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-FZE4HW6G.js → chunk-EJOYT2ME.js} +1 -1
- package/dist/safe-bash/chunks/chunk-FAAIR6EJ.js +887 -0
- package/dist/safe-bash/chunks/{chunk-OV6IHKO6.js → chunk-FOB2FZR4.js} +2 -2
- package/dist/safe-bash/chunks/chunk-G6V4RRSQ.js +14 -0
- package/dist/safe-bash/chunks/{chunk-UTBUUFDM.js → chunk-GGQAGQXQ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K6VCD7IY.js → chunk-HIIYIJ5G.js} +2 -4
- package/dist/safe-bash/chunks/{chunk-VBTDHOWC.js → chunk-IOHH2GTI.js} +4 -3
- package/dist/safe-bash/chunks/{chunk-CTVWDACF.js → chunk-IQW34XQT.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-HZ7BWKQ3.js → chunk-IS572AAT.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-AUSNDQTJ.js → chunk-JPSUHHOA.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-ZVD5IS4V.js → chunk-KBZ4UB2O.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-AM5ESLPH.js → chunk-KU5CVWKA.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-RYFQ3LZG.js → chunk-LPOVNKNB.js} +173 -153
- package/dist/safe-bash/chunks/{chunk-46Z5E5EV.js → chunk-MBOC3LZ4.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-6PAVEFT3.js → chunk-N4BQFD3P.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-CS4MNM6I.js → chunk-NGKCVNWS.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-7R5BDCG7.js → chunk-OHML2BEU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-C5OWC2TL.js → chunk-OQ3AGYCZ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-B7TAL7S5.js → chunk-PTAEWLSE.js} +0 -2
- package/dist/safe-bash/chunks/{chunk-LVOBFF4D.js → chunk-Q4FNLOTI.js} +1 -1
- package/dist/safe-bash/chunks/chunk-Q5XO3NAS.js +1036 -0
- package/dist/safe-bash/chunks/{chunk-GEG3BWGE.js → chunk-RHFRJIWQ.js} +1 -1
- package/dist/safe-bash/chunks/chunk-RUR6J33T.js +11 -0
- package/dist/safe-bash/chunks/{chunk-EEEWOYEG.js → chunk-S4RFUUXO.js} +839 -24
- package/dist/safe-bash/chunks/{chunk-RRR7AQ24.js → chunk-SD2ISU5L.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3NDIFSNM.js → chunk-SUJ3NTMH.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-R3NAKOED.js → chunk-SZRUU5HS.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-PH63PLPZ.js → chunk-TC3F4UFF.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3R3AANOR.js → chunk-TCKYOLUE.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-D3ANYGMC.js → chunk-UV4X32QU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-E7OYNDGL.js → chunk-V7QT2RWC.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-B7PIL77G.js → chunk-W2IYOVHK.js} +804 -1195
- package/dist/safe-bash/chunks/{chunk-3HQU4OJO.js → chunk-XNGVOSGI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-J42RIHHJ.js → chunk-XQWCQSRN.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-A7XEHALN.js → chunk-Y7FW6GLT.js} +6 -6
- package/dist/safe-bash/chunks/{chunk-QGUV42T5.js → chunk-YL3GBUG4.js} +1 -1
- package/dist/safe-bash/chunks/chunk-YOXUCJER.js +389 -0
- package/dist/safe-bash/chunks/{chunk-HBCN24ZA.js → chunk-Z2AAYYJN.js} +2 -2
- package/dist/safe-bash/chunks/chunk-ZKYKJCZZ.js +30 -0
- package/dist/safe-bash/chunks/core-IE3AFIDX.js +85806 -0
- package/dist/safe-bash/chunks/{ffmpeg-WTC3TEFI.js → ffmpeg-YANDK6HU.js} +2 -2
- package/dist/safe-bash/chunks/{gh-6WU6PXL4.js → gh-4MBJ2S5V.js} +2 -2
- package/dist/safe-bash/chunks/{git-EFZIGJW4.js → git-2QONJNRQ.js} +2 -2
- package/dist/safe-bash/chunks/{imagemagick-EIEYGWPF.js → imagemagick-JLEHGYSN.js} +2 -2
- package/dist/safe-bash/chunks/{mmdc-ROQJT5HQ.js → mmdc-6LD7A6ND.js} +2 -2
- package/dist/safe-bash/chunks/{pdfimages-DW7LWXFI.js → pdfimages-RSHL7LOP.js} +2 -2
- package/dist/safe-bash/chunks/{pdfinfo-TIP6XLUQ.js → pdfinfo-L3SGWPNG.js} +2 -2
- package/dist/safe-bash/chunks/{pdftk-DMG22ITZ.js → pdftk-LFBJNU5A.js} +2 -2
- package/dist/safe-bash/chunks/{pdftoppm-WNDYR72T.js → pdftoppm-NXXFUIHG.js} +2 -2
- package/dist/safe-bash/chunks/{pdftotext-5IPZ4NI7.js → pdftotext-4IHNWT6F.js} +2 -2
- package/dist/safe-bash/chunks/{qpdf-TTX2DIUA.js → qpdf-ZEIREV63.js} +2 -2
- package/dist/safe-bash/chunks/read-builtin-A4QKAT45.js +9 -0
- package/dist/safe-bash/chunks/{sips-XYS46JPJ.js → sips-D5YBG2V3.js} +2 -2
- package/dist/safe-bash/chunks/{soffice-TU73E5KL.js → soffice-RAJU3JUT.js} +2 -2
- package/dist/safe-bash/chunks/source-files-3XWRRHFA.js +7 -0
- package/dist/safe-bash/chunks/{wkhtmltopdf-FSZ2CHGE.js → wkhtmltopdf-7UE4FORZ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-7KWZXKY6.js → chunk-26RTBV2I.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-AQJ2ROJO.js → chunk-2WYNMZR2.js} +10 -8
- package/dist/safe-bash/command-chunks/{chunk-BDSMROQZ.js → chunk-36GFRF2N.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-GC5TJZOF.js → chunk-3VIA2IA7.js} +114 -31
- package/dist/safe-bash/command-chunks/{chunk-NKFYQSES.js → chunk-4CTI3ZTX.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-WH627NJL.js → chunk-4MYP2FX4.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-ZDN7MJE6.js → chunk-4R5ADJM5.js} +11 -1
- package/dist/safe-bash/command-chunks/{chunk-P2N33UMN.js → chunk-5MIKM54M.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-DB453IE6.js → chunk-6FZQUOSJ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-PICVQ6B5.js → chunk-6GKYHPJG.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-7K6JYKPJ.js → chunk-6M2ELGEN.js} +17 -15
- package/dist/safe-bash/command-chunks/{chunk-PXEIT2O4.js → chunk-6UR7V3ET.js} +8 -1
- package/dist/safe-bash/command-chunks/{chunk-6KJ3LPI2.js → chunk-6XBS5B46.js} +26 -3
- package/dist/safe-bash/command-chunks/{chunk-5PWJG2UK.js → chunk-6YXLZX7L.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-EK6YNAXT.js → chunk-753YOR54.js} +31 -5
- package/dist/safe-bash/command-chunks/{chunk-RMWQAAO5.js → chunk-7IR4NRNE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-FZTK4MFI.js → chunk-7NM73SVK.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-NXEQ3ESQ.js → chunk-7QD5YY4F.js} +6 -11
- package/dist/safe-bash/command-chunks/{chunk-EMPU65ZK.js → chunk-A5LBSJGH.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-4FEVBOL5.js → chunk-ARZMP2L2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-NKIELG7Y.js → chunk-BAKFZ477.js} +40 -19
- package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
- package/dist/safe-bash/command-chunks/{chunk-CQHP3I66.js → chunk-BOEOJS2Q.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XS72HTMA.js → chunk-BWGGLYEB.js} +5 -22
- package/dist/safe-bash/command-chunks/{chunk-PMBFZXTK.js → chunk-C5ZZKP7V.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-LHIOAFWW.js → chunk-C7SEB6WU.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XPT2UGBF.js → chunk-CHJKFRT7.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TIOCQVUQ.js → chunk-CON26Q2O.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-E55UKBIE.js → chunk-DBAT3IK2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-Z45N42QC.js → chunk-DPAYAVMS.js} +15 -1
- package/dist/safe-bash/command-chunks/chunk-DS3NXVUM.js +368 -0
- package/dist/safe-bash/command-chunks/{chunk-5ZMZ573Q.js → chunk-DSJ3VRL3.js} +16 -4
- package/dist/safe-bash/command-chunks/{chunk-K2GDEMEU.js → chunk-EFRCFWVR.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-DZCY63VJ.js → chunk-EV6HIJ5H.js} +6 -5
- package/dist/safe-bash/command-chunks/{chunk-JDYXY44P.js → chunk-FJURV46Y.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-TZZ4WUKH.js → chunk-FZAWGKSE.js} +6 -4
- package/dist/safe-bash/command-chunks/{chunk-YHFXOX6U.js → chunk-GOCFQ6XV.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-QVOS4YXL.js → chunk-HH5O7DJI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3HHCU5YU.js → chunk-HK7F5SDC.js} +13 -0
- package/dist/safe-bash/command-chunks/{chunk-JNZ3CVAE.js → chunk-HQBXIZC7.js} +8 -3
- package/dist/safe-bash/command-chunks/{chunk-V4K2JDYU.js → chunk-I63DBZXZ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-WNE7FPVR.js → chunk-I64TLTIW.js} +24 -16
- package/dist/safe-bash/command-chunks/{chunk-GFC2NTDG.js → chunk-ICANWOXH.js} +5 -29
- package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-TGSNCQSR.js → chunk-JT4RYCA6.js} +1771 -1663
- package/dist/safe-bash/command-chunks/{chunk-II77KPZN.js → chunk-JWW6FYBN.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ZYXH3B66.js → chunk-LCJWKTCJ.js} +250 -203
- package/dist/safe-bash/command-chunks/chunk-LU4HBPP2.js +97 -0
- package/dist/safe-bash/command-chunks/{chunk-XJXU3VVH.js → chunk-LWOE65OE.js} +20 -5
- package/dist/safe-bash/command-chunks/{chunk-GMIHJYDG.js → chunk-M32HFSX7.js} +22 -6
- package/dist/safe-bash/command-chunks/{chunk-YG4EPFWC.js → chunk-M3NINRDU.js} +2880 -172
- package/dist/safe-bash/command-chunks/chunk-MQREDAL6.js +164 -0
- package/dist/safe-bash/command-chunks/{chunk-LWS62ISU.js → chunk-N6DIASO2.js} +1 -1
- package/dist/safe-bash/command-chunks/chunk-NGL7YK7O.js +188 -0
- package/dist/safe-bash/command-chunks/{chunk-EARHPPPJ.js → chunk-NJYHWKIL.js} +39 -9
- package/dist/safe-bash/command-chunks/{chunk-6JSIFWYT.js → chunk-OJQRSCBP.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-OQU6UT6X.js → chunk-OV3XREFN.js} +11 -0
- package/dist/safe-bash/command-chunks/{chunk-MIXBO6U7.js → chunk-PTZLF456.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-ALDC4XP4.js → chunk-QILLRNES.js} +34 -10
- package/dist/safe-bash/command-chunks/{chunk-L22T3H7L.js → chunk-QR25JLKO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-NASVPT6F.js → chunk-R7C4MGZ5.js} +17 -224
- package/dist/safe-bash/command-chunks/{chunk-LCF3OB7P.js → chunk-RBME3JEH.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2KG2QLJE.js → chunk-RFWGYT7G.js} +3 -0
- package/dist/safe-bash/command-chunks/{chunk-5TBUOBDE.js → chunk-RZMVRT26.js} +27 -13
- package/dist/safe-bash/command-chunks/chunk-TFR6B3WB.js +44 -0
- package/dist/safe-bash/command-chunks/chunk-TOH3OF3O.js +179 -0
- package/dist/safe-bash/command-chunks/chunk-TT4DAFBT.js +13621 -0
- package/dist/safe-bash/command-chunks/{chunk-LWSBAWLT.js → chunk-TXI64OAG.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-GIRNFXP3.js → chunk-TZRI7BJZ.js} +45 -15
- package/dist/safe-bash/command-chunks/{chunk-QOKBZFFD.js → chunk-U3MMODA5.js} +2 -7
- package/dist/safe-bash/command-chunks/{chunk-ZYHTWNAE.js → chunk-UAW423ZL.js} +11 -11
- package/dist/safe-bash/command-chunks/{chunk-C5YYCQHW.js → chunk-UXEEUGOV.js} +222 -12
- package/dist/safe-bash/command-chunks/{chunk-GY3BWK7K.js → chunk-VOZPMJRX.js} +87 -80
- package/dist/safe-bash/command-chunks/{chunk-ILX2NOLF.js → chunk-WPANOB4A.js} +20 -20
- package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
- package/dist/safe-bash/command-chunks/{chunk-HDCNKOIX.js → chunk-XGI57GCN.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5UBXNSFZ.js → chunk-XUCU7QQT.js} +1281 -1278
- package/dist/safe-bash/command-chunks/chunk-Y22VXJBD.js +296 -0
- package/dist/safe-bash/command-chunks/{chunk-WVHONVZ4.js → chunk-YMFUUPDX.js} +5 -3
- package/dist/safe-bash/command-chunks/{chunk-IR2BY7EL.js → chunk-YYGIBXFZ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-MSFXC3OC.js → chunk-Z4FO6OHE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-WWIBP2ET.js → chunk-Z5ZZVDUD.js} +143 -22
- package/dist/safe-bash/command-chunks/{chunk-LOICUCHG.js → chunk-ZHN3QDCI.js} +1 -1
- package/dist/safe-bash/commands/alias/index.d.ts +2 -0
- package/dist/safe-bash/commands/alias/index.js +2 -0
- package/dist/safe-bash/commands/apply-patch/index.browser.js +2 -3
- package/dist/safe-bash/commands/apply-patch/index.d.ts +0 -1
- package/dist/safe-bash/commands/apply-patch/index.js +0 -1
- package/dist/safe-bash/commands/archive/index.browser.js +2 -3
- package/dist/safe-bash/commands/archive/index.d.ts +0 -1
- package/dist/safe-bash/commands/archive/index.js +0 -1
- package/dist/safe-bash/commands/bytes/index.js +2 -1
- package/dist/safe-bash/commands/chmod/index.browser.js +1 -1
- package/dist/safe-bash/commands/column/index.browser.js +2 -3
- package/dist/safe-bash/commands/column/index.d.ts +0 -1
- package/dist/safe-bash/commands/column/index.js +0 -1
- package/dist/safe-bash/commands/copy-source.js +1 -0
- package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
- package/dist/safe-bash/commands/csvkit/index.browser.js +72 -0
- package/dist/safe-bash/commands/csvkit/index.d.ts +0 -5
- package/dist/safe-bash/commands/csvkit/index.js +0 -50
- package/dist/safe-bash/commands/docx/index.browser.js +5 -7
- package/dist/safe-bash/commands/du/index.browser.js +2 -3
- package/dist/safe-bash/commands/du/index.d.ts +0 -1
- package/dist/safe-bash/commands/du/index.js +0 -1
- package/dist/safe-bash/commands/expr/index.browser.js +2 -3
- package/dist/safe-bash/commands/expr/index.d.ts +0 -1
- package/dist/safe-bash/commands/expr/index.js +0 -1
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/file/index.browser.js +2 -3
- package/dist/safe-bash/commands/file/index.d.ts +0 -1
- package/dist/safe-bash/commands/file/index.js +0 -1
- package/dist/safe-bash/commands/filesystem.js +1 -1
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/grep-aliases/index.browser.js +3 -3
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/html-to-markdown/index.browser.js +2 -3
- package/dist/safe-bash/commands/html-to-markdown/index.d.ts +0 -1
- package/dist/safe-bash/commands/html-to-markdown/index.js +0 -1
- package/dist/safe-bash/commands/htmlq/index.d.ts +1 -5
- package/dist/safe-bash/commands/htmlq/index.js +1 -143
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
- package/dist/safe-bash/commands/media/index.browser.js +4 -16314
- package/dist/safe-bash/commands/media/index.d.ts +1 -5
- package/dist/safe-bash/commands/media/index.js +1 -3
- package/dist/safe-bash/commands/media/plugin.d.ts +1 -18
- package/dist/safe-bash/commands/media/plugin.js +1 -90
- package/dist/safe-bash/commands/media/remote.d.ts +1 -63
- package/dist/safe-bash/commands/media/remote.js +1 -405
- package/dist/safe-bash/commands/media/settings.d.ts +1 -4
- package/dist/safe-bash/commands/media/settings.js +1 -26
- package/dist/safe-bash/commands/metadata/index.browser.js +3 -4
- package/dist/safe-bash/commands/metadata/index.d.ts +0 -1
- package/dist/safe-bash/commands/metadata/index.js +2 -2
- package/dist/safe-bash/commands/mktemp/index.browser.js +1 -1
- package/dist/safe-bash/commands/network/curl.js +1 -3
- package/dist/safe-bash/commands/network/index.browser.js +3 -4
- package/dist/safe-bash/commands/network/public.d.ts +0 -1
- package/dist/safe-bash/commands/network/public.js +0 -1
- package/dist/safe-bash/commands/network/transport.js +2 -1
- package/dist/safe-bash/commands/network/wget.js +1 -3
- package/dist/safe-bash/commands/node/browser.d.ts +0 -1
- package/dist/safe-bash/commands/node/browser.js +0 -1
- package/dist/safe-bash/commands/node/default-runtime.d.ts +3 -0
- package/dist/safe-bash/commands/node/default-runtime.js +15 -0
- package/dist/safe-bash/commands/node/index.browser.js +7 -8
- package/dist/safe-bash/commands/node/index.js +3 -3
- package/dist/safe-bash/commands/node/path.js +1 -1
- package/dist/safe-bash/commands/node/preload.d.ts +1 -1
- package/dist/safe-bash/commands/node/preload.js +4 -1
- package/dist/safe-bash/commands/node/quickjs.d.ts +2 -0
- package/dist/safe-bash/commands/node/quickjs.js +2 -0
- package/dist/safe-bash/commands/node/safejs.js +26 -12
- package/dist/safe-bash/commands/op/index.browser.js +2 -3
- package/dist/safe-bash/commands/op/index.d.ts +0 -11
- package/dist/safe-bash/commands/op/index.js +0 -84
- package/dist/safe-bash/commands/pandoc/index.browser.js +44 -0
- package/dist/safe-bash/commands/pandoc/index.d.ts +0 -1
- package/dist/safe-bash/commands/pandoc/index.js +0 -1
- package/dist/safe-bash/commands/pr/index.browser.js +2 -2
- package/dist/safe-bash/commands/python/docker-runner.js +4 -3
- package/dist/safe-bash/commands/python/docker.d.ts +1 -0
- package/dist/safe-bash/commands/python/docker.js +5 -2
- package/dist/safe-bash/commands/python/index.browser.js +17 -13
- package/dist/safe-bash/commands/python/index.d.ts +2 -1
- package/dist/safe-bash/commands/python/index.js +10 -8
- package/dist/safe-bash/commands/python/llm-capability.js +65 -2
- package/dist/safe-bash/commands/python/llm-dependencies.d.ts +27 -0
- package/dist/safe-bash/commands/python/llm-dependencies.js +66 -0
- package/dist/safe-bash/commands/python/llm-module.js +6 -4
- package/dist/safe-bash/commands/python/llm-reference-module.d.ts +3 -0
- package/dist/safe-bash/commands/python/llm-reference-module.js +690 -0
- package/dist/safe-bash/commands/python/worker.browser.js +2 -3
- package/dist/safe-bash/commands/python/worker.d.ts +0 -1
- package/dist/safe-bash/commands/python/worker.js +0 -1
- package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.d.ts +1 -1
- package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.js +3 -3
- package/dist/safe-bash/commands/regex-execution/public.browser.js +7 -7
- package/dist/safe-bash/commands/safejs/options.js +5 -1
- package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -0
- package/dist/safe-bash/commands/safejs/runtime.js +1 -1
- package/dist/safe-bash/commands/split/index.browser.js +2 -3
- package/dist/safe-bash/commands/split/index.d.ts +0 -1
- package/dist/safe-bash/commands/split/index.js +0 -1
- package/dist/safe-bash/commands/ssconvert/index.browser.js +98 -0
- package/dist/safe-bash/commands/stat/index.browser.js +1 -1
- package/dist/safe-bash/commands/stream-format/index.browser.js +3 -4
- package/dist/safe-bash/commands/stream-format/index.d.ts +0 -1
- package/dist/safe-bash/commands/stream-format/index.js +0 -1
- package/dist/safe-bash/commands/stream-inspection/index.browser.js +3 -4
- package/dist/safe-bash/commands/stream-inspection/index.d.ts +0 -1
- package/dist/safe-bash/commands/stream-inspection/index.js +0 -1
- package/dist/safe-bash/commands/streams.js +2 -1
- package/dist/safe-bash/commands/table-text/index.browser.js +3 -4
- package/dist/safe-bash/commands/table-text/index.d.ts +0 -1
- package/dist/safe-bash/commands/table-text/index.js +0 -1
- package/dist/safe-bash/commands/text.js +28 -24
- package/dist/safe-bash/commands/time-env/index.browser.js +3 -4
- package/dist/safe-bash/commands/time-env/index.d.ts +0 -1
- package/dist/safe-bash/commands/time-env/index.js +0 -1
- package/dist/safe-bash/commands/tree/index.browser.js +2 -3
- package/dist/safe-bash/commands/tree/index.d.ts +0 -1
- package/dist/safe-bash/commands/tree/index.js +0 -1
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/unalias/index.d.ts +2 -0
- package/dist/safe-bash/commands/unalias/index.js +2 -0
- package/dist/safe-bash/commands/xml/index.browser.js +2 -2
- package/dist/safe-bash/commands/yq/index.browser.js +2 -2
- package/dist/safe-bash/core.browser.js +2 -2
- package/dist/safe-bash/core.d.ts +7 -1
- package/dist/safe-bash/core.js +7 -1
- package/dist/safe-bash/execution-runtime.js +2 -1
- package/dist/safe-bash/fs/s3/http/index.d.ts +2 -2
- package/dist/safe-bash/fs/s3/http/index.js +1 -1
- package/dist/safe-bash/full-core.browser.js +283 -945
- package/dist/safe-bash/internal/op/types.d.ts +1 -0
- package/dist/safe-bash/jobs.browser.js +5 -5
- package/dist/safe-bash/lazy-optional.d.ts +3 -3
- package/dist/safe-bash/lazy-optional.js +1 -1
- package/dist/safe-bash/opt-in/commands/cmp/index.js +7 -6
- package/dist/safe-bash/opt-in/commands/dd/index.js +1 -1
- package/dist/safe-bash/opt-in/commands/dd/io.js +51 -5
- package/dist/safe-bash/opt-in/commands/truncate/index.js +2 -2
- package/dist/safe-bash/opt-in/commands/yq/native-work.js +2 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +2 -1
- package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -2
- package/dist/safe-bash/opt-in/optional.d.ts +1 -1
- package/dist/safe-bash/opt-in/optional.js +1 -1
- package/dist/safe-bash/opt-in/shell/extensions/read/index.js +2 -344
- package/dist/safe-bash/optional-host.browser.js +23 -18
- package/dist/safe-bash/optional-host.d.ts +1 -0
- package/dist/safe-bash/optional-host.js +1 -0
- package/dist/safe-bash/playwright/controller.js +41 -3
- package/dist/safe-bash/playwright/native-storage-targets.js +4 -2
- package/dist/safe-bash/plugins/base.d.ts +1 -1
- package/dist/safe-bash/plugins/base.js +3 -3
- package/dist/safe-bash/plugins/composition.d.ts +5 -2
- package/dist/safe-bash/plugins/composition.js +10 -7
- package/dist/safe-bash/plugins/index.browser.js +44 -41
- package/dist/safe-bash/plugins/index.js +3 -2
- package/dist/safe-bash/plugins/portable-commands.d.ts +3 -0
- package/dist/safe-bash/plugins/portable-commands.js +31 -0
- package/dist/safe-bash/registry-entry.browser.js +41 -42
- package/dist/safe-bash/search.browser.js +32 -33
- package/dist/safe-bash/shell/arithmetic.js +19 -6
- package/dist/safe-bash/shell/arrays/state.js +1 -1
- package/dist/safe-bash/shell/arrays/syntax.js +4 -3
- package/dist/safe-bash/shell/index.d.ts +0 -1
- package/dist/safe-bash/shell/index.js +0 -1
- package/dist/safe-bash/shell/parser.d.ts +2 -2
- package/dist/safe-bash/shell/parser.js +268 -64
- package/dist/safe-bash/shell/read-builtin.d.ts +3 -0
- package/dist/safe-bash/shell/read-builtin.js +344 -0
- package/dist/safe-bash/shell/runtime.d.ts +21 -4
- package/dist/safe-bash/shell/runtime.js +373 -412
- package/dist/safe-bash/shell/session-state.js +25 -0
- package/dist/safe-bash/shell/shell.js +76 -154
- package/dist/safe-bash/shell/tilde-expansion.d.ts +1 -1
- package/dist/safe-bash/shell/tilde-expansion.js +2 -2
- package/dist/safe-bash/shell/types.d.ts +5 -0
- package/dist/safe-bash/shell/value-state.js +1 -1
- package/dist/safe-bash/shell-entry.browser.js +32 -33
- package/dist/safe-bash/trap.browser.js +4 -4
- package/dist/safe-bash/yq-browser/index.js +1 -1
- package/dist/safe-bash-calendar-engine/time-env/calendar.d.ts +1 -1
- package/dist/safe-bash-calendar-engine/time-env/calendar.js +1 -1
- package/dist/safe-bash-calendar-engine/time-env/format.js +1 -1
- package/dist/safe-bash-command-alias/index.d.ts +13 -0
- package/dist/safe-bash-command-alias/index.js +88 -0
- package/dist/safe-bash-command-apply-patch/apply.js +3 -3
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
- package/dist/safe-bash-command-apply-patch/parser.js +1 -1
- package/dist/safe-bash-command-awk/awk-pipes.js +2 -2
- package/dist/safe-bash-command-awk/awk-reader.js +1 -1
- package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
- package/dist/safe-bash-command-awk/awk.js +5 -5
- package/dist/safe-bash-command-awk/index.js +5 -5
- package/dist/safe-bash-command-bc/index.js +206 -60
- package/dist/safe-bash-command-cmp/index.js +7 -6
- 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-csvkit/index.d.ts +1 -0
- package/dist/safe-bash-command-csvkit/index.js +1505 -7
- package/dist/safe-bash-command-csvkit/sync-support.js +2 -7
- package/dist/safe-bash-command-curl/curl.js +1 -1
- package/dist/safe-bash-command-curl/index.js +1 -1
- package/dist/safe-bash-command-date/date.js +1 -1
- package/dist/safe-bash-command-date/index.js +1 -1
- package/dist/safe-bash-command-dd/index.js +1 -1
- package/dist/safe-bash-command-dd/io.js +51 -5
- package/dist/safe-bash-command-diff/diff.js +1 -1
- package/dist/safe-bash-command-diff/index.js +1 -1
- package/dist/safe-bash-command-diff3/index.js +10 -13
- package/dist/safe-bash-command-exiftool/index.js +278 -50
- package/dist/safe-bash-command-exiftool/registry.d.ts +4 -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-fd/arguments.d.ts +2 -0
- package/dist/safe-bash-command-fd/index.js +42 -12
- package/dist/safe-bash-command-ffmpeg/index.js +356 -66
- package/dist/safe-bash-command-find/find-format.d.ts +3 -0
- package/dist/safe-bash-command-find/find-format.js +1 -1
- package/dist/safe-bash-command-find/find.js +2 -2
- package/dist/safe-bash-command-find/index.js +2 -2
- package/dist/safe-bash-command-fmt/index.js +1 -4
- package/dist/safe-bash-command-fold/engine.d.ts +1 -1
- package/dist/safe-bash-command-fold/family.js +2 -2
- package/dist/safe-bash-command-fold/index.js +1 -1
- package/dist/safe-bash-command-hexdump/command.js +2 -2
- package/dist/safe-bash-command-hexdump/index.js +2 -2
- package/dist/safe-bash-command-html-to-markdown/entities.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/index.js +4 -4
- package/dist/safe-bash-command-html-to-markdown/input.js +3 -3
- package/dist/safe-bash-command-html-to-markdown/parser.js +2 -2
- package/dist/safe-bash-command-html-to-markdown/render.js +3 -3
- package/dist/safe-bash-command-htmlq/contracts.d.ts +5 -2
- package/dist/safe-bash-command-htmlq/index.d.ts +2 -1
- package/dist/safe-bash-command-htmlq/index.js +175 -49
- package/dist/safe-bash-command-htmlq/sync.d.ts +1 -0
- package/dist/safe-bash-command-imagemagick/index.js +56 -6
- package/dist/safe-bash-command-install/arguments.d.ts +27 -0
- package/dist/safe-bash-command-install/arguments.js +224 -0
- package/dist/safe-bash-command-install/index.d.ts +7 -0
- package/dist/safe-bash-command-install/index.js +942 -0
- package/dist/safe-bash-command-install/mode.d.ts +6 -0
- package/dist/safe-bash-command-install/mode.js +71 -0
- package/dist/safe-bash-command-install/options.d.ts +40 -0
- package/dist/safe-bash-command-install/options.js +27 -0
- 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-less/index.js +37 -61
- package/dist/safe-bash-command-llm/command.js +1 -1
- package/dist/safe-bash-command-llm/elevenlabs.js +2 -2
- package/dist/safe-bash-command-llm/index.js +4 -4
- package/dist/safe-bash-command-llm/openai.js +2 -2
- package/dist/safe-bash-command-llm/providers/elevenlabs.js +2 -2
- package/dist/safe-bash-command-llm/providers/index.js +3 -3
- package/dist/safe-bash-command-llm/providers/openai.js +2 -2
- package/dist/safe-bash-command-llm/providers/shared.js +1 -1
- package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.browser.d.ts +463 -46
- package/dist/safe-bash-command-mcp/index.browser.js +19308 -0
- package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.d.ts +15 -6
- package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.js +2804 -2771
- package/dist/safe-bash-command-media/LICENSE +21 -0
- package/dist/safe-bash-command-media/index.d.ts +6 -0
- package/dist/safe-bash-command-media/index.js +30 -0
- package/dist/safe-bash-command-media/plugin.d.ts +18 -0
- package/dist/safe-bash-command-media/plugin.js +11 -0
- package/dist/safe-bash-command-media/remote.d.ts +63 -0
- package/dist/safe-bash-command-media/remote.js +11 -0
- package/dist/safe-bash-command-media/settings.d.ts +4 -0
- package/dist/safe-bash-command-media/settings.js +41 -0
- package/dist/safe-bash-command-mktemp/command.js +1 -1
- package/dist/safe-bash-command-mktemp/index.js +1 -1
- package/dist/safe-bash-command-mmdc/arguments.d.ts +1 -0
- package/dist/safe-bash-command-mmdc/command.d.ts +2 -0
- package/dist/safe-bash-command-mmdc/contracts.d.ts +8 -1
- package/dist/safe-bash-command-mmdc/index.js +359 -7
- package/dist/safe-bash-command-nl/index.js +1 -1
- package/dist/safe-bash-command-nl/nl.js +1 -1
- package/dist/safe-bash-command-node/LICENSE +21 -0
- package/dist/safe-bash-command-node/index.d.ts +17 -0
- package/dist/safe-bash-command-node/index.js +328 -0
- package/dist/safe-bash-command-numfmt/index.js +1 -0
- package/dist/safe-bash-command-od/index.js +10 -6
- package/dist/safe-bash-command-op/index.js +39 -32
- package/dist/safe-bash-command-op/types.d.ts +1 -0
- package/dist/safe-bash-command-pandoc/command.js +3 -3
- package/dist/safe-bash-command-pandoc/index.d.ts +1 -0
- package/dist/safe-bash-command-pandoc/index.js +5 -3
- package/dist/safe-bash-command-pandoc/sync.d.ts +1 -0
- package/dist/safe-bash-command-patch/index.js +4 -4
- package/dist/safe-bash-command-patch/patch.js +4 -4
- package/dist/safe-bash-command-pdfimages/index.js +1 -1
- package/dist/safe-bash-command-pdfinfo/index.js +30 -5
- package/dist/safe-bash-command-pdftk/index.js +21 -23
- package/dist/safe-bash-command-pdftoppm/index.js +17 -4
- package/dist/safe-bash-command-pdftotext/index.js +11 -14
- package/dist/safe-bash-command-qpdf/index.d.ts +1 -0
- package/dist/safe-bash-command-qpdf/index.js +9 -6
- package/dist/safe-bash-command-rg/index.js +1 -1
- package/dist/safe-bash-command-rg/rg-command.js +1 -1
- package/dist/safe-bash-command-sed/index.js +1 -1
- package/dist/safe-bash-command-sed/sed.js +1 -1
- package/dist/safe-bash-command-shuf/input.d.ts +2 -2
- package/dist/safe-bash-command-shuf/input.js +2 -1
- package/dist/safe-bash-command-shuf/shuf.js +4 -2
- package/dist/safe-bash-command-sips/index.js +2 -2
- package/dist/safe-bash-command-soffice/index.js +97 -12
- package/dist/safe-bash-command-sponge/index.js +4 -1
- package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -0
- package/dist/safe-bash-command-sqlite3/index.js +510 -70
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +2 -2
- package/dist/safe-bash-command-ssconvert/index.js +44 -22
- package/dist/safe-bash-command-stat/command.js +1 -1
- package/dist/safe-bash-command-stat/index.js +1 -1
- package/dist/safe-bash-command-tar/create.d.ts +1 -0
- package/dist/safe-bash-command-tar/create.js +2 -2
- package/dist/safe-bash-command-tar/extract.js +2 -2
- package/dist/safe-bash-command-tar/index.js +4 -4
- package/dist/safe-bash-command-tar/modes.js +4 -4
- package/dist/safe-bash-command-tar/options.js +1 -1
- package/dist/safe-bash-command-truncate/index.js +2 -2
- package/dist/safe-bash-command-tsort/command.js +2 -2
- package/dist/safe-bash-command-tsort/index.js +2 -2
- package/dist/safe-bash-command-unalias/index.d.ts +12 -0
- package/dist/safe-bash-command-unalias/index.js +67 -0
- package/dist/safe-bash-command-unrtf/index.js +26 -4
- package/dist/safe-bash-command-xan/argv.d.ts +1 -1
- package/dist/safe-bash-command-xan/argv.js +2 -2
- package/dist/safe-bash-command-xan/budget.d.ts +0 -1
- package/dist/safe-bash-command-xan/budget.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +6 -6
- package/dist/safe-bash-command-xan/csv.js +2 -2
- package/dist/safe-bash-command-xan/index.js +8 -9
- package/dist/safe-bash-command-xan/io.js +4 -4
- package/dist/safe-bash-command-xan/options.js +1 -1
- package/dist/safe-bash-command-xan/selector.js +2 -2
- package/dist/safe-bash-command-xmllint/index.js +45 -23
- package/dist/safe-bash-command-xxd/index.js +41 -10
- package/dist/safe-bash-command-yq/accounting.js +1 -1
- package/dist/safe-bash-command-yq/index.js +3 -2
- package/dist/safe-bash-command-yq/native-work.js +2 -0
- package/dist/safe-bash-command-yq/parser.js +2 -2
- package/dist/safe-bash-command-yq/query.js +5 -5
- package/dist/safe-bash-command-yq/toml.js +2 -2
- package/dist/safe-bash-command-zip/index.js +3 -3
- package/dist/safe-bash-compression-engine/bounded-codec.js +2 -2
- package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
- package/dist/safe-bash-compression-engine/files.js +5 -5
- package/dist/safe-bash-compression-engine/index.js +4 -4
- package/dist/safe-bash-compression-engine/operand.js +5 -5
- package/dist/safe-bash-compression-engine/stream.js +4 -4
- package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
- package/dist/safe-bash-contracts/command.js +3 -3
- package/dist/safe-bash-contracts/default-executor.js +2 -2
- package/dist/safe-bash-contracts/diagnostics.js +3 -3
- package/dist/safe-bash-contracts/escaping.js +6 -6
- package/dist/safe-bash-contracts/filesystem-descriptor.js +3 -3
- package/dist/safe-bash-contracts/filesystem-output.js +5 -5
- package/dist/safe-bash-contracts/http.d.ts +7 -0
- package/dist/safe-bash-contracts/index.js +8 -8
- package/dist/safe-bash-contracts/io.js +2 -2
- package/dist/safe-bash-contracts/output.js +3 -3
- package/dist/safe-bash-contracts/runtime-control.d.ts +2 -2
- package/dist/safe-bash-contracts/runtime-control.js +4 -2
- package/dist/safe-bash-contracts/signals.d.ts +2 -0
- package/dist/safe-bash-contracts/signals.js +3 -1
- package/dist/safe-bash-contracts/yield.js +1 -1
- package/dist/safe-bash-csv-engine/index.d.ts +2 -1
- package/dist/safe-bash-csv-engine/index.js +21 -15
- package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +6 -6
- package/dist/safe-bash-io-engine/internal.js +1 -1
- package/dist/safe-bash-io-engine/shell/pattern.js +38 -18
- package/dist/safe-bash-line-ending-engine/convert.js +9 -204
- package/dist/safe-bash-line-ending-engine/encoding.js +9 -42
- package/dist/safe-bash-line-ending-engine/index.js +48 -0
- package/dist/safe-bash-line-ending-engine/info.js +9 -90
- package/dist/safe-bash-line-ending-engine/internal.js +15 -160
- package/dist/safe-bash-line-ending-engine/io.js +12 -289
- package/dist/safe-bash-line-ending-engine/stage.js +10 -160
- package/dist/safe-bash-markdown-engine/index.js +3 -3
- package/dist/safe-bash-network-engine/args.d.ts +6 -0
- package/dist/safe-bash-network-engine/args.js +4 -2
- package/dist/safe-bash-network-engine/body.js +1 -1
- package/dist/safe-bash-network-engine/fetch-transport.js +3 -1
- package/dist/safe-bash-network-engine/index.js +3 -1
- package/dist/safe-bash-network-engine/input.js +2 -2
- package/dist/safe-bash-network-engine/platform-portable.js +3 -1
- package/dist/safe-bash-query-engine/dates.d.ts +1 -1
- package/dist/safe-bash-query-engine/dates.js +1 -1
- package/dist/safe-bash-query-engine/index.js +6 -6
- package/dist/safe-bash-query-engine/interpreter.js +4 -4
- package/dist/safe-bash-query-engine/parser.js +1 -1
- package/dist/safe-bash-query-engine/query-core.js +6 -6
- package/dist/safe-bash-regex-engine/execution/bounded-provider.js +10 -0
- package/dist/safe-bash-regex-engine/index.js +1 -1
- package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -1
- package/dist/safe-bash-regex-engine/text/regex.js +1 -1
- package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +1 -0
- package/dist/safe-bash-search-engine/ergonomic-regex.js +1 -1
- package/dist/safe-bash-search-engine/grep.js +16 -9
- package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
- package/dist/safe-bash-search-engine/matcher.js +12 -8
- package/dist/safe-bash-search-engine/shared.js +1 -1
- package/dist/safe-bash-search-engine/walk.js +13 -1
- package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +1 -1
- package/dist/safe-bash-text-stream-engine/stream-format/shared.js +2 -1
- package/dist/safe-bash-xml-engine/document.js +3 -3
- package/dist/safe-bash-xml-engine/evaluate.js +2 -2
- package/dist/safe-bash-xml-engine/index.js +4 -4
- package/dist/safe-bash-xml-engine/io.js +7 -2
- package/dist/safe-bash-xml-engine/limits.d.ts +0 -2
- package/dist/safe-bash-xml-engine/limits.js +1 -1
- package/dist/safe-bash-xml-engine/query.js +3 -3
- package/dist/safe-bash-zip-engine/index.js +3 -3
- package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
- package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
- package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
- package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
- package/dist/safe-bash-zip-engine/zip-format.js +3 -3
- package/dist/safe-playwright-cloudflare/browser-socket-closure.js +18 -3
- package/dist/safe-playwright-cloudflare/shell-browser-resource.js +1 -1
- package/dist/xlsx-ast/xlsx.js +6 -5
- package/package.json +86 -98
- package/dist/media-cli/bytes.d.ts +0 -8
- package/dist/media-cli/bytes.js +0 -40
- package/dist/media-cli/concat.d.ts +0 -30
- package/dist/media-cli/concat.js +0 -197
- package/dist/media-cli/content.js +0 -66
- package/dist/media-cli/dependency-grammars.d.ts +0 -12
- package/dist/media-cli/dependency-grammars.js +0 -557
- package/dist/media-cli/discover.js +0 -286
- package/dist/media-cli/engine.js +0 -190
- package/dist/media-cli/filename-expression.js +0 -147
- package/dist/media-cli/filesystem.js +0 -35
- package/dist/media-cli/frontend-contract.js +0 -8
- package/dist/media-cli/frontend-issues.d.ts +0 -6
- package/dist/media-cli/frontend-issues.js +0 -9
- package/dist/media-cli/imagemagick-operand.d.ts +0 -42
- package/dist/media-cli/imagemagick-operand.js +0 -229
- package/dist/media-cli/imagemagick-references.d.ts +0 -7
- package/dist/media-cli/imagemagick-references.js +0 -42
- package/dist/media-cli/imagemagick.generated.js +0 -3254
- package/dist/media-cli/imagemagick.js +0 -615
- package/dist/media-cli/index.js +0 -12
- package/dist/media-cli/mvg.d.ts +0 -10
- package/dist/media-cli/mvg.js +0 -102
- package/dist/media-cli/network.js +0 -78
- package/dist/media-cli/options.generated.js +0 -3312
- package/dist/media-cli/preset.d.ts +0 -11
- package/dist/media-cli/preset.js +0 -57
- package/dist/media-cli/resolution-path.d.ts +0 -23
- package/dist/media-cli/resolution-path.js +0 -217
- package/dist/media-cli/resolver.js +0 -494
- package/dist/media-cli/resources.d.ts +0 -16
- package/dist/media-cli/resources.js +0 -187
- package/dist/media-cli/shim.js +0 -52
- package/dist/media-cli/tee.d.ts +0 -6
- package/dist/media-cli/tee.js +0 -38
- package/dist/office-package/zip-sync.js +0 -111
- package/dist/remote-execution/binary.js +0 -178
- package/dist/remote-execution/callback-result.js +0 -26
- package/dist/remote-execution/canonical-capabilities.d.ts +0 -5
- package/dist/remote-execution/canonical-capabilities.js +0 -45
- package/dist/remote-execution/canonical-metadata.d.ts +0 -4
- package/dist/remote-execution/canonical-metadata.js +0 -32
- package/dist/remote-execution/client.js +0 -824
- package/dist/remote-execution/deployment.js +0 -131
- package/dist/remote-execution/descriptors.js +0 -267
- package/dist/remote-execution/effects.js +0 -357
- package/dist/remote-execution/endpoint.js +0 -224
- package/dist/remote-execution/files.js +0 -291
- package/dist/remote-execution/hosting-operation.js +0 -26
- package/dist/remote-execution/hosting-request.d.ts +0 -4
- package/dist/remote-execution/hosting-request.js +0 -12
- package/dist/remote-execution/hosting-stream.d.ts +0 -8
- package/dist/remote-execution/hosting-stream.js +0 -64
- package/dist/remote-execution/index.js +0 -18
- package/dist/remote-execution/invocation-admission.d.ts +0 -3
- package/dist/remote-execution/invocation-admission.js +0 -17
- package/dist/remote-execution/job-binding.js +0 -1269
- package/dist/remote-execution/materializations.js +0 -284
- package/dist/remote-execution/modal-driver.js +0 -90
- package/dist/remote-execution/native-result.d.ts +0 -3
- package/dist/remote-execution/native-result.js +0 -16
- package/dist/remote-execution/output-freshness.d.ts +0 -4
- package/dist/remote-execution/output-freshness.js +0 -19
- package/dist/remote-execution/output-retrieval.js +0 -474
- package/dist/remote-execution/process-http.js +0 -607
- package/dist/remote-execution/process.js +0 -577
- package/dist/remote-execution/protocol.js +0 -208
- package/dist/remote-execution/relay.js +0 -91
- package/dist/remote-execution/rest-driver.js +0 -93
- package/dist/remote-execution/upload-descriptor.js +0 -201
- package/dist/remote-execution/upload-protocol.js +0 -62
- package/dist/remote-execution/uploads.js +0 -324
- package/dist/remote-execution/wire-json.d.ts +0 -4
- package/dist/remote-execution/wire-json.js +0 -44
- package/dist/remote-execution/wire-validation.js +0 -131
- package/dist/remote-execution/wire.generated.js +0 -4224
- package/dist/safe-bash/chunks/chunk-GDYNCWRV.js +0 -161
- package/dist/safe-bash/chunks/chunk-IWDICZVK.js +0 -20
- package/dist/safe-bash/chunks/chunk-MHMMRCYC.js +0 -3464
- package/dist/safe-bash/chunks/chunk-UE5KZDEK.js +0 -77
- package/dist/safe-bash/chunks/csvkit-TACDU7FC.js +0 -1618
- package/dist/safe-bash/chunks/implementation-MLFHUQ5M.js +0 -133
- package/dist/safe-bash/commands/csvkit/sync.js +0 -1639
- package/dist/safe-bash/commands/node/unconfigured.d.ts +0 -3
- package/dist/safe-bash/commands/node/unconfigured.js +0 -10
- package/dist/safe-bash/commands/pandoc/implementation.d.ts +0 -8
- package/dist/safe-bash/commands/pandoc/implementation.js +0 -94
- package/dist/safe-bash-mcp/index.browser.js +0 -9167
- package/dist/safe-bash/command-chunks/{chunk-ZRRBXU3M.js → chunk-GIN5GUDP.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-LAOM65EE.js → chunk-IEO4XVN6.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-BXCXRYVU.js → chunk-JNANXVJV.js} +0 -0
- package/dist/safe-bash/command-chunks/{chunk-364TMWBT.js → chunk-MWREVL44.js} +6 -6
- package/dist/safe-bash/command-chunks/{chunk-464RVBGB.js → chunk-Q5TDKFHK.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-AJR3AQYA.js → chunk-UKX3LZHR.js} +0 -0
- package/dist/safe-bash/command-chunks/{chunk-XIIBTGC5.js → chunk-XPXEQKRW.js} +9 -9
- package/dist/safe-bash/command-chunks/{chunk-FDBUV4HJ.js → chunk-Y4HGTG3E.js} +3 -3
- /package/dist/{safe-bash/commands/csvkit → safe-bash-command-csvkit}/sync.d.ts +0 -0
|
@@ -1,494 +0,0 @@
|
|
|
1
|
-
import { imageMagickAccessReferences } from './imagemagick-references.js';
|
|
2
|
-
import { frontendIssues } from './frontend-issues.js';
|
|
3
|
-
import { filterOptions } from './discover.js';
|
|
4
|
-
import { concatProtocolMembers } from './concat.js';
|
|
5
|
-
import { parseFilenameExpression } from './filename-expression.js';
|
|
6
|
-
import { byteText, textBytes } from './bytes.js';
|
|
7
|
-
import { parseDependencyContent } from './dependency-grammars.js';
|
|
8
|
-
import { classify, protocol, resolveLocation, subfileOperand, traceLocal } from './resolution-path.js';
|
|
9
|
-
export class DiscoveryBudgetError extends Error {
|
|
10
|
-
constructor() { super('Dependency discovery budget exhausted; runtime mediation is still required'); }
|
|
11
|
-
}
|
|
12
|
-
/** Compare local reader identities only. Interior empty/dot components do not
|
|
13
|
-
* select another object, even across symlinks. Parent components must remain:
|
|
14
|
-
* their meaning depends on the traversed link target. Preserve the POSIX special
|
|
15
|
-
* leading double slash and terminal directory requirements conservatively.
|
|
16
|
-
* This key is never an operand, canonical target or resource resolution base. */
|
|
17
|
-
function localReaderIdentity(spelling) {
|
|
18
|
-
const components = spelling.split('/');
|
|
19
|
-
const firstComponent = components.findIndex(part => part !== '');
|
|
20
|
-
if (firstComponent < 0)
|
|
21
|
-
return spelling;
|
|
22
|
-
return components.filter((part, index) => index < firstComponent || index === components.length - 1
|
|
23
|
-
|| part !== '' && part !== '.').join('/');
|
|
24
|
-
}
|
|
25
|
-
/** An invocation-owned advisory graph. No filesystem opens, stdin reads, network
|
|
26
|
-
* requests, delegates, output writes or native replay are possible through this API.
|
|
27
|
-
* Pass already observed content explicitly, including the effective redirect URL.
|
|
28
|
-
* Submit calls in evaluation/observation order. Graph nodes are access occurrences,
|
|
29
|
-
* never a deduplicated filename set or a canonical file identity. */
|
|
30
|
-
export class DependencyResolver {
|
|
31
|
-
options;
|
|
32
|
-
nodes = [];
|
|
33
|
-
edges = [];
|
|
34
|
-
issues = [];
|
|
35
|
-
bytes = 0;
|
|
36
|
-
captures = new Map();
|
|
37
|
-
incomplete = false;
|
|
38
|
-
lineage = new Map();
|
|
39
|
-
lastObserved;
|
|
40
|
-
pending = Promise.resolve();
|
|
41
|
-
constructor(options, initialIssues = []) {
|
|
42
|
-
this.options = options;
|
|
43
|
-
for (const key of ['nodes', 'bytes', 'depth', 'symlinks']) {
|
|
44
|
-
const value = options.budgets[key];
|
|
45
|
-
if (!Number.isSafeInteger(value) || value < 1)
|
|
46
|
-
throw new Error('Discovery budgets must be explicit positive safe integers');
|
|
47
|
-
}
|
|
48
|
-
const cwd = new Uint8Array(options.cwd);
|
|
49
|
-
if (!byteText(cwd).startsWith('/'))
|
|
50
|
-
throw new Error('Resolver cwd must be absolute');
|
|
51
|
-
this.options = { ...options, cwd, budgets: { ...options.budgets },
|
|
52
|
-
policy: options.policy && structuredClone(options.policy) };
|
|
53
|
-
this.issues.push(...structuredClone(initialIssues));
|
|
54
|
-
this.incomplete = initialIssues.some(issue => issue.reason !== 'live');
|
|
55
|
-
}
|
|
56
|
-
issue(node, reason, detail) {
|
|
57
|
-
this.issues.push({ node, reason, detail });
|
|
58
|
-
if (reason !== 'live')
|
|
59
|
-
this.incomplete = true;
|
|
60
|
-
}
|
|
61
|
-
schedule(operation) {
|
|
62
|
-
const result = this.pending.then(operation);
|
|
63
|
-
// A rejected admission must not poison later observations. Mutations within
|
|
64
|
-
// one submission, including recursive protocol/content expansion, stay atomic
|
|
65
|
-
// with respect to other submissions, not with respect to native execution.
|
|
66
|
-
this.pending = result.catch(() => undefined);
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
add(reference, parent) {
|
|
70
|
-
// Capture at submission, before an earlier callback can reuse these bytes.
|
|
71
|
-
reference = structuredClone(reference);
|
|
72
|
-
return this.schedule(() => this.admit(reference, parent));
|
|
73
|
-
}
|
|
74
|
-
async admit(reference, parent) {
|
|
75
|
-
if (parent !== undefined && !this.nodes[parent])
|
|
76
|
-
throw new Error('Unknown dependency parent');
|
|
77
|
-
// Parentage is supplied by runtime readers as well as grammar expansion.
|
|
78
|
-
// Bound every admission before charging bytes or yielding to metadata.
|
|
79
|
-
const depth = parent === undefined ? 0 : (this.lineage.get(parent)?.length ?? 0) + 1;
|
|
80
|
-
if (depth > this.options.budgets.depth) {
|
|
81
|
-
this.issue(parent, 'budget', 'Reference admission exceeded depth budget');
|
|
82
|
-
throw new DiscoveryBudgetError();
|
|
83
|
-
}
|
|
84
|
-
// An explicit policy replaces parent/invocation restrictions. Parentage
|
|
85
|
-
// does not imply a path base. Policy is retained on every occurrence,
|
|
86
|
-
// including wrappers/manifests; charge UTF-8 bytes before advisory work.
|
|
87
|
-
const policy = reference.policy ?? (parent === undefined ? undefined : this.nodes[parent].policy) ?? this.options.policy;
|
|
88
|
-
let metadataBytes = 0;
|
|
89
|
-
const encoder = new TextEncoder();
|
|
90
|
-
for (const value of [reference.source, reference.filterReader?.filter, reference.filterReader?.name,
|
|
91
|
-
reference.optionReader?.name, ...(policy?.allow ?? []), ...(policy?.deny ?? [])]) {
|
|
92
|
-
if (value !== undefined)
|
|
93
|
-
metadataBytes += encoder.encode(value).length;
|
|
94
|
-
}
|
|
95
|
-
const referenceBytes = reference.value.length + (reference.path?.length ?? 0)
|
|
96
|
-
+ (reference.base?.value.length ?? this.options.cwd.length)
|
|
97
|
-
+ (reference.optionReader?.specifier?.length ?? 0) + metadataBytes;
|
|
98
|
-
if (this.nodes.length >= this.options.budgets.nodes || this.bytes + referenceBytes > this.options.budgets.bytes) {
|
|
99
|
-
this.issue(parent, 'budget', 'Reference admission exceeded nodes/bytes budget');
|
|
100
|
-
throw new DiscoveryBudgetError();
|
|
101
|
-
}
|
|
102
|
-
this.bytes += referenceBytes;
|
|
103
|
-
// Capture all reader metadata before yielding to advisory traversal. Buffer
|
|
104
|
-
// slice() aliases producer memory, and readonly types do not own policy lists.
|
|
105
|
-
reference = structuredClone(reference);
|
|
106
|
-
const base = reference.base ?? { kind: 'directory', value: this.options.cwd };
|
|
107
|
-
// The invocation frontend interprets '-' as stdin. Manifest readers first
|
|
108
|
-
// join that relative spelling against their resource, just like other names.
|
|
109
|
-
// An explicit URL directory base has the same member semantics.
|
|
110
|
-
// Protocol wrappers likewise open native URL operands, not CLI stdin aliases.
|
|
111
|
-
const baseProtocol = protocol(byteText(base.value));
|
|
112
|
-
const readerDash = (base.kind === 'resource' || baseProtocol !== undefined && baseProtocol !== 'file')
|
|
113
|
-
&& byteText(reference.value) === '-';
|
|
114
|
-
const originalKind = readerDash ? 'path' : classify(reference.value);
|
|
115
|
-
let kind = reference.kind ?? (reference.literal ? 'path' : originalKind);
|
|
116
|
-
// A discovery path hint cannot replace an actual native network/descriptor
|
|
117
|
-
// operand. Literal filesystem readers retain their native interpretation.
|
|
118
|
-
const operand = !reference.literal && (originalKind === 'url' || originalKind === 'descriptor')
|
|
119
|
-
? reference.value : reference.path ?? reference.value;
|
|
120
|
-
const operandKind = readerDash && byteText(operand) === '-' ? 'path' : classify(operand);
|
|
121
|
-
const literal = reference.literal === true;
|
|
122
|
-
if (!literal && ['path', 'file-protocol', 'url', 'image-selector', 'glob', 'output-pattern', 'filename-expression'].includes(kind)
|
|
123
|
-
&& (operandKind === 'url' || operandKind === 'descriptor'))
|
|
124
|
-
kind = operandKind;
|
|
125
|
-
let location;
|
|
126
|
-
let readerLocation;
|
|
127
|
-
let trace = [];
|
|
128
|
-
let expression;
|
|
129
|
-
const id = this.nodes.length;
|
|
130
|
-
if (['path', 'file-protocol', 'url', 'image-selector', 'glob', 'output-pattern', 'filename-expression'].includes(kind)) {
|
|
131
|
-
location = resolveLocation(operand, base, literal);
|
|
132
|
-
// Manifest members join against this operand, never the advisory target.
|
|
133
|
-
readerLocation = location.slice();
|
|
134
|
-
const scheme = protocol(byteText(location));
|
|
135
|
-
if (scheme !== undefined && scheme !== 'file')
|
|
136
|
-
kind = 'url';
|
|
137
|
-
else if (!reference.kind && scheme && kind === 'path')
|
|
138
|
-
kind = 'file-protocol';
|
|
139
|
-
if (reference.filenameDialect === 'dash' || reference.filenameDialect === 'dash-resource') {
|
|
140
|
-
// Native DASH substitutes after URL joining. Templates can be inherited
|
|
141
|
-
// from a BaseURL even when the member itself has a fixed spelling.
|
|
142
|
-
expression = parseFilenameExpression(location, reference.filenameDialect);
|
|
143
|
-
if (expression.tokens.some(token => token.kind === 'template') && (kind === 'path' || kind === 'file-protocol'))
|
|
144
|
-
kind = 'filename-expression';
|
|
145
|
-
}
|
|
146
|
-
const policyScheme = scheme ?? 'file';
|
|
147
|
-
const denied = policy?.deny?.includes(policyScheme) || policy?.allow && !policy.allow.includes(policyScheme);
|
|
148
|
-
if (denied) {
|
|
149
|
-
this.issue(id, 'policy', 'Protocol requires native policy decision; no prefetch authorized');
|
|
150
|
-
}
|
|
151
|
-
if (!denied && (kind === 'path' || kind === 'file-protocol' || kind === 'image-selector')) {
|
|
152
|
-
let local = location;
|
|
153
|
-
// file.c strips exactly one file: prefix, then opens a literal POSIX
|
|
154
|
-
// filename. Its suffix must not re-enter AVIO protocol selection.
|
|
155
|
-
if (scheme === 'file')
|
|
156
|
-
local = resolveLocation(textBytes(byteText(location).slice(5)), { kind: 'directory', value: this.options.cwd }, true);
|
|
157
|
-
// URL reference syntax can return a bare operand whose prefix is not
|
|
158
|
-
// an AVIO protocol. file.c opens it relative to native cwd, even when
|
|
159
|
-
// the referring playlist was on the network.
|
|
160
|
-
else if (!scheme)
|
|
161
|
-
local = resolveLocation(location, { kind: 'directory', value: this.options.cwd }, true);
|
|
162
|
-
if (!scheme || scheme === 'file') {
|
|
163
|
-
const result = await traceLocal(local, this.options, this.options.budgets.bytes - this.bytes);
|
|
164
|
-
this.bytes += result.bytes;
|
|
165
|
-
// file: retains its protocol identity, while path traversal records local components.
|
|
166
|
-
location = scheme === 'file' ? textBytes('file:' + byteText(result.location)) : result.location;
|
|
167
|
-
trace = result.trace;
|
|
168
|
-
if (result.issue)
|
|
169
|
-
this.issue(id, result.issue, 'Canonical path traversal remains unresolved');
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (kind === 'descriptor' && !literal) {
|
|
174
|
-
const scheme = protocol(byteText(operand));
|
|
175
|
-
if (scheme && (policy?.deny?.includes(scheme) || policy?.allow && !policy.allow.includes(scheme))) {
|
|
176
|
-
this.issue(id, 'policy', 'Descriptor protocol requires native policy decision; no prefetch authorized');
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
expression ??= reference.filenameDialect ? parseFilenameExpression(reference.path ?? reference.value, reference.filenameDialect, reference.access !== 'read') : undefined;
|
|
180
|
-
if (expression && !expression.complete)
|
|
181
|
-
this.issue(id, 'syntax', 'Filename expression requires native validation');
|
|
182
|
-
const node = {
|
|
183
|
-
...reference, value: reference.value.slice(), path: reference.path?.slice(), id, parent,
|
|
184
|
-
original: reference.value.slice(), expression, kind, base: { ...base, value: base.value.slice() }, readerLocation, location, trace,
|
|
185
|
-
live: true, upload: false, timing: { order: id, stage: reference.stage ?? 'runtime', certainty: 'predicted' },
|
|
186
|
-
policy,
|
|
187
|
-
};
|
|
188
|
-
this.nodes.push(node);
|
|
189
|
-
if (parent !== undefined) {
|
|
190
|
-
const capture = this.captures.get(parent) ?? this.nodes[parent];
|
|
191
|
-
this.lineage.set(id, [...(this.lineage.get(parent) ?? []), { location: capture.location?.slice(), grammar: capture.grammar,
|
|
192
|
-
canonical: 'canonical' in capture ? capture.canonical : undefined,
|
|
193
|
-
reader: 'reader' in capture ? capture.reader : undefined }]);
|
|
194
|
-
}
|
|
195
|
-
if (parent !== undefined)
|
|
196
|
-
this.edges.push({ from: parent, to: id, kind: 'depends-on' });
|
|
197
|
-
// Connect advisory admission order across captures and nested expansions,
|
|
198
|
-
// including a later output alias. Parentage alone carries no timing. These
|
|
199
|
-
// edges never establish observed native order; observe removes its incoming
|
|
200
|
-
// prediction and records the independent runtime sequence instead.
|
|
201
|
-
const previous = this.nodes.slice(0, -1).reverse().find(n => n.timing.certainty === 'predicted');
|
|
202
|
-
if (previous && previous.id !== parent)
|
|
203
|
-
this.edges.push({ from: previous.id, to: id, kind: 'before' });
|
|
204
|
-
if (kind === 'url') {
|
|
205
|
-
// Manifest joining can select a wrapper absent from the original member.
|
|
206
|
-
// Expand the operand actually passed to AVIO, retaining original bytes on
|
|
207
|
-
// the parent occurrence and each stripped reader operand on its child.
|
|
208
|
-
const name = byteText(location ?? operand), scheme = protocol(name);
|
|
209
|
-
const wrapper = scheme && ['cache', 'async', 'crypto', 'concatf', 'subfile'].includes(scheme);
|
|
210
|
-
let subfile;
|
|
211
|
-
if (scheme === 'subfile') {
|
|
212
|
-
try {
|
|
213
|
-
subfile = subfileOperand(name);
|
|
214
|
-
}
|
|
215
|
-
catch (error) {
|
|
216
|
-
this.issue(id, 'syntax', error instanceof Error ? error.message : 'Unresolved subfile option grammar');
|
|
217
|
-
return structuredClone(node);
|
|
218
|
-
}
|
|
219
|
-
this.issue(id, 'live', 'Subfile offset expressions, seeking and protocol accessibility remain native decisions');
|
|
220
|
-
}
|
|
221
|
-
const children = scheme === 'concat' ? concatProtocolMembers(name.slice(7))
|
|
222
|
-
: scheme === 'subfile' ? [subfile]
|
|
223
|
-
: wrapper ? [name.slice(scheme.length + 1)] : [];
|
|
224
|
-
if ((scheme === 'concat' && name.length > 7 || wrapper) && depth >= this.options.budgets.depth)
|
|
225
|
-
this.issue(id, 'budget', 'Protocol nesting exceeds depth budget');
|
|
226
|
-
else {
|
|
227
|
-
let previous;
|
|
228
|
-
for (const child of children) {
|
|
229
|
-
try {
|
|
230
|
-
// URLProtocol readers open the stripped operand directly. A relative
|
|
231
|
-
// member does not inherit the playlist that named this wrapper.
|
|
232
|
-
const member = await this.admit({ value: textBytes(child), access: scheme === 'concatf' ? 'read' : reference.access,
|
|
233
|
-
literal: child === '-',
|
|
234
|
-
grammar: scheme === 'concatf' ? 'concatf' : undefined,
|
|
235
|
-
base: { kind: 'directory', value: this.options.cwd }, policy: node.policy, stage: reference.stage }, id);
|
|
236
|
-
if (previous && previous.id !== member.id - 1)
|
|
237
|
-
this.edges.push({ from: previous.id, to: member.id, kind: 'before' });
|
|
238
|
-
previous = member;
|
|
239
|
-
}
|
|
240
|
-
catch (error) {
|
|
241
|
-
if (error instanceof DiscoveryBudgetError)
|
|
242
|
-
break;
|
|
243
|
-
throw error;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return structuredClone(node);
|
|
249
|
-
}
|
|
250
|
-
content(id, observation) {
|
|
251
|
-
// An impossible capture needs no byte ownership: retain only its grammar,
|
|
252
|
-
// and publish the refusal in submission order. Never clone a large producer
|
|
253
|
-
// allocation merely to discover that it exceeds the entire capture budget.
|
|
254
|
-
if (observation.content.byteLength + (observation.location?.byteLength ?? 0) > this.options.budgets.bytes) {
|
|
255
|
-
const grammar = observation.grammar;
|
|
256
|
-
return this.schedule(async () => {
|
|
257
|
-
const node = this.nodes[id];
|
|
258
|
-
if (!node)
|
|
259
|
-
throw new Error('Unknown dependency node');
|
|
260
|
-
if (!(grammar ?? node.grammar))
|
|
261
|
-
this.issue(id, 'unresolved', 'Content grammar must come from the selected native reader');
|
|
262
|
-
else
|
|
263
|
-
this.issue(id, 'budget', 'Content/location exceeds byte budget');
|
|
264
|
-
return [];
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
observation = structuredClone(observation);
|
|
268
|
-
return this.schedule(() => this.expandContent(id, observation));
|
|
269
|
-
}
|
|
270
|
-
async expandContent(id, observation) {
|
|
271
|
-
const node = this.nodes[id];
|
|
272
|
-
if (!node)
|
|
273
|
-
throw new Error('Unknown dependency node');
|
|
274
|
-
const grammar = observation.grammar ?? node.grammar;
|
|
275
|
-
if (!grammar) {
|
|
276
|
-
this.issue(id, 'unresolved', 'Content grammar must come from the selected native reader');
|
|
277
|
-
return [];
|
|
278
|
-
}
|
|
279
|
-
const readerLocation = node.readerLocation ?? node.location;
|
|
280
|
-
const observationBytes = observation.content.length + (observation.location?.length ?? readerLocation?.length ?? 0);
|
|
281
|
-
if (this.bytes + observationBytes > this.options.budgets.bytes) {
|
|
282
|
-
this.issue(id, 'budget', 'Content/location exceeds byte budget');
|
|
283
|
-
return [];
|
|
284
|
-
}
|
|
285
|
-
this.bytes += observationBytes;
|
|
286
|
-
// Observation buffers can be reused by the runtime bridge as soon as this
|
|
287
|
-
// call yields. Own the capture before any asynchronous grammar evaluation.
|
|
288
|
-
const content = Uint8Array.from(observation.content);
|
|
289
|
-
const location = observation.location ? Uint8Array.from(observation.location) : readerLocation;
|
|
290
|
-
if (!location) {
|
|
291
|
-
this.issue(id, 'unresolved', 'No effective content location');
|
|
292
|
-
return [];
|
|
293
|
-
}
|
|
294
|
-
const lineage = this.lineage.get(id) ?? [];
|
|
295
|
-
// Canonical traversal is a second advisory cycle key, never the manifest's
|
|
296
|
-
// resolution base. Redirected captures and failed metadata cannot inherit it.
|
|
297
|
-
const canonicalLocation = !observation.location && node.location && node.trace.length
|
|
298
|
-
&& !this.issues.some(issue => issue.node === id && issue.reason !== 'live')
|
|
299
|
-
? byteText(node.location) : undefined;
|
|
300
|
-
// file.c removes exactly one prefix and opens the suffix against cwd.
|
|
301
|
-
// This identity is known without metadata: comparing it does not simplify
|
|
302
|
-
// '..', follow links, decode URL escapes or change the content reader base.
|
|
303
|
-
// Interior dot/repeated separators are equivalent for local cycle identity
|
|
304
|
-
// only; retained operands still carry their exact original spelling.
|
|
305
|
-
// Effective redirected captures must use their own spelling, never a stale
|
|
306
|
-
// canonical target from the original node.
|
|
307
|
-
const spelling = byteText(location);
|
|
308
|
-
const scheme = protocol(spelling);
|
|
309
|
-
const localReader = node.readerLocation && (scheme === 'file' || scheme === undefined && spelling.startsWith('/'))
|
|
310
|
-
? localReaderIdentity(scheme === 'file'
|
|
311
|
-
? byteText(resolveLocation(textBytes(spelling.slice(5)), { kind: 'directory', value: this.options.cwd }, true))
|
|
312
|
-
: spelling)
|
|
313
|
-
: undefined;
|
|
314
|
-
const canonical = canonicalLocation?.startsWith('file:') ? canonicalLocation.slice(5) : canonicalLocation;
|
|
315
|
-
const depth = lineage.length;
|
|
316
|
-
if (depth >= this.options.budgets.depth) {
|
|
317
|
-
this.issue(id, 'budget', 'Content exceeds nesting budget');
|
|
318
|
-
return [];
|
|
319
|
-
}
|
|
320
|
-
for (const ancestor of lineage) {
|
|
321
|
-
if (ancestor.grammar === grammar && (ancestor.location && byteText(ancestor.location) === byteText(location)
|
|
322
|
-
|| localReader !== undefined && ancestor.reader === localReader
|
|
323
|
-
|| canonical !== undefined && ancestor.canonical === canonical)) {
|
|
324
|
-
this.issue(id, 'cycle', 'Ancestor content references itself; subsequent runtime access remains live');
|
|
325
|
-
// A native observation has already happened. A revisit may be a reload
|
|
326
|
-
// with new bytes, rather than recursive static expansion. Preserve its
|
|
327
|
-
// content while retaining the cycle warning and all admission budgets.
|
|
328
|
-
if (node.timing.certainty !== 'observed')
|
|
329
|
-
return [];
|
|
330
|
-
break;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
this.captures.set(id, { location: location.slice(), grammar, canonical, reader: localReader });
|
|
334
|
-
const parsed = await parseDependencyContent(grammar, content, location, this.options.cwd, { nodes: this.options.budgets.nodes - this.nodes.length, depth: this.options.budgets.depth - depth }, node.optionReader, node.filterReader, { ...this.options, policy: node.policy });
|
|
335
|
-
for (const issue of parsed.diagnostics ?? [])
|
|
336
|
-
this.issue(id, issue.reason, issue.detail);
|
|
337
|
-
for (const issue of parsed.issues)
|
|
338
|
-
this.issue(id, parsed.budget ? 'budget' : parsed.incomplete ? 'syntax' : 'live', issue);
|
|
339
|
-
const result = [];
|
|
340
|
-
for (const reference of parsed.references) {
|
|
341
|
-
try {
|
|
342
|
-
const child = await this.admit({ ...reference, policy: reference.policy ?? node.policy, stage: 'runtime' }, id);
|
|
343
|
-
if (result.length && result.at(-1).id !== child.id - 1)
|
|
344
|
-
this.edges.push({ from: result.at(-1).id, to: child.id, kind: 'before' });
|
|
345
|
-
result.push(child);
|
|
346
|
-
}
|
|
347
|
-
catch (error) {
|
|
348
|
-
if (error instanceof DiscoveryBudgetError)
|
|
349
|
-
break;
|
|
350
|
-
throw error;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
return result;
|
|
354
|
-
}
|
|
355
|
-
/** A parent records the reader that caused this access, not an implicit base.
|
|
356
|
-
* The runtime bridge supplies each reader's actual resolution base explicitly. */
|
|
357
|
-
observe(reference, parent) {
|
|
358
|
-
reference = structuredClone(reference);
|
|
359
|
-
return this.schedule(async () => {
|
|
360
|
-
if (!Number.isSafeInteger(reference.sequence) || reference.sequence < 0 || this.lastObserved && reference.sequence <= this.lastObserved.timing.sequence)
|
|
361
|
-
throw new Error('Runtime access sequence must increase');
|
|
362
|
-
const node = await this.admit(reference, parent);
|
|
363
|
-
const observed = { ...node, timing: { ...node.timing, certainty: 'observed', sequence: reference.sequence } };
|
|
364
|
-
this.nodes[node.id] = observed;
|
|
365
|
-
// Predicted order is not evidence of native timing.
|
|
366
|
-
for (let i = this.edges.length - 1; i >= 0; i--)
|
|
367
|
-
if (this.edges[i].kind === 'before' && this.edges[i].to === node.id)
|
|
368
|
-
this.edges.splice(i, 1);
|
|
369
|
-
if (this.lastObserved)
|
|
370
|
-
this.edges.push({ from: this.lastObserved.id, to: node.id, kind: 'observed-before' });
|
|
371
|
-
this.lastObserved = observed;
|
|
372
|
-
return structuredClone(observed);
|
|
373
|
-
});
|
|
374
|
-
}
|
|
375
|
-
graph() {
|
|
376
|
-
return structuredClone({ nodes: this.nodes, edges: this.edges, issues: this.issues, status: this.incomplete ? 'incomplete' : 'live' });
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
/** Adapt frontend grammar hints, preserving original argv and access occurrences.
|
|
380
|
-
* These are predicted evaluation stages, not a claim about observed native opens. */
|
|
381
|
-
export async function createDependencyResolver(discovery, options) {
|
|
382
|
-
// Admission owns the whole invocation, not just whichever occurrence is
|
|
383
|
-
// currently awaiting metadata. Producers may reuse later operand buffers,
|
|
384
|
-
// policies and inline content while the first advisory traversal is pending.
|
|
385
|
-
discovery = structuredClone(discovery);
|
|
386
|
-
options = { ...options, cwd: new Uint8Array(options.cwd), budgets: { ...options.budgets },
|
|
387
|
-
policy: options.policy && structuredClone(options.policy) };
|
|
388
|
-
const resolver = new DependencyResolver(options, frontendIssues(discovery.deferred));
|
|
389
|
-
const references = [];
|
|
390
|
-
const inline = new Map();
|
|
391
|
-
if ('dependencies' in discovery) {
|
|
392
|
-
// ffprobe parses options sequentially, then initializes its output writer
|
|
393
|
-
// before probe_file opens the input. FFmpeg opens grouped inputs first.
|
|
394
|
-
// These stages predict reader evaluation, never authorize early effects.
|
|
395
|
-
const rank = discovery.tool === 'ffprobe'
|
|
396
|
-
? { global: 0, output: 1, input: 2, runtime: 3 }
|
|
397
|
-
: { global: 0, input: 1, output: 2, runtime: 3 };
|
|
398
|
-
const lavfiGroups = discovery.groups.filter(group => {
|
|
399
|
-
const format = [...discovery.globals, ...group.options].reverse().find(option => option.name === 'f');
|
|
400
|
-
return group.kind === 'input' && group.target && format?.value && !format.fromFile && byteText(format.value) === 'lavfi';
|
|
401
|
-
});
|
|
402
|
-
const lavfiIndices = new Set(lavfiGroups.map(group => group.index));
|
|
403
|
-
const dependencies = [...discovery.dependencies].sort((a, b) => rank[a.stage] - rank[b.stage] || a.index - b.index);
|
|
404
|
-
for (const d of dependencies) {
|
|
405
|
-
// Expand inline source grammar under its reader, rather than admitting
|
|
406
|
-
// the frontend's flattened hints as unrelated root accesses.
|
|
407
|
-
if (d.role === 'filter-resource' && lavfiIndices.has(d.index))
|
|
408
|
-
continue;
|
|
409
|
-
const group = discovery.groups.find(g => g.index === d.index || g.options.some(o => o.index === d.index));
|
|
410
|
-
const applied = [...discovery.globals, ...(group?.options ?? [])];
|
|
411
|
-
const option = applied.find(o => o.index === d.index);
|
|
412
|
-
const policyList = (name) => { const value = [...applied].reverse().find(o => o.name === name && !o.fromFile)?.value; return value && byteText(value).split(','); };
|
|
413
|
-
const allow = policyList('protocol_whitelist'), deny = policyList('protocol_blacklist');
|
|
414
|
-
const policy = allow || deny ? { allow, deny } : options.policy;
|
|
415
|
-
const format = [...discovery.globals, ...(group?.options ?? [])].reverse().find(o => o.name === 'f');
|
|
416
|
-
const name = format?.value && !format.fromFile && byteText(format.value);
|
|
417
|
-
const inputGrammars = { concat: 'concat', hls: 'hls', dash: 'dash' };
|
|
418
|
-
const inputGrammar = name && Object.hasOwn(inputGrammars, name) ? inputGrammars[name] : undefined;
|
|
419
|
-
const grammar = d.filterReader ? 'filter-option' : d.role === 'option-file' ? !d.optionReader?.discardValue && option && filterOptions.includes(option.name) ? 'filter' : 'option-file' : (d.optionReader?.name ?? option?.name) === 'hls_key_info_file' ? 'hls-key-info' : d.role === 'preset' ? 'preset' : d.role === 'filter-script' ? 'filter' : d.role === 'input' ? inputGrammar : undefined;
|
|
420
|
-
const patternType = [...applied].reverse().find(o => o.name === 'pattern_type');
|
|
421
|
-
const pattern = patternType?.value && !patternType.fromFile ? byteText(patternType.value) : undefined;
|
|
422
|
-
// img2enc.c expands s->url before io_open selects an AVIO protocol.
|
|
423
|
-
// Output counters/clocks therefore also apply to file: and network URLs.
|
|
424
|
-
// img2dec.c likewise expands sequences before AVIO checks/opens, but
|
|
425
|
-
// glob() consumes the literal URL in the local filesystem namespace.
|
|
426
|
-
const image2 = name === 'image2' && (d.role === 'output' || d.role === 'input' && (pattern !== 'glob' || classify(d.value) === 'path'));
|
|
427
|
-
// img2enc.c write_packet: update wins over clock expansion, then PTS or
|
|
428
|
-
// frame numbering. Only predict canonical switch values; native owns
|
|
429
|
-
// boolean aliases, malformed values and option-file interpretation.
|
|
430
|
-
const filenameSwitch = (name) => {
|
|
431
|
-
const option = [...applied].reverse().find(option => option.name === name);
|
|
432
|
-
if (!option)
|
|
433
|
-
return '0';
|
|
434
|
-
const value = !option.fromFile && option.value && byteText(option.value);
|
|
435
|
-
return value === '0' || value === '1' ? value : undefined;
|
|
436
|
-
};
|
|
437
|
-
const update = image2 && d.role === 'output' ? filenameSwitch('update') : '0';
|
|
438
|
-
const strftime = image2 && d.role === 'output' ? filenameSwitch('strftime') : '0';
|
|
439
|
-
// Signed URL escapes can make the native frame pattern invalid. Input
|
|
440
|
-
// header probing then falls back to the untouched URL; do not decode its
|
|
441
|
-
// escapes or turn that native fallback into a predictive syntax failure.
|
|
442
|
-
const counterPattern = byteText(d.value).includes('%') && (classify(d.value) !== 'url' || parseFilenameExpression(d.value, 'sequence', d.role === 'output').complete);
|
|
443
|
-
const kind = d.kind === 'resource-lookup' ? d.kind : d.literal ? 'path' : image2 && d.role === 'input' && pattern === 'glob' ? 'glob'
|
|
444
|
-
: image2 && d.role === 'output' && update === '1' ? 'path'
|
|
445
|
-
: image2 && d.role === 'output' && (update === undefined || strftime !== '0') ? 'resource-lookup'
|
|
446
|
-
: image2 && pattern !== 'none' && counterPattern ? d.access === 'write' ? 'output-pattern' : 'filename-expression'
|
|
447
|
-
: undefined;
|
|
448
|
-
references.push({ value: d.value, access: d.access, kind, literal: d.literal, grammar, optionReader: d.optionReader, filterReader: d.filterReader, policy, filenameDialect: kind === 'filename-expression' || kind === 'output-pattern' ? 'sequence' : undefined, index: d.index, stage: d.stage,
|
|
449
|
-
base: d.base === 'cwd' ? undefined : { kind: 'resource', value: d.base.resource } });
|
|
450
|
-
}
|
|
451
|
-
for (const group of discovery.groups) {
|
|
452
|
-
if (group.kind === 'trailing')
|
|
453
|
-
continue;
|
|
454
|
-
for (const option of group.options)
|
|
455
|
-
if (['pre', 'apre', 'vpre', 'spre'].includes(option.name) && option.value && !option.fromFile) {
|
|
456
|
-
references.push({ value: option.value, kind: 'resource-lookup', access: 'read', stage: group.kind === 'input' ? 'input' : 'output', index: option.index });
|
|
457
|
-
}
|
|
458
|
-
if (lavfiIndices.has(group.index) && group.target) {
|
|
459
|
-
const applied = [...discovery.globals, ...group.options];
|
|
460
|
-
const policyList = (name) => { const value = [...applied].reverse().find(option => option.name === name && !option.fromFile)?.value; return value && byteText(value).split(','); };
|
|
461
|
-
const allow = policyList('protocol_whitelist'), deny = policyList('protocol_blacklist');
|
|
462
|
-
const reference = { value: group.target, kind: 'synthetic', access: 'read', stage: 'input', index: group.index, grammar: 'filter',
|
|
463
|
-
policy: allow || deny ? { allow, deny } : options.policy };
|
|
464
|
-
references.push(reference);
|
|
465
|
-
inline.set(reference, group.target);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
references.sort((a, b) => rank[a.stage] - rank[b.stage] || (a.index ?? 0) - (b.index ?? 0));
|
|
469
|
-
}
|
|
470
|
-
else {
|
|
471
|
-
const parsed = imageMagickAccessReferences(discovery);
|
|
472
|
-
references.push(...parsed.references);
|
|
473
|
-
for (const [reference, content] of parsed.inline)
|
|
474
|
-
inline.set(reference, content);
|
|
475
|
-
}
|
|
476
|
-
for (const reference of references) {
|
|
477
|
-
try {
|
|
478
|
-
const node = await resolver.add(reference);
|
|
479
|
-
const content = inline.get(reference);
|
|
480
|
-
if (content)
|
|
481
|
-
await resolver.content(node.id, { content, location: options.cwd });
|
|
482
|
-
}
|
|
483
|
-
catch (error) {
|
|
484
|
-
if (error instanceof DiscoveryBudgetError)
|
|
485
|
-
break;
|
|
486
|
-
throw error;
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
return resolver;
|
|
490
|
-
}
|
|
491
|
-
export async function resolveDependencies(discovery, options) {
|
|
492
|
-
const resolver = await createDependencyResolver(discovery, options);
|
|
493
|
-
return resolver.graph();
|
|
494
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Dependency, ResourceRole } from "./types.js";
|
|
2
|
-
export declare function resource(index: number, value: Uint8Array, role: ResourceRole, access: Dependency["access"], stage: Dependency["stage"], literal?: boolean, syntax?: 'avio' | 'stdio'): Dependency;
|
|
3
|
-
interface FilterResource {
|
|
4
|
-
value: Uint8Array;
|
|
5
|
-
literal: boolean;
|
|
6
|
-
kind?: 'resource-lookup';
|
|
7
|
-
access?: Dependency['access'];
|
|
8
|
-
filterReader?: Dependency['filterReader'];
|
|
9
|
-
}
|
|
10
|
-
/** Apply a selected AVOption value directly. Loaded buffers are not graph syntax. */
|
|
11
|
-
export declare function filterValueResource(filter: string, field: string, value: Uint8Array): FilterResource | undefined;
|
|
12
|
-
export declare function filterResources(value: Uint8Array): {
|
|
13
|
-
resources: FilterResource[];
|
|
14
|
-
complete: boolean;
|
|
15
|
-
};
|
|
16
|
-
export {};
|