bashkit 0.4.1__tar.gz → 0.6.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 (513) hide show
  1. {bashkit-0.4.1 → bashkit-0.6.0}/Cargo.lock +98 -8
  2. {bashkit-0.4.1 → bashkit-0.6.0}/Cargo.toml +13 -1
  3. {bashkit-0.4.1 → bashkit-0.6.0}/PKG-INFO +3 -1
  4. {bashkit-0.4.1/crates/bashkit-python → bashkit-0.6.0}/README.md +2 -0
  5. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/Cargo.toml +16 -5
  6. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/README.md +6 -7
  7. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/clap-builtins.md +5 -18
  8. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/custom_builtins.md +4 -5
  9. bashkit-0.6.0/crates/bashkit/src/builtins/cat.rs +193 -0
  10. bashkit-0.6.0/crates/bashkit/src/builtins/clap_env.rs +255 -0
  11. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/compgen.rs +4 -4
  12. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/export.rs +15 -6
  13. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/fileops.rs +145 -52
  14. bashkit-0.6.0/crates/bashkit/src/builtins/generated/cat_args.rs +145 -0
  15. bashkit-0.6.0/crates/bashkit/src/builtins/generated/extendedbigdecimal.rs +239 -0
  16. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format/argument.rs +202 -0
  17. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format/escape.rs +151 -0
  18. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format/human.rs +37 -0
  19. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format/mod.rs +347 -0
  20. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format/num_format.rs +544 -0
  21. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format/spec.rs +527 -0
  22. bashkit-0.6.0/crates/bashkit/src/builtins/generated/format_support.rs +126 -0
  23. bashkit-0.6.0/crates/bashkit/src/builtins/generated/ls_args.rs +971 -0
  24. bashkit-0.6.0/crates/bashkit/src/builtins/generated/mktemp_args.rs +161 -0
  25. bashkit-0.6.0/crates/bashkit/src/builtins/generated/mod.rs +48 -0
  26. bashkit-0.6.0/crates/bashkit/src/builtins/generated/num_parser.rs +441 -0
  27. bashkit-0.6.0/crates/bashkit/src/builtins/generated/od_args.rs +307 -0
  28. bashkit-0.6.0/crates/bashkit/src/builtins/generated/readlink_args.rs +136 -0
  29. bashkit-0.6.0/crates/bashkit/src/builtins/generated/realpath_args.rs +206 -0
  30. bashkit-0.6.0/crates/bashkit/src/builtins/generated/shuf_args.rs +161 -0
  31. bashkit-0.6.0/crates/bashkit/src/builtins/generated/stat_args.rs +107 -0
  32. bashkit-0.6.0/crates/bashkit/src/builtins/generated/tac_args.rs +85 -0
  33. bashkit-0.6.0/crates/bashkit/src/builtins/generated/tee_args.rs +139 -0
  34. bashkit-0.6.0/crates/bashkit/src/builtins/generated/truncate_args.rs +112 -0
  35. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/hextools.rs +97 -48
  36. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/inspect.rs +62 -35
  37. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/args.rs +38 -0
  38. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/mod.rs +57 -2
  39. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/regex_compat.rs +41 -1
  40. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/tests.rs +67 -0
  41. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ls.rs +264 -45
  42. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/mod.rs +176 -9
  43. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/path.rs +165 -70
  44. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/pipeline.rs +55 -28
  45. bashkit-0.6.0/crates/bashkit/src/builtins/printf.rs +609 -0
  46. bashkit-0.6.0/crates/bashkit/src/builtins/shuf.rs +453 -0
  47. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/dot_commands.rs +41 -16
  48. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/engine.rs +12 -1
  49. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/mod.rs +41 -14
  50. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/tests.rs +75 -0
  51. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/cmd.rs +34 -1
  52. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/russh_handler.rs +46 -10
  53. bashkit-0.6.0/crates/bashkit/src/builtins/textrev.rs +192 -0
  54. bashkit-0.6.0/crates/bashkit/src/builtins/truncate.rs +413 -0
  55. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/credential.rs +65 -20
  56. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/limits.rs +147 -3
  57. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/memory.rs +26 -16
  58. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/mountable.rs +9 -1
  59. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/overlay.rs +2 -3
  60. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/realfs.rs +268 -9
  61. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/traits.rs +8 -4
  62. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/interop/fs.rs +106 -14
  63. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/interpreter/mod.rs +42 -6
  64. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/lib.rs +77 -25
  65. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/network/allowlist.rs +89 -10
  66. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/network/client.rs +267 -36
  67. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/network/mod.rs +1 -1
  68. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/scripted_tool/execute.rs +6 -3
  69. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/scripted_tool/extension.rs +41 -8
  70. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/scripted_tool/mod.rs +110 -0
  71. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/scripted_tool/toolset.rs +2 -2
  72. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/snapshot.rs +7 -2
  73. bashkit-0.6.0/crates/bashkit/src/testing.rs +412 -0
  74. bashkit-0.6.0/crates/bashkit/src/tool_def.rs +1275 -0
  75. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/blackbox_security_tests.rs +258 -0
  76. bashkit-0.6.0/crates/bashkit/tests/coreutils_differential_tests.rs +548 -0
  77. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/custom_builtins_tests.rs +0 -11
  78. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/realfs_tests.rs +153 -23
  79. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/security_audit_pocs.rs +125 -0
  80. bashkit-0.6.0/crates/bashkit/tests/shuf_resource_tests.rs +30 -0
  81. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/snapshot_tests.rs +66 -6
  82. bashkit-0.6.0/crates/bashkit/tests/spec_cases/bash/cat.test.sh +81 -0
  83. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/help-flag.test.sh +3 -3
  84. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/ln.test.sh +12 -0
  85. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/ls.test.sh +64 -0
  86. bashkit-0.6.0/crates/bashkit/tests/spec_cases/bash/mktemp.test.sh +49 -0
  87. bashkit-0.6.0/crates/bashkit/tests/spec_cases/bash/od.test.sh +43 -0
  88. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/path.test.sh +2 -1
  89. bashkit-0.6.0/crates/bashkit/tests/spec_cases/bash/readlink.test.sh +55 -0
  90. bashkit-0.6.0/crates/bashkit/tests/spec_cases/bash/shuf.test.sh +65 -0
  91. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/stat.test.sh +24 -0
  92. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/tee.test.sh +16 -0
  93. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/textrev.test.sh +16 -0
  94. bashkit-0.6.0/crates/bashkit/tests/spec_cases/bash/truncate.test.sh +105 -0
  95. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/sqlite_integration_tests.rs +44 -0
  96. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/sqlite_security_tests.rs +4 -7
  97. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/threat_model_tests.rs +76 -0
  98. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/unicode_security_tests.rs +63 -66
  99. bashkit-0.6.0/crates/bashkit/tests/workflow_security_tests.rs +85 -0
  100. {bashkit-0.4.1 → bashkit-0.6.0/crates/bashkit-python}/README.md +2 -0
  101. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/src/lib.rs +58 -10
  102. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_network_credentials.py +21 -0
  103. bashkit-0.4.1/crates/bashkit/src/builtins/cat.rs +0 -109
  104. bashkit-0.4.1/crates/bashkit/src/builtins/printf.rs +0 -766
  105. bashkit-0.4.1/crates/bashkit/src/builtins/textrev.rs +0 -132
  106. bashkit-0.4.1/crates/bashkit/src/testing.rs +0 -155
  107. bashkit-0.4.1/crates/bashkit/src/tool_def.rs +0 -440
  108. {bashkit-0.4.1 → bashkit-0.6.0}/bashkit/__init__.py +0 -0
  109. {bashkit-0.4.1 → bashkit-0.6.0}/bashkit/_bashkit.pyi +0 -0
  110. {bashkit-0.4.1 → bashkit-0.6.0}/bashkit/deepagents.py +0 -0
  111. {bashkit-0.4.1 → bashkit-0.6.0}/bashkit/langchain.py +0 -0
  112. {bashkit-0.4.1 → bashkit-0.6.0}/bashkit/py.typed +0 -0
  113. {bashkit-0.4.1 → bashkit-0.6.0}/bashkit/pydantic_ai.py +0 -0
  114. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/benches/parallel_execution.rs +0 -0
  115. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/benches/sqlite.rs +0 -0
  116. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/compatibility.md +0 -0
  117. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/credential-injection.md +0 -0
  118. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/hooks.md +0 -0
  119. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/jq.md +0 -0
  120. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/live_mounts.md +0 -0
  121. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/logging.md +0 -0
  122. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/python.md +0 -0
  123. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/sqlite.md +0 -0
  124. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/ssh.md +0 -0
  125. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/threat-model.md +0 -0
  126. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/docs/typescript.md +0 -0
  127. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/agent_tool.rs +0 -0
  128. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/basic.rs +0 -0
  129. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/clap_builtin.rs +0 -0
  130. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/clap_builtin_subcommands.rs +0 -0
  131. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/custom_backend.rs +0 -0
  132. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/custom_builtins.rs +0 -0
  133. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/custom_filesystem_impl.rs +0 -0
  134. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/custom_fs.rs +0 -0
  135. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/git_workflow.rs +0 -0
  136. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/live_mounts.rs +0 -0
  137. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/python_external_functions.rs +0 -0
  138. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/python_scripts.rs +0 -0
  139. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/realfs_readonly.rs +0 -0
  140. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/realfs_readwrite.rs +0 -0
  141. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/resource_limits.rs +0 -0
  142. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/scripted_tool.rs +0 -0
  143. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/show_tool_output.rs +0 -0
  144. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/sqlite_basic.rs +0 -0
  145. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/sqlite_workflow.rs +0 -0
  146. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/ssh_supabase.rs +0 -0
  147. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/streaming_output.rs +0 -0
  148. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/text_files.rs +0 -0
  149. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/text_processing.rs +0 -0
  150. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/typescript_external_functions.rs +0 -0
  151. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/typescript_scripts.rs +0 -0
  152. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/examples/virtual_identity.rs +0 -0
  153. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/proptest-regressions/builtins/sqlite/tests.txt +0 -0
  154. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/alias.rs +0 -0
  155. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/archive.rs +0 -0
  156. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/arg_parser.rs +0 -0
  157. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/assert.rs +0 -0
  158. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/awk.rs +0 -0
  159. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/base64.rs +0 -0
  160. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/bc.rs +0 -0
  161. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/caller.rs +0 -0
  162. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/checksum.rs +0 -0
  163. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/clear.rs +0 -0
  164. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/column.rs +0 -0
  165. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/comm.rs +0 -0
  166. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/csv.rs +0 -0
  167. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/curl.rs +0 -0
  168. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/cuttr.rs +0 -0
  169. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/date.rs +0 -0
  170. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/diff.rs +0 -0
  171. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/dirstack.rs +0 -0
  172. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/disk.rs +0 -0
  173. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/dotenv.rs +0 -0
  174. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/echo.rs +0 -0
  175. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/environ.rs +0 -0
  176. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/envsubst.rs +0 -0
  177. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/expand.rs +0 -0
  178. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/expr.rs +0 -0
  179. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/fc.rs +0 -0
  180. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/flow.rs +0 -0
  181. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/fold.rs +0 -0
  182. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/git/client.rs +0 -0
  183. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/git/cmd.rs +0 -0
  184. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/git/config.rs +0 -0
  185. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/git/mod.rs +0 -0
  186. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/glob_cmd.rs +0 -0
  187. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/grep.rs +0 -0
  188. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/headtail.rs +0 -0
  189. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/help.rs +0 -0
  190. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/http.rs +0 -0
  191. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/iconv.rs +0 -0
  192. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/introspect.rs +0 -0
  193. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/join.rs +0 -0
  194. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/compat.rs +0 -0
  195. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/convert.rs +0 -0
  196. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/errors.rs +0 -0
  197. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/jq/format.rs +0 -0
  198. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/json.rs +0 -0
  199. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/log.rs +0 -0
  200. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/mapfile.rs +0 -0
  201. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/mkfifo.rs +0 -0
  202. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/navigation.rs +0 -0
  203. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/nl.rs +0 -0
  204. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/numfmt.rs +0 -0
  205. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/parallel.rs +0 -0
  206. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/paste.rs +0 -0
  207. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/patch.rs +0 -0
  208. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/python.rs +0 -0
  209. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/read.rs +0 -0
  210. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/retry.rs +0 -0
  211. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/rg.rs +0 -0
  212. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/search_common.rs +0 -0
  213. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sed.rs +0 -0
  214. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/semver.rs +0 -0
  215. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/seq.rs +0 -0
  216. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sleep.rs +0 -0
  217. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sortuniq.rs +0 -0
  218. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/source.rs +0 -0
  219. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/split.rs +0 -0
  220. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/formatter.rs +0 -0
  221. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/parser.rs +0 -0
  222. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/sqlite/vfs_io.rs +0 -0
  223. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/allowlist.rs +0 -0
  224. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/client.rs +0 -0
  225. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/config.rs +0 -0
  226. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/handler.rs +0 -0
  227. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/ssh/mod.rs +0 -0
  228. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/strings.rs +0 -0
  229. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/system.rs +0 -0
  230. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/template.rs +0 -0
  231. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/test.rs +0 -0
  232. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/timeout.rs +0 -0
  233. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/tomlq.rs +0 -0
  234. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/trap.rs +0 -0
  235. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/tree.rs +0 -0
  236. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/typescript.rs +0 -0
  237. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/vars.rs +0 -0
  238. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/verify.rs +0 -0
  239. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/wait.rs +0 -0
  240. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/wc.rs +0 -0
  241. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/yaml.rs +0 -0
  242. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/yes.rs +0 -0
  243. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/builtins/zip_cmd.rs +0 -0
  244. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/error.rs +0 -0
  245. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/backend.rs +0 -0
  246. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/mod.rs +0 -0
  247. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/posix.rs +0 -0
  248. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/fs/search.rs +0 -0
  249. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/hooks.rs +0 -0
  250. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/interop/mod.rs +0 -0
  251. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/interpreter/glob.rs +0 -0
  252. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/interpreter/jobs.rs +0 -0
  253. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/interpreter/state.rs +0 -0
  254. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/limits.rs +0 -0
  255. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/logging_impl.rs +0 -0
  256. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/network/bot_auth.rs +0 -0
  257. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/parser/ast.rs +0 -0
  258. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/parser/budget.rs +0 -0
  259. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/parser/lexer.rs +0 -0
  260. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/parser/mod.rs +0 -0
  261. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/parser/span.rs +0 -0
  262. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/parser/tokens.rs +0 -0
  263. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/tool.rs +0 -0
  264. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/src/trace.rs +0 -0
  265. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/allexport_tests.rs +0 -0
  266. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/awk_fuzz_scaffold_tests.rs +0 -0
  267. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/awk_newline_tests.rs +0 -0
  268. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/awk_pattern_tests.rs +0 -0
  269. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/awk_printf_expr_test.rs +0 -0
  270. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/awk_range_pattern_tests.rs +0 -0
  271. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/background_exec_tests.rs +0 -0
  272. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/bash_source_tests.rs +0 -0
  273. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/builtin_error_security_tests.rs +0 -0
  274. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/byte_range_panic_tests.rs +0 -0
  275. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/cancellation_tests.rs +0 -0
  276. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/cmdsub_quote_test.rs +0 -0
  277. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/coproc_tests.rs +0 -0
  278. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/credential_injection_tests.rs +0 -0
  279. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/custom_fs_tests.rs +0 -0
  280. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/dev_null_tests.rs +0 -0
  281. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/final_env_tests.rs +0 -0
  282. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/find_multi_path_tests.rs +0 -0
  283. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/git_advanced_tests.rs +0 -0
  284. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/git_inspection_tests.rs +0 -0
  285. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/git_integration_tests.rs +0 -0
  286. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/git_remote_security_tests.rs +0 -0
  287. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/git_security_tests.rs +0 -0
  288. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/harness_example_tests.rs +0 -0
  289. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/history_tests.rs +0 -0
  290. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_1175_test.rs +0 -0
  291. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_274_test.rs +0 -0
  292. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_275_279_282_test.rs +0 -0
  293. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_276_test.rs +0 -0
  294. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_277_test.rs +0 -0
  295. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_289_test.rs +0 -0
  296. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_290_test.rs +0 -0
  297. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_291_test.rs +0 -0
  298. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_853_test.rs +0 -0
  299. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_872_test.rs +0 -0
  300. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_873_test.rs +0 -0
  301. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/issue_875_test.rs +0 -0
  302. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/jq_fuzz_scaffold_tests.rs +0 -0
  303. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/live_mount_tests.rs +0 -0
  304. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/logging_security_tests.rs +0 -0
  305. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/mkfifo_tests.rs +0 -0
  306. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/nested_subscript_tests.rs +0 -0
  307. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/network_security_tests.rs +0 -0
  308. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/output_truncation_tests.rs +0 -0
  309. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/overlay_path_validation_tests.rs +0 -0
  310. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/proptest_differential.rs +0 -0
  311. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/proptest_security.rs +0 -0
  312. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/python_integration_tests.rs +0 -0
  313. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/python_security_tests.rs +0 -0
  314. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/regex_limit_tests.rs +0 -0
  315. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/release_profile_tests.rs +0 -0
  316. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/script_execution_tests.rs +0 -0
  317. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/security_failpoint_tests.rs +0 -0
  318. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/set_e_and_or_tests.rs +0 -0
  319. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/azure_discover_rank.sh +0 -0
  320. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/azure_generate_url.sh +0 -0
  321. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/azure_query_capacity.sh +0 -0
  322. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/helm_validate_chart.sh +0 -0
  323. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/jwt_test_setup.sh +0 -0
  324. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/stitch_download_asset.sh +0 -0
  325. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/stitch_fetch.sh +0 -0
  326. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/stitch_verify_setup.sh +0 -0
  327. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/superpowers_find_polluter.sh +0 -0
  328. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_fixtures/vercel_deploy.sh +0 -0
  329. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/skills_tests.rs +0 -0
  330. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/source_function_tests.rs +0 -0
  331. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/awk/awk.test.sh +0 -0
  332. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/awk/delete-array.test.sh +0 -0
  333. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/awk/dev-stderr.test.sh +0 -0
  334. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/awk/eval-bugs.test.sh +0 -0
  335. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/awk/filename.test.sh +0 -0
  336. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/awk/getline-file.test.sh +0 -0
  337. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/alias.test.sh +0 -0
  338. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/append_redirect.test.sh +0 -0
  339. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/arith-dynamic.test.sh +0 -0
  340. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/arithmetic-base-expansion.test.sh +0 -0
  341. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/arithmetic.test.sh +0 -0
  342. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/array-slicing.test.sh +0 -0
  343. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/array-splat.test.sh +0 -0
  344. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/arrays.test.sh +0 -0
  345. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/assoc-arrays.test.sh +0 -0
  346. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/awk-printf-width.test.sh +0 -0
  347. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/background.test.sh +0 -0
  348. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/bash-c-exports.test.sh +0 -0
  349. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/bash-command.test.sh +0 -0
  350. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/bash-flags.test.sh +0 -0
  351. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/bash-source-var.test.sh +0 -0
  352. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/bash-stdin-pipe.test.sh +0 -0
  353. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/bc.test.sh +0 -0
  354. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/blackbox-edge-cases.test.sh +0 -0
  355. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/blackbox-exploration.test.sh +0 -0
  356. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/brace-expansion.test.sh +0 -0
  357. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/brace_expansion_lookahead.test.sh +0 -0
  358. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/checksum.test.sh +0 -0
  359. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/chown-kill.test.sh +0 -0
  360. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/cmd-suggestions.test.sh +0 -0
  361. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/cmdsub_depth_unquoted.test.sh +0 -0
  362. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/column.test.sh +0 -0
  363. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/comm.test.sh +0 -0
  364. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/command-not-found.test.sh +0 -0
  365. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/command-subst.test.sh +0 -0
  366. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/command.test.sh +0 -0
  367. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/command_v.test.sh +0 -0
  368. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/compgen-path.test.sh +0 -0
  369. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/conditional-short-circuit.test.sh +0 -0
  370. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/conditional.test.sh +0 -0
  371. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/control-flow.test.sh +0 -0
  372. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/cuttr.test.sh +0 -0
  373. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/date.test.sh +0 -0
  374. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/declare.test.sh +0 -0
  375. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/df.test.sh +0 -0
  376. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/diff.test.sh +0 -0
  377. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/dirstack.test.sh +0 -0
  378. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/du.test.sh +0 -0
  379. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/echo.test.sh +0 -0
  380. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/empty-bodies.test.sh +0 -0
  381. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/env.test.sh +0 -0
  382. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/errexit.test.sh +0 -0
  383. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/eval-bugs.test.sh +0 -0
  384. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/exec-command.test.sh +0 -0
  385. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/exec-fd-redirect.test.sh +0 -0
  386. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/exec-fd-variable.test.sh +0 -0
  387. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/exit-status.test.sh +0 -0
  388. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/expr.test.sh +0 -0
  389. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/extglob.test.sh +0 -0
  390. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/file.test.sh +0 -0
  391. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/fileops.test.sh +0 -0
  392. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/find.test.sh +0 -0
  393. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/functions.test.sh +0 -0
  394. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/getopts.test.sh +0 -0
  395. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/glob-options.test.sh +0 -0
  396. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/glob_match_cap.test.sh +0 -0
  397. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/globs.test.sh +0 -0
  398. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/gzip.test.sh +0 -0
  399. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/headtail.test.sh +0 -0
  400. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/heredoc-edge.test.sh +0 -0
  401. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/heredoc.test.sh +0 -0
  402. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/herestring.test.sh +0 -0
  403. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/hextools.test.sh +0 -0
  404. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/history.test.sh +0 -0
  405. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/indirect-expansion.test.sh +0 -0
  406. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/less.test.sh +0 -0
  407. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/memory_budget_desync.test.sh +0 -0
  408. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/nameref-assoc.test.sh +0 -0
  409. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/nameref.test.sh +0 -0
  410. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/negative-tests.test.sh +0 -0
  411. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/nl.test.sh +0 -0
  412. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/nounset.test.sh +0 -0
  413. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/numfmt.test.sh +0 -0
  414. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/parse-errors.test.sh +0 -0
  415. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/paste-flags.test.sh +0 -0
  416. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/paste.test.sh +0 -0
  417. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/pipes-redirects.test.sh +0 -0
  418. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/printenv.test.sh +0 -0
  419. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/printf.test.sh +0 -0
  420. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/procsub.test.sh +0 -0
  421. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/quote.test.sh +0 -0
  422. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/read-builtin.test.sh +0 -0
  423. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/recursive-cmdsub.test.sh +0 -0
  424. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/regex-limit.test.sh +0 -0
  425. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/replace_pattern_limit.test.sh +0 -0
  426. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/script-exec.test.sh +0 -0
  427. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/seq.test.sh +0 -0
  428. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/set-allexport.test.sh +0 -0
  429. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/shell-grammar.test.sh +0 -0
  430. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/sleep.test.sh +0 -0
  431. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/sortuniq.test.sh +0 -0
  432. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/source.test.sh +0 -0
  433. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/string-ops.test.sh +0 -0
  434. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/strings.test.sh +0 -0
  435. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/subprocess-isolation.test.sh +0 -0
  436. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/subshell.test.sh +0 -0
  437. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/tar.test.sh +0 -0
  438. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/tar_create.test.sh +0 -0
  439. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/temp-binding.test.sh +0 -0
  440. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/test-operators.test.sh +0 -0
  441. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/test-tty.test.sh +0 -0
  442. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/time.test.sh +0 -0
  443. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/timeout.test.sh +0 -0
  444. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/tree.test.sh +0 -0
  445. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/type.test.sh +0 -0
  446. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/unicode.test.sh +0 -0
  447. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/unset-exported-var.test.sh +0 -0
  448. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/var-op-test.test.sh +0 -0
  449. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/variables.test.sh +0 -0
  450. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/wait.test.sh +0 -0
  451. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/watch.test.sh +0 -0
  452. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/wc.test.sh +0 -0
  453. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/word-split.test.sh +0 -0
  454. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/bash/xargs.test.sh +0 -0
  455. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/grep/eval-bugs.test.sh +0 -0
  456. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/grep/grep.test.sh +0 -0
  457. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/grep/rg.test.sh +0 -0
  458. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/jq/jq.test.sh +0 -0
  459. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/python/env_leak.test.sh +0 -0
  460. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/python/python.test.sh +0 -0
  461. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/sed/eval-bugs.test.sh +0 -0
  462. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/sed/sed.test.sh +0 -0
  463. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_cases/typescript/typescript.test.sh +0 -0
  464. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_runner.rs +0 -0
  465. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/spec_tests.rs +0 -0
  466. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/sqlite_compat_tests.rs +0 -0
  467. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/sqlite_differential_tests.rs +0 -0
  468. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/sqlite_fuzz_tests.rs +0 -0
  469. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/ssh_builtin_tests.rs +0 -0
  470. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/ssh_supabase_tests.rs +0 -0
  471. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/stack_overflow_regression_tests.rs +0 -0
  472. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/subst_depth_limit_tests.rs +0 -0
  473. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/symlink_overlay_security_tests.rs +0 -0
  474. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/tty_tests.rs +0 -0
  475. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/typescript_integration_tests.rs +0 -0
  476. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/typescript_security_tests.rs +0 -0
  477. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/unset_function_tests.rs +0 -0
  478. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit/tests/urandom_tests.rs +0 -0
  479. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/Cargo.toml +0 -0
  480. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/bash_basics.py +0 -0
  481. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/custom_filesystem_interop.py +0 -0
  482. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/data_pipeline.py +0 -0
  483. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/fastapi_async_tool.py +0 -0
  484. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/jupyter_async_test.ipynb +0 -0
  485. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/k8s_orchestrator.py +0 -0
  486. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/langgraph_async_tool.py +0 -0
  487. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/examples/llm_tool.py +0 -0
  488. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/_bashkit_categories.py +0 -0
  489. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/_security_advanced.py +0 -0
  490. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/_security_core.py +0 -0
  491. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_ai_adapters.py +0 -0
  492. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_async_callbacks.py +0 -0
  493. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_basic.py +0 -0
  494. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_builtins.py +0 -0
  495. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_control_flow.py +0 -0
  496. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_error_handling.py +0 -0
  497. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_fastapi_integration.py +0 -0
  498. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_filesystem_interop.py +0 -0
  499. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_integration.py +0 -0
  500. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_jupyter_compat.py +0 -0
  501. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_langgraph_integration.py +0 -0
  502. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_network_config.py +0 -0
  503. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_python_security.py +0 -0
  504. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_registered_tools.py +0 -0
  505. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_scripts.py +0 -0
  506. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_security.py +0 -0
  507. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_shell_injection.py +0 -0
  508. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_sqlite.py +0 -0
  509. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_streaming_output.py +0 -0
  510. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_strings_and_quoting.py +0 -0
  511. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_tool_metadata.py +0 -0
  512. {bashkit-0.4.1 → bashkit-0.6.0}/crates/bashkit-python/tests/test_vfs.py +0 -0
  513. {bashkit-0.4.1 → bashkit-0.6.0}/pyproject.toml +0 -0
@@ -345,11 +345,12 @@ checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
345
345
 
346
346
  [[package]]
347
347
  name = "bashkit"
348
- version = "0.4.1"
348
+ version = "0.6.0"
349
349
  dependencies = [
350
350
  "anyhow",
351
351
  "async-trait",
352
352
  "base64",
353
+ "bigdecimal",
353
354
  "chrono",
354
355
  "clap",
355
356
  "criterion",
@@ -359,6 +360,7 @@ dependencies = [
359
360
  "flate2",
360
361
  "futures-core",
361
362
  "futures-util",
363
+ "getrandom 0.4.2",
362
364
  "hmac 0.13.0",
363
365
  "insta",
364
366
  "jaq-core",
@@ -366,6 +368,8 @@ dependencies = [
366
368
  "jaq-std",
367
369
  "md-5",
368
370
  "monty",
371
+ "num-traits",
372
+ "os_display",
369
373
  "pretty_assertions",
370
374
  "proptest",
371
375
  "rand 0.10.1",
@@ -386,6 +390,7 @@ dependencies = [
386
390
  "tower",
387
391
  "tracing",
388
392
  "turso_core",
393
+ "unit-prefix",
389
394
  "url",
390
395
  "zapcode-core",
391
396
  "zeroize",
@@ -393,7 +398,7 @@ dependencies = [
393
398
 
394
399
  [[package]]
395
400
  name = "bashkit-bench"
396
- version = "0.4.1"
401
+ version = "0.6.0"
397
402
  dependencies = [
398
403
  "anyhow",
399
404
  "bashkit",
@@ -407,7 +412,7 @@ dependencies = [
407
412
 
408
413
  [[package]]
409
414
  name = "bashkit-cli"
410
- version = "0.4.1"
415
+ version = "0.6.0"
411
416
  dependencies = [
412
417
  "anyhow",
413
418
  "bashkit",
@@ -421,9 +426,23 @@ dependencies = [
421
426
  "tokio",
422
427
  ]
423
428
 
429
+ [[package]]
430
+ name = "bashkit-coreutils-port"
431
+ version = "0.6.0"
432
+ dependencies = [
433
+ "anyhow",
434
+ "prettyplease",
435
+ "proc-macro2",
436
+ "quote",
437
+ "serde",
438
+ "syn",
439
+ "tempfile",
440
+ "toml",
441
+ ]
442
+
424
443
  [[package]]
425
444
  name = "bashkit-eval"
426
- version = "0.4.1"
445
+ version = "0.6.0"
427
446
  dependencies = [
428
447
  "anyhow",
429
448
  "async-trait",
@@ -440,7 +459,7 @@ dependencies = [
440
459
 
441
460
  [[package]]
442
461
  name = "bashkit-js"
443
- version = "0.4.1"
462
+ version = "0.6.0"
444
463
  dependencies = [
445
464
  "bashkit",
446
465
  "napi",
@@ -453,7 +472,7 @@ dependencies = [
453
472
 
454
473
  [[package]]
455
474
  name = "bashkit-python"
456
- version = "0.4.1"
475
+ version = "0.6.0"
457
476
  dependencies = [
458
477
  "bashkit",
459
478
  "num-bigint",
@@ -1802,11 +1821,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1802
1821
  checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555"
1803
1822
  dependencies = [
1804
1823
  "cfg-if",
1824
+ "js-sys",
1805
1825
  "libc",
1806
1826
  "r-efi 6.0.0",
1807
1827
  "rand_core 0.10.1",
1808
1828
  "wasip2",
1809
1829
  "wasip3",
1830
+ "wasm-bindgen",
1810
1831
  ]
1811
1832
 
1812
1833
  [[package]]
@@ -3034,6 +3055,15 @@ dependencies = [
3034
3055
  "indexmap",
3035
3056
  ]
3036
3057
 
3058
+ [[package]]
3059
+ name = "os_display"
3060
+ version = "0.1.4"
3061
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3062
+ checksum = "ad5fd71b79026fb918650dde6d125000a233764f1c2f1659a1c71118e33ea08f"
3063
+ dependencies = [
3064
+ "unicode-width 0.2.2",
3065
+ ]
3066
+
3037
3067
  [[package]]
3038
3068
  name = "owo-colors"
3039
3069
  version = "3.5.0"
@@ -4770,6 +4800,15 @@ dependencies = [
4770
4800
  "zmij",
4771
4801
  ]
4772
4802
 
4803
+ [[package]]
4804
+ name = "serde_spanned"
4805
+ version = "1.1.1"
4806
+ source = "registry+https://github.com/rust-lang/crates.io-index"
4807
+ checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26"
4808
+ dependencies = [
4809
+ "serde_core",
4810
+ ]
4811
+
4773
4812
  [[package]]
4774
4813
  name = "serdect"
4775
4814
  version = "0.4.2"
@@ -5352,9 +5391,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
5352
5391
 
5353
5392
  [[package]]
5354
5393
  name = "tokio"
5355
- version = "1.52.1"
5394
+ version = "1.52.3"
5356
5395
  source = "registry+https://github.com/rust-lang/crates.io-index"
5357
- checksum = "b67dee974fe86fd92cc45b7a95fdd2f99a36a6d7b0d431a231178d3d670bbcc6"
5396
+ checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe"
5358
5397
  dependencies = [
5359
5398
  "bytes",
5360
5399
  "libc",
@@ -5422,6 +5461,45 @@ dependencies = [
5422
5461
  "tokio",
5423
5462
  ]
5424
5463
 
5464
+ [[package]]
5465
+ name = "toml"
5466
+ version = "1.1.2+spec-1.1.0"
5467
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5468
+ checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee"
5469
+ dependencies = [
5470
+ "indexmap",
5471
+ "serde_core",
5472
+ "serde_spanned",
5473
+ "toml_datetime",
5474
+ "toml_parser",
5475
+ "toml_writer",
5476
+ "winnow",
5477
+ ]
5478
+
5479
+ [[package]]
5480
+ name = "toml_datetime"
5481
+ version = "1.1.1+spec-1.1.0"
5482
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5483
+ checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7"
5484
+ dependencies = [
5485
+ "serde_core",
5486
+ ]
5487
+
5488
+ [[package]]
5489
+ name = "toml_parser"
5490
+ version = "1.1.2+spec-1.1.0"
5491
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5492
+ checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526"
5493
+ dependencies = [
5494
+ "winnow",
5495
+ ]
5496
+
5497
+ [[package]]
5498
+ name = "toml_writer"
5499
+ version = "1.1.1+spec-1.1.0"
5500
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5501
+ checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db"
5502
+
5425
5503
  [[package]]
5426
5504
  name = "tower"
5427
5505
  version = "0.5.3"
@@ -5744,6 +5822,12 @@ dependencies = [
5744
5822
  "rand 0.8.6",
5745
5823
  ]
5746
5824
 
5825
+ [[package]]
5826
+ name = "unit-prefix"
5827
+ version = "0.5.2"
5828
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5829
+ checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3"
5830
+
5747
5831
  [[package]]
5748
5832
  name = "universal-hash"
5749
5833
  version = "0.5.1"
@@ -6226,6 +6310,12 @@ version = "0.52.6"
6226
6310
  source = "registry+https://github.com/rust-lang/crates.io-index"
6227
6311
  checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
6228
6312
 
6313
+ [[package]]
6314
+ name = "winnow"
6315
+ version = "1.0.2"
6316
+ source = "registry+https://github.com/rust-lang/crates.io-index"
6317
+ checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0"
6318
+
6229
6319
  [[package]]
6230
6320
  name = "wit-bindgen"
6231
6321
  version = "0.51.0"
@@ -7,7 +7,7 @@ resolver = "2"
7
7
  members = ["crates/*"]
8
8
 
9
9
  [workspace.package]
10
- version = "0.4.1"
10
+ version = "0.6.0"
11
11
  edition = "2024"
12
12
  license = "MIT"
13
13
  authors = ["Everruns"]
@@ -69,7 +69,19 @@ ed25519-dalek = { version = "2", features = ["rand_core"] }
69
69
  rand = "0.10"
70
70
  zeroize = "1"
71
71
 
72
+ # CSPRNG for placeholder token generation (security-grade randomness).
73
+ # Important decision: enable `wasm_js` so the public `wasm32-unknown-unknown`
74
+ # build gate stays green; bashkit targets JS-backed wasm for that triple.
75
+ # Used by the credential placeholder generator; getrandom is the lowest-level
76
+ # CSPRNG primitive and is already transitively in the dep tree via reqwest/rustls.
77
+ getrandom = { version = "0.4", features = ["wasm_js"] }
78
+
72
79
  # CLI
80
+ # Intentionally NOT enabling clap's `env` feature: it makes `Arg::env(...)`
81
+ # read defaults from `std::env`, which would tunnel host process state into
82
+ # the bashkit sandbox (TM-INF-023). The coreutils-args-port codegen strips
83
+ # `.env(...)` chains from vendored Arg builders; dropping the feature here
84
+ # is defence-in-depth so any re-introduction fails to compile.
73
85
  clap = { version = "4", features = ["derive"] }
74
86
 
75
87
  # Testing
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bashkit
3
- Version: 0.4.1
3
+ Version: 0.6.0
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -41,6 +41,8 @@ Project-URL: Repository, https://github.com/everruns/bashkit
41
41
 
42
42
  Sandboxed bash interpreter for Python. Native bindings to the `bashkit` Rust core for fast, in-process execution with a virtual filesystem.
43
43
 
44
+ Homepage: [bashkit.sh](https://bashkit.sh)
45
+
44
46
  ## Features
45
47
 
46
48
  - Sandboxed execution in-process, without containers or subprocess orchestration
@@ -4,6 +4,8 @@
4
4
 
5
5
  Sandboxed bash interpreter for Python. Native bindings to the `bashkit` Rust core for fast, in-process execution with a virtual filesystem.
6
6
 
7
+ Homepage: [bashkit.sh](https://bashkit.sh)
8
+
7
9
  ## Features
8
10
 
9
11
  - Sandboxed execution in-process, without containers or subprocess orchestration
@@ -68,6 +68,9 @@ ed25519-dalek = { workspace = true, optional = true }
68
68
  rand = { workspace = true, optional = true }
69
69
  zeroize = { workspace = true, optional = true }
70
70
 
71
+ # CSPRNG for credential placeholder generation
72
+ getrandom = { workspace = true }
73
+
71
74
  # Checksums (for md5sum, sha1sum, sha256sum builtins)
72
75
  md-5 = { workspace = true }
73
76
  sha1 = { workspace = true }
@@ -77,8 +80,18 @@ hmac = "0.13"
77
80
  # Logging/tracing (optional)
78
81
  tracing = { workspace = true, optional = true }
79
82
 
80
- # CLI-style argument parsing for custom builtins.
81
- clap = { workspace = true, optional = true }
83
+ # CLI-style argument parsing for custom builtins and ported coreutils
84
+ # argument surfaces. Always on see specs/coreutils-args-port.md.
85
+ clap = { workspace = true }
86
+
87
+ # Pinned to uutils' workspace versions. Used by the vendored
88
+ # uucore::format module (see crates/bashkit/src/builtins/generated/format)
89
+ # that backs `printf`. Kept platform-clean — no rustix / errno
90
+ # transitive deps — so wasm32 stays buildable.
91
+ bigdecimal = "0.4"
92
+ num-traits = "0.2"
93
+ unit-prefix = "0.5"
94
+ os_display = "0.1.3"
82
95
 
83
96
  # Embedded Python interpreter (optional)
84
97
  monty = { git = "https://github.com/pydantic/monty", rev = "49faa4c", optional = true }
@@ -91,9 +104,7 @@ zapcode-core = { version = "1.5", optional = true }
91
104
  turso_core = { workspace = true, optional = true }
92
105
 
93
106
  [features]
94
- default = ["clap-builtins"]
95
- # Enable `ClapBuiltin` for custom builtins with `#[derive(clap::Parser)]`.
96
- clap-builtins = ["dep:clap"]
107
+ default = []
97
108
  # Enable jq builtin via embedded jaq interpreter
98
109
  # Usage: cargo build --features jq
99
110
  jq = ["dep:jaq-core", "dep:jaq-std", "dep:jaq-json"]
@@ -8,6 +8,8 @@
8
8
 
9
9
  Awesomely fast virtual sandbox with bash and file system. Written in Rust.
10
10
 
11
+ Homepage: [bashkit.sh](https://bashkit.sh)
12
+
11
13
  ## Features
12
14
 
13
15
  - **Secure by default** - No process spawning, no filesystem access, no network access unless explicitly enabled. [250+ threats](specs/threat-model.md) analyzed and mitigated
@@ -21,7 +23,6 @@ Awesomely fast virtual sandbox with bash and file system. Written in Rust.
21
23
  - **LLM tool contract** - `BashTool` with discovery metadata, streaming output, and system prompts
22
24
  - **Snapshotting** - Serialize shell state and VFS contents for checkpoint/resume workflows
23
25
  - **Scripted tool orchestration** - Compose ToolDef+callback pairs into multi-tool bash scripts (`scripted_tool` feature)
24
- - **MCP server** - Model Context Protocol endpoint via `bashkit mcp`
25
26
  - **Async-first** - Built on tokio
26
27
  - **Language bindings** - Python (PyO3) and JavaScript/TypeScript (NAPI-RS) for Node.js, Bun, and Deno
27
28
  - **Experimental: Git support** - Virtual git operations on the virtual filesystem (`git` feature)
@@ -372,17 +373,15 @@ mountable.mount("/data", Arc::new(InMemoryFs::new()));
372
373
 
373
374
  ```bash
374
375
  # Run a script
375
- bashkit run script.sh
376
+ bashkit script.sh
376
377
 
377
378
  # Interactive REPL
378
- bashkit repl
379
+ bashkit
379
380
 
380
- # MCP server (Model Context Protocol)
381
- bashkit mcp
382
381
 
383
382
  # Mount real filesystem (read-only or read-write)
384
- bashkit run script.sh --mount-ro /data
385
- bashkit run script.sh --mount-rw /workspace
383
+ bashkit --mount-ro /data script.sh
384
+ bashkit --mount-rw /workspace script.sh
386
385
  ```
387
386
 
388
387
  ## Development
@@ -3,21 +3,8 @@
3
3
  `ClapBuiltin` lets Rust applications define custom Bashkit commands with
4
4
  `#[derive(clap::Parser)]` argument structs. Handlers receive a
5
5
  `BashkitContext` that captures stdout, stderr, and exit code for the virtual
6
- shell. The feature is enabled by default through `clap-builtins`.
7
-
8
- Disable it for a smaller library dependency surface:
9
-
10
- ```toml
11
- [dependencies]
12
- bashkit = { version = "0.3", default-features = false }
13
- ```
14
-
15
- Enable it explicitly when default features are off:
16
-
17
- ```toml
18
- [dependencies]
19
- bashkit = { version = "0.3", default-features = false, features = ["clap-builtins"] }
20
- ```
6
+ shell. `clap` is an unconditional dependency of `bashkit`, so this trait is
7
+ always available.
21
8
 
22
9
  ## Basic Usage
23
10
 
@@ -146,6 +133,6 @@ async fn main() -> bashkit::Result<()> {
146
133
 
147
134
  ## See Also
148
135
 
149
- - [`crates/bashkit/examples/clap_builtin.rs`](../crates/bashkit/examples/clap_builtin.rs)
150
- - [`crates/bashkit/examples/clap_builtin_subcommands.rs`](../crates/bashkit/examples/clap_builtin_subcommands.rs)
151
- - [`crates/bashkit/docs/custom_builtins.md`](../crates/bashkit/docs/custom_builtins.md)
136
+ - [`crates/bashkit/examples/clap_builtin.rs`](../examples/clap_builtin.rs)
137
+ - [`crates/bashkit/examples/clap_builtin_subcommands.rs`](../examples/clap_builtin_subcommands.rs)
138
+ - [`crates/bashkit/docs/custom_builtins.md`](./custom_builtins.md)
@@ -7,7 +7,7 @@ virtual filesystem.
7
7
 
8
8
  **See also:**
9
9
  - [API Documentation](https://docs.rs/bashkit) - Full API reference
10
- - [Clap Builtins](../../../docs/clap-builtins.md) - Derive parser structs for custom builtin args
10
+ - [Clap Builtins](./clap-builtins.md) - Derive parser structs for custom builtin args
11
11
  - [Hooks](./hooks.md) - Interceptor hooks for the execution pipeline
12
12
  - [Compatibility Reference](./compatibility.md) - Supported bash features
13
13
  - [Threat Model](./threat-model.md) - Security considerations
@@ -156,10 +156,9 @@ Arguments are passed as a slice of strings, excluding the command name itself:
156
156
  let first_arg = ctx.args.first().map(|s| s.as_str()).unwrap_or("default");
157
157
  ```
158
158
 
159
- For custom builtins with richer flags, options, or subcommands, enable the
160
- default `clap-builtins` feature and implement `ClapBuiltin` with a
161
- `#[derive(clap::Parser)]` argument type. See the `clap_builtins_guide` rustdoc
162
- module for tested examples.
159
+ For custom builtins with richer flags, options, or subcommands, implement
160
+ `ClapBuiltin` with a `#[derive(clap::Parser)]` argument type. See the
161
+ `clap_builtins_guide` rustdoc module for tested examples.
163
162
 
164
163
  ### Environment Variables
165
164
 
@@ -0,0 +1,193 @@
1
+ //! cat builtin.
2
+ //!
3
+ //! Argument surface is generated from uutils/coreutils' `uu_app()` via the
4
+ //! `bashkit-coreutils-port` codegen tool — see `generated/cat_args.rs` and
5
+ //! `crates/bashkit-coreutils-port/`. Behaviour is implemented locally
6
+ //! against the bashkit VFS.
7
+
8
+ use async_trait::async_trait;
9
+ use std::ffi::OsString;
10
+ use std::path::Path;
11
+
12
+ use super::generated::cat_args::cat_command;
13
+ use super::{Builtin, Context, read_text_file};
14
+ use crate::error::Result;
15
+ use crate::interpreter::ExecResult;
16
+
17
+ pub struct Cat;
18
+
19
+ #[async_trait]
20
+ impl Builtin for Cat {
21
+ async fn execute(&self, ctx: Context<'_>) -> Result<ExecResult> {
22
+ // clap expects argv[0] = program name; bashkit's ctx.args excludes it.
23
+ let argv: Vec<OsString> = std::iter::once(OsString::from("cat"))
24
+ .chain(ctx.args.iter().map(OsString::from))
25
+ .collect();
26
+
27
+ // GNU coreutils' help layout opens with the usage line; clap's
28
+ // default template leads with the `about`. uutils handles this via
29
+ // uucore's `localized_help_template`, which we drop during codegen
30
+ // because it pulls in Fluent. Re-apply a GNU-equivalent template.
31
+ let cmd = cat_command().help_template("Usage: {usage}\n{about}\n\n{all-args}\n");
32
+ let matches = match cmd.try_get_matches_from(argv) {
33
+ Ok(m) => m,
34
+ Err(e) => {
35
+ let kind = e.kind();
36
+ let rendered = e.render().to_string();
37
+ if matches!(
38
+ kind,
39
+ clap::error::ErrorKind::DisplayHelp | clap::error::ErrorKind::DisplayVersion
40
+ ) {
41
+ return Ok(ExecResult::ok(rendered));
42
+ }
43
+ return Ok(ExecResult::err(rendered, 2));
44
+ }
45
+ };
46
+
47
+ // Composite flags: -A = -vET, -e = -vE, -t = -vT.
48
+ let g = |k: &str| matches.get_flag(k);
49
+ let show_all = g("show-all");
50
+ let number_nonblank = g("number-nonblank");
51
+ let nonprint_ends = g("e");
52
+ let nonprint_tabs = g("t");
53
+ let show_ends = g("show-ends") || show_all || nonprint_ends;
54
+ let show_tabs = g("show-tabs") || show_all || nonprint_tabs;
55
+ let show_nonprinting = g("show-nonprinting") || show_all || nonprint_ends || nonprint_tabs;
56
+ let number_all = g("number") && !number_nonblank;
57
+ let squeeze = g("squeeze-blank");
58
+
59
+ // GNU `cat` reads stdin when FILE is "-" or absent. clap defaults
60
+ // FILE to "-" so absence and "-" are unified.
61
+ let files: Vec<String> = matches
62
+ .get_many::<OsString>("file")
63
+ .map(|vs| vs.map(|v| v.to_string_lossy().into_owned()).collect())
64
+ .unwrap_or_default();
65
+
66
+ let mut raw = String::new();
67
+ for file in &files {
68
+ if file == "-" {
69
+ if let Some(stdin) = ctx.stdin {
70
+ raw.push_str(stdin);
71
+ }
72
+ } else {
73
+ let path = if Path::new(file).is_absolute() {
74
+ file.clone()
75
+ } else {
76
+ ctx.cwd.join(file).to_string_lossy().into_owned()
77
+ };
78
+ match read_text_file(&*ctx.fs, Path::new(&path), "cat").await {
79
+ Ok(t) => raw.push_str(&t),
80
+ Err(e) => return Ok(e),
81
+ }
82
+ }
83
+ }
84
+
85
+ let output = render(
86
+ &raw,
87
+ show_ends,
88
+ show_tabs,
89
+ show_nonprinting,
90
+ number_all,
91
+ number_nonblank,
92
+ squeeze,
93
+ );
94
+ Ok(ExecResult::ok(output))
95
+ }
96
+ }
97
+
98
+ /// Apply cat's display transforms in a single pass.
99
+ ///
100
+ /// One pass because numbering interacts with squeezing — squeezed blank
101
+ /// lines must not be numbered. Two passes mis-number `cat -ns`.
102
+ fn render(
103
+ raw: &str,
104
+ show_ends: bool,
105
+ show_tabs: bool,
106
+ show_nonprinting: bool,
107
+ number_all: bool,
108
+ number_nonblank: bool,
109
+ squeeze: bool,
110
+ ) -> String {
111
+ use std::fmt::Write;
112
+
113
+ let mut out = String::with_capacity(raw.len());
114
+ let mut counter: u64 = 0;
115
+ let mut prev_blank = false;
116
+
117
+ let mut iter = raw.split_inclusive('\n').peekable();
118
+ if iter.peek().is_none() {
119
+ return out;
120
+ }
121
+
122
+ for chunk in iter {
123
+ let (body, sep): (&str, &str) = match chunk.strip_suffix('\n') {
124
+ Some(b) => (b, "\n"),
125
+ None => (chunk, ""),
126
+ };
127
+ let is_blank = body.is_empty();
128
+
129
+ if squeeze && is_blank && prev_blank {
130
+ continue;
131
+ }
132
+ prev_blank = is_blank;
133
+
134
+ if number_all || (number_nonblank && !is_blank) {
135
+ counter += 1;
136
+ let _ = write!(out, "{counter:>6}\t");
137
+ }
138
+
139
+ if show_nonprinting || show_tabs {
140
+ for b in body.bytes() {
141
+ emit_byte(&mut out, b, show_tabs, show_nonprinting);
142
+ }
143
+ } else {
144
+ out.push_str(body);
145
+ }
146
+
147
+ if show_ends && !sep.is_empty() {
148
+ out.push('$');
149
+ }
150
+ out.push_str(sep);
151
+ }
152
+ out
153
+ }
154
+
155
+ /// GNU cat -v style byte rendering.
156
+ ///
157
+ /// - tab (0x09): literal '\t' unless `show_tabs` (then `^I`).
158
+ /// - bytes < 0x20 (other than tab/newline): `^X` (X = byte + 64) when
159
+ /// show_nonprinting; passed through otherwise.
160
+ /// - 0x7F (DEL): `^?`.
161
+ /// - 0x80..=0xFF (high bit set): `M-` prefix + low-7-bit rendered same way.
162
+ fn emit_byte(out: &mut String, b: u8, show_tabs: bool, show_nonprinting: bool) {
163
+ match b {
164
+ b'\t' if show_tabs => {
165
+ out.push('^');
166
+ out.push('I');
167
+ }
168
+ b'\t' => out.push('\t'),
169
+ b'\n' => out.push('\n'),
170
+ 0..=31 if show_nonprinting => {
171
+ out.push('^');
172
+ out.push((b + 64) as char);
173
+ }
174
+ 0x7f if show_nonprinting => {
175
+ out.push('^');
176
+ out.push('?');
177
+ }
178
+ 128..=255 if show_nonprinting => {
179
+ out.push_str("M-");
180
+ let low = b & 0x7f;
181
+ if (0..32).contains(&low) {
182
+ out.push('^');
183
+ out.push((low + 64) as char);
184
+ } else if low == 0x7f {
185
+ out.push('^');
186
+ out.push('?');
187
+ } else {
188
+ out.push(low as char);
189
+ }
190
+ }
191
+ _ => out.push(b as char),
192
+ }
193
+ }