bashkit 0.18.1__tar.gz → 0.18.2__tar.gz
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.
- {bashkit-0.18.1 → bashkit-0.18.2}/Cargo.lock +47 -47
- {bashkit-0.18.1 → bashkit-0.18.2}/Cargo.toml +1 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/PKG-INFO +1 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/README.md +2 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/compatibility.md +6 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/logging.md +1 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/sqlite.md +1 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/threat-model.md +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/archive.rs +8 -2
- bashkit-0.18.2/crates/bashkit/src/builtins/atomic_write.rs +92 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/awk/interpreter.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/awk/mod.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/cat.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/checksum.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/column.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/comm.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/cuttr.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/diff.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/dirstack.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/disk.rs +32 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/fileops.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/git/client.rs +71 -68
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/grep.rs +56 -6
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/headtail.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/hextools.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/limits.rs +4 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ls/find.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ls/list.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/mod.rs +92 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/navigation.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/nl.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/paste.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/path.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/python.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/rg/mod.rs +21 -14
- bashkit-0.18.2/crates/bashkit/src/builtins/sed/exec.rs +851 -0
- bashkit-0.18.2/crates/bashkit/src/builtins/sed/mod.rs +487 -0
- bashkit-0.18.2/crates/bashkit/src/builtins/sed/pattern.rs +377 -0
- bashkit-0.18.2/crates/bashkit/src/builtins/sed/script.rs +888 -0
- bashkit-0.18.2/crates/bashkit/src/builtins/sed/tests.rs +801 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/shuf.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sortuniq.rs +5 -4
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/mod.rs +6 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/strings.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/test.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/textrev.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/tree.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/typescript.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/wc.rs +37 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/yq.rs +14 -70
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/zip_cmd.rs +3 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/memory.rs +28 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/mod.rs +118 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/mountable.rs +2 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/namespace.rs +4 -3
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/overlay.rs +11 -7
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/realfs.rs +7 -1
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/glob.rs +6 -5
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/mod.rs +3 -3
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/lib.rs +3 -3
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/testing.rs +6 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/main.rs +1 -0
- bashkit-0.18.2/crates/bashkit/tests/integration/sed_fuzz_scaffold_tests.rs +114 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/spec_tests.rs +15 -2
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/realfs_tests.rs +26 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/security_failpoint_tests.rs +81 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/sed/sed.test.sh +340 -0
- bashkit-0.18.1/crates/bashkit/src/builtins/sed.rs +0 -1474
- {bashkit-0.18.1 → bashkit-0.18.2}/README.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/bashkit/__init__.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/bashkit/_bashkit.pyi +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/bashkit/deepagents.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/bashkit/langchain.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/bashkit/py.typed +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/bashkit/pydantic_ai.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/Cargo.toml +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/awk_regex.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/builtin_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/file_ops.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/hotpath.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/parallel_execution.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/README.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-awk-regex-mykhailos-mini-darwin-arm64-1785952907.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-builtin_args-baseline-linux-x86_64-1787421390.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-file_ops-linux-x86_64-1779759850.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-hotpath-attrs+shopt-linux-x86_64-1779759850.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-hotpath-perf-linux-x86_64-1779744742.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-parallel-(none)-linux-x86_64-1773469129.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-parallel-Mykhailos-Mac-mini.local-darwin-arm64-1788628263.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-parallel-vm-linux-x86_64-1782162173.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-parallel-vm-linux-x86_64-1782168239.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-snapshot-history-baseline-linux-x86_64-1785444523.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-sqlite-Mykhailos-Mac-mini.local-darwin-arm64-1788628889.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-sqlite-Mykhailos-Mini.lan-darwin-arm64-1785957173.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-sqlite-vm-linux-x86_64-1777865268.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-sqlite-vm-linux-x86_64-1786872580.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/results/criterion-sqlite-vm-linux-x86_64-1788221595.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/snapshot_history.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/benches/sqlite.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/clap-builtins.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/credential-injection.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/custom_builtins.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/hooks.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/jq.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/live_mounts.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/namespace_filesystems.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/python.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/script-analysis.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/ssh.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/typescript.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/docs/yq.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/agent_tool.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/basic.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/clap_builtin.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/clap_builtin_subcommands.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/custom_backend.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/custom_builtins.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/custom_filesystem_impl.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/custom_fs.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/dump_builtins.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/generate_snapshot_fixtures.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/git_workflow.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/large_binary_probe.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/live_mounts.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/namespace_rebase.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/namespace_sandbox.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/python_external_functions.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/python_scripts.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/realfs_readonly.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/realfs_readwrite.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/resource_limits.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/scripted_tool.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/scripted_tool_clap_builtin.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/show_tool_output.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/sqlite_basic.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/sqlite_workflow.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/ssh_supabase.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/streaming_output.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/text_files.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/text_processing.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/typescript_external_functions.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/typescript_scripts.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/examples/virtual_identity.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/out file.txt +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/proptest-regressions/builtins/sqlite/tests.txt +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/analysis.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/alias.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/arg_parser.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/assert.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/awk/parser.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/awk/tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/base64.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/bc.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/caller.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/clap_cache.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/clap_env.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/clear.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/compgen.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/csv.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/curl.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/date.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/dotenv.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/echo.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/environ.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/envsubst.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/expand.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/export.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/expr.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/fc.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/flow.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/fold.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/cat_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/extendedbigdecimal.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format/argument.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format/escape.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format/human.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format/num_format.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format/spec.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/format_support.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/ls_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/mktemp_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/num_parser.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/od_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/readlink_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/realpath_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/shuf_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/stat_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/tac_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/tee_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/generated/truncate_args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/git/cmd.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/git/config.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/git/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/glob_cmd.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/help.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/helpers.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/http.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/iconv.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/inspect.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/introspect.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/join.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/args.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/compat.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/convert.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/errors.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/format.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/input.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/regex_compat.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/jq/tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/json.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/log.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ls/glob.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ls/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ls/rmdir.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ls/tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/mapfile.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/mkfifo.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/numfmt.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/parallel.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/patch.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/pipeline.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/printf.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/read.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/retry.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/runtime_limits.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/search_common.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/semver.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/seq.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sleep.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/source.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/split.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/dot_commands.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/engine.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/formatter.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/parser.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/sqlite/vfs_io.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/allowlist.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/client.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/cmd.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/config.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/handler.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/ssh/russh_handler.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/system.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/template.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/timeout.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/tomlq.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/trap.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/truncate.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/vars.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/verify.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/wait.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/builtins/yes.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/credential.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/error.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/execution_capability.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/backend.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/limits.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/posix.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/readonly.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/search.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/fs/traits.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/hooks.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/host_call.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interop/fs.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interop/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/arithmetic.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/brace_expansion.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/expansion.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/jobs.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/redirection.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/state.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/interpreter/time_command.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/limits.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/logging_impl.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/network/allowlist.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/network/bot_auth.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/network/client.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/network/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/network/transport.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/parser/ast.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/parser/budget.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/parser/lexer.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/parser/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/parser/span.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/parser/tokens.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/profile.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/scripted_tool/execute.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/scripted_tool/extension.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/scripted_tool/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/scripted_tool/toolset.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/snapshot/capabilities.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/snapshot/chunker.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/snapshot/container.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/snapshot/graph.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/snapshot/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/snapshot/objects.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/stream.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/time_compat/host_clock.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/time_compat/mod.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/tool.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/tool_def.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/tool_registry.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/src/trace.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/fixtures/competitor-regressions/just-bash-2026-08-05.json +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/fixtures/snapshots/v1.snapshot +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/fixtures/snapshots/v2.snapshot +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/agent_skills_publication_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/allexport_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/archive_bzip2_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/awk_fuzz_scaffold_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/awk_newline_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/awk_pattern_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/awk_printf_expr_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/awk_range_pattern_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/background_exec_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/base64_binary_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/bash_source_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/blackbox_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/builtin_error_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/builtin_registry_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/byte_range_panic_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/byte_stream_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/cancellation_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/cmdsub_quote_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/command_resolver_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/competitor_regression_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/compgen_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/coproc_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/coreutils_differential_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/credential_injection_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/curl_data_compat_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/custom_builtins_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/custom_fs_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/date_timezone_differential_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/date_timezone_no_tzdata_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/date_timezone_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/dev_null_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/exec_options_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/execution_budget_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/execution_capability_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/execution_profile_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/filesystem_security_conformance_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/final_env_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/find_multi_path_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/for_in_reserved_word_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/git_advanced_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/git_inspection_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/git_integration_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/git_remote_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/git_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/glob_fuzz_scaffold_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/glob_intermediate_component_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/harness_example_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/history_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/host_call_execution_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/host_mounts_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_1175_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_1776_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_1777_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_274_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_275_279_282_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_276_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_277_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_289_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_290_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_291_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_853_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_872_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_873_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/issue_875_test.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/jq_fuzz_scaffold_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/limitations_doc_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/limitations_evidence_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/live_mount_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/mkfifo_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/namespace_fs_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/nested_subscript_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/network_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/output_truncation_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/parallel_sessions_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/proptest_differential.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/python_integration_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/python_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/regex_limit_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/release_profile_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/request_lifecycle_contract_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/runtime_env_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/script_analysis.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/script_execution_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/security_audit_pocs.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/set_e_and_or_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/shuf_resource_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/skills_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/snapshot_fixture_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/snapshot_history_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/snapshot_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/source_function_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/spec_runner.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/sqlite_compat_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/sqlite_differential_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/sqlite_fuzz_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/sqlite_integration_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/sqlite_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/stack_overflow_regression_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/subst_depth_limit_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/symlink_overlay_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/thirdparty_adoption_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/threat_model_doc_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/threat_model_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/time_command_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/time_compat_scan_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/tool_registry_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/tty_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/typescript_integration_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/typescript_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/unicode_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/unset_function_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/urandom_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/workflow_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/integration/yq_integration_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/logging_security_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/proptest_security.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/azure_discover_rank.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/azure_generate_url.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/azure_query_capacity.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/helm_validate_chart.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/jwt_test_setup.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/stitch_download_asset.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/stitch_fetch.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/stitch_verify_setup.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/superpowers_find_polluter.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/skills_fixtures/vercel_deploy.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/awk/awk.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/awk/delete-array.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/awk/dev-stderr.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/awk/eval-bugs.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/awk/filename.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/awk/getline-file.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/alias.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/append_redirect.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/arith-dynamic.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/arithmetic-base-expansion.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/arithmetic.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/array-slicing.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/array-splat.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/arrays.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/assoc-arrays.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/awk-printf-width.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/background.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/bash-c-exports.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/bash-command.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/bash-flags.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/bash-source-var.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/bash-stdin-pipe.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/bc.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/blackbox-edge-cases.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/blackbox-exploration.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/brace-expansion.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/brace_expansion_lookahead.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/cat.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/checksum.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/chown-kill.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/cmd-suggestions.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/cmdsub_depth_unquoted.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/column.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/comm.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/command-not-found.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/command-subst.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/command.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/command_v.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/compgen-path.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/conditional-short-circuit.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/conditional.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/control-flow.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/cuttr.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/date.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/declare.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/df.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/diff.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/dirstack.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/du.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/echo.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/empty-bodies.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/env.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/errexit.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/eval-bugs.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/exec-command.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/exec-fd-redirect.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/exec-fd-variable.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/exit-status.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/expr.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/extglob.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/file.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/fileops.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/find.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/functions.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/getopts.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/glob-options.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/glob_match_cap.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/globs.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/gzip.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/headtail.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/help-flag.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/heredoc-edge.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/heredoc.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/herestring.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/hextools.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/history.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/indirect-expansion.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/less.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/ln.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/ls.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/memory_budget_desync.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/mktemp.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/nameref-assoc.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/nameref.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/negative-tests.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/nl.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/nounset.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/numfmt.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/od.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/parse-errors.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/paste-flags.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/paste.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/path.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/pipes-redirects.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/printenv.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/printf.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/procsub.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/quote.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/read-builtin.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/readlink.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/recursive-cmdsub.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/regex-limit.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/replace_pattern_limit.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/script-exec.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/seq.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/set-allexport.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/shell-grammar.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/shuf.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/sleep.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/sortuniq.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/source.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/stat.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/string-ops.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/strings.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/subprocess-isolation.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/subshell.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/tar.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/tar_create.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/tee.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/temp-binding.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/test-operators.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/test-tty.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/textrev.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/time.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/timeout.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/tree.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/truncate.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/type.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/unicode.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/unset-exported-var.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/var-op-test.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/variables.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/wait.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/watch.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/wc.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/word-split.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/bash/xargs.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/grep/eval-bugs.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/grep/grep.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/grep/rg.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/jq/jq.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/python/env_leak.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/python/python.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/sed/eval-bugs.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/typescript/typescript.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/spec_cases/yq/yq.test.sh +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/ssh_builtin_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/ssh_supabase_tests.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit/tests/support/filesystem_security_conformance.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/Cargo.toml +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/README.md +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/bash_basics.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/custom_filesystem_interop.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/data_pipeline.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/fastapi_async_tool.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/jupyter_async_test.ipynb +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/k8s_orchestrator.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/langgraph_async_tool.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/llm_tool.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/examples/session_history.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/src/lib.rs +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/_bashkit_categories.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/_security_advanced.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/_security_core.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_ai_adapters.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_analyze.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_async_callbacks.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_basic.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_builtins.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_control_flow.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_custom_builtin_fs.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_deepagents_backend.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_error_handling.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_execution_profiles.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_fastapi_integration.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_filesystem_interop.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_integration.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_jupyter_compat.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_langgraph_integration.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_network_config.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_network_credentials.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_python_security.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_readonly_mounts.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_registered_tools.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_runtime_extension.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_scripts.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_security.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_shell_injection.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_snapshot_history.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_sqlite.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_streaming_output.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_strings_and_quoting.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_teardown_determinism.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_tool_metadata.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/crates/bashkit-python/tests/test_vfs.py +0 -0
- {bashkit-0.18.1 → bashkit-0.18.2}/pyproject.toml +0 -0
|
@@ -238,7 +238,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667"
|
|
|
238
238
|
dependencies = [
|
|
239
239
|
"proc-macro2",
|
|
240
240
|
"quote",
|
|
241
|
-
"syn 3.0.
|
|
241
|
+
"syn 3.0.6",
|
|
242
242
|
]
|
|
243
243
|
|
|
244
244
|
[[package]]
|
|
@@ -342,7 +342,7 @@ checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
|
|
|
342
342
|
|
|
343
343
|
[[package]]
|
|
344
344
|
name = "bashkit"
|
|
345
|
-
version = "0.18.
|
|
345
|
+
version = "0.18.2"
|
|
346
346
|
dependencies = [
|
|
347
347
|
"anyhow",
|
|
348
348
|
"async-trait",
|
|
@@ -404,7 +404,7 @@ dependencies = [
|
|
|
404
404
|
|
|
405
405
|
[[package]]
|
|
406
406
|
name = "bashkit-bench"
|
|
407
|
-
version = "0.18.
|
|
407
|
+
version = "0.18.2"
|
|
408
408
|
dependencies = [
|
|
409
409
|
"anyhow",
|
|
410
410
|
"bashkit",
|
|
@@ -419,7 +419,7 @@ dependencies = [
|
|
|
419
419
|
|
|
420
420
|
[[package]]
|
|
421
421
|
name = "bashkit-capi"
|
|
422
|
-
version = "0.18.
|
|
422
|
+
version = "0.18.2"
|
|
423
423
|
dependencies = [
|
|
424
424
|
"bashkit",
|
|
425
425
|
"serde",
|
|
@@ -429,7 +429,7 @@ dependencies = [
|
|
|
429
429
|
|
|
430
430
|
[[package]]
|
|
431
431
|
name = "bashkit-cli"
|
|
432
|
-
version = "0.18.
|
|
432
|
+
version = "0.18.2"
|
|
433
433
|
dependencies = [
|
|
434
434
|
"anyhow",
|
|
435
435
|
"bashkit",
|
|
@@ -443,21 +443,21 @@ dependencies = [
|
|
|
443
443
|
|
|
444
444
|
[[package]]
|
|
445
445
|
name = "bashkit-coreutils-port"
|
|
446
|
-
version = "0.18.
|
|
446
|
+
version = "0.18.2"
|
|
447
447
|
dependencies = [
|
|
448
448
|
"anyhow",
|
|
449
449
|
"prettyplease",
|
|
450
450
|
"proc-macro2",
|
|
451
451
|
"quote",
|
|
452
452
|
"serde",
|
|
453
|
-
"syn 3.0.
|
|
453
|
+
"syn 3.0.6",
|
|
454
454
|
"tempfile",
|
|
455
455
|
"toml",
|
|
456
456
|
]
|
|
457
457
|
|
|
458
458
|
[[package]]
|
|
459
459
|
name = "bashkit-eval"
|
|
460
|
-
version = "0.18.
|
|
460
|
+
version = "0.18.2"
|
|
461
461
|
dependencies = [
|
|
462
462
|
"anyhow",
|
|
463
463
|
"async-trait",
|
|
@@ -474,7 +474,7 @@ dependencies = [
|
|
|
474
474
|
|
|
475
475
|
[[package]]
|
|
476
476
|
name = "bashkit-js"
|
|
477
|
-
version = "0.18.
|
|
477
|
+
version = "0.18.2"
|
|
478
478
|
dependencies = [
|
|
479
479
|
"bashkit",
|
|
480
480
|
"napi",
|
|
@@ -486,7 +486,7 @@ dependencies = [
|
|
|
486
486
|
|
|
487
487
|
[[package]]
|
|
488
488
|
name = "bashkit-python"
|
|
489
|
-
version = "0.18.
|
|
489
|
+
version = "0.18.2"
|
|
490
490
|
dependencies = [
|
|
491
491
|
"bashkit",
|
|
492
492
|
"num-bigint 0.4.8",
|
|
@@ -498,7 +498,7 @@ dependencies = [
|
|
|
498
498
|
|
|
499
499
|
[[package]]
|
|
500
500
|
name = "bashkit-wasm"
|
|
501
|
-
version = "0.18.
|
|
501
|
+
version = "0.18.2"
|
|
502
502
|
dependencies = [
|
|
503
503
|
"bashkit",
|
|
504
504
|
"console_error_panic_hook",
|
|
@@ -664,7 +664,7 @@ checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f"
|
|
|
664
664
|
dependencies = [
|
|
665
665
|
"proc-macro2",
|
|
666
666
|
"quote",
|
|
667
|
-
"syn 3.0.
|
|
667
|
+
"syn 3.0.6",
|
|
668
668
|
]
|
|
669
669
|
|
|
670
670
|
[[package]]
|
|
@@ -830,9 +830,9 @@ dependencies = [
|
|
|
830
830
|
|
|
831
831
|
[[package]]
|
|
832
832
|
name = "clap"
|
|
833
|
-
version = "4.6.
|
|
833
|
+
version = "4.6.7"
|
|
834
834
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
835
|
-
checksum = "
|
|
835
|
+
checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"
|
|
836
836
|
dependencies = [
|
|
837
837
|
"clap_builder",
|
|
838
838
|
"clap_derive",
|
|
@@ -840,9 +840,9 @@ dependencies = [
|
|
|
840
840
|
|
|
841
841
|
[[package]]
|
|
842
842
|
name = "clap_builder"
|
|
843
|
-
version = "4.6.
|
|
843
|
+
version = "4.6.7"
|
|
844
844
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
845
|
-
checksum = "
|
|
845
|
+
checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"
|
|
846
846
|
dependencies = [
|
|
847
847
|
"anstyle",
|
|
848
848
|
"clap_lex",
|
|
@@ -850,14 +850,14 @@ dependencies = [
|
|
|
850
850
|
|
|
851
851
|
[[package]]
|
|
852
852
|
name = "clap_derive"
|
|
853
|
-
version = "4.6.
|
|
853
|
+
version = "4.6.7"
|
|
854
854
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
855
|
-
checksum = "
|
|
855
|
+
checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"
|
|
856
856
|
dependencies = [
|
|
857
857
|
"heck",
|
|
858
858
|
"proc-macro2",
|
|
859
859
|
"quote",
|
|
860
|
-
"syn 3.0.
|
|
860
|
+
"syn 3.0.6",
|
|
861
861
|
]
|
|
862
862
|
|
|
863
863
|
[[package]]
|
|
@@ -911,7 +911,7 @@ version = "3.1.1"
|
|
|
911
911
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
912
912
|
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
|
|
913
913
|
dependencies = [
|
|
914
|
-
"windows-sys 0.
|
|
914
|
+
"windows-sys 0.61.2",
|
|
915
915
|
]
|
|
916
916
|
|
|
917
917
|
[[package]]
|
|
@@ -1336,7 +1336,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8"
|
|
|
1336
1336
|
dependencies = [
|
|
1337
1337
|
"proc-macro2",
|
|
1338
1338
|
"quote",
|
|
1339
|
-
"syn 3.0.
|
|
1339
|
+
"syn 3.0.6",
|
|
1340
1340
|
]
|
|
1341
1341
|
|
|
1342
1342
|
[[package]]
|
|
@@ -1475,7 +1475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1475
1475
|
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
1476
1476
|
dependencies = [
|
|
1477
1477
|
"libc",
|
|
1478
|
-
"windows-sys 0.
|
|
1478
|
+
"windows-sys 0.61.2",
|
|
1479
1479
|
]
|
|
1480
1480
|
|
|
1481
1481
|
[[package]]
|
|
@@ -1668,7 +1668,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44"
|
|
|
1668
1668
|
dependencies = [
|
|
1669
1669
|
"proc-macro2",
|
|
1670
1670
|
"quote",
|
|
1671
|
-
"syn 3.0.
|
|
1671
|
+
"syn 3.0.6",
|
|
1672
1672
|
]
|
|
1673
1673
|
|
|
1674
1674
|
[[package]]
|
|
@@ -2675,7 +2675,7 @@ checksum = "77060ebe535362c3da75682cd17b0431017b6e7c5661e714fc69a7ad017d1301"
|
|
|
2675
2675
|
dependencies = [
|
|
2676
2676
|
"proc-macro2",
|
|
2677
2677
|
"quote",
|
|
2678
|
-
"syn 3.0.
|
|
2678
|
+
"syn 3.0.6",
|
|
2679
2679
|
]
|
|
2680
2680
|
|
|
2681
2681
|
[[package]]
|
|
@@ -2938,9 +2938,9 @@ dependencies = [
|
|
|
2938
2938
|
|
|
2939
2939
|
[[package]]
|
|
2940
2940
|
name = "napi"
|
|
2941
|
-
version = "3.12.
|
|
2941
|
+
version = "3.12.7"
|
|
2942
2942
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2943
|
-
checksum = "
|
|
2943
|
+
checksum = "b7d3c1107f2fda46a7bd2676d65221b7b8160054494b38554b0e055c731714db"
|
|
2944
2944
|
dependencies = [
|
|
2945
2945
|
"bitflags 2.13.2",
|
|
2946
2946
|
"ctor",
|
|
@@ -2955,15 +2955,15 @@ dependencies = [
|
|
|
2955
2955
|
|
|
2956
2956
|
[[package]]
|
|
2957
2957
|
name = "napi-build"
|
|
2958
|
-
version = "2.4.
|
|
2958
|
+
version = "2.4.4"
|
|
2959
2959
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2960
|
-
checksum = "
|
|
2960
|
+
checksum = "9befcb51d87271051c0c11aaf625d09340266b7f1ac3fef5975e62274dc2813f"
|
|
2961
2961
|
|
|
2962
2962
|
[[package]]
|
|
2963
2963
|
name = "napi-derive"
|
|
2964
|
-
version = "3.6.
|
|
2964
|
+
version = "3.6.8"
|
|
2965
2965
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2966
|
-
checksum = "
|
|
2966
|
+
checksum = "7e332e701386d8101b093203e296059ad8aeef58ddd4c75594f3c84ce637405e"
|
|
2967
2967
|
dependencies = [
|
|
2968
2968
|
"convert_case",
|
|
2969
2969
|
"ctor",
|
|
@@ -2975,9 +2975,9 @@ dependencies = [
|
|
|
2975
2975
|
|
|
2976
2976
|
[[package]]
|
|
2977
2977
|
name = "napi-derive-backend"
|
|
2978
|
-
version = "6.1.
|
|
2978
|
+
version = "6.1.4"
|
|
2979
2979
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2980
|
-
checksum = "
|
|
2980
|
+
checksum = "fd6856fe1686867da90ed0dc292d7c0c87a695eb7c578b913360f33619ee01e3"
|
|
2981
2981
|
dependencies = [
|
|
2982
2982
|
"convert_case",
|
|
2983
2983
|
"proc-macro2",
|
|
@@ -2988,9 +2988,9 @@ dependencies = [
|
|
|
2988
2988
|
|
|
2989
2989
|
[[package]]
|
|
2990
2990
|
name = "napi-sys"
|
|
2991
|
-
version = "3.3.
|
|
2991
|
+
version = "3.3.2"
|
|
2992
2992
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2993
|
-
checksum = "
|
|
2993
|
+
checksum = "6801fc65ba4d7035636e93635e281113f00410401a237dcd4f55b1565ead2115"
|
|
2994
2994
|
dependencies = [
|
|
2995
2995
|
"libloading 0.9.0",
|
|
2996
2996
|
]
|
|
@@ -3788,7 +3788,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
3788
3788
|
checksum = "2bfe0f4c752e450fc2faf62654f1c134747922825d5b04ca717b8874f41a40c0"
|
|
3789
3789
|
dependencies = [
|
|
3790
3790
|
"proc-macro2",
|
|
3791
|
-
"syn 3.0.
|
|
3791
|
+
"syn 3.0.6",
|
|
3792
3792
|
]
|
|
3793
3793
|
|
|
3794
3794
|
[[package]]
|
|
@@ -4468,7 +4468,7 @@ dependencies = [
|
|
|
4468
4468
|
"errno",
|
|
4469
4469
|
"libc",
|
|
4470
4470
|
"linux-raw-sys",
|
|
4471
|
-
"windows-sys 0.
|
|
4471
|
+
"windows-sys 0.61.2",
|
|
4472
4472
|
]
|
|
4473
4473
|
|
|
4474
4474
|
[[package]]
|
|
@@ -4526,7 +4526,7 @@ dependencies = [
|
|
|
4526
4526
|
"security-framework",
|
|
4527
4527
|
"security-framework-sys",
|
|
4528
4528
|
"webpki-root-certs",
|
|
4529
|
-
"windows-sys 0.
|
|
4529
|
+
"windows-sys 0.61.2",
|
|
4530
4530
|
]
|
|
4531
4531
|
|
|
4532
4532
|
[[package]]
|
|
@@ -4746,7 +4746,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
|
4746
4746
|
dependencies = [
|
|
4747
4747
|
"proc-macro2",
|
|
4748
4748
|
"quote",
|
|
4749
|
-
"syn 3.0.
|
|
4749
|
+
"syn 3.0.6",
|
|
4750
4750
|
]
|
|
4751
4751
|
|
|
4752
4752
|
[[package]]
|
|
@@ -4816,7 +4816,7 @@ checksum = "a22144e767da4ddd8416dbf383700542ffd8a5dc493dfecedfe1fe3ad03c98ae"
|
|
|
4816
4816
|
dependencies = [
|
|
4817
4817
|
"proc-macro2",
|
|
4818
4818
|
"quote",
|
|
4819
|
-
"syn 3.0.
|
|
4819
|
+
"syn 3.0.6",
|
|
4820
4820
|
]
|
|
4821
4821
|
|
|
4822
4822
|
[[package]]
|
|
@@ -5182,9 +5182,9 @@ dependencies = [
|
|
|
5182
5182
|
|
|
5183
5183
|
[[package]]
|
|
5184
5184
|
name = "syn"
|
|
5185
|
-
version = "3.0.
|
|
5185
|
+
version = "3.0.6"
|
|
5186
5186
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5187
|
-
checksum = "
|
|
5187
|
+
checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
|
|
5188
5188
|
dependencies = [
|
|
5189
5189
|
"proc-macro2",
|
|
5190
5190
|
"quote",
|
|
@@ -5256,7 +5256,7 @@ dependencies = [
|
|
|
5256
5256
|
"getrandom 0.4.3",
|
|
5257
5257
|
"once_cell",
|
|
5258
5258
|
"rustix",
|
|
5259
|
-
"windows-sys 0.
|
|
5259
|
+
"windows-sys 0.61.2",
|
|
5260
5260
|
]
|
|
5261
5261
|
|
|
5262
5262
|
[[package]]
|
|
@@ -5312,7 +5312,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
|
|
|
5312
5312
|
dependencies = [
|
|
5313
5313
|
"proc-macro2",
|
|
5314
5314
|
"quote",
|
|
5315
|
-
"syn 3.0.
|
|
5315
|
+
"syn 3.0.6",
|
|
5316
5316
|
]
|
|
5317
5317
|
|
|
5318
5318
|
[[package]]
|
|
@@ -5384,7 +5384,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e"
|
|
|
5384
5384
|
dependencies = [
|
|
5385
5385
|
"proc-macro2",
|
|
5386
5386
|
"quote",
|
|
5387
|
-
"syn 3.0.
|
|
5387
|
+
"syn 3.0.6",
|
|
5388
5388
|
]
|
|
5389
5389
|
|
|
5390
5390
|
[[package]]
|
|
@@ -5990,7 +5990,7 @@ dependencies = [
|
|
|
5990
5990
|
"bumpalo",
|
|
5991
5991
|
"proc-macro2",
|
|
5992
5992
|
"quote",
|
|
5993
|
-
"syn 3.0.
|
|
5993
|
+
"syn 3.0.6",
|
|
5994
5994
|
"wasm-bindgen-shared",
|
|
5995
5995
|
]
|
|
5996
5996
|
|
|
@@ -6067,7 +6067,7 @@ version = "0.1.11"
|
|
|
6067
6067
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6068
6068
|
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
|
6069
6069
|
dependencies = [
|
|
6070
|
-
"windows-sys 0.
|
|
6070
|
+
"windows-sys 0.61.2",
|
|
6071
6071
|
]
|
|
6072
6072
|
|
|
6073
6073
|
[[package]]
|
|
@@ -6438,7 +6438,7 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da"
|
|
|
6438
6438
|
dependencies = [
|
|
6439
6439
|
"proc-macro2",
|
|
6440
6440
|
"quote",
|
|
6441
|
-
"syn 3.0.
|
|
6441
|
+
"syn 3.0.6",
|
|
6442
6442
|
]
|
|
6443
6443
|
|
|
6444
6444
|
[[package]]
|
|
@@ -431,7 +431,7 @@ Enable the `sqlite` feature to embed [Turso](https://github.com/tursodatabase/tu
|
|
|
431
431
|
|
|
432
432
|
```toml
|
|
433
433
|
[dependencies]
|
|
434
|
-
bashkit = { version = "0.18.
|
|
434
|
+
bashkit = { version = "0.18.2", features = ["sqlite"] }
|
|
435
435
|
```
|
|
436
436
|
|
|
437
437
|
```rust
|
|
@@ -617,7 +617,7 @@ Hex as `ex_bashkit`. Independent community project, unaffiliated with Everruns.
|
|
|
617
617
|
|
|
618
618
|
### .NET (community)
|
|
619
619
|
|
|
620
|
-
[computerwelt](https://github.com/
|
|
620
|
+
[computerwelt](https://github.com/curiosity-ai/computerwelt) — Community .NET binding for Bashkit. Independent community project, unaffiliated with Everruns.
|
|
621
621
|
|
|
622
622
|
## Security
|
|
623
623
|
|
|
@@ -72,7 +72,7 @@ for sandbox security reasons. See the compliance spec for details.
|
|
|
72
72
|
| `times` | - | POSIX display process times |
|
|
73
73
|
| `grep` | `-i`, `-v`, `-c`, `-n`, `-E`, `-q` | Pattern matching |
|
|
74
74
|
| `rg` | `-i/-S/-s`, `-n/-N`, `--column`, `-b/--byte-offset`, `--vimgrep`, basic `--json`, `--stats`, `--null`, `-c`, `--count-matches`, `--include-zero`, `-l`, `--files-with-matches`, `--files-without-match`, `--files`, `-F`, `-w`, `-x`, `-a/--text`, `--binary`, `-m`, `-M/--max-columns`, `--max-columns-preview`, `--max-depth`, `-A`, `-B`, `-C`, separator flags, `--heading/--no-heading`, `--sort/--sortr`, `--path-separator`, `-g/--glob`, `--ignore-file`, `.ignore`/`.gitignore`, `--no-ignore*`, `--require-git/--no-require-git`, `-u/--unrestricted`, `--messages/--no-messages`, `-t/--type`, `-T/--type-not`, `--type-add`, `--type-clear`, `--type-list`, `--hidden/--no-hidden`, `-o`, `-q`, `-e`, `-f`, `-E/--encoding` (`auto`, `none`, UTF-8, UTF-16LE/BE), `-r`, `--passthru`, `--trim`, `-H/-I`, `--no-config`, `--line-buffered`, `--block-buffered`, `--mmap/--no-mmap`, `-P/--pcre2`, `--no-pcre2`, `--engine`, `--auto-hybrid-regex`, `--no-auto-hybrid-regex`, `--help`, `--version` | Recursive ripgrep-style search |
|
|
75
|
-
| `sed` | `s///[
|
|
75
|
+
| `sed` | `s///[gpiImMN w]`, `y`, `d`, `D`, `p`, `P`, `n`, `N`, `q[N]`, `Q[N]`, `=`, `l[N]`, `z`, `F`, `a`, `i`, `c`, `r`, `R`, `w`, `W`, `h/H/g/G/x`, `b`/`t`/`T`/`:label`, `{}`, `#`/`#n`; addresses `N`, `$`, `/re/[IM]`, `\cREc`, `first~step`, `a,b`, `a,+N`, `a,~N`, `0,/re/`, `!`; options `-n -e -f -i[SUF] -E/-r -s -z -l N -u --` and long forms | Stream editing; one stream across operands unless `-s`/`-i` |
|
|
76
76
|
| `awk` | `'{print}'`, `-F`, `-v`, loops, arrays, increment, ternary | Text processing |
|
|
77
77
|
| `jq` | `.field`, `.[n]`, pipes, file args, `-r`, `-c`, `-n`, `-s`, `-S`, `-e`, `-j`, `--tab`, `--arg`, `--argjson`, `-V`, combined flags | JSON processing |
|
|
78
78
|
| `sleep` | `N`, `N.N` | Pause execution (max 60s) |
|
|
@@ -502,6 +502,11 @@ Identified from eval analysis, all items now implemented:
|
|
|
502
502
|
- [x] `sed` `0~2` step addressing, even/odd line processing
|
|
503
503
|
- [x] `sed` `Q` quiet quit command
|
|
504
504
|
- [x] `sed` `0,/pattern/` first match addressing
|
|
505
|
+
- [x] `sed` GNU rewrite, issue #2427: literal `$` in the replacement, BRE/ERE
|
|
506
|
+
translation shared by `s///` and address regexes, stateful range addresses,
|
|
507
|
+
single-stream multi-file input, preserved missing final newline, `s///Ng`,
|
|
508
|
+
the `y = l n N P D T z F r R w W` commands, `#` comments and `#n`, atomic
|
|
509
|
+
mode-preserving `-i`, and full getopt-style option parsing
|
|
505
510
|
- [x] AWK `$0` modification with field re-splitting
|
|
506
511
|
|
|
507
512
|
### Not Planned
|
|
@@ -14,7 +14,7 @@ Add the `logging` feature to your `Cargo.toml`:
|
|
|
14
14
|
|
|
15
15
|
```toml
|
|
16
16
|
[dependencies]
|
|
17
|
-
bashkit = { version = "0.18.
|
|
17
|
+
bashkit = { version = "0.18.2", features = ["logging"] }
|
|
18
18
|
tracing-subscriber = "0.3" # or your preferred subscriber
|
|
19
19
|
```
|
|
20
20
|
|
|
@@ -277,7 +277,7 @@ Scripts may attempt to leak sensitive information.
|
|
|
277
277
|
|
|
278
278
|
| Threat | Attack Example | Mitigation | Status |
|
|
279
279
|
|--------|---------------|------------|--------|
|
|
280
|
-
| Fork-PR secret exfil (TM-INF-026) | Fork PR edits `examples/*.rs` or `build.rs` to read `$DOPPLER_TOKEN` / `$ANTHROPIC_API_KEY` from the runner env and exfiltrate; first-time-contributor approval gate runs the workflow from PR head, and `DOPPLER_TOKEN` is the master key to every other secret in the Doppler config | Trusted-run gates exclude PR execution from secret-backed examples. Dedicated fetch steps in `.github/workflows/{ci,js,publish-js}.yml` request one API key, mask it, and exit before build/example execution. Execution steps receive only that scoped key; Docker inherits it by name, without a secret value in argv. Neither the execution shell nor a live Doppler parent retains the broad service token. This protects process environments on a trusted runner; it does not sandbox dependencies persisting across steps. Workflow-script regression tests check child/parent environments. CI has contents-read permission only and does not persist checkout credentials; release examples install the reviewed lockfile without lifecycle scripts before linking the built artifact | **FIXED** |
|
|
280
|
+
| Fork-PR secret exfil (TM-INF-026) | Fork PR edits `examples/*.rs` or `build.rs` to read `$DOPPLER_TOKEN` / `$ANTHROPIC_API_KEY` from the runner env and exfiltrate; first-time-contributor approval gate runs the workflow from PR head, and `DOPPLER_TOKEN` is the master key to every other secret in the Doppler config | Trusted-run gates exclude PR execution from secret-backed examples. Dedicated fetch steps in `.github/workflows/{ci,js,publish-js}.yml` request one API key, mask it, and exit before build/example execution. Execution steps receive only that scoped key; Docker inherits it by name, without a secret value in argv. Neither the execution shell nor a live Doppler parent retains the broad service token. This protects process environments on a trusted runner; it does not sandbox dependencies persisting across steps. Workflow-script regression tests check child/parent environments. CI has contents-read permission only and does not persist checkout credentials anywhere they could reach untrusted code (TM-INF-034); release examples install the reviewed lockfile without lifecycle scripts before linking the built artifact | **FIXED** |
|
|
281
281
|
|
|
282
282
|
**Additional information-disclosure hardening:**
|
|
283
283
|
|
|
@@ -287,6 +287,7 @@ Scripts may attempt to leak sensitive information.
|
|
|
287
287
|
| jq `halt`/`halt_error` exits the host process (TM-INF-023) | Filter calls `halt(N)` → `std::process::exit` | Upstream `halt` native stripped; safe replacement returns a jq error | MITIGATED |
|
|
288
288
|
| Host env side-channel via clap `Arg::env` (TM-INF-024) | `ls` resolved `TABSIZE`/`TIME_STYLE` from host env | Codegen strips `.env(...)`; builtins read `ctx.env` only | MITIGATED |
|
|
289
289
|
| Untrusted generated Rust in drift CI (TM-INF-025) | Malicious upstream `uu_app()` runs with a write token | Generator validates the emitted shape; drift workflow splits read/write privilege | FIXED |
|
|
290
|
+
| Checkout token readable by untrusted CI code (TM-INF-034) | `actions/checkout` leaves `GITHUB_TOKEN` in `.git/config`, where a dependency build script or test in the same job can read it | `persist-credentials: false` on every checkout that does not back an authenticated `git`/`gh` call, and on every job of a pull-request-triggered workflow; every workflow declares a read-only default `permissions` block | FIXED |
|
|
290
291
|
| Publish from unverified release refs (TM-INF-027) | Dispatch publish from a branch or unprotected tag | Dispatch requires `refs/heads/main`; publish gated on real `vX.Y.Z` tags | FIXED |
|
|
291
292
|
| JS `onOutput` errors expose host stack traces (TM-INF-028) | Callback throws, leaking `error.stack` | Propagate `error.message` only; strip absolute/`file://` paths | FIXED |
|
|
292
293
|
| Raw callback errors leak host internals (TM-INF-030) | Tool callback throws API keys/connection strings/stack traces | `sanitize_errors` defaults on for `ScriptedTool`/`ToolImpl`/`ToolRegistry` across shell/Python/TypeScript | MITIGATED |
|
|
@@ -882,7 +883,7 @@ builtin silently fails.
|
|
|
882
883
|
| Threat | Attack Example | Mitigation | Status |
|
|
883
884
|
|--------|---------------|------------|--------|
|
|
884
885
|
| Awk byte-boundary panic (TM-UNI-001) | Multi-byte chars in awk input | `catch_unwind` catches panic | PARTIAL |
|
|
885
|
-
| Sed byte-boundary panic (TM-UNI-002) |
|
|
886
|
+
| Sed byte-boundary panic (TM-UNI-002) | Multi-byte `s` delimiter, e.g. `sed 's≠a≠X≠'` | Char-based script parser; no byte slicing of script text | FIXED |
|
|
886
887
|
| Expr substr panic (TM-UNI-015) | `expr substr "café" 4 1` | `catch_unwind` catches panic | PARTIAL |
|
|
887
888
|
| Printf precision panic (TM-UNI-016) | `printf "%.1s" "é"` | `catch_unwind` catches panic | PARTIAL |
|
|
888
889
|
| Cut/tr byte-level parsing (TM-UNI-017) | `tr 'é' 'e'`, multi-byte in char set | `catch_unwind` catches; silent data loss | PARTIAL |
|
|
@@ -31,6 +31,7 @@ use std::path::{Path, PathBuf};
|
|
|
31
31
|
use super::limits::ARCHIVE_MAX_DECOMPRESSION_RATIO as MAX_DECOMPRESSION_RATIO;
|
|
32
32
|
use super::{Builtin, Context, resolve_path};
|
|
33
33
|
use crate::error::Result;
|
|
34
|
+
use crate::fs::vfs_join;
|
|
34
35
|
use crate::interpreter::ExecResult;
|
|
35
36
|
use crate::limits::{BudgetedBytes, BudgetedString, BudgetedVec, LimitExceeded};
|
|
36
37
|
|
|
@@ -586,7 +587,7 @@ fn add_directory_to_tar<'a>(
|
|
|
586
587
|
// Add directory contents
|
|
587
588
|
let entries = ctx.fs.read_dir(path).await?;
|
|
588
589
|
for entry in entries {
|
|
589
|
-
let child_path = path
|
|
590
|
+
let child_path = vfs_join(path, &entry.name);
|
|
590
591
|
let child_name = format!("{}/{}", name, entry.name);
|
|
591
592
|
|
|
592
593
|
if entry.metadata.file_type.is_dir() {
|
|
@@ -661,7 +662,12 @@ fn validate_tar_for_extraction(
|
|
|
661
662
|
|
|
662
663
|
if !to_stdout {
|
|
663
664
|
let entry = Path::new(name.as_ref());
|
|
664
|
-
|
|
665
|
+
// `has_root()` rather than `is_absolute()`: a `/etc/passwd` entry
|
|
666
|
+
// carries no drive prefix, so on Windows `is_absolute()` is false
|
|
667
|
+
// and this arm never fired (issue #2425's class). The
|
|
668
|
+
// `starts_with(extract_base)` arm below still blocked the write.
|
|
669
|
+
if entry.has_root()
|
|
670
|
+
|| entry.is_absolute()
|
|
665
671
|
|| entry
|
|
666
672
|
.components()
|
|
667
673
|
.any(|component| matches!(component, std::path::Component::ParentDir))
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
//! Shared atomic in-place file replacement for builtins that rewrite files.
|
|
2
|
+
//!
|
|
3
|
+
//! THREAT[TM-FS-016]: write a sibling temporary file, copy the original mode
|
|
4
|
+
//! onto it, and rename only after the new content is fully written. Any failure
|
|
5
|
+
//! leaves the source file untouched and removes the temporary.
|
|
6
|
+
//!
|
|
7
|
+
//! Extracted from `yq` so `sed -i` gets the same guarantees (issue #2427,
|
|
8
|
+
//! finding E): the previous `sed -i` wrote straight through
|
|
9
|
+
//! `FileSystem::write_file`, which recreates the entry with mode 0644 and loses
|
|
10
|
+
//! the original content if the write fails part-way.
|
|
11
|
+
|
|
12
|
+
use std::path::Path;
|
|
13
|
+
|
|
14
|
+
use crate::fs::vfs_join;
|
|
15
|
+
|
|
16
|
+
/// Failpoint names for one call site. Each builtin supplies its own so the
|
|
17
|
+
/// security failpoint suite can target them independently.
|
|
18
|
+
#[cfg_attr(not(feature = "failpoints"), allow(dead_code))]
|
|
19
|
+
pub(crate) struct AtomicFailpoints {
|
|
20
|
+
pub(crate) allocate: &'static str,
|
|
21
|
+
pub(crate) chmod: &'static str,
|
|
22
|
+
pub(crate) rename: &'static str,
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
pub(crate) async fn atomic_replace(
|
|
26
|
+
fs: &dyn crate::fs::FileSystem,
|
|
27
|
+
target: &Path,
|
|
28
|
+
content: &[u8],
|
|
29
|
+
tool: &str,
|
|
30
|
+
failpoints: AtomicFailpoints,
|
|
31
|
+
) -> std::result::Result<(), String> {
|
|
32
|
+
let parent = target.parent().unwrap_or_else(|| Path::new("/"));
|
|
33
|
+
#[cfg(feature = "failpoints")]
|
|
34
|
+
if injected_failure(failpoints.allocate, "exhausted") {
|
|
35
|
+
return Err("cannot allocate temporary file".to_string());
|
|
36
|
+
}
|
|
37
|
+
let mut temp = None;
|
|
38
|
+
for _ in 0..16 {
|
|
39
|
+
let mut suffix = [0u8; 8];
|
|
40
|
+
getrandom::fill(&mut suffix)
|
|
41
|
+
.map_err(|_| "cannot generate temporary filename".to_string())?;
|
|
42
|
+
let suffix = suffix
|
|
43
|
+
.iter()
|
|
44
|
+
.map(|byte| format!("{byte:02x}"))
|
|
45
|
+
.collect::<String>();
|
|
46
|
+
let candidate = vfs_join(parent, format!(".bashkit-{tool}-{suffix}.tmp"));
|
|
47
|
+
if !fs
|
|
48
|
+
.exists(&candidate)
|
|
49
|
+
.await
|
|
50
|
+
.map_err(|error| error.to_string())?
|
|
51
|
+
{
|
|
52
|
+
temp = Some(candidate);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
let temp = temp.ok_or_else(|| "cannot allocate temporary file".to_string())?;
|
|
57
|
+
if let Err(error) = fs.write_file(&temp, content).await {
|
|
58
|
+
let _ = fs.remove(&temp, false).await;
|
|
59
|
+
return Err(format!("cannot write temporary file: {error}"));
|
|
60
|
+
}
|
|
61
|
+
#[cfg(feature = "failpoints")]
|
|
62
|
+
if injected_failure(failpoints.chmod, "error") {
|
|
63
|
+
let _ = fs.remove(&temp, false).await;
|
|
64
|
+
return Err("cannot preserve file mode: injected failure".to_string());
|
|
65
|
+
}
|
|
66
|
+
if let Ok(metadata) = fs.stat(target).await
|
|
67
|
+
&& let Err(error) = fs.chmod(&temp, metadata.mode).await
|
|
68
|
+
{
|
|
69
|
+
let _ = fs.remove(&temp, false).await;
|
|
70
|
+
return Err(format!("cannot preserve file mode: {error}"));
|
|
71
|
+
}
|
|
72
|
+
#[cfg(feature = "failpoints")]
|
|
73
|
+
if injected_failure(failpoints.rename, "error") {
|
|
74
|
+
let _ = fs.remove(&temp, false).await;
|
|
75
|
+
return Err(format!(
|
|
76
|
+
"cannot replace '{}': injected failure",
|
|
77
|
+
target.display()
|
|
78
|
+
));
|
|
79
|
+
}
|
|
80
|
+
if let Err(error) = fs.rename(&temp, target).await {
|
|
81
|
+
let _ = fs.remove(&temp, false).await;
|
|
82
|
+
return Err(format!("cannot replace '{}': {error}", target.display()));
|
|
83
|
+
}
|
|
84
|
+
#[cfg(not(feature = "failpoints"))]
|
|
85
|
+
let _ = failpoints;
|
|
86
|
+
Ok(())
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#[cfg(feature = "failpoints")]
|
|
90
|
+
fn injected_failure(name: &str, expected: &str) -> bool {
|
|
91
|
+
fail::eval(name, |action| action.as_deref() == Some(expected)).unwrap_or(false)
|
|
92
|
+
}
|
|
@@ -18,6 +18,7 @@ use crate::fs::{FileSystem, normalize_path};
|
|
|
18
18
|
use crate::limits::ExecutionLimits;
|
|
19
19
|
// On wasm32 there is no OS thread to bridge the sync AWK evaluator to the async
|
|
20
20
|
// VFS, so redirected reads/writes drive the VFS future inline with now_or_never.
|
|
21
|
+
use crate::fs::vfs_join;
|
|
21
22
|
#[cfg(target_family = "wasm")]
|
|
22
23
|
use futures_util::FutureExt;
|
|
23
24
|
|
|
@@ -234,7 +235,7 @@ impl AwkInterpreter {
|
|
|
234
235
|
let resolved = if path_str.starts_with('/') {
|
|
235
236
|
PathBuf::from(path_str)
|
|
236
237
|
} else {
|
|
237
|
-
self.cwd
|
|
238
|
+
vfs_join(&self.cwd, path_str)
|
|
238
239
|
};
|
|
239
240
|
normalize_path(&resolved).to_string_lossy().to_string()
|
|
240
241
|
}
|
|
@@ -1200,7 +1201,7 @@ impl AwkInterpreter {
|
|
|
1200
1201
|
let resolved = if path.starts_with('/') {
|
|
1201
1202
|
PathBuf::from(path)
|
|
1202
1203
|
} else {
|
|
1203
|
-
self.cwd
|
|
1204
|
+
vfs_join(&self.cwd, path)
|
|
1204
1205
|
};
|
|
1205
1206
|
let key = resolved.to_string_lossy().into_owned();
|
|
1206
1207
|
// Bound the number of distinct redirect targets (DoS guard, parity with
|
|
@@ -451,6 +451,7 @@ fn normalize_awk_newlines(input: &str) -> String {
|
|
|
451
451
|
|
|
452
452
|
mod interpreter;
|
|
453
453
|
mod parser;
|
|
454
|
+
use crate::fs::vfs_join;
|
|
454
455
|
use interpreter::{AwkFlow, AwkInterpreter};
|
|
455
456
|
use parser::AwkParser;
|
|
456
457
|
|
|
@@ -535,7 +536,7 @@ impl Builtin for Awk {
|
|
|
535
536
|
let path = if ctx.args[i].starts_with('/') {
|
|
536
537
|
std::path::PathBuf::from(&ctx.args[i])
|
|
537
538
|
} else {
|
|
538
|
-
ctx.cwd
|
|
539
|
+
vfs_join(ctx.cwd, &ctx.args[i])
|
|
539
540
|
};
|
|
540
541
|
program_str = match read_text_file(&*ctx.fs, &path, "awk").await {
|
|
541
542
|
Ok(t) => t,
|
|
@@ -615,7 +616,7 @@ impl Builtin for Awk {
|
|
|
615
616
|
let path = if file.starts_with('/') {
|
|
616
617
|
std::path::PathBuf::from(file)
|
|
617
618
|
} else {
|
|
618
|
-
ctx.cwd
|
|
619
|
+
vfs_join(ctx.cwd, file)
|
|
619
620
|
};
|
|
620
621
|
|
|
621
622
|
let text = match read_text_file(&*ctx.fs, &path, "awk").await {
|
|
@@ -12,6 +12,7 @@ use std::path::Path;
|
|
|
12
12
|
|
|
13
13
|
use super::{Builtin, Context};
|
|
14
14
|
use crate::error::Result;
|
|
15
|
+
use crate::fs::vfs_join;
|
|
15
16
|
use crate::interpreter::ExecResult;
|
|
16
17
|
|
|
17
18
|
pub struct Cat;
|
|
@@ -72,7 +73,7 @@ impl Builtin for Cat {
|
|
|
72
73
|
let path = if Path::new(file).is_absolute() {
|
|
73
74
|
file.clone()
|
|
74
75
|
} else {
|
|
75
|
-
ctx.cwd
|
|
76
|
+
vfs_join(ctx.cwd, file).to_string_lossy().into_owned()
|
|
76
77
|
};
|
|
77
78
|
match ctx.fs.read_file(Path::new(&path)).await {
|
|
78
79
|
Ok(bytes) => raw.extend_from_slice(&bytes),
|
|
@@ -7,6 +7,7 @@ use sha2::{Digest, Sha256};
|
|
|
7
7
|
|
|
8
8
|
use super::{Builtin, Context};
|
|
9
9
|
use crate::error::Result;
|
|
10
|
+
use crate::fs::vfs_join;
|
|
10
11
|
use crate::interpreter::ExecResult;
|
|
11
12
|
|
|
12
13
|
/// md5sum builtin - compute MD5 message digest
|
|
@@ -100,7 +101,7 @@ async fn checksum_execute<D: Digest>(ctx: &Context<'_>, cmd: &str) -> Result<Exe
|
|
|
100
101
|
let path = if file.starts_with('/') {
|
|
101
102
|
std::path::PathBuf::from(file)
|
|
102
103
|
} else {
|
|
103
|
-
ctx.cwd
|
|
104
|
+
vfs_join(ctx.cwd, file)
|
|
104
105
|
};
|
|
105
106
|
|
|
106
107
|
match ctx.fs.read_file(&path).await {
|