Files
deepseek-harness/packages/bash/README.md
kingwl 624d8d5df4 refactor(examples): fold the sandbox composition into acp-agent as its variant
sandbox-acp-agent's whole surface moves into examples/acp-agent following
the example's existing multi-variant shape (the code-mode/both-mode
overlays): sandbox.cordis.yml + its replay overlay, the four snapshot
scenarios (config-options / mode-switching / escalation-approved /
escalation-rejected) as a 'sandbox' header class over per-scenario
configPath — goldens byte-identical, zero re-recording — and
escalation.e2e.ts unchanged apart from the config path. One ACP example
remains; demo:sandbox-acp keeps its name and boots the variant. References
(both RFCs, group/package READMEs, the examples table and test map, the
e2e workflow comment) now point at the variant.
2026-07-13 14:37:59 +08:00

1.2 KiB

bash/ — bash capability family

The canonical three-package capability seam (see capability seams): an abstract executor interface, concrete implementations, and the model-facing tool that consumes it. All product packages.

Package Role ctx key
bash/ Abstract bash executor seam (interface + vocabulary; sandbox result facts carry the sandbox/ seam's mode/enforcement vocabulary) ctx.bash
bash-local/ Local-subprocess BashExecutor implementation (registers ctx.bash)
bash-sandbox/ Sandbox-consuming BashExecutor (wraps every command argv via ctx.sandbox, stamps denial/enforcement facts; extends bash-local's mechanics) (registers ctx.bash)
tool-bash/ Model-facing bash/bash_output/bash_kill tool schemas (registers on ctx.tools)

The interface lives at bash/bash/. bash-sandbox replacing bash-local without touching the interface or the tool is the split doing exactly what it exists for — a leaf cordis.yml picks one executor entry, plus a ctx.sandbox provider entry for the confined one (see the acp-agent example's sandbox.cordis.yml).