@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,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/ffmpeg/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/gh/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/git/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/imagemagick/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/mmdc/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/pdfimages/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/pdfinfo/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/pdftk/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/pdftoppm/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/pdftotext/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/qpdf/index.ts
10
10
  init_platform();
@@ -0,0 +1,9 @@
1
+ import {
2
+ executeRead
3
+ } from "./chunk-B3ZMOJVM.js";
4
+ import "./chunk-DUTAG6ZD.js";
5
+ import "./chunk-XQWCQSRN.js";
6
+ import "./chunk-PTAEWLSE.js";
7
+ export {
8
+ executeRead
9
+ };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/sips/index.ts
10
10
  init_platform();
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/soffice/index.ts
10
10
  init_platform();
@@ -0,0 +1,7 @@
1
+ import {
2
+ createRootedSourceResolver
3
+ } from "./chunk-Q5XO3NAS.js";
4
+ import "./chunk-PTAEWLSE.js";
5
+ export {
6
+ createRootedSourceResolver
7
+ };
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  builtInDirectContextExecutors,
3
3
  syncCommandEvaluators
4
- } from "./chunk-E7OYNDGL.js";
4
+ } from "./chunk-V7QT2RWC.js";
5
5
  import {
6
6
  init_platform
7
- } from "./chunk-B7TAL7S5.js";
7
+ } from "./chunk-PTAEWLSE.js";
8
8
 
9
9
  // packages/safe-bash/src/commands/wkhtmltopdf/index.ts
10
10
  init_platform();
@@ -36,6 +36,7 @@ function validateOptions(options = {}) {
36
36
  if (typeof key !== "string" || !Object.hasOwn(defaultLimits, key)) throw new TypeError(`Unknown xan limit: ${String(key)}`);
37
37
  const name = key;
38
38
  const value = supplied[name];
39
+ if (value === void 0) continue;
39
40
  if (value !== Infinity && (typeof value !== "number" || !Number.isSafeInteger(value) || value <= 0)) throw new RangeError(`Invalid xan limit: ${name}`);
40
41
  limits[name] = value;
41
42
  }
@@ -674,11 +674,12 @@ function createFoldEngine(options, locale, configuration = {}, signal) {
674
674
  let lastBlank = 0, peakRetained = 0;
675
675
  let emitted = [];
676
676
  let aborted = Boolean(signal?.aborted);
677
+ const onAbort = () => {
678
+ aborted = true;
679
+ };
677
680
  const pollSignal = Boolean(signal && typeof signal.addEventListener !== "function");
678
681
  if (signal && !aborted && !pollSignal) {
679
- signal.addEventListener("abort", () => {
680
- aborted = true;
681
- }, { once: true });
682
+ signal.addEventListener("abort", onAbort, { once: true });
682
683
  }
683
684
  const check = (amount = 1) => {
684
685
  if (closed) throw new FoldError("CLOSED", "Fold engine is closed");
@@ -770,6 +771,7 @@ function createFoldEngine(options, locale, configuration = {}, signal) {
770
771
  }
771
772
  };
772
773
  const dispose = () => {
774
+ signal?.removeEventListener?.("abort", onAbort);
773
775
  closed = true;
774
776
  used = lastBlank = 0;
775
777
  pending.length = 0;
@@ -994,7 +996,7 @@ async function executeFold(context, configuration, invocation) {
994
996
  `);
995
997
  return { exitCode: 1, filesRead, filesFailed, accounting: accounting() };
996
998
  }
997
- const deliver = async (chunks) => {
999
+ const deliver = async (chunks, ownedInput) => {
998
1000
  chargeWork(0);
999
1001
  const engOut = engine?.outputBytes?.() ?? engine.accounting().outputBytes;
1000
1002
  if (engOut > limits.outputBytes - diagnostics) throw new FoldError("LIMIT", "Output byte limit exceeded");
@@ -1002,7 +1004,7 @@ async function executeFold(context, configuration, invocation) {
1002
1004
  let size = 0;
1003
1005
  for (const bytes of chunks) size += bytes.length;
1004
1006
  if (!size) return;
1005
- retain(engine.accounting().retainedBytes + size * (chunks.length === 1 ? 1 : 2));
1007
+ retain(ownedInput + engine.accounting().retainedBytes + size * (chunks.length === 1 ? 1 : 2));
1006
1008
  if (chunks.length === 1) {
1007
1009
  await writeBytes(stdout.output, chunks[0], signal);
1008
1010
  return;
@@ -1099,7 +1101,7 @@ async function executeFold(context, configuration, invocation) {
1099
1101
  }
1100
1102
  if (byteKind.call(next.value) !== "Uint8Array") throw new FoldError("INPUT", "Input must be byte storage");
1101
1103
  const length = byteExtent.call(next.value);
1102
- if (!length) await deliver(engine.push(next.value));
1104
+ if (!length) await deliver(engine.push(next.value), ownedInput);
1103
1105
  for (let offset = 0; offset < length; offset += 4096) {
1104
1106
  await yieldTurn(signal);
1105
1107
  signal.throwIfAborted();
@@ -1108,11 +1110,11 @@ async function executeFold(context, configuration, invocation) {
1108
1110
  const engRet = engine.retainedBytes?.() ?? engine.accounting().retainedBytes;
1109
1111
  context.inputBudget?.check(engIn + unit.byteLength);
1110
1112
  retain(ownedInput + engRet + unit.byteLength * 2 + 4);
1111
- await deliver(engine.push(unit));
1113
+ await deliver(engine.push(unit), ownedInput);
1112
1114
  }
1113
1115
  }
1114
1116
  retain(ownedInput + engine.accounting().retainedBytes + 4);
1115
- await deliver(engine.endFile());
1117
+ await deliver(engine.endFile(), ownedInput);
1116
1118
  } catch (error) {
1117
1119
  escaping = true;
1118
1120
  throw error;
@@ -56,7 +56,8 @@ async function targetPath(value, work) {
56
56
  async function parse(text, work) {
57
57
  await work.utf8(work.cwd, work.limits.maxPathBytes, 2);
58
58
  if (!work.cwd.startsWith("/") || work.cwd.includes("\0")) throw new PatchError("cwd must be an absolute virtual path", 2);
59
- const lines = await patchLines(text, work);
59
+ await work.charge(text.length);
60
+ const lines = await patchLines(text.trim(), work);
60
61
  if (lines[0] !== "*** Begin Patch" || lines.at(-1) !== "*** End Patch") throw new PatchError("expected Begin Patch and End Patch envelope", 2);
61
62
  const files = [];
62
63
  let index = 1;
@@ -4,19 +4,91 @@ import {
4
4
 
5
5
  // packages/safe-bash-command-date/src/date.ts
6
6
  init_buffer();
7
+
8
+ // packages/safe-bash-command-date/src/adjustments.ts
9
+ init_buffer();
10
+ import { boundedInstant, floorDivide, nanosecondsPerSecond, utcMilliseconds } from "../../safe-bash-calendar-engine/time-env/calendar.js";
11
+ import { CommandFailure } from "../../safe-bash-calendar-engine/time-env/shared.js";
12
+ function isEpochSeconds(value) {
13
+ let index = value[0] === "+" || value[0] === "-" ? 1 : 0;
14
+ const start = index;
15
+ while (index < value.length && value[index] >= "0" && value[index] <= "9") index++;
16
+ if (index === start) return false;
17
+ if (value[index] === ".") {
18
+ const fraction = ++index;
19
+ while (index < value.length && value[index] >= "0" && value[index] <= "9") index++;
20
+ if (fraction === index) return false;
21
+ }
22
+ return index === value.length;
23
+ }
24
+ function parseAdjustment(value) {
25
+ const unit = value.slice(-1);
26
+ const number = value.slice(0, -1);
27
+ if (!unit || !"ymwdHMS".includes(unit) || !isEpochSeconds(number) || number.includes(".")) {
28
+ throw new CommandFailure(`invalid date adjustment: ${value}`);
29
+ }
30
+ const amount = Number(number);
31
+ const relative = number[0] === "+" || number[0] === "-";
32
+ if (!Number.isSafeInteger(amount)) throw new CommandFailure(`date adjustment is outside the supported range: ${value}`);
33
+ if (!relative) {
34
+ const ranges = { y: [0, 9999], m: [1, 12], w: [0, 6], d: [1, 31], H: [0, 23], M: [0, 59], S: [0, 59] };
35
+ const [min, max] = ranges[unit];
36
+ if (amount < min || amount > max) throw new CommandFailure(`invalid date adjustment: ${value}`);
37
+ }
38
+ return { unit, amount: !relative && unit === "y" && amount <= 1900 ? amount + (amount < 69 ? 2e3 : 1900) : amount, relative };
39
+ }
40
+ function adjustDate(instant, adjustments, zone) {
41
+ for (const { unit, amount, relative } of adjustments) {
42
+ if (relative && "HMS".includes(unit)) {
43
+ const scale = unit === "H" ? 3600n : unit === "M" ? 60n : 1n;
44
+ instant = boundedInstant(instant + BigInt(amount) * scale * nanosecondsPerSecond);
45
+ continue;
46
+ }
47
+ const fields = zone.fields(instant);
48
+ const date = new Date(utcMilliseconds(fields));
49
+ const fraction = instant - floorDivide(instant, nanosecondsPerSecond) * nanosecondsPerSecond;
50
+ if (unit === "y" || unit === "m") {
51
+ date.setUTCDate(1);
52
+ if (unit === "y") date.setUTCFullYear(relative ? fields.year + amount : amount);
53
+ else date.setUTCMonth(relative ? fields.month - 1 + amount : amount - 1);
54
+ const next = new Date(date.getTime());
55
+ next.setUTCMonth(next.getUTCMonth() + 1, 0);
56
+ date.setUTCDate(Math.min(fields.day, next.getUTCDate()));
57
+ } else if (unit === "w") date.setUTCDate(fields.day + (relative ? amount * 7 : amount - date.getUTCDay()));
58
+ else if (unit === "d") date.setUTCDate(relative ? fields.day + amount : amount);
59
+ else if (unit === "H") date.setUTCHours(amount);
60
+ else if (unit === "M") date.setUTCMinutes(amount);
61
+ else date.setUTCSeconds(amount);
62
+ if (!Number.isFinite(date.getTime())) throw new CommandFailure("date adjustment is outside the supported range");
63
+ if (!relative && unit === "d" && date.getUTCMonth() + 1 !== fields.month) throw new CommandFailure("invalid calendar date adjustment");
64
+ instant = zone.instant({
65
+ year: date.getUTCFullYear(),
66
+ month: date.getUTCMonth() + 1,
67
+ day: date.getUTCDate(),
68
+ hour: date.getUTCHours(),
69
+ minute: date.getUTCMinutes(),
70
+ second: date.getUTCSeconds()
71
+ }, fraction, "compatible");
72
+ }
73
+ return instant;
74
+ }
75
+
76
+ // packages/safe-bash-command-date/src/date.ts
7
77
  import { utf8ByteLength } from "../../safe-bash-byte-engine/index.js";
8
78
  import { FsError } from "../../safe-bash-contracts/index.js";
9
79
  import { input as fileInput, lines, pathOf } from "../../safe-bash-io-engine/internal.js";
10
80
  import { writeDiagnostic } from "../../safe-bash-contracts/escaping.js";
11
- import { TimeZone, millisecondsInstant, parseDate } from "../../safe-bash-calendar-engine/time-env/calendar.js";
81
+ import { TimeZone as TimeZone2, millisecondsInstant, parseDate } from "../../safe-bash-calendar-engine/time-env/calendar.js";
12
82
  import { formatDate } from "../../safe-bash-calendar-engine/time-env/format.js";
13
- import { checkSize, command, CommandFailure, emit, ownEnvironment, timeEnvExecutorSettings } from "../../safe-bash-calendar-engine/time-env/shared.js";
83
+ import { checkSize, command, CommandFailure as CommandFailure2, emit, ownEnvironment, timeEnvExecutorSettings } from "../../safe-bash-calendar-engine/time-env/shared.js";
14
84
  function parseArguments(args) {
15
85
  let input, reference, format, style;
16
86
  let utc = false, ended = false;
17
87
  let file;
88
+ let epochReference = false;
89
+ const adjustments = [];
18
90
  const formatted = (value) => {
19
- if (style !== void 0) throw new CommandFailure("multiple output formats specified");
91
+ if (style !== void 0) throw new CommandFailure2("multiple output formats specified");
20
92
  style = value;
21
93
  };
22
94
  const iso = (value) => {
@@ -27,7 +99,7 @@ function parseArguments(args) {
27
99
  if ("seconds".startsWith(value)) return "%FT%T%:z";
28
100
  if ("ns".startsWith(value)) return "%FT%T,%N%:z";
29
101
  }
30
- throw new CommandFailure(`unsupported ISO precision: ${value}`);
102
+ throw new CommandFailure2(`unsupported ISO precision: ${value}`);
31
103
  };
32
104
  for (let index = 0; index < args.length; index++) {
33
105
  const argument = args[index];
@@ -41,11 +113,11 @@ function parseArguments(args) {
41
113
  const attached = separator < 0 ? void 0 : argument.slice(separator + 1);
42
114
  const required = () => {
43
115
  const value = attached ?? args[++index];
44
- if (value === void 0) throw new CommandFailure(`option requires an argument: ${name}`);
116
+ if (value === void 0) throw new CommandFailure2(`option requires an argument: ${name}`);
45
117
  return value;
46
118
  };
47
119
  if (["--help", "--version", "--utc", "--universal", "--rfc-email", "--rfc-2822", "--rfc-822"].includes(name) && attached !== void 0) {
48
- throw new CommandFailure(`option does not allow an argument: ${name}`);
120
+ throw new CommandFailure2(`option does not allow an argument: ${name}`);
49
121
  }
50
122
  switch (name) {
51
123
  case "--help":
@@ -61,6 +133,7 @@ function parseArguments(args) {
61
133
  break;
62
134
  case "--reference":
63
135
  reference = required();
136
+ epochReference = false;
64
137
  break;
65
138
  case "--file":
66
139
  file = required();
@@ -76,45 +149,51 @@ function parseArguments(args) {
76
149
  case "--rfc-3339": {
77
150
  const precision = required();
78
151
  if (!precision || !["date", "seconds", "ns"].some((item) => item.startsWith(precision))) {
79
- throw new CommandFailure(`unsupported RFC3339 precision: ${precision}`);
152
+ throw new CommandFailure2(`unsupported RFC3339 precision: ${precision}`);
80
153
  }
81
154
  formatted("date".startsWith(precision) ? "%F" : "ns".startsWith(precision) ? "%F %T.%N%:z" : "%F %T%:z");
82
155
  break;
83
156
  }
84
157
  case "--set":
85
- throw new CommandFailure("setting clocks is unsupported");
158
+ throw new CommandFailure2("setting clocks is unsupported");
86
159
  default:
87
- throw new CommandFailure(`unsupported option: ${name}`);
160
+ throw new CommandFailure2(`unsupported option: ${name}`);
88
161
  }
89
162
  } else if (!ended && argument.startsWith("-") && argument !== "-") {
90
163
  for (let position = 1; position < argument.length; position++) {
91
164
  const flag = argument[position];
92
165
  if (flag === "u") utc = true;
166
+ else if (flag === "j") continue;
93
167
  else if (flag === "R") formatted("%a, %d %b %Y %T %z");
94
168
  else if (flag === "I") {
95
169
  formatted(iso(argument.slice(position + 1) || "date"));
96
170
  break;
97
- } else if (flag === "d" || flag === "r" || flag === "f") {
171
+ } else if (flag === "d" || flag === "r" || flag === "f" || flag === "v") {
98
172
  const value = argument.slice(position + 1) || args[++index];
99
- if (value === void 0) throw new CommandFailure(`option requires an argument: -${flag}`);
173
+ if (value === void 0) throw new CommandFailure2(`option requires an argument: -${flag}`);
100
174
  if (flag === "d") input = value;
101
- else if (flag === "r") reference = value;
175
+ else if (flag === "r") {
176
+ reference = value;
177
+ epochReference = true;
178
+ } else if (flag === "v") adjustments.push(parseAdjustment(value));
102
179
  else file = value;
103
180
  break;
104
- } else if (flag === "s") throw new CommandFailure("setting clocks is unsupported");
105
- else throw new CommandFailure(`unsupported option: -${flag}`);
181
+ } else if (flag === "s") throw new CommandFailure2("setting clocks is unsupported");
182
+ else throw new CommandFailure2(`unsupported option: -${flag}`);
106
183
  }
107
184
  } else {
108
- if (!argument.startsWith("+")) throw new CommandFailure("expected +FORMAT; clock-setting operands are unsupported");
109
- if (format !== void 0) throw new CommandFailure("extra format operand");
185
+ if (!argument.startsWith("+")) throw new CommandFailure2("expected +FORMAT; clock-setting operands are unsupported");
186
+ if (format !== void 0) throw new CommandFailure2("extra format operand");
110
187
  format = argument.slice(1);
111
188
  }
112
189
  }
113
- if (input !== void 0 && reference !== void 0) throw new CommandFailure("--date and --reference are mutually exclusive");
114
- if (file !== void 0 && (input !== void 0 || reference !== void 0)) throw new CommandFailure("--file, --date and --reference are mutually exclusive");
115
- if (format !== void 0 && style !== void 0) throw new CommandFailure("multiple output formats specified");
190
+ if (input !== void 0 && reference !== void 0) throw new CommandFailure2("--date and --reference are mutually exclusive");
191
+ if (file !== void 0 && (input !== void 0 || reference !== void 0)) throw new CommandFailure2("--file, --date and --reference are mutually exclusive");
192
+ if (format !== void 0 && style !== void 0) throw new CommandFailure2("multiple output formats specified");
116
193
  return {
117
194
  utc,
195
+ epochReference,
196
+ adjustments,
118
197
  format: format ?? style ?? "%a %b %e %T %Z %Y",
119
198
  ...input === void 0 ? {} : { input },
120
199
  ...reference === void 0 ? {} : { reference },
@@ -122,14 +201,14 @@ function parseArguments(args) {
122
201
  };
123
202
  }
124
203
  function createDateWithSettings(configuration) {
125
- new TimeZone(configuration.defaultTimeZone);
204
+ new TimeZone2(configuration.defaultTimeZone);
126
205
  return command("date", configuration, async (context) => {
127
206
  const parsed = parseArguments(context.args);
128
207
  if (parsed.informational) {
129
- await emit(context, parsed.informational === "version" ? "date (safe-bash virtual command)\n" : "Usage: date [-u] [-d DATE | -r FILE | -f FILE] [+FORMAT]\n-f, --file=FILE reads one date per line; FILE - reads stdin.\nAlso: -I[date|hours|minutes|seconds|ns], -R, --rfc-3339=PRECISION\nDATE accepts @seconds, ISO calendar/time, RFC dates, now/today/yesterday/tomorrow, and integer seconds/minutes/hours relative to now.\nVirtual TZ defaults to UTC; no clock setting or host-locale parsing.\n", configuration.limits);
208
+ await emit(context, parsed.informational === "version" ? "date (safe-bash virtual command)\n" : "Usage: date [-uj] [-d DATE | -r FILE_OR_SECONDS | -f FILE] [-v[+|-]VALUE[ymwdHMS]] [+FORMAT]\n-f, --file=FILE reads one date per line; FILE - reads stdin.\nAlso: -I[date|hours|minutes|seconds|ns], -R, --rfc-3339=PRECISION\nDATE accepts @seconds, ISO calendar/time, RFC dates, now/today/yesterday/tomorrow, and integer seconds/minutes/hours relative to now.\nVirtual TZ defaults to UTC; no clock setting or host-locale parsing.\n", configuration.limits);
130
209
  return 0;
131
210
  }
132
- const zone = new TimeZone(parsed.utc ? "UTC" : ownEnvironment(context, "TZ") ?? configuration.defaultTimeZone);
211
+ const zone = new TimeZone2(parsed.utc ? "UTC" : ownEnvironment(context, "TZ") ?? configuration.defaultTimeZone);
133
212
  let current;
134
213
  const now = () => current ??= millisecondsInstant(configuration.clock());
135
214
  if (parsed.file !== void 0) {
@@ -139,7 +218,7 @@ function createDateWithSettings(configuration) {
139
218
  yield* fileInput(context, parsed.file);
140
219
  } catch (error) {
141
220
  context.signal.throwIfAborted();
142
- if (error instanceof FsError && error.code !== "EFBIG") throw new CommandFailure(error.message);
221
+ if (error instanceof FsError && error.code !== "EFBIG") throw new CommandFailure2(error.message);
143
222
  throw error;
144
223
  }
145
224
  };
@@ -153,13 +232,13 @@ function createDateWithSettings(configuration) {
153
232
  instant2 = parseDate(new TextDecoder().decode(line.bytes), zone, now);
154
233
  } catch (error) {
155
234
  context.signal.throwIfAborted();
156
- if (!(error instanceof CommandFailure)) throw error;
235
+ if (!(error instanceof CommandFailure2)) throw error;
157
236
  await writeDiagnostic(context.stderr, `date: ${error.message}
158
237
  `, context.signal);
159
238
  exitCode = 1;
160
239
  continue;
161
240
  }
162
- const value = formatDate(parsed.format, instant2, zone, configuration.limits);
241
+ const value = formatDate(parsed.format, adjustDate(instant2, parsed.adjustments ?? [], zone), zone, configuration.limits);
163
242
  outputBytes += utf8ByteLength(value);
164
243
  checkSize(outputBytes, configuration.limits.maxOutputBytes, "output");
165
244
  await emit(context, value, configuration.limits);
@@ -175,11 +254,15 @@ function createDateWithSettings(configuration) {
175
254
  instant = millisecondsInstant(stat.mtimeMs);
176
255
  } catch (error) {
177
256
  context.signal.throwIfAborted();
178
- if (error instanceof FsError) throw new CommandFailure(error.message);
179
- throw error;
257
+ if (error instanceof FsError && error.code === "ENOENT" && parsed.epochReference && isEpochSeconds(parsed.reference)) {
258
+ instant = parseDate("@" + parsed.reference, zone, now);
259
+ } else {
260
+ if (error instanceof FsError) throw new CommandFailure2(error.message);
261
+ throw error;
262
+ }
180
263
  }
181
264
  } else instant = parsed.input === void 0 ? now() : parseDate(parsed.input, zone, now);
182
- await emit(context, formatDate(parsed.format, instant, zone, configuration.limits), configuration.limits);
265
+ await emit(context, formatDate(parsed.format, adjustDate(instant, parsed.adjustments ?? [], zone), zone, configuration.limits), configuration.limits);
183
266
  return 0;
184
267
  });
185
268
  }
@@ -205,7 +288,7 @@ function evalSyncDate(args, tzEnv, execFn, readFileSync, statMtimeMsSync, stdinB
205
288
  if (parsed.informational) {
206
289
  return void 0;
207
290
  }
208
- const zone = new TimeZone(parsed.utc ? "UTC" : tzEnv ?? cfg?.defaultTimeZone ?? "UTC");
291
+ const zone = new TimeZone2(parsed.utc ? "UTC" : tzEnv ?? cfg?.defaultTimeZone ?? "UTC");
209
292
  const clock = cfg?.clock ?? Date.now;
210
293
  let current;
211
294
  const now = () => current ??= millisecondsInstant(clock());
@@ -218,7 +301,7 @@ function evalSyncDate(args, tzEnv, execFn, readFileSync, statMtimeMsSync, stdinB
218
301
  for (const line of rawLines) {
219
302
  if (utf8ByteLength(line) > limits.maxArgumentBytes) return void 0;
220
303
  const inst = parseDate(line, zone, now);
221
- out2 += formatDate(parsed.format, inst, zone, limits);
304
+ out2 += formatDate(parsed.format, adjustDate(inst, parsed.adjustments ?? [], zone), zone, limits);
222
305
  if (utf8ByteLength(out2) > limits.maxOutputBytes) return void 0;
223
306
  }
224
307
  return out2;
@@ -232,7 +315,7 @@ function evalSyncDate(args, tzEnv, execFn, readFileSync, statMtimeMsSync, stdinB
232
315
  } else {
233
316
  instant = parsed.input === void 0 ? now() : parseDate(parsed.input, zone, now);
234
317
  }
235
- const out = formatDate(parsed.format, instant, zone, limits);
318
+ const out = formatDate(parsed.format, adjustDate(instant, parsed.adjustments ?? [], zone), zone, limits);
236
319
  if (utf8ByteLength(out) > limits.maxOutputBytes) return void 0;
237
320
  return out;
238
321
  } catch {
@@ -68,6 +68,7 @@ var functions = Object.freeze({
68
68
  fromdateiso8601: [0],
69
69
  todateiso8601: [0],
70
70
  strftime: [1],
71
+ strflocaltime: [1],
71
72
  strptime: [1],
72
73
  gmtime: [0],
73
74
  mktime: [0],
@@ -764,7 +764,7 @@ function createLlmTemplateStore(context, loaders) {
764
764
  if (name.startsWith("https://") || name.startsWith("http://")) {
765
765
  const fetch = context.fetch ?? context.capabilities?.fetch;
766
766
  if (!fetch) throw new Error("Template URL loading is not configured");
767
- if (!loaders || !Number.isSafeInteger(loaders.maxRemoteBytes) || loaders.maxRemoteBytes < 1) throw new Error("Template URL byte limit is not configured");
767
+ if (!loaders || loaders.maxRemoteBytes !== Infinity && (!Number.isSafeInteger(loaders.maxRemoteBytes) || loaders.maxRemoteBytes < 1)) throw new Error("Template URL byte limit is not configured");
768
768
  let response, failed = false;
769
769
  let reader;
770
770
  const abort = () => {
@@ -2185,6 +2185,7 @@ ${args.prompt}` : evaluated.prompt;
2185
2185
  }
2186
2186
  function createLlmCommand(options = {}) {
2187
2187
  for (const [name, value] of Object.entries(options.limits ?? {})) {
2188
+ if (value === void 0 || value === Infinity) continue;
2188
2189
  if (!Number.isSafeInteger(value) || value < 0) throw new TypeError(`Invalid llm limit: ${name}`);
2189
2190
  }
2190
2191
  const limits = options.limits === void 0 ? void 0 : Object.freeze({ ...options.limits });
@@ -53,7 +53,8 @@ function parse(args) {
53
53
  } else throw new UsageError(`unrecognized option '${argument}'`);
54
54
  }
55
55
  if (operands.length > 1) throw new UsageError("too many templates");
56
- const template = operands[0] ?? "tmp.XXXXXXXXXX";
56
+ let template = operands[0] ?? "tmp.XXXXXXXXXX";
57
+ if (deprecatedTmpdir && !template.includes("XXX")) template += ".XXXXXXXXXX";
57
58
  if (operands.length === 0) useTmpdir = true;
58
59
  validatePath(template);
59
60
  if (deprecatedTmpdir && template.includes("/")) throw new UsageError("template contains directory separator");
@@ -137,6 +138,15 @@ function createMktempCommand(configuration = {}) {
137
138
  const capabilities = await context.fs.capabilitiesFor?.(path, { signal: context.signal }) ?? context.fs.capabilities;
138
139
  if (capabilities.readOnly === true) throw new FsError("EROFS", { syscall: "mktemp" });
139
140
  if (capabilities.permissions !== true) throw new FsError("ENOTSUP", { syscall: "mktemp", message: "private temporary creation requires declared permission support" });
141
+ if (parsed.useTmpdir && parent === "/tmp" && !parsed.tmpdir && !context.env.TMPDIR) {
142
+ try {
143
+ await context.fs.stat(parent, { signal: context.signal });
144
+ } catch (error) {
145
+ context.signal.throwIfAborted();
146
+ if (codeOf(error) !== "ENOENT") throw error;
147
+ await context.fs.mkdir(parent, { recursive: true, mode: 511, signal: context.signal });
148
+ }
149
+ }
140
150
  try {
141
151
  const mask = configuredUmask ?? Reflect.get(context.fs, creationUmask);
142
152
  const activeUmask = typeof mask === "number" ? mask : configured.umask;