export const AGENT_IDLE_TIMEOUT_S = 300
-export const AGENT_MODEL = 'github-copilot/claude-sonnet-4.6'
+export const AGENT_ACTOR_MODEL = 'github-copilot/claude-sonnet-4.6'
+
+export const AGENT_CRITIC_MODEL = 'github-copilot/claude-sonnet-4.6'
export const BRANCH_PREFIX = 'agent/issue'
export const MAX_TITLE_LENGTH = 200
-export const PLANNER_MODEL = 'github-copilot/claude-opus-4.6'
+export const AGENT_PLANNER_MODEL = 'github-copilot/claude-opus-4.6'
export const PUSH_TIMEOUT_MS = 60_000
} from './types.js'
import {
+ AGENT_ACTOR_MODEL,
+ AGENT_CRITIC_MODEL,
AGENT_IDLE_TIMEOUT_S,
- AGENT_MODEL,
COMPLETION_SIGNAL,
CONTEXT_HASH_RADIUS,
HASH_PREFIX_LENGTH,
let implementerResult: Awaited<ReturnType<typeof sandbox.run>>
try {
implementerResult = await sandbox.run({
- agent: sandcastle.opencode(AGENT_MODEL),
+ agent: sandcastle.opencode(AGENT_ACTOR_MODEL),
completionSignal: COMPLETION_SIGNAL,
idleTimeoutSeconds: AGENT_IDLE_TIMEOUT_S,
maxIterations: budget,
signal?: AbortSignal
): Promise<Finding[] | null> {
let critic = await sandbox.run({
- agent: sandcastle.opencode(AGENT_MODEL),
+ agent: sandcastle.opencode(AGENT_CRITIC_MODEL),
completionSignal: COMPLETION_SIGNAL,
idleTimeoutSeconds: AGENT_IDLE_TIMEOUT_S,
maxIterations: 1,
if (findings === null) {
console.warn(` #${spec.id}: Critic parse failed. Retrying.`)
critic = await sandbox.run({
- agent: sandcastle.opencode(AGENT_MODEL),
+ agent: sandcastle.opencode(AGENT_CRITIC_MODEL),
completionSignal: COMPLETION_SIGNAL,
idleTimeoutSeconds: AGENT_IDLE_TIMEOUT_S,
maxIterations: 1,
MAX_ISSUES_FETCH,
MAX_PRS_FETCH,
MAX_TITLE_LENGTH,
- PLANNER_MODEL,
+ AGENT_PLANNER_MODEL,
TASK_TIMEOUT_MS,
} from './constants.js'
import { execFileAsync, toErrorMessage } from './utils.js'
let plan: Awaited<ReturnType<typeof sandcastle.run>>
try {
plan = await sandcastle.run({
- agent: sandcastle.opencode(PLANNER_MODEL),
+ agent: sandcastle.opencode(AGENT_PLANNER_MODEL),
completionSignal: COMPLETION_SIGNAL,
idleTimeoutSeconds: AGENT_IDLE_TIMEOUT_S,
maxIterations: 1,