@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.
Files changed (696) hide show
  1. package/README.md +56 -31
  2. package/dist/image-ast/ast.d.ts +1 -0
  3. package/dist/image-ast/browser/ast.d.ts +1 -0
  4. package/dist/image-ast/browser/codecs/jpeg.d.ts +2 -2
  5. package/dist/image-ast/codecs/jpeg.d.ts +2 -2
  6. package/dist/image-ast/index.browser.js +692 -8364
  7. package/dist/image-ast/index.js +692 -8364
  8. package/dist/mp4-ast/codecs.d.ts +7 -2
  9. package/dist/safe-bash/chunks/{chunk-CHYGPFVM.js → chunk-22SX3F2R.js} +1 -1
  10. package/dist/safe-bash/chunks/{chunk-FBUCWVTE.js → chunk-2IVBJTBD.js} +1 -1
  11. package/dist/safe-bash/chunks/chunk-2POETUMB.js +190 -0
  12. package/dist/safe-bash/chunks/{chunk-XVOSKJE2.js → chunk-47D7WBJK.js} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-VKNVHEX3.js → chunk-4ESI236Y.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-74GHTNJA.js → chunk-4KTMKD5W.js} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-55YJASTN.js → chunk-4T53AERN.js} +1 -1
  16. package/dist/safe-bash/chunks/{chunk-DQP3VHSB.js → chunk-5XIFJVOO.js} +1 -1
  17. package/dist/safe-bash/chunks/{chunk-5OHX7C2V.js → chunk-62BOHHJT.js} +1 -1
  18. package/dist/safe-bash/chunks/{chunk-HZAMGT5I.js → chunk-67WIFM3N.js} +17 -6
  19. package/dist/safe-bash/chunks/{chunk-4D4N7IU2.js → chunk-6LNFRPW5.js} +2 -2
  20. package/dist/safe-bash/chunks/{chunk-6O77NL2S.js → chunk-6SMICPI3.js} +1 -1
  21. package/dist/safe-bash/chunks/{chunk-4BSJLKNM.js → chunk-7O76UFQD.js} +1 -1
  22. package/dist/safe-bash/chunks/{chunk-PNBBUWSM.js → chunk-AW5KIT6V.js} +3488 -39
  23. package/dist/safe-bash/chunks/{chunk-JMMEIDPF.js → chunk-B2Z73HTZ.js} +52 -28
  24. package/dist/safe-bash/chunks/chunk-B3ZMOJVM.js +319 -0
  25. package/dist/safe-bash/chunks/{chunk-7ZBU7KYV.js → chunk-CFAWS3O4.js} +1 -1
  26. package/dist/safe-bash/chunks/{chunk-I5HZ4FGE.js → chunk-CL2FCTTO.js} +1 -1
  27. package/dist/safe-bash/chunks/{chunk-2LSAMQER.js → chunk-CTXNARJH.js} +1 -1
  28. package/dist/safe-bash/chunks/{chunk-TFIBK2GI.js → chunk-D5Q7NFWI.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-OQRVVGR6.js → chunk-DSOOVZ6Q.js} +1 -1
  30. package/dist/safe-bash/chunks/{chunk-VTH3MLDU.js → chunk-DUTAG6ZD.js} +1 -1
  31. package/dist/safe-bash/chunks/{chunk-XAQMU6OY.js → chunk-EE5YGFIZ.js} +1 -1
  32. package/dist/safe-bash/chunks/{chunk-FZE4HW6G.js → chunk-EJOYT2ME.js} +1 -1
  33. package/dist/safe-bash/chunks/chunk-FAAIR6EJ.js +887 -0
  34. package/dist/safe-bash/chunks/{chunk-OV6IHKO6.js → chunk-FOB2FZR4.js} +2 -2
  35. package/dist/safe-bash/chunks/chunk-G6V4RRSQ.js +14 -0
  36. package/dist/safe-bash/chunks/{chunk-UTBUUFDM.js → chunk-GGQAGQXQ.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-K6VCD7IY.js → chunk-HIIYIJ5G.js} +2 -4
  38. package/dist/safe-bash/chunks/{chunk-VBTDHOWC.js → chunk-IOHH2GTI.js} +4 -3
  39. package/dist/safe-bash/chunks/{chunk-CTVWDACF.js → chunk-IQW34XQT.js} +1 -1
  40. package/dist/safe-bash/chunks/{chunk-HZ7BWKQ3.js → chunk-IS572AAT.js} +1 -1
  41. package/dist/safe-bash/chunks/{chunk-AUSNDQTJ.js → chunk-JPSUHHOA.js} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-ZVD5IS4V.js → chunk-KBZ4UB2O.js} +2 -2
  43. package/dist/safe-bash/chunks/{chunk-AM5ESLPH.js → chunk-KU5CVWKA.js} +1 -1
  44. package/dist/safe-bash/chunks/{chunk-RYFQ3LZG.js → chunk-LPOVNKNB.js} +173 -153
  45. package/dist/safe-bash/chunks/{chunk-46Z5E5EV.js → chunk-MBOC3LZ4.js} +1 -1
  46. package/dist/safe-bash/chunks/{chunk-6PAVEFT3.js → chunk-N4BQFD3P.js} +1 -1
  47. package/dist/safe-bash/chunks/{chunk-CS4MNM6I.js → chunk-NGKCVNWS.js} +1 -1
  48. package/dist/safe-bash/chunks/{chunk-7R5BDCG7.js → chunk-OHML2BEU.js} +1 -1
  49. package/dist/safe-bash/chunks/{chunk-C5OWC2TL.js → chunk-OQ3AGYCZ.js} +1 -1
  50. package/dist/safe-bash/chunks/{chunk-B7TAL7S5.js → chunk-PTAEWLSE.js} +0 -2
  51. package/dist/safe-bash/chunks/{chunk-LVOBFF4D.js → chunk-Q4FNLOTI.js} +1 -1
  52. package/dist/safe-bash/chunks/chunk-Q5XO3NAS.js +1036 -0
  53. package/dist/safe-bash/chunks/{chunk-GEG3BWGE.js → chunk-RHFRJIWQ.js} +1 -1
  54. package/dist/safe-bash/chunks/chunk-RUR6J33T.js +11 -0
  55. package/dist/safe-bash/chunks/{chunk-EEEWOYEG.js → chunk-S4RFUUXO.js} +839 -24
  56. package/dist/safe-bash/chunks/{chunk-RRR7AQ24.js → chunk-SD2ISU5L.js} +1 -1
  57. package/dist/safe-bash/chunks/{chunk-3NDIFSNM.js → chunk-SUJ3NTMH.js} +3 -3
  58. package/dist/safe-bash/chunks/{chunk-R3NAKOED.js → chunk-SZRUU5HS.js} +2 -2
  59. package/dist/safe-bash/chunks/{chunk-PH63PLPZ.js → chunk-TC3F4UFF.js} +1 -1
  60. package/dist/safe-bash/chunks/{chunk-3R3AANOR.js → chunk-TCKYOLUE.js} +1 -1
  61. package/dist/safe-bash/chunks/{chunk-D3ANYGMC.js → chunk-UV4X32QU.js} +1 -1
  62. package/dist/safe-bash/chunks/{chunk-E7OYNDGL.js → chunk-V7QT2RWC.js} +1 -1
  63. package/dist/safe-bash/chunks/{chunk-B7PIL77G.js → chunk-W2IYOVHK.js} +804 -1195
  64. package/dist/safe-bash/chunks/{chunk-3HQU4OJO.js → chunk-XNGVOSGI.js} +1 -1
  65. package/dist/safe-bash/chunks/{chunk-J42RIHHJ.js → chunk-XQWCQSRN.js} +1 -1
  66. package/dist/safe-bash/chunks/{chunk-A7XEHALN.js → chunk-Y7FW6GLT.js} +6 -6
  67. package/dist/safe-bash/chunks/{chunk-QGUV42T5.js → chunk-YL3GBUG4.js} +1 -1
  68. package/dist/safe-bash/chunks/chunk-YOXUCJER.js +389 -0
  69. package/dist/safe-bash/chunks/{chunk-HBCN24ZA.js → chunk-Z2AAYYJN.js} +2 -2
  70. package/dist/safe-bash/chunks/chunk-ZKYKJCZZ.js +30 -0
  71. package/dist/safe-bash/chunks/core-IE3AFIDX.js +85806 -0
  72. package/dist/safe-bash/chunks/{ffmpeg-WTC3TEFI.js → ffmpeg-YANDK6HU.js} +2 -2
  73. package/dist/safe-bash/chunks/{gh-6WU6PXL4.js → gh-4MBJ2S5V.js} +2 -2
  74. package/dist/safe-bash/chunks/{git-EFZIGJW4.js → git-2QONJNRQ.js} +2 -2
  75. package/dist/safe-bash/chunks/{imagemagick-EIEYGWPF.js → imagemagick-JLEHGYSN.js} +2 -2
  76. package/dist/safe-bash/chunks/{mmdc-ROQJT5HQ.js → mmdc-6LD7A6ND.js} +2 -2
  77. package/dist/safe-bash/chunks/{pdfimages-DW7LWXFI.js → pdfimages-RSHL7LOP.js} +2 -2
  78. package/dist/safe-bash/chunks/{pdfinfo-TIP6XLUQ.js → pdfinfo-L3SGWPNG.js} +2 -2
  79. package/dist/safe-bash/chunks/{pdftk-DMG22ITZ.js → pdftk-LFBJNU5A.js} +2 -2
  80. package/dist/safe-bash/chunks/{pdftoppm-WNDYR72T.js → pdftoppm-NXXFUIHG.js} +2 -2
  81. package/dist/safe-bash/chunks/{pdftotext-5IPZ4NI7.js → pdftotext-4IHNWT6F.js} +2 -2
  82. package/dist/safe-bash/chunks/{qpdf-TTX2DIUA.js → qpdf-ZEIREV63.js} +2 -2
  83. package/dist/safe-bash/chunks/read-builtin-A4QKAT45.js +9 -0
  84. package/dist/safe-bash/chunks/{sips-XYS46JPJ.js → sips-D5YBG2V3.js} +2 -2
  85. package/dist/safe-bash/chunks/{soffice-TU73E5KL.js → soffice-RAJU3JUT.js} +2 -2
  86. package/dist/safe-bash/chunks/source-files-3XWRRHFA.js +7 -0
  87. package/dist/safe-bash/chunks/{wkhtmltopdf-FSZ2CHGE.js → wkhtmltopdf-7UE4FORZ.js} +2 -2
  88. package/dist/safe-bash/command-chunks/{chunk-7KWZXKY6.js → chunk-26RTBV2I.js} +1 -0
  89. package/dist/safe-bash/command-chunks/{chunk-AQJ2ROJO.js → chunk-2WYNMZR2.js} +10 -8
  90. package/dist/safe-bash/command-chunks/{chunk-BDSMROQZ.js → chunk-36GFRF2N.js} +2 -1
  91. package/dist/safe-bash/command-chunks/{chunk-GC5TJZOF.js → chunk-3VIA2IA7.js} +114 -31
  92. package/dist/safe-bash/command-chunks/{chunk-NKFYQSES.js → chunk-4CTI3ZTX.js} +1 -0
  93. package/dist/safe-bash/command-chunks/{chunk-WH627NJL.js → chunk-4MYP2FX4.js} +2 -1
  94. package/dist/safe-bash/command-chunks/{chunk-ZDN7MJE6.js → chunk-4R5ADJM5.js} +11 -1
  95. package/dist/safe-bash/command-chunks/{chunk-P2N33UMN.js → chunk-5MIKM54M.js} +4 -4
  96. package/dist/safe-bash/command-chunks/{chunk-DB453IE6.js → chunk-6FZQUOSJ.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-PICVQ6B5.js → chunk-6GKYHPJG.js} +1 -1
  98. package/dist/safe-bash/command-chunks/{chunk-7K6JYKPJ.js → chunk-6M2ELGEN.js} +17 -15
  99. package/dist/safe-bash/command-chunks/{chunk-PXEIT2O4.js → chunk-6UR7V3ET.js} +8 -1
  100. package/dist/safe-bash/command-chunks/{chunk-6KJ3LPI2.js → chunk-6XBS5B46.js} +26 -3
  101. package/dist/safe-bash/command-chunks/{chunk-5PWJG2UK.js → chunk-6YXLZX7L.js} +2 -2
  102. package/dist/safe-bash/command-chunks/{chunk-EK6YNAXT.js → chunk-753YOR54.js} +31 -5
  103. package/dist/safe-bash/command-chunks/{chunk-RMWQAAO5.js → chunk-7IR4NRNE.js} +2 -2
  104. package/dist/safe-bash/command-chunks/{chunk-FZTK4MFI.js → chunk-7NM73SVK.js} +8 -8
  105. package/dist/safe-bash/command-chunks/{chunk-NXEQ3ESQ.js → chunk-7QD5YY4F.js} +6 -11
  106. package/dist/safe-bash/command-chunks/{chunk-EMPU65ZK.js → chunk-A5LBSJGH.js} +1 -0
  107. package/dist/safe-bash/command-chunks/{chunk-4FEVBOL5.js → chunk-ARZMP2L2.js} +2 -2
  108. package/dist/safe-bash/command-chunks/{chunk-NKIELG7Y.js → chunk-BAKFZ477.js} +40 -19
  109. package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
  110. package/dist/safe-bash/command-chunks/{chunk-CQHP3I66.js → chunk-BOEOJS2Q.js} +1 -1
  111. package/dist/safe-bash/command-chunks/{chunk-XS72HTMA.js → chunk-BWGGLYEB.js} +5 -22
  112. package/dist/safe-bash/command-chunks/{chunk-PMBFZXTK.js → chunk-C5ZZKP7V.js} +1 -1
  113. package/dist/safe-bash/command-chunks/{chunk-LHIOAFWW.js → chunk-C7SEB6WU.js} +1 -1
  114. package/dist/safe-bash/command-chunks/{chunk-XPT2UGBF.js → chunk-CHJKFRT7.js} +1 -1
  115. package/dist/safe-bash/command-chunks/{chunk-TIOCQVUQ.js → chunk-CON26Q2O.js} +1 -1
  116. package/dist/safe-bash/command-chunks/{chunk-E55UKBIE.js → chunk-DBAT3IK2.js} +1 -1
  117. package/dist/safe-bash/command-chunks/{chunk-Z45N42QC.js → chunk-DPAYAVMS.js} +15 -1
  118. package/dist/safe-bash/command-chunks/chunk-DS3NXVUM.js +368 -0
  119. package/dist/safe-bash/command-chunks/{chunk-5ZMZ573Q.js → chunk-DSJ3VRL3.js} +16 -4
  120. package/dist/safe-bash/command-chunks/{chunk-K2GDEMEU.js → chunk-EFRCFWVR.js} +4 -4
  121. package/dist/safe-bash/command-chunks/{chunk-DZCY63VJ.js → chunk-EV6HIJ5H.js} +6 -5
  122. package/dist/safe-bash/command-chunks/{chunk-JDYXY44P.js → chunk-FJURV46Y.js} +3 -3
  123. package/dist/safe-bash/command-chunks/{chunk-TZZ4WUKH.js → chunk-FZAWGKSE.js} +6 -4
  124. package/dist/safe-bash/command-chunks/{chunk-YHFXOX6U.js → chunk-GOCFQ6XV.js} +4 -4
  125. package/dist/safe-bash/command-chunks/{chunk-QVOS4YXL.js → chunk-HH5O7DJI.js} +1 -1
  126. package/dist/safe-bash/command-chunks/{chunk-3HHCU5YU.js → chunk-HK7F5SDC.js} +13 -0
  127. package/dist/safe-bash/command-chunks/{chunk-JNZ3CVAE.js → chunk-HQBXIZC7.js} +8 -3
  128. package/dist/safe-bash/command-chunks/{chunk-V4K2JDYU.js → chunk-I63DBZXZ.js} +2 -2
  129. package/dist/safe-bash/command-chunks/{chunk-WNE7FPVR.js → chunk-I64TLTIW.js} +24 -16
  130. package/dist/safe-bash/command-chunks/{chunk-GFC2NTDG.js → chunk-ICANWOXH.js} +5 -29
  131. package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.js} +1 -1
  132. package/dist/safe-bash/command-chunks/{chunk-TGSNCQSR.js → chunk-JT4RYCA6.js} +1771 -1663
  133. package/dist/safe-bash/command-chunks/{chunk-II77KPZN.js → chunk-JWW6FYBN.js} +2 -2
  134. package/dist/safe-bash/command-chunks/{chunk-ZYXH3B66.js → chunk-LCJWKTCJ.js} +250 -203
  135. package/dist/safe-bash/command-chunks/chunk-LU4HBPP2.js +97 -0
  136. package/dist/safe-bash/command-chunks/{chunk-XJXU3VVH.js → chunk-LWOE65OE.js} +20 -5
  137. package/dist/safe-bash/command-chunks/{chunk-GMIHJYDG.js → chunk-M32HFSX7.js} +22 -6
  138. package/dist/safe-bash/command-chunks/{chunk-YG4EPFWC.js → chunk-M3NINRDU.js} +2880 -172
  139. package/dist/safe-bash/command-chunks/chunk-MQREDAL6.js +164 -0
  140. package/dist/safe-bash/command-chunks/{chunk-LWS62ISU.js → chunk-N6DIASO2.js} +1 -1
  141. package/dist/safe-bash/command-chunks/chunk-NGL7YK7O.js +188 -0
  142. package/dist/safe-bash/command-chunks/{chunk-EARHPPPJ.js → chunk-NJYHWKIL.js} +39 -9
  143. package/dist/safe-bash/command-chunks/{chunk-6JSIFWYT.js → chunk-OJQRSCBP.js} +1 -1
  144. package/dist/safe-bash/command-chunks/{chunk-OQU6UT6X.js → chunk-OV3XREFN.js} +11 -0
  145. package/dist/safe-bash/command-chunks/{chunk-MIXBO6U7.js → chunk-PTZLF456.js} +2 -2
  146. package/dist/safe-bash/command-chunks/{chunk-ALDC4XP4.js → chunk-QILLRNES.js} +34 -10
  147. package/dist/safe-bash/command-chunks/{chunk-L22T3H7L.js → chunk-QR25JLKO.js} +1 -1
  148. package/dist/safe-bash/command-chunks/{chunk-NASVPT6F.js → chunk-R7C4MGZ5.js} +17 -224
  149. package/dist/safe-bash/command-chunks/{chunk-LCF3OB7P.js → chunk-RBME3JEH.js} +1 -1
  150. package/dist/safe-bash/command-chunks/{chunk-2KG2QLJE.js → chunk-RFWGYT7G.js} +3 -0
  151. package/dist/safe-bash/command-chunks/{chunk-5TBUOBDE.js → chunk-RZMVRT26.js} +27 -13
  152. package/dist/safe-bash/command-chunks/chunk-TFR6B3WB.js +44 -0
  153. package/dist/safe-bash/command-chunks/chunk-TOH3OF3O.js +179 -0
  154. package/dist/safe-bash/command-chunks/chunk-TT4DAFBT.js +13621 -0
  155. package/dist/safe-bash/command-chunks/{chunk-LWSBAWLT.js → chunk-TXI64OAG.js} +1 -1
  156. package/dist/safe-bash/command-chunks/{chunk-GIRNFXP3.js → chunk-TZRI7BJZ.js} +45 -15
  157. package/dist/safe-bash/command-chunks/{chunk-QOKBZFFD.js → chunk-U3MMODA5.js} +2 -7
  158. package/dist/safe-bash/command-chunks/{chunk-ZYHTWNAE.js → chunk-UAW423ZL.js} +11 -11
  159. package/dist/safe-bash/command-chunks/{chunk-C5YYCQHW.js → chunk-UXEEUGOV.js} +222 -12
  160. package/dist/safe-bash/command-chunks/{chunk-GY3BWK7K.js → chunk-VOZPMJRX.js} +87 -80
  161. package/dist/safe-bash/command-chunks/{chunk-ILX2NOLF.js → chunk-WPANOB4A.js} +20 -20
  162. package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
  163. package/dist/safe-bash/command-chunks/{chunk-HDCNKOIX.js → chunk-XGI57GCN.js} +1 -1
  164. package/dist/safe-bash/command-chunks/{chunk-5UBXNSFZ.js → chunk-XUCU7QQT.js} +1281 -1278
  165. package/dist/safe-bash/command-chunks/chunk-Y22VXJBD.js +296 -0
  166. package/dist/safe-bash/command-chunks/{chunk-WVHONVZ4.js → chunk-YMFUUPDX.js} +5 -3
  167. package/dist/safe-bash/command-chunks/{chunk-IR2BY7EL.js → chunk-YYGIBXFZ.js} +2 -2
  168. package/dist/safe-bash/command-chunks/{chunk-MSFXC3OC.js → chunk-Z4FO6OHE.js} +2 -2
  169. package/dist/safe-bash/command-chunks/{chunk-WWIBP2ET.js → chunk-Z5ZZVDUD.js} +143 -22
  170. package/dist/safe-bash/command-chunks/{chunk-LOICUCHG.js → chunk-ZHN3QDCI.js} +1 -1
  171. package/dist/safe-bash/commands/alias/index.d.ts +2 -0
  172. package/dist/safe-bash/commands/alias/index.js +2 -0
  173. package/dist/safe-bash/commands/apply-patch/index.browser.js +2 -3
  174. package/dist/safe-bash/commands/apply-patch/index.d.ts +0 -1
  175. package/dist/safe-bash/commands/apply-patch/index.js +0 -1
  176. package/dist/safe-bash/commands/archive/index.browser.js +2 -3
  177. package/dist/safe-bash/commands/archive/index.d.ts +0 -1
  178. package/dist/safe-bash/commands/archive/index.js +0 -1
  179. package/dist/safe-bash/commands/bytes/index.js +2 -1
  180. package/dist/safe-bash/commands/chmod/index.browser.js +1 -1
  181. package/dist/safe-bash/commands/column/index.browser.js +2 -3
  182. package/dist/safe-bash/commands/column/index.d.ts +0 -1
  183. package/dist/safe-bash/commands/column/index.js +0 -1
  184. package/dist/safe-bash/commands/copy-source.js +1 -0
  185. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  186. package/dist/safe-bash/commands/csvkit/index.browser.js +72 -0
  187. package/dist/safe-bash/commands/csvkit/index.d.ts +0 -5
  188. package/dist/safe-bash/commands/csvkit/index.js +0 -50
  189. package/dist/safe-bash/commands/docx/index.browser.js +5 -7
  190. package/dist/safe-bash/commands/du/index.browser.js +2 -3
  191. package/dist/safe-bash/commands/du/index.d.ts +0 -1
  192. package/dist/safe-bash/commands/du/index.js +0 -1
  193. package/dist/safe-bash/commands/expr/index.browser.js +2 -3
  194. package/dist/safe-bash/commands/expr/index.d.ts +0 -1
  195. package/dist/safe-bash/commands/expr/index.js +0 -1
  196. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  197. package/dist/safe-bash/commands/file/index.browser.js +2 -3
  198. package/dist/safe-bash/commands/file/index.d.ts +0 -1
  199. package/dist/safe-bash/commands/file/index.js +0 -1
  200. package/dist/safe-bash/commands/filesystem.js +1 -1
  201. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  202. package/dist/safe-bash/commands/grep-aliases/index.browser.js +3 -3
  203. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  204. package/dist/safe-bash/commands/html-to-markdown/index.browser.js +2 -3
  205. package/dist/safe-bash/commands/html-to-markdown/index.d.ts +0 -1
  206. package/dist/safe-bash/commands/html-to-markdown/index.js +0 -1
  207. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -5
  208. package/dist/safe-bash/commands/htmlq/index.js +1 -143
  209. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  210. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  211. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  212. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  213. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  214. package/dist/safe-bash/commands/media/index.browser.js +4 -16314
  215. package/dist/safe-bash/commands/media/index.d.ts +1 -5
  216. package/dist/safe-bash/commands/media/index.js +1 -3
  217. package/dist/safe-bash/commands/media/plugin.d.ts +1 -18
  218. package/dist/safe-bash/commands/media/plugin.js +1 -90
  219. package/dist/safe-bash/commands/media/remote.d.ts +1 -63
  220. package/dist/safe-bash/commands/media/remote.js +1 -405
  221. package/dist/safe-bash/commands/media/settings.d.ts +1 -4
  222. package/dist/safe-bash/commands/media/settings.js +1 -26
  223. package/dist/safe-bash/commands/metadata/index.browser.js +3 -4
  224. package/dist/safe-bash/commands/metadata/index.d.ts +0 -1
  225. package/dist/safe-bash/commands/metadata/index.js +2 -2
  226. package/dist/safe-bash/commands/mktemp/index.browser.js +1 -1
  227. package/dist/safe-bash/commands/network/curl.js +1 -3
  228. package/dist/safe-bash/commands/network/index.browser.js +3 -4
  229. package/dist/safe-bash/commands/network/public.d.ts +0 -1
  230. package/dist/safe-bash/commands/network/public.js +0 -1
  231. package/dist/safe-bash/commands/network/transport.js +2 -1
  232. package/dist/safe-bash/commands/network/wget.js +1 -3
  233. package/dist/safe-bash/commands/node/browser.d.ts +0 -1
  234. package/dist/safe-bash/commands/node/browser.js +0 -1
  235. package/dist/safe-bash/commands/node/default-runtime.d.ts +3 -0
  236. package/dist/safe-bash/commands/node/default-runtime.js +15 -0
  237. package/dist/safe-bash/commands/node/index.browser.js +7 -8
  238. package/dist/safe-bash/commands/node/index.js +3 -3
  239. package/dist/safe-bash/commands/node/path.js +1 -1
  240. package/dist/safe-bash/commands/node/preload.d.ts +1 -1
  241. package/dist/safe-bash/commands/node/preload.js +4 -1
  242. package/dist/safe-bash/commands/node/quickjs.d.ts +2 -0
  243. package/dist/safe-bash/commands/node/quickjs.js +2 -0
  244. package/dist/safe-bash/commands/node/safejs.js +26 -12
  245. package/dist/safe-bash/commands/op/index.browser.js +2 -3
  246. package/dist/safe-bash/commands/op/index.d.ts +0 -11
  247. package/dist/safe-bash/commands/op/index.js +0 -84
  248. package/dist/safe-bash/commands/pandoc/index.browser.js +44 -0
  249. package/dist/safe-bash/commands/pandoc/index.d.ts +0 -1
  250. package/dist/safe-bash/commands/pandoc/index.js +0 -1
  251. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  252. package/dist/safe-bash/commands/python/docker-runner.js +4 -3
  253. package/dist/safe-bash/commands/python/docker.d.ts +1 -0
  254. package/dist/safe-bash/commands/python/docker.js +5 -2
  255. package/dist/safe-bash/commands/python/index.browser.js +17 -13
  256. package/dist/safe-bash/commands/python/index.d.ts +2 -1
  257. package/dist/safe-bash/commands/python/index.js +10 -8
  258. package/dist/safe-bash/commands/python/llm-capability.js +65 -2
  259. package/dist/safe-bash/commands/python/llm-dependencies.d.ts +27 -0
  260. package/dist/safe-bash/commands/python/llm-dependencies.js +66 -0
  261. package/dist/safe-bash/commands/python/llm-module.js +6 -4
  262. package/dist/safe-bash/commands/python/llm-reference-module.d.ts +3 -0
  263. package/dist/safe-bash/commands/python/llm-reference-module.js +690 -0
  264. package/dist/safe-bash/commands/python/worker.browser.js +2 -3
  265. package/dist/safe-bash/commands/python/worker.d.ts +0 -1
  266. package/dist/safe-bash/commands/python/worker.js +0 -1
  267. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.d.ts +1 -1
  268. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.js +3 -3
  269. package/dist/safe-bash/commands/regex-execution/public.browser.js +7 -7
  270. package/dist/safe-bash/commands/safejs/options.js +5 -1
  271. package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -0
  272. package/dist/safe-bash/commands/safejs/runtime.js +1 -1
  273. package/dist/safe-bash/commands/split/index.browser.js +2 -3
  274. package/dist/safe-bash/commands/split/index.d.ts +0 -1
  275. package/dist/safe-bash/commands/split/index.js +0 -1
  276. package/dist/safe-bash/commands/ssconvert/index.browser.js +98 -0
  277. package/dist/safe-bash/commands/stat/index.browser.js +1 -1
  278. package/dist/safe-bash/commands/stream-format/index.browser.js +3 -4
  279. package/dist/safe-bash/commands/stream-format/index.d.ts +0 -1
  280. package/dist/safe-bash/commands/stream-format/index.js +0 -1
  281. package/dist/safe-bash/commands/stream-inspection/index.browser.js +3 -4
  282. package/dist/safe-bash/commands/stream-inspection/index.d.ts +0 -1
  283. package/dist/safe-bash/commands/stream-inspection/index.js +0 -1
  284. package/dist/safe-bash/commands/streams.js +2 -1
  285. package/dist/safe-bash/commands/table-text/index.browser.js +3 -4
  286. package/dist/safe-bash/commands/table-text/index.d.ts +0 -1
  287. package/dist/safe-bash/commands/table-text/index.js +0 -1
  288. package/dist/safe-bash/commands/text.js +28 -24
  289. package/dist/safe-bash/commands/time-env/index.browser.js +3 -4
  290. package/dist/safe-bash/commands/time-env/index.d.ts +0 -1
  291. package/dist/safe-bash/commands/time-env/index.js +0 -1
  292. package/dist/safe-bash/commands/tree/index.browser.js +2 -3
  293. package/dist/safe-bash/commands/tree/index.d.ts +0 -1
  294. package/dist/safe-bash/commands/tree/index.js +0 -1
  295. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  296. package/dist/safe-bash/commands/unalias/index.d.ts +2 -0
  297. package/dist/safe-bash/commands/unalias/index.js +2 -0
  298. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  299. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  300. package/dist/safe-bash/core.browser.js +2 -2
  301. package/dist/safe-bash/core.d.ts +7 -1
  302. package/dist/safe-bash/core.js +7 -1
  303. package/dist/safe-bash/execution-runtime.js +2 -1
  304. package/dist/safe-bash/fs/s3/http/index.d.ts +2 -2
  305. package/dist/safe-bash/fs/s3/http/index.js +1 -1
  306. package/dist/safe-bash/full-core.browser.js +283 -945
  307. package/dist/safe-bash/internal/op/types.d.ts +1 -0
  308. package/dist/safe-bash/jobs.browser.js +5 -5
  309. package/dist/safe-bash/lazy-optional.d.ts +3 -3
  310. package/dist/safe-bash/lazy-optional.js +1 -1
  311. package/dist/safe-bash/opt-in/commands/cmp/index.js +7 -6
  312. package/dist/safe-bash/opt-in/commands/dd/index.js +1 -1
  313. package/dist/safe-bash/opt-in/commands/dd/io.js +51 -5
  314. package/dist/safe-bash/opt-in/commands/truncate/index.js +2 -2
  315. package/dist/safe-bash/opt-in/commands/yq/native-work.js +2 -0
  316. package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +2 -1
  317. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -2
  318. package/dist/safe-bash/opt-in/optional.d.ts +1 -1
  319. package/dist/safe-bash/opt-in/optional.js +1 -1
  320. package/dist/safe-bash/opt-in/shell/extensions/read/index.js +2 -344
  321. package/dist/safe-bash/optional-host.browser.js +23 -18
  322. package/dist/safe-bash/optional-host.d.ts +1 -0
  323. package/dist/safe-bash/optional-host.js +1 -0
  324. package/dist/safe-bash/playwright/controller.js +41 -3
  325. package/dist/safe-bash/playwright/native-storage-targets.js +4 -2
  326. package/dist/safe-bash/plugins/base.d.ts +1 -1
  327. package/dist/safe-bash/plugins/base.js +3 -3
  328. package/dist/safe-bash/plugins/composition.d.ts +5 -2
  329. package/dist/safe-bash/plugins/composition.js +10 -7
  330. package/dist/safe-bash/plugins/index.browser.js +44 -41
  331. package/dist/safe-bash/plugins/index.js +3 -2
  332. package/dist/safe-bash/plugins/portable-commands.d.ts +3 -0
  333. package/dist/safe-bash/plugins/portable-commands.js +31 -0
  334. package/dist/safe-bash/registry-entry.browser.js +41 -42
  335. package/dist/safe-bash/search.browser.js +32 -33
  336. package/dist/safe-bash/shell/arithmetic.js +19 -6
  337. package/dist/safe-bash/shell/arrays/state.js +1 -1
  338. package/dist/safe-bash/shell/arrays/syntax.js +4 -3
  339. package/dist/safe-bash/shell/index.d.ts +0 -1
  340. package/dist/safe-bash/shell/index.js +0 -1
  341. package/dist/safe-bash/shell/parser.d.ts +2 -2
  342. package/dist/safe-bash/shell/parser.js +268 -64
  343. package/dist/safe-bash/shell/read-builtin.d.ts +3 -0
  344. package/dist/safe-bash/shell/read-builtin.js +344 -0
  345. package/dist/safe-bash/shell/runtime.d.ts +21 -4
  346. package/dist/safe-bash/shell/runtime.js +373 -412
  347. package/dist/safe-bash/shell/session-state.js +25 -0
  348. package/dist/safe-bash/shell/shell.js +76 -154
  349. package/dist/safe-bash/shell/tilde-expansion.d.ts +1 -1
  350. package/dist/safe-bash/shell/tilde-expansion.js +2 -2
  351. package/dist/safe-bash/shell/types.d.ts +5 -0
  352. package/dist/safe-bash/shell/value-state.js +1 -1
  353. package/dist/safe-bash/shell-entry.browser.js +32 -33
  354. package/dist/safe-bash/trap.browser.js +4 -4
  355. package/dist/safe-bash/yq-browser/index.js +1 -1
  356. package/dist/safe-bash-calendar-engine/time-env/calendar.d.ts +1 -1
  357. package/dist/safe-bash-calendar-engine/time-env/calendar.js +1 -1
  358. package/dist/safe-bash-calendar-engine/time-env/format.js +1 -1
  359. package/dist/safe-bash-command-alias/index.d.ts +13 -0
  360. package/dist/safe-bash-command-alias/index.js +88 -0
  361. package/dist/safe-bash-command-apply-patch/apply.js +3 -3
  362. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  363. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  364. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  365. package/dist/safe-bash-command-awk/awk-pipes.js +2 -2
  366. package/dist/safe-bash-command-awk/awk-reader.js +1 -1
  367. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  368. package/dist/safe-bash-command-awk/awk.js +5 -5
  369. package/dist/safe-bash-command-awk/index.js +5 -5
  370. package/dist/safe-bash-command-bc/index.js +206 -60
  371. package/dist/safe-bash-command-cmp/index.js +7 -6
  372. package/dist/safe-bash-command-column/column.js +3 -3
  373. package/dist/safe-bash-command-column/index.js +3 -3
  374. package/dist/safe-bash-command-column/layout.js +2 -2
  375. package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
  376. package/dist/safe-bash-command-csvkit/index.js +1505 -7
  377. package/dist/safe-bash-command-csvkit/sync-support.js +2 -7
  378. package/dist/safe-bash-command-curl/curl.js +1 -1
  379. package/dist/safe-bash-command-curl/index.js +1 -1
  380. package/dist/safe-bash-command-date/date.js +1 -1
  381. package/dist/safe-bash-command-date/index.js +1 -1
  382. package/dist/safe-bash-command-dd/index.js +1 -1
  383. package/dist/safe-bash-command-dd/io.js +51 -5
  384. package/dist/safe-bash-command-diff/diff.js +1 -1
  385. package/dist/safe-bash-command-diff/index.js +1 -1
  386. package/dist/safe-bash-command-diff3/index.js +10 -13
  387. package/dist/safe-bash-command-exiftool/index.js +278 -50
  388. package/dist/safe-bash-command-exiftool/registry.d.ts +4 -2
  389. package/dist/safe-bash-command-factor/command.js +2 -2
  390. package/dist/safe-bash-command-factor/index.js +2 -2
  391. package/dist/safe-bash-command-fd/arguments.d.ts +2 -0
  392. package/dist/safe-bash-command-fd/index.js +42 -12
  393. package/dist/safe-bash-command-ffmpeg/index.js +356 -66
  394. package/dist/safe-bash-command-find/find-format.d.ts +3 -0
  395. package/dist/safe-bash-command-find/find-format.js +1 -1
  396. package/dist/safe-bash-command-find/find.js +2 -2
  397. package/dist/safe-bash-command-find/index.js +2 -2
  398. package/dist/safe-bash-command-fmt/index.js +1 -4
  399. package/dist/safe-bash-command-fold/engine.d.ts +1 -1
  400. package/dist/safe-bash-command-fold/family.js +2 -2
  401. package/dist/safe-bash-command-fold/index.js +1 -1
  402. package/dist/safe-bash-command-hexdump/command.js +2 -2
  403. package/dist/safe-bash-command-hexdump/index.js +2 -2
  404. package/dist/safe-bash-command-html-to-markdown/entities.js +1 -1
  405. package/dist/safe-bash-command-html-to-markdown/index.js +4 -4
  406. package/dist/safe-bash-command-html-to-markdown/input.js +3 -3
  407. package/dist/safe-bash-command-html-to-markdown/parser.js +2 -2
  408. package/dist/safe-bash-command-html-to-markdown/render.js +3 -3
  409. package/dist/safe-bash-command-htmlq/contracts.d.ts +5 -2
  410. package/dist/safe-bash-command-htmlq/index.d.ts +2 -1
  411. package/dist/safe-bash-command-htmlq/index.js +175 -49
  412. package/dist/safe-bash-command-htmlq/sync.d.ts +1 -0
  413. package/dist/safe-bash-command-imagemagick/index.js +56 -6
  414. package/dist/safe-bash-command-install/arguments.d.ts +27 -0
  415. package/dist/safe-bash-command-install/arguments.js +224 -0
  416. package/dist/safe-bash-command-install/index.d.ts +7 -0
  417. package/dist/safe-bash-command-install/index.js +942 -0
  418. package/dist/safe-bash-command-install/mode.d.ts +6 -0
  419. package/dist/safe-bash-command-install/mode.js +71 -0
  420. package/dist/safe-bash-command-install/options.d.ts +40 -0
  421. package/dist/safe-bash-command-install/options.js +27 -0
  422. package/dist/safe-bash-command-jq/index.js +1 -1
  423. package/dist/safe-bash-command-jq/jq.js +1 -1
  424. package/dist/safe-bash-command-less/index.js +37 -61
  425. package/dist/safe-bash-command-llm/command.js +1 -1
  426. package/dist/safe-bash-command-llm/elevenlabs.js +2 -2
  427. package/dist/safe-bash-command-llm/index.js +4 -4
  428. package/dist/safe-bash-command-llm/openai.js +2 -2
  429. package/dist/safe-bash-command-llm/providers/elevenlabs.js +2 -2
  430. package/dist/safe-bash-command-llm/providers/index.js +3 -3
  431. package/dist/safe-bash-command-llm/providers/openai.js +2 -2
  432. package/dist/safe-bash-command-llm/providers/shared.js +1 -1
  433. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.browser.d.ts +463 -46
  434. package/dist/safe-bash-command-mcp/index.browser.js +19308 -0
  435. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.d.ts +15 -6
  436. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.js +2804 -2771
  437. package/dist/safe-bash-command-media/LICENSE +21 -0
  438. package/dist/safe-bash-command-media/index.d.ts +6 -0
  439. package/dist/safe-bash-command-media/index.js +30 -0
  440. package/dist/safe-bash-command-media/plugin.d.ts +18 -0
  441. package/dist/safe-bash-command-media/plugin.js +11 -0
  442. package/dist/safe-bash-command-media/remote.d.ts +63 -0
  443. package/dist/safe-bash-command-media/remote.js +11 -0
  444. package/dist/safe-bash-command-media/settings.d.ts +4 -0
  445. package/dist/safe-bash-command-media/settings.js +41 -0
  446. package/dist/safe-bash-command-mktemp/command.js +1 -1
  447. package/dist/safe-bash-command-mktemp/index.js +1 -1
  448. package/dist/safe-bash-command-mmdc/arguments.d.ts +1 -0
  449. package/dist/safe-bash-command-mmdc/command.d.ts +2 -0
  450. package/dist/safe-bash-command-mmdc/contracts.d.ts +8 -1
  451. package/dist/safe-bash-command-mmdc/index.js +359 -7
  452. package/dist/safe-bash-command-nl/index.js +1 -1
  453. package/dist/safe-bash-command-nl/nl.js +1 -1
  454. package/dist/safe-bash-command-node/LICENSE +21 -0
  455. package/dist/safe-bash-command-node/index.d.ts +17 -0
  456. package/dist/safe-bash-command-node/index.js +328 -0
  457. package/dist/safe-bash-command-numfmt/index.js +1 -0
  458. package/dist/safe-bash-command-od/index.js +10 -6
  459. package/dist/safe-bash-command-op/index.js +39 -32
  460. package/dist/safe-bash-command-op/types.d.ts +1 -0
  461. package/dist/safe-bash-command-pandoc/command.js +3 -3
  462. package/dist/safe-bash-command-pandoc/index.d.ts +1 -0
  463. package/dist/safe-bash-command-pandoc/index.js +5 -3
  464. package/dist/safe-bash-command-pandoc/sync.d.ts +1 -0
  465. package/dist/safe-bash-command-patch/index.js +4 -4
  466. package/dist/safe-bash-command-patch/patch.js +4 -4
  467. package/dist/safe-bash-command-pdfimages/index.js +1 -1
  468. package/dist/safe-bash-command-pdfinfo/index.js +30 -5
  469. package/dist/safe-bash-command-pdftk/index.js +21 -23
  470. package/dist/safe-bash-command-pdftoppm/index.js +17 -4
  471. package/dist/safe-bash-command-pdftotext/index.js +11 -14
  472. package/dist/safe-bash-command-qpdf/index.d.ts +1 -0
  473. package/dist/safe-bash-command-qpdf/index.js +9 -6
  474. package/dist/safe-bash-command-rg/index.js +1 -1
  475. package/dist/safe-bash-command-rg/rg-command.js +1 -1
  476. package/dist/safe-bash-command-sed/index.js +1 -1
  477. package/dist/safe-bash-command-sed/sed.js +1 -1
  478. package/dist/safe-bash-command-shuf/input.d.ts +2 -2
  479. package/dist/safe-bash-command-shuf/input.js +2 -1
  480. package/dist/safe-bash-command-shuf/shuf.js +4 -2
  481. package/dist/safe-bash-command-sips/index.js +2 -2
  482. package/dist/safe-bash-command-soffice/index.js +97 -12
  483. package/dist/safe-bash-command-sponge/index.js +4 -1
  484. package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -0
  485. package/dist/safe-bash-command-sqlite3/index.js +510 -70
  486. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +2 -2
  487. package/dist/safe-bash-command-ssconvert/index.js +44 -22
  488. package/dist/safe-bash-command-stat/command.js +1 -1
  489. package/dist/safe-bash-command-stat/index.js +1 -1
  490. package/dist/safe-bash-command-tar/create.d.ts +1 -0
  491. package/dist/safe-bash-command-tar/create.js +2 -2
  492. package/dist/safe-bash-command-tar/extract.js +2 -2
  493. package/dist/safe-bash-command-tar/index.js +4 -4
  494. package/dist/safe-bash-command-tar/modes.js +4 -4
  495. package/dist/safe-bash-command-tar/options.js +1 -1
  496. package/dist/safe-bash-command-truncate/index.js +2 -2
  497. package/dist/safe-bash-command-tsort/command.js +2 -2
  498. package/dist/safe-bash-command-tsort/index.js +2 -2
  499. package/dist/safe-bash-command-unalias/index.d.ts +12 -0
  500. package/dist/safe-bash-command-unalias/index.js +67 -0
  501. package/dist/safe-bash-command-unrtf/index.js +26 -4
  502. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  503. package/dist/safe-bash-command-xan/argv.js +2 -2
  504. package/dist/safe-bash-command-xan/budget.d.ts +0 -1
  505. package/dist/safe-bash-command-xan/budget.js +1 -1
  506. package/dist/safe-bash-command-xan/commands.js +6 -6
  507. package/dist/safe-bash-command-xan/csv.js +2 -2
  508. package/dist/safe-bash-command-xan/index.js +8 -9
  509. package/dist/safe-bash-command-xan/io.js +4 -4
  510. package/dist/safe-bash-command-xan/options.js +1 -1
  511. package/dist/safe-bash-command-xan/selector.js +2 -2
  512. package/dist/safe-bash-command-xmllint/index.js +45 -23
  513. package/dist/safe-bash-command-xxd/index.js +41 -10
  514. package/dist/safe-bash-command-yq/accounting.js +1 -1
  515. package/dist/safe-bash-command-yq/index.js +3 -2
  516. package/dist/safe-bash-command-yq/native-work.js +2 -0
  517. package/dist/safe-bash-command-yq/parser.js +2 -2
  518. package/dist/safe-bash-command-yq/query.js +5 -5
  519. package/dist/safe-bash-command-yq/toml.js +2 -2
  520. package/dist/safe-bash-command-zip/index.js +3 -3
  521. package/dist/safe-bash-compression-engine/bounded-codec.js +2 -2
  522. package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
  523. package/dist/safe-bash-compression-engine/files.js +5 -5
  524. package/dist/safe-bash-compression-engine/index.js +4 -4
  525. package/dist/safe-bash-compression-engine/operand.js +5 -5
  526. package/dist/safe-bash-compression-engine/stream.js +4 -4
  527. package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
  528. package/dist/safe-bash-contracts/command.js +3 -3
  529. package/dist/safe-bash-contracts/default-executor.js +2 -2
  530. package/dist/safe-bash-contracts/diagnostics.js +3 -3
  531. package/dist/safe-bash-contracts/escaping.js +6 -6
  532. package/dist/safe-bash-contracts/filesystem-descriptor.js +3 -3
  533. package/dist/safe-bash-contracts/filesystem-output.js +5 -5
  534. package/dist/safe-bash-contracts/http.d.ts +7 -0
  535. package/dist/safe-bash-contracts/index.js +8 -8
  536. package/dist/safe-bash-contracts/io.js +2 -2
  537. package/dist/safe-bash-contracts/output.js +3 -3
  538. package/dist/safe-bash-contracts/runtime-control.d.ts +2 -2
  539. package/dist/safe-bash-contracts/runtime-control.js +4 -2
  540. package/dist/safe-bash-contracts/signals.d.ts +2 -0
  541. package/dist/safe-bash-contracts/signals.js +3 -1
  542. package/dist/safe-bash-contracts/yield.js +1 -1
  543. package/dist/safe-bash-csv-engine/index.d.ts +2 -1
  544. package/dist/safe-bash-csv-engine/index.js +21 -15
  545. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  546. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +6 -6
  547. package/dist/safe-bash-io-engine/internal.js +1 -1
  548. package/dist/safe-bash-io-engine/shell/pattern.js +38 -18
  549. package/dist/safe-bash-line-ending-engine/convert.js +9 -204
  550. package/dist/safe-bash-line-ending-engine/encoding.js +9 -42
  551. package/dist/safe-bash-line-ending-engine/index.js +48 -0
  552. package/dist/safe-bash-line-ending-engine/info.js +9 -90
  553. package/dist/safe-bash-line-ending-engine/internal.js +15 -160
  554. package/dist/safe-bash-line-ending-engine/io.js +12 -289
  555. package/dist/safe-bash-line-ending-engine/stage.js +10 -160
  556. package/dist/safe-bash-markdown-engine/index.js +3 -3
  557. package/dist/safe-bash-network-engine/args.d.ts +6 -0
  558. package/dist/safe-bash-network-engine/args.js +4 -2
  559. package/dist/safe-bash-network-engine/body.js +1 -1
  560. package/dist/safe-bash-network-engine/fetch-transport.js +3 -1
  561. package/dist/safe-bash-network-engine/index.js +3 -1
  562. package/dist/safe-bash-network-engine/input.js +2 -2
  563. package/dist/safe-bash-network-engine/platform-portable.js +3 -1
  564. package/dist/safe-bash-query-engine/dates.d.ts +1 -1
  565. package/dist/safe-bash-query-engine/dates.js +1 -1
  566. package/dist/safe-bash-query-engine/index.js +6 -6
  567. package/dist/safe-bash-query-engine/interpreter.js +4 -4
  568. package/dist/safe-bash-query-engine/parser.js +1 -1
  569. package/dist/safe-bash-query-engine/query-core.js +6 -6
  570. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +10 -0
  571. package/dist/safe-bash-regex-engine/index.js +1 -1
  572. package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -1
  573. package/dist/safe-bash-regex-engine/text/regex.js +1 -1
  574. package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +1 -0
  575. package/dist/safe-bash-search-engine/ergonomic-regex.js +1 -1
  576. package/dist/safe-bash-search-engine/grep.js +16 -9
  577. package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
  578. package/dist/safe-bash-search-engine/matcher.js +12 -8
  579. package/dist/safe-bash-search-engine/shared.js +1 -1
  580. package/dist/safe-bash-search-engine/walk.js +13 -1
  581. package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +1 -1
  582. package/dist/safe-bash-text-stream-engine/stream-format/shared.js +2 -1
  583. package/dist/safe-bash-xml-engine/document.js +3 -3
  584. package/dist/safe-bash-xml-engine/evaluate.js +2 -2
  585. package/dist/safe-bash-xml-engine/index.js +4 -4
  586. package/dist/safe-bash-xml-engine/io.js +7 -2
  587. package/dist/safe-bash-xml-engine/limits.d.ts +0 -2
  588. package/dist/safe-bash-xml-engine/limits.js +1 -1
  589. package/dist/safe-bash-xml-engine/query.js +3 -3
  590. package/dist/safe-bash-zip-engine/index.js +3 -3
  591. package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
  592. package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
  593. package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
  594. package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
  595. package/dist/safe-bash-zip-engine/zip-format.js +3 -3
  596. package/dist/safe-playwright-cloudflare/browser-socket-closure.js +18 -3
  597. package/dist/safe-playwright-cloudflare/shell-browser-resource.js +1 -1
  598. package/dist/xlsx-ast/xlsx.js +6 -5
  599. package/package.json +86 -98
  600. package/dist/media-cli/bytes.d.ts +0 -8
  601. package/dist/media-cli/bytes.js +0 -40
  602. package/dist/media-cli/concat.d.ts +0 -30
  603. package/dist/media-cli/concat.js +0 -197
  604. package/dist/media-cli/content.js +0 -66
  605. package/dist/media-cli/dependency-grammars.d.ts +0 -12
  606. package/dist/media-cli/dependency-grammars.js +0 -557
  607. package/dist/media-cli/discover.js +0 -286
  608. package/dist/media-cli/engine.js +0 -190
  609. package/dist/media-cli/filename-expression.js +0 -147
  610. package/dist/media-cli/filesystem.js +0 -35
  611. package/dist/media-cli/frontend-contract.js +0 -8
  612. package/dist/media-cli/frontend-issues.d.ts +0 -6
  613. package/dist/media-cli/frontend-issues.js +0 -9
  614. package/dist/media-cli/imagemagick-operand.d.ts +0 -42
  615. package/dist/media-cli/imagemagick-operand.js +0 -229
  616. package/dist/media-cli/imagemagick-references.d.ts +0 -7
  617. package/dist/media-cli/imagemagick-references.js +0 -42
  618. package/dist/media-cli/imagemagick.generated.js +0 -3254
  619. package/dist/media-cli/imagemagick.js +0 -615
  620. package/dist/media-cli/index.js +0 -12
  621. package/dist/media-cli/mvg.d.ts +0 -10
  622. package/dist/media-cli/mvg.js +0 -102
  623. package/dist/media-cli/network.js +0 -78
  624. package/dist/media-cli/options.generated.js +0 -3312
  625. package/dist/media-cli/preset.d.ts +0 -11
  626. package/dist/media-cli/preset.js +0 -57
  627. package/dist/media-cli/resolution-path.d.ts +0 -23
  628. package/dist/media-cli/resolution-path.js +0 -217
  629. package/dist/media-cli/resolver.js +0 -494
  630. package/dist/media-cli/resources.d.ts +0 -16
  631. package/dist/media-cli/resources.js +0 -187
  632. package/dist/media-cli/shim.js +0 -52
  633. package/dist/media-cli/tee.d.ts +0 -6
  634. package/dist/media-cli/tee.js +0 -38
  635. package/dist/office-package/zip-sync.js +0 -111
  636. package/dist/remote-execution/binary.js +0 -178
  637. package/dist/remote-execution/callback-result.js +0 -26
  638. package/dist/remote-execution/canonical-capabilities.d.ts +0 -5
  639. package/dist/remote-execution/canonical-capabilities.js +0 -45
  640. package/dist/remote-execution/canonical-metadata.d.ts +0 -4
  641. package/dist/remote-execution/canonical-metadata.js +0 -32
  642. package/dist/remote-execution/client.js +0 -824
  643. package/dist/remote-execution/deployment.js +0 -131
  644. package/dist/remote-execution/descriptors.js +0 -267
  645. package/dist/remote-execution/effects.js +0 -357
  646. package/dist/remote-execution/endpoint.js +0 -224
  647. package/dist/remote-execution/files.js +0 -291
  648. package/dist/remote-execution/hosting-operation.js +0 -26
  649. package/dist/remote-execution/hosting-request.d.ts +0 -4
  650. package/dist/remote-execution/hosting-request.js +0 -12
  651. package/dist/remote-execution/hosting-stream.d.ts +0 -8
  652. package/dist/remote-execution/hosting-stream.js +0 -64
  653. package/dist/remote-execution/index.js +0 -18
  654. package/dist/remote-execution/invocation-admission.d.ts +0 -3
  655. package/dist/remote-execution/invocation-admission.js +0 -17
  656. package/dist/remote-execution/job-binding.js +0 -1269
  657. package/dist/remote-execution/materializations.js +0 -284
  658. package/dist/remote-execution/modal-driver.js +0 -90
  659. package/dist/remote-execution/native-result.d.ts +0 -3
  660. package/dist/remote-execution/native-result.js +0 -16
  661. package/dist/remote-execution/output-freshness.d.ts +0 -4
  662. package/dist/remote-execution/output-freshness.js +0 -19
  663. package/dist/remote-execution/output-retrieval.js +0 -474
  664. package/dist/remote-execution/process-http.js +0 -607
  665. package/dist/remote-execution/process.js +0 -577
  666. package/dist/remote-execution/protocol.js +0 -208
  667. package/dist/remote-execution/relay.js +0 -91
  668. package/dist/remote-execution/rest-driver.js +0 -93
  669. package/dist/remote-execution/upload-descriptor.js +0 -201
  670. package/dist/remote-execution/upload-protocol.js +0 -62
  671. package/dist/remote-execution/uploads.js +0 -324
  672. package/dist/remote-execution/wire-json.d.ts +0 -4
  673. package/dist/remote-execution/wire-json.js +0 -44
  674. package/dist/remote-execution/wire-validation.js +0 -131
  675. package/dist/remote-execution/wire.generated.js +0 -4224
  676. package/dist/safe-bash/chunks/chunk-GDYNCWRV.js +0 -161
  677. package/dist/safe-bash/chunks/chunk-IWDICZVK.js +0 -20
  678. package/dist/safe-bash/chunks/chunk-MHMMRCYC.js +0 -3464
  679. package/dist/safe-bash/chunks/chunk-UE5KZDEK.js +0 -77
  680. package/dist/safe-bash/chunks/csvkit-TACDU7FC.js +0 -1618
  681. package/dist/safe-bash/chunks/implementation-MLFHUQ5M.js +0 -133
  682. package/dist/safe-bash/commands/csvkit/sync.js +0 -1639
  683. package/dist/safe-bash/commands/node/unconfigured.d.ts +0 -3
  684. package/dist/safe-bash/commands/node/unconfigured.js +0 -10
  685. package/dist/safe-bash/commands/pandoc/implementation.d.ts +0 -8
  686. package/dist/safe-bash/commands/pandoc/implementation.js +0 -94
  687. package/dist/safe-bash-mcp/index.browser.js +0 -9167
  688. package/dist/safe-bash/command-chunks/{chunk-ZRRBXU3M.js → chunk-GIN5GUDP.js} +4 -4
  689. package/dist/safe-bash/command-chunks/{chunk-LAOM65EE.js → chunk-IEO4XVN6.js} +3 -3
  690. package/dist/safe-bash/command-chunks/{chunk-BXCXRYVU.js → chunk-JNANXVJV.js} +0 -0
  691. package/dist/safe-bash/command-chunks/{chunk-364TMWBT.js → chunk-MWREVL44.js} +6 -6
  692. package/dist/safe-bash/command-chunks/{chunk-464RVBGB.js → chunk-Q5TDKFHK.js} +3 -3
  693. package/dist/safe-bash/command-chunks/{chunk-AJR3AQYA.js → chunk-UKX3LZHR.js} +0 -0
  694. package/dist/safe-bash/command-chunks/{chunk-XIIBTGC5.js → chunk-XPXEQKRW.js} +9 -9
  695. package/dist/safe-bash/command-chunks/{chunk-FDBUV4HJ.js → chunk-Y4HGTG3E.js} +3 -3
  696. /package/dist/{safe-bash/commands/csvkit → safe-bash-command-csvkit}/sync.d.ts +0 -0
@@ -1,286 +0,0 @@
1
- // Source-informed control flow: FFmpeg 9.0.1 fftools/cmdutils.c. See NOTICE.
2
- import { byteText } from "./bytes.js";
3
- import { avCodecChildOptionNames, avCodecOptionNames, avOptionNames, grammarRevision, optionMetadata, pathOptionMetadata } from "./options.generated.js";
4
- import { filterResources, resource } from "./resources.js";
5
- import { teeResources } from './tee.js';
6
- const privateOptions = new Set(avOptionNames);
7
- const codecOptions = new Set(avCodecOptionNames);
8
- const codecChildOptions = new Set(avCodecChildOptionNames);
9
- const pathOptions = pathOptionMetadata;
10
- export const filterOptions = Object.freeze(["vf", "af", "filter", "filter_complex", "lavfi"]);
11
- const presets = new Set(["pre", "apre", "vpre", "spre"]);
12
- /** Predictions never perform I/O, validate native syntax, or authorize access. */
13
- export function discover(tool, args, entrypoint = 'command') {
14
- // Presets call parse_option with FFmpeg definitions, not split_commandline.
15
- const sequential = tool === 'ffprobe' || entrypoint === 'preset';
16
- // Interpret the indexed native arguments, never caller-supplied array methods
17
- // that can replace URL or request option bytes with a snapshot operand.
18
- const argv = Array.from({ length: args.length }, (_, index) => new Uint8Array(args[index]));
19
- const globals = [];
20
- const groups = [];
21
- const dependencies = [];
22
- const deferred = [{ index: -1, reason: "native-access" }];
23
- const definitions = optionMetadata[tool];
24
- let pending = [];
25
- let protectedIndex = -1;
26
- let handleOptions = true;
27
- // ffprobe.c retains the first filename, even an empty one. Its -i wrapper
28
- // discards duplicate callback errors; positional inputs and -o propagate them.
29
- let probeInput = false;
30
- let probeOutput = false;
31
- function dependenciesFor(option, stage) {
32
- const { value, index, name } = option;
33
- // Indirection changes where the value comes from, not the selected
34
- // option's need for stream metadata. Never probe to resolve that hint.
35
- // opt_default stores codec AVOptions in a dictionary; filter_codec_opts
36
- // matches that dictionary against actual streams even without a suffix.
37
- const codecDictionary = !Object.hasOwn(definitions, name) &&
38
- (codecChildOptions.has(name) || !option.specifier && 'vas'.includes(name[0]) && codecOptions.has(name.slice(1)));
39
- if (Object.hasOwn(definitions, name) && definitions[name].perStream || codecDictionary ||
40
- name === "map" || name === "map_metadata" || name === "map_chapters" || option.specifier ||
41
- name === 'dump_attachment' && value !== undefined && (option.fromFile || value.length === 0)) {
42
- deferred.push({ index, reason: "stream-metadata" });
43
- }
44
- // Operand-free per-stream booleans still select streams at runtime.
45
- if (value === undefined)
46
- return;
47
- if (option.fromFile) {
48
- dependencies.push({ ...resource(index, value, "option-file", "read", stage), optionReader: { tool, name, specifier: option.specifier,
49
- ...(option.discardValue ? { discardValue: true } : {}) } });
50
- deferred.push({ index, reason: "option-file-content" });
51
- return;
52
- }
53
- if (option.discardValue)
54
- return;
55
- if (presets.has(name))
56
- deferred.push({ index, reason: "preset-search" });
57
- if (filterOptions.includes(name) || (tool === "ffmpeg" && name === "f" && byteText(value) === "lavfi")) {
58
- if (filterOptions.includes(name)) {
59
- const parsed = filterResources(value);
60
- for (const file of parsed.resources) {
61
- dependencies.push({ ...resource(index, file.value, "filter-resource", file.access ?? "read", "runtime", file.literal), literal: file.literal, ...(file.filterReader ? { filterReader: file.filterReader } : {}), ...(file.kind ? { kind: file.kind } : {}) });
62
- }
63
- if (!parsed.complete)
64
- deferred.push({ index, reason: 'filter-syntax' });
65
- }
66
- deferred.push({ index, reason: "filter-runtime" });
67
- }
68
- const role = Object.hasOwn(pathOptions, name) ? pathOptions[name] : undefined;
69
- if (role) {
70
- // opt_preset chooses an explicit path from the handler's first byte,
71
- // not the matched OptionDef. Sequential "nofpre" therefore searches.
72
- const presetLookup = role.role === 'preset' && sequential && byteText(argv[index])[1] !== 'f';
73
- if (presetLookup)
74
- deferred.push({ index, reason: 'preset-search' });
75
- // Empty attachment names come from stream metadata, not the empty path.
76
- if (name !== "dump_attachment" || value.length > 0) {
77
- const dependency = { ...resource(index, value, role.role, role.access, stage, !presetLookup && (role.syntax === 'literal' || role.syntax === 'generated'), role.syntax === 'stdio' ? 'stdio' : 'avio'),
78
- optionReader: { tool, name, specifier: option.specifier } };
79
- dependencies.push(role.syntax === 'generated' || presetLookup ? { ...dependency, kind: 'resource-lookup' } : dependency);
80
- }
81
- if (name === "dump_attachment" || name === "passlogfile")
82
- deferred.push({ index, reason: "generated-name" });
83
- if (role.role === "filter-script" || role.role === "preset")
84
- deferred.push({ index, reason: "option-file-content" });
85
- }
86
- }
87
- function group(kind, index, target) {
88
- if (tool === 'ffmpeg' && kind === 'output') {
89
- // ffmpeg_opt.c's vf/af handlers always append filter:v/filter:a.
90
- // opt_match_per_stream selects the last matching value. Equal selector
91
- // bytes are sufficient here; other overlaps require native metadata.
92
- const selector = (option) => option.name === 'vf' ? 'v'
93
- : option.name === 'af' ? 'a'
94
- : option.name === 'filter' ? byteText(option.specifier ?? new Uint8Array()) : undefined;
95
- const last = new Map();
96
- for (const option of pending) {
97
- const key = selector(option);
98
- if (key !== undefined)
99
- last.set(key, option.index);
100
- }
101
- pending = pending.map(option => {
102
- const key = selector(option);
103
- return key !== undefined && last.get(key) !== option.index ? { ...option, discardValue: true } : option;
104
- });
105
- }
106
- groups.push({ kind, index, target, options: pending });
107
- const stage = kind === "input" ? "input" : "output";
108
- for (const option of pending)
109
- dependenciesFor(option, stage);
110
- if (target !== undefined && (kind === "input" || kind === "output")) {
111
- const format = [...pending].reverse().find(option => option.name === "f");
112
- if (kind === "input" && format?.value && !format.fromFile && byteText(format.value) === "lavfi") {
113
- const parsed = filterResources(target);
114
- for (const file of parsed.resources)
115
- dependencies.push({ ...resource(index, file.value, "filter-resource", file.access ?? "read", "runtime", file.literal), literal: file.literal, ...(file.filterReader ? { filterReader: file.filterReader } : {}), ...(file.kind ? { kind: file.kind } : {}) });
116
- if (!parsed.complete)
117
- deferred.push({ index, reason: 'filter-syntax' });
118
- deferred.push({ index, reason: "filter-runtime" });
119
- }
120
- else if (kind === 'output' && format?.value && !format.fromFile && byteText(format.value) === 'tee') {
121
- for (const slave of teeResources(target)) {
122
- for (const [name, value] of slave.options) {
123
- const role = Object.hasOwn(pathOptions, name) ? pathOptions[name] : undefined;
124
- if (role)
125
- dependencies.push({ ...resource(index, value, role.role, role.access, 'runtime', role.syntax === 'literal', role.syntax === 'stdio' ? 'stdio' : 'avio'),
126
- optionReader: { tool, name } });
127
- }
128
- // tee.c opens slave filenames through ff_format_output_open/AVIO;
129
- // it does not apply fftools' top-level '-' to pipe:1 rewriting.
130
- dependencies.push(resource(index, slave.target, 'output', 'write', 'runtime', false, 'avio'));
131
- }
132
- deferred.push({ index, reason: 'stream-metadata' }, { index, reason: 'generated-name' });
133
- }
134
- else
135
- dependencies.push(resource(index, target, kind, kind === "input" ? "read" : "write", stage));
136
- }
137
- pending = [];
138
- }
139
- for (let i = 0; i < argv.length; i++) {
140
- const raw = byteText(argv[i]);
141
- if (handleOptions && raw === "--") {
142
- if (tool === "ffmpeg")
143
- protectedIndex = i + 1;
144
- else
145
- handleOptions = false;
146
- continue;
147
- }
148
- if (!handleOptions || i === protectedIndex || raw === "-" || !raw.startsWith("-")) {
149
- if (tool === 'ffprobe') {
150
- if (probeInput) {
151
- deferred.push({ index: i, reason: 'native-access' });
152
- break;
153
- }
154
- probeInput = true;
155
- }
156
- group(tool === "ffmpeg" ? "output" : "input", i, argv[i]);
157
- continue;
158
- }
159
- const index = i;
160
- let key = raw.slice(1);
161
- const fromFile = key.startsWith("/");
162
- if (fromFile)
163
- key = key.slice(1);
164
- const colon = key.indexOf(":");
165
- let name = colon < 0 ? key : key.slice(0, colon);
166
- const specifier = colon < 0 ? undefined : argv[i].slice(raw.indexOf(":") + 1);
167
- if (!sequential && !fromFile && (key === "i" || key === "dec")) {
168
- if (argv[i + 1] === undefined) {
169
- deferred.push({ index, reason: "missing-value" });
170
- break;
171
- }
172
- group(key === "i" ? "input" : "decoder", ++i, argv[i]);
173
- continue;
174
- }
175
- let definition = Object.hasOwn(definitions, name) ? definitions[name] : undefined;
176
- let unknownIndirect = false;
177
- // parse_option retains a found no-prefixed non-boolean definition too,
178
- // including in presets; split_commandline only accepts boolean negation.
179
- if (!definition && !fromFile && name.startsWith("no")) {
180
- // Both parsers call find_option again after 'no'. That
181
- // lookup strips one slash, but write_option still receives the original
182
- // no-prefixed spelling, so this is not argument-file indirection.
183
- const negated = name[2] === '/' ? name.slice(3) : name.slice(2);
184
- if (Object.hasOwn(definitions, negated) && (sequential || definitions[negated].boolean)) {
185
- name = negated;
186
- definition = definitions[name];
187
- }
188
- }
189
- if (!definition) {
190
- // An inventory hit is only an arity hint, never build availability or validity.
191
- const legacyCodec = !fromFile && colon < 0 && "vas".includes(name[0]) && codecOptions.has(name.slice(1));
192
- const avOption = codecChildOptions.has(name) || privateOptions.has(key) || legacyCodec;
193
- // Sequential parse_option loads slash passthrough values before looking
194
- // up an AVOption. The split parser passes the slash verbatim to opt_default.
195
- if (sequential && fromFile || !fromFile && avOption) {
196
- unknownIndirect = sequential && fromFile && !avOption;
197
- definition = { arity: 1, boolean: false, exit: false, perFile: true, scopes: [] };
198
- }
199
- else {
200
- deferred.push({ index, reason: "unknown-option" });
201
- break;
202
- }
203
- }
204
- if (sequential && fromFile && definition.arity === 0) {
205
- // write_option fails before any following positional operands are read.
206
- // This is an advisory stop; the one native invocation owns the error.
207
- deferred.push({ index, reason: 'native-access' });
208
- break;
209
- }
210
- const consumes = definition.arity > 0 || (!sequential && definition.exit);
211
- const value = consumes ? argv[++i] : undefined;
212
- if (consumes && value === undefined && !definition.exit) {
213
- deferred.push({ index, reason: "missing-value" });
214
- break;
215
- }
216
- const option = { index, name, specifier, value, fromFile, scopes: definition.scopes,
217
- ...(tool === 'ffprobe' && fromFile && (name === 'i' && probeInput || name === 'o' && probeOutput)
218
- ? { discardValue: true } : {}) };
219
- if (tool === "ffprobe" && (name === "i" || name === "o") && value !== undefined) {
220
- // write_option reads slash values before invoking the filename callback,
221
- // including duplicate names. A successful read retains the first input
222
- // regardless of its contents; prediction never opens that value file.
223
- if (fromFile) {
224
- globals.push(option);
225
- dependenciesFor(option, 'global');
226
- }
227
- if (name === 'i') {
228
- if (probeInput) {
229
- deferred.push({ index, reason: 'native-access' });
230
- continue;
231
- }
232
- probeInput = true;
233
- }
234
- else {
235
- if (probeOutput) {
236
- deferred.push({ index, reason: 'native-access' });
237
- break;
238
- }
239
- probeOutput = true;
240
- }
241
- if (!fromFile)
242
- group(name === "i" ? "input" : "output", i, value);
243
- }
244
- else if (tool === "ffprobe" || !definition.perFile) {
245
- globals.push(option);
246
- dependenciesFor(option, "global");
247
- }
248
- else
249
- pending.push(option);
250
- if (unknownIndirect) {
251
- // write_option reads the slash file before opt_default applies its value.
252
- // Keep that read, but do not predict past an unknown application boundary.
253
- // A native-valid inventory miss still reaches complete late access.
254
- if (pending.length) {
255
- for (const item of pending)
256
- dependenciesFor(item, 'runtime');
257
- groups.push({ kind: 'trailing', index: argv.length, options: pending });
258
- pending = [];
259
- }
260
- deferred.push({ index, reason: 'unknown-option' });
261
- break;
262
- }
263
- if (sequential && definition.exit)
264
- break;
265
- }
266
- if (pending.length)
267
- groups.push({ kind: "trailing", index: argv.length, options: pending });
268
- const probeFormat = tool === "ffprobe" ? [...globals].reverse().find(option => option.name === "f") : undefined;
269
- if (probeFormat?.value && !probeFormat.fromFile && byteText(probeFormat.value) === "lavfi") {
270
- for (let i = dependencies.length - 1; i >= 0; i--) {
271
- const dependency = dependencies[i];
272
- if (dependency.role !== "input")
273
- continue;
274
- dependencies.splice(i, 1);
275
- const parsed = filterResources(dependency.value);
276
- for (const file of parsed.resources)
277
- dependencies.push({ ...resource(dependency.index, file.value, "filter-resource", file.access ?? "read", "runtime", file.literal), literal: file.literal, ...(file.filterReader ? { filterReader: file.filterReader } : {}), ...(file.kind ? { kind: file.kind } : {}) });
278
- if (!parsed.complete)
279
- deferred.push({ index: dependency.index, reason: 'filter-syntax' });
280
- deferred.push({ index: dependency.index, reason: "filter-runtime" });
281
- }
282
- }
283
- // Discovery ordering is argv ordering, not an assertion about native open order.
284
- dependencies.sort((a, b) => a.index - b.index);
285
- return { tool, grammarRevision, argv, globals, groups, dependencies, deferred };
286
- }
@@ -1,190 +0,0 @@
1
- import { captureJobSource, nativeArgvByteLimit, assertJobInvocation, assertNativeProcessView } from "../remote-execution/index.js";
2
- /** The host binds the supplied scoped filesystem and borrowed IO to its
3
- * authenticated session. Nothing is recovered from an earlier invocation. */
4
- export function createMediaEngine(options) {
5
- options = Object.freeze({ ...options });
6
- return {
7
- execute(request) {
8
- // Defer acquisition until the synchronous cleanup registration has finished.
9
- const argv = request.args;
10
- // Admit each slot before copying it or observing a later slot. An invalid
11
- // starting process description must not trigger dependency acquisition.
12
- let args;
13
- let env;
14
- try {
15
- if (!Array.isArray(argv))
16
- throw new TypeError('Incomplete native argv');
17
- if (argv.length > nativeArgvByteLimit)
18
- throw new TypeError('Native argv limit');
19
- const argumentCount = argv.length;
20
- let remaining = nativeArgvByteLimit;
21
- args = Array.from({ length: argumentCount }, (_, index) => {
22
- if (!Object.hasOwn(argv, index))
23
- throw new TypeError('Incomplete native argv');
24
- const arg = argv[index];
25
- if (!(arg instanceof Uint8Array))
26
- throw new TypeError('Incomplete native argv');
27
- // Public length/search properties can be replaced on a byte carrier.
28
- // Budget its intrinsic span before copying or observing another slot;
29
- // inspect only the owned octets, without speculative caller methods.
30
- const span = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'byteLength').get.call(arg);
31
- if (span > 1048576)
32
- throw new TypeError('Invalid native octets');
33
- if (span >= remaining)
34
- throw new TypeError('Native argv limit');
35
- remaining -= span + 1;
36
- const owned = new Uint8Array(arg);
37
- if (owned.includes(0))
38
- throw new TypeError('NUL in native argv');
39
- return owned;
40
- });
41
- if (argv.length !== argumentCount)
42
- throw new TypeError('Incomplete native argv');
43
- const exported = request.env;
44
- if (!exported || typeof exported !== 'object' || Array.isArray(exported))
45
- throw new TypeError('Invalid native environment');
46
- env = { ...exported };
47
- }
48
- catch (cause) {
49
- return Promise.reject(cause);
50
- }
51
- const cleanups = [];
52
- let finalizing = false;
53
- // Preserve extension capabilities without invoking speculative accessors.
54
- // Only the process description belongs to synchronous admission; the
55
- // binder/native adapter decides when to access any additional capability.
56
- const extensions = Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(request))
57
- .filter(([key]) => !['command', 'args', 'cwd', 'env', 'fs', 'signal', 'registerCleanup'].includes(key)));
58
- const owned = Object.defineProperties({ command: request.command, cwd: request.cwd,
59
- fs: request.fs, signal: request.signal, args, env,
60
- registerCleanup(cleanup) {
61
- if (finalizing)
62
- throw new Error('Media invocation cleanup admission closed');
63
- cleanups.push(cleanup);
64
- },
65
- }, extensions);
66
- const signal = owned.signal;
67
- const sourceCapability = owned.fs;
68
- // Admission metadata is retained in this call, before either the caller
69
- // or the asynchronous binder can replace the source's method table.
70
- let admittedSource;
71
- try {
72
- if (sourceCapability && typeof sourceCapability === 'object')
73
- admittedSource = captureJobSource(sourceCapability);
74
- }
75
- catch (cause) {
76
- return Promise.reject(cause);
77
- }
78
- let registered;
79
- let registrationFailed;
80
- const admission = new Promise((resolve, reject) => {
81
- registered = resolve;
82
- registrationFailed = reject;
83
- });
84
- const completion = admission.then(async () => {
85
- let primary;
86
- let result;
87
- try {
88
- signal.throwIfAborted();
89
- if (typeof owned.command !== 'string' || !owned.command || owned.command.includes('\0')
90
- || new TextDecoder('utf-8', { ignoreBOM: true }).decode(new TextEncoder().encode(owned.command)) !== owned.command)
91
- throw new TypeError('Invalid native command identity');
92
- if (!sourceCapability || typeof sourceCapability !== 'object')
93
- throw new TypeError('Canonical source capability required');
94
- if (!owned.cwd.startsWith('/') || owned.cwd.includes('\0') || new TextDecoder('utf-8', { ignoreBOM: true }).decode(new TextEncoder().encode(owned.cwd)) !== owned.cwd)
95
- throw new TypeError('Absolute lossless logical cwd required');
96
- for (const [key, value] of Object.entries(owned.env)) {
97
- if (!key || key.includes('=') || [key, value].some(text => typeof text !== 'string' || text.includes('\0') || new TextDecoder('utf-8', { ignoreBOM: true }).decode(new TextEncoder().encode(text)) !== text))
98
- throw new TypeError('Invalid native environment');
99
- }
100
- const cwd = Array.from(new TextEncoder().encode(owned.cwd));
101
- const originalArgv = owned.args.map(arg => Array.from(arg));
102
- assertNativeProcessView(cwd, originalArgv);
103
- const process = { command: owned.command, cwd: owned.cwd, args: owned.args,
104
- env: owned.env, exported: { ...owned.env } };
105
- const bound = await options.bind(owned);
106
- signal.throwIfAborted();
107
- // Public binding observations cannot substitute another executor or
108
- // scratch authority for the capability acquired by this invocation.
109
- const job = bound.job;
110
- const execute = job.execute.bind(job);
111
- const binding = bound.invocation;
112
- // A structural binder may carry private staging or previous-process
113
- // properties. Observe only binding metadata; cwd/argv belong to this
114
- // invocation and never come from the binder's filesystem view.
115
- const invocation = {
116
- sessionId: binding.sessionId, epoch: binding.epoch, buildId: binding.buildId,
117
- sourceAuthorityId: binding.sourceAuthorityId, bindingId: binding.bindingId,
118
- materializationId: binding.materializationId, manifestId: binding.manifestId,
119
- manifestRevision: binding.manifestRevision, directoryRevision: binding.directoryRevision,
120
- cwd, originalArgv,
121
- };
122
- assertJobInvocation(invocation);
123
- // The host also retains this request while constructing its native
124
- // adapter. Require its process view and source to agree with our
125
- // private admission copies. Binding metadata accessors can change
126
- // them too; finish observing
127
- // the acquired binding before checking the process at admission.
128
- // Replacing them during binding would select another native definition
129
- // or execute with settings that never passed admission.
130
- // Environment entries began as owned data properties. Do not invoke
131
- // replacement accessors during the final comparison: they could alter
132
- // argv or cwd after those fields have already passed admission.
133
- const environment = Object.getOwnPropertyDescriptors(process.env);
134
- const description = Object.getOwnPropertyDescriptors(owned);
135
- const argumentsView = Object.getOwnPropertyDescriptors(process.args);
136
- if (Object.entries({ command: process.command, cwd: process.cwd, fs: sourceCapability,
137
- signal, args: process.args, env: process.env }).some(([key, value]) => !Object.hasOwn(description, key) || !('value' in description[key]) || description[key].value !== value)
138
- || process.args.length !== originalArgv.length
139
- || originalArgv.some((arg, index) => {
140
- const slot = argumentsView[index];
141
- // Binder-installed getters can mutate cwd or a previously checked
142
- // argument during comparison. Admit only owned data slots without
143
- // invoking those getters at the process boundary.
144
- if (!slot || !('value' in slot) || !(slot.value instanceof Uint8Array))
145
- return true;
146
- const bytes = new Uint8Array(slot.value);
147
- return bytes.length !== arg.length || arg.some((byte, offset) => bytes[offset] !== byte);
148
- })
149
- || Object.keys(environment).length !== Object.keys(process.exported).length
150
- || Object.entries(process.exported).some(([key, value]) => !Object.hasOwn(environment, key)
151
- || !('value' in environment[key]) || environment[key].value !== value || !environment[key].enumerable))
152
- throw new Error('Media process binding changed');
153
- signal.throwIfAborted();
154
- const native = await execute(invocation, signal, sourceCapability, admittedSource);
155
- signal.throwIfAborted();
156
- const exitCode = native?.exitCode;
157
- if (!Number.isInteger(exitCode) || exitCode < 0 || exitCode > 255)
158
- throw new TypeError('Invalid native exit status');
159
- result = { exitCode };
160
- }
161
- catch (cause) {
162
- primary = { cause };
163
- }
164
- // Binding acquisition can fail or settle after cancellation. Its owned
165
- // resources belong to this invocation even without a shell registrar.
166
- finalizing = true;
167
- const results = await Promise.allSettled(cleanups.map(cleanup => Promise.resolve().then(cleanup)));
168
- const failures = results.filter(result => result.status === 'rejected');
169
- if (failures.length)
170
- throw new AggregateError([
171
- ...(primary ? [primary.cause] : []), ...failures.map(result => result.reason),
172
- ], 'Media invocation cleanup failed', primary);
173
- if (primary)
174
- throw primary.cause;
175
- return result;
176
- });
177
- try {
178
- request.registerCleanup?.(async () => { await completion; });
179
- }
180
- catch (cause) {
181
- // No binding has been acquired. Settle the same barrier a registrar may
182
- // already have retained, without opening admission after its failure.
183
- registrationFailed(cause);
184
- return completion;
185
- }
186
- registered();
187
- return completion;
188
- },
189
- };
190
- }
@@ -1,147 +0,0 @@
1
- import { byteText } from './bytes.js';
2
- /** Tokenize filename languages only in a grammar position that admits them.
3
- * No frame expansion, metadata evaluation, strftime, globbing or filesystem I/O.
4
- * Sequence readers pass false for native flags=0 (one counter); the default
5
- * permits img2enc's MULTIPLE flag. Other dialects ignore that parameter. */
6
- export function parseFilenameExpression(value, dialect, multipleCounters = true) {
7
- const input = byteText(value), tokens = [];
8
- let literal = '', begin = 0, complete = true;
9
- const flush = (end) => { if (literal)
10
- tokens.push({ kind: 'literal', value: literal, start: begin, end }); literal = ''; };
11
- if (dialect === 'dash-resource') {
12
- // dashdec.c get_content_url performs case-insensitive string replacement
13
- // for these two exact tags after joining the complete resource URL. This
14
- // reader does not apply ff_dash_fill_tmpl's counters, formatting or $$.
15
- const folded = input.toLowerCase();
16
- for (let i = 0; i < input.length;) {
17
- const tag = ['$representationid$', '$bandwidth$'].find(tag => folded.startsWith(tag, i));
18
- if (tag) {
19
- flush(i);
20
- tokens.push({ kind: 'template', value: input.slice(i + 1, i + tag.length - 1), start: i, end: i + tag.length });
21
- i += tag.length;
22
- }
23
- else {
24
- if (!literal)
25
- begin = i;
26
- literal += input[i++];
27
- }
28
- }
29
- flush(input.length);
30
- return { dialect, tokens, complete };
31
- }
32
- if (dialect === 'hls') {
33
- let cursor = 0;
34
- while (cursor < input.length) {
35
- const start = input.indexOf('{$', cursor);
36
- const end = start < 0 ? input.length : start;
37
- if (end > cursor)
38
- tokens.push({ kind: 'literal', value: input.slice(cursor, end), start: cursor, end });
39
- if (start < 0)
40
- break;
41
- const close = input.indexOf('}', start + 2);
42
- const name = input.slice(start + 2, close < 0 ? input.length : close);
43
- if (close < 0 || !name || ![...name].every(c => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'.includes(c)))
44
- complete = false;
45
- tokens.push({ kind: 'property', value: name, start, end: close < 0 ? input.length : close + 1 });
46
- cursor = close < 0 ? input.length : close + 1;
47
- }
48
- return { dialect, tokens, complete };
49
- }
50
- const marker = dialect === 'dash' ? '$' : '%';
51
- for (let i = 0; i < input.length;) {
52
- if (input[i] !== marker) {
53
- if (!literal)
54
- begin = i;
55
- literal += input[i++];
56
- continue;
57
- }
58
- const start = i++;
59
- if (input[i] === marker) {
60
- if (!literal)
61
- begin = start;
62
- literal += marker;
63
- i++;
64
- continue;
65
- }
66
- flush(start);
67
- if (dialect === 'dash') {
68
- const end = input.indexOf('$', i);
69
- if (end < 0) {
70
- complete = false;
71
- break;
72
- }
73
- const name = input.slice(i, end), percent = name.indexOf('%'), key = percent < 0 ? name : name.slice(0, percent);
74
- if (!['RepresentationID', 'Number', 'Bandwidth', 'Time'].includes(key))
75
- complete = false;
76
- if (percent >= 0) {
77
- const format = name.slice(percent + 1);
78
- // Registered dash.c accepts exactly %0[width]d, where width is one
79
- // digit. Unsupported tags remain native literal/fallback decisions.
80
- if (key === 'RepresentationID' || format.length !== 3 || format[0] !== '0'
81
- || !'0123456789'.includes(format[1]) || format[2] !== 'd')
82
- complete = false;
83
- }
84
- tokens.push({ kind: 'template', value: name, start, end: end + 1 });
85
- i = end + 1;
86
- }
87
- else if (dialect === 'imagemagick' && input[i] === '[') {
88
- const content = ++i;
89
- let depth = 1;
90
- while (i < input.length && depth) {
91
- if (input[i] === '\\' && i + 1 < input.length) {
92
- i += 2;
93
- continue;
94
- }
95
- if (input[i] === '[')
96
- depth++;
97
- else if (input[i] === ']')
98
- depth--;
99
- i++;
100
- }
101
- if (depth) {
102
- complete = false;
103
- break;
104
- }
105
- tokens.push({ kind: 'property', value: input.slice(content, i - 1), start, end: i });
106
- }
107
- else {
108
- const digits = i;
109
- let width = 0;
110
- while (i < input.length && '0123456789'.includes(input[i])) {
111
- // Registered utils.c ff_bprint_get_frame_filename guards the width
112
- // before consuming each digit, including widths before a literal %.
113
- // Never allocate or expand that width during advisory discovery.
114
- if (dialect === 'sequence' && width >= Math.floor(2147483647 / 10) - 255) {
115
- return { dialect, tokens, complete: false };
116
- }
117
- if (dialect === 'sequence')
118
- width = width * 10 + Number(input[i]);
119
- i++;
120
- }
121
- if (dialect === 'sequence' && input[i] === '%') {
122
- begin = start;
123
- literal = '%';
124
- i++;
125
- continue;
126
- }
127
- if (input[i] === 'd')
128
- tokens.push({ kind: 'counter', value: input.slice(digits, i), start, end: ++i });
129
- else if (dialect === 'imagemagick' && i === digits && i < input.length)
130
- tokens.push({ kind: 'property', value: input[i++], start, end: i });
131
- else {
132
- complete = false;
133
- if (i < input.length)
134
- i++;
135
- }
136
- }
137
- }
138
- flush(input.length);
139
- if (dialect === 'sequence') {
140
- // img2dec calls the native formatter with flags=0; img2enc permits
141
- // MULTIPLE. Both readers require at least one counter, even with %%.
142
- const counters = tokens.filter(token => token.kind === 'counter').length;
143
- if (!counters || !multipleCounters && counters > 1)
144
- complete = false;
145
- }
146
- return { dialect, tokens, complete };
147
- }
@@ -1,35 +0,0 @@
1
- import { createEffectStore, createJobBinding } from "../remote-execution/index.js";
2
- /** Own one invocation's inspection/retrieval ledger while native callbacks act
3
- * directly on the scoped canonical filesystem. The host must fork independent
4
- * output read retains; it must not reopen former output pathnames. The session
5
- * owner closes effects after retrieval, separately from native job cleanup.
6
- * effects.inspect/download expose the partial ledger and retained files;
7
- * effects.freshness issues an optional host-qualified content version for
8
- * guarded stat/download calls, including direct interrupted range resumes.
9
- * A retained identity alone does not certify an unchanged downloaded prefix.
10
- * direct stat/download reject untouched retained inputs, just as tree retrieval
11
- * excludes them; a settled mutation grants output membership immediately.
12
- * effects.inspectTree exposes surviving byte paths and detached identities;
13
- * unavailablePaths identifies settled outputs lacking a usable retained identity;
14
- * failed output retains stay in the effect manifest with retrievalFailures;
15
- * tree retrieval copies independent available files before reporting failure.
16
- * unresolvedEffects identifies unknown or unlocated namespace settlement,
17
- * including receipts without both pathname and identity; independent known
18
- * outputs still transfer, while the result reports incomplete reconstruction.
19
- * effects.retrieve copies a surviving byte-path tree for API-only consumers.
20
- * effects.reconstruct replays ordered settlement receipts. Preserve its returned
21
- * transfer.cursor to resume only on the same invocation and destination authority.
22
- * Retrieval cursors belong to their destination authority. Recreated download
23
- * adapters must supply the same identity and preserve acknowledged contents.
24
- * Settled opens after output creation locate surviving retained aliases and
25
- * displace stale names without treating untouched replacement files as outputs.
26
- * Initial opens also preserve locations through renames before the first write;
27
- * untouched input spellings remain excluded from the retrieved output tree.
28
- * Settled namespace removals are recorded alongside writes; retrieval does not
29
- * recreate removed generated directories or unchanged zero-progress inputs.
30
- * Native callbacks continue applying live canonical effects during execution. */
31
- export function createCanonicalMediaFilesystem(options) {
32
- const effects = createEffectStore({ maxEffects: options.maxCallbacks, maxFrameBytes: options.maxIoBytes ?? 1048576 });
33
- const job = createJobBinding({ ...options, effects });
34
- return { job, effects };
35
- }