@jerryan/just-bash 3.6.1 → 3.8.0

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 (328) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/README.md +15 -5
  3. package/dist/AGENTS.md +2 -2
  4. package/dist/Bash.d.ts +4 -2
  5. package/dist/bin/chunks/{awk2-KO7ZE3P7.js → awk2-NTRVFXRA.js} +1 -1
  6. package/dist/bin/chunks/chmod-GX5SYTRL.js +3 -0
  7. package/dist/bin/chunks/chunk-2NJJXU4K.js +27 -0
  8. package/dist/bin/{shell/chunks/chunk-ZMGLTHSU.js → chunks/chunk-3ROYEBJI.js} +1 -1
  9. package/dist/bin/chunks/chunk-6FGMEZZP.js +20 -0
  10. package/dist/bin/chunks/chunk-6JUPBMCR.js +13 -0
  11. package/dist/bin/{shell/chunks/chunk-3DWQCLNP.js → chunks/chunk-7WBCA2BB.js} +1 -1
  12. package/dist/bin/chunks/{chunk-LE2XKKGQ.js → chunk-ABP4OLJV.js} +1 -1
  13. package/dist/bin/{shell/chunks/chunk-7PUOS2OO.js → chunks/chunk-ANX7U57Q.js} +1 -1
  14. package/dist/bin/chunks/{chunk-B2GCIQI2.js → chunk-BB5VTPMQ.js} +1 -1
  15. package/dist/bin/chunks/chunk-CN4JKMTR.js +8 -0
  16. package/dist/bin/chunks/{chunk-WFHYGSLJ.js → chunk-CNVNOT67.js} +1 -1
  17. package/dist/bin/{shell/chunks/chunk-6ESRNSO7.js → chunks/chunk-DRPHNXG7.js} +1 -1
  18. package/dist/bin/chunks/chunk-F2PYTUMR.js +9 -0
  19. package/dist/bin/{shell/chunks/chunk-OXLC2WWX.js → chunks/chunk-H7PD6FLC.js} +10 -10
  20. package/dist/bin/chunks/chunk-HWK7KFGB.js +3 -0
  21. package/dist/bin/{shell/chunks/chunk-QYZN33JA.js → chunks/chunk-IOKQFPM6.js} +1 -1
  22. package/dist/bin/chunks/{chunk-M7SIPZZZ.js → chunk-KMYJMEON.js} +1 -1
  23. package/dist/bin/chunks/chunk-KNTDFP7X.js +12 -0
  24. package/dist/bin/{shell/chunks/chunk-RPUFEP5O.js → chunks/chunk-M3Z5NZXT.js} +1 -1
  25. package/dist/bin/chunks/chunk-MBREBDZQ.js +3 -0
  26. package/dist/bin/{shell/chunks/chunk-L345YZ6R.js → chunks/chunk-MF3GVFLC.js} +1 -1
  27. package/dist/bin/{shell/chunks/chunk-YCOJCFGU.js → chunks/chunk-MPFNZYEA.js} +1 -1
  28. package/dist/bin/chunks/chunk-OHFB3M3X.js +3 -0
  29. package/dist/bin/{shell/chunks/chunk-F3UDTTI7.js → chunks/chunk-ONF4KUYV.js} +1 -1
  30. package/dist/bin/chunks/chunk-PPVF2N6C.js +3 -0
  31. package/dist/bin/chunks/{chunk-V2XF3TTW.js → chunk-PRVPFKTC.js} +1 -1
  32. package/dist/bin/{shell/chunks/chunk-7VWOECJ3.js → chunks/chunk-PTUQEN6I.js} +1 -1
  33. package/dist/bin/chunks/{chunk-R2J5MJOM.js → chunk-QFOXSCOD.js} +1 -1
  34. package/dist/bin/{shell/chunks/chunk-6TUILMPB.js → chunks/chunk-QFTZKD5O.js} +1 -1
  35. package/dist/bin/chunks/{chunk-HQ63MFHG.js → chunk-QJWFCA7P.js} +1 -1
  36. package/dist/bin/chunks/chunk-RTN6X652.js +11 -0
  37. package/dist/bin/chunks/{chunk-67XYNGRV.js → chunk-T6OIISUC.js} +1 -1
  38. package/dist/bin/{shell/chunks/chunk-JELR4642.js → chunks/chunk-U5JLGI56.js} +13 -13
  39. package/dist/bin/chunks/{chunk-7PPAWLUI.js → chunk-V4S4A7M6.js} +1 -1
  40. package/dist/bin/{shell/chunks/chunk-DZAFUADN.js → chunks/chunk-VPSBWWXM.js} +1 -1
  41. package/dist/bin/chunks/{chunk-GA5TPRMF.js → chunk-YXPSX3SI.js} +11 -11
  42. package/dist/bin/chunks/{chunk-472JZJ2D.js → chunk-ZVG47PYA.js} +1 -1
  43. package/dist/bin/chunks/cp-YLP7ULVT.js +3 -0
  44. package/dist/bin/{shell/chunks/diff-YXZZCUSQ.js → chunks/diff-JSJ56EOK.js} +1 -1
  45. package/dist/bin/chunks/du-DH76GZJ3.js +3 -0
  46. package/dist/bin/chunks/{expr-NNMDHOCN.js → expr-PQEPO5TE.js} +1 -1
  47. package/dist/bin/chunks/{file-4T64QNLS.js → file-JA7QI2YT.js} +1 -1
  48. package/dist/bin/chunks/find-MHC4QV6H.js +3 -0
  49. package/dist/bin/chunks/flag-coverage-2H5CPEM6.js +3 -0
  50. package/dist/bin/chunks/{grep-CVU5V66H.js → grep-VXWNMIDD.js} +1 -1
  51. package/dist/bin/chunks/gzip-UQZL4R74.js +3 -0
  52. package/dist/bin/chunks/{jq-V7OTAVU5.js → jq-YS4PR46D.js} +1 -1
  53. package/dist/bin/chunks/js-exec-T3SAB2B6.js +1651 -0
  54. package/dist/bin/chunks/ln-XVC53673.js +3 -0
  55. package/dist/bin/chunks/ls-5Z45FV4U.js +3 -0
  56. package/dist/bin/chunks/mkdir-YJ3SOVRP.js +3 -0
  57. package/dist/bin/chunks/mv-EOOP2TO3.js +3 -0
  58. package/dist/bin/chunks/python3-3ERN3L6S.js +23 -0
  59. package/dist/bin/chunks/readlink-EJ3IKLWW.js +3 -0
  60. package/dist/bin/chunks/rg-WHVR3YDT.js +3 -0
  61. package/dist/bin/chunks/rm-B4LVIG7A.js +3 -0
  62. package/dist/bin/chunks/rmdir-PRNISPBA.js +3 -0
  63. package/dist/bin/{shell/chunks/sed-4LVDFHIJ.js → chunks/sed-SY63U2YX.js} +1 -1
  64. package/dist/bin/{shell/chunks/sleep-MOJQBZMY.js → chunks/sleep-DVFE2GSF.js} +1 -1
  65. package/dist/bin/chunks/split-HIFKSV2A.js +3 -0
  66. package/dist/bin/chunks/sqlite3-KNN6V2W6.js +3 -0
  67. package/dist/bin/{shell/chunks/tar-7HGZIMZD.js → chunks/tar-7XOP7VOX.js} +1 -1
  68. package/dist/bin/chunks/{timeout-RQOWSWYG.js → timeout-YGFHQJKX.js} +1 -1
  69. package/dist/bin/chunks/worker.js +120 -109
  70. package/dist/bin/chunks/{xan-WW53ETXT.js → xan-RMH6JEXM.js} +1 -1
  71. package/dist/bin/chunks/{yq-MYZOS2WN.js → yq-CWBZMGUV.js} +1 -1
  72. package/dist/bin/just-bash.js +355 -350
  73. package/dist/bin/shell/chunks/{awk2-KO7ZE3P7.js → awk2-NTRVFXRA.js} +1 -1
  74. package/dist/bin/shell/chunks/chmod-GX5SYTRL.js +3 -0
  75. package/dist/bin/shell/chunks/chunk-2NJJXU4K.js +27 -0
  76. package/dist/bin/{chunks/chunk-ZMGLTHSU.js → shell/chunks/chunk-3ROYEBJI.js} +1 -1
  77. package/dist/bin/shell/chunks/chunk-6FGMEZZP.js +20 -0
  78. package/dist/bin/shell/chunks/chunk-6JUPBMCR.js +13 -0
  79. package/dist/bin/{chunks/chunk-3DWQCLNP.js → shell/chunks/chunk-7WBCA2BB.js} +1 -1
  80. package/dist/bin/shell/chunks/{chunk-LE2XKKGQ.js → chunk-ABP4OLJV.js} +1 -1
  81. package/dist/bin/{chunks/chunk-7PUOS2OO.js → shell/chunks/chunk-ANX7U57Q.js} +1 -1
  82. package/dist/bin/shell/chunks/{chunk-B2GCIQI2.js → chunk-BB5VTPMQ.js} +1 -1
  83. package/dist/bin/shell/chunks/chunk-CN4JKMTR.js +8 -0
  84. package/dist/bin/shell/chunks/{chunk-WFHYGSLJ.js → chunk-CNVNOT67.js} +1 -1
  85. package/dist/bin/{chunks/chunk-6ESRNSO7.js → shell/chunks/chunk-DRPHNXG7.js} +1 -1
  86. package/dist/bin/shell/chunks/chunk-F2PYTUMR.js +9 -0
  87. package/dist/bin/{chunks/chunk-OXLC2WWX.js → shell/chunks/chunk-H7PD6FLC.js} +10 -10
  88. package/dist/bin/shell/chunks/chunk-HWK7KFGB.js +3 -0
  89. package/dist/bin/{chunks/chunk-QYZN33JA.js → shell/chunks/chunk-IOKQFPM6.js} +1 -1
  90. package/dist/bin/shell/chunks/{chunk-M7SIPZZZ.js → chunk-KMYJMEON.js} +1 -1
  91. package/dist/bin/shell/chunks/chunk-KNTDFP7X.js +12 -0
  92. package/dist/bin/{chunks/chunk-RPUFEP5O.js → shell/chunks/chunk-M3Z5NZXT.js} +1 -1
  93. package/dist/bin/shell/chunks/chunk-MBREBDZQ.js +3 -0
  94. package/dist/bin/{chunks/chunk-L345YZ6R.js → shell/chunks/chunk-MF3GVFLC.js} +1 -1
  95. package/dist/bin/{chunks/chunk-YCOJCFGU.js → shell/chunks/chunk-MPFNZYEA.js} +1 -1
  96. package/dist/bin/shell/chunks/chunk-OHFB3M3X.js +3 -0
  97. package/dist/bin/{chunks/chunk-F3UDTTI7.js → shell/chunks/chunk-ONF4KUYV.js} +1 -1
  98. package/dist/bin/shell/chunks/chunk-PPVF2N6C.js +3 -0
  99. package/dist/bin/shell/chunks/{chunk-V2XF3TTW.js → chunk-PRVPFKTC.js} +1 -1
  100. package/dist/bin/{chunks/chunk-7VWOECJ3.js → shell/chunks/chunk-PTUQEN6I.js} +1 -1
  101. package/dist/bin/shell/chunks/{chunk-R2J5MJOM.js → chunk-QFOXSCOD.js} +1 -1
  102. package/dist/bin/{chunks/chunk-6TUILMPB.js → shell/chunks/chunk-QFTZKD5O.js} +1 -1
  103. package/dist/bin/shell/chunks/{chunk-HQ63MFHG.js → chunk-QJWFCA7P.js} +1 -1
  104. package/dist/bin/shell/chunks/chunk-RTN6X652.js +11 -0
  105. package/dist/bin/shell/chunks/{chunk-67XYNGRV.js → chunk-T6OIISUC.js} +1 -1
  106. package/dist/bin/{chunks/chunk-JELR4642.js → shell/chunks/chunk-U5JLGI56.js} +13 -13
  107. package/dist/bin/shell/chunks/{chunk-7PPAWLUI.js → chunk-V4S4A7M6.js} +1 -1
  108. package/dist/bin/{chunks/chunk-DZAFUADN.js → shell/chunks/chunk-VPSBWWXM.js} +1 -1
  109. package/dist/bin/shell/chunks/{chunk-GA5TPRMF.js → chunk-YXPSX3SI.js} +11 -11
  110. package/dist/bin/shell/chunks/{chunk-472JZJ2D.js → chunk-ZVG47PYA.js} +1 -1
  111. package/dist/bin/shell/chunks/cp-YLP7ULVT.js +3 -0
  112. package/dist/bin/{chunks/diff-YXZZCUSQ.js → shell/chunks/diff-JSJ56EOK.js} +1 -1
  113. package/dist/bin/shell/chunks/du-DH76GZJ3.js +3 -0
  114. package/dist/bin/shell/chunks/{expr-NNMDHOCN.js → expr-PQEPO5TE.js} +1 -1
  115. package/dist/bin/shell/chunks/{file-4T64QNLS.js → file-JA7QI2YT.js} +1 -1
  116. package/dist/bin/shell/chunks/find-MHC4QV6H.js +3 -0
  117. package/dist/bin/shell/chunks/flag-coverage-2H5CPEM6.js +3 -0
  118. package/dist/bin/shell/chunks/{grep-CVU5V66H.js → grep-VXWNMIDD.js} +1 -1
  119. package/dist/bin/shell/chunks/gzip-UQZL4R74.js +3 -0
  120. package/dist/bin/shell/chunks/{jq-V7OTAVU5.js → jq-YS4PR46D.js} +1 -1
  121. package/dist/bin/shell/chunks/js-exec-T3SAB2B6.js +1651 -0
  122. package/dist/bin/shell/chunks/ln-XVC53673.js +3 -0
  123. package/dist/bin/shell/chunks/ls-5Z45FV4U.js +3 -0
  124. package/dist/bin/shell/chunks/mkdir-YJ3SOVRP.js +3 -0
  125. package/dist/bin/shell/chunks/mv-EOOP2TO3.js +3 -0
  126. package/dist/bin/shell/chunks/python3-3ERN3L6S.js +23 -0
  127. package/dist/bin/shell/chunks/readlink-EJ3IKLWW.js +3 -0
  128. package/dist/bin/shell/chunks/rg-WHVR3YDT.js +3 -0
  129. package/dist/bin/shell/chunks/rm-B4LVIG7A.js +3 -0
  130. package/dist/bin/shell/chunks/rmdir-PRNISPBA.js +3 -0
  131. package/dist/bin/{chunks/sed-4LVDFHIJ.js → shell/chunks/sed-SY63U2YX.js} +1 -1
  132. package/dist/bin/{chunks/sleep-MOJQBZMY.js → shell/chunks/sleep-DVFE2GSF.js} +1 -1
  133. package/dist/bin/shell/chunks/split-HIFKSV2A.js +3 -0
  134. package/dist/bin/shell/chunks/sqlite3-KNN6V2W6.js +3 -0
  135. package/dist/bin/{chunks/tar-7HGZIMZD.js → shell/chunks/tar-7XOP7VOX.js} +1 -1
  136. package/dist/bin/shell/chunks/{timeout-RQOWSWYG.js → timeout-YGFHQJKX.js} +1 -1
  137. package/dist/bin/shell/chunks/{xan-WW53ETXT.js → xan-RMH6JEXM.js} +1 -1
  138. package/dist/bin/shell/chunks/{yq-MYZOS2WN.js → yq-CWBZMGUV.js} +1 -1
  139. package/dist/bin/shell/shell.js +397 -392
  140. package/dist/bundle/browser.js +693 -669
  141. package/dist/bundle/chunks/{awk2-W6BNZEJN.js → awk2-VS5QVYHU.js} +1 -1
  142. package/dist/bundle/chunks/chmod-TEY5MD2W.js +2 -0
  143. package/dist/bundle/chunks/{chunk-26GP3ACY.js → chunk-35MBA3VY.js} +1 -1
  144. package/dist/bundle/chunks/chunk-3CIDHL5V.js +11 -0
  145. package/dist/bundle/chunks/chunk-3OBCZP7T.js +12 -0
  146. package/dist/bundle/chunks/{chunk-F6XU52K3.js → chunk-45QZRGYF.js} +1 -1
  147. package/dist/bundle/chunks/chunk-4CC3OZPU.js +2 -0
  148. package/dist/bundle/chunks/{chunk-73JQKNZT.js → chunk-4KZT23KR.js} +11 -11
  149. package/dist/bundle/chunks/{chunk-PJM5C3HZ.js → chunk-5EI7WSRV.js} +10 -10
  150. package/dist/bundle/chunks/{chunk-T6DNSPYO.js → chunk-6BSOPPZH.js} +1 -1
  151. package/dist/bundle/chunks/{chunk-DAKEIWT3.js → chunk-6HO6HX7V.js} +1 -1
  152. package/dist/bundle/chunks/{chunk-XVSR5HHH.js → chunk-6QAM55HM.js} +1 -1
  153. package/dist/bundle/chunks/chunk-A257L6QO.js +7 -0
  154. package/dist/bundle/chunks/{chunk-UC76ZOWM.js → chunk-ATGOUOX2.js} +1 -1
  155. package/dist/bundle/chunks/chunk-B6OSJB22.js +26 -0
  156. package/dist/bundle/chunks/{chunk-2TSZPVPI.js → chunk-BLPYR4TN.js} +1 -1
  157. package/dist/bundle/chunks/{chunk-VJ6UXG2R.js → chunk-CH7SUFFO.js} +1 -1
  158. package/dist/bundle/chunks/{chunk-FQUVK4Q5.js → chunk-DDPD7SIB.js} +1 -1
  159. package/dist/bundle/chunks/{chunk-TLPMB3FO.js → chunk-DMWNBCXJ.js} +1 -1
  160. package/dist/bundle/chunks/{chunk-ZXFELXJH.js → chunk-FSKXIFYT.js} +1 -1
  161. package/dist/bundle/chunks/{chunk-KEMO3CBM.js → chunk-GNPLDVBD.js} +1 -1
  162. package/dist/bundle/chunks/{chunk-FZZL53S2.js → chunk-GRUZ4SBY.js} +1 -1
  163. package/dist/bundle/chunks/{chunk-RPKJJFGZ.js → chunk-HCKTU6IR.js} +1 -1
  164. package/dist/bundle/chunks/{chunk-4EDQZIAN.js → chunk-LGIJSCWH.js} +1 -1
  165. package/dist/bundle/chunks/chunk-LRFR25IP.js +8 -0
  166. package/dist/bundle/chunks/chunk-MWL2I5BV.js +19 -0
  167. package/dist/bundle/chunks/{chunk-6IA4DXG2.js → chunk-N3A4JVFJ.js} +1 -1
  168. package/dist/bundle/chunks/{chunk-PPEXVPHR.js → chunk-O452S4KX.js} +1 -1
  169. package/dist/bundle/chunks/chunk-RWQWFXMH.js +10 -0
  170. package/dist/bundle/chunks/chunk-S6DNKKUL.js +2 -0
  171. package/dist/bundle/chunks/{chunk-NBNI7G66.js → chunk-SE23TEGG.js} +1 -1
  172. package/dist/bundle/chunks/chunk-T5ZEIOJ3.js +2 -0
  173. package/dist/bundle/chunks/{chunk-ULXTDFQC.js → chunk-U57DSHID.js} +1 -1
  174. package/dist/bundle/chunks/{chunk-6DDRR56B.js → chunk-WE7BJ7YU.js} +1 -1
  175. package/dist/bundle/chunks/chunk-WXPNKIIH.js +2 -0
  176. package/dist/bundle/chunks/{chunk-5I5U6IYI.js → chunk-XQ2ZZFO6.js} +1 -1
  177. package/dist/bundle/chunks/{chunk-YFFU74KY.js → chunk-XV2V56NQ.js} +1 -1
  178. package/dist/bundle/chunks/{chunk-FIMF2TLE.js → chunk-Y6JBSHCM.js} +13 -13
  179. package/dist/bundle/chunks/cp-UR762VVT.js +2 -0
  180. package/dist/bundle/chunks/{diff-CSARC7WF.js → diff-VDB6RXHO.js} +1 -1
  181. package/dist/bundle/chunks/du-EQKH3UNA.js +2 -0
  182. package/dist/bundle/chunks/{expr-XSBELPAC.js → expr-A5XITHQD.js} +1 -1
  183. package/dist/bundle/chunks/{file-URNAD6FQ.js → file-6AYYTULJ.js} +1 -1
  184. package/dist/bundle/chunks/find-RLKBCGJR.js +2 -0
  185. package/dist/bundle/chunks/flag-coverage-UMQ3BWDP.js +2 -0
  186. package/dist/bundle/chunks/{grep-4AYF3A5J.js → grep-Q2O5EIXQ.js} +1 -1
  187. package/dist/bundle/chunks/gzip-KC5ENBD2.js +2 -0
  188. package/dist/bundle/chunks/{jq-NY7PCVMH.js → jq-UKAA3QWU.js} +1 -1
  189. package/dist/bundle/chunks/js-exec-ZQMIYQTH.js +1650 -0
  190. package/dist/bundle/chunks/ln-CEM7GDB5.js +2 -0
  191. package/dist/bundle/chunks/ls-WH5S4PPL.js +2 -0
  192. package/dist/bundle/chunks/mkdir-Z6MMWH3D.js +2 -0
  193. package/dist/bundle/chunks/mv-WE7DBLEK.js +2 -0
  194. package/dist/bundle/chunks/python3-QB7OE256.js +22 -0
  195. package/dist/bundle/chunks/readlink-JSRKXLLQ.js +2 -0
  196. package/dist/bundle/chunks/rg-JKB7DR66.js +2 -0
  197. package/dist/bundle/chunks/rm-IGPLE632.js +2 -0
  198. package/dist/bundle/chunks/rmdir-3WTXMVKI.js +2 -0
  199. package/dist/bundle/chunks/{sed-LIRH26EA.js → sed-6G32B25J.js} +1 -1
  200. package/dist/bundle/chunks/{sleep-25QUPVDK.js → sleep-PPRBTSVR.js} +1 -1
  201. package/dist/bundle/chunks/split-HUKVGJTW.js +2 -0
  202. package/dist/bundle/chunks/sqlite3-KB3MXTTM.js +2 -0
  203. package/dist/bundle/chunks/{tar-B72KU357.js → tar-LE7LAAIX.js} +1 -1
  204. package/dist/bundle/chunks/{timeout-37GM7IIL.js → timeout-C6WDYPLV.js} +1 -1
  205. package/dist/bundle/chunks/worker.js +120 -109
  206. package/dist/bundle/chunks/{xan-UIGVJCMA.js → xan-UIL24CGT.js} +1 -1
  207. package/dist/bundle/chunks/{yq-FGNXZCGX.js → yq-ZRNZKDLE.js} +1 -1
  208. package/dist/bundle/index.cjs +2677 -1101
  209. package/dist/bundle/index.js +346 -341
  210. package/dist/commands/diff/format.d.ts +46 -0
  211. package/dist/commands/js-exec/js-exec.d.ts +1 -14
  212. package/dist/commands/js-exec/run-runtime.d.ts +10 -0
  213. package/dist/commands/worker-bridge/bridge-handler.d.ts +0 -3
  214. package/dist/commands/worker-bridge/protocol.d.ts +57 -23
  215. package/dist/fs/fs-error.d.ts +43 -0
  216. package/dist/fs/interface.d.ts +13 -0
  217. package/dist/fs/mountable-fs/mountable-fs.d.ts +20 -0
  218. package/dist/fs/overlay-fs/apply.d.ts +2 -1
  219. package/dist/fs/overlay-fs/index.d.ts +0 -1
  220. package/dist/fs/overlay-fs/overlay-fs.d.ts +14 -0
  221. package/dist/fs/path-utils.d.ts +5 -0
  222. package/dist/fs/traversal.d.ts +9 -0
  223. package/dist/fs/vfs-template.d.ts +38 -15
  224. package/dist/index.d.cts +2 -1
  225. package/dist/index.d.ts +2 -1
  226. package/dist/interpreter/builtin-dispatch.d.ts +10 -0
  227. package/dist/interpreter/builtin-manifest.d.ts +273 -0
  228. package/dist/interpreter/builtins/help.d.ts +6 -0
  229. package/dist/interpreter/builtins/shopt.d.ts +3 -0
  230. package/dist/interpreter/helpers/shell-constants.d.ts +0 -20
  231. package/dist/interpreter/helpers/substitution-status.d.ts +34 -0
  232. package/dist/interpreter/interpreter.d.ts +1 -1
  233. package/dist/interpreter/types.d.ts +8 -1
  234. package/dist/limits.d.ts +2 -0
  235. package/dist/timers.d.ts +0 -9
  236. package/dist/types.d.ts +4 -3
  237. package/package.json +8 -8
  238. package/dist/bin/chunks/chmod-WYYTXGVB.js +0 -3
  239. package/dist/bin/chunks/chunk-23OI2XDJ.js +0 -20
  240. package/dist/bin/chunks/chunk-43E7AR6A.js +0 -3
  241. package/dist/bin/chunks/chunk-AI7JUA46.js +0 -13
  242. package/dist/bin/chunks/chunk-CL7IYCGG.js +0 -20
  243. package/dist/bin/chunks/chunk-GQKQEK5N.js +0 -11
  244. package/dist/bin/chunks/chunk-JHEAT7AR.js +0 -12
  245. package/dist/bin/chunks/chunk-OLEQNRKX.js +0 -8
  246. package/dist/bin/chunks/chunk-QKJAAJ7J.js +0 -3
  247. package/dist/bin/chunks/chunk-SE7JHGP3.js +0 -9
  248. package/dist/bin/chunks/chunk-WEHA3JFD.js +0 -3
  249. package/dist/bin/chunks/chunk-YQEKKZTU.js +0 -12
  250. package/dist/bin/chunks/cp-OMVKM35F.js +0 -3
  251. package/dist/bin/chunks/du-LUFPVLNW.js +0 -3
  252. package/dist/bin/chunks/find-AWH2KOY7.js +0 -3
  253. package/dist/bin/chunks/flag-coverage-FYJ2V7J4.js +0 -3
  254. package/dist/bin/chunks/gzip-FDPA6EKG.js +0 -3
  255. package/dist/bin/chunks/js-exec-5QZZCOR7.js +0 -99
  256. package/dist/bin/chunks/js-exec-worker.js +0 -4931
  257. package/dist/bin/chunks/ln-B35EKC2Q.js +0 -3
  258. package/dist/bin/chunks/ls-Q6ZZ6SQ2.js +0 -3
  259. package/dist/bin/chunks/mkdir-74BP5NTG.js +0 -3
  260. package/dist/bin/chunks/mv-76LAHXFR.js +0 -3
  261. package/dist/bin/chunks/python3-TMFYDQAP.js +0 -14
  262. package/dist/bin/chunks/readlink-EHXJNW62.js +0 -3
  263. package/dist/bin/chunks/rg-PXNKNIMY.js +0 -3
  264. package/dist/bin/chunks/rm-NLG5344W.js +0 -3
  265. package/dist/bin/chunks/rmdir-7ZIVFZJX.js +0 -3
  266. package/dist/bin/chunks/split-ZNNNHKSP.js +0 -3
  267. package/dist/bin/chunks/sqlite3-3EUPHVEZ.js +0 -3
  268. package/dist/bin/shell/chunks/chmod-WYYTXGVB.js +0 -3
  269. package/dist/bin/shell/chunks/chunk-23OI2XDJ.js +0 -20
  270. package/dist/bin/shell/chunks/chunk-43E7AR6A.js +0 -3
  271. package/dist/bin/shell/chunks/chunk-AI7JUA46.js +0 -13
  272. package/dist/bin/shell/chunks/chunk-CL7IYCGG.js +0 -20
  273. package/dist/bin/shell/chunks/chunk-GQKQEK5N.js +0 -11
  274. package/dist/bin/shell/chunks/chunk-JHEAT7AR.js +0 -12
  275. package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +0 -8
  276. package/dist/bin/shell/chunks/chunk-QKJAAJ7J.js +0 -3
  277. package/dist/bin/shell/chunks/chunk-SE7JHGP3.js +0 -9
  278. package/dist/bin/shell/chunks/chunk-WEHA3JFD.js +0 -3
  279. package/dist/bin/shell/chunks/chunk-YQEKKZTU.js +0 -12
  280. package/dist/bin/shell/chunks/cp-OMVKM35F.js +0 -3
  281. package/dist/bin/shell/chunks/du-LUFPVLNW.js +0 -3
  282. package/dist/bin/shell/chunks/find-AWH2KOY7.js +0 -3
  283. package/dist/bin/shell/chunks/flag-coverage-FYJ2V7J4.js +0 -3
  284. package/dist/bin/shell/chunks/gzip-FDPA6EKG.js +0 -3
  285. package/dist/bin/shell/chunks/js-exec-5QZZCOR7.js +0 -99
  286. package/dist/bin/shell/chunks/ln-B35EKC2Q.js +0 -3
  287. package/dist/bin/shell/chunks/ls-Q6ZZ6SQ2.js +0 -3
  288. package/dist/bin/shell/chunks/mkdir-74BP5NTG.js +0 -3
  289. package/dist/bin/shell/chunks/mv-76LAHXFR.js +0 -3
  290. package/dist/bin/shell/chunks/python3-TMFYDQAP.js +0 -14
  291. package/dist/bin/shell/chunks/readlink-EHXJNW62.js +0 -3
  292. package/dist/bin/shell/chunks/rg-PXNKNIMY.js +0 -3
  293. package/dist/bin/shell/chunks/rm-NLG5344W.js +0 -3
  294. package/dist/bin/shell/chunks/rmdir-7ZIVFZJX.js +0 -3
  295. package/dist/bin/shell/chunks/split-ZNNNHKSP.js +0 -3
  296. package/dist/bin/shell/chunks/sqlite3-3EUPHVEZ.js +0 -3
  297. package/dist/bundle/chunks/chmod-WM2JFFQC.js +0 -2
  298. package/dist/bundle/chunks/chunk-7IJWBG4I.js +0 -2
  299. package/dist/bundle/chunks/chunk-FSJ6TTCC.js +0 -19
  300. package/dist/bundle/chunks/chunk-G3IRZ4FN.js +0 -8
  301. package/dist/bundle/chunks/chunk-MLIO3BK2.js +0 -7
  302. package/dist/bundle/chunks/chunk-PS2RJNZZ.js +0 -2
  303. package/dist/bundle/chunks/chunk-TBVD66LC.js +0 -10
  304. package/dist/bundle/chunks/chunk-ULXGGWAD.js +0 -11
  305. package/dist/bundle/chunks/chunk-UTKGYVUZ.js +0 -7
  306. package/dist/bundle/chunks/chunk-W2Z6LYL6.js +0 -11
  307. package/dist/bundle/chunks/chunk-WN54B5NQ.js +0 -12
  308. package/dist/bundle/chunks/chunk-YUSFCOM7.js +0 -2
  309. package/dist/bundle/chunks/cp-2KZIPZJS.js +0 -2
  310. package/dist/bundle/chunks/du-7AZCLKR6.js +0 -2
  311. package/dist/bundle/chunks/find-END3EAHV.js +0 -2
  312. package/dist/bundle/chunks/flag-coverage-XSPWRCVG.js +0 -2
  313. package/dist/bundle/chunks/gzip-RQOBR22H.js +0 -2
  314. package/dist/bundle/chunks/js-exec-57QMXJG5.js +0 -98
  315. package/dist/bundle/chunks/js-exec-worker.js +0 -4931
  316. package/dist/bundle/chunks/ln-OPY2ZVGQ.js +0 -2
  317. package/dist/bundle/chunks/ls-ZPXGZX63.js +0 -2
  318. package/dist/bundle/chunks/mkdir-WDDKK2P3.js +0 -2
  319. package/dist/bundle/chunks/mv-ZF6UBVRB.js +0 -2
  320. package/dist/bundle/chunks/python3-NNONJINM.js +0 -13
  321. package/dist/bundle/chunks/readlink-U5OM5A3M.js +0 -2
  322. package/dist/bundle/chunks/rg-NAMXBYKS.js +0 -2
  323. package/dist/bundle/chunks/rm-R2ZENNSN.js +0 -2
  324. package/dist/bundle/chunks/rmdir-YJKPQVCK.js +0 -2
  325. package/dist/bundle/chunks/split-JICLAMP6.js +0 -2
  326. package/dist/bundle/chunks/sqlite3-M4UZPXDO.js +0 -2
  327. package/dist/commands/js-exec/js-exec-worker.d.ts +0 -33
  328. package/dist/fs/overlay-fs/merge.d.ts +0 -24
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-KNTDFP7X.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as lnCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-6FGMEZZP.js";import"./chunk-I57EACSL.js";import"./chunk-7JZKVC3F.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-NE4R2FVV.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as lsCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-CN4JKMTR.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-NE4R2FVV.js";import"./chunk-I4IRHQDW.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as mkdirCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-RTN6X652.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-NE4R2FVV.js";import"./chunk-I4IRHQDW.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as mvCommand};
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a as K}from"./chunk-7WBCA2BB.js";import{a as G}from"./chunk-3MRB66F4.js";import{b as q}from"./chunk-O2BCKSMK.js";import{a as Y,b as E}from"./chunk-TW2IJRUF.js";import{c as B,d as v}from"./chunk-PPVF2N6C.js";import{a as Q}from"./chunk-MROECM42.js";import{c as _}from"./chunk-42AMF6EE.js";import{b as N}from"./chunk-HWI42GQO.js";import{b as U}from"./chunk-CPKBPQ2C.js";import{a as z,b as $}from"./chunk-OHFB3M3X.js";import{a as D,b as g}from"./chunk-PBOVSFTJ.js";import{a as C}from"./chunk-I4IRHQDW.js";import{a as W,b as H}from"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";import{fileURLToPath as st}from"node:url";import{Worker as ot}from"node:worker_threads";var u={NOOP:0,READ_FILE:1,WRITE_FILE:2,STAT:3,READDIR:4,MKDIR:5,RM:6,EXISTS:7,APPEND_FILE:8,SYMLINK:9,READLINK:10,LSTAT:11,CHMOD:12,REALPATH:13,RENAME:14,COPY_FILE:15,WRITE_FILE_RANGE:17,READ_RESULT_RANGE:18,WRITE_STDOUT:100,WRITE_STDERR:101,EXIT:102,HTTP_REQUEST:200,EXEC_COMMAND:300,INVOKE_TOOL:400},y={IDLE:0,REQUEST:1,CANCELLED:2},a={NONE:0,SUCCESS:1,ERROR:2},h={NONE:0,NOT_FOUND:1,IS_DIRECTORY:2,NOT_DIRECTORY:3,EXISTS:4,PERMISSION_DENIED:5,INVALID_PATH:6,IO_ERROR:7,NETWORK_ERROR:9,NETWORK_NOT_CONFIGURED:10,NOT_EMPTY:11,LOOP:12,FILE_TOO_LARGE:13,NO_SPACE:14,BUSY:15,READ_ONLY:16,CROSS_DEVICE:17},M=Object.assign(Object.create(null),{ENOENT:h.NOT_FOUND,EISDIR:h.IS_DIRECTORY,ENOTDIR:h.NOT_DIRECTORY,ENOTEMPTY:h.NOT_EMPTY,EEXIST:h.EXISTS,EPERM:h.PERMISSION_DENIED,EACCES:h.PERMISSION_DENIED,EINVAL:h.INVALID_PATH,ELOOP:h.LOOP,EFBIG:h.FILE_TOO_LARGE,ENOSPC:h.NO_SPACE,EBUSY:h.BUSY,EROFS:h.READ_ONLY,EXDEV:h.CROSS_DEVICE}),tt=Object.create(null);for(let[o,t]of Object.entries(M))tt[t]=o;var i={OP_CODE:0,REQUEST:4,PATH_LENGTH:8,DATA_LENGTH:12,RESULT_LENGTH:16,ERROR_CODE:20,FLAGS:24,MODE:28,RESULT_STATE:32,PATH_BUFFER:36,DATA_BUFFER:4132},O={PATH_BUFFER:4096,DATA_BUFFER:8388608,TOTAL:8392740},I={NONE:0,RECURSIVE:1,FORCE:2,MKDIR_RECURSIVE:1},f={IS_FILE:0,IS_DIRECTORY:1,IS_SYMLINK:2,MODE:4,SIZE:8,MTIME:16,TOTAL:24};function X(){return new Y(O.TOTAL)}var k=class{int32View;uint8View;dataView;constructor(t){this.int32View=new Int32Array(t),this.uint8View=new Uint8Array(t),this.dataView=new DataView(t)}getOpCode(){return E.load(this.int32View,i.OP_CODE/4)}setOpCode(t){E.store(this.int32View,i.OP_CODE/4,t)}getRequest(){return E.load(this.int32View,i.REQUEST/4)}setRequest(t){E.store(this.int32View,i.REQUEST/4,t)}getResultState(){return E.load(this.int32View,i.RESULT_STATE/4)}setResultState(t){E.store(this.int32View,i.RESULT_STATE/4,t)}getPathLength(){return E.load(this.int32View,i.PATH_LENGTH/4)}setPathLength(t){E.store(this.int32View,i.PATH_LENGTH/4,t)}getDataLength(){return E.load(this.int32View,i.DATA_LENGTH/4)}setDataLength(t){E.store(this.int32View,i.DATA_LENGTH/4,t)}getResultLength(){return E.load(this.int32View,i.RESULT_LENGTH/4)}setResultLength(t){E.store(this.int32View,i.RESULT_LENGTH/4,t)}getErrorCode(){return E.load(this.int32View,i.ERROR_CODE/4)}setErrorCode(t){E.store(this.int32View,i.ERROR_CODE/4,t)}getFlags(){return E.load(this.int32View,i.FLAGS/4)}setFlags(t){E.store(this.int32View,i.FLAGS/4,t)}getMode(){return E.load(this.int32View,i.MODE/4)}setMode(t){E.store(this.int32View,i.MODE/4,t)}getPath(){let t=this.getPathLength(),e=this.uint8View.slice(i.PATH_BUFFER,i.PATH_BUFFER+t);return new TextDecoder().decode(e)}setPath(t){let e=new TextEncoder().encode(t);if(e.length>O.PATH_BUFFER)throw new Error(`Path too long: ${e.length} > ${O.PATH_BUFFER}`);this.uint8View.set(e,i.PATH_BUFFER),this.setPathLength(e.length)}getData(){let t=this.getDataLength();return this.uint8View.slice(i.DATA_BUFFER,i.DATA_BUFFER+t)}setData(t){if(t.length>O.DATA_BUFFER)throw new Error(`Data too large: ${t.length} > ${O.DATA_BUFFER}`);this.uint8View.set(t,i.DATA_BUFFER),this.setDataLength(t.length)}getDataAsString(){let t=this.getData();return new TextDecoder().decode(t)}setDataFromString(t){let e=new TextEncoder().encode(t);this.setData(e)}getResult(){let t=this.getResultLength();return this.uint8View.slice(i.DATA_BUFFER,i.DATA_BUFFER+t)}setResult(t){if(t.length>O.DATA_BUFFER)throw new Error(`Result too large: ${t.length} > ${O.DATA_BUFFER}`);this.uint8View.set(t,i.DATA_BUFFER),this.setResultLength(t.length)}setResultPrefix(t){if(t.length>2147483647)throw new Error(`Result too large: ${t.length} exceeds int32`);let e=Math.min(t.length,O.DATA_BUFFER);this.uint8View.set(t.subarray(0,e),i.DATA_BUFFER),this.setResultLength(t.length)}getResultAsString(){let t=this.getResult();return new TextDecoder().decode(t)}setResultFromString(t){let e=new TextEncoder().encode(t);this.setResult(e)}encodeStat(t){this.uint8View[i.DATA_BUFFER+f.IS_FILE]=t.isFile?1:0,this.uint8View[i.DATA_BUFFER+f.IS_DIRECTORY]=t.isDirectory?1:0,this.uint8View[i.DATA_BUFFER+f.IS_SYMLINK]=t.isSymbolicLink?1:0,this.dataView.setInt32(i.DATA_BUFFER+f.MODE,t.mode,!0);let e=Math.min(t.size,Number.MAX_SAFE_INTEGER);this.dataView.setFloat64(i.DATA_BUFFER+f.SIZE,e,!0),this.dataView.setFloat64(i.DATA_BUFFER+f.MTIME,t.mtime.getTime(),!0),this.setResultLength(f.TOTAL)}decodeStat(){return{isFile:this.uint8View[i.DATA_BUFFER+f.IS_FILE]===1,isDirectory:this.uint8View[i.DATA_BUFFER+f.IS_DIRECTORY]===1,isSymbolicLink:this.uint8View[i.DATA_BUFFER+f.IS_SYMLINK]===1,mode:this.dataView.getInt32(i.DATA_BUFFER+f.MODE,!0),size:this.dataView.getFloat64(i.DATA_BUFFER+f.SIZE,!0),mtime:new Date(this.dataView.getFloat64(i.DATA_BUFFER+f.MTIME,!0))}}async waitUntilReady(t){let e=Date.now();for(;;){let s=this.getRequest();if(s===y.REQUEST)return!0;if(s!==y.IDLE)return!1;let r=Date.now()-e;if(r>=t)return!1;let n=t-r,l=E.waitAsync(this.int32View,i.REQUEST/4,y.IDLE,n);if(l.async&&await l.value==="timed-out")return!1}}waitForResult(t){return E.wait(this.int32View,i.RESULT_STATE/4,a.NONE,t)}notifyRequest(){return E.notify(this.int32View,i.REQUEST/4)}notifyResult(){return E.notify(this.int32View,i.RESULT_STATE/4)}reset(){this.setOpCode(u.NOOP),this.setRequest(y.IDLE),this.setResultState(a.NONE),this.setPathLength(0),this.setDataLength(0),this.setResultLength(0),this.setErrorCode(h.NONE),this.setFlags(I.NONE),this.setMode(0)}};function et(o){return o!==void 0&&Object.hasOwn(M,o)?M[o]:h.IO_ERROR}var b=class{fs;cwd;commandName;secureFetch;maxOutputSize;exec;invokeTool;protocol;running=!1;output={stdout:"",stderr:"",exitCode:0};outputLimitExceeded=!1;startTime=0;timeoutMs=0;lastResult=null;constructor(t,e,s,r,n=void 0,l=0,R=void 0,p=void 0){this.fs=e,this.cwd=s,this.commandName=r,this.secureFetch=n,this.maxOutputSize=l,this.exec=R,this.invokeTool=p,this.protocol=new k(t)}remainingMs(){return Math.max(0,this.timeoutMs-(Date.now()-this.startTime))}raceDeadline(t){let e=this.remainingMs();if(e<=0)return this.running=!1,this.output.exitCode=124,this.output.stderr+=`
4
+ ${this.commandName}: execution timeout exceeded
5
+ `,Promise.reject(new Error("Operation timed out"));let s=t();return e===Number.POSITIVE_INFINITY?s:new Promise((r,n)=>{let l=B(()=>{this.running=!1,this.output.exitCode=124,this.output.stderr+=`
6
+ ${this.commandName}: execution timeout exceeded
7
+ `,n(new Error("Operation timed out"))},e);s.then(R=>{v(l),r(R)},R=>{v(l),n(R)})})}async run(t){for(this.running=!0,this.startTime=Date.now(),this.timeoutMs=t;this.running;){if(Date.now()-this.startTime>=t){this.output.stderr+=`
8
+ ${this.commandName}: execution timeout exceeded
9
+ `,this.output.exitCode=124;break}let s=this.remainingMs();if(!await this.protocol.waitUntilReady(s)){if(!this.running)break;this.output.stderr+=`
10
+ ${this.commandName}: execution timeout exceeded
11
+ `,this.output.exitCode=124;break}if(!this.running)break;this.protocol.setRequest(y.IDLE);let n=this.protocol.getOpCode();await this.handleOperation(n),this.protocol.notifyResult()}return this.output}stop(){this.running=!1,this.lastResult=null,this.protocol.setRequest(y.CANCELLED),this.protocol.notifyRequest()}async handleOperation(t){try{switch(t){case u.READ_FILE:await this.handleReadFile();break;case u.WRITE_FILE:await this.handleWriteFile();break;case u.STAT:await this.handleStat();break;case u.LSTAT:await this.handleLstat();break;case u.READDIR:await this.handleReaddir();break;case u.MKDIR:await this.handleMkdir();break;case u.READ_RESULT_RANGE:this.handleReadResultRange();break;case u.WRITE_FILE_RANGE:await this.handleWriteFileRange();break;case u.RM:await this.handleRm();break;case u.EXISTS:await this.handleExists();break;case u.APPEND_FILE:await this.handleAppendFile();break;case u.SYMLINK:await this.handleSymlink();break;case u.READLINK:await this.handleReadlink();break;case u.CHMOD:await this.handleChmod();break;case u.REALPATH:await this.handleRealpath();break;case u.RENAME:await this.handleRename();break;case u.COPY_FILE:await this.handleCopyFile();break;case u.WRITE_STDOUT:this.handleWriteStdout();break;case u.WRITE_STDERR:this.handleWriteStderr();break;case u.EXIT:this.handleExit();break;case u.HTTP_REQUEST:await this.handleHttpRequest();break;case u.EXEC_COMMAND:await this.handleExecCommand();break;case u.INVOKE_TOOL:await this.handleInvokeTool();break;default:this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultState(a.ERROR)}}catch(e){this.setErrorFromException(e)}}publishResult(t){let e=typeof t=="string"?new TextEncoder().encode(t):t;this.lastResult=e,this.protocol.setResultPrefix(e),this.protocol.setResultState(a.SUCCESS)}handleReadResultRange(){let t=this.protocol.getFlags(),e=this.protocol.getMode(),s=this.lastResult;if(!s||t>=s.length){this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString(`No retained result for range read (offset=${t}, length=${e}, retained=${s?.length??"none"})`),this.protocol.setResultState(a.ERROR);return}this.protocol.setResult(s.subarray(t,t+e)),this.protocol.setResultState(a.SUCCESS)}resolvePath(t){return this.fs.resolvePath(this.cwd,t)}async handleReadFile(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readFileBuffer(t);this.publishResult(e)}catch(e){this.setErrorFromException(e)}}async handleWriteFileRange(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getFlags(),s=this.protocol.getData();try{if(e===0)await this.fs.writeFile(t,s);else{let r=await this.fs.stat(t);if(r.size!==e)throw new z("EIO",`non-sequential range write to '${t}': offset ${e} != size ${r.size}`);await this.fs.appendFile(t,s)}this.protocol.setResultState(a.SUCCESS)}catch(r){this.setErrorFromException(r)}}async handleWriteFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getData();try{await this.fs.writeFile(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleStat(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.stat(t);this.protocol.encodeStat(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleLstat(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.lstat(t);this.protocol.encodeStat(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleReaddir(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readdir(t);this.publishResult(JSON.stringify(e))}catch(e){this.setErrorFromException(e)}}async handleMkdir(){let t=this.resolvePath(this.protocol.getPath()),s=(this.protocol.getFlags()&I.MKDIR_RECURSIVE)!==0;try{await this.fs.mkdir(t,{recursive:s}),this.protocol.setResultState(a.SUCCESS)}catch(r){this.setErrorFromException(r)}}async handleRm(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getFlags(),s=(e&I.RECURSIVE)!==0,r=(e&I.FORCE)!==0;try{await this.fs.rm(t,{recursive:s,force:r}),this.protocol.setResultState(a.SUCCESS)}catch(n){this.setErrorFromException(n)}}async handleExists(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.exists(t);this.protocol.setResult(new Uint8Array([e?1:0])),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleAppendFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getData();try{await this.fs.appendFile(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleSymlink(){let t=this.protocol.getPath(),e=this.protocol.getDataAsString(),s=this.resolvePath(t);try{await this.fs.symlink(e,s),this.protocol.setResultState(a.SUCCESS)}catch(r){this.setErrorFromException(r)}}async handleReadlink(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readlink(t);this.protocol.setResultFromString(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleChmod(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getMode();try{await this.fs.chmod(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleRealpath(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.realpath(t);this.protocol.setResultFromString(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleRename(){let t=this.resolvePath(this.protocol.getPath()),e=this.resolvePath(this.protocol.getDataAsString());try{await this.fs.mv(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleCopyFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.resolvePath(this.protocol.getDataAsString());try{await this.fs.cp(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}handleWriteStdout(){let t=this.protocol.getDataAsString();if(!this.tryAppendOutput("stdout",t)){this.outputLimitExceeded=!0,this.output.exitCode=1,this.appendOutputLimitError(),this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Output size limit exceeded"),this.protocol.setResultState(a.ERROR);return}this.protocol.setResultState(a.SUCCESS)}handleWriteStderr(){let t=this.protocol.getDataAsString();if(!this.tryAppendOutput("stderr",t)){this.outputLimitExceeded=!0,this.output.exitCode=1,this.appendOutputLimitError(),this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Output size limit exceeded"),this.protocol.setResultState(a.ERROR);return}this.protocol.setResultState(a.SUCCESS)}handleExit(){let t=this.protocol.getFlags();this.outputLimitExceeded?this.output.exitCode===0&&(this.output.exitCode=1):this.output.exitCode=t,this.protocol.setResultState(a.SUCCESS),this.running=!1}tryAppendOutput(t,e){return this.outputLimitExceeded?!1:this.maxOutputSize<=0?(t==="stdout"?this.output.stdout+=e:this.output.stderr+=e,!0):this.output.stdout.length+this.output.stderr.length+e.length>this.maxOutputSize?!1:(t==="stdout"?this.output.stdout+=e:this.output.stderr+=e,!0)}appendOutputLimitError(){if(this.maxOutputSize<=0)return;let t=`${this.commandName}: total output size exceeded (>${this.maxOutputSize} bytes), increase executionLimits.maxOutputSize
12
+ `,e=t.length>this.maxOutputSize?t.slice(0,this.maxOutputSize):t;if(this.output.stderr.includes("total output size exceeded"))return;let r=this.output.stdout.length+this.output.stderr.length+e.length-this.maxOutputSize;if(r>0)if(this.output.stdout.length>=r)this.output.stdout=this.output.stdout.slice(0,this.output.stdout.length-r);else{let n=r-this.output.stdout.length;this.output.stdout="",n>=this.output.stderr.length?this.output.stderr="":this.output.stderr=this.output.stderr.slice(0,this.output.stderr.length-n)}this.output.stderr+=e}async handleHttpRequest(){let t=this.secureFetch;if(!t){this.protocol.setErrorCode(h.NETWORK_NOT_CONFIGURED),this.protocol.setResultFromString("Network access not configured. Enable network in Bash options."),this.protocol.setResultState(a.ERROR);return}let e=this.protocol.getPath(),s=this.protocol.getDataAsString();try{let r=s?JSON.parse(s):{},n=this.remainingMs(),l=await this.raceDeadline(()=>t(e,{method:r.method,headers:r.headers,body:r.body,timeoutMs:n})),R=JSON.stringify({status:l.status,statusText:l.statusText,headers:l.headers,bodyBase64:q(l.body,"base64"),url:l.url});this.publishResult(R)}catch(r){let n=D(r instanceof Error?r.message:String(r));this.protocol.setErrorCode(h.NETWORK_ERROR),this.protocol.setResultFromString(n),this.protocol.setResultState(a.ERROR)}}async handleExecCommand(){let t=this.exec;if(!t){this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Command execution not available in this context."),this.protocol.setResultState(a.ERROR);return}let e=this.protocol.getPath(),s=this.protocol.getDataAsString(),r=new AbortController;try{let n={cwd:this.cwd,signal:r.signal};if(s){let p=JSON.parse(s);p.stdin&&(n.stdin=p.stdin),p.args&&Array.isArray(p.args)&&(n.args=p.args.map(m=>String(m)),e=G([e]))}let l=await this.raceDeadline(()=>t(e,n)),R=JSON.stringify({stdout:l.stdout,stderr:l.stderr,exitCode:l.exitCode});this.publishResult(R)}catch(n){r.abort();let l=n instanceof Error?n.message:String(n);this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString(l),this.protocol.setResultState(a.ERROR)}}async handleInvokeTool(){let t=this.invokeTool;if(!t){this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Tool invocation not available in this context."),this.protocol.setResultState(a.ERROR);return}let e=this.protocol.getPath(),s=this.protocol.getDataAsString();try{let r=await this.raceDeadline(()=>N.runTrustedAsync(()=>t(e,s)));this.publishResult(r)}catch(r){let n=g(r instanceof Error?r.message:String(r));this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString(n),this.protocol.setResultState(a.ERROR)}}setErrorFromException(t){let e=t instanceof Error?t.message:String(t),s=D(e);this.protocol.setErrorCode(et($(t))),this.protocol.setResultFromString(s),this.protocol.setResultState(a.ERROR)}};var rt={name:"python3",summary:"Execute Python code via CPython Emscripten",usage:"python3 [OPTIONS] [-c CODE | -m MODULE | FILE] [ARGS...]",description:["Execute Python code using CPython compiled to WebAssembly via Emscripten.","","This command runs Python in an isolated environment with access to","the virtual filesystem. Standard library modules are available."],options:["-c CODE Execute CODE as Python script","-m MODULE Run library module as a script","--version Show Python version","--help Show this help"],examples:['python3 -c "print(1 + 2)"','python3 -c "import sys; print(sys.version)"',"python3 script.py","python3 script.py arg1 arg2",`echo 'print("hello")' | python3`],notes:["CPython runs in WebAssembly, so execution may be slower than native Python.","Standard library modules are available (no pip install).","Maximum execution time is 30 seconds by default."]};function it(o){let t={code:null,module:null,scriptFile:null,showVersion:!1,scriptArgs:[]};if(o.length===0)return t;let e=o.findIndex(s=>!s.startsWith("-")||s==="-"||s==="--");for(let s=0;s<(e===-1?o.length:e);s++){let r=o[s];if(r==="-c")return s+1>=o.length?{stdout:"",stderr:`python3: option requires an argument -- 'c'
13
+ `,exitCode:2}:(t.code=o[s+1],t.scriptArgs=o.slice(s+2),t);if(r==="-m")return s+1>=o.length?{stdout:"",stderr:`python3: option requires an argument -- 'm'
14
+ `,exitCode:2}:(t.module=o[s+1],t.scriptArgs=o.slice(s+2),t);if(r==="--version"||r==="-V")return t.showVersion=!0,t;if(r.startsWith("-")&&r!=="-")return{stdout:"",stderr:`python3: unrecognized option '${r}'
15
+ `,exitCode:2}}if(e!==-1){let s=o[e];s==="--"?e+1<o.length&&(t.scriptFile=o[e+1],t.scriptArgs=o.slice(e+2)):(t.scriptFile=s,t.scriptArgs=o.slice(e+1))}return t}var V=new WeakMap;function nt(o){let t=V.get(o);return t||(t={executionQueue:[],activeExecution:null,poisonedError:null},V.set(o,t)),t}function Ut(){V=new WeakMap}var at=st(new URL("./worker.js",import.meta.url));function ct(o,t){if(!o||typeof o!="object")return{success:!1,error:"Malformed worker response"};let e=o;return typeof e.protocolToken!="string"||e.protocolToken!==t?{success:!1,error:"Malformed worker response: invalid protocol token"}:e.type==="security-violation"?{success:!1,error:`Security violation: ${typeof e.violation?.type=="string"?e.violation.type:"unknown"}`}:typeof e.success!="boolean"?{success:!1,error:"Malformed worker response: missing success flag"}:e.success?{success:!0}:{success:!1,error:typeof e.error=="string"&&e.error.length>0?e.error:"Worker execution failed"}}function P(o){if(o.poisonedError!==null){for(let c of o.executionQueue.splice(0))c.state==="queued"&&(c.state="settled",c.stopBridge(),c.settle({success:!1,error:o.poisonedError}));return}if(o.activeExecution!==null||o.executionQueue.length===0)return;for(;o.executionQueue.length>0&&o.executionQueue[0]?.state!=="queued";)o.executionQueue.shift();if(o.executionQueue.length===0)return;let t=o.executionQueue.shift();if(!t)return;t.state="running",o.activeExecution=t;let e;try{e=N.runTrusted(()=>new ot(at,{workerData:t.input}))}catch(c){let d=c instanceof Error?c.message:String(c);t.state="settled",t.settle({success:!1,error:g(d)}),o.activeExecution===t&&(o.activeExecution=null,P(o));return}t.worker=e;let s=!0,r=()=>{s&&(s=!1,e.removeListener("message",m),e.removeListener("error",A),e.removeListener("exit",L))},n=async(c,d)=>{if(!(o.activeExecution?.executionId!==t.executionId||t.state!=="running")){if(t.state="terminating",r(),t.settle(c),d&&!await t.controller.terminate(e)){let w="Worker termination was not acknowledged";t.worker=null,t.state="settled",o.poisonedError=w,o.activeExecution?.executionId===t.executionId&&(o.activeExecution=null),P(o);return}t.worker=null,t.state="settled",o.activeExecution?.executionId===t.executionId&&(o.activeExecution=null,P(o))}};t.cancel=c=>{n(c,!0)};let l=_(t.requireDefenseContext,"python3","worker message callback",c=>{try{t.controller.assertMessageSize(c,"response")}catch(d){n({success:!1,error:g(C(d))},!0);return}n(ct(c,t.input.protocolToken),!0)}),R=_(t.requireDefenseContext,"python3","worker error callback",c=>{let d=g(C(c));n({success:!1,error:d},!0)}),p=_(t.requireDefenseContext,"python3","worker exit callback",()=>{n({success:!1,error:"Worker exited unexpectedly"},!1)}),m=c=>{try{l(c)}catch(d){let S=d instanceof Error?d.message:String(d);n({success:!1,error:g(S)},!0)}},A=c=>{try{R(c)}catch(d){let S=d instanceof Error?d.message:String(d);n({success:!1,error:g(S)},!0)}},L=()=>{try{p()}catch(c){let d=c instanceof Error?c.message:String(c);n({success:!1,error:g(d)},!0)}};e.on("message",m),e.on("error",A),e.on("exit",L)}async function lt(o,t,e,s,r=[]){let n=X(),l=new b(n,e.fs,e.cwd,"python3",e.fetch,e.limits.maxOutputSize),R=e.limits.maxPythonTimeoutMs,p=nt(e.fs);if(p.poisonedError!==null)return{stdout:"",stderr:`python3: ${p.poisonedError}
16
+ `,exitCode:1};let m=new K({commandName:"python3",timeoutMs:R,signal:e.signal,maxMessageBytes:e.limits.maxWorkerMessageBytes}),A={protocolToken:m.protocolToken,sharedBuffer:n,pythonCode:o,stdin:t,cwd:e.cwd,env:Q(e.env),args:r,scriptPath:s,timeoutMs:R,maxFileSize:e.limits.maxStringLength};m.assertMessageSize({...A,sharedBuffer:void 0},"request");let L=new Promise(S=>{let w=!1,T={executionId:Symbol("python3 execution"),input:A,settle:F=>{w||(w=!0,m.close(),S(F))},requireDefenseContext:e.requireDefenseContext,state:"queued",worker:null,controller:m,stopBridge:()=>l.stop?.(),cancel:()=>{}};T.cancel=F=>{if(T.state!=="queued")return;T.state="settled";let x=p.executionQueue.indexOf(T);x!==-1&&p.executionQueue.splice(x,1),T.settle(F),P(p)};let J=_(e.requireDefenseContext,"python3","worker cancellation callback",F=>{l.stop?.(),T.cancel({success:!1,error:F==="abort"?m.abortMessage():m.timeoutMessage()})}),j=F=>{try{J(F)}catch(x){let Z=x instanceof Error?x.message:String(x);T.cancel({success:!1,error:g(Z)})}};m.arm(j),m.isCanceled||(p.executionQueue.push(T),P(p))}),[c,d]=await Promise.all([l.run(R).catch(S=>({stdout:"",stderr:`python3: bridge error: ${g(C(S))}
17
+ `,exitCode:1})),L.catch(S=>({success:!1,error:g(C(S))}))]);if(!d.success&&d.error){let S=g(d.error),w=d.error===m.timeoutMessage()||d.error===m.abortMessage();return{stdout:c.stdout,stderr:`${c.stderr}python3: ${S}
18
+ `,exitCode:c.exitCode||(w?124:1)}}return{...c}}var ht={name:"python3",async execute(o,t){if(H(o))return W(rt);let e=it(o);if("exitCode"in e)return e;if(e.showVersion)return{stdout:`Python 3.13.2 (Emscripten)
19
+ `,stderr:"",exitCode:0};let s,r,n=t.stdin;if(e.code!==null)s=e.code,r="-c";else if(e.module!==null){if(!/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(e.module))return{stdout:"",stderr:`python3: No module named '${e.module.slice(0,200)}'
20
+ `,exitCode:1};s=`import runpy; runpy.run_module('${e.module}', run_name='__main__')`,r=e.module}else if(e.scriptFile==="-")s=U(t.stdin),n="",r="-";else if(e.scriptFile!==null){let l=t.fs.resolvePath(t.cwd,e.scriptFile);if(!await t.fs.exists(l))return{stdout:"",stderr:`python3: can't open file '${e.scriptFile}': [Errno 2] No such file or directory
21
+ `,exitCode:2};try{s=await t.fs.readFile(l),r=e.scriptFile}catch(R){let p=D(R.message);return{stdout:"",stderr:`python3: can't open file '${e.scriptFile}': ${p}
22
+ `,exitCode:2}}}else if(U(t.stdin).trim())s=U(t.stdin),n="",r="<stdin>";else return{stdout:"",stderr:`python3: no input provided (use -c CODE, -m MODULE, or provide a script file)
23
+ `,exitCode:2};return lt(s,n,t,r,e.scriptArgs)}},kt={name:"python",async execute(o,t){return ht.execute(o,t)}};export{Ut as _resetExecutionQueue,ht as python3Command,kt as pythonCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-ABP4OLJV.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as readlinkCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-VPSBWWXM.js";import"./chunk-47IFMQYS.js";import"./chunk-3MRB66F4.js";import"./chunk-QFOXSCOD.js";import"./chunk-YXPSX3SI.js";import"./chunk-GR4ZHKXI.js";import"./chunk-HWI42GQO.js";import"./chunk-I57EACSL.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as rgCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-F2PYTUMR.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-NE4R2FVV.js";import"./chunk-I4IRHQDW.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as rmCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-3ROYEBJI.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-NE4R2FVV.js";import"./chunk-I4IRHQDW.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as rmdirCommand};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a,b}from"./chunk-7VWOECJ3.js";import"./chunk-42AMF6EE.js";import"./chunk-GA5TPRMF.js";import"./chunk-HWI42GQO.js";import"./chunk-YERKK5B3.js";import"./chunk-I57EACSL.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as sedCommand};
3
+ import{a,b}from"./chunk-PTUQEN6I.js";import"./chunk-42AMF6EE.js";import"./chunk-YXPSX3SI.js";import"./chunk-HWI42GQO.js";import"./chunk-YERKK5B3.js";import"./chunk-I57EACSL.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as sedCommand};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a,b}from"./chunk-L345YZ6R.js";import"./chunk-B2DRBHGQ.js";import"./chunk-QKJAAJ7J.js";import"./chunk-HWI42GQO.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as sleepCommand};
3
+ import{a,b}from"./chunk-MF3GVFLC.js";import"./chunk-B2DRBHGQ.js";import"./chunk-PPVF2N6C.js";import"./chunk-HWI42GQO.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as sleepCommand};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b}from"./chunk-KMYJMEON.js";import"./chunk-GR4ZHKXI.js";import"./chunk-HWI42GQO.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as split};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
+ import{a,b,c}from"./chunk-MPFNZYEA.js";import"./chunk-7WBCA2BB.js";import"./chunk-PPVF2N6C.js";import"./chunk-42AMF6EE.js";import"./chunk-HWI42GQO.js";import"./chunk-MBREBDZQ.js";import"./chunk-HWK7KFGB.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-OHFB3M3X.js";import"./chunk-PBOVSFTJ.js";import"./chunk-I4IRHQDW.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{a as _internals,c as flagsForFuzzing,b as sqlite3Command};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a,b}from"./chunk-RPUFEP5O.js";import"./chunk-QES5OSUC.js";import"./chunk-BIJXTWZ4.js";import"./chunk-GA5TPRMF.js";import"./chunk-HWI42GQO.js";import"./chunk-I57EACSL.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as tarCommand};
3
+ import{a,b}from"./chunk-M3Z5NZXT.js";import"./chunk-QES5OSUC.js";import"./chunk-BIJXTWZ4.js";import"./chunk-YXPSX3SI.js";import"./chunk-HWI42GQO.js";import"./chunk-I57EACSL.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as tarCommand};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a,b}from"./chunk-6TUILMPB.js";import"./chunk-B2DRBHGQ.js";import"./chunk-3MRB66F4.js";import"./chunk-3PCPQIUD.js";import"./chunk-QKJAAJ7J.js";import"./chunk-HWI42GQO.js";import"./chunk-CPKBPQ2C.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as timeoutCommand};
3
+ import{a,b}from"./chunk-QFTZKD5O.js";import"./chunk-B2DRBHGQ.js";import"./chunk-3MRB66F4.js";import"./chunk-3PCPQIUD.js";import"./chunk-PPVF2N6C.js";import"./chunk-HWI42GQO.js";import"./chunk-CPKBPQ2C.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as timeoutCommand};
@@ -1711,11 +1711,18 @@ var OpCode = {
1711
1711
  // Tool invocation (executor mode)
1712
1712
  INVOKE_TOOL: 400
1713
1713
  };
1714
- var Status = {
1715
- PENDING: 0,
1716
- READY: 1,
1717
- SUCCESS: 2,
1718
- ERROR: 3
1714
+ var RequestState = {
1715
+ IDLE: 0,
1716
+ /** Worker has published an op. */
1717
+ REQUEST: 1,
1718
+ /** stop() cancellation wake. The host treats any non-REQUEST wake as
1719
+ * loop-abort (stop() also flips its `running` flag). */
1720
+ CANCELLED: 2
1721
+ };
1722
+ var ResultState = {
1723
+ NONE: 0,
1724
+ SUCCESS: 1,
1725
+ ERROR: 2
1719
1726
  };
1720
1727
  var ErrorCode = {
1721
1728
  NONE: 0,
@@ -1726,34 +1733,65 @@ var ErrorCode = {
1726
1733
  PERMISSION_DENIED: 5,
1727
1734
  INVALID_PATH: 6,
1728
1735
  IO_ERROR: 7,
1729
- TIMEOUT: 8,
1730
1736
  NETWORK_ERROR: 9,
1731
1737
  NETWORK_NOT_CONFIGURED: 10,
1732
- NOT_EMPTY: 11
1738
+ NOT_EMPTY: 11,
1739
+ LOOP: 12,
1740
+ FILE_TOO_LARGE: 13,
1741
+ NO_SPACE: 14,
1742
+ BUSY: 15,
1743
+ READ_ONLY: 16,
1744
+ CROSS_DEVICE: 17
1733
1745
  };
1746
+ var ERRNO_TO_WIRE = Object.assign(
1747
+ /* @__PURE__ */ Object.create(null),
1748
+ {
1749
+ ENOENT: ErrorCode.NOT_FOUND,
1750
+ EISDIR: ErrorCode.IS_DIRECTORY,
1751
+ ENOTDIR: ErrorCode.NOT_DIRECTORY,
1752
+ ENOTEMPTY: ErrorCode.NOT_EMPTY,
1753
+ EEXIST: ErrorCode.EXISTS,
1754
+ EPERM: ErrorCode.PERMISSION_DENIED,
1755
+ EACCES: ErrorCode.PERMISSION_DENIED,
1756
+ EINVAL: ErrorCode.INVALID_PATH,
1757
+ ELOOP: ErrorCode.LOOP,
1758
+ EFBIG: ErrorCode.FILE_TOO_LARGE,
1759
+ ENOSPC: ErrorCode.NO_SPACE,
1760
+ EBUSY: ErrorCode.BUSY,
1761
+ EROFS: ErrorCode.READ_ONLY,
1762
+ EXDEV: ErrorCode.CROSS_DEVICE
1763
+ }
1764
+ );
1765
+ var WIRE_TO_ERRNO = /* @__PURE__ */ Object.create(null);
1766
+ for (const [name, code] of Object.entries(ERRNO_TO_WIRE)) {
1767
+ WIRE_TO_ERRNO[code] = name;
1768
+ }
1769
+ function wireToErrnoName(code) {
1770
+ return Object.hasOwn(WIRE_TO_ERRNO, code) ? WIRE_TO_ERRNO[code] : void 0;
1771
+ }
1734
1772
  var Offset = {
1735
1773
  OP_CODE: 0,
1736
- STATUS: 4,
1774
+ REQUEST: 4,
1737
1775
  PATH_LENGTH: 8,
1738
1776
  DATA_LENGTH: 12,
1739
1777
  RESULT_LENGTH: 16,
1740
1778
  ERROR_CODE: 20,
1741
1779
  FLAGS: 24,
1742
1780
  MODE: 28,
1743
- PATH_BUFFER: 32,
1744
- DATA_BUFFER: 4128
1745
- // 32 + 4096
1781
+ RESULT_STATE: 32,
1782
+ PATH_BUFFER: 36,
1783
+ DATA_BUFFER: 4132
1784
+ // 36 + 4096
1746
1785
  };
1747
1786
  var Size = {
1748
- CONTROL_REGION: 32,
1749
1787
  PATH_BUFFER: 4096,
1750
1788
  // 8MB transfer CHUNK size — not a semantic cap. Results larger than
1751
1789
  // this are assembled transparently (READ_RESULT_RANGE), and large
1752
1790
  // writes stream as WRITE_FILE_RANGE chunks. Sized to keep ordinary
1753
1791
  // ops single-transfer while bounding per-transfer copies.
1754
1792
  DATA_BUFFER: 8388608,
1755
- TOTAL: 8392736
1756
- // 32 + 4096 + 8MB
1793
+ TOTAL: 8392740
1794
+ // 36 + 4096 + 8MB
1757
1795
  };
1758
1796
  var Flags = {
1759
1797
  NONE: 0,
@@ -1785,11 +1823,23 @@ var ProtocolBuffer = class {
1785
1823
  setOpCode(code) {
1786
1824
  _Atomics.store(this.int32View, Offset.OP_CODE / 4, code);
1787
1825
  }
1788
- getStatus() {
1789
- return _Atomics.load(this.int32View, Offset.STATUS / 4);
1826
+ getRequest() {
1827
+ return _Atomics.load(
1828
+ this.int32View,
1829
+ Offset.REQUEST / 4
1830
+ );
1790
1831
  }
1791
- setStatus(status) {
1792
- _Atomics.store(this.int32View, Offset.STATUS / 4, status);
1832
+ setRequest(request) {
1833
+ _Atomics.store(this.int32View, Offset.REQUEST / 4, request);
1834
+ }
1835
+ getResultState() {
1836
+ return _Atomics.load(
1837
+ this.int32View,
1838
+ Offset.RESULT_STATE / 4
1839
+ );
1840
+ }
1841
+ setResultState(state) {
1842
+ _Atomics.store(this.int32View, Offset.RESULT_STATE / 4, state);
1793
1843
  }
1794
1844
  getPathLength() {
1795
1845
  return _Atomics.load(this.int32View, Offset.PATH_LENGTH / 4);
@@ -1937,33 +1987,21 @@ var ProtocolBuffer = class {
1937
1987
  )
1938
1988
  };
1939
1989
  }
1940
- waitForReady(timeout) {
1941
- return _Atomics.wait(
1942
- this.int32View,
1943
- Offset.STATUS / 4,
1944
- Status.PENDING,
1945
- timeout
1946
- );
1947
- }
1948
- waitForReadyAsync(timeout) {
1949
- return _Atomics.waitAsync(
1950
- this.int32View,
1951
- Offset.STATUS / 4,
1952
- Status.PENDING,
1953
- timeout
1954
- );
1955
- }
1956
1990
  /**
1957
- * Wait for status to become READY.
1958
- * Returns immediately if status is already READY, or waits until it changes.
1991
+ * Wait for the request word to become REQUEST.
1992
+ * Returns immediately if already REQUEST; CANCELLED or any unexpected
1993
+ * state returns false (the caller's running-flag check aborts the loop).
1959
1994
  */
1960
1995
  async waitUntilReady(timeout) {
1961
1996
  const startTime = Date.now();
1962
1997
  while (true) {
1963
- const status = this.getStatus();
1964
- if (status === Status.READY) {
1998
+ const request = this.getRequest();
1999
+ if (request === RequestState.REQUEST) {
1965
2000
  return true;
1966
2001
  }
2002
+ if (request !== RequestState.IDLE) {
2003
+ return false;
2004
+ }
1967
2005
  const elapsed = Date.now() - startTime;
1968
2006
  if (elapsed >= timeout) {
1969
2007
  return false;
@@ -1971,8 +2009,8 @@ var ProtocolBuffer = class {
1971
2009
  const remainingMs = timeout - elapsed;
1972
2010
  const result = _Atomics.waitAsync(
1973
2011
  this.int32View,
1974
- Offset.STATUS / 4,
1975
- status,
2012
+ Offset.REQUEST / 4,
2013
+ RequestState.IDLE,
1976
2014
  remainingMs
1977
2015
  );
1978
2016
  if (result.async) {
@@ -1983,20 +2021,25 @@ var ProtocolBuffer = class {
1983
2021
  }
1984
2022
  }
1985
2023
  }
2024
+ /** Worker-side blocking wait on the RESULT word (host writes). */
1986
2025
  waitForResult(timeout) {
1987
2026
  return _Atomics.wait(
1988
2027
  this.int32View,
1989
- Offset.STATUS / 4,
1990
- Status.READY,
2028
+ Offset.RESULT_STATE / 4,
2029
+ ResultState.NONE,
1991
2030
  timeout
1992
2031
  );
1993
2032
  }
1994
- notify() {
1995
- return _Atomics.notify(this.int32View, Offset.STATUS / 4);
2033
+ notifyRequest() {
2034
+ return _Atomics.notify(this.int32View, Offset.REQUEST / 4);
2035
+ }
2036
+ notifyResult() {
2037
+ return _Atomics.notify(this.int32View, Offset.RESULT_STATE / 4);
1996
2038
  }
1997
2039
  reset() {
1998
2040
  this.setOpCode(OpCode.NOOP);
1999
- this.setStatus(Status.PENDING);
2041
+ this.setRequest(RequestState.IDLE);
2042
+ this.setResultState(ResultState.NONE);
2000
2043
  this.setPathLength(0);
2001
2044
  this.setDataLength(0);
2002
2045
  this.setResultLength(0);
@@ -2023,23 +2066,14 @@ var SyncBackend = class {
2023
2066
  if (data) {
2024
2067
  this.protocol.setData(data);
2025
2068
  }
2026
- this.protocol.setStatus(Status.READY);
2027
- this.protocol.notify();
2028
- const deadline = Date.now() + this.operationTimeoutMs;
2029
- let waitResult = this.protocol.waitForResult(this.operationTimeoutMs);
2030
- while (waitResult !== "timed-out" && this.protocol.getStatus() === Status.READY) {
2031
- const remaining = deadline - Date.now();
2032
- if (remaining <= 0) {
2033
- waitResult = "timed-out";
2034
- break;
2035
- }
2036
- waitResult = this.protocol.waitForResult(remaining);
2037
- }
2069
+ this.protocol.setRequest(RequestState.REQUEST);
2070
+ this.protocol.notifyRequest();
2071
+ const waitResult = this.protocol.waitForResult(this.operationTimeoutMs);
2038
2072
  if (waitResult === "timed-out") {
2039
2073
  return { success: false, error: "Operation timed out" };
2040
2074
  }
2041
- const status = this.protocol.getStatus();
2042
- if (status === Status.SUCCESS) {
2075
+ const resultState = this.protocol.getResultState();
2076
+ if (resultState === ResultState.SUCCESS) {
2043
2077
  const totalLength = this.protocol.getResultLength();
2044
2078
  if (totalLength <= Size.DATA_BUFFER) {
2045
2079
  return { success: true, result: this.protocol.getResult() };
@@ -2068,12 +2102,19 @@ var SyncBackend = class {
2068
2102
  }
2069
2103
  return { success: true, result: content };
2070
2104
  }
2105
+ if (resultState === ResultState.ERROR) {
2106
+ return {
2107
+ success: false,
2108
+ error: this.protocol.getResultAsString() || // Impossible by construction: every host error path publishes a
2109
+ // code and message. If this ever fires, the diagnostic payload
2110
+ // must identify the exact protocol state.
2111
+ `bridge protocol violation: op ${opCode} ERROR with empty message (wait=${waitResult}, errorCode=${this.protocol.getErrorCode()})`,
2112
+ errorCode: this.protocol.getErrorCode()
2113
+ };
2114
+ }
2071
2115
  return {
2072
2116
  success: false,
2073
- error: this.protocol.getResultAsString() || // Impossible by construction: every host error path publishes a
2074
- // code and message. If this ever fires, the diagnostic payload
2075
- // must identify the exact protocol state.
2076
- `bridge protocol violation: op ${opCode} woke with status ${status} (wait=${waitResult}, errorCode=${this.protocol.getErrorCode()})`,
2117
+ error: `bridge protocol violation: op ${opCode} woke with resultState ${resultState} (wait=${waitResult}, errorCode=${this.protocol.getErrorCode()})`,
2077
2118
  errorCode: this.protocol.getErrorCode()
2078
2119
  };
2079
2120
  }
@@ -2082,6 +2123,10 @@ var SyncBackend = class {
2082
2123
  opError_(fallback, result) {
2083
2124
  const err = new Error(result.error || fallback);
2084
2125
  err.bridgeErrorCode = result.errorCode;
2126
+ if (result.errorCode !== void 0) {
2127
+ const name = wireToErrnoName(result.errorCode);
2128
+ if (name !== void 0) err.code = name;
2129
+ }
2085
2130
  return err;
2086
2131
  }
2087
2132
  readFile(path) {
@@ -2291,14 +2336,14 @@ var require2 = createRequire(import.meta.url);
2291
2336
  var CPYTHON_ENTRY_BASENAME = "/vendor/cpython-emscripten/python.cjs";
2292
2337
  var CPYTHON_STDLIB_BASENAME = "/vendor/cpython-emscripten/python313.zip";
2293
2338
  var moduleLoadGuardInstalled = false;
2294
- function normalizePath(path) {
2339
+ function normalizeSeparators(path) {
2295
2340
  return path.replace(/\\/g, "/");
2296
2341
  }
2297
2342
  function isApprovedCpythonEntryPath(path) {
2298
- return normalizePath(path).endsWith(CPYTHON_ENTRY_BASENAME);
2343
+ return normalizeSeparators(path).endsWith(CPYTHON_ENTRY_BASENAME);
2299
2344
  }
2300
2345
  function isApprovedStdlibZipPath(path) {
2301
- return normalizePath(path).endsWith(CPYTHON_STDLIB_BASENAME);
2346
+ return normalizeSeparators(path).endsWith(CPYTHON_STDLIB_BASENAME);
2302
2347
  }
2303
2348
  function assertApprovedPath(path, kind) {
2304
2349
  const ok = kind === "cpython-entry" ? isApprovedCpythonEntryPath(path) : isApprovedStdlibZipPath(path);
@@ -2378,26 +2423,20 @@ function createHOSTFS(backend, FS, PATH, configuredMaxFileSize) {
2378
2423
  const ERRNO_CODES = Object.assign(
2379
2424
  /* @__PURE__ */ Object.create(null),
2380
2425
  {
2381
- EPERM: 63,
2382
2426
  ENOENT: 44,
2383
2427
  EIO: 29,
2384
- EBADF: 8,
2385
- EAGAIN: 6,
2386
2428
  EACCES: 2,
2387
2429
  EBUSY: 10,
2388
2430
  EEXIST: 20,
2389
2431
  ENOTDIR: 54,
2390
2432
  EISDIR: 31,
2433
+ ELOOP: 32,
2391
2434
  EINVAL: 28,
2392
2435
  EFBIG: 27,
2393
- EMFILE: 33,
2394
2436
  ENOSPC: 51,
2395
- ESPIPE: 70,
2396
2437
  EROFS: 69,
2397
- ENOTEMPTY: 55,
2398
- ENOSYS: 52,
2399
- ENOTSUP: 138,
2400
- ENODATA: 42
2438
+ EXDEV: 75,
2439
+ ENOTEMPTY: 55
2401
2440
  }
2402
2441
  );
2403
2442
  function realPath(node) {
@@ -2413,41 +2452,13 @@ function createHOSTFS(backend, FS, PATH, configuredMaxFileSize) {
2413
2452
  function errnoFromError(e) {
2414
2453
  const bridgeCode = e?.bridgeErrorCode;
2415
2454
  if (typeof bridgeCode === "number" && bridgeCode !== ErrorCode.NONE) {
2416
- switch (bridgeCode) {
2417
- case ErrorCode.NOT_FOUND:
2418
- return ERRNO_CODES.ENOENT;
2419
- case ErrorCode.IS_DIRECTORY:
2420
- return ERRNO_CODES.EISDIR;
2421
- case ErrorCode.NOT_DIRECTORY:
2422
- return ERRNO_CODES.ENOTDIR;
2423
- case ErrorCode.EXISTS:
2424
- return ERRNO_CODES.EEXIST;
2425
- case ErrorCode.PERMISSION_DENIED:
2426
- return ERRNO_CODES.EACCES;
2427
- case ErrorCode.NOT_EMPTY:
2428
- return ERRNO_CODES.ENOTEMPTY;
2429
- case ErrorCode.INVALID_PATH:
2430
- return ERRNO_CODES.EINVAL;
2431
- default:
2432
- return ERRNO_CODES.EIO;
2455
+ const name = wireToErrnoName(bridgeCode);
2456
+ if (name !== void 0 && Object.hasOwn(ERRNO_CODES, name)) {
2457
+ return ERRNO_CODES[name];
2433
2458
  }
2459
+ return ERRNO_CODES.EIO;
2434
2460
  }
2435
- const msg = e?.message?.toLowerCase() || (typeof e === "string" ? e.toLowerCase() : "");
2436
- let code = ERRNO_CODES.EIO;
2437
- if (msg.includes("no such file") || msg.includes("not found")) {
2438
- code = ERRNO_CODES.ENOENT;
2439
- } else if (msg.includes("is a directory")) {
2440
- code = ERRNO_CODES.EISDIR;
2441
- } else if (msg.includes("not a directory")) {
2442
- code = ERRNO_CODES.ENOTDIR;
2443
- } else if (msg.includes("already exists")) {
2444
- code = ERRNO_CODES.EEXIST;
2445
- } else if (msg.includes("permission")) {
2446
- code = ERRNO_CODES.EACCES;
2447
- } else if (msg.includes("not empty")) {
2448
- code = ERRNO_CODES.ENOTEMPTY;
2449
- }
2450
- return code;
2461
+ return ERRNO_CODES.EIO;
2451
2462
  }
2452
2463
  function tryFSOperation(f) {
2453
2464
  try {
@@ -3396,7 +3407,7 @@ function activateDefense(protocolToken) {
3396
3407
  );
3397
3408
  defense = new WorkerDefenseInDepth({
3398
3409
  excludeViolationTypes: [
3399
- // SharedArrayBuffer/Atomics: Used by sync-fs-backend.ts for synchronous
3410
+ // SharedArrayBuffer/Atomics: Used by worker-bridge/sync-backend.ts for synchronous
3400
3411
  // filesystem communication between the WASM thread and the main thread.
3401
3412
  "shared_array_buffer",
3402
3413
  "atomics",
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a,b}from"./chunk-7PUOS2OO.js";import"./chunk-V4U26ZWL.js";import"./chunk-KP2UH5CJ.js";import"./chunk-F3UDTTI7.js";import"./chunk-47IFMQYS.js";import"./chunk-MROECM42.js";import"./chunk-42AMF6EE.js";import"./chunk-GA5TPRMF.js";import"./chunk-2UV6ZFHK.js";import"./chunk-GR4ZHKXI.js";import"./chunk-HWI42GQO.js";import"./chunk-YERKK5B3.js";import"./chunk-I57EACSL.js";import"./chunk-7JZKVC3F.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as xanCommand};
3
+ import{a,b}from"./chunk-ANX7U57Q.js";import"./chunk-V4U26ZWL.js";import"./chunk-KP2UH5CJ.js";import"./chunk-ONF4KUYV.js";import"./chunk-47IFMQYS.js";import"./chunk-MROECM42.js";import"./chunk-42AMF6EE.js";import"./chunk-YXPSX3SI.js";import"./chunk-2UV6ZFHK.js";import"./chunk-GR4ZHKXI.js";import"./chunk-HWI42GQO.js";import"./chunk-YERKK5B3.js";import"./chunk-I57EACSL.js";import"./chunk-7JZKVC3F.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as xanCommand};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  import{createRequire} from"node:module";const require=createRequire(import.meta.url);
3
- import{a,b}from"./chunk-V2XF3TTW.js";import"./chunk-KP2UH5CJ.js";import"./chunk-F3UDTTI7.js";import"./chunk-47IFMQYS.js";import"./chunk-MROECM42.js";import"./chunk-42AMF6EE.js";import"./chunk-GA5TPRMF.js";import"./chunk-HWI42GQO.js";import"./chunk-YERKK5B3.js";import"./chunk-I57EACSL.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as yqCommand};
3
+ import{a,b}from"./chunk-PRVPFKTC.js";import"./chunk-KP2UH5CJ.js";import"./chunk-ONF4KUYV.js";import"./chunk-47IFMQYS.js";import"./chunk-MROECM42.js";import"./chunk-42AMF6EE.js";import"./chunk-YXPSX3SI.js";import"./chunk-HWI42GQO.js";import"./chunk-YERKK5B3.js";import"./chunk-I57EACSL.js";import"./chunk-FUT3X2GJ.js";import"./chunk-CPKBPQ2C.js";import"./chunk-PBOVSFTJ.js";import"./chunk-MUFNRCMY.js";import"./chunk-DN2YCFOR.js";export{b as flagsForFuzzing,a as yqCommand};