You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(workflow): choose agent and model separately, ACP as the default runtime #64
The authoring and config surface of ADR 0013 §2–§4. The ACP adapter (#63) becomes the default
runtime.
agent?: "claude" | "opencode" next to model at every level: AgentCallOptions, the
workflow agent defaults, schedule agent, and the run-request override.
config.agent:
default (agent);
models: { claude?: string, opencode?: string };
hostSettings: { claude?: "ignore" | "include", opencode?: … }, with "ignore" as the
default.
Keep config.agent.adapter as the injection point for replay and fakes.
Resolution rule (ADR 0013 §2):
Agent: the most specific level that names one, else config.agent.default.
Model: the most specific level that names one, among the level that chose the agent and the
levels more specific than it. Otherwise config.agent.models[agent].
Factory always sends a model. An unresolvable model fails the run at start with a clear
message.
Parent
#62
What to build
The authoring and config surface of ADR 0013 §2–§4. The ACP adapter (#63) becomes the default
runtime.
agent?: "claude" | "opencode"next tomodelat every level:AgentCallOptions, theworkflow
agentdefaults, scheduleagent, and the run-request override.config.agent:default(agent);models: { claude?: string, opencode?: string };hostSettings: { claude?: "ignore" | "include", opencode?: … }, with"ignore"as thedefault.
config.agent.adapteras the injection point for replay and fakes.config.agent.default.levels more specific than it. Otherwise
config.agent.models[agent].message.
DEFAULT_MODEL. Closes Add a config-level default agent model #40.permissionModefromAgentCallOptions. Closes permissionMode is declared on the authoring surface and read by nobody #39.AgentStepStarted.agent, optional for old logs. Show the agent next to the model in rundetail.
factory initwritesagent.defaultandagent.models(claude: "sonnet",opencode: "opencode/big-pickle")..factory/factory.config.tsgets the same.missing.
Acceptance
bun run checkgreen.factory start hello(or the spike workflow through the CLI path) on each agent picksthe configured model.