bashkit 0.7.1__tar.gz → 0.8.0__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.
Files changed (535) hide show
  1. {bashkit-0.7.1 → bashkit-0.8.0}/Cargo.lock +50 -41
  2. {bashkit-0.7.1 → bashkit-0.8.0}/Cargo.toml +23 -1
  3. {bashkit-0.7.1 → bashkit-0.8.0}/PKG-INFO +1 -1
  4. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/Cargo.toml +26 -1
  5. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/README.md +33 -26
  6. bashkit-0.8.0/crates/bashkit/benches/file_ops.rs +405 -0
  7. bashkit-0.8.0/crates/bashkit/benches/hotpath.rs +312 -0
  8. bashkit-0.8.0/crates/bashkit/benches/results/README.md +22 -0
  9. bashkit-0.8.0/crates/bashkit/benches/results/criterion-file_ops-linux-x86_64-1779759850.md +52 -0
  10. bashkit-0.8.0/crates/bashkit/benches/results/criterion-hotpath-attrs+shopt-linux-x86_64-1779759850.md +68 -0
  11. bashkit-0.8.0/crates/bashkit/benches/results/criterion-hotpath-perf-linux-x86_64-1779744742.md +38 -0
  12. bashkit-0.8.0/crates/bashkit/benches/results/criterion-parallel-(none)-linux-x86_64-1773469129.md +67 -0
  13. bashkit-0.8.0/crates/bashkit/benches/results/criterion-sqlite-vm-linux-x86_64-1777865268.md +89 -0
  14. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/hooks.md +2 -2
  15. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/python.md +19 -15
  16. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/threat-model.md +7 -6
  17. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/python_scripts.rs +3 -3
  18. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/typescript_scripts.rs +2 -2
  19. bashkit-0.8.0/crates/bashkit/out file.txt +1 -0
  20. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/archive.rs +1 -4
  21. bashkit-0.8.0/crates/bashkit/src/builtins/awk/interpreter.rs +1308 -0
  22. bashkit-0.8.0/crates/bashkit/src/builtins/awk/mod.rs +723 -0
  23. bashkit-0.8.0/crates/bashkit/src/builtins/awk/parser.rs +1619 -0
  24. bashkit-0.8.0/crates/bashkit/src/builtins/awk/tests.rs +1109 -0
  25. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/base64.rs +9 -9
  26. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/column.rs +6 -2
  27. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/comm.rs +7 -3
  28. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/curl.rs +2 -1
  29. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/cuttr.rs +14 -12
  30. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/dirstack.rs +1 -3
  31. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/echo.rs +6 -2
  32. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/expand.rs +16 -23
  33. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/export.rs +6 -1
  34. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/fileops.rs +1 -2
  35. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/fold.rs +8 -10
  36. bashkit-0.8.0/crates/bashkit/src/builtins/helpers.rs +75 -0
  37. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/iconv.rs +16 -41
  38. bashkit-0.8.0/crates/bashkit/src/builtins/limits.rs +68 -0
  39. bashkit-0.8.0/crates/bashkit/src/builtins/ls/find.rs +596 -0
  40. bashkit-0.8.0/crates/bashkit/src/builtins/ls/glob.rs +44 -0
  41. bashkit-0.8.0/crates/bashkit/src/builtins/ls/list.rs +480 -0
  42. bashkit-0.8.0/crates/bashkit/src/builtins/ls/mod.rs +14 -0
  43. bashkit-0.8.0/crates/bashkit/src/builtins/ls/rmdir.rs +108 -0
  44. bashkit-0.8.0/crates/bashkit/src/builtins/ls/tests.rs +2620 -0
  45. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/mod.rs +5 -3
  46. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/numfmt.rs +1 -3
  47. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/parallel.rs +1 -4
  48. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/printf.rs +1 -2
  49. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/python.rs +125 -14
  50. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/retry.rs +1 -4
  51. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/rg/mod.rs +1000 -135
  52. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sed.rs +1 -2
  53. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sleep.rs +10 -14
  54. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/template.rs +1 -4
  55. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/textrev.rs +14 -4
  56. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/timeout.rs +1 -2
  57. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/typescript.rs +2 -2
  58. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/vars.rs +30 -15
  59. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/yaml.rs +1 -4
  60. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/yes.rs +6 -7
  61. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/credential.rs +1 -1
  62. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/overlay.rs +134 -0
  63. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/interpreter/mod.rs +856 -384
  64. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/lib.rs +30 -5
  65. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/limits.rs +25 -2
  66. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/parser/lexer.rs +8 -2
  67. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/parser/mod.rs +30 -0
  68. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/parser/tokens.rs +4 -1
  69. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/tool.rs +2 -2
  70. bashkit-0.8.0/crates/bashkit/tests/integration/agent_skills_publication_tests.rs +157 -0
  71. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/builtin_registry_tests.rs +26 -1
  72. bashkit-0.8.0/crates/bashkit/tests/integration/issue_1776_test.rs +50 -0
  73. bashkit-0.8.0/crates/bashkit/tests/integration/issue_1777_test.rs +129 -0
  74. bashkit-0.8.0/crates/bashkit/tests/integration/main.rs +95 -0
  75. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/python_integration_tests.rs +113 -0
  76. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/python_security_tests.rs +2 -2
  77. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/spec_tests.rs +1 -2
  78. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/threat_model_tests.rs +77 -6
  79. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/typescript_security_tests.rs +2 -2
  80. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/bash-command.test.sh +3 -3
  81. bashkit-0.7.1/crates/bashkit/src/builtins/awk.rs +0 -4734
  82. bashkit-0.7.1/crates/bashkit/src/builtins/ls.rs +0 -3824
  83. bashkit-0.7.1/crates/bashkit/tests/overlay_path_validation_tests.rs +0 -132
  84. {bashkit-0.7.1 → bashkit-0.8.0}/README.md +0 -0
  85. {bashkit-0.7.1 → bashkit-0.8.0}/bashkit/__init__.py +0 -0
  86. {bashkit-0.7.1 → bashkit-0.8.0}/bashkit/_bashkit.pyi +0 -0
  87. {bashkit-0.7.1 → bashkit-0.8.0}/bashkit/deepagents.py +0 -0
  88. {bashkit-0.7.1 → bashkit-0.8.0}/bashkit/langchain.py +0 -0
  89. {bashkit-0.7.1 → bashkit-0.8.0}/bashkit/py.typed +0 -0
  90. {bashkit-0.7.1 → bashkit-0.8.0}/bashkit/pydantic_ai.py +0 -0
  91. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/benches/parallel_execution.rs +0 -0
  92. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/benches/sqlite.rs +0 -0
  93. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/clap-builtins.md +0 -0
  94. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/compatibility.md +0 -0
  95. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/credential-injection.md +0 -0
  96. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/custom_builtins.md +0 -0
  97. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/jq.md +0 -0
  98. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/live_mounts.md +0 -0
  99. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/logging.md +0 -0
  100. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/sqlite.md +0 -0
  101. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/ssh.md +0 -0
  102. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/docs/typescript.md +0 -0
  103. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/agent_tool.rs +0 -0
  104. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/basic.rs +0 -0
  105. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/clap_builtin.rs +0 -0
  106. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/clap_builtin_subcommands.rs +0 -0
  107. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/custom_backend.rs +0 -0
  108. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/custom_builtins.rs +0 -0
  109. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/custom_filesystem_impl.rs +0 -0
  110. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/custom_fs.rs +0 -0
  111. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/git_workflow.rs +0 -0
  112. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/live_mounts.rs +0 -0
  113. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/python_external_functions.rs +0 -0
  114. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/realfs_readonly.rs +0 -0
  115. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/realfs_readwrite.rs +0 -0
  116. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/resource_limits.rs +0 -0
  117. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/scripted_tool.rs +0 -0
  118. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/show_tool_output.rs +0 -0
  119. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/sqlite_basic.rs +0 -0
  120. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/sqlite_workflow.rs +0 -0
  121. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/ssh_supabase.rs +0 -0
  122. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/streaming_output.rs +0 -0
  123. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/text_files.rs +0 -0
  124. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/text_processing.rs +0 -0
  125. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/typescript_external_functions.rs +0 -0
  126. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/examples/virtual_identity.rs +0 -0
  127. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/proptest-regressions/builtins/sqlite/tests.txt +0 -0
  128. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/alias.rs +0 -0
  129. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/arg_parser.rs +0 -0
  130. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/assert.rs +0 -0
  131. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/bc.rs +0 -0
  132. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/caller.rs +0 -0
  133. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/cat.rs +0 -0
  134. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/checksum.rs +0 -0
  135. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/clap_env.rs +0 -0
  136. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/clear.rs +0 -0
  137. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/compgen.rs +0 -0
  138. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/csv.rs +0 -0
  139. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/date.rs +0 -0
  140. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/diff.rs +0 -0
  141. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/disk.rs +0 -0
  142. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/dotenv.rs +0 -0
  143. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/environ.rs +0 -0
  144. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/envsubst.rs +0 -0
  145. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/expr.rs +0 -0
  146. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/fc.rs +0 -0
  147. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/flow.rs +0 -0
  148. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/cat_args.rs +0 -0
  149. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/extendedbigdecimal.rs +0 -0
  150. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format/argument.rs +0 -0
  151. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format/escape.rs +0 -0
  152. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format/human.rs +0 -0
  153. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format/mod.rs +0 -0
  154. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format/num_format.rs +0 -0
  155. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format/spec.rs +0 -0
  156. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/format_support.rs +0 -0
  157. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/ls_args.rs +0 -0
  158. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/mktemp_args.rs +0 -0
  159. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/mod.rs +0 -0
  160. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/num_parser.rs +0 -0
  161. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/od_args.rs +0 -0
  162. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/readlink_args.rs +0 -0
  163. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/realpath_args.rs +0 -0
  164. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/shuf_args.rs +0 -0
  165. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/stat_args.rs +0 -0
  166. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/tac_args.rs +0 -0
  167. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/tee_args.rs +0 -0
  168. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/generated/truncate_args.rs +0 -0
  169. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/git/client.rs +0 -0
  170. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/git/cmd.rs +0 -0
  171. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/git/config.rs +0 -0
  172. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/git/mod.rs +0 -0
  173. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/glob_cmd.rs +0 -0
  174. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/grep.rs +0 -0
  175. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/headtail.rs +0 -0
  176. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/help.rs +0 -0
  177. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/hextools.rs +0 -0
  178. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/http.rs +0 -0
  179. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/inspect.rs +0 -0
  180. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/introspect.rs +0 -0
  181. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/join.rs +0 -0
  182. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/args.rs +0 -0
  183. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/compat.rs +0 -0
  184. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/convert.rs +0 -0
  185. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/errors.rs +0 -0
  186. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/format.rs +0 -0
  187. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/mod.rs +0 -0
  188. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/regex_compat.rs +0 -0
  189. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/jq/tests.rs +0 -0
  190. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/json.rs +0 -0
  191. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/log.rs +0 -0
  192. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/mapfile.rs +0 -0
  193. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/mkfifo.rs +0 -0
  194. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/navigation.rs +0 -0
  195. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/nl.rs +0 -0
  196. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/paste.rs +0 -0
  197. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/patch.rs +0 -0
  198. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/path.rs +0 -0
  199. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/pipeline.rs +0 -0
  200. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/read.rs +0 -0
  201. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/search_common.rs +0 -0
  202. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/semver.rs +0 -0
  203. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/seq.rs +0 -0
  204. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/shuf.rs +0 -0
  205. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sortuniq.rs +0 -0
  206. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/source.rs +0 -0
  207. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/split.rs +0 -0
  208. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/dot_commands.rs +0 -0
  209. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/engine.rs +0 -0
  210. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/formatter.rs +0 -0
  211. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/mod.rs +0 -0
  212. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/parser.rs +0 -0
  213. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/tests.rs +0 -0
  214. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/sqlite/vfs_io.rs +0 -0
  215. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/allowlist.rs +0 -0
  216. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/client.rs +0 -0
  217. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/cmd.rs +0 -0
  218. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/config.rs +0 -0
  219. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/handler.rs +0 -0
  220. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/mod.rs +0 -0
  221. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/ssh/russh_handler.rs +0 -0
  222. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/strings.rs +0 -0
  223. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/system.rs +0 -0
  224. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/test.rs +0 -0
  225. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/tomlq.rs +0 -0
  226. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/trap.rs +0 -0
  227. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/tree.rs +0 -0
  228. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/truncate.rs +0 -0
  229. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/verify.rs +0 -0
  230. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/wait.rs +0 -0
  231. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/wc.rs +0 -0
  232. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/builtins/zip_cmd.rs +0 -0
  233. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/error.rs +0 -0
  234. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/backend.rs +0 -0
  235. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/limits.rs +0 -0
  236. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/memory.rs +0 -0
  237. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/mod.rs +0 -0
  238. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/mountable.rs +0 -0
  239. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/posix.rs +0 -0
  240. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/readonly.rs +0 -0
  241. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/realfs.rs +0 -0
  242. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/search.rs +0 -0
  243. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/fs/traits.rs +0 -0
  244. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/hooks.rs +0 -0
  245. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/interop/fs.rs +0 -0
  246. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/interop/mod.rs +0 -0
  247. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/interpreter/glob.rs +0 -0
  248. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/interpreter/jobs.rs +0 -0
  249. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/interpreter/state.rs +0 -0
  250. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/logging_impl.rs +0 -0
  251. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/network/allowlist.rs +0 -0
  252. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/network/bot_auth.rs +0 -0
  253. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/network/client.rs +0 -0
  254. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/network/mod.rs +0 -0
  255. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/parser/ast.rs +0 -0
  256. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/parser/budget.rs +0 -0
  257. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/parser/span.rs +0 -0
  258. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/scripted_tool/execute.rs +0 -0
  259. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/scripted_tool/extension.rs +0 -0
  260. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/scripted_tool/mod.rs +0 -0
  261. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/scripted_tool/toolset.rs +0 -0
  262. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/snapshot.rs +0 -0
  263. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/testing.rs +0 -0
  264. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/tool_def.rs +0 -0
  265. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/src/trace.rs +0 -0
  266. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/allexport_tests.rs +0 -0
  267. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/awk_fuzz_scaffold_tests.rs +0 -0
  268. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/awk_newline_tests.rs +0 -0
  269. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/awk_pattern_tests.rs +0 -0
  270. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/awk_printf_expr_test.rs +0 -0
  271. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/awk_range_pattern_tests.rs +0 -0
  272. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/background_exec_tests.rs +0 -0
  273. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/bash_source_tests.rs +0 -0
  274. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/blackbox_security_tests.rs +0 -0
  275. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/builtin_error_security_tests.rs +0 -0
  276. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/byte_range_panic_tests.rs +0 -0
  277. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/cancellation_tests.rs +0 -0
  278. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/cmdsub_quote_test.rs +0 -0
  279. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/coproc_tests.rs +0 -0
  280. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/coreutils_differential_tests.rs +0 -0
  281. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/credential_injection_tests.rs +0 -0
  282. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/custom_builtins_tests.rs +0 -0
  283. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/custom_fs_tests.rs +0 -0
  284. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/dev_null_tests.rs +0 -0
  285. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/final_env_tests.rs +0 -0
  286. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/find_multi_path_tests.rs +0 -0
  287. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/git_advanced_tests.rs +0 -0
  288. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/git_inspection_tests.rs +0 -0
  289. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/git_integration_tests.rs +0 -0
  290. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/git_remote_security_tests.rs +0 -0
  291. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/git_security_tests.rs +0 -0
  292. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/harness_example_tests.rs +0 -0
  293. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/history_tests.rs +0 -0
  294. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_1175_test.rs +0 -0
  295. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_274_test.rs +0 -0
  296. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_275_279_282_test.rs +0 -0
  297. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_276_test.rs +0 -0
  298. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_277_test.rs +0 -0
  299. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_289_test.rs +0 -0
  300. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_290_test.rs +0 -0
  301. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_291_test.rs +0 -0
  302. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_853_test.rs +0 -0
  303. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_872_test.rs +0 -0
  304. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_873_test.rs +0 -0
  305. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/issue_875_test.rs +0 -0
  306. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/jq_fuzz_scaffold_tests.rs +0 -0
  307. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/live_mount_tests.rs +0 -0
  308. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/mkfifo_tests.rs +0 -0
  309. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/nested_subscript_tests.rs +0 -0
  310. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/network_security_tests.rs +0 -0
  311. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/output_truncation_tests.rs +0 -0
  312. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/proptest_differential.rs +0 -0
  313. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/regex_limit_tests.rs +0 -0
  314. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/release_profile_tests.rs +0 -0
  315. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/script_execution_tests.rs +0 -0
  316. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/security_audit_pocs.rs +0 -0
  317. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/set_e_and_or_tests.rs +0 -0
  318. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/shuf_resource_tests.rs +0 -0
  319. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/skills_tests.rs +0 -0
  320. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/snapshot_tests.rs +0 -0
  321. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/source_function_tests.rs +0 -0
  322. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/spec_runner.rs +0 -0
  323. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/sqlite_compat_tests.rs +0 -0
  324. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/sqlite_differential_tests.rs +0 -0
  325. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/sqlite_fuzz_tests.rs +0 -0
  326. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/sqlite_integration_tests.rs +0 -0
  327. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/sqlite_security_tests.rs +0 -0
  328. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/stack_overflow_regression_tests.rs +0 -0
  329. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/subst_depth_limit_tests.rs +0 -0
  330. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/symlink_overlay_security_tests.rs +0 -0
  331. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/tty_tests.rs +0 -0
  332. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/typescript_integration_tests.rs +0 -0
  333. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/unicode_security_tests.rs +0 -0
  334. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/unset_function_tests.rs +0 -0
  335. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/urandom_tests.rs +0 -0
  336. {bashkit-0.7.1/crates/bashkit/tests → bashkit-0.8.0/crates/bashkit/tests/integration}/workflow_security_tests.rs +0 -0
  337. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/logging_security_tests.rs +0 -0
  338. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/proptest_security.rs +0 -0
  339. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/realfs_tests.rs +0 -0
  340. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/security_failpoint_tests.rs +0 -0
  341. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/azure_discover_rank.sh +0 -0
  342. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/azure_generate_url.sh +0 -0
  343. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/azure_query_capacity.sh +0 -0
  344. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/helm_validate_chart.sh +0 -0
  345. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/jwt_test_setup.sh +0 -0
  346. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/stitch_download_asset.sh +0 -0
  347. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/stitch_fetch.sh +0 -0
  348. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/stitch_verify_setup.sh +0 -0
  349. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/superpowers_find_polluter.sh +0 -0
  350. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/skills_fixtures/vercel_deploy.sh +0 -0
  351. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/awk/awk.test.sh +0 -0
  352. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/awk/delete-array.test.sh +0 -0
  353. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/awk/dev-stderr.test.sh +0 -0
  354. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/awk/eval-bugs.test.sh +0 -0
  355. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/awk/filename.test.sh +0 -0
  356. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/awk/getline-file.test.sh +0 -0
  357. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/alias.test.sh +0 -0
  358. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/append_redirect.test.sh +0 -0
  359. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/arith-dynamic.test.sh +0 -0
  360. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/arithmetic-base-expansion.test.sh +0 -0
  361. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/arithmetic.test.sh +0 -0
  362. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/array-slicing.test.sh +0 -0
  363. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/array-splat.test.sh +0 -0
  364. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/arrays.test.sh +0 -0
  365. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/assoc-arrays.test.sh +0 -0
  366. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/awk-printf-width.test.sh +0 -0
  367. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/background.test.sh +0 -0
  368. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/bash-c-exports.test.sh +0 -0
  369. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/bash-flags.test.sh +0 -0
  370. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/bash-source-var.test.sh +0 -0
  371. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/bash-stdin-pipe.test.sh +0 -0
  372. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/bc.test.sh +0 -0
  373. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/blackbox-edge-cases.test.sh +0 -0
  374. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/blackbox-exploration.test.sh +0 -0
  375. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/brace-expansion.test.sh +0 -0
  376. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/brace_expansion_lookahead.test.sh +0 -0
  377. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/cat.test.sh +0 -0
  378. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/checksum.test.sh +0 -0
  379. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/chown-kill.test.sh +0 -0
  380. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/cmd-suggestions.test.sh +0 -0
  381. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/cmdsub_depth_unquoted.test.sh +0 -0
  382. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/column.test.sh +0 -0
  383. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/comm.test.sh +0 -0
  384. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/command-not-found.test.sh +0 -0
  385. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/command-subst.test.sh +0 -0
  386. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/command.test.sh +0 -0
  387. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/command_v.test.sh +0 -0
  388. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/compgen-path.test.sh +0 -0
  389. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/conditional-short-circuit.test.sh +0 -0
  390. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/conditional.test.sh +0 -0
  391. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/control-flow.test.sh +0 -0
  392. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/cuttr.test.sh +0 -0
  393. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/date.test.sh +0 -0
  394. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/declare.test.sh +0 -0
  395. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/df.test.sh +0 -0
  396. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/diff.test.sh +0 -0
  397. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/dirstack.test.sh +0 -0
  398. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/du.test.sh +0 -0
  399. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/echo.test.sh +0 -0
  400. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/empty-bodies.test.sh +0 -0
  401. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/env.test.sh +0 -0
  402. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/errexit.test.sh +0 -0
  403. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/eval-bugs.test.sh +0 -0
  404. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/exec-command.test.sh +0 -0
  405. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/exec-fd-redirect.test.sh +0 -0
  406. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/exec-fd-variable.test.sh +0 -0
  407. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/exit-status.test.sh +0 -0
  408. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/expr.test.sh +0 -0
  409. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/extglob.test.sh +0 -0
  410. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/file.test.sh +0 -0
  411. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/fileops.test.sh +0 -0
  412. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/find.test.sh +0 -0
  413. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/functions.test.sh +0 -0
  414. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/getopts.test.sh +0 -0
  415. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/glob-options.test.sh +0 -0
  416. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/glob_match_cap.test.sh +0 -0
  417. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/globs.test.sh +0 -0
  418. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/gzip.test.sh +0 -0
  419. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/headtail.test.sh +0 -0
  420. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/help-flag.test.sh +0 -0
  421. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/heredoc-edge.test.sh +0 -0
  422. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/heredoc.test.sh +0 -0
  423. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/herestring.test.sh +0 -0
  424. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/hextools.test.sh +0 -0
  425. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/history.test.sh +0 -0
  426. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/indirect-expansion.test.sh +0 -0
  427. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/less.test.sh +0 -0
  428. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/ln.test.sh +0 -0
  429. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/ls.test.sh +0 -0
  430. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/memory_budget_desync.test.sh +0 -0
  431. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/mktemp.test.sh +0 -0
  432. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/nameref-assoc.test.sh +0 -0
  433. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/nameref.test.sh +0 -0
  434. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/negative-tests.test.sh +0 -0
  435. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/nl.test.sh +0 -0
  436. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/nounset.test.sh +0 -0
  437. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/numfmt.test.sh +0 -0
  438. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/od.test.sh +0 -0
  439. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/parse-errors.test.sh +0 -0
  440. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/paste-flags.test.sh +0 -0
  441. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/paste.test.sh +0 -0
  442. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/path.test.sh +0 -0
  443. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/pipes-redirects.test.sh +0 -0
  444. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/printenv.test.sh +0 -0
  445. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/printf.test.sh +0 -0
  446. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/procsub.test.sh +0 -0
  447. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/quote.test.sh +0 -0
  448. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/read-builtin.test.sh +0 -0
  449. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/readlink.test.sh +0 -0
  450. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/recursive-cmdsub.test.sh +0 -0
  451. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/regex-limit.test.sh +0 -0
  452. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/replace_pattern_limit.test.sh +0 -0
  453. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/script-exec.test.sh +0 -0
  454. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/seq.test.sh +0 -0
  455. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/set-allexport.test.sh +0 -0
  456. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/shell-grammar.test.sh +0 -0
  457. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/shuf.test.sh +0 -0
  458. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/sleep.test.sh +0 -0
  459. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/sortuniq.test.sh +0 -0
  460. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/source.test.sh +0 -0
  461. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/stat.test.sh +0 -0
  462. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/string-ops.test.sh +0 -0
  463. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/strings.test.sh +0 -0
  464. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/subprocess-isolation.test.sh +0 -0
  465. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/subshell.test.sh +0 -0
  466. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/tar.test.sh +0 -0
  467. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/tar_create.test.sh +0 -0
  468. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/tee.test.sh +0 -0
  469. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/temp-binding.test.sh +0 -0
  470. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/test-operators.test.sh +0 -0
  471. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/test-tty.test.sh +0 -0
  472. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/textrev.test.sh +0 -0
  473. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/time.test.sh +0 -0
  474. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/timeout.test.sh +0 -0
  475. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/tree.test.sh +0 -0
  476. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/truncate.test.sh +0 -0
  477. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/type.test.sh +0 -0
  478. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/unicode.test.sh +0 -0
  479. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/unset-exported-var.test.sh +0 -0
  480. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/var-op-test.test.sh +0 -0
  481. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/variables.test.sh +0 -0
  482. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/wait.test.sh +0 -0
  483. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/watch.test.sh +0 -0
  484. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/wc.test.sh +0 -0
  485. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/word-split.test.sh +0 -0
  486. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/bash/xargs.test.sh +0 -0
  487. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/grep/eval-bugs.test.sh +0 -0
  488. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/grep/grep.test.sh +0 -0
  489. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/grep/rg.test.sh +0 -0
  490. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/jq/jq.test.sh +0 -0
  491. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/python/env_leak.test.sh +0 -0
  492. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/python/python.test.sh +0 -0
  493. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/sed/eval-bugs.test.sh +0 -0
  494. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/sed/sed.test.sh +0 -0
  495. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/spec_cases/typescript/typescript.test.sh +0 -0
  496. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/ssh_builtin_tests.rs +0 -0
  497. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit/tests/ssh_supabase_tests.rs +0 -0
  498. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/Cargo.toml +0 -0
  499. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/README.md +0 -0
  500. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/bash_basics.py +0 -0
  501. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/custom_filesystem_interop.py +0 -0
  502. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/data_pipeline.py +0 -0
  503. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/fastapi_async_tool.py +0 -0
  504. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/jupyter_async_test.ipynb +0 -0
  505. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/k8s_orchestrator.py +0 -0
  506. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/langgraph_async_tool.py +0 -0
  507. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/examples/llm_tool.py +0 -0
  508. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/src/lib.rs +0 -0
  509. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/_bashkit_categories.py +0 -0
  510. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/_security_advanced.py +0 -0
  511. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/_security_core.py +0 -0
  512. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_ai_adapters.py +0 -0
  513. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_async_callbacks.py +0 -0
  514. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_basic.py +0 -0
  515. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_builtins.py +0 -0
  516. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_control_flow.py +0 -0
  517. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_error_handling.py +0 -0
  518. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_fastapi_integration.py +0 -0
  519. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_filesystem_interop.py +0 -0
  520. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_integration.py +0 -0
  521. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_jupyter_compat.py +0 -0
  522. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_langgraph_integration.py +0 -0
  523. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_network_config.py +0 -0
  524. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_network_credentials.py +0 -0
  525. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_python_security.py +0 -0
  526. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_registered_tools.py +0 -0
  527. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_scripts.py +0 -0
  528. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_security.py +0 -0
  529. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_shell_injection.py +0 -0
  530. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_sqlite.py +0 -0
  531. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_streaming_output.py +0 -0
  532. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_strings_and_quoting.py +0 -0
  533. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_tool_metadata.py +0 -0
  534. {bashkit-0.7.1 → bashkit-0.8.0}/crates/bashkit-python/tests/test_vfs.py +0 -0
  535. {bashkit-0.7.1 → bashkit-0.8.0}/pyproject.toml +0 -0
@@ -345,12 +345,13 @@ checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
345
345
 
346
346
  [[package]]
347
347
  name = "bashkit"
348
- version = "0.7.1"
348
+ version = "0.8.0"
349
349
  dependencies = [
350
350
  "anyhow",
351
351
  "async-trait",
352
352
  "base64",
353
353
  "bigdecimal",
354
+ "bitflags",
354
355
  "chrono",
355
356
  "clap",
356
357
  "criterion",
@@ -397,7 +398,7 @@ dependencies = [
397
398
 
398
399
  [[package]]
399
400
  name = "bashkit-bench"
400
- version = "0.7.1"
401
+ version = "0.8.0"
401
402
  dependencies = [
402
403
  "anyhow",
403
404
  "bashkit",
@@ -411,7 +412,7 @@ dependencies = [
411
412
 
412
413
  [[package]]
413
414
  name = "bashkit-cli"
414
- version = "0.7.1"
415
+ version = "0.8.0"
415
416
  dependencies = [
416
417
  "anyhow",
417
418
  "bashkit",
@@ -425,7 +426,7 @@ dependencies = [
425
426
 
426
427
  [[package]]
427
428
  name = "bashkit-coreutils-port"
428
- version = "0.7.1"
429
+ version = "0.8.0"
429
430
  dependencies = [
430
431
  "anyhow",
431
432
  "prettyplease",
@@ -439,7 +440,7 @@ dependencies = [
439
440
 
440
441
  [[package]]
441
442
  name = "bashkit-eval"
442
- version = "0.7.1"
443
+ version = "0.8.0"
443
444
  dependencies = [
444
445
  "anyhow",
445
446
  "async-trait",
@@ -456,7 +457,7 @@ dependencies = [
456
457
 
457
458
  [[package]]
458
459
  name = "bashkit-js"
459
- version = "0.7.1"
460
+ version = "0.8.0"
460
461
  dependencies = [
461
462
  "bashkit",
462
463
  "napi",
@@ -468,7 +469,7 @@ dependencies = [
468
469
 
469
470
  [[package]]
470
471
  name = "bashkit-python"
471
- version = "0.7.1"
472
+ version = "0.8.0"
472
473
  dependencies = [
473
474
  "bashkit",
474
475
  "num-bigint",
@@ -892,7 +893,7 @@ version = "3.1.1"
892
893
  source = "registry+https://github.com/rust-lang/crates.io-index"
893
894
  checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
894
895
  dependencies = [
895
- "windows-sys 0.61.2",
896
+ "windows-sys 0.52.0",
896
897
  ]
897
898
 
898
899
  [[package]]
@@ -1486,7 +1487,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1486
1487
  checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
1487
1488
  dependencies = [
1488
1489
  "libc",
1489
- "windows-sys 0.61.2",
1490
+ "windows-sys 0.52.0",
1490
1491
  ]
1491
1492
 
1492
1493
  [[package]]
@@ -1744,9 +1745,9 @@ dependencies = [
1744
1745
 
1745
1746
  [[package]]
1746
1747
  name = "get-size-derive2"
1747
- version = "0.7.4"
1748
+ version = "0.9.0"
1748
1749
  source = "registry+https://github.com/rust-lang/crates.io-index"
1749
- checksum = "f2b6d1e2f75c16bfbcd0f95d84f99858a6e2f885c2287d1f5c3a96e8444a34b4"
1750
+ checksum = "c9f8ab1b98a1284961d722ce994d9a0f3018ab1917618d4113824a72b9f71bc9"
1750
1751
  dependencies = [
1751
1752
  "attribute-derive",
1752
1753
  "quote",
@@ -1755,15 +1756,16 @@ dependencies = [
1755
1756
 
1756
1757
  [[package]]
1757
1758
  name = "get-size2"
1758
- version = "0.7.4"
1759
+ version = "0.9.0"
1759
1760
  source = "registry+https://github.com/rust-lang/crates.io-index"
1760
- checksum = "49cf31a6d70300cf81461098f7797571362387ef4bf85d32ac47eaa59b3a5a1a"
1761
+ checksum = "b0cd0777a1057362cab35a779e0d79dacecb8d73e2c733eaafeb7ea917b08f03"
1761
1762
  dependencies = [
1762
1763
  "compact_str",
1763
1764
  "get-size-derive2",
1764
- "hashbrown 0.16.1",
1765
+ "hashbrown 0.17.1",
1765
1766
  "ordermap",
1766
1767
  "smallvec",
1768
+ "thin-vec",
1767
1769
  ]
1768
1770
 
1769
1771
  [[package]]
@@ -2410,7 +2412,7 @@ dependencies = [
2410
2412
  "portable-atomic",
2411
2413
  "portable-atomic-util",
2412
2414
  "serde_core",
2413
- "windows-sys 0.61.2",
2415
+ "windows-sys 0.52.0",
2414
2416
  ]
2415
2417
 
2416
2418
  [[package]]
@@ -2441,9 +2443,9 @@ dependencies = [
2441
2443
 
2442
2444
  [[package]]
2443
2445
  name = "jiter"
2444
- version = "0.13.0"
2446
+ version = "0.15.0"
2445
2447
  source = "registry+https://github.com/rust-lang/crates.io-index"
2446
- checksum = "020ba671987d7444d251d3ee5340be1bf4606cd6c0b53e6f4066b5a1ee376b22"
2448
+ checksum = "7866f284df68dbc242796251ed9768bde2b58ebc4d7d32cc07cc7fd993e3ed6c"
2447
2449
  dependencies = [
2448
2450
  "ahash",
2449
2451
  "bitvec",
@@ -2810,10 +2812,9 @@ dependencies = [
2810
2812
  [[package]]
2811
2813
  name = "monty"
2812
2814
  version = "0.0.17"
2813
- source = "git+https://github.com/pydantic/monty?rev=49faa4c#49faa4c8ae94490eae286e76259adcc35f64f0a5"
2815
+ source = "git+https://github.com/pydantic/monty?rev=9b5f478#9b5f478288e8c1c0198ec4af60049738f93652c1"
2814
2816
  dependencies = [
2815
2817
  "ahash",
2816
- "bytemuck",
2817
2818
  "chrono",
2818
2819
  "fancy-regex 0.17.0",
2819
2820
  "hashbrown 0.16.1",
@@ -4106,9 +4107,9 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
4106
4107
 
4107
4108
  [[package]]
4108
4109
  name = "reqwest"
4109
- version = "0.13.3"
4110
+ version = "0.13.4"
4110
4111
  source = "registry+https://github.com/rust-lang/crates.io-index"
4111
- checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0"
4112
+ checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3"
4112
4113
  dependencies = [
4113
4114
  "base64",
4114
4115
  "bytes",
@@ -4199,7 +4200,7 @@ dependencies = [
4199
4200
  [[package]]
4200
4201
  name = "ruff_python_ast"
4201
4202
  version = "0.0.0"
4202
- source = "git+https://github.com/astral-sh/ruff.git?rev=6ded4bed1651e30b34dd04cdaa50c763036abb0d#6ded4bed1651e30b34dd04cdaa50c763036abb0d"
4203
+ source = "git+https://github.com/samuelcolvin/ruff.git?rev=6aaa91ac2b269df1414954ccd5134f0e6f5c6d30#6aaa91ac2b269df1414954ccd5134f0e6f5c6d30"
4203
4204
  dependencies = [
4204
4205
  "aho-corasick",
4205
4206
  "bitflags",
@@ -4211,13 +4212,14 @@ dependencies = [
4211
4212
  "ruff_source_file",
4212
4213
  "ruff_text_size",
4213
4214
  "rustc-hash",
4215
+ "thin-vec",
4214
4216
  "thiserror 2.0.18",
4215
4217
  ]
4216
4218
 
4217
4219
  [[package]]
4218
4220
  name = "ruff_python_parser"
4219
4221
  version = "0.0.0"
4220
- source = "git+https://github.com/astral-sh/ruff.git?rev=6ded4bed1651e30b34dd04cdaa50c763036abb0d#6ded4bed1651e30b34dd04cdaa50c763036abb0d"
4222
+ source = "git+https://github.com/samuelcolvin/ruff.git?rev=6aaa91ac2b269df1414954ccd5134f0e6f5c6d30#6aaa91ac2b269df1414954ccd5134f0e6f5c6d30"
4221
4223
  dependencies = [
4222
4224
  "bitflags",
4223
4225
  "bstr",
@@ -4229,6 +4231,7 @@ dependencies = [
4229
4231
  "ruff_text_size",
4230
4232
  "rustc-hash",
4231
4233
  "static_assertions",
4234
+ "thin-vec",
4232
4235
  "unicode-ident",
4233
4236
  "unicode-normalization",
4234
4237
  "unicode_names2",
@@ -4237,7 +4240,7 @@ dependencies = [
4237
4240
  [[package]]
4238
4241
  name = "ruff_python_stdlib"
4239
4242
  version = "0.0.0"
4240
- source = "git+https://github.com/astral-sh/ruff.git?rev=6ded4bed1651e30b34dd04cdaa50c763036abb0d#6ded4bed1651e30b34dd04cdaa50c763036abb0d"
4243
+ source = "git+https://github.com/samuelcolvin/ruff.git?rev=6aaa91ac2b269df1414954ccd5134f0e6f5c6d30#6aaa91ac2b269df1414954ccd5134f0e6f5c6d30"
4241
4244
  dependencies = [
4242
4245
  "bitflags",
4243
4246
  "unicode-ident",
@@ -4246,7 +4249,7 @@ dependencies = [
4246
4249
  [[package]]
4247
4250
  name = "ruff_python_trivia"
4248
4251
  version = "0.0.0"
4249
- source = "git+https://github.com/astral-sh/ruff.git?rev=6ded4bed1651e30b34dd04cdaa50c763036abb0d#6ded4bed1651e30b34dd04cdaa50c763036abb0d"
4252
+ source = "git+https://github.com/samuelcolvin/ruff.git?rev=6aaa91ac2b269df1414954ccd5134f0e6f5c6d30#6aaa91ac2b269df1414954ccd5134f0e6f5c6d30"
4250
4253
  dependencies = [
4251
4254
  "itertools 0.14.0",
4252
4255
  "ruff_source_file",
@@ -4257,7 +4260,7 @@ dependencies = [
4257
4260
  [[package]]
4258
4261
  name = "ruff_source_file"
4259
4262
  version = "0.0.0"
4260
- source = "git+https://github.com/astral-sh/ruff.git?rev=6ded4bed1651e30b34dd04cdaa50c763036abb0d#6ded4bed1651e30b34dd04cdaa50c763036abb0d"
4263
+ source = "git+https://github.com/samuelcolvin/ruff.git?rev=6aaa91ac2b269df1414954ccd5134f0e6f5c6d30#6aaa91ac2b269df1414954ccd5134f0e6f5c6d30"
4261
4264
  dependencies = [
4262
4265
  "memchr",
4263
4266
  "ruff_text_size",
@@ -4266,7 +4269,7 @@ dependencies = [
4266
4269
  [[package]]
4267
4270
  name = "ruff_text_size"
4268
4271
  version = "0.0.0"
4269
- source = "git+https://github.com/astral-sh/ruff.git?rev=6ded4bed1651e30b34dd04cdaa50c763036abb0d#6ded4bed1651e30b34dd04cdaa50c763036abb0d"
4272
+ source = "git+https://github.com/samuelcolvin/ruff.git?rev=6aaa91ac2b269df1414954ccd5134f0e6f5c6d30#6aaa91ac2b269df1414954ccd5134f0e6f5c6d30"
4270
4273
  dependencies = [
4271
4274
  "get-size2",
4272
4275
  ]
@@ -4433,7 +4436,7 @@ dependencies = [
4433
4436
  "errno",
4434
4437
  "libc",
4435
4438
  "linux-raw-sys",
4436
- "windows-sys 0.61.2",
4439
+ "windows-sys 0.52.0",
4437
4440
  ]
4438
4441
 
4439
4442
  [[package]]
@@ -4490,7 +4493,7 @@ dependencies = [
4490
4493
  "security-framework",
4491
4494
  "security-framework-sys",
4492
4495
  "webpki-root-certs",
4493
- "windows-sys 0.61.2",
4496
+ "windows-sys 0.52.0",
4494
4497
  ]
4495
4498
 
4496
4499
  [[package]]
@@ -4709,9 +4712,9 @@ dependencies = [
4709
4712
 
4710
4713
  [[package]]
4711
4714
  name = "serde_json"
4712
- version = "1.0.149"
4715
+ version = "1.0.150"
4713
4716
  source = "registry+https://github.com/rust-lang/crates.io-index"
4714
- checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
4717
+ checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
4715
4718
  dependencies = [
4716
4719
  "itoa",
4717
4720
  "memchr",
@@ -5192,7 +5195,7 @@ dependencies = [
5192
5195
  "getrandom 0.4.2",
5193
5196
  "once_cell",
5194
5197
  "rustix",
5195
- "windows-sys 0.61.2",
5198
+ "windows-sys 0.52.0",
5196
5199
  ]
5197
5200
 
5198
5201
  [[package]]
@@ -5225,6 +5228,12 @@ dependencies = [
5225
5228
  "unicode-width 0.2.2",
5226
5229
  ]
5227
5230
 
5231
+ [[package]]
5232
+ name = "thin-vec"
5233
+ version = "0.2.18"
5234
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5235
+ checksum = "b0f7e269b48f0a7dd0146680fa24b50cc67fc0373f086a5b2f99bd084639b482"
5236
+
5228
5237
  [[package]]
5229
5238
  name = "thiserror"
5230
5239
  version = "1.0.69"
@@ -5534,9 +5543,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
5534
5543
 
5535
5544
  [[package]]
5536
5545
  name = "turso_core"
5537
- version = "0.6.0"
5546
+ version = "0.6.1"
5538
5547
  source = "registry+https://github.com/rust-lang/crates.io-index"
5539
- checksum = "584dcc247f472c45d4f369daf590487a609c16a7f8848f2fb2902d3d3f055d31"
5548
+ checksum = "ba8ef95330369724a1829b20dc1b728d644eaeb051891971b5d2b5617337a84b"
5540
5549
  dependencies = [
5541
5550
  "aegis",
5542
5551
  "aes 0.8.4",
@@ -5598,9 +5607,9 @@ dependencies = [
5598
5607
 
5599
5608
  [[package]]
5600
5609
  name = "turso_ext"
5601
- version = "0.6.0"
5610
+ version = "0.6.1"
5602
5611
  source = "registry+https://github.com/rust-lang/crates.io-index"
5603
- checksum = "870a80e0516ec000ee51aed89664d41e258e31c1b4a639f86e0ce7c2dd3bbc18"
5612
+ checksum = "f9a47927d766b9ae7e3adf092d5e150dce80533615edc502641797878f190080"
5604
5613
  dependencies = [
5605
5614
  "chrono",
5606
5615
  "getrandom 0.4.2",
@@ -5609,9 +5618,9 @@ dependencies = [
5609
5618
 
5610
5619
  [[package]]
5611
5620
  name = "turso_macros"
5612
- version = "0.6.0"
5621
+ version = "0.6.1"
5613
5622
  source = "registry+https://github.com/rust-lang/crates.io-index"
5614
- checksum = "97578dbe06dd73634457b38b3546b868b4886aebefa57570b11a899679355761"
5623
+ checksum = "d0cdc6ae079c61aa21a89b595a4d0e19d9d848a2658542252e82f930c57c3d87"
5615
5624
  dependencies = [
5616
5625
  "proc-macro2",
5617
5626
  "quote",
@@ -5620,9 +5629,9 @@ dependencies = [
5620
5629
 
5621
5630
  [[package]]
5622
5631
  name = "turso_parser"
5623
- version = "0.6.0"
5632
+ version = "0.6.1"
5624
5633
  source = "registry+https://github.com/rust-lang/crates.io-index"
5625
- checksum = "aa8dd793f7e9c467568275b0acddfd527ec19b7d1057bed41364b4c77b1111b3"
5634
+ checksum = "54b94707e5605411cddbd5a1bd6cc2d6b72181b02223b36b37ba350ed6b71877"
5626
5635
  dependencies = [
5627
5636
  "bitflags",
5628
5637
  "memchr",
@@ -6029,7 +6038,7 @@ version = "0.1.11"
6029
6038
  source = "registry+https://github.com/rust-lang/crates.io-index"
6030
6039
  checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
6031
6040
  dependencies = [
6032
- "windows-sys 0.61.2",
6041
+ "windows-sys 0.52.0",
6033
6042
  ]
6034
6043
 
6035
6044
  [[package]]
@@ -7,7 +7,7 @@ resolver = "2"
7
7
  members = ["crates/*"]
8
8
 
9
9
  [workspace.package]
10
- version = "0.7.1"
10
+ version = "0.8.0"
11
11
  edition = "2024"
12
12
  license = "MIT"
13
13
  authors = ["Everruns"]
@@ -118,6 +118,18 @@ napi = { version = "3.8.6", default-features = false, features = ["napi6", "comp
118
118
  napi-derive = "3.5.5"
119
119
  napi-build = "2"
120
120
 
121
+ # Important decision: shrink test-binary link memory. `cargo test --all-features`
122
+ # statically links every embedded interpreter (monty, zapcode, turso, russh, jaq,
123
+ # reqwest+rustls, ed25519-dalek) into each of ~87 integration test binaries; with
124
+ # default `debug = "full"` the per-binary debuginfo dominates and the parallel
125
+ # link step peaks well above what the cloud sandbox tolerates. Line-tables-only
126
+ # keeps backtraces readable (function names + line numbers) while cutting
127
+ # per-binary size by 50–80% for big crates. `codegen-units` left at the default
128
+ # (16): forcing it to 1 explodes LLVM's per-crate object files on disk and made
129
+ # CI's feature-sliced test job run out of space.
130
+ [profile.test]
131
+ debug = "line-tables-only"
132
+
121
133
  [profile.release]
122
134
  lto = "thin"
123
135
  codegen-units = 1
@@ -125,3 +137,13 @@ codegen-units = 1
125
137
  # Keep release unwinding enabled so panic containment works.
126
138
  panic = "unwind"
127
139
  strip = "symbols"
140
+
141
+ # Important decision: separate `bench` profile uses fat LTO for the most
142
+ # aggressive cross-crate inlining. Criterion benches run rarely and we'd
143
+ # rather spend extra compile time once than miss inlining opportunities
144
+ # across the interpreter / parser / builtins boundary on every measurement.
145
+ # `release` keeps `thin` LTO so day-to-day builds stay fast.
146
+ [profile.bench]
147
+ inherits = "release"
148
+ lto = "fat"
149
+ codegen-units = 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bashkit
3
- Version: 0.7.1
3
+ Version: 0.8.0
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -51,6 +51,11 @@ fail = { workspace = true, optional = true }
51
51
  # URL parsing
52
52
  url = "2"
53
53
 
54
+ # Compact flag bitsets used by the interpreter for variable attributes
55
+ # (readonly/integer/lower/upper) and shell options (set -e/-u/-x/-o pipefail).
56
+ # Stays the format!()-based `_READONLY_X`/`SHOPT_*` keys off the hot path.
57
+ bitflags = "2"
58
+
54
59
  # JSON processing (jq) - optional, enabled with jq feature
55
60
  jaq-core = { workspace = true, optional = true }
56
61
  jaq-std = { workspace = true, optional = true }
@@ -93,7 +98,7 @@ unit-prefix = "0.5"
93
98
  os_display = "0.1.3"
94
99
 
95
100
  # Embedded Python interpreter (optional)
96
- monty = { git = "https://github.com/pydantic/monty", rev = "49faa4c", optional = true }
101
+ monty = { git = "https://github.com/pydantic/monty", rev = "9b5f478", optional = true }
97
102
 
98
103
  # Embedded TypeScript interpreter (optional)
99
104
  zapcode-core = { version = "1.5", optional = true }
@@ -164,10 +169,30 @@ proptest = { workspace = true }
164
169
  tempfile = "3"
165
170
  serial_test = { workspace = true }
166
171
 
172
+ # Important decision: consolidate the bulk of integration tests into one
173
+ # binary. Cargo's auto-discovery makes every `tests/*.rs` its own crate,
174
+ # statically linking the world (monty, zapcode, turso, russh, jaq,
175
+ # reqwest+rustls, ed25519-dalek) — 80+ link steps blew CI runner disk.
176
+ # This single `[[test]]` rolls them up. Tests that need their own binary
177
+ # (process-global env mutation, `--test-threads=1`, ssh-only feature
178
+ # isolation) remain as siblings at `tests/<name>.rs`. See
179
+ # `specs/testing.md` for the convention.
180
+ [[test]]
181
+ name = "integration"
182
+ path = "tests/integration/main.rs"
183
+
167
184
  [[bench]]
168
185
  name = "parallel_execution"
169
186
  harness = false
170
187
 
188
+ [[bench]]
189
+ name = "hotpath"
190
+ harness = false
191
+
192
+ [[bench]]
193
+ name = "file_ops"
194
+ harness = false
195
+
171
196
  [[bench]]
172
197
  name = "sqlite"
173
198
  harness = false
@@ -36,13 +36,6 @@ Homepage: [bashkit.sh](https://bashkit.sh)
36
36
  cargo add bashkit
37
37
  ```
38
38
 
39
- Or add to `Cargo.toml`:
40
-
41
- ```toml
42
- [dependencies]
43
- bashkit = "0.1"
44
- ```
45
-
46
39
  Optional features:
47
40
 
48
41
  ```bash
@@ -54,6 +47,23 @@ cargo add bashkit --features realfs # Real filesystem backend
54
47
  cargo add bashkit --features scripted_tool # Tool orchestration framework
55
48
  ```
56
49
 
50
+ ## Agent Development
51
+
52
+ Install the Bashkit skill before asking a coding agent to build against the
53
+ runtime:
54
+
55
+ ```bash
56
+ npx skills add everruns/bashkit
57
+ ```
58
+
59
+ Then ask your coding agent to wire Bashkit into the host project:
60
+
61
+ ```bash
62
+ Using bashkit, add support for a bash tool
63
+ ```
64
+
65
+ Enjoy :)
66
+
57
67
  ## Quick Start
58
68
 
59
69
  ```rust
@@ -291,9 +301,8 @@ Working example: [`examples/custom_builtins.mjs`](examples/custom_builtins.mjs).
291
301
  Enable the `git` feature for virtual git operations on the virtual filesystem.
292
302
  All git data lives in the VFS — no host filesystem access.
293
303
 
294
- ```toml
295
- [dependencies]
296
- bashkit = { version = "0.1", features = ["git"] }
304
+ ```bash
305
+ cargo add bashkit --features git
297
306
  ```
298
307
 
299
308
  ```rust
@@ -317,9 +326,8 @@ Enable the `python` feature to embed the [Monty](https://github.com/pydantic/mon
317
326
  Python code runs in-memory with configurable resource limits and VFS bridging — files created
318
327
  by bash are readable from Python and vice versa.
319
328
 
320
- ```toml
321
- [dependencies]
322
- bashkit = { version = "0.1", features = ["python"] }
329
+ ```bash
330
+ cargo add bashkit --features python
323
331
  ```
324
332
 
325
333
  ```rust
@@ -333,17 +341,17 @@ bash.exec("python3 -c \"print(2 ** 10)\"").await?;
333
341
  // Script files from VFS
334
342
  bash.exec("python3 /tmp/script.py").await?;
335
343
 
336
- // VFS bridging: pathlib.Path operations work with the virtual filesystem
344
+ // VFS bridging: open() and pathlib.Path work with the virtual filesystem
337
345
  bash.exec(r#"python3 -c "
338
- from pathlib import Path
339
- Path('/tmp/data.txt').write_text('hello from python')
346
+ with open('/tmp/data.txt', 'w') as f:
347
+ f.write('hello from python')
340
348
  ""#).await?;
341
349
  bash.exec("cat /tmp/data.txt").await?; // "hello from python"
342
350
  ```
343
351
 
344
352
  Stdlib modules: `math`, `pathlib`, `os` (getenv/environ), `sys`, `typing`.
345
353
  Security note: `re` is intentionally disabled due to regex backtracking DoS risk.
346
- Limitations: no `open()` (use `pathlib.Path`), no network, no classes, no third-party imports.
354
+ Limitations: file I/O is VFS-scoped, no network, no classes, no third-party imports.
347
355
  See [crates/bashkit/docs/python.md](crates/bashkit/docs/python.md) for the full guide.
348
356
 
349
357
  ## Experimental: TypeScript Support
@@ -351,9 +359,8 @@ See [crates/bashkit/docs/python.md](crates/bashkit/docs/python.md) for the full
351
359
  Enable the `typescript` feature to embed the [ZapCode](https://github.com/TheUncharted/zapcode) TypeScript interpreter (pure Rust, no V8).
352
360
  TypeScript code runs in-memory with configurable resource limits and VFS bridging via external function suspend/resume.
353
361
 
354
- ```toml
355
- [dependencies]
356
- bashkit = { version = "0.1", features = ["typescript"] }
362
+ ```bash
363
+ cargo add bashkit --features typescript
357
364
  ```
358
365
 
359
366
  ```rust
@@ -464,13 +471,13 @@ Bashkit includes an [eval harness](crates/bashkit-eval/) that measures how well
464
471
 
465
472
  | Model | Score | Tasks Passed | Tool Call Success | Duration |
466
473
  |-------|-------|-------------|-------------------|----------|
467
- | Claude Haiku 4.5 | **97%** | **54/58** | 88% | 8.6 min |
468
- | Claude Sonnet 4.6 | 93% | 48/58 | 85% | 20.5 min |
469
- | Claude Opus 4.6 | 91% | 50/58 | 88% | 20.1 min |
470
- | GPT-5.3-Codex | 91% | 51/58 | 83% | 19.6 min |
471
- | GPT-5.2 | 77% | 41/58 | 67% | 7.0 min |
474
+ | Claude Opus 4.7 | **98%** | **56/58** | 90% | 22.6 min |
475
+ | Claude Haiku 4.5 | **98%** | 54/58 | 92% | **8.0 min** |
476
+ | Claude Sonnet 4.6 | 94% | 49/58 | 91% | 19.7 min |
477
+ | GPT-5.5 | 93% | 50/58 | 92% | 11.2 min |
478
+ | GPT-5.3-Codex | 93% | 54/58 | 87% | 13.7 min |
472
479
 
473
- **Delta from v0.1.7** (on shared 37 tasks): Haiku 98%→100%, Opus 93%→96%, GPT-5.2 86%→86% (3 more tasks). Interpreter fixes unblocked `json_to_csv_export` and `script_function_lib` across models. See the [detailed analysis](crates/bashkit-eval/README.md#results).
480
+ **Delta from 2026-02-28** (same 58 tasks): Opus 4.6→4.7 jumped +6 tasks (50→56), GPT-5.2→5.5 jumped +9 tasks (41→50). Haiku 4.5 ties with Opus 4.7 at 98% in ⅓ the wall-clock time. See the [detailed analysis](crates/bashkit-eval/README.md#results).
474
481
 
475
482
  ```bash
476
483
  just eval # Run eval with default model