Files
deepseek-harness/packages/bash
Huanqi Cao b482f12d57 fix(coverage): probe the pwsh exemption with the executor's own resolution
The review caught the pwshCoverageExclusions comment claiming the inverse of
the code's behavior: a bare-PATH probe FAILING grants the exemption, so a
win32 host where only install-location pwsh (or 5.1) resolves kept the
exemption while its suites ran - over-exempting, never tightening.

resolvePwshPath/candidatePwshPaths move to the dependency-free
pwsh-local/src/resolve.ts (index.ts re-exports; public API unchanged) and
vitest.config.ts probes with that shared definition, so the exemption is
active exactly when the suites skip. The two spec headers stop saying
'on PATH' for a probe that is deliberately not PATH-only, and the parity
note records the abort backport as the one both-ways parity change (both
languages, pairing re-recorded); catalogs regenerated for the line shift.
2026-08-03 00:21:17 +08:00
..

bash/ — bash capability family

English | 中文

The capability family spans the canonical executor seam, its implementations, the shared shell environment, and the model-facing tools. 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, and the managed-env/output vocabulary is re-exported from the subprocess/ seam) ctx.bash
bash-local/ Local BashExecutor implementation over the subprocess/ service (command defaulting, deadlines, terminal env, background-read merge) (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)
pwsh-local/ Local PowerShell BashExecutor implementation over the subprocess/ service (executable resolution, UTF-8-pinned spawn, Windows termination semantics) (registers ctx.bash)
bash-env/ Tool-independent managed DSH_* shell environment registry shared by the shell tools (built-in facts + effect-scoped contributors) (registers ctx.bashEnv)
tool-bash/ Model-facing bash schema; background processes register with the generic tasks/ runtime (registers on ctx.tools)
tool-pwsh/ Model-facing PowerShell-dialect pwsh schema (behavior mirrors tool-bash minus the sandbox surface); background processes register with the generic tasks/ runtime (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 default composition).