@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
@@ -0,0 +1,328 @@
1
+ import {
2
+ init_buffer
3
+ } from "../safe-bash/command-chunks/chunk-HX3SHTCE.js";
4
+
5
+ // packages/safe-bash-command-node/src/index.ts
6
+ init_buffer();
7
+ import { newQuickJSAsyncWASMModule } from "quickjs-emscripten";
8
+ import { collectBytes, resolvePath, dirname, posixPath } from "@poe-platform/safe-fs/core";
9
+
10
+ // packages/safe-bash-command-node/src/runtime.ts
11
+ init_buffer();
12
+ var bootstrap = String.raw`
13
+ (() => {
14
+ const bridge = globalThis.__host;
15
+ delete globalThis.__host;
16
+ const call = (op, ...args) => {
17
+ const result = JSON.parse(bridge(op, JSON.stringify(args)));
18
+ if (result.error) throw Object.assign(new Error(result.error.message), {code: result.error.code});
19
+ return result.value;
20
+ };
21
+ const encoding = value => {
22
+ if (value !== undefined && value !== 'utf8' && value !== 'utf-8') throw new Error('Only UTF-8 encoding is supported');
23
+ return value;
24
+ };
25
+ globalThis.Buffer = class Buffer extends Uint8Array {
26
+ static from(value, enc) { encoding(enc); return new Buffer(typeof value === 'string' ? call('encode', value) : value); }
27
+ static alloc(size) { return new Buffer(size); }
28
+ static isBuffer(value) { return value instanceof Buffer; }
29
+ toString(enc = 'utf8') { encoding(enc); return call('decode', Array.from(this)); }
30
+ };
31
+ const fileEncoding = options => {
32
+ if (options !== null && typeof options === 'object') {
33
+ for (const key of Object.keys(options)) if (key !== 'encoding') throw new Error('Unsupported fs option: ' + key);
34
+ options = options.encoding;
35
+ }
36
+ return encoding(options);
37
+ };
38
+ const fs = {
39
+ readFileSync(path, enc) { enc = fileEncoding(enc); const bytes = Buffer.from(call('read', path)); return enc ? bytes.toString(enc) : bytes; },
40
+ writeFileSync(path, data, enc) { fileEncoding(enc); call('write', path, Array.from(Buffer.from(data))); },
41
+ existsSync(path) { try { call('stat', path); return true; } catch (e) { if (e.code === 'ENOENT' || e.code === 'ENOTDIR') return false; throw e; } },
42
+ statSync(path) { const stat = call('stat', path); return {...stat, isFile: () => stat.type === 'file', isDirectory: () => stat.type === 'directory', isSymbolicLink: () => stat.type === 'symlink'}; },
43
+ mkdirSync(path, options = {}) { call('mkdir', path, options.recursive === true); },
44
+ };
45
+ const childResult = (command, args, options = {}) => {
46
+ for (const key of Object.keys(options)) if (key !== 'encoding') throw new Error('Unsupported child_process option: ' + key);
47
+ encoding(options.encoding);
48
+ const result = call('exec', command, args);
49
+ const stdout = Buffer.from(result.bytes);
50
+ if (result.status !== 0) throw Object.assign(new Error('Command failed: ' + command), {status: result.status, stdout});
51
+ return options.encoding ? stdout.toString(options.encoding) : stdout;
52
+ };
53
+ const child = {
54
+ execSync(command, options) { return childResult('sh', ['-c', command], options); },
55
+ execFileSync(command, args = [], options) { return childResult(command, args, options); },
56
+ };
57
+ function __setup(config) {
58
+ globalThis.process = {argv: config.argv, env: config.env, cwd: () => config.cwd, exitCode: 0,
59
+ stdout: {write: value => {call('output', String(value), false); return true;}},
60
+ stderr: {write: value => {call('output', String(value), true); return true;}},
61
+ };
62
+ globalThis.console = {
63
+ log: (...values) => call('output', values.map(String).join(' ') + '\n', false),
64
+ error: (...values) => call('output', values.map(String).join(' ') + '\n', true),
65
+ };
66
+ const path = {sep:'/', delimiter:':',
67
+ resolve: (...parts) => parts.reduce((base, part) => call('resolve', base, part), config.cwd),
68
+ dirname: value => call('dirname', value),
69
+ join: (...parts) => call('path', 'join', ...parts),
70
+ basename: value => call('path', 'basename', value),
71
+ extname: value => call('path', 'extname', value),
72
+ };
73
+ path.posix = path;
74
+ const cache = new Map();
75
+ const load = base => name => {
76
+ if (typeof name !== 'string') throw new TypeError('Module name must be a string');
77
+ const builtin = name.startsWith('node:') ? name.slice(5) : name;
78
+ if (builtin === 'fs') return fs;
79
+ if (builtin === 'child_process') return child;
80
+ if (builtin === 'path') return path;
81
+ if (!(name.startsWith('./') || name.startsWith('../') || name.startsWith('/'))) throw new Error('Unsupported module: ' + name);
82
+ const filename = call('resolve', base, name);
83
+ if (cache.has(filename)) return cache.get(filename).exports;
84
+ const source = call('source', filename);
85
+ const module = {exports:{}};
86
+ cache.set(filename, module);
87
+ try {
88
+ if (filename.endsWith('.json')) module.exports = JSON.parse(source);
89
+ else new Function('exports', 'require', 'module', '__filename', '__dirname', source)(module.exports, load(path.dirname(filename)), module, filename, path.dirname(filename));
90
+ return module.exports;
91
+ } catch (e) { cache.delete(filename); throw e; }
92
+ };
93
+ globalThis.__filename = config.filename;
94
+ globalThis.__dirname = config.filename.startsWith('/') ? path.dirname(config.filename) : config.cwd;
95
+ globalThis.require = load(__dirname);
96
+ globalThis.module = {exports:{}};
97
+ globalThis.exports = module.exports;
98
+ }
99
+ return __setup;
100
+ })()
101
+ `;
102
+
103
+ // packages/safe-bash-command-node/src/index.ts
104
+ var defaults = { memoryBytes: 32 * 1024 * 1024, sourceBytes: 1024 * 1024, outputBytes: 1024 * 1024, fileBytes: 4 * 1024 * 1024, operations: 1e3, timeoutMs: 5e3 };
105
+ var encoder = new TextEncoder();
106
+ var decoder = new TextDecoder();
107
+ function createNodeCommand(options = {}) {
108
+ const limits = { ...defaults, ...options.limits };
109
+ for (const [key, value] of Object.entries(limits)) {
110
+ if (!Object.hasOwn(defaults, key) || !Number.isSafeInteger(value) || value <= 0) throw new TypeError(`Invalid node limit: ${key}`);
111
+ }
112
+ return { name: "node", description: "Execute JavaScript in QuickJS with safe-fs and safe-bash", async execute(context) {
113
+ const controller = new AbortController();
114
+ const signal = AbortSignal.any([context.signal, controller.signal]);
115
+ const timeout = setTimeout(() => controller.abort(new Error("Node execution deadline exceeded")), limits.timeoutMs);
116
+ const deadline = Date.now() + limits.timeoutMs;
117
+ let closeRequested = false;
118
+ let completed;
119
+ const completion = new Promise((resolve) => {
120
+ completed = resolve;
121
+ });
122
+ context.registerCleanup?.(async () => {
123
+ closeRequested = true;
124
+ controller.abort();
125
+ await completion;
126
+ });
127
+ let vm;
128
+ let outputBytes = 0;
129
+ let sourceBytes = 0;
130
+ let operations = 0;
131
+ let limitFailure;
132
+ const check = () => {
133
+ signal.throwIfAborted();
134
+ if (closeRequested || Date.now() > deadline) throw new Error("Node execution deadline exceeded");
135
+ if (limitFailure) throw limitFailure;
136
+ };
137
+ const bound = (size, max, name) => {
138
+ if (size > max) {
139
+ limitFailure = new Error(`Node ${name} limit exceeded`);
140
+ throw limitFailure;
141
+ }
142
+ };
143
+ const path = (value) => {
144
+ if (typeof value !== "string" || value.includes("\0")) throw new TypeError("Expected a virtual path");
145
+ return resolvePath(context.cwd, value);
146
+ };
147
+ const fs = context.fs;
148
+ const read = async (name, source = false) => {
149
+ check();
150
+ const bytes = await fs.readFile(path(name), { signal, maxBytes: source ? limits.sourceBytes - sourceBytes : limits.fileBytes });
151
+ bound(bytes.length, source ? limits.sourceBytes - sourceBytes : limits.fileBytes, source ? "source" : "file");
152
+ if (source) sourceBytes += bytes.length;
153
+ return bytes;
154
+ };
155
+ const emit = async (value, stderr) => {
156
+ const bytes = typeof value === "string" ? encoder.encode(value) : value;
157
+ outputBytes += bytes.length;
158
+ bound(outputBytes, limits.outputBytes, "output");
159
+ await (stderr ? context.stderr : context.stdout).write(bytes);
160
+ check();
161
+ };
162
+ try {
163
+ const args = [...context.args];
164
+ let source;
165
+ let filename = "[stdin]";
166
+ let print = false;
167
+ const flag = args[0];
168
+ if (flag === "-e" || flag === "--eval" || flag === "-p" || flag === "--print") {
169
+ args.shift();
170
+ if (args.length === 0) throw new Error(`${flag} requires source`);
171
+ source = args.shift();
172
+ print = flag === "-p" || flag === "--print";
173
+ filename = "[eval]";
174
+ } else {
175
+ if (flag === "--") args.shift();
176
+ if (args[0]?.startsWith("-") && args[0] !== "-") throw new Error(`Unsupported node option: ${args[0]}`);
177
+ const file = args.shift();
178
+ if (file && file !== "-") {
179
+ filename = path(file);
180
+ source = decoder.decode(await read(filename, true));
181
+ } else source = decoder.decode(await collectBytes(context.stdin, { signal, maxBytes: limits.sourceBytes }));
182
+ }
183
+ if (filename[0] === "[") sourceBytes = encoder.encode(source).length;
184
+ bound(sourceBytes, limits.sourceBytes, "source");
185
+ if (source.startsWith("#!")) {
186
+ const end = source.indexOf("\n");
187
+ source = end < 0 ? "" : source.slice(end);
188
+ }
189
+ check();
190
+ const engine = await newQuickJSAsyncWASMModule();
191
+ const contextVm = engine.newContext();
192
+ vm = contextVm;
193
+ vm.runtime.setMemoryLimit(limits.memoryBytes);
194
+ vm.runtime.setMaxStackSize(512 * 1024);
195
+ vm.runtime.setInterruptHandler(() => signal.aborted || closeRequested || Date.now() > deadline || !!limitFailure);
196
+ const host = contextVm.newAsyncifiedFunction("__host", async (operation, payload) => {
197
+ try {
198
+ check();
199
+ bound(++operations, limits.operations, "operations");
200
+ const op = contextVm.getString(operation);
201
+ const values = JSON.parse(contextVm.getString(payload));
202
+ let value = null;
203
+ switch (op) {
204
+ case "read":
205
+ value = Array.from(await read(values[0]));
206
+ break;
207
+ case "source":
208
+ value = decoder.decode(await read(values[0], true));
209
+ break;
210
+ case "write": {
211
+ if (!Array.isArray(values[1]) || !values[1].every((n) => Number.isInteger(n) && n >= 0 && n <= 255)) throw new TypeError("Expected bytes");
212
+ bound(values[1].length, limits.fileBytes, "file");
213
+ await fs.writeFile(path(values[0]), new Uint8Array(values[1]), { signal });
214
+ break;
215
+ }
216
+ case "stat": {
217
+ const stat = await fs.stat(path(values[0]), { signal });
218
+ value = { type: stat.type, size: stat.size };
219
+ break;
220
+ }
221
+ case "mkdir":
222
+ await fs.mkdir(path(values[0]), { signal, recursive: values[1] === true });
223
+ break;
224
+ case "output":
225
+ await emit(String(values[0]), values[1] === true);
226
+ break;
227
+ case "encode":
228
+ value = Array.from(encoder.encode(String(values[0])));
229
+ break;
230
+ case "decode":
231
+ value = decoder.decode(new Uint8Array(values[0]));
232
+ break;
233
+ case "resolve":
234
+ value = resolvePath(String(values[0]), String(values[1]));
235
+ break;
236
+ case "dirname":
237
+ value = dirname(String(values[0]));
238
+ break;
239
+ case "path": {
240
+ const method = values[0];
241
+ if (method === "join") value = posixPath.join(...values.slice(1));
242
+ else if (method === "basename") value = posixPath.basename(String(values[1]));
243
+ else if (method === "extname") value = posixPath.extname(String(values[1]));
244
+ else throw new Error("Unsupported path operation");
245
+ break;
246
+ }
247
+ case "exec": {
248
+ if (!context.invoke) throw new Error("safe-bash command dispatch unavailable");
249
+ if (typeof values[0] !== "string" || !Array.isArray(values[1]) || !values[1].every((v) => typeof v === "string")) throw new TypeError("Expected command and string argv");
250
+ const chunks = [];
251
+ let total = 0;
252
+ const result2 = await context.invoke(values[0], values[1], {
253
+ signal,
254
+ stdin: { async *[Symbol.asyncIterator]() {
255
+ } },
256
+ stdout: { async write(bytes2) {
257
+ total += bytes2.length;
258
+ bound(total, limits.outputBytes, "child output");
259
+ chunks.push(new Uint8Array(bytes2));
260
+ } },
261
+ stderr: { async write(bytes2) {
262
+ await emit(bytes2, true);
263
+ } }
264
+ });
265
+ const bytes = new Uint8Array(total);
266
+ let offset = 0;
267
+ for (const chunk of chunks) {
268
+ bytes.set(chunk, offset);
269
+ offset += chunk.length;
270
+ }
271
+ value = { status: result2.exitCode, bytes: Array.from(bytes) };
272
+ break;
273
+ }
274
+ default:
275
+ throw new Error("Unsupported host operation");
276
+ }
277
+ check();
278
+ return contextVm.newString(JSON.stringify({ value }));
279
+ } catch (error) {
280
+ const failure = error;
281
+ return contextVm.newString(JSON.stringify({ error: { message: failure?.message ?? String(error), code: failure?.code } }));
282
+ }
283
+ });
284
+ vm.setProp(vm.global, "__host", host);
285
+ host.dispose();
286
+ const configuration = JSON.stringify({ cwd: context.cwd, env: context.env, argv: ["/virtual/bin/node", ...filename === "[eval]" ? [] : [filename], ...args], filename });
287
+ const setup = await vm.evalCodeAsync(`${bootstrap}(${configuration});`, "safe-bash-node");
288
+ vm.unwrapResult(setup).dispose();
289
+ const result = await vm.evalCodeAsync(print ? `console.log((${source}
290
+ ))` : source, filename);
291
+ vm.unwrapResult(result).dispose();
292
+ check();
293
+ if (vm.runtime.hasPendingJob()) throw new Error("Asynchronous jobs are unsupported by this Node profile");
294
+ const exit = vm.unwrapResult(await vm.evalCodeAsync("process.exitCode", "exitCode"));
295
+ const exitCode = vm.getNumber(exit);
296
+ exit.dispose();
297
+ if (!Number.isInteger(exitCode) || exitCode < 0 || exitCode > 255) throw new Error("Invalid process.exitCode");
298
+ return { exitCode };
299
+ } catch (error) {
300
+ context.signal.throwIfAborted();
301
+ const message = error instanceof Error ? error.message : JSON.stringify(error);
302
+ await context.stderr.write(encoder.encode(`node: ${message}
303
+ `).slice(0, limits.outputBytes));
304
+ return { exitCode: 1 };
305
+ } finally {
306
+ clearTimeout(timeout);
307
+ try {
308
+ if (vm?.alive) vm.dispose();
309
+ } finally {
310
+ completed();
311
+ }
312
+ }
313
+ } };
314
+ }
315
+ function createNodeCommands(options = {}) {
316
+ return [createNodeCommand(options)];
317
+ }
318
+ function nodeCommands(options = {}) {
319
+ const command = createNodeCommand(options);
320
+ return { name: "quickjs-node", setup(host) {
321
+ host.commands.register(command, { replace: options.replace ?? false });
322
+ } };
323
+ }
324
+ export {
325
+ createNodeCommand,
326
+ createNodeCommands,
327
+ nodeCommands
328
+ };
@@ -2516,6 +2516,7 @@ function numfmtCommand(options = {}) {
2516
2516
  if (item.done) break;
2517
2517
  if (item.value.length > limits.maxSingleChunkBytes || item.value.length > limits.maxInputBytes - received) throw new PublicDiagnostic("byte command input limit exceeded");
2518
2518
  received += item.value.length;
2519
+ context.inputBudget?.check(received);
2519
2520
  if (!item.value.length && ++empty > limits.maxEmptyChunks) throw new PublicDiagnostic("empty input chunk limit exceeded");
2520
2521
  const chunk = new Uint8Array(item.value);
2521
2522
  const sepByte = settings2.separator.charCodeAt(0);
@@ -371,7 +371,6 @@ function formats(text) {
371
371
  offset++;
372
372
  }
373
373
  result.push({ kind, size, ...printable ? { printable: true } : {} });
374
- if (result.length > 16) throw new UsageError("at most 16 output types are supported");
375
374
  }
376
375
  if (!result.length) throw new UsageError("empty output type");
377
376
  return result;
@@ -639,24 +638,28 @@ function createOdCommand(optionsOrMaxBytes) {
639
638
  "little"
640
639
  );
641
640
  const selected = (parsed.values.get("t") ?? ["o2"]).flatMap(formats);
642
- const width = validatedOption(
641
+ const requestedWidth = validatedOption(
643
642
  parsed,
644
643
  "w",
645
644
  (text) => {
646
645
  const number = numeric(text);
647
- if (number < 1 || selected.some((format) => number % format.size !== 0)) {
648
- throw new UsageError("width must be positive and a multiple of each output type size");
649
- }
646
+ if (number < 1) throw new UsageError("width must be positive");
650
647
  return number;
651
648
  },
652
649
  16
653
650
  );
651
+ const alignment = selected.reduce((size, format) => Math.max(size, format.size), 1);
652
+ const width = requestedWidth % alignment === 0 ? requestedWidth : alignment;
653
+ if (width !== requestedWidth) {
654
+ await writeDiagnostic(context.stderr, `${context.command}: warning: invalid width ${requestedWidth}; using ${width} instead
655
+ `, context.signal);
656
+ }
654
657
  const skip = validatedOption(parsed, "j", (text) => numeric(text, true), 0);
655
658
  const count = validatedOption(parsed, "N", (text) => numeric(text, true), Infinity);
656
659
  if (count === 0 && skip === 0 && parsed.operands[0] && parsed.operands[0] !== "-") {
657
660
  await context.fs.stat(pathOf(context, parsed.operands[0]), { signal: context.signal });
658
661
  }
659
- const charsPerByte = Math.max(...selected.map((format) => (fieldWidth(format) + 1) / format.size));
662
+ const charsPerByte = selected.reduce((width2, format) => Math.max(width2, (fieldWidth(format) + 1) / format.size), 0);
660
663
  const minimumStringLength = validatedOption(
661
664
  parsed,
662
665
  "S",
@@ -740,6 +743,7 @@ function createOdCommand(optionsOrMaxBytes) {
740
743
  offset = addOffset(offset, row.length);
741
744
  if (!flushedFirst && outBuf || outBuf.length >= 16384) await flushOut();
742
745
  }
746
+ await flushOut();
743
747
  }
744
748
  } finally {
745
749
  await flushOut();
@@ -4,10 +4,11 @@ import {
4
4
 
5
5
  // packages/safe-bash-command-op/src/index.ts
6
6
  init_buffer();
7
+ import { builtInDirectContextExecutors, syncCommandEvaluators } from "../safe-bash-contracts/runtime-control.js";
7
8
 
8
9
  // packages/safe-bash-command-op/src/cli.ts
9
10
  init_buffer();
10
- import { isFsError } from "@poe-platform/safe-fs/core";
11
+ import { isFsError, listenForAbort as listenForAbort4 } from "@poe-platform/safe-fs/core";
11
12
  import { InputByteBudget } from "../safe-bash-contracts/io.js";
12
13
 
13
14
  // packages/safe-bash-command-op/src/encoding.ts
@@ -1764,6 +1765,7 @@ function changeVaultPermissions(current, requested, action) {
1764
1765
 
1765
1766
  // packages/safe-bash-command-op/src/plugin-scopes.ts
1766
1767
  init_buffer();
1768
+ import { listenForAbort } from "@poe-platform/safe-fs/core";
1767
1769
  function object(value) {
1768
1770
  return typeof value === "object" && value !== null && !Array.isArray(value);
1769
1771
  }
@@ -1845,10 +1847,10 @@ async function clearPluginDefaults(plugin, context, all, force) {
1845
1847
  const confirm = context.confirmPluginClear;
1846
1848
  if (!confirm) throw new Error("Plugin clear confirmation capability is unavailable");
1847
1849
  const confirmation = Object.freeze({ pluginId: plugin.id, defaults: Object.freeze(selected.map(({ entry }) => Object.freeze({ id: entry.id, scope: Object.freeze({ ...entry.scope }) }))) });
1848
- let onAbort;
1850
+ let disposeAbort;
1849
1851
  const aborted = new Promise((_resolve, reject) => {
1850
- onAbort = () => reject(new DOMException("Plugin clear aborted", "AbortError"));
1851
- context.signal.addEventListener("abort", onAbort, { once: true });
1852
+ const onAbort = () => reject(new DOMException("Plugin clear aborted", "AbortError"));
1853
+ disposeAbort = listenForAbort(context.signal, onAbort);
1852
1854
  if (context.signal.aborted) onAbort();
1853
1855
  });
1854
1856
  let accepted;
@@ -1861,7 +1863,7 @@ async function clearPluginDefaults(plugin, context, all, force) {
1861
1863
  if (context.signal.aborted) throw new DOMException("Plugin clear aborted", "AbortError");
1862
1864
  throw new Error("Plugin clear confirmation failed");
1863
1865
  } finally {
1864
- context.signal.removeEventListener("abort", onAbort);
1866
+ disposeAbort?.();
1865
1867
  }
1866
1868
  if (accepted !== true) throw new Error("Plugin clear was not confirmed");
1867
1869
  }
@@ -2388,9 +2390,11 @@ function listItemTemplates(templates = []) {
2388
2390
 
2389
2391
  // packages/safe-bash-command-op/src/bindings.ts
2390
2392
  init_buffer();
2393
+ import { listenForAbort as listenForAbort3 } from "@poe-platform/safe-fs/core";
2391
2394
 
2392
2395
  // packages/safe-bash-command-op/src/plugin-selection.ts
2393
2396
  init_buffer();
2397
+ import { listenForAbort as listenForAbort2 } from "@poe-platform/safe-fs/core";
2394
2398
  async function selectPluginId(plugins, context, accountId) {
2395
2399
  const { signal, selectPlugin } = context;
2396
2400
  signal.throwIfAborted();
@@ -2399,13 +2403,12 @@ async function selectPluginId(plugins, context, accountId) {
2399
2403
  const id = plugin.executable ?? plugin.id;
2400
2404
  return id === void 0 ? [] : [Object.freeze({ id, name: plugin.plugin_name ?? plugin.name ?? id })];
2401
2405
  }));
2402
- let abort;
2406
+ let disposeAbort;
2403
2407
  let selected;
2404
2408
  try {
2405
2409
  selected = await Promise.race([
2406
2410
  new Promise((_resolve, reject) => {
2407
- abort = () => reject(new Error("Plugin selection cancelled"));
2408
- signal.addEventListener("abort", abort, { once: true });
2411
+ disposeAbort = listenForAbort2(signal, () => reject(new Error("Plugin selection cancelled")));
2409
2412
  }),
2410
2413
  Promise.resolve().then(() => {
2411
2414
  signal.throwIfAborted();
@@ -2417,7 +2420,7 @@ async function selectPluginId(plugins, context, accountId) {
2417
2420
  signal.throwIfAborted();
2418
2421
  throw new Error("Plugin selection failed");
2419
2422
  } finally {
2420
- signal.removeEventListener("abort", abort);
2423
+ disposeAbort?.();
2421
2424
  }
2422
2425
  if (selected === void 0) throw new Error("Plugin selection cancelled");
2423
2426
  if (typeof selected !== "string" || !candidates.some((candidate) => candidate.id === selected)) throw new Error("Invalid plugin selection");
@@ -2522,7 +2525,8 @@ function createBindingManager(source, policy, clock, hasHook, defaultVault) {
2522
2525
  binding.cancelled = true;
2523
2526
  delete binding.staged;
2524
2527
  binding.steps = [];
2525
- binding.signal.removeEventListener("abort", binding.abort);
2528
+ binding.disposeAbort?.();
2529
+ delete binding.disposeAbort;
2526
2530
  }
2527
2531
  function validate(handle, context) {
2528
2532
  const binding = bindings.get(handle);
@@ -2542,7 +2546,7 @@ function createBindingManager(source, policy, clock, hasHook, defaultVault) {
2542
2546
  return {
2543
2547
  async prepareBinding(requests, context) {
2544
2548
  context.signal.throwIfAborted();
2545
- if (context.binding || requests.length > 1024) throw new Error("Invalid binding plan");
2549
+ if (context.binding) throw new Error("Invalid binding plan");
2546
2550
  context = Object.freeze({
2547
2551
  ...context,
2548
2552
  ...context.authentication === void 0 ? {} : { authentication: structuredClone(context.authentication) },
@@ -2550,8 +2554,8 @@ function createBindingManager(source, policy, clock, hasHook, defaultVault) {
2550
2554
  });
2551
2555
  const preparedGeneration = generation;
2552
2556
  const now = clock.now();
2553
- const expiresAt = context.expiresAt ?? now + 6e4;
2554
- if (!Number.isFinite(now) || !Number.isFinite(expiresAt) || expiresAt <= now) throw new Error("Invalid binding deadline");
2557
+ const expiresAt = context.expiresAt ?? Infinity;
2558
+ if (!Number.isFinite(now) || expiresAt !== Infinity && !Number.isFinite(expiresAt) || expiresAt <= now) throw new Error("Invalid binding deadline");
2555
2559
  const targets = [];
2556
2560
  const requestMetadata = requests.map(() => Object.freeze({}));
2557
2561
  const accounts = /* @__PURE__ */ new Set();
@@ -2686,9 +2690,9 @@ function createBindingManager(source, policy, clock, hasHook, defaultVault) {
2686
2690
  if (generation !== preparedGeneration) throw invalid();
2687
2691
  if (accounts.size > 1) throw new Error("A binding requires one account scope");
2688
2692
  const handle = Object.freeze({});
2689
- const binding = { generation, expiresAt, signal: context.signal, authentication: structuredClone(context.authentication), pluginScope: structuredClone(context.pluginScope), steps, cancelled: false, queue: Promise.resolve(), abort: () => cancel(binding) };
2693
+ const binding = { generation, expiresAt, signal: context.signal, authentication: structuredClone(context.authentication), pluginScope: structuredClone(context.pluginScope), steps, cancelled: false, queue: Promise.resolve() };
2690
2694
  bindings.set(handle, binding);
2691
- context.signal.addEventListener("abort", binding.abort, { once: true });
2695
+ if (steps.length) binding.disposeAbort = listenForAbort3(context.signal, () => cancel(binding));
2692
2696
  validate(handle, context);
2693
2697
  return Object.freeze({ backendId, accountId: accounts.values().next().value ?? null, handle, targets: Object.freeze(targets), metadata: Object.freeze(requestMetadata) });
2694
2698
  },
@@ -2733,6 +2737,8 @@ function createBindingManager(source, policy, clock, hasHook, defaultVault) {
2733
2737
  published(before);
2734
2738
  binding.generation = generation;
2735
2739
  delete binding.staged;
2740
+ binding.disposeAbort?.();
2741
+ delete binding.disposeAbort;
2736
2742
  }
2737
2743
  return result;
2738
2744
  } catch (error) {
@@ -3461,10 +3467,9 @@ ${value.map((row) => keys.map((key) => typeof row[key] === "object" ? JSON.strin
3461
3467
  }
3462
3468
  async function policyResult(callback, signal) {
3463
3469
  signal.throwIfAborted();
3464
- let abort;
3470
+ let disposeAbort;
3465
3471
  const cancelled = new Promise((_resolve, reject) => {
3466
- abort = () => reject(new Error("operation aborted"));
3467
- signal.addEventListener("abort", abort, { once: true });
3472
+ disposeAbort = listenForAbort4(signal, () => reject(new Error("operation aborted")));
3468
3473
  });
3469
3474
  try {
3470
3475
  return await Promise.race([Promise.resolve().then(() => {
@@ -3474,7 +3479,7 @@ async function policyResult(callback, signal) {
3474
3479
  } catch {
3475
3480
  throw new Error("authorization failed");
3476
3481
  } finally {
3477
- signal.removeEventListener("abort", abort);
3482
+ disposeAbort?.();
3478
3483
  }
3479
3484
  }
3480
3485
  function approvalManifest(request, requests, prepared, effects) {
@@ -3708,22 +3713,23 @@ function createOpCommand(options = {}) {
3708
3713
 
3709
3714
  // packages/safe-bash-command-op/src/secrets.ts
3710
3715
  init_buffer();
3716
+ import { listenForAbort as listenForAbort6 } from "@poe-platform/safe-fs/core";
3711
3717
 
3712
3718
  // packages/safe-bash-command-op/src/handler-preparation.ts
3713
3719
  init_buffer();
3720
+ import { listenForAbort as listenForAbort5 } from "@poe-platform/safe-fs/core";
3714
3721
  async function acquire(signal, operation) {
3715
3722
  signal.throwIfAborted();
3716
- let abort;
3723
+ let disposeAbort;
3717
3724
  const cancelled = new Promise((_resolve, reject) => {
3718
- abort = () => reject(new Error("Operation aborted"));
3719
- signal.addEventListener("abort", abort, { once: true });
3725
+ disposeAbort = listenForAbort5(signal, () => reject(new Error("Operation aborted")));
3720
3726
  });
3721
3727
  try {
3722
3728
  const value = await Promise.race([operation(), cancelled]);
3723
3729
  signal.throwIfAborted();
3724
3730
  return value;
3725
3731
  } finally {
3726
- signal.removeEventListener("abort", abort);
3732
+ disposeAbort?.();
3727
3733
  }
3728
3734
  }
3729
3735
  function createSourceSnapshot(source, maxBytes = Infinity) {
@@ -3911,17 +3917,16 @@ function expand(value, env, escapes = true) {
3911
3917
  }
3912
3918
  async function cancellable(signal, operation) {
3913
3919
  signal.throwIfAborted();
3914
- let abort;
3920
+ let disposeAbort;
3915
3921
  const cancelled = new Promise((_resolve, reject) => {
3916
- abort = () => reject(signal.reason);
3917
- signal.addEventListener("abort", abort, { once: true });
3922
+ disposeAbort = listenForAbort6(signal, () => reject(signal.reason));
3918
3923
  });
3919
3924
  try {
3920
3925
  const value = await Promise.race([operation(), cancelled]);
3921
3926
  signal.throwIfAborted();
3922
3927
  return value;
3923
3928
  } finally {
3924
- signal.removeEventListener("abort", abort);
3929
+ disposeAbort?.();
3925
3930
  }
3926
3931
  }
3927
3932
  async function template(value, env, resolve, variables = true) {
@@ -4544,22 +4549,22 @@ function createDocumentHandlers(backend, options = {}) {
4544
4549
 
4545
4550
  // packages/safe-bash-command-op/src/items.ts
4546
4551
  init_buffer();
4552
+ import { listenForAbort as listenForAbort7 } from "@poe-platform/safe-fs/core";
4547
4553
  function record6(value) {
4548
4554
  return value !== null && typeof value === "object" && !Array.isArray(value) && !(value instanceof Uint8Array);
4549
4555
  }
4550
4556
  async function cancellable2(signal, operation) {
4551
4557
  signal.throwIfAborted();
4552
- let abort;
4558
+ let disposeAbort;
4553
4559
  const cancelled = new Promise((_resolve, reject) => {
4554
- abort = () => reject(signal.reason);
4555
- signal.addEventListener("abort", abort, { once: true });
4560
+ disposeAbort = listenForAbort7(signal, () => reject(signal.reason));
4556
4561
  });
4557
4562
  try {
4558
4563
  const value = await Promise.race([operation(), cancelled]);
4559
4564
  signal.throwIfAborted();
4560
4565
  return value;
4561
4566
  } finally {
4562
- signal.removeEventListener("abort", abort);
4567
+ disposeAbort?.();
4563
4568
  }
4564
4569
  }
4565
4570
  async function stdinText(context, encoding) {
@@ -4761,7 +4766,7 @@ function createOpCommand2(options = {}) {
4761
4766
  try {
4762
4767
  bytes = await fs.readFile(resolved, {
4763
4768
  signal,
4764
- ...context.inputBudget ? { maxBytes: Math.max(0, context.inputBudget.maxBytes - inputBytes) } : {}
4769
+ ...context.inputBudget && Number.isFinite(context.inputBudget.maxBytes) ? { maxBytes: Math.max(0, context.inputBudget.maxBytes - inputBytes) } : {}
4765
4770
  });
4766
4771
  } catch (error) {
4767
4772
  if (isFsError2(error, "EFBIG") && context.inputBudget) context.inputBudget.check(context.inputBudget.maxBytes + 1);
@@ -4815,6 +4820,8 @@ function createOpCommand2(options = {}) {
4815
4820
  return command.execute(invocation);
4816
4821
  }
4817
4822
  };
4823
+ builtInDirectContextExecutors.add(def.execute);
4824
+ syncCommandEvaluators.evalSyncOp = evalSyncOp;
4818
4825
  opMetaByExecutor.set(def.execute, { version: options.version ?? "0.0.1", channel: options.channel ?? "stable" });
4819
4826
  return def;
4820
4827
  }
@@ -31,6 +31,7 @@ export interface OpBindingTarget {
31
31
  readonly revision: string;
32
32
  }
33
33
  export interface OpBindingPrepareContext extends OpBackendContext {
34
+ /** Deadline on the backend clock; omitted or Infinity means no timeout. */
34
35
  readonly expiresAt?: number;
35
36
  }
36
37
  export interface OpPreparedBinding {
@@ -2,12 +2,12 @@ import {
2
2
  createPandocCommand,
3
3
  createPandocCommands,
4
4
  pandocCommands
5
- } from "../safe-bash/command-chunks/chunk-TGSNCQSR.js";
5
+ } from "../safe-bash/command-chunks/chunk-JT4RYCA6.js";
6
6
  import "../safe-bash/command-chunks/chunk-BAXU7B5Z.js";
7
- import "../safe-bash/command-chunks/chunk-QRRYN2KO.js";
7
+ import "../safe-bash/command-chunks/chunk-BC7BK6R6.js";
8
8
  import "../safe-bash/command-chunks/chunk-5LU4UCBR.js";
9
9
  import "../safe-bash/command-chunks/chunk-RDV7UCYZ.js";
10
- import "../safe-bash/command-chunks/chunk-YG4EPFWC.js";
10
+ import "../safe-bash/command-chunks/chunk-M3NINRDU.js";
11
11
  import "../safe-bash/command-chunks/chunk-3E2OIS2J.js";
12
12
  import "../safe-bash/command-chunks/chunk-Y6TUZWPS.js";
13
13
  import "../safe-bash/command-chunks/chunk-7OKDCM5U.js";
@@ -1,3 +1,4 @@
1
+ export { evalSyncPandoc } from "./sync.js";
1
2
  export { convert, convertSync, readDocument, writeDocument, PandocError } from "./engine.js";
2
3
  export { createFormatRegistry, coreFormats, formatCapabilities } from "./formats.js";
3
4
  export type { FormatCapability, FormatDescriptor, FormatSelection, Direction } from "./formats.js";