@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.
- package/CHANGELOG.md +79 -0
- package/README.md +15 -5
- package/dist/AGENTS.md +2 -2
- package/dist/Bash.d.ts +4 -2
- package/dist/bin/chunks/{awk2-KO7ZE3P7.js → awk2-NTRVFXRA.js} +1 -1
- package/dist/bin/chunks/chmod-GX5SYTRL.js +3 -0
- package/dist/bin/chunks/chunk-2NJJXU4K.js +27 -0
- package/dist/bin/{shell/chunks/chunk-ZMGLTHSU.js → chunks/chunk-3ROYEBJI.js} +1 -1
- package/dist/bin/chunks/chunk-6FGMEZZP.js +20 -0
- package/dist/bin/chunks/chunk-6JUPBMCR.js +13 -0
- package/dist/bin/{shell/chunks/chunk-3DWQCLNP.js → chunks/chunk-7WBCA2BB.js} +1 -1
- package/dist/bin/chunks/{chunk-LE2XKKGQ.js → chunk-ABP4OLJV.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-7PUOS2OO.js → chunks/chunk-ANX7U57Q.js} +1 -1
- package/dist/bin/chunks/{chunk-B2GCIQI2.js → chunk-BB5VTPMQ.js} +1 -1
- package/dist/bin/chunks/chunk-CN4JKMTR.js +8 -0
- package/dist/bin/chunks/{chunk-WFHYGSLJ.js → chunk-CNVNOT67.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-6ESRNSO7.js → chunks/chunk-DRPHNXG7.js} +1 -1
- package/dist/bin/chunks/chunk-F2PYTUMR.js +9 -0
- package/dist/bin/{shell/chunks/chunk-OXLC2WWX.js → chunks/chunk-H7PD6FLC.js} +10 -10
- package/dist/bin/chunks/chunk-HWK7KFGB.js +3 -0
- package/dist/bin/{shell/chunks/chunk-QYZN33JA.js → chunks/chunk-IOKQFPM6.js} +1 -1
- package/dist/bin/chunks/{chunk-M7SIPZZZ.js → chunk-KMYJMEON.js} +1 -1
- package/dist/bin/chunks/chunk-KNTDFP7X.js +12 -0
- package/dist/bin/{shell/chunks/chunk-RPUFEP5O.js → chunks/chunk-M3Z5NZXT.js} +1 -1
- package/dist/bin/chunks/chunk-MBREBDZQ.js +3 -0
- package/dist/bin/{shell/chunks/chunk-L345YZ6R.js → chunks/chunk-MF3GVFLC.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-YCOJCFGU.js → chunks/chunk-MPFNZYEA.js} +1 -1
- package/dist/bin/chunks/chunk-OHFB3M3X.js +3 -0
- package/dist/bin/{shell/chunks/chunk-F3UDTTI7.js → chunks/chunk-ONF4KUYV.js} +1 -1
- package/dist/bin/chunks/chunk-PPVF2N6C.js +3 -0
- package/dist/bin/chunks/{chunk-V2XF3TTW.js → chunk-PRVPFKTC.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-7VWOECJ3.js → chunks/chunk-PTUQEN6I.js} +1 -1
- package/dist/bin/chunks/{chunk-R2J5MJOM.js → chunk-QFOXSCOD.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-6TUILMPB.js → chunks/chunk-QFTZKD5O.js} +1 -1
- package/dist/bin/chunks/{chunk-HQ63MFHG.js → chunk-QJWFCA7P.js} +1 -1
- package/dist/bin/chunks/chunk-RTN6X652.js +11 -0
- package/dist/bin/chunks/{chunk-67XYNGRV.js → chunk-T6OIISUC.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-JELR4642.js → chunks/chunk-U5JLGI56.js} +13 -13
- package/dist/bin/chunks/{chunk-7PPAWLUI.js → chunk-V4S4A7M6.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-DZAFUADN.js → chunks/chunk-VPSBWWXM.js} +1 -1
- package/dist/bin/chunks/{chunk-GA5TPRMF.js → chunk-YXPSX3SI.js} +11 -11
- package/dist/bin/chunks/{chunk-472JZJ2D.js → chunk-ZVG47PYA.js} +1 -1
- package/dist/bin/chunks/cp-YLP7ULVT.js +3 -0
- package/dist/bin/{shell/chunks/diff-YXZZCUSQ.js → chunks/diff-JSJ56EOK.js} +1 -1
- package/dist/bin/chunks/du-DH76GZJ3.js +3 -0
- package/dist/bin/chunks/{expr-NNMDHOCN.js → expr-PQEPO5TE.js} +1 -1
- package/dist/bin/chunks/{file-4T64QNLS.js → file-JA7QI2YT.js} +1 -1
- package/dist/bin/chunks/find-MHC4QV6H.js +3 -0
- package/dist/bin/chunks/flag-coverage-2H5CPEM6.js +3 -0
- package/dist/bin/chunks/{grep-CVU5V66H.js → grep-VXWNMIDD.js} +1 -1
- package/dist/bin/chunks/gzip-UQZL4R74.js +3 -0
- package/dist/bin/chunks/{jq-V7OTAVU5.js → jq-YS4PR46D.js} +1 -1
- package/dist/bin/chunks/js-exec-T3SAB2B6.js +1651 -0
- package/dist/bin/chunks/ln-XVC53673.js +3 -0
- package/dist/bin/chunks/ls-5Z45FV4U.js +3 -0
- package/dist/bin/chunks/mkdir-YJ3SOVRP.js +3 -0
- package/dist/bin/chunks/mv-EOOP2TO3.js +3 -0
- package/dist/bin/chunks/python3-3ERN3L6S.js +23 -0
- package/dist/bin/chunks/readlink-EJ3IKLWW.js +3 -0
- package/dist/bin/chunks/rg-WHVR3YDT.js +3 -0
- package/dist/bin/chunks/rm-B4LVIG7A.js +3 -0
- package/dist/bin/chunks/rmdir-PRNISPBA.js +3 -0
- package/dist/bin/{shell/chunks/sed-4LVDFHIJ.js → chunks/sed-SY63U2YX.js} +1 -1
- package/dist/bin/{shell/chunks/sleep-MOJQBZMY.js → chunks/sleep-DVFE2GSF.js} +1 -1
- package/dist/bin/chunks/split-HIFKSV2A.js +3 -0
- package/dist/bin/chunks/sqlite3-KNN6V2W6.js +3 -0
- package/dist/bin/{shell/chunks/tar-7HGZIMZD.js → chunks/tar-7XOP7VOX.js} +1 -1
- package/dist/bin/chunks/{timeout-RQOWSWYG.js → timeout-YGFHQJKX.js} +1 -1
- package/dist/bin/chunks/worker.js +120 -109
- package/dist/bin/chunks/{xan-WW53ETXT.js → xan-RMH6JEXM.js} +1 -1
- package/dist/bin/chunks/{yq-MYZOS2WN.js → yq-CWBZMGUV.js} +1 -1
- package/dist/bin/just-bash.js +355 -350
- package/dist/bin/shell/chunks/{awk2-KO7ZE3P7.js → awk2-NTRVFXRA.js} +1 -1
- package/dist/bin/shell/chunks/chmod-GX5SYTRL.js +3 -0
- package/dist/bin/shell/chunks/chunk-2NJJXU4K.js +27 -0
- package/dist/bin/{chunks/chunk-ZMGLTHSU.js → shell/chunks/chunk-3ROYEBJI.js} +1 -1
- package/dist/bin/shell/chunks/chunk-6FGMEZZP.js +20 -0
- package/dist/bin/shell/chunks/chunk-6JUPBMCR.js +13 -0
- package/dist/bin/{chunks/chunk-3DWQCLNP.js → shell/chunks/chunk-7WBCA2BB.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-LE2XKKGQ.js → chunk-ABP4OLJV.js} +1 -1
- package/dist/bin/{chunks/chunk-7PUOS2OO.js → shell/chunks/chunk-ANX7U57Q.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-B2GCIQI2.js → chunk-BB5VTPMQ.js} +1 -1
- package/dist/bin/shell/chunks/chunk-CN4JKMTR.js +8 -0
- package/dist/bin/shell/chunks/{chunk-WFHYGSLJ.js → chunk-CNVNOT67.js} +1 -1
- package/dist/bin/{chunks/chunk-6ESRNSO7.js → shell/chunks/chunk-DRPHNXG7.js} +1 -1
- package/dist/bin/shell/chunks/chunk-F2PYTUMR.js +9 -0
- package/dist/bin/{chunks/chunk-OXLC2WWX.js → shell/chunks/chunk-H7PD6FLC.js} +10 -10
- package/dist/bin/shell/chunks/chunk-HWK7KFGB.js +3 -0
- package/dist/bin/{chunks/chunk-QYZN33JA.js → shell/chunks/chunk-IOKQFPM6.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-M7SIPZZZ.js → chunk-KMYJMEON.js} +1 -1
- package/dist/bin/shell/chunks/chunk-KNTDFP7X.js +12 -0
- package/dist/bin/{chunks/chunk-RPUFEP5O.js → shell/chunks/chunk-M3Z5NZXT.js} +1 -1
- package/dist/bin/shell/chunks/chunk-MBREBDZQ.js +3 -0
- package/dist/bin/{chunks/chunk-L345YZ6R.js → shell/chunks/chunk-MF3GVFLC.js} +1 -1
- package/dist/bin/{chunks/chunk-YCOJCFGU.js → shell/chunks/chunk-MPFNZYEA.js} +1 -1
- package/dist/bin/shell/chunks/chunk-OHFB3M3X.js +3 -0
- package/dist/bin/{chunks/chunk-F3UDTTI7.js → shell/chunks/chunk-ONF4KUYV.js} +1 -1
- package/dist/bin/shell/chunks/chunk-PPVF2N6C.js +3 -0
- package/dist/bin/shell/chunks/{chunk-V2XF3TTW.js → chunk-PRVPFKTC.js} +1 -1
- package/dist/bin/{chunks/chunk-7VWOECJ3.js → shell/chunks/chunk-PTUQEN6I.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-R2J5MJOM.js → chunk-QFOXSCOD.js} +1 -1
- package/dist/bin/{chunks/chunk-6TUILMPB.js → shell/chunks/chunk-QFTZKD5O.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-HQ63MFHG.js → chunk-QJWFCA7P.js} +1 -1
- package/dist/bin/shell/chunks/chunk-RTN6X652.js +11 -0
- package/dist/bin/shell/chunks/{chunk-67XYNGRV.js → chunk-T6OIISUC.js} +1 -1
- package/dist/bin/{chunks/chunk-JELR4642.js → shell/chunks/chunk-U5JLGI56.js} +13 -13
- package/dist/bin/shell/chunks/{chunk-7PPAWLUI.js → chunk-V4S4A7M6.js} +1 -1
- package/dist/bin/{chunks/chunk-DZAFUADN.js → shell/chunks/chunk-VPSBWWXM.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-GA5TPRMF.js → chunk-YXPSX3SI.js} +11 -11
- package/dist/bin/shell/chunks/{chunk-472JZJ2D.js → chunk-ZVG47PYA.js} +1 -1
- package/dist/bin/shell/chunks/cp-YLP7ULVT.js +3 -0
- package/dist/bin/{chunks/diff-YXZZCUSQ.js → shell/chunks/diff-JSJ56EOK.js} +1 -1
- package/dist/bin/shell/chunks/du-DH76GZJ3.js +3 -0
- package/dist/bin/shell/chunks/{expr-NNMDHOCN.js → expr-PQEPO5TE.js} +1 -1
- package/dist/bin/shell/chunks/{file-4T64QNLS.js → file-JA7QI2YT.js} +1 -1
- package/dist/bin/shell/chunks/find-MHC4QV6H.js +3 -0
- package/dist/bin/shell/chunks/flag-coverage-2H5CPEM6.js +3 -0
- package/dist/bin/shell/chunks/{grep-CVU5V66H.js → grep-VXWNMIDD.js} +1 -1
- package/dist/bin/shell/chunks/gzip-UQZL4R74.js +3 -0
- package/dist/bin/shell/chunks/{jq-V7OTAVU5.js → jq-YS4PR46D.js} +1 -1
- package/dist/bin/shell/chunks/js-exec-T3SAB2B6.js +1651 -0
- package/dist/bin/shell/chunks/ln-XVC53673.js +3 -0
- package/dist/bin/shell/chunks/ls-5Z45FV4U.js +3 -0
- package/dist/bin/shell/chunks/mkdir-YJ3SOVRP.js +3 -0
- package/dist/bin/shell/chunks/mv-EOOP2TO3.js +3 -0
- package/dist/bin/shell/chunks/python3-3ERN3L6S.js +23 -0
- package/dist/bin/shell/chunks/readlink-EJ3IKLWW.js +3 -0
- package/dist/bin/shell/chunks/rg-WHVR3YDT.js +3 -0
- package/dist/bin/shell/chunks/rm-B4LVIG7A.js +3 -0
- package/dist/bin/shell/chunks/rmdir-PRNISPBA.js +3 -0
- package/dist/bin/{chunks/sed-4LVDFHIJ.js → shell/chunks/sed-SY63U2YX.js} +1 -1
- package/dist/bin/{chunks/sleep-MOJQBZMY.js → shell/chunks/sleep-DVFE2GSF.js} +1 -1
- package/dist/bin/shell/chunks/split-HIFKSV2A.js +3 -0
- package/dist/bin/shell/chunks/sqlite3-KNN6V2W6.js +3 -0
- package/dist/bin/{chunks/tar-7HGZIMZD.js → shell/chunks/tar-7XOP7VOX.js} +1 -1
- package/dist/bin/shell/chunks/{timeout-RQOWSWYG.js → timeout-YGFHQJKX.js} +1 -1
- package/dist/bin/shell/chunks/{xan-WW53ETXT.js → xan-RMH6JEXM.js} +1 -1
- package/dist/bin/shell/chunks/{yq-MYZOS2WN.js → yq-CWBZMGUV.js} +1 -1
- package/dist/bin/shell/shell.js +397 -392
- package/dist/bundle/browser.js +693 -669
- package/dist/bundle/chunks/{awk2-W6BNZEJN.js → awk2-VS5QVYHU.js} +1 -1
- package/dist/bundle/chunks/chmod-TEY5MD2W.js +2 -0
- package/dist/bundle/chunks/{chunk-26GP3ACY.js → chunk-35MBA3VY.js} +1 -1
- package/dist/bundle/chunks/chunk-3CIDHL5V.js +11 -0
- package/dist/bundle/chunks/chunk-3OBCZP7T.js +12 -0
- package/dist/bundle/chunks/{chunk-F6XU52K3.js → chunk-45QZRGYF.js} +1 -1
- package/dist/bundle/chunks/chunk-4CC3OZPU.js +2 -0
- package/dist/bundle/chunks/{chunk-73JQKNZT.js → chunk-4KZT23KR.js} +11 -11
- package/dist/bundle/chunks/{chunk-PJM5C3HZ.js → chunk-5EI7WSRV.js} +10 -10
- package/dist/bundle/chunks/{chunk-T6DNSPYO.js → chunk-6BSOPPZH.js} +1 -1
- package/dist/bundle/chunks/{chunk-DAKEIWT3.js → chunk-6HO6HX7V.js} +1 -1
- package/dist/bundle/chunks/{chunk-XVSR5HHH.js → chunk-6QAM55HM.js} +1 -1
- package/dist/bundle/chunks/chunk-A257L6QO.js +7 -0
- package/dist/bundle/chunks/{chunk-UC76ZOWM.js → chunk-ATGOUOX2.js} +1 -1
- package/dist/bundle/chunks/chunk-B6OSJB22.js +26 -0
- package/dist/bundle/chunks/{chunk-2TSZPVPI.js → chunk-BLPYR4TN.js} +1 -1
- package/dist/bundle/chunks/{chunk-VJ6UXG2R.js → chunk-CH7SUFFO.js} +1 -1
- package/dist/bundle/chunks/{chunk-FQUVK4Q5.js → chunk-DDPD7SIB.js} +1 -1
- package/dist/bundle/chunks/{chunk-TLPMB3FO.js → chunk-DMWNBCXJ.js} +1 -1
- package/dist/bundle/chunks/{chunk-ZXFELXJH.js → chunk-FSKXIFYT.js} +1 -1
- package/dist/bundle/chunks/{chunk-KEMO3CBM.js → chunk-GNPLDVBD.js} +1 -1
- package/dist/bundle/chunks/{chunk-FZZL53S2.js → chunk-GRUZ4SBY.js} +1 -1
- package/dist/bundle/chunks/{chunk-RPKJJFGZ.js → chunk-HCKTU6IR.js} +1 -1
- package/dist/bundle/chunks/{chunk-4EDQZIAN.js → chunk-LGIJSCWH.js} +1 -1
- package/dist/bundle/chunks/chunk-LRFR25IP.js +8 -0
- package/dist/bundle/chunks/chunk-MWL2I5BV.js +19 -0
- package/dist/bundle/chunks/{chunk-6IA4DXG2.js → chunk-N3A4JVFJ.js} +1 -1
- package/dist/bundle/chunks/{chunk-PPEXVPHR.js → chunk-O452S4KX.js} +1 -1
- package/dist/bundle/chunks/chunk-RWQWFXMH.js +10 -0
- package/dist/bundle/chunks/chunk-S6DNKKUL.js +2 -0
- package/dist/bundle/chunks/{chunk-NBNI7G66.js → chunk-SE23TEGG.js} +1 -1
- package/dist/bundle/chunks/chunk-T5ZEIOJ3.js +2 -0
- package/dist/bundle/chunks/{chunk-ULXTDFQC.js → chunk-U57DSHID.js} +1 -1
- package/dist/bundle/chunks/{chunk-6DDRR56B.js → chunk-WE7BJ7YU.js} +1 -1
- package/dist/bundle/chunks/chunk-WXPNKIIH.js +2 -0
- package/dist/bundle/chunks/{chunk-5I5U6IYI.js → chunk-XQ2ZZFO6.js} +1 -1
- package/dist/bundle/chunks/{chunk-YFFU74KY.js → chunk-XV2V56NQ.js} +1 -1
- package/dist/bundle/chunks/{chunk-FIMF2TLE.js → chunk-Y6JBSHCM.js} +13 -13
- package/dist/bundle/chunks/cp-UR762VVT.js +2 -0
- package/dist/bundle/chunks/{diff-CSARC7WF.js → diff-VDB6RXHO.js} +1 -1
- package/dist/bundle/chunks/du-EQKH3UNA.js +2 -0
- package/dist/bundle/chunks/{expr-XSBELPAC.js → expr-A5XITHQD.js} +1 -1
- package/dist/bundle/chunks/{file-URNAD6FQ.js → file-6AYYTULJ.js} +1 -1
- package/dist/bundle/chunks/find-RLKBCGJR.js +2 -0
- package/dist/bundle/chunks/flag-coverage-UMQ3BWDP.js +2 -0
- package/dist/bundle/chunks/{grep-4AYF3A5J.js → grep-Q2O5EIXQ.js} +1 -1
- package/dist/bundle/chunks/gzip-KC5ENBD2.js +2 -0
- package/dist/bundle/chunks/{jq-NY7PCVMH.js → jq-UKAA3QWU.js} +1 -1
- package/dist/bundle/chunks/js-exec-ZQMIYQTH.js +1650 -0
- package/dist/bundle/chunks/ln-CEM7GDB5.js +2 -0
- package/dist/bundle/chunks/ls-WH5S4PPL.js +2 -0
- package/dist/bundle/chunks/mkdir-Z6MMWH3D.js +2 -0
- package/dist/bundle/chunks/mv-WE7DBLEK.js +2 -0
- package/dist/bundle/chunks/python3-QB7OE256.js +22 -0
- package/dist/bundle/chunks/readlink-JSRKXLLQ.js +2 -0
- package/dist/bundle/chunks/rg-JKB7DR66.js +2 -0
- package/dist/bundle/chunks/rm-IGPLE632.js +2 -0
- package/dist/bundle/chunks/rmdir-3WTXMVKI.js +2 -0
- package/dist/bundle/chunks/{sed-LIRH26EA.js → sed-6G32B25J.js} +1 -1
- package/dist/bundle/chunks/{sleep-25QUPVDK.js → sleep-PPRBTSVR.js} +1 -1
- package/dist/bundle/chunks/split-HUKVGJTW.js +2 -0
- package/dist/bundle/chunks/sqlite3-KB3MXTTM.js +2 -0
- package/dist/bundle/chunks/{tar-B72KU357.js → tar-LE7LAAIX.js} +1 -1
- package/dist/bundle/chunks/{timeout-37GM7IIL.js → timeout-C6WDYPLV.js} +1 -1
- package/dist/bundle/chunks/worker.js +120 -109
- package/dist/bundle/chunks/{xan-UIGVJCMA.js → xan-UIL24CGT.js} +1 -1
- package/dist/bundle/chunks/{yq-FGNXZCGX.js → yq-ZRNZKDLE.js} +1 -1
- package/dist/bundle/index.cjs +2677 -1101
- package/dist/bundle/index.js +346 -341
- package/dist/commands/diff/format.d.ts +46 -0
- package/dist/commands/js-exec/js-exec.d.ts +1 -14
- package/dist/commands/js-exec/run-runtime.d.ts +10 -0
- package/dist/commands/worker-bridge/bridge-handler.d.ts +0 -3
- package/dist/commands/worker-bridge/protocol.d.ts +57 -23
- package/dist/fs/fs-error.d.ts +43 -0
- package/dist/fs/interface.d.ts +13 -0
- package/dist/fs/mountable-fs/mountable-fs.d.ts +20 -0
- package/dist/fs/overlay-fs/apply.d.ts +2 -1
- package/dist/fs/overlay-fs/index.d.ts +0 -1
- package/dist/fs/overlay-fs/overlay-fs.d.ts +14 -0
- package/dist/fs/path-utils.d.ts +5 -0
- package/dist/fs/traversal.d.ts +9 -0
- package/dist/fs/vfs-template.d.ts +38 -15
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/interpreter/builtin-dispatch.d.ts +10 -0
- package/dist/interpreter/builtin-manifest.d.ts +273 -0
- package/dist/interpreter/builtins/help.d.ts +6 -0
- package/dist/interpreter/builtins/shopt.d.ts +3 -0
- package/dist/interpreter/helpers/shell-constants.d.ts +0 -20
- package/dist/interpreter/helpers/substitution-status.d.ts +34 -0
- package/dist/interpreter/interpreter.d.ts +1 -1
- package/dist/interpreter/types.d.ts +8 -1
- package/dist/limits.d.ts +2 -0
- package/dist/timers.d.ts +0 -9
- package/dist/types.d.ts +4 -3
- package/package.json +8 -8
- package/dist/bin/chunks/chmod-WYYTXGVB.js +0 -3
- package/dist/bin/chunks/chunk-23OI2XDJ.js +0 -20
- package/dist/bin/chunks/chunk-43E7AR6A.js +0 -3
- package/dist/bin/chunks/chunk-AI7JUA46.js +0 -13
- package/dist/bin/chunks/chunk-CL7IYCGG.js +0 -20
- package/dist/bin/chunks/chunk-GQKQEK5N.js +0 -11
- package/dist/bin/chunks/chunk-JHEAT7AR.js +0 -12
- package/dist/bin/chunks/chunk-OLEQNRKX.js +0 -8
- package/dist/bin/chunks/chunk-QKJAAJ7J.js +0 -3
- package/dist/bin/chunks/chunk-SE7JHGP3.js +0 -9
- package/dist/bin/chunks/chunk-WEHA3JFD.js +0 -3
- package/dist/bin/chunks/chunk-YQEKKZTU.js +0 -12
- package/dist/bin/chunks/cp-OMVKM35F.js +0 -3
- package/dist/bin/chunks/du-LUFPVLNW.js +0 -3
- package/dist/bin/chunks/find-AWH2KOY7.js +0 -3
- package/dist/bin/chunks/flag-coverage-FYJ2V7J4.js +0 -3
- package/dist/bin/chunks/gzip-FDPA6EKG.js +0 -3
- package/dist/bin/chunks/js-exec-5QZZCOR7.js +0 -99
- package/dist/bin/chunks/js-exec-worker.js +0 -4931
- package/dist/bin/chunks/ln-B35EKC2Q.js +0 -3
- package/dist/bin/chunks/ls-Q6ZZ6SQ2.js +0 -3
- package/dist/bin/chunks/mkdir-74BP5NTG.js +0 -3
- package/dist/bin/chunks/mv-76LAHXFR.js +0 -3
- package/dist/bin/chunks/python3-TMFYDQAP.js +0 -14
- package/dist/bin/chunks/readlink-EHXJNW62.js +0 -3
- package/dist/bin/chunks/rg-PXNKNIMY.js +0 -3
- package/dist/bin/chunks/rm-NLG5344W.js +0 -3
- package/dist/bin/chunks/rmdir-7ZIVFZJX.js +0 -3
- package/dist/bin/chunks/split-ZNNNHKSP.js +0 -3
- package/dist/bin/chunks/sqlite3-3EUPHVEZ.js +0 -3
- package/dist/bin/shell/chunks/chmod-WYYTXGVB.js +0 -3
- package/dist/bin/shell/chunks/chunk-23OI2XDJ.js +0 -20
- package/dist/bin/shell/chunks/chunk-43E7AR6A.js +0 -3
- package/dist/bin/shell/chunks/chunk-AI7JUA46.js +0 -13
- package/dist/bin/shell/chunks/chunk-CL7IYCGG.js +0 -20
- package/dist/bin/shell/chunks/chunk-GQKQEK5N.js +0 -11
- package/dist/bin/shell/chunks/chunk-JHEAT7AR.js +0 -12
- package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +0 -8
- package/dist/bin/shell/chunks/chunk-QKJAAJ7J.js +0 -3
- package/dist/bin/shell/chunks/chunk-SE7JHGP3.js +0 -9
- package/dist/bin/shell/chunks/chunk-WEHA3JFD.js +0 -3
- package/dist/bin/shell/chunks/chunk-YQEKKZTU.js +0 -12
- package/dist/bin/shell/chunks/cp-OMVKM35F.js +0 -3
- package/dist/bin/shell/chunks/du-LUFPVLNW.js +0 -3
- package/dist/bin/shell/chunks/find-AWH2KOY7.js +0 -3
- package/dist/bin/shell/chunks/flag-coverage-FYJ2V7J4.js +0 -3
- package/dist/bin/shell/chunks/gzip-FDPA6EKG.js +0 -3
- package/dist/bin/shell/chunks/js-exec-5QZZCOR7.js +0 -99
- package/dist/bin/shell/chunks/ln-B35EKC2Q.js +0 -3
- package/dist/bin/shell/chunks/ls-Q6ZZ6SQ2.js +0 -3
- package/dist/bin/shell/chunks/mkdir-74BP5NTG.js +0 -3
- package/dist/bin/shell/chunks/mv-76LAHXFR.js +0 -3
- package/dist/bin/shell/chunks/python3-TMFYDQAP.js +0 -14
- package/dist/bin/shell/chunks/readlink-EHXJNW62.js +0 -3
- package/dist/bin/shell/chunks/rg-PXNKNIMY.js +0 -3
- package/dist/bin/shell/chunks/rm-NLG5344W.js +0 -3
- package/dist/bin/shell/chunks/rmdir-7ZIVFZJX.js +0 -3
- package/dist/bin/shell/chunks/split-ZNNNHKSP.js +0 -3
- package/dist/bin/shell/chunks/sqlite3-3EUPHVEZ.js +0 -3
- package/dist/bundle/chunks/chmod-WM2JFFQC.js +0 -2
- package/dist/bundle/chunks/chunk-7IJWBG4I.js +0 -2
- package/dist/bundle/chunks/chunk-FSJ6TTCC.js +0 -19
- package/dist/bundle/chunks/chunk-G3IRZ4FN.js +0 -8
- package/dist/bundle/chunks/chunk-MLIO3BK2.js +0 -7
- package/dist/bundle/chunks/chunk-PS2RJNZZ.js +0 -2
- package/dist/bundle/chunks/chunk-TBVD66LC.js +0 -10
- package/dist/bundle/chunks/chunk-ULXGGWAD.js +0 -11
- package/dist/bundle/chunks/chunk-UTKGYVUZ.js +0 -7
- package/dist/bundle/chunks/chunk-W2Z6LYL6.js +0 -11
- package/dist/bundle/chunks/chunk-WN54B5NQ.js +0 -12
- package/dist/bundle/chunks/chunk-YUSFCOM7.js +0 -2
- package/dist/bundle/chunks/cp-2KZIPZJS.js +0 -2
- package/dist/bundle/chunks/du-7AZCLKR6.js +0 -2
- package/dist/bundle/chunks/find-END3EAHV.js +0 -2
- package/dist/bundle/chunks/flag-coverage-XSPWRCVG.js +0 -2
- package/dist/bundle/chunks/gzip-RQOBR22H.js +0 -2
- package/dist/bundle/chunks/js-exec-57QMXJG5.js +0 -98
- package/dist/bundle/chunks/js-exec-worker.js +0 -4931
- package/dist/bundle/chunks/ln-OPY2ZVGQ.js +0 -2
- package/dist/bundle/chunks/ls-ZPXGZX63.js +0 -2
- package/dist/bundle/chunks/mkdir-WDDKK2P3.js +0 -2
- package/dist/bundle/chunks/mv-ZF6UBVRB.js +0 -2
- package/dist/bundle/chunks/python3-NNONJINM.js +0 -13
- package/dist/bundle/chunks/readlink-U5OM5A3M.js +0 -2
- package/dist/bundle/chunks/rg-NAMXBYKS.js +0 -2
- package/dist/bundle/chunks/rm-R2ZENNSN.js +0 -2
- package/dist/bundle/chunks/rmdir-YJKPQVCK.js +0 -2
- package/dist/bundle/chunks/split-JICLAMP6.js +0 -2
- package/dist/bundle/chunks/sqlite3-M4UZPXDO.js +0 -2
- package/dist/commands/js-exec/js-exec-worker.d.ts +0 -33
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
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:
|
|
1756
|
-
//
|
|
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
|
-
|
|
1789
|
-
return _Atomics.load(
|
|
1826
|
+
getRequest() {
|
|
1827
|
+
return _Atomics.load(
|
|
1828
|
+
this.int32View,
|
|
1829
|
+
Offset.REQUEST / 4
|
|
1830
|
+
);
|
|
1790
1831
|
}
|
|
1791
|
-
|
|
1792
|
-
_Atomics.store(this.int32View, Offset.
|
|
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
|
|
1958
|
-
* Returns immediately if
|
|
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
|
|
1964
|
-
if (
|
|
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.
|
|
1975
|
-
|
|
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.
|
|
1990
|
-
|
|
2028
|
+
Offset.RESULT_STATE / 4,
|
|
2029
|
+
ResultState.NONE,
|
|
1991
2030
|
timeout
|
|
1992
2031
|
);
|
|
1993
2032
|
}
|
|
1994
|
-
|
|
1995
|
-
return _Atomics.notify(this.int32View, Offset.
|
|
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.
|
|
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.
|
|
2027
|
-
this.protocol.
|
|
2028
|
-
const
|
|
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
|
|
2042
|
-
if (
|
|
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:
|
|
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
|
|
2339
|
+
function normalizeSeparators(path) {
|
|
2295
2340
|
return path.replace(/\\/g, "/");
|
|
2296
2341
|
}
|
|
2297
2342
|
function isApprovedCpythonEntryPath(path) {
|
|
2298
|
-
return
|
|
2343
|
+
return normalizeSeparators(path).endsWith(CPYTHON_ENTRY_BASENAME);
|
|
2299
2344
|
}
|
|
2300
2345
|
function isApprovedStdlibZipPath(path) {
|
|
2301
|
-
return
|
|
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
|
-
|
|
2398
|
-
|
|
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
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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};
|