@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
@@ -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 {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  jobsExtension
3
- } from "./chunks/chunk-A7XEHALN.js";
4
- import "./chunks/chunk-J42RIHHJ.js";
5
- import "./chunks/chunk-74GHTNJA.js";
6
- import "./chunks/chunk-7R5BDCG7.js";
3
+ } from "./chunks/chunk-Y7FW6GLT.js";
4
+ import "./chunks/chunk-4KTMKD5W.js";
5
+ import "./chunks/chunk-XQWCQSRN.js";
6
+ import "./chunks/chunk-OHML2BEU.js";
7
7
  import {
8
8
  init_platform
9
- } from "./chunks/chunk-B7TAL7S5.js";
9
+ } from "./chunks/chunk-PTAEWLSE.js";
10
10
 
11
11
  // packages/safe-bash/src/jobs.ts
12
12
  init_platform();
@@ -19,12 +19,12 @@ export declare const sofficeCommands: sofficeModule["sofficeCommands"];
19
19
  export type { SofficeCommandOptions } from "./commands/soffice/index.js";
20
20
  export declare const createSofficeCommands: sofficeModule["createSofficeCommands"];
21
21
  export type { SofficeCommandsOptions } from "./commands/soffice/index.js";
22
- type pandocModule = typeof import("./commands/pandoc/implementation.js");
22
+ type pandocModule = typeof import("../safe-bash-command-pandoc/index.js");
23
23
  export declare const pandocCommands: pandocModule["pandocCommands"];
24
24
  export declare const createPandocCommands: pandocModule["createPandocCommands"];
25
25
  export declare const createPandocCommand: pandocModule["createPandocCommand"];
26
- export type { PandocCommandsOptions } from "./commands/pandoc/implementation.js";
27
- export type { PandocLimits } from "./commands/pandoc/implementation.js";
26
+ export type { PandocCommandsOptions } from "../safe-bash-command-pandoc/index.js";
27
+ export type { PandocLimits } from "../safe-bash-command-pandoc/index.js";
28
28
  type ssconvertModule = typeof import("./commands/ssconvert/index.js");
29
29
  export declare const createSsconvertCommand: ssconvertModule["createSsconvertCommand"];
30
30
  export declare const ssconvertCommands: ssconvertModule["ssconvertCommands"];
@@ -94,7 +94,7 @@ export const createSofficeCommands = (...args) => {
94
94
  });
95
95
  return definitions;
96
96
  };
97
- const loadpandoc = /* @__PURE__ */ createLazyCommandLoader(() => import("./commands/pandoc/implementation.js"));
97
+ const loadpandoc = /* @__PURE__ */ createLazyCommandLoader(() => import("../safe-bash-command-pandoc/index.js"));
98
98
  const pandocMetadata = [
99
99
  {
100
100
  name: "pandoc",
@@ -2,7 +2,7 @@ import { commandRuntimeIdentity, FsError, getCommandArguments, isFsError } from
2
2
  import { yieldTurn } from "@poe-platform/safe-bash/contracts/yield";
3
3
  import { assertCommandRequirements } from "@poe-platform/safe-bash/contracts/command-requirements";
4
4
  import { PublicDiagnostic, publicDiagnosticMessage } from "@poe-platform/safe-bash/contracts/diagnostics";
5
- import { ByteInputBudget } from "@poe-platform/safe-bash/optional-host";
5
+ import { InputByteBudget } from "@poe-platform/safe-bash/contracts";
6
6
  import { registerDefaultExecutor, output, pathOf, UsageError } from "@poe-platform/safe-bash/optional-host";
7
7
  import { inputRequirements } from "@poe-platform/safe-bash/optional-host";
8
8
  import { compareCopyIdentity, compareObservedEntries } from "@poe-platform/safe-bash/contracts/filesystem-identity";
@@ -503,12 +503,11 @@ class Cursor {
503
503
  throw result.reason;
504
504
  }
505
505
  }
506
- async function compare(context, parsed, blockBytes, limits, legacy, preferredBlock) {
506
+ async function compare(context, parsed, blockBytes, limits, legacy, preferredBlock, budget) {
507
507
  const { names, skips, silent, verbose, printBytes } = parsed;
508
508
  const limit = parsed.limit >= maxCount ? Infinity : parsed.limit > BigInt(Number.MAX_SAFE_INTEGER) ? Number.MAX_SAFE_INTEGER : Number(parsed.limit);
509
509
  const controller = new AbortController();
510
510
  const signal = AbortSignal.any([context.signal, controller.signal]);
511
- const budget = new ByteInputBudget(Infinity);
512
511
  let chunks = 0;
513
512
  const chargeChunk = async () => {
514
513
  if (++chunks % 64 === 0)
@@ -667,6 +666,7 @@ function buildCmpCommand(legacy, options = {}) {
667
666
  const definition = { name: "cmp", runtimeIdentity: commandRuntimeIdentity, filesystemRequirements: inputRequirements, async execute(context) {
668
667
  context.signal.throwIfAborted();
669
668
  let silent = false;
669
+ const budget = new InputByteBudget(Infinity, context.inputBudget);
670
670
  try {
671
671
  const parsed = parse(context, legacy);
672
672
  if (parsed.information) {
@@ -674,10 +674,11 @@ function buildCmpCommand(legacy, options = {}) {
674
674
  return { exitCode: 0 };
675
675
  }
676
676
  silent = parsed.silent;
677
- return { exitCode: await compare(context, parsed, blockBytes, limits, legacy, options.comparisonBlockBytes === undefined) };
677
+ return { exitCode: await compare(context, parsed, blockBytes, limits, legacy, options.comparisonBlockBytes === undefined, budget) };
678
678
  }
679
679
  catch (error) {
680
680
  context.signal.throwIfAborted();
681
+ budget.assertOpen();
681
682
  if (error instanceof InvocationClosed)
682
683
  throw error;
683
684
  if (!silent || !(error instanceof InputError) || !error.suppressInSilent) {
@@ -779,9 +780,9 @@ export function evalSyncCmp(inBytes, opArgs, readFileSync) {
779
780
  }
780
781
  }
781
782
  /** Opt-in GNU comparison-block behavior; producer fragments do not define blocks. */
782
- export const createCmpCommand = buildCmpCommand.bind(undefined, false);
783
+ export const createCmpCommand = /* @__PURE__ */ buildCmpCommand.bind(undefined, false);
783
784
  /** Existing default-shell behavior, sharing the same retained-input engine. */
784
- export const cmpCommand = buildCmpCommand.bind(undefined, true);
785
+ export const cmpCommand = /* @__PURE__ */ buildCmpCommand.bind(undefined, true);
785
786
  export function createCmpCommands(options = {}) { return [createCmpCommand(options)]; }
786
787
  export function cmpCommands(options = {}) {
787
788
  const commands = createCmpCommands(options);
@@ -145,7 +145,7 @@ export function createDdCommand(options = {}) {
145
145
  }
146
146
  const operation = plan.output === undefined ? createOutputOperation(context, context.stdout) : undefined;
147
147
  if (operation)
148
- context = { ...context, signal: operation.signal, stdout: operation.output };
148
+ context = { ...context, ...(context.stdinInput ? { stdinInput: context.stdinInput } : {}), ...(context.stdoutFile ? { stdoutFile: context.stdoutFile } : {}), signal: operation.signal, stdout: operation.output };
149
149
  const handles = [];
150
150
  let cleanup;
151
151
  let closeFailure;
@@ -176,6 +176,31 @@ export async function openDdFile(context, request) {
176
176
  throw new DdError(`${request.synchronization === "all" ? "fsync" : "fdatasync"}: Operation not supported by the filesystem stream adapter`);
177
177
  if (request.direction === "output" && request.flags.has("append") && request.truncate)
178
178
  throw new DdError("append with truncation: Operation not supported by the filesystem stream adapter");
179
+ if (path === undefined && request.direction === "input" && context.stdinInput) {
180
+ const input = context.stdinInput;
181
+ const start = input.position;
182
+ let closed = false;
183
+ return {
184
+ ...(input.stat ? { size: BigInt(Math.max(0, input.stat.size - start)), type: input.stat.type } : {}),
185
+ async read(size, options) {
186
+ signal.throwIfAborted();
187
+ if (closed)
188
+ throw new FsError("EBADF");
189
+ const result = await input.read(size, options.signal ?? signal);
190
+ return result.done ? new Uint8Array() : result.value;
191
+ },
192
+ ...(input.seek ? { async seek(offset, options) {
193
+ signal.throwIfAborted();
194
+ if (closed)
195
+ throw new FsError("EBADF");
196
+ const position = BigInt(start) + offset;
197
+ if (position < 0n || position > BigInt(Number.MAX_SAFE_INTEGER))
198
+ throw new DdError("input offset limit exceeded");
199
+ await input.seek(Number(position), options.signal ?? signal);
200
+ } } : {}),
201
+ async close() { closed = true; },
202
+ };
203
+ }
179
204
  if (request.direction === "input") {
180
205
  const stat = path === undefined ? undefined : await context.fs.stat(path, { signal });
181
206
  if (path !== undefined)
@@ -243,14 +268,35 @@ export async function openDdFile(context, request) {
243
268
  async close() { closed = true; await closeIterator(); },
244
269
  };
245
270
  }
246
- if (request.seek !== 0n || path !== undefined && (!request.truncate && !request.flags.has("append") || request.creation === "never")) {
247
- throw new DdError("positioned or existing-only output: Operation not supported by the filesystem stream adapter");
248
- }
249
- if (path === undefined)
271
+ if (path === undefined) {
272
+ let position = 0n;
250
273
  return {
251
- async write(chunk) { await writeBytes(context.stdout, chunk, signal); return chunk.length; },
274
+ async write(chunk) {
275
+ await writeBytes(context.stdout, chunk, signal);
276
+ position += BigInt(chunk.length);
277
+ return chunk.length;
278
+ },
279
+ async seek(offset) {
280
+ signal.throwIfAborted();
281
+ if (!context.stdoutFile)
282
+ throw new FsError("ESPIPE");
283
+ if (offset < position || offset > BigInt(Number.MAX_SAFE_INTEGER))
284
+ throw new DdError("output offset limit exceeded");
285
+ const capacity = BigInt(Math.min(65536, request.maxBufferBytes));
286
+ const zeros = new Uint8Array(Number(offset - position < capacity ? offset - position : capacity));
287
+ while (position < offset) {
288
+ const count = Number(offset - position < BigInt(zeros.length) ? offset - position : BigInt(zeros.length));
289
+ await writeBytes(context.stdout, zeros.subarray(0, count), signal);
290
+ position += BigInt(count);
291
+ await yieldTurn(signal);
292
+ }
293
+ },
252
294
  async close() { },
253
295
  };
296
+ }
297
+ if (request.seek !== 0n || !request.truncate && !request.flags.has("append") || request.creation === "never") {
298
+ throw new DdError("positioned or existing-only output: Operation not supported by the filesystem stream adapter");
299
+ }
254
300
  const capabilities = await context.fs.capabilitiesFor?.(path, { signal }) ?? context.fs.capabilities;
255
301
  const flag = request.creation === "exclusive" ? request.flags.has("append") ? "ax" : "wx" : request.flags.has("append") ? "a" : "w";
256
302
  if (!context.fs.writeStream || capabilities.streamingWrite === false)
@@ -816,8 +816,8 @@ function createDefinition(retained, options = {}) {
816
816
  return registerDefaultExecutor(definition, options);
817
817
  }
818
818
  // Portable callers retain the path-based filesystem contract; shell defaults require retained identity.
819
- export const createTruncateCommand = createDefinition.bind(undefined, false);
820
- export const truncateCommand = createDefinition.bind(undefined, true);
819
+ export const createTruncateCommand = /* @__PURE__ */ createDefinition.bind(undefined, false);
820
+ export const truncateCommand = /* @__PURE__ */ createDefinition.bind(undefined, true);
821
821
  export { evalSyncTruncate } from "./sync.js";
822
822
  export function createTruncateCommands(options = {}) { return [createTruncateCommand(options)]; }
823
823
  export function truncateCommands(options = {}) {
@@ -18,6 +18,8 @@ export function limitsFor(options = {}) {
18
18
  throw new TypeError("invalid yq limits");
19
19
  const limits = { ...mikeLimits };
20
20
  for (const [name, value] of Object.entries(options)) {
21
+ if (Object.hasOwn(limits, name) && value === undefined)
22
+ continue;
21
23
  if (!Object.hasOwn(limits, name) || value !== Infinity && (!Number.isSafeInteger(value) || value < 1)) {
22
24
  throw new TypeError(`invalid yq limit: ${name}`);
23
25
  }
@@ -107,7 +107,7 @@ export class FileInput {
107
107
  return { next: () => this.next(), return: async () => { await this.close(); return { done: true, value: undefined }; } };
108
108
  }
109
109
  }
110
- export function ownedBytes(source, signal) {
110
+ export function ownedBytes(source, signal, budget) {
111
111
  const iterator = source[Symbol.asyncIterator]();
112
112
  const controller = new AbortController();
113
113
  const readingSignal = AbortSignal.any([signal, controller.signal]);
@@ -146,6 +146,7 @@ export function ownedBytes(source, signal) {
146
146
  let chunks = 0;
147
147
  try {
148
148
  for await (const chunk of readBytes(tracked, readingSignal)) {
149
+ budget?.charge(chunk.byteLength);
149
150
  yield chunk;
150
151
  if (++chunks % 1024 === 0)
151
152
  await yieldTurn(readingSignal);
@@ -1,4 +1,4 @@
1
- import { builtInDirectContextExecutors, commandRuntimeIdentity, createBufferedOutput, getCommandArguments, isFsError, writeBytes, } from "@poe-platform/safe-bash/contracts";
1
+ import { builtInDirectContextExecutors, commandRuntimeIdentity, createBufferedOutput, getCommandArguments, InputByteBudget, isFsError, writeBytes, } from "@poe-platform/safe-bash/contracts";
2
2
  import { openFileOutput } from "./filesystem-output.js";
3
3
  import { inheritYieldCheckpoint, yieldTurn } from "@poe-platform/safe-bash/contracts/yield";
4
4
  import { countMax, Diagnostic, fileQuote, parse, quote, unicodeLocale } from "./args.js";
@@ -25,6 +25,7 @@ export function createShufCommand(options = {}) {
25
25
  runtimeIdentity: commandRuntimeIdentity,
26
26
  description: "Write a random permutation of input records",
27
27
  async execute(context) {
28
+ const budget = new InputByteBudget(Infinity, context.inputBudget);
28
29
  let random;
29
30
  let output;
30
31
  let source;
@@ -96,7 +97,7 @@ export function createShufCommand(options = {}) {
96
97
  inputSize = stat.size;
97
98
  input = fileInput;
98
99
  }
99
- inputSource = ownedBytes(input, inputSignal);
100
+ inputSource = ownedBytes(input, inputSignal, budget);
100
101
  inputSignal.throwIfAborted();
101
102
  if (closed)
102
103
  throw new Error("shuf input is closed");
@@ -226,6 +227,7 @@ export function createShufCommand(options = {}) {
226
227
  if (output)
227
228
  await output.abort(error);
228
229
  context.signal.throwIfAborted();
230
+ budget.assertOpen();
229
231
  inputSignal.throwIfAborted();
230
232
  if (isFsError(error) && error.code === "EPIPE" && diagnostic === "write error")
231
233
  return { exitCode: 141 };
@@ -1,4 +1,4 @@
1
- export { Shell, agentCommands } from "@poe-platform/safe-bash";
1
+ export { Shell, agentCommands } from "@poe-platform/safe-bash/core";
2
2
  export { createYesCommand, createYesCommands, yesCommands } from "./commands/yes/index.js";
3
3
  export type { YesCommandOptions, YesCommandsOptions, YesLimits } from "./commands/yes/index.js";
4
4
  export { createCmpCommand, createCmpCommands, cmpCommands } from "./commands/cmp/index.js";
@@ -1,4 +1,4 @@
1
- export { Shell, agentCommands } from "@poe-platform/safe-bash";
1
+ export { Shell, agentCommands } from "@poe-platform/safe-bash/core";
2
2
  export { createYesCommand, createYesCommands, yesCommands } from "./commands/yes/index.js";
3
3
  export { createCmpCommand, createCmpCommands, cmpCommands } from "./commands/cmp/index.js";
4
4
  export { createDdCommand, createDdCommands, ddCommands } from "./commands/dd/index.js";
@@ -1,350 +1,8 @@
1
1
  import { commandRuntimeIdentity } from "@poe-platform/safe-bash/contracts/command";
2
- import { FsError } from "@poe-platform/safe-bash/contracts/errors";
3
- import { concatShellValues, shellValueBytes, shellValueFromBytes, shellValueText } from "@poe-platform/safe-bash/contracts/value";
4
- const usage = "read: usage: read [-Eers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]\n";
5
- function identifier(name) {
6
- if (!name.length)
7
- return false;
8
- for (let index = 0; index < name.length; index++) {
9
- const character = name[index];
10
- if (character !== "_" && !(character >= "a" && character <= "z") && !(character >= "A" && character <= "Z") && !(index > 0 && character >= "0" && character <= "9"))
11
- return false;
12
- }
13
- return true;
14
- }
15
- function decimal(value) {
16
- let left = 0;
17
- let right = value.length;
18
- while (left < right && " \t\n\r\v\f".includes(value[left]))
19
- left++;
20
- while (right > left && " \t\n\r\v\f".includes(value[right - 1]))
21
- right--;
22
- const digits = value.slice(left, right);
23
- let start = 0;
24
- if (digits[0] === "+" || digits[0] === "-")
25
- start++;
26
- if (digits.length === start)
27
- return undefined;
28
- for (let index = start; index < digits.length; index++)
29
- if (digits[index] < "0" || digits[index] > "9")
30
- return undefined;
31
- const number = Number(digits);
32
- return Number.isInteger(number) && number >= 0 && number <= 2147483647 ? number : undefined;
33
- }
34
- function timeout(value) {
35
- let offset = value.startsWith("+") || value.startsWith("-") ? 1 : 0;
36
- let seconds = 0n;
37
- while (offset < value.length && value[offset] !== ".") {
38
- const character = value[offset++];
39
- if (character < "0" || character > "9")
40
- return undefined;
41
- seconds = seconds * 10n + BigInt(character);
42
- if (seconds > 9223372036854775807n)
43
- return undefined;
44
- }
45
- if (value[offset] === ".")
46
- offset++;
47
- let fraction = 0;
48
- let digits = 0;
49
- while (offset < value.length && digits < 6) {
50
- const character = value[offset++];
51
- if (character < "0" || character > "9")
52
- return undefined;
53
- fraction = fraction * 10 + Number(character);
54
- digits++;
55
- }
56
- fraction *= 10 ** (6 - digits);
57
- if (digits === 6 && value[offset] !== undefined && value[offset] >= "5" && value[offset] <= "9")
58
- fraction++;
59
- if (value.startsWith("-") && (seconds > 0n || fraction > 0))
60
- return undefined;
61
- return Number(seconds & 4294967295n) * 1000 + fraction / 1000;
62
- }
63
- async function parse(context, validate) {
64
- const options = { raw: false, exact: false, descriptor: 0, names: [] };
65
- const args = context.argumentValues;
66
- let offset = 0;
67
- while (offset < args.length) {
68
- const argument = args[offset];
69
- const bytes = shellValueBytes(argument);
70
- const text = shellValueText(argument);
71
- if (text === "--") {
72
- offset++;
73
- break;
74
- }
75
- if (bytes[0] !== 45 || bytes.length === 1)
76
- break;
77
- offset++;
78
- for (let index = 1; index < bytes.length; index++) {
79
- const flag = String.fromCharCode(bytes[index]);
80
- if (flag === "r") {
81
- options.raw = true;
82
- continue;
83
- }
84
- if (flag === "e" || flag === "E" || flag === "s") {
85
- options.terminal = flag;
86
- continue;
87
- }
88
- if (!"adnNptui".includes(flag)) {
89
- await context.diagnostic(concatShellValues(["read: -", bytes[index] < 128 ? flag : shellValueFromBytes(bytes.subarray(index, index + 1)), ": invalid option"]));
90
- await context.stderr.write(new TextEncoder().encode(usage));
91
- return 2;
92
- }
93
- let value;
94
- if (index + 1 < bytes.length)
95
- value = typeof argument === "string" ? argument.slice(index + 1) : shellValueFromBytes(bytes.subarray(index + 1));
96
- else if (offset < args.length)
97
- value = args[offset++];
98
- else {
99
- await context.diagnostic(`read: -${flag}: option requires an argument`);
100
- await context.stderr.write(new TextEncoder().encode(usage));
101
- return 2;
102
- }
103
- const valueText = shellValueText(value);
104
- if (flag === "a")
105
- options.array = value;
106
- else if (flag === "d")
107
- options.delimiter = (index + 1 < bytes.length ? bytes[index + 1] : shellValueBytes(value)[0]) ?? 0;
108
- else if (flag === "p" || flag === "i")
109
- options.terminal = flag;
110
- else if (flag === "t") {
111
- const milliseconds = timeout(valueText);
112
- if (milliseconds === undefined) {
113
- await context.diagnostic(concatShellValues(["read: ", value, ": invalid timeout specification"]));
114
- return 1;
115
- }
116
- options.timeout = milliseconds;
117
- }
118
- else {
119
- const number = decimal(valueText);
120
- if (number === undefined) {
121
- const detail = flag === "u" ? "file descriptor specification" : `${valueText.startsWith("0x") || valueText.startsWith("0X") ? "hex " : ""}number`;
122
- await context.diagnostic(concatShellValues(["read: ", value, `: invalid ${detail}`]));
123
- return 1;
124
- }
125
- if (flag === "u") {
126
- options.descriptor = number;
127
- await validate(number);
128
- }
129
- else {
130
- options.count = number;
131
- options.exact ||= flag === "N";
132
- }
133
- }
134
- break;
135
- }
136
- }
137
- options.names = args.slice(offset);
138
- return options;
139
- }
140
- async function execute(nonTerminalInput, context) {
141
- const diagnosedDescriptorFailure = Symbol("diagnosed read descriptor failure");
142
- const inputs = [];
143
- let input;
144
- let observer;
145
- let record;
146
- let writer;
147
- const operation = {};
148
- let completion;
149
- let closed = false;
150
- const check = () => { context.signal.throwIfAborted(); if (closed)
151
- throw new Error("Read invocation is closed"); };
152
- const close = () => {
153
- closed = true;
154
- return completion ??= (async () => {
155
- await Promise.allSettled([operation.work]);
156
- let failure;
157
- for (const release of [() => writer?.close(), () => record?.release(), ...inputs.map(lease => () => lease.release()), () => observer?.release()]) {
158
- try {
159
- await release();
160
- }
161
- catch (reason) {
162
- failure ??= { reason };
163
- }
164
- }
165
- if (failure)
166
- throw failure.reason;
167
- })();
168
- };
169
- context.registerCleanup(close);
170
- const validate = async (descriptor) => {
171
- check();
172
- try {
173
- context.input.validateOpen(descriptor);
174
- }
175
- catch (error) {
176
- context.signal.throwIfAborted();
177
- if (error instanceof FsError && error.code === "EBADF") {
178
- await context.diagnostic(`read: ${descriptor}: invalid file descriptor: Bad file descriptor`);
179
- throw diagnosedDescriptorFailure;
180
- }
181
- throw error;
182
- }
183
- };
184
- const select = (descriptor) => {
185
- check();
186
- try {
187
- input = context.input.borrow(descriptor);
188
- inputs.push(input);
189
- }
190
- catch (error) {
191
- context.signal.throwIfAborted();
192
- if (!(error instanceof FsError && error.code === "EBADF"))
193
- throw error;
194
- }
195
- };
196
- const observe = (descriptor) => {
197
- check();
198
- try {
199
- observer = context.input.observe(descriptor);
200
- }
201
- catch (error) {
202
- context.signal.throwIfAborted();
203
- if (!(error instanceof FsError && error.code === "EBADF"))
204
- throw error;
205
- }
206
- };
207
- const work = Promise.resolve().then(async () => {
208
- check();
209
- const options = await parse(context, validate);
210
- check();
211
- if (typeof options === "number")
212
- return options;
213
- if (options.timeout === 0) {
214
- observe(options.descriptor);
215
- check();
216
- if (!observer)
217
- return 1;
218
- const { readiness } = await observer.probeRead();
219
- check();
220
- if (readiness === "ready")
221
- return 0;
222
- if (readiness === "blocked")
223
- return 1;
224
- if (readiness !== "unknown")
225
- throw new TypeError("Invalid input readiness");
226
- await context.diagnostic(observer.readable ? "read: input readiness is unknown for this cursor" : "read: descriptor readiness unavailable through this extension API");
227
- return 1;
228
- }
229
- if (options.terminal !== undefined && !nonTerminalInput) {
230
- await context.diagnostic(`read: -${options.terminal}: terminal input capabilities unavailable through this extension API`);
231
- return 1;
232
- }
233
- const invalidName = async (name) => { await context.diagnostic(concatShellValues(["read: `", name, "': not a valid identifier"])); return 1; };
234
- if (options.names[0] !== undefined && !identifier(shellValueText(options.names[0])))
235
- return invalidName(options.names[0]);
236
- if (options.array !== undefined && typeof context.bindings.openIndexed !== "function") {
237
- await context.diagnostic("read: indexed writer unavailable through this extension API");
238
- return 1;
239
- }
240
- const ifs = options.exact ? "" : context.bindings.get("IFS") ?? " \t\n";
241
- select(options.descriptor);
242
- check();
243
- const inherited = options.timeout === undefined && options.count !== 0 ? context.bindings.get("TMOUT") : undefined;
244
- const milliseconds = options.timeout ?? (inherited === undefined ? undefined : timeout(shellValueText(inherited)));
245
- let timedOut = false;
246
- if (!input && options.count !== 0) {
247
- if (milliseconds !== undefined && milliseconds > 0) {
248
- observe(options.descriptor);
249
- check();
250
- if (observer) {
251
- const probe = await observer.probeRead();
252
- check();
253
- const readyUnreadable = observer.readable === false && probe.readiness === "ready";
254
- if (probe.timeout !== "ignore" && !(readyUnreadable && probe.timeout === "unknown")) {
255
- if (probe.readiness === "unknown" || probe.timeout !== "honor") {
256
- await context.diagnostic("read: descriptor timeout observation unavailable through this extension API");
257
- return 1;
258
- }
259
- if (probe.readiness === "blocked") {
260
- const outcome = await observer.waitRead({ timeoutMs: milliseconds, signal: context.signal });
261
- check();
262
- if (outcome === "unknown") {
263
- await context.diagnostic("read: descriptor timeout observation unavailable through this extension API");
264
- return 1;
265
- }
266
- if (outcome !== "ready" && outcome !== "timeout")
267
- throw new TypeError("Invalid descriptor wait result");
268
- timedOut = outcome === "timeout";
269
- }
270
- else if (probe.readiness !== "ready")
271
- throw new TypeError("Invalid descriptor readiness");
272
- }
273
- }
274
- }
275
- if (!timedOut) {
276
- await context.diagnostic(`read: ${options.descriptor}: read error: Bad file descriptor`);
277
- return 1;
278
- }
279
- }
280
- record = await input?.read(options.raw, {
281
- ...(options.count === undefined ? {} : { count: options.count }),
282
- ...(options.delimiter === undefined ? {} : { delimiter: options.delimiter }),
283
- exact: options.exact,
284
- ...(options.count !== 0 && milliseconds !== undefined && milliseconds > 0 ? { timeoutMs: milliseconds } : {}),
285
- });
286
- check();
287
- const status = timedOut || record?.reason === "timeout" ? 142 : record?.terminated ? 0 : 1;
288
- if (options.array !== undefined) {
289
- const name = shellValueText(options.array);
290
- if (!identifier(name))
291
- return invalidName(options.array);
292
- if (context.bindings.describe(name).readonly) {
293
- await context.diagnostic(`${name}: readonly variable`);
294
- return 1;
295
- }
296
- writer = await context.bindings.openIndexed(name, { clear: true });
297
- check();
298
- const fields = await record?.fields(ifs) ?? [];
299
- for (let index = 0; index < fields.length; index++) {
300
- check();
301
- await writer.set(index, fields[index].value);
302
- }
303
- }
304
- else {
305
- const names = options.names.length ? options.names : ["REPLY"];
306
- const fields = options.names.length ? await record?.fields(ifs, names.length) ?? [] : undefined;
307
- for (let index = 0; index < names.length; index++) {
308
- check();
309
- const original = names[index];
310
- const name = shellValueText(original);
311
- if (!identifier(name))
312
- return invalidName(original);
313
- if (context.bindings.describe(name).readonly) {
314
- await context.diagnostic(`${name}: readonly variable`);
315
- return options.names.length === 0 || index < names.length - 1 ? 2 : 1;
316
- }
317
- await context.bindings.assign(name, fields ? fields[index]?.value ?? "" : record?.shellValue ?? "");
318
- }
319
- }
320
- return status;
321
- });
322
- operation.work = work;
323
- let result = 1;
324
- let failure;
325
- try {
326
- result = await work;
327
- }
328
- catch (reason) {
329
- if (reason === diagnosedDescriptorFailure)
330
- result = 1;
331
- else
332
- failure = { reason };
333
- }
334
- try {
335
- await close();
336
- }
337
- catch (reason) {
338
- failure ??= { reason };
339
- }
340
- context.signal.throwIfAborted();
341
- if (failure)
342
- throw failure.reason;
343
- return result;
344
- }
2
+ import { executeRead } from "@poe-platform/safe-bash/optional-host";
345
3
  export function readExtension(options = {}) {
346
4
  const nonTerminalInput = options.nonTerminalInput === true;
347
5
  return { name: "extended-read", runtimeIdentity: commandRuntimeIdentity, create: () => ({
348
- builtins: [{ name: "read", replace: true, execute: execute.bind(undefined, nonTerminalInput) }],
6
+ builtins: [{ name: "read", replace: true, execute: executeRead.bind(undefined, nonTerminalInput) }],
349
7
  }) };
350
8
  }