@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,494 +0,0 @@
1
- import { imageMagickAccessReferences } from './imagemagick-references.js';
2
- import { frontendIssues } from './frontend-issues.js';
3
- import { filterOptions } from './discover.js';
4
- import { concatProtocolMembers } from './concat.js';
5
- import { parseFilenameExpression } from './filename-expression.js';
6
- import { byteText, textBytes } from './bytes.js';
7
- import { parseDependencyContent } from './dependency-grammars.js';
8
- import { classify, protocol, resolveLocation, subfileOperand, traceLocal } from './resolution-path.js';
9
- export class DiscoveryBudgetError extends Error {
10
- constructor() { super('Dependency discovery budget exhausted; runtime mediation is still required'); }
11
- }
12
- /** Compare local reader identities only. Interior empty/dot components do not
13
- * select another object, even across symlinks. Parent components must remain:
14
- * their meaning depends on the traversed link target. Preserve the POSIX special
15
- * leading double slash and terminal directory requirements conservatively.
16
- * This key is never an operand, canonical target or resource resolution base. */
17
- function localReaderIdentity(spelling) {
18
- const components = spelling.split('/');
19
- const firstComponent = components.findIndex(part => part !== '');
20
- if (firstComponent < 0)
21
- return spelling;
22
- return components.filter((part, index) => index < firstComponent || index === components.length - 1
23
- || part !== '' && part !== '.').join('/');
24
- }
25
- /** An invocation-owned advisory graph. No filesystem opens, stdin reads, network
26
- * requests, delegates, output writes or native replay are possible through this API.
27
- * Pass already observed content explicitly, including the effective redirect URL.
28
- * Submit calls in evaluation/observation order. Graph nodes are access occurrences,
29
- * never a deduplicated filename set or a canonical file identity. */
30
- export class DependencyResolver {
31
- options;
32
- nodes = [];
33
- edges = [];
34
- issues = [];
35
- bytes = 0;
36
- captures = new Map();
37
- incomplete = false;
38
- lineage = new Map();
39
- lastObserved;
40
- pending = Promise.resolve();
41
- constructor(options, initialIssues = []) {
42
- this.options = options;
43
- for (const key of ['nodes', 'bytes', 'depth', 'symlinks']) {
44
- const value = options.budgets[key];
45
- if (!Number.isSafeInteger(value) || value < 1)
46
- throw new Error('Discovery budgets must be explicit positive safe integers');
47
- }
48
- const cwd = new Uint8Array(options.cwd);
49
- if (!byteText(cwd).startsWith('/'))
50
- throw new Error('Resolver cwd must be absolute');
51
- this.options = { ...options, cwd, budgets: { ...options.budgets },
52
- policy: options.policy && structuredClone(options.policy) };
53
- this.issues.push(...structuredClone(initialIssues));
54
- this.incomplete = initialIssues.some(issue => issue.reason !== 'live');
55
- }
56
- issue(node, reason, detail) {
57
- this.issues.push({ node, reason, detail });
58
- if (reason !== 'live')
59
- this.incomplete = true;
60
- }
61
- schedule(operation) {
62
- const result = this.pending.then(operation);
63
- // A rejected admission must not poison later observations. Mutations within
64
- // one submission, including recursive protocol/content expansion, stay atomic
65
- // with respect to other submissions, not with respect to native execution.
66
- this.pending = result.catch(() => undefined);
67
- return result;
68
- }
69
- add(reference, parent) {
70
- // Capture at submission, before an earlier callback can reuse these bytes.
71
- reference = structuredClone(reference);
72
- return this.schedule(() => this.admit(reference, parent));
73
- }
74
- async admit(reference, parent) {
75
- if (parent !== undefined && !this.nodes[parent])
76
- throw new Error('Unknown dependency parent');
77
- // Parentage is supplied by runtime readers as well as grammar expansion.
78
- // Bound every admission before charging bytes or yielding to metadata.
79
- const depth = parent === undefined ? 0 : (this.lineage.get(parent)?.length ?? 0) + 1;
80
- if (depth > this.options.budgets.depth) {
81
- this.issue(parent, 'budget', 'Reference admission exceeded depth budget');
82
- throw new DiscoveryBudgetError();
83
- }
84
- // An explicit policy replaces parent/invocation restrictions. Parentage
85
- // does not imply a path base. Policy is retained on every occurrence,
86
- // including wrappers/manifests; charge UTF-8 bytes before advisory work.
87
- const policy = reference.policy ?? (parent === undefined ? undefined : this.nodes[parent].policy) ?? this.options.policy;
88
- let metadataBytes = 0;
89
- const encoder = new TextEncoder();
90
- for (const value of [reference.source, reference.filterReader?.filter, reference.filterReader?.name,
91
- reference.optionReader?.name, ...(policy?.allow ?? []), ...(policy?.deny ?? [])]) {
92
- if (value !== undefined)
93
- metadataBytes += encoder.encode(value).length;
94
- }
95
- const referenceBytes = reference.value.length + (reference.path?.length ?? 0)
96
- + (reference.base?.value.length ?? this.options.cwd.length)
97
- + (reference.optionReader?.specifier?.length ?? 0) + metadataBytes;
98
- if (this.nodes.length >= this.options.budgets.nodes || this.bytes + referenceBytes > this.options.budgets.bytes) {
99
- this.issue(parent, 'budget', 'Reference admission exceeded nodes/bytes budget');
100
- throw new DiscoveryBudgetError();
101
- }
102
- this.bytes += referenceBytes;
103
- // Capture all reader metadata before yielding to advisory traversal. Buffer
104
- // slice() aliases producer memory, and readonly types do not own policy lists.
105
- reference = structuredClone(reference);
106
- const base = reference.base ?? { kind: 'directory', value: this.options.cwd };
107
- // The invocation frontend interprets '-' as stdin. Manifest readers first
108
- // join that relative spelling against their resource, just like other names.
109
- // An explicit URL directory base has the same member semantics.
110
- // Protocol wrappers likewise open native URL operands, not CLI stdin aliases.
111
- const baseProtocol = protocol(byteText(base.value));
112
- const readerDash = (base.kind === 'resource' || baseProtocol !== undefined && baseProtocol !== 'file')
113
- && byteText(reference.value) === '-';
114
- const originalKind = readerDash ? 'path' : classify(reference.value);
115
- let kind = reference.kind ?? (reference.literal ? 'path' : originalKind);
116
- // A discovery path hint cannot replace an actual native network/descriptor
117
- // operand. Literal filesystem readers retain their native interpretation.
118
- const operand = !reference.literal && (originalKind === 'url' || originalKind === 'descriptor')
119
- ? reference.value : reference.path ?? reference.value;
120
- const operandKind = readerDash && byteText(operand) === '-' ? 'path' : classify(operand);
121
- const literal = reference.literal === true;
122
- if (!literal && ['path', 'file-protocol', 'url', 'image-selector', 'glob', 'output-pattern', 'filename-expression'].includes(kind)
123
- && (operandKind === 'url' || operandKind === 'descriptor'))
124
- kind = operandKind;
125
- let location;
126
- let readerLocation;
127
- let trace = [];
128
- let expression;
129
- const id = this.nodes.length;
130
- if (['path', 'file-protocol', 'url', 'image-selector', 'glob', 'output-pattern', 'filename-expression'].includes(kind)) {
131
- location = resolveLocation(operand, base, literal);
132
- // Manifest members join against this operand, never the advisory target.
133
- readerLocation = location.slice();
134
- const scheme = protocol(byteText(location));
135
- if (scheme !== undefined && scheme !== 'file')
136
- kind = 'url';
137
- else if (!reference.kind && scheme && kind === 'path')
138
- kind = 'file-protocol';
139
- if (reference.filenameDialect === 'dash' || reference.filenameDialect === 'dash-resource') {
140
- // Native DASH substitutes after URL joining. Templates can be inherited
141
- // from a BaseURL even when the member itself has a fixed spelling.
142
- expression = parseFilenameExpression(location, reference.filenameDialect);
143
- if (expression.tokens.some(token => token.kind === 'template') && (kind === 'path' || kind === 'file-protocol'))
144
- kind = 'filename-expression';
145
- }
146
- const policyScheme = scheme ?? 'file';
147
- const denied = policy?.deny?.includes(policyScheme) || policy?.allow && !policy.allow.includes(policyScheme);
148
- if (denied) {
149
- this.issue(id, 'policy', 'Protocol requires native policy decision; no prefetch authorized');
150
- }
151
- if (!denied && (kind === 'path' || kind === 'file-protocol' || kind === 'image-selector')) {
152
- let local = location;
153
- // file.c strips exactly one file: prefix, then opens a literal POSIX
154
- // filename. Its suffix must not re-enter AVIO protocol selection.
155
- if (scheme === 'file')
156
- local = resolveLocation(textBytes(byteText(location).slice(5)), { kind: 'directory', value: this.options.cwd }, true);
157
- // URL reference syntax can return a bare operand whose prefix is not
158
- // an AVIO protocol. file.c opens it relative to native cwd, even when
159
- // the referring playlist was on the network.
160
- else if (!scheme)
161
- local = resolveLocation(location, { kind: 'directory', value: this.options.cwd }, true);
162
- if (!scheme || scheme === 'file') {
163
- const result = await traceLocal(local, this.options, this.options.budgets.bytes - this.bytes);
164
- this.bytes += result.bytes;
165
- // file: retains its protocol identity, while path traversal records local components.
166
- location = scheme === 'file' ? textBytes('file:' + byteText(result.location)) : result.location;
167
- trace = result.trace;
168
- if (result.issue)
169
- this.issue(id, result.issue, 'Canonical path traversal remains unresolved');
170
- }
171
- }
172
- }
173
- if (kind === 'descriptor' && !literal) {
174
- const scheme = protocol(byteText(operand));
175
- if (scheme && (policy?.deny?.includes(scheme) || policy?.allow && !policy.allow.includes(scheme))) {
176
- this.issue(id, 'policy', 'Descriptor protocol requires native policy decision; no prefetch authorized');
177
- }
178
- }
179
- expression ??= reference.filenameDialect ? parseFilenameExpression(reference.path ?? reference.value, reference.filenameDialect, reference.access !== 'read') : undefined;
180
- if (expression && !expression.complete)
181
- this.issue(id, 'syntax', 'Filename expression requires native validation');
182
- const node = {
183
- ...reference, value: reference.value.slice(), path: reference.path?.slice(), id, parent,
184
- original: reference.value.slice(), expression, kind, base: { ...base, value: base.value.slice() }, readerLocation, location, trace,
185
- live: true, upload: false, timing: { order: id, stage: reference.stage ?? 'runtime', certainty: 'predicted' },
186
- policy,
187
- };
188
- this.nodes.push(node);
189
- if (parent !== undefined) {
190
- const capture = this.captures.get(parent) ?? this.nodes[parent];
191
- this.lineage.set(id, [...(this.lineage.get(parent) ?? []), { location: capture.location?.slice(), grammar: capture.grammar,
192
- canonical: 'canonical' in capture ? capture.canonical : undefined,
193
- reader: 'reader' in capture ? capture.reader : undefined }]);
194
- }
195
- if (parent !== undefined)
196
- this.edges.push({ from: parent, to: id, kind: 'depends-on' });
197
- // Connect advisory admission order across captures and nested expansions,
198
- // including a later output alias. Parentage alone carries no timing. These
199
- // edges never establish observed native order; observe removes its incoming
200
- // prediction and records the independent runtime sequence instead.
201
- const previous = this.nodes.slice(0, -1).reverse().find(n => n.timing.certainty === 'predicted');
202
- if (previous && previous.id !== parent)
203
- this.edges.push({ from: previous.id, to: id, kind: 'before' });
204
- if (kind === 'url') {
205
- // Manifest joining can select a wrapper absent from the original member.
206
- // Expand the operand actually passed to AVIO, retaining original bytes on
207
- // the parent occurrence and each stripped reader operand on its child.
208
- const name = byteText(location ?? operand), scheme = protocol(name);
209
- const wrapper = scheme && ['cache', 'async', 'crypto', 'concatf', 'subfile'].includes(scheme);
210
- let subfile;
211
- if (scheme === 'subfile') {
212
- try {
213
- subfile = subfileOperand(name);
214
- }
215
- catch (error) {
216
- this.issue(id, 'syntax', error instanceof Error ? error.message : 'Unresolved subfile option grammar');
217
- return structuredClone(node);
218
- }
219
- this.issue(id, 'live', 'Subfile offset expressions, seeking and protocol accessibility remain native decisions');
220
- }
221
- const children = scheme === 'concat' ? concatProtocolMembers(name.slice(7))
222
- : scheme === 'subfile' ? [subfile]
223
- : wrapper ? [name.slice(scheme.length + 1)] : [];
224
- if ((scheme === 'concat' && name.length > 7 || wrapper) && depth >= this.options.budgets.depth)
225
- this.issue(id, 'budget', 'Protocol nesting exceeds depth budget');
226
- else {
227
- let previous;
228
- for (const child of children) {
229
- try {
230
- // URLProtocol readers open the stripped operand directly. A relative
231
- // member does not inherit the playlist that named this wrapper.
232
- const member = await this.admit({ value: textBytes(child), access: scheme === 'concatf' ? 'read' : reference.access,
233
- literal: child === '-',
234
- grammar: scheme === 'concatf' ? 'concatf' : undefined,
235
- base: { kind: 'directory', value: this.options.cwd }, policy: node.policy, stage: reference.stage }, id);
236
- if (previous && previous.id !== member.id - 1)
237
- this.edges.push({ from: previous.id, to: member.id, kind: 'before' });
238
- previous = member;
239
- }
240
- catch (error) {
241
- if (error instanceof DiscoveryBudgetError)
242
- break;
243
- throw error;
244
- }
245
- }
246
- }
247
- }
248
- return structuredClone(node);
249
- }
250
- content(id, observation) {
251
- // An impossible capture needs no byte ownership: retain only its grammar,
252
- // and publish the refusal in submission order. Never clone a large producer
253
- // allocation merely to discover that it exceeds the entire capture budget.
254
- if (observation.content.byteLength + (observation.location?.byteLength ?? 0) > this.options.budgets.bytes) {
255
- const grammar = observation.grammar;
256
- return this.schedule(async () => {
257
- const node = this.nodes[id];
258
- if (!node)
259
- throw new Error('Unknown dependency node');
260
- if (!(grammar ?? node.grammar))
261
- this.issue(id, 'unresolved', 'Content grammar must come from the selected native reader');
262
- else
263
- this.issue(id, 'budget', 'Content/location exceeds byte budget');
264
- return [];
265
- });
266
- }
267
- observation = structuredClone(observation);
268
- return this.schedule(() => this.expandContent(id, observation));
269
- }
270
- async expandContent(id, observation) {
271
- const node = this.nodes[id];
272
- if (!node)
273
- throw new Error('Unknown dependency node');
274
- const grammar = observation.grammar ?? node.grammar;
275
- if (!grammar) {
276
- this.issue(id, 'unresolved', 'Content grammar must come from the selected native reader');
277
- return [];
278
- }
279
- const readerLocation = node.readerLocation ?? node.location;
280
- const observationBytes = observation.content.length + (observation.location?.length ?? readerLocation?.length ?? 0);
281
- if (this.bytes + observationBytes > this.options.budgets.bytes) {
282
- this.issue(id, 'budget', 'Content/location exceeds byte budget');
283
- return [];
284
- }
285
- this.bytes += observationBytes;
286
- // Observation buffers can be reused by the runtime bridge as soon as this
287
- // call yields. Own the capture before any asynchronous grammar evaluation.
288
- const content = Uint8Array.from(observation.content);
289
- const location = observation.location ? Uint8Array.from(observation.location) : readerLocation;
290
- if (!location) {
291
- this.issue(id, 'unresolved', 'No effective content location');
292
- return [];
293
- }
294
- const lineage = this.lineage.get(id) ?? [];
295
- // Canonical traversal is a second advisory cycle key, never the manifest's
296
- // resolution base. Redirected captures and failed metadata cannot inherit it.
297
- const canonicalLocation = !observation.location && node.location && node.trace.length
298
- && !this.issues.some(issue => issue.node === id && issue.reason !== 'live')
299
- ? byteText(node.location) : undefined;
300
- // file.c removes exactly one prefix and opens the suffix against cwd.
301
- // This identity is known without metadata: comparing it does not simplify
302
- // '..', follow links, decode URL escapes or change the content reader base.
303
- // Interior dot/repeated separators are equivalent for local cycle identity
304
- // only; retained operands still carry their exact original spelling.
305
- // Effective redirected captures must use their own spelling, never a stale
306
- // canonical target from the original node.
307
- const spelling = byteText(location);
308
- const scheme = protocol(spelling);
309
- const localReader = node.readerLocation && (scheme === 'file' || scheme === undefined && spelling.startsWith('/'))
310
- ? localReaderIdentity(scheme === 'file'
311
- ? byteText(resolveLocation(textBytes(spelling.slice(5)), { kind: 'directory', value: this.options.cwd }, true))
312
- : spelling)
313
- : undefined;
314
- const canonical = canonicalLocation?.startsWith('file:') ? canonicalLocation.slice(5) : canonicalLocation;
315
- const depth = lineage.length;
316
- if (depth >= this.options.budgets.depth) {
317
- this.issue(id, 'budget', 'Content exceeds nesting budget');
318
- return [];
319
- }
320
- for (const ancestor of lineage) {
321
- if (ancestor.grammar === grammar && (ancestor.location && byteText(ancestor.location) === byteText(location)
322
- || localReader !== undefined && ancestor.reader === localReader
323
- || canonical !== undefined && ancestor.canonical === canonical)) {
324
- this.issue(id, 'cycle', 'Ancestor content references itself; subsequent runtime access remains live');
325
- // A native observation has already happened. A revisit may be a reload
326
- // with new bytes, rather than recursive static expansion. Preserve its
327
- // content while retaining the cycle warning and all admission budgets.
328
- if (node.timing.certainty !== 'observed')
329
- return [];
330
- break;
331
- }
332
- }
333
- this.captures.set(id, { location: location.slice(), grammar, canonical, reader: localReader });
334
- const parsed = await parseDependencyContent(grammar, content, location, this.options.cwd, { nodes: this.options.budgets.nodes - this.nodes.length, depth: this.options.budgets.depth - depth }, node.optionReader, node.filterReader, { ...this.options, policy: node.policy });
335
- for (const issue of parsed.diagnostics ?? [])
336
- this.issue(id, issue.reason, issue.detail);
337
- for (const issue of parsed.issues)
338
- this.issue(id, parsed.budget ? 'budget' : parsed.incomplete ? 'syntax' : 'live', issue);
339
- const result = [];
340
- for (const reference of parsed.references) {
341
- try {
342
- const child = await this.admit({ ...reference, policy: reference.policy ?? node.policy, stage: 'runtime' }, id);
343
- if (result.length && result.at(-1).id !== child.id - 1)
344
- this.edges.push({ from: result.at(-1).id, to: child.id, kind: 'before' });
345
- result.push(child);
346
- }
347
- catch (error) {
348
- if (error instanceof DiscoveryBudgetError)
349
- break;
350
- throw error;
351
- }
352
- }
353
- return result;
354
- }
355
- /** A parent records the reader that caused this access, not an implicit base.
356
- * The runtime bridge supplies each reader's actual resolution base explicitly. */
357
- observe(reference, parent) {
358
- reference = structuredClone(reference);
359
- return this.schedule(async () => {
360
- if (!Number.isSafeInteger(reference.sequence) || reference.sequence < 0 || this.lastObserved && reference.sequence <= this.lastObserved.timing.sequence)
361
- throw new Error('Runtime access sequence must increase');
362
- const node = await this.admit(reference, parent);
363
- const observed = { ...node, timing: { ...node.timing, certainty: 'observed', sequence: reference.sequence } };
364
- this.nodes[node.id] = observed;
365
- // Predicted order is not evidence of native timing.
366
- for (let i = this.edges.length - 1; i >= 0; i--)
367
- if (this.edges[i].kind === 'before' && this.edges[i].to === node.id)
368
- this.edges.splice(i, 1);
369
- if (this.lastObserved)
370
- this.edges.push({ from: this.lastObserved.id, to: node.id, kind: 'observed-before' });
371
- this.lastObserved = observed;
372
- return structuredClone(observed);
373
- });
374
- }
375
- graph() {
376
- return structuredClone({ nodes: this.nodes, edges: this.edges, issues: this.issues, status: this.incomplete ? 'incomplete' : 'live' });
377
- }
378
- }
379
- /** Adapt frontend grammar hints, preserving original argv and access occurrences.
380
- * These are predicted evaluation stages, not a claim about observed native opens. */
381
- export async function createDependencyResolver(discovery, options) {
382
- // Admission owns the whole invocation, not just whichever occurrence is
383
- // currently awaiting metadata. Producers may reuse later operand buffers,
384
- // policies and inline content while the first advisory traversal is pending.
385
- discovery = structuredClone(discovery);
386
- options = { ...options, cwd: new Uint8Array(options.cwd), budgets: { ...options.budgets },
387
- policy: options.policy && structuredClone(options.policy) };
388
- const resolver = new DependencyResolver(options, frontendIssues(discovery.deferred));
389
- const references = [];
390
- const inline = new Map();
391
- if ('dependencies' in discovery) {
392
- // ffprobe parses options sequentially, then initializes its output writer
393
- // before probe_file opens the input. FFmpeg opens grouped inputs first.
394
- // These stages predict reader evaluation, never authorize early effects.
395
- const rank = discovery.tool === 'ffprobe'
396
- ? { global: 0, output: 1, input: 2, runtime: 3 }
397
- : { global: 0, input: 1, output: 2, runtime: 3 };
398
- const lavfiGroups = discovery.groups.filter(group => {
399
- const format = [...discovery.globals, ...group.options].reverse().find(option => option.name === 'f');
400
- return group.kind === 'input' && group.target && format?.value && !format.fromFile && byteText(format.value) === 'lavfi';
401
- });
402
- const lavfiIndices = new Set(lavfiGroups.map(group => group.index));
403
- const dependencies = [...discovery.dependencies].sort((a, b) => rank[a.stage] - rank[b.stage] || a.index - b.index);
404
- for (const d of dependencies) {
405
- // Expand inline source grammar under its reader, rather than admitting
406
- // the frontend's flattened hints as unrelated root accesses.
407
- if (d.role === 'filter-resource' && lavfiIndices.has(d.index))
408
- continue;
409
- const group = discovery.groups.find(g => g.index === d.index || g.options.some(o => o.index === d.index));
410
- const applied = [...discovery.globals, ...(group?.options ?? [])];
411
- const option = applied.find(o => o.index === d.index);
412
- const policyList = (name) => { const value = [...applied].reverse().find(o => o.name === name && !o.fromFile)?.value; return value && byteText(value).split(','); };
413
- const allow = policyList('protocol_whitelist'), deny = policyList('protocol_blacklist');
414
- const policy = allow || deny ? { allow, deny } : options.policy;
415
- const format = [...discovery.globals, ...(group?.options ?? [])].reverse().find(o => o.name === 'f');
416
- const name = format?.value && !format.fromFile && byteText(format.value);
417
- const inputGrammars = { concat: 'concat', hls: 'hls', dash: 'dash' };
418
- const inputGrammar = name && Object.hasOwn(inputGrammars, name) ? inputGrammars[name] : undefined;
419
- const grammar = d.filterReader ? 'filter-option' : d.role === 'option-file' ? !d.optionReader?.discardValue && option && filterOptions.includes(option.name) ? 'filter' : 'option-file' : (d.optionReader?.name ?? option?.name) === 'hls_key_info_file' ? 'hls-key-info' : d.role === 'preset' ? 'preset' : d.role === 'filter-script' ? 'filter' : d.role === 'input' ? inputGrammar : undefined;
420
- const patternType = [...applied].reverse().find(o => o.name === 'pattern_type');
421
- const pattern = patternType?.value && !patternType.fromFile ? byteText(patternType.value) : undefined;
422
- // img2enc.c expands s->url before io_open selects an AVIO protocol.
423
- // Output counters/clocks therefore also apply to file: and network URLs.
424
- // img2dec.c likewise expands sequences before AVIO checks/opens, but
425
- // glob() consumes the literal URL in the local filesystem namespace.
426
- const image2 = name === 'image2' && (d.role === 'output' || d.role === 'input' && (pattern !== 'glob' || classify(d.value) === 'path'));
427
- // img2enc.c write_packet: update wins over clock expansion, then PTS or
428
- // frame numbering. Only predict canonical switch values; native owns
429
- // boolean aliases, malformed values and option-file interpretation.
430
- const filenameSwitch = (name) => {
431
- const option = [...applied].reverse().find(option => option.name === name);
432
- if (!option)
433
- return '0';
434
- const value = !option.fromFile && option.value && byteText(option.value);
435
- return value === '0' || value === '1' ? value : undefined;
436
- };
437
- const update = image2 && d.role === 'output' ? filenameSwitch('update') : '0';
438
- const strftime = image2 && d.role === 'output' ? filenameSwitch('strftime') : '0';
439
- // Signed URL escapes can make the native frame pattern invalid. Input
440
- // header probing then falls back to the untouched URL; do not decode its
441
- // escapes or turn that native fallback into a predictive syntax failure.
442
- const counterPattern = byteText(d.value).includes('%') && (classify(d.value) !== 'url' || parseFilenameExpression(d.value, 'sequence', d.role === 'output').complete);
443
- const kind = d.kind === 'resource-lookup' ? d.kind : d.literal ? 'path' : image2 && d.role === 'input' && pattern === 'glob' ? 'glob'
444
- : image2 && d.role === 'output' && update === '1' ? 'path'
445
- : image2 && d.role === 'output' && (update === undefined || strftime !== '0') ? 'resource-lookup'
446
- : image2 && pattern !== 'none' && counterPattern ? d.access === 'write' ? 'output-pattern' : 'filename-expression'
447
- : undefined;
448
- references.push({ value: d.value, access: d.access, kind, literal: d.literal, grammar, optionReader: d.optionReader, filterReader: d.filterReader, policy, filenameDialect: kind === 'filename-expression' || kind === 'output-pattern' ? 'sequence' : undefined, index: d.index, stage: d.stage,
449
- base: d.base === 'cwd' ? undefined : { kind: 'resource', value: d.base.resource } });
450
- }
451
- for (const group of discovery.groups) {
452
- if (group.kind === 'trailing')
453
- continue;
454
- for (const option of group.options)
455
- if (['pre', 'apre', 'vpre', 'spre'].includes(option.name) && option.value && !option.fromFile) {
456
- references.push({ value: option.value, kind: 'resource-lookup', access: 'read', stage: group.kind === 'input' ? 'input' : 'output', index: option.index });
457
- }
458
- if (lavfiIndices.has(group.index) && group.target) {
459
- const applied = [...discovery.globals, ...group.options];
460
- const policyList = (name) => { const value = [...applied].reverse().find(option => option.name === name && !option.fromFile)?.value; return value && byteText(value).split(','); };
461
- const allow = policyList('protocol_whitelist'), deny = policyList('protocol_blacklist');
462
- const reference = { value: group.target, kind: 'synthetic', access: 'read', stage: 'input', index: group.index, grammar: 'filter',
463
- policy: allow || deny ? { allow, deny } : options.policy };
464
- references.push(reference);
465
- inline.set(reference, group.target);
466
- }
467
- }
468
- references.sort((a, b) => rank[a.stage] - rank[b.stage] || (a.index ?? 0) - (b.index ?? 0));
469
- }
470
- else {
471
- const parsed = imageMagickAccessReferences(discovery);
472
- references.push(...parsed.references);
473
- for (const [reference, content] of parsed.inline)
474
- inline.set(reference, content);
475
- }
476
- for (const reference of references) {
477
- try {
478
- const node = await resolver.add(reference);
479
- const content = inline.get(reference);
480
- if (content)
481
- await resolver.content(node.id, { content, location: options.cwd });
482
- }
483
- catch (error) {
484
- if (error instanceof DiscoveryBudgetError)
485
- break;
486
- throw error;
487
- }
488
- }
489
- return resolver;
490
- }
491
- export async function resolveDependencies(discovery, options) {
492
- const resolver = await createDependencyResolver(discovery, options);
493
- return resolver.graph();
494
- }
@@ -1,16 +0,0 @@
1
- import type { Dependency, ResourceRole } from "./types.js";
2
- export declare function resource(index: number, value: Uint8Array, role: ResourceRole, access: Dependency["access"], stage: Dependency["stage"], literal?: boolean, syntax?: 'avio' | 'stdio'): Dependency;
3
- interface FilterResource {
4
- value: Uint8Array;
5
- literal: boolean;
6
- kind?: 'resource-lookup';
7
- access?: Dependency['access'];
8
- filterReader?: Dependency['filterReader'];
9
- }
10
- /** Apply a selected AVOption value directly. Loaded buffers are not graph syntax. */
11
- export declare function filterValueResource(filter: string, field: string, value: Uint8Array): FilterResource | undefined;
12
- export declare function filterResources(value: Uint8Array): {
13
- resources: FilterResource[];
14
- complete: boolean;
15
- };
16
- export {};