Module: Agent::Workspace

Defined in:
app/services/agent/workspace.rb

Overview

The worker agent's isolated checkout, behind a strategy factory (cardinal.md §13, §17):

Local     — clone under .cardinal/workspaces/; the agent process runs on
          the host with chdir into the checkout. Process-level
          isolation only. The default.
Container — same host-side checkout, but the agent runs inside a
          cage-style Docker container that mounts ONLY the checkout.
          Opt in with CARDINAL_WORKSPACE=container (experimental —
          requires a Docker daemon and CARDINAL_AGENT_IMAGE with the
          claude CLI installed; ANTHROPIC_API_KEY is passed through).

Both strategies share git provisioning: the runner owns clone, branch, and push — the agent only ever commits.

Defined Under Namespace

Classes: Container, Local

Class Method Summary collapse

Class Method Details

.attach(card) ⇒ Object



18
# File 'app/services/agent/workspace.rb', line 18

def self.attach(card) = strategy.attach(card)

.provision(card) ⇒ Object



17
# File 'app/services/agent/workspace.rb', line 17

def self.provision(card) = strategy.provision(card)

.strategyObject



20
21
22
# File 'app/services/agent/workspace.rb', line 20

def self.strategy
  ENV["CARDINAL_WORKSPACE"] == "container" ? Container : Local
end