Summary
Add a first-class Devin agent alongside the existing Cursor agent so suites can run the same GWT harness against Devin.
Context
Today agentRegistry only exports cursor (src/agents/registry.ts). Agents follow the shared Agent contract (ensureImage / buildImage / run) with a base image (agent-gwt/base:local) plus an agent-specific image.
Acceptance criteria
Notes
Mirror the Cursor agent layout under src/agents/devin/ and docker/devin/ where practical.
Summary
Add a first-class Devin agent alongside the existing Cursor agent so suites can run the same GWT harness against Devin.
Context
Today
agentRegistryonly exportscursor(src/agents/registry.ts). Agents follow the sharedAgentcontract (ensureImage/buildImage/run) with a base image (agent-gwt/base:local) plus an agent-specific image.Acceptance criteria
devinagent in the agent registryagent-gwt/base:localunless Devin needs a different base)runthat mounts only the credentials Devin needs, runs as the host user, and returns a parsed result compatible withAgentContextbuildAgentImage("devin")from vitestglobalSetupNotes
Mirror the Cursor agent layout under
src/agents/devin/anddocker/devin/where practical.