Phase 5 — Cross-cutting. Make the sandbox layer provider-agnostic.
Scope
lib/sandbox_docker.sh / lib/sandbox_e2b.sh currently wrap the Claude CLI call.
Generalize the wrapped command to the active adapter's invocation.
- Per-provider credential/auth seeding inside the sandbox (ANTHROPIC_API_KEY for claude,
OPENAI/CODEX auth for codex, GEMINI auth, GH token for copilot, etc.) — extend the
existing credential-setup hooks per provider.
- The default
ralph-sandbox image bundles claude; document which providers need a
custom image / extra install (e.g. npm i -g @openai/codex).
Acceptance
ralph --sandbox docker --provider codex (and e2b) execute the wrapped provider;
claude path unchanged. Tests for the command-wrap generalization + credential routing.
Depends on: [P3.1].
Phase 5 — Cross-cutting. Make the sandbox layer provider-agnostic.
Scope
lib/sandbox_docker.sh/lib/sandbox_e2b.shcurrently wrap the Claude CLI call.Generalize the wrapped command to the active adapter's invocation.
OPENAI/CODEX auth for codex, GEMINI auth, GH token for copilot, etc.) — extend the
existing credential-setup hooks per provider.
ralph-sandboximage bundles claude; document which providers need acustom image / extra install (e.g.
npm i -g @openai/codex).Acceptance
ralph --sandbox docker --provider codex(and e2b) execute the wrapped provider;claude path unchanged. Tests for the command-wrap generalization + credential routing.
Depends on: [P3.1].