@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,66 +0,0 @@
1
- import { byteText, textBytes } from "./bytes.js";
2
- import { concatFiles } from './concat.js';
3
- import { discover } from "./discover.js";
4
- import { filterResources, resource } from "./resources.js";
5
- import { presetAssignments } from './preset.js';
6
- /** Optional hints from bytes already read by native. Never opens, caches or probes
7
- * a resource, resolves symlinks, validates directives, or replaces native parsing. */
8
- export function discoverContent(read) {
9
- const dependencies = [];
10
- if (read.kind === "option-file") {
11
- // write_option still reads a slash value discarded by a filename callback
12
- // or a later matching simple filter. Its contents select no runtime reader.
13
- if (read.option.discardValue)
14
- return { dependencies, deferred: true };
15
- // cmdutils.c write_option/read_file_to_string passes the entire loaded
16
- // buffer to a C-string reader. Whitespace is data; the first NUL ends it.
17
- // The option file's directory does not change cwd for the selected reader.
18
- const end = read.content.indexOf(0);
19
- const value = read.content.slice(0, end < 0 ? read.content.length : end);
20
- const key = read.option.name + (read.option.specifier === undefined ? '' : ':' + byteText(read.option.specifier));
21
- const plan = discover(read.tool, [textBytes('-' + key), value, textBytes('__observed_option_group__')]);
22
- // Operand groups (ffprobe -i/-o) are indexed at the value, while ordinary
23
- // option dependencies are indexed at the key. Exclude the synthetic group.
24
- for (const dependency of plan.dependencies)
25
- if (dependency.index < 2) {
26
- dependencies.push({ ...dependency, index: read.option.index, stage: 'runtime' });
27
- }
28
- }
29
- else if (read.kind === "filter-script") {
30
- for (const file of filterResources(read.content).resources)
31
- dependencies.push({ ...resource(-1, file.value, "filter-resource", file.access ?? "read", "runtime", file.literal), literal: file.literal, ...(file.filterReader ? { filterReader: file.filterReader } : {}), ...(file.kind ? { kind: file.kind } : {}) });
32
- }
33
- else if (read.kind === 'preset') {
34
- try {
35
- for (const { key, value, index } of presetAssignments(read.content)) {
36
- dependencies.push(...presetDependencies(key, value, index).dependencies);
37
- }
38
- }
39
- catch (error) {
40
- if (!(error instanceof SyntaxError))
41
- throw error;
42
- }
43
- }
44
- else {
45
- try {
46
- for (const { index, value } of concatFiles(read.content)) {
47
- dependencies.push({ ...resource(index, value, "input", "read", "runtime"), base: { resource: new Uint8Array(read.location) } });
48
- }
49
- }
50
- catch (error) {
51
- if (!(error instanceof SyntaxError))
52
- throw error;
53
- }
54
- }
55
- return { dependencies, deferred: true };
56
- }
57
- /** Preset parse_option uses the same name/specifier and slash-loading lookup as
58
- * command options. A synthetic file group only flushes advisory per-file hints;
59
- * it is never executed or exposed as a dependency. */
60
- export function presetDependencies(key, value, index) {
61
- const plan = discover('ffmpeg', [textBytes('-' + key), value, textBytes('__preset_group__')], 'preset');
62
- const dependencies = plan.dependencies
63
- .filter(dependency => dependency.index === 0)
64
- .map(dependency => ({ ...dependency, index, stage: 'runtime' }));
65
- return { dependencies, deferred: plan.deferred.map(item => ({ ...item, index })) };
66
- }
@@ -1,12 +0,0 @@
1
- import type { AccessGraph, AccessReference, DependencyGrammar, ResolutionOptions } from './resolution-types.js';
2
- export interface ParsedContent {
3
- references: AccessReference[];
4
- issues: string[];
5
- diagnostics?: AccessGraph['issues'];
6
- incomplete: boolean;
7
- budget: boolean;
8
- }
9
- export declare function parseDependencyContent(grammar: DependencyGrammar, content: Uint8Array, location: Uint8Array, cwd: Uint8Array, limits: {
10
- nodes: number;
11
- depth: number;
12
- }, optionReader?: AccessReference['optionReader'], filterReader?: AccessReference['filterReader'], filesystem?: Pick<ResolutionOptions, 'accessible' | 'exists' | 'directory' | 'policy'>): Promise<ParsedContent>;
@@ -1,557 +0,0 @@
1
- import { imageMagickAccessReferences } from './imagemagick-references.js';
2
- import { frontendIssues } from './frontend-issues.js';
3
- import { parseMvg } from './mvg.js';
4
- import { SaxesParser } from 'saxes';
5
- import { byteText, textBytes } from './bytes.js';
6
- import { concatFiles, concatfFiles, manifestLines } from './concat.js';
7
- import { discoverContent, presetDependencies } from './content.js';
8
- import { presetAssignments } from './preset.js';
9
- import { filterOptions } from './discover.js';
10
- import { filterResources, filterValueResource } from './resources.js';
11
- import { discoverImageMagick, imageMagickScriptTokens } from './imagemagick.js';
12
- import { protocol, resolveLocation } from './resolution-path.js';
13
- import { parseFilenameExpression } from './filename-expression.js';
14
- import { imageMagickPropertyReference, imageMagickReaderReferences } from './imagemagick-operand.js';
15
- /** Registered ff_parse_key_value reader: quoted backslash escapes, whitespace
16
- * delimited bare values and last assignment wins. This is not shell parsing. */
17
- function attributes(input) {
18
- const result = new Map();
19
- let i = 0;
20
- while (i < input.length) {
21
- while (input[i] === ',' || ' \t\r\n\v\f'.includes(input[i] ?? '\0'))
22
- i++;
23
- if (i === input.length)
24
- break;
25
- const start = i;
26
- while (i < input.length && input[i] !== '=')
27
- i++;
28
- if (i === input.length)
29
- break;
30
- const key = input.slice(start, i++);
31
- const quoted = input[i] === '"';
32
- if (quoted)
33
- i++;
34
- let value = '';
35
- while (i < input.length && (quoted ? input[i] !== '"' : input[i] !== ',' && !' \t\r\n\v\f'.includes(input[i]))) {
36
- if (quoted && input[i] === '\\') {
37
- if (i + 1 === input.length)
38
- break;
39
- i++;
40
- }
41
- value += input[i++];
42
- }
43
- result.set(key, value);
44
- if (quoted && input[i] === '"')
45
- i++;
46
- }
47
- return result;
48
- }
49
- /** libxml's xmlNodeGetContent string value, including descendant text in
50
- * document order. Keep references to child nodes rather than copying every
51
- * descendant's text into every ancestor; depth is bounded by the XML reader. */
52
- function xmlText(node) {
53
- const text = [];
54
- const pending = [...node.content].reverse();
55
- while (pending.length) {
56
- const part = pending.pop();
57
- if (typeof part === 'string')
58
- text.push(part);
59
- else
60
- for (let index = part.content.length - 1; index >= 0; index--)
61
- pending.push(part.content[index]);
62
- }
63
- return text.join('');
64
- }
65
- function xml(content, maxDepth, foldNames) {
66
- const root = { name: '', attrs: {}, children: [], content: [], start: 0, end: content.length };
67
- const stack = [root];
68
- const parser = new SaxesParser({ xmlns: true });
69
- parser.on('doctype', () => { throw new Error('External/entity declarations require native resolution'); });
70
- parser.on('opentag', tag => {
71
- if (stack.length > maxDepth)
72
- throw new ContentBudgetError();
73
- const attrs = {};
74
- for (const attr of Object.values(tag.attributes)) {
75
- const key = attr.uri === 'http://www.w3.org/1999/xlink' ? 'xlink:' + attr.local
76
- : attr.uri === 'http://www.w3.org/XML/1998/namespace' ? 'xml:' + attr.local : attr.name;
77
- attrs[key] = attr.value;
78
- }
79
- // dashdec.c compares element names with av_strcasecmp; attributes stay exact.
80
- const node = { name: foldNames ? tag.local.toLowerCase() : tag.local, attrs, children: [], content: [], start: parser.position, end: parser.position };
81
- stack.at(-1).content.push(node);
82
- stack.at(-1).children.push(node);
83
- stack.push(node);
84
- });
85
- parser.on('text', value => { stack.at(-1).content.push(value); });
86
- parser.on('cdata', value => { stack.at(-1).content.push(value); });
87
- parser.on('closetag', () => { stack.pop().end = parser.position; });
88
- try {
89
- parser.write(new TextDecoder('utf-8', { fatal: true }).decode(content)).close();
90
- }
91
- catch (error) {
92
- return { root, error: error instanceof Error ? error : new Error('Unresolved XML grammar') };
93
- }
94
- return { root };
95
- }
96
- class ContentBudgetError extends Error {
97
- constructor() { super('Content expansion exceeds explicit budget'); }
98
- }
99
- export async function parseDependencyContent(grammar, content, location, cwd, limits, optionReader, filterReader, filesystem = {}) {
100
- const references = [], issues = [];
101
- let diagnostics;
102
- let incomplete = false, budget = false;
103
- const resourceBase = { kind: 'resource', value: location };
104
- const cwdBase = { kind: 'directory', value: cwd };
105
- const add = (value, extra = {}) => { if (references.length >= limits.nodes)
106
- throw new ContentBudgetError(); references.push({ value, access: 'read', base: resourceBase, ...extra }); };
107
- const imageAccessible = async (path) => {
108
- if (path.length === 1 && path[0] === 45)
109
- return true;
110
- try {
111
- // Probe filename bytes, even when a colon resembles a URL/coder. Native
112
- // checks the literal path before choosing that interpretation.
113
- return await filesystem.accessible?.(resolveLocation(path, cwdBase, true));
114
- }
115
- catch {
116
- return undefined;
117
- }
118
- };
119
- const imageExists = async (path) => {
120
- try {
121
- return await filesystem.exists?.(resolveLocation(path, cwdBase, true));
122
- }
123
- catch {
124
- return undefined;
125
- }
126
- };
127
- const imagePaths = {
128
- accessible: async (name) => imageAccessible(textBytes(name)),
129
- exists: async (name) => imageExists(textBytes(name)),
130
- };
131
- const input = byteText(content);
132
- try {
133
- if (grammar === 'text')
134
- return { references, issues, incomplete, budget };
135
- if (grammar === 'filter-option') {
136
- if (filterReader?.discardValue)
137
- return { references, issues, incomplete, budget };
138
- if (!filterReader)
139
- throw new Error('Filter-option content requires the selected filter reader');
140
- const end = content.indexOf(0);
141
- const file = filterValueResource(filterReader.filter, filterReader.name, content.slice(0, end < 0 ? content.length : end));
142
- if (file)
143
- add(file.value, { access: file.access ?? 'read', base: cwdBase, kind: file.kind, literal: file.literal, filterReader: file.filterReader, grammar: file.filterReader ? 'filter-option' : undefined });
144
- issues.push('Loaded filter option application, initialization and reloads remain live');
145
- }
146
- else if (grammar === 'option-file') {
147
- if (!optionReader)
148
- throw new Error('Option-file content requires the selected option reader');
149
- const parsed = discoverContent({ kind: 'option-file', location, content, tool: optionReader.tool,
150
- option: { name: optionReader.name, specifier: optionReader.specifier, discardValue: optionReader.discardValue, index: -1, fromFile: true, scopes: [] } });
151
- for (const dependency of parsed.dependencies)
152
- add(dependency.value, {
153
- access: dependency.access, base: cwdBase, literal: dependency.literal,
154
- kind: dependency.kind === 'resource-lookup' ? 'resource-lookup' : dependency.literal ? 'path' : undefined,
155
- optionReader: dependency.optionReader, filterReader: dependency.filterReader,
156
- grammar: dependency.filterReader ? 'filter-option' : dependency.role === 'option-file' ? dependency.optionReader && filterOptions.includes(dependency.optionReader.name) ? 'filter' : 'option-file'
157
- : dependency.role === 'preset' ? 'preset' : dependency.role === 'filter-script' ? 'filter'
158
- : optionReader.name === 'hls_key_info_file' ? 'hls-key-info' : undefined,
159
- });
160
- issues.push('Loaded option application and metadata-dependent reader selection remain live');
161
- }
162
- else if (grammar === 'mvg') {
163
- const parsed = await parseMvg(content, cwd, limits.nodes, imagePaths);
164
- for (const reference of parsed.references)
165
- add(reference.value, reference);
166
- if (parsed.budget)
167
- throw new ContentBudgetError();
168
- if (!parsed.complete) {
169
- incomplete = true;
170
- issues.push('MVG command expansion remains unresolved');
171
- }
172
- }
173
- else if (grammar === 'filter') {
174
- const parsed = filterResources(content);
175
- for (const file of parsed.resources)
176
- add(file.value, { access: file.access ?? 'read', base: cwdBase, kind: file.kind ?? (file.literal ? 'path' : undefined), literal: file.literal, filterReader: file.filterReader, grammar: file.filterReader ? 'filter-option' : undefined });
177
- if (!parsed.complete) {
178
- diagnostics = [{ reason: 'syntax', detail: 'Malformed filter graph requires native validation' }];
179
- incomplete = true;
180
- }
181
- issues.push('Filter initialization, fontconfig, commands and frame-time paths remain live');
182
- }
183
- else if (grammar === 'preset') {
184
- for (const { key, value, index, span } of presetAssignments(content)) {
185
- const parsed = presetDependencies(key, value, index);
186
- const deferred = frontendIssues(parsed.deferred);
187
- (diagnostics ??= []).push(...deferred);
188
- if (deferred.some(issue => issue.reason === 'syntax'))
189
- incomplete = true;
190
- for (const dependency of parsed.dependencies)
191
- add(dependency.value, {
192
- access: dependency.access, base: cwdBase, span,
193
- kind: dependency.kind === 'resource-lookup' ? 'resource-lookup' : dependency.literal ? 'path' : undefined,
194
- literal: dependency.literal,
195
- optionReader: dependency.optionReader, filterReader: dependency.filterReader,
196
- grammar: dependency.filterReader ? 'filter-option' : dependency.role === 'option-file' ? dependency.optionReader && filterOptions.includes(dependency.optionReader.name) ? 'filter' : 'option-file'
197
- : dependency.optionReader?.name === 'hls_key_info_file' ? 'hls-key-info'
198
- : dependency.role === 'preset' ? 'preset' : dependency.role === 'filter-script' ? 'filter' : undefined,
199
- });
200
- }
201
- }
202
- else if (grammar === 'concat') {
203
- const entries = [];
204
- try {
205
- for (const { value, span, options } of concatFiles(content)) {
206
- add(value, { span });
207
- entries.push({ index: references.length - 1, options });
208
- }
209
- }
210
- finally {
211
- // Also preserve options already parsed before a malformed/budget stop.
212
- // Native copies parent restrictions, then applies the file dictionary.
213
- for (const { index, options } of entries) {
214
- if (!options.has('protocol_whitelist') && !options.has('protocol_blacklist'))
215
- continue;
216
- const policy = { ...filesystem.policy };
217
- if (options.has('protocol_whitelist'))
218
- policy.allow = options.get('protocol_whitelist').split(',');
219
- if (options.has('protocol_blacklist'))
220
- policy.deny = options.get('protocol_blacklist').split(',');
221
- references[index] = { ...references[index], policy };
222
- }
223
- }
224
- }
225
- else if (grammar === 'concatf') {
226
- for (const { value, span } of concatfFiles(content))
227
- add(value, { base: cwdBase, span, literal: byteText(value) === '-' });
228
- }
229
- else if (grammar === 'hls-key-info') {
230
- // hlsenc.c reads three fields with ff_get_line, not fgets or a
231
- // newline-only split. CR, LF (including CRLF) and NUL terminate a read.
232
- // Its URI/file buffers hold MAX_URL_SIZE bytes plus the terminating NUL.
233
- // Native drains overlong lines but retains a prefix. Do not silently
234
- // substitute that prefix for signed content or claim complete discovery.
235
- let index = 0;
236
- for (const { line, span } of manifestLines(input)) {
237
- if (index >= 2)
238
- break; // The third field is IV data, never a filename.
239
- if (line.length > 4096) {
240
- incomplete = true;
241
- diagnostics = [{ reason: 'unresolved', detail: 'HLS key-info field exceeds the native 4096-byte reader boundary; remaining dependencies require runtime discovery' }];
242
- return { references, issues, diagnostics, incomplete, budget };
243
- }
244
- if (index === 1 && line)
245
- add(textBytes(line), { base: cwdBase, span, literal: line === '-' });
246
- index++;
247
- }
248
- issues.push('HLS key-info application, periodic rekeying and key accesses remain native live decisions');
249
- }
250
- else if (grammar === 'hls') {
251
- let variant = false;
252
- const hlsReference = (uri, extra) => {
253
- // Preserve variable-bearing content exactly. Substitution can depend on
254
- // the selected parent playlist and must never probe a placeholder path.
255
- const expression = parseFilenameExpression(textBytes(uri), 'hls');
256
- const dynamic = expression.tokens.some(token => token.kind === 'property');
257
- add(textBytes(uri), { ...extra, ...(dynamic ? { kind: 'filename-expression', filenameDialect: 'hls' } : {}) });
258
- if (dynamic)
259
- issues.push('HLS variable substitution requires runtime discovery');
260
- };
261
- const lines = [...manifestLines(input)];
262
- if (grammar === 'hls' && !lines.length)
263
- throw new Error('Missing HLS EXTM3U header');
264
- for (let index = 0; index < lines.length; index++) {
265
- let { line } = lines[index];
266
- const { span } = lines[index];
267
- if (grammar === 'hls') {
268
- // hls.c reads through ff_get_chomp_line into MAX_URL_SIZE (4096).
269
- // The byte alphabet makes length a native byte count, not Unicode
270
- // code points. Native drains the line but retains only its prefix.
271
- // Do not rewrite a signed URI or interpret later lines using parser
272
- // state inferred from different bytes. Runtime owns this capture.
273
- if (line.length > 4095) {
274
- incomplete = true;
275
- (diagnostics ??= []).push({ reason: 'unresolved', detail: 'HLS line exceeds the native 4095-byte reader boundary; remaining dependencies require runtime discovery' });
276
- return { references, issues, diagnostics, incomplete, budget };
277
- }
278
- while (line.length && ' \t\r\n\v\f'.includes(line.at(-1)))
279
- line = line.slice(0, -1);
280
- if (index === 0) {
281
- if (line !== '#EXTM3U')
282
- throw new Error('Missing HLS EXTM3U header');
283
- continue;
284
- }
285
- }
286
- if (!line)
287
- continue;
288
- if (!line.startsWith('#')) {
289
- hlsReference(line, { grammar: variant ? 'hls' : undefined, span });
290
- variant = false;
291
- continue;
292
- }
293
- const colon = line.indexOf(':');
294
- const tag = colon < 0 ? line : line.slice(0, colon);
295
- if (tag === '#EXT-X-STREAM-INF')
296
- variant = true;
297
- // Registered hls.c recognizes these resource tags. Other HLS tags
298
- // are skipped comments, even when the standard assigns a URI field.
299
- // Standards vocabulary alone cannot predict a native resource access.
300
- else if (['#EXT-X-KEY', '#EXT-X-MAP', '#EXT-X-MEDIA'].includes(tag)) {
301
- const attrs = attributes(line.slice(colon + 1));
302
- const uri = attrs.get('URI');
303
- // hls.c resets key_type to KEY_NONE on every EXT-X-KEY, then
304
- // enables only these exact methods. Missing/unknown methods do not
305
- // open a key, even when URI names an existing or signed resource.
306
- const disabledKey = tag === '#EXT-X-KEY' && !['AES-128', 'SAMPLE-AES'].includes(attrs.get('METHOD') ?? '');
307
- if (uri && !disabledKey)
308
- hlsReference(uri, { span, grammar: tag === '#EXT-X-MEDIA' ? 'hls' : undefined });
309
- }
310
- }
311
- if (grammar === 'hls')
312
- issues.push('Playlist selection, protocol policy, byte ranges and reloads are native live accesses');
313
- }
314
- else if (grammar === 'magick-script') {
315
- const parsed = imageMagickScriptTokens(content);
316
- // The existing frontend owns incremental script option grammar. Supplying
317
- // tokens as script mode avoids reserving an implicit final output.
318
- const result = await discoverImageMagick('magick-script', [textBytes('__observed_script__')], {
319
- accessible: imageAccessible,
320
- exists: imageExists,
321
- isDirectory: async (path) => filesystem.directory?.(resolveLocation(path, cwdBase, true)),
322
- read: async (path) => byteText(path) === '__observed_script__' ? content : undefined,
323
- });
324
- const adapted = imageMagickAccessReferences(result);
325
- diagnostics = [...frontendIssues(result.deferred)];
326
- if (diagnostics.some(issue => issue.reason === 'syntax'))
327
- incomplete = true;
328
- // Only the first occurrence is our entry wrapper. Script-local -script
329
- // remains a native special option, never a recursive content reader.
330
- for (const reference of adapted.references.slice(1)) {
331
- add(reference.value, { ...reference, base: cwdBase });
332
- const drawing = adapted.inline.get(reference);
333
- if (drawing) {
334
- const resources = await parseMvg(drawing, cwd, limits.nodes - references.length, imagePaths);
335
- for (const resource of resources.references)
336
- add(resource.value, resource);
337
- if (resources.budget)
338
- throw new ContentBudgetError();
339
- if (!resources.complete) {
340
- incomplete = true;
341
- issues.push('MVG command expansion remains unresolved');
342
- }
343
- }
344
- }
345
- if (parsed.incomplete) {
346
- incomplete = true;
347
- issues.push('Incomplete script token; earlier operations remain ordered');
348
- }
349
- }
350
- else if (grammar === 'magick-list') {
351
- // Reuse ExpandFilenames/StringToArgv and image operand semantics together.
352
- // Only this already observed wrapper has content. Its entries do not
353
- // undergo another list/glob expansion in the pinned native reader.
354
- const result = await discoverImageMagick('identify', [textBytes('@__observed_list__')], {
355
- accessible: async (path) => byteText(path) === '@__observed_list__' ? false : imageAccessible(path),
356
- exists: imageExists,
357
- isDirectory: async (path) => filesystem.directory?.(resolveLocation(path, cwdBase, true)),
358
- read: async (path) => byteText(path) === '__observed_list__' ? content : undefined,
359
- });
360
- diagnostics = [...frontendIssues(result.deferred)];
361
- if (diagnostics.some(issue => issue.reason === 'syntax'))
362
- incomplete = true;
363
- for (const reference of imageMagickAccessReferences(result).references.slice(1)) {
364
- // Empty/all-directory lists retain the original native @operand. This
365
- // wrapper has no original spelling: never invent a filesystem resource
366
- // from its internal name. Runtime owns the fallback and any effects.
367
- if (reference.source === 'argv' && byteText(reference.value) === '@__observed_list__') {
368
- issues.push('Native filename-list fallback requires the original runtime operand');
369
- continue;
370
- }
371
- add(reference.value, { ...reference, base: cwdBase, source: byteText(location) });
372
- }
373
- }
374
- else {
375
- const document = xml(content, limits.depth, grammar === 'dash' || grammar === 'magick-config');
376
- if (document.error) {
377
- // MSL executes SAX start-tag operations before a later syntax error.
378
- // Preserve that parsed prefix without guessing how native recovery proceeds.
379
- if (grammar !== 'msl')
380
- throw document.error;
381
- incomplete = true;
382
- budget = document.error instanceof ContentBudgetError;
383
- issues.push(document.error.message);
384
- }
385
- if (grammar === 'dash' && document.root.children[0]?.name !== 'mpd')
386
- throw new Error('Missing DASH MPD root');
387
- async function walk(node, bases, inheritedAddressing) {
388
- let effective = bases;
389
- // The pinned dashdec.c joins BaseURL content and never reads xml:base.
390
- // SVG/XML resource readers still use XML base semantics.
391
- if (grammar !== 'dash' && grammar !== 'magick-config' && node.attrs['xml:base'])
392
- effective = bases.map(base => ({ kind: 'resource', value: resolveLocation(new TextEncoder().encode(node.attrs['xml:base']), base) }));
393
- const children = node.children.filter(c => c.name === (grammar === 'dash' ? 'baseurl' : 'BaseURL'));
394
- if (grammar === 'dash' && children.length) {
395
- if (effective.length > limits.nodes / children.length)
396
- throw new ContentBudgetError();
397
- // dashdec.c reads BaseURL with xmlNodeGetContent. Whitespace is
398
- // filename/URL data, including signed query and fragment suffixes.
399
- effective = effective.flatMap(base => children.map(child => ({ kind: 'resource', value: resolveLocation(new TextEncoder().encode(xmlText(child)), base) })));
400
- if (children.length > 1)
401
- issues.push('Multiple DASH BaseURL alternatives require native selection');
402
- if (node.name !== 'representation' && effective.some(base => {
403
- const scheme = protocol(byteText(base.value));
404
- return scheme !== 'http' && scheme !== 'https'
405
- && parseFilenameExpression(base.value, 'dash-resource').tokens.some(token => token.kind === 'template');
406
- })) {
407
- // resolve_content_path mutates the native BaseURL hierarchy. The
408
- // selected reader can discard inherited local roots rather than
409
- // perform RFC joining. Keep hints, but never qualify this guessed
410
- // base or probe its template. Runtime supplies the actual operand.
411
- incomplete = true;
412
- (diagnostics ??= []).push({ reason: 'unresolved', detail: 'Inherited templated local BaseURL resolution requires the native reader\'s effective operand' });
413
- }
414
- }
415
- const emit = (value, extra = {}) => {
416
- for (const base of effective)
417
- add(new TextEncoder().encode(value), { base, ...extra });
418
- };
419
- if (grammar === 'dash') {
420
- if (['initialization', 'representationindex'].includes(node.name) && node.attrs.sourceURL !== undefined)
421
- emit(node.attrs.sourceURL, { filenameDialect: 'dash-resource' });
422
- if (node.name === 'segmenturl')
423
- for (const key of ['media', 'index'])
424
- if (node.attrs[key] !== undefined)
425
- emit(node.attrs[key], { filenameDialect: 'dash-resource' });
426
- if (node.name === 'segmenttemplate')
427
- for (const key of ['media', 'initialization', 'index']) {
428
- const value = node.attrs[key];
429
- if (value !== undefined)
430
- emit(value, { kind: value.includes('$') ? 'filename-expression' : undefined, filenameDialect: 'dash' });
431
- }
432
- const addressingChildren = node.children.filter(c => ['segmentlist', 'segmenttemplate', 'segmentbase'].includes(c.name));
433
- if (addressingChildren.length > 1) {
434
- incomplete = true;
435
- issues.push('Ambiguous DASH segment addressing requires native validation');
436
- }
437
- const ownAddressing = addressingChildren[0];
438
- const addressing = ownAddressing && ownAddressing.name === inheritedAddressing?.name
439
- ? { ...ownAddressing, attrs: { ...inheritedAddressing.attrs, ...ownAddressing.attrs }, children: [
440
- ...inheritedAddressing.children.filter(child => !ownAddressing.children.some(override => override.name === child.name)),
441
- ...ownAddressing.children,
442
- ] }
443
- : ownAddressing ?? inheritedAddressing;
444
- if (node.name === 'representation' && (!addressing || addressing.name === 'segmentbase')) {
445
- for (const child of children)
446
- for (const base of bases)
447
- add(new TextEncoder().encode(xmlText(child)), { base, filenameDialect: 'dash-resource' });
448
- }
449
- if (node.attrs['xlink:href'])
450
- emit(node.attrs['xlink:href'], { grammar: 'dash' });
451
- if (node.name === 'representation' && addressing) {
452
- await walk(addressing, effective);
453
- for (const alternative of addressingChildren.slice(1))
454
- await walk(alternative, effective);
455
- }
456
- for (const child of node.children)
457
- if (child.name !== 'baseurl' && !['segmentlist', 'segmenttemplate', 'segmentbase'].includes(child.name))
458
- await walk(child, effective, addressing);
459
- return;
460
- }
461
- else if (grammar === 'msl') {
462
- const name = node.name.toLowerCase();
463
- if (name === 'read' || name === 'write') {
464
- let output = [];
465
- for (const [key, value] of Object.entries(node.attrs)) {
466
- const bytes = new TextEncoder().encode(value);
467
- const property = imageMagickPropertyReference(bytes, cwd);
468
- if (property)
469
- add(property.value, property);
470
- if (key.toLowerCase() === 'filename') {
471
- const resources = (await imageMagickReaderReferences(bytes, cwd, name === 'read' ? 'read' : 'write', imagePaths))
472
- .map(reference => ({ ...reference, optional: property ? true : reference.optional }));
473
- if (name === 'write')
474
- output = resources;
475
- else
476
- for (const reference of resources)
477
- add(reference.value, reference);
478
- }
479
- }
480
- // WriteImage runs once after all attributes, using the last filename.
481
- for (const reference of output)
482
- add(reference.value, reference);
483
- }
484
- // msl.c uses attribute *names* for GetImageCache/FileToStringInfo.
485
- // Values are interpreted properties, never profile filenames.
486
- if (name === 'profile')
487
- for (const [key, value] of Object.entries(node.attrs)) {
488
- const property = imageMagickPropertyReference(new TextEncoder().encode(value), cwd);
489
- if (property)
490
- add(property.value, property);
491
- const colon = key.indexOf(':');
492
- const filename = colon < 0 ? key : key.slice(colon + 1);
493
- add(new TextEncoder().encode(filename), { base: cwdBase, literal: true, optional: true });
494
- }
495
- }
496
- else if (grammar === 'svg') {
497
- if (node.name === 'image' || node.name === 'use') {
498
- const href = node.attrs.href ?? node.attrs['xlink:href'];
499
- if (href && !href.startsWith('#'))
500
- emit(href);
501
- }
502
- if (node.name === 'style')
503
- issues.push('SVG CSS resources require runtime discovery');
504
- }
505
- else {
506
- const attrs = Object.fromEntries(Object.entries(node.attrs).map(([key, value]) => [key.toLowerCase(), value]));
507
- if (node.name === 'include' && attrs.file)
508
- emit(attrs.file, { grammar: 'magick-config', literal: true });
509
- if (node.name === 'type')
510
- for (const field of ['glyphs', 'metrics'])
511
- if (attrs[field]) {
512
- // type.c SetTypeNodePath first tests the literal token against cwd,
513
- // then concatenates the map directory even for an absolute token.
514
- // Unknown metadata retains alternatives, never a selected font.
515
- const value = new TextEncoder().encode(attrs[field]);
516
- let accessible;
517
- try {
518
- accessible = await filesystem.accessible?.(resolveLocation(value, cwdBase, true));
519
- }
520
- catch { /* Advisory failure cannot expose a native font error. */ }
521
- if (accessible !== false)
522
- add(value, { base: cwdBase, literal: true, optional: accessible !== true });
523
- if (accessible !== true) {
524
- for (const base of effective) {
525
- const map = byteText(base.value);
526
- const path = textBytes(map.slice(0, map.lastIndexOf('/') + 1) + byteText(value));
527
- let fallback;
528
- try {
529
- fallback = await filesystem.accessible?.(resolveLocation(path, cwdBase, true));
530
- }
531
- catch { /* Keep failed fallback metadata advisory too. */ }
532
- add(value, { path, base, literal: true, optional: accessible !== false || fallback !== true });
533
- }
534
- issues.push('Font-map accessibility, fallback selection and later font reads remain live');
535
- }
536
- }
537
- if (node.name === 'delegate' && attrs.command)
538
- emit(attrs.command, { kind: 'delegate', base: cwdBase });
539
- }
540
- for (const child of node.children)
541
- if (child.name !== 'BaseURL')
542
- await walk(child, effective);
543
- }
544
- await walk(document.root, [resourceBase]);
545
- if (grammar === 'dash')
546
- issues.push('DASH timeline/template expansion and reloads require runtime discovery');
547
- if (grammar === 'msl')
548
- issues.push('MSL property replacement, image state and profile cache/fallback remain native live decisions');
549
- }
550
- }
551
- catch (error) {
552
- incomplete = true;
553
- budget = error instanceof ContentBudgetError;
554
- issues.push(error instanceof Error ? error.message : 'Unresolved content grammar');
555
- }
556
- return { references, issues, diagnostics, incomplete, budget };
557
- }