Run the real agent CLI against a scripted mock model, with the given fixture
and settings (hooks). Deterministic — same script, same result. Adapter-driven
(opts.adapter, default Claude Code): the Claude Code path is unchanged
(incl. the safe-by-default sandbox); pass codexAdapter to drive real codex.
Safe by default (Claude Code): an external plugin / pluginDir brings in
untrusted third-party hooks and is confined under bubblewrap (spec.sandbox,
default "auto"); if no sandbox is available the run REFUSES rather than
executing unconfined. See src/sandbox.ts. The sandbox path is Claude Code
only — requesting confinement for another harness throws.
Run the real agent CLI against a scripted mock model, with the given fixture and settings (hooks). Deterministic — same script, same result. Adapter-driven (
opts.adapter, default Claude Code): the Claude Code path is unchanged (incl. the safe-by-default sandbox); passcodexAdapterto drive real codex.Safe by default (Claude Code): an external
plugin/pluginDirbrings in untrusted third-party hooks and is confined under bubblewrap (spec.sandbox, default"auto"); if no sandbox is available the run REFUSES rather than executing unconfined. Seesrc/sandbox.ts. The sandbox path is Claude Code only — requesting confinement for another harness throws.