@nexus-cortex/cli 4.44.2 → 4.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cortex/agents/autoresearch-agent.md +2 -0
- package/.cortex/skills/autoresearch/SKILL.md +4 -2
- package/.cortex/skills/cortex-bench/SKILL.md +2 -0
- package/dist/commands/autoresearch/armPlan.d.ts +32 -0
- package/dist/commands/autoresearch/armPlan.d.ts.map +1 -0
- package/dist/commands/autoresearch/armPlan.js +171 -0
- package/dist/commands/autoresearch/armPlan.js.map +1 -0
- package/dist/commands/autoresearch/backlog.d.ts +44 -0
- package/dist/commands/autoresearch/backlog.d.ts.map +1 -0
- package/dist/commands/autoresearch/backlog.js +222 -0
- package/dist/commands/autoresearch/backlog.js.map +1 -0
- package/dist/commands/autoresearch/experiment.d.ts.map +1 -1
- package/dist/commands/autoresearch/experiment.js +5 -2
- package/dist/commands/autoresearch/experiment.js.map +1 -1
- package/dist/commands/autoresearch/loop.d.ts +9 -0
- package/dist/commands/autoresearch/loop.d.ts.map +1 -1
- package/dist/commands/autoresearch/loop.js +266 -140
- package/dist/commands/autoresearch/loop.js.map +1 -1
- package/dist/index.js +79 -2
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/OrchestratorClient.d.ts +5 -0
- package/dist/orchestrator/OrchestratorClient.d.ts.map +1 -1
- package/dist/orchestrator/OrchestratorClient.js +8 -0
- package/dist/orchestrator/OrchestratorClient.js.map +1 -1
- package/package.json +2 -2
|
@@ -21,6 +21,15 @@ export interface AutoResearchLoopOptions {
|
|
|
21
21
|
* every scored run so the matrix can rank (model × temperature × strategy). */
|
|
22
22
|
temperature?: string;
|
|
23
23
|
strategy?: string;
|
|
24
|
+
/** Parallel candidate arms per round (FWER family width). Default 1 = classic loop. */
|
|
25
|
+
width?: string;
|
|
26
|
+
/** Explicit comma-separated model ids rotated across arms (arm 1 keeps --model). */
|
|
27
|
+
armModels?: string;
|
|
28
|
+
/** Comma-separated providers to draw arm models from (flagship tool-supporting model each). */
|
|
29
|
+
providers?: string;
|
|
30
|
+
/** What to do with an arm whose provider key is missing:
|
|
31
|
+
* platform_fallback (run anyway) | omit (drop the arm) | redistribute (reassign). */
|
|
32
|
+
missingProviderKeyPolicy?: string;
|
|
24
33
|
/** Opt-in qualitative gate: run `cortex autoresearch judge` on each candidate the
|
|
25
34
|
* STATISTICAL gate accepted, and require it to APPROVE before merging
|
|
26
35
|
* (accept = gate-accept ∧ judge-approve). Default off → unchanged behavior. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/commands/autoresearch/loop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../src/commands/autoresearch/loop.ts"],"names":[],"mappings":"AAwCA,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;oFACgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;0FACsF;IACtF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;oFAEgF;IAChF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA+DD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoRtF"}
|
|
@@ -7,14 +7,21 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Each round:
|
|
9
9
|
* 1. Goal = --prompt, else the highest-priority workable backlog deficiency.
|
|
10
|
-
* 2.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* 2. Fan out into `--width` parallel candidate ARMS (default 1). Each arm gets its own
|
|
11
|
+
* worktree detached at the current base ref and its own Fixer model — provider/model
|
|
12
|
+
* diversity competing on the SAME goal (see armPlan.ts for model assignment and the
|
|
13
|
+
* --missing-provider-key-policy semantics).
|
|
14
|
+
* 3. Mutate each arm: --fixer-cmd (any transformer; sees CORTEX_ARM_INDEX/MODEL/STRATEGY
|
|
15
|
+
* in its environment), else the LLM `cortex autoresearch fix --model <arm model>`.
|
|
16
|
+
* 4. Commit each candidate (no change → that arm is skipped).
|
|
17
|
+
* 5. Run `cortex autoresearch experiment` per arm (base vs candidate, FWER-adjusted with
|
|
18
|
+
* --n-family = the number of arms launched) and read the verdicts.
|
|
14
19
|
* 6. ACCEPT = mergeEligible when a holdout is given (keep + FWER + holdout-verified); with
|
|
15
20
|
* no holdout, accept = keep-on-train (logged as UNVERIFIED — provide --holdout-set for
|
|
16
|
-
* the overfitting guard).
|
|
17
|
-
*
|
|
21
|
+
* the overfitting guard). The WINNER is the gate-accepted arm with the highest effect;
|
|
22
|
+
* with --require-judge the judge reviews accepted arms in effect order until one is
|
|
23
|
+
* approved. On accept: advance base to the winner + anchor the loop branch to it.
|
|
24
|
+
* Losing/rejected arms are dropped.
|
|
18
25
|
* 7. Stop on: success metric met, max rounds, max consecutive stale rounds, or a dry backlog.
|
|
19
26
|
*
|
|
20
27
|
* GIT SAFETY: all work happens in throwaway worktrees off a dedicated loop branch
|
|
@@ -22,13 +29,14 @@
|
|
|
22
29
|
* candidate commits are anchored to the loop branch so detached-HEAD commits survive
|
|
23
30
|
* worktree removal; the operator merges the loop branch when satisfied.
|
|
24
31
|
*/
|
|
25
|
-
import { execFileSync, spawnSync } from 'node:child_process';
|
|
32
|
+
import { execFileSync, spawn, spawnSync } from 'node:child_process';
|
|
26
33
|
import { mkdtempSync } from 'node:fs';
|
|
27
34
|
import { tmpdir } from 'node:os';
|
|
28
35
|
import { join, resolve } from 'node:path';
|
|
29
36
|
import { ResearchBacklog } from '@nexus-cortex/core';
|
|
30
37
|
import { ThemeManager } from '../../themes/ThemeManager.js';
|
|
31
38
|
import { resolveRepoDir, resolveTaskSet } from './repoResolve.js';
|
|
39
|
+
import { planArms, parseMissingKeyPolicy } from './armPlan.js';
|
|
32
40
|
/** Default judge rubric used when --require-judge is set without an explicit
|
|
33
41
|
* --judge-rubric / --judge-rubric-file. Tuned for the autoresearch loop: the
|
|
34
42
|
* statistical gate already proved a measurable, holdout-verified gain, so the
|
|
@@ -49,6 +57,24 @@ const DEFAULT_JUDGE_RUBRIC = 'You are judging a candidate code change produced b
|
|
|
49
57
|
'or bundles unrelated rewrites. A measurable, holdout-verified gain is NECESSARY but NOT ' +
|
|
50
58
|
'SUFFICIENT — be skeptical and refute-first; when in doubt, do not approve.';
|
|
51
59
|
function shQuote(s) { return `'${s.replace(/'/g, `'\\''`)}'`; }
|
|
60
|
+
/** Async spawn that resolves with status + captured stdio (never rejects on non-zero exit). */
|
|
61
|
+
function spawnAsync(cmd, args, opts) {
|
|
62
|
+
return new Promise((resolvePromise) => {
|
|
63
|
+
const capture = opts.stdio === 'capture' || opts.stdio === undefined;
|
|
64
|
+
const stdio = capture
|
|
65
|
+
? ['ignore', 'pipe', 'pipe']
|
|
66
|
+
: opts.stdio === 'inherit' ? 'inherit' : 'ignore';
|
|
67
|
+
const child = spawn(cmd, args, { cwd: opts.cwd, env: opts.env, stdio });
|
|
68
|
+
let stdout = '';
|
|
69
|
+
let stderr = '';
|
|
70
|
+
if (capture) {
|
|
71
|
+
child.stdout?.on('data', (d) => { stdout += d; });
|
|
72
|
+
child.stderr?.on('data', (d) => { stderr += d; });
|
|
73
|
+
}
|
|
74
|
+
child.on('error', (err) => resolvePromise({ status: null, stdout, stderr: stderr || String(err) }));
|
|
75
|
+
child.on('close', (status) => resolvePromise({ status, stdout, stderr }));
|
|
76
|
+
});
|
|
77
|
+
}
|
|
52
78
|
export async function autoResearchLoop(options) {
|
|
53
79
|
const theme = ThemeManager.getTheme();
|
|
54
80
|
const json = !!options.json;
|
|
@@ -91,6 +117,33 @@ export async function autoResearchLoop(options) {
|
|
|
91
117
|
const successMetric = options.successMetric
|
|
92
118
|
? { taskId: options.successMetric.split(':')[0], threshold: Number(options.successMetric.split(':')[1]) }
|
|
93
119
|
: undefined;
|
|
120
|
+
// ---- Multi-provider arm plan (width 1 = classic single-arm loop) ------------
|
|
121
|
+
let policy;
|
|
122
|
+
try {
|
|
123
|
+
policy = parseMissingKeyPolicy(options.missingProviderKeyPolicy);
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
console.error(theme.colors.error(`Error: ${e.message}`));
|
|
127
|
+
process.exit(1);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const splitList = (s) => s?.split(',').map((x) => x.trim()).filter(Boolean);
|
|
131
|
+
const plan = planArms({
|
|
132
|
+
width: Number(options.width ?? '1'),
|
|
133
|
+
baseModel: options.model,
|
|
134
|
+
armModels: splitList(options.armModels),
|
|
135
|
+
providers: splitList(options.providers),
|
|
136
|
+
strategy: options.strategy,
|
|
137
|
+
policy,
|
|
138
|
+
});
|
|
139
|
+
const width = plan.arms.length;
|
|
140
|
+
if (width > 1 || plan.notes.length) {
|
|
141
|
+
emit({ event: 'arm_plan', width, arms: plan.arms, notes: plan.notes });
|
|
142
|
+
for (const n of plan.notes)
|
|
143
|
+
log(`arm-plan: ${n}`);
|
|
144
|
+
if (width > 1)
|
|
145
|
+
log(`arm-plan: ${plan.arms.map(a => `a${a.arm}=${a.model ?? 'default'}${a.funded ? '' : ' (unfunded)'}`).join(' ')}`);
|
|
146
|
+
}
|
|
94
147
|
// The loop branch anchors accepted candidate commits (so detached worktree commits survive).
|
|
95
148
|
try {
|
|
96
149
|
git(['branch', '-f', branch, baseRef]);
|
|
@@ -112,10 +165,108 @@ export async function autoResearchLoop(options) {
|
|
|
112
165
|
let stale = 0;
|
|
113
166
|
let stop = 'max-rounds';
|
|
114
167
|
if (!json)
|
|
115
|
-
console.log(`\n ${theme.colors.highlight('Auto-research loop')} repo=${repo} branch=${branch} base=${baseRef.slice(0, 8)} max=${maxRounds}\n`);
|
|
168
|
+
console.log(`\n ${theme.colors.highlight('Auto-research loop')} repo=${repo} branch=${branch} base=${baseRef.slice(0, 8)} width=${width} max=${maxRounds}\n`);
|
|
169
|
+
/** Run one arm: worktree → fixer → commit → experiment. Never throws. */
|
|
170
|
+
const runArm = async (assign, r, goal) => {
|
|
171
|
+
const out = { arm: assign.arm, model: assign.model, strategy: assign.strategy };
|
|
172
|
+
const candDir = addWorktree(baseRef);
|
|
173
|
+
out.candDir = candDir;
|
|
174
|
+
// 3. Mutate (fixer). Single-arm keeps today's interactive stdio; parallel arms are quiet.
|
|
175
|
+
const fixerStdio = json || width > 1 ? 'ignore' : 'inherit';
|
|
176
|
+
emit({ event: 'fix', round: r, arm: assign.arm, model: assign.model, fixer: options.fixerCmd ? 'command' : 'llm' });
|
|
177
|
+
if (options.fixerCmd) {
|
|
178
|
+
const cmd = options.fixerCmd.replace(/\{prompt\}/g, shQuote(goal));
|
|
179
|
+
const env = {
|
|
180
|
+
...process.env,
|
|
181
|
+
CORTEX_ARM_INDEX: String(assign.arm),
|
|
182
|
+
...(assign.model ? { CORTEX_ARM_MODEL: assign.model } : {}),
|
|
183
|
+
...(assign.strategy ? { CORTEX_ARM_STRATEGY: assign.strategy } : {}),
|
|
184
|
+
};
|
|
185
|
+
const f = width > 1
|
|
186
|
+
? await spawnAsync('sh', ['-c', cmd], { cwd: candDir, env, stdio: fixerStdio })
|
|
187
|
+
: { status: sh(cmd, candDir).status, stdout: '', stderr: '' };
|
|
188
|
+
if (f.status !== 0) {
|
|
189
|
+
out.skipped = 'fixer-failed';
|
|
190
|
+
out.exitCode = f.status;
|
|
191
|
+
return out;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const fixArgs = [self, 'autoresearch', 'fix', '--cwd', candDir, '--prompt', goal, '--json'];
|
|
196
|
+
if (assign.model)
|
|
197
|
+
fixArgs.push('--model', assign.model);
|
|
198
|
+
const f = await spawnAsync('node', fixArgs, { stdio: fixerStdio });
|
|
199
|
+
if (f.status !== 0) {
|
|
200
|
+
out.skipped = 'fixer-failed';
|
|
201
|
+
out.exitCode = f.status;
|
|
202
|
+
return out;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// 4. Commit candidate (no change → skip this arm).
|
|
206
|
+
git(['add', '-A'], candDir);
|
|
207
|
+
const dirty = spawnSync('git', ['-C', candDir, 'diff', '--cached', '--quiet']).status !== 0;
|
|
208
|
+
if (!dirty) {
|
|
209
|
+
out.skipped = 'no-change';
|
|
210
|
+
return out;
|
|
211
|
+
}
|
|
212
|
+
git(['commit', '-q', '-m', `autoresearch loop r${r}${width > 1 ? `a${assign.arm}` : ''}: ${goal.slice(0, 60)}`], candDir);
|
|
213
|
+
out.candRef = git(['rev-parse', '--short', 'HEAD'], candDir);
|
|
214
|
+
// 5. Experiment base vs candidate (subprocess → JSON verdict). FWER-adjusted with the
|
|
215
|
+
// real family width so N parallel arms don't inflate the false-keep rate.
|
|
216
|
+
const tag = width > 1 ? `loop-r${r}a${assign.arm}` : `loop-r${r}`;
|
|
217
|
+
const expArgs = ['autoresearch', 'experiment',
|
|
218
|
+
'--experiment-tag', tag,
|
|
219
|
+
'--base-dir', baseDir, '--candidate-dir', candDir,
|
|
220
|
+
'--base-ref', git(['rev-parse', '--short', 'HEAD'], baseDir), '--candidate-ref', out.candRef,
|
|
221
|
+
'--task-set', resolveTaskSet(options.taskSet, repo), '--no-build',
|
|
222
|
+
'--n-family', String(width),
|
|
223
|
+
'--cortex-dir', store, '--runs', options.runs ?? '3', '--json'];
|
|
224
|
+
if (options.holdoutSet)
|
|
225
|
+
expArgs.push('--holdout-set', resolveTaskSet(options.holdoutSet, repo));
|
|
226
|
+
if (options.model)
|
|
227
|
+
expArgs.push('--model', options.model);
|
|
228
|
+
if (options.temperature)
|
|
229
|
+
expArgs.push('--temperature', options.temperature);
|
|
230
|
+
if (assign.strategy)
|
|
231
|
+
expArgs.push('--strategy', assign.strategy);
|
|
232
|
+
if (options.runCmd) {
|
|
233
|
+
expArgs.push('--run-cmd', options.runCmd, '--accept-exit', options.acceptExit ?? '0');
|
|
234
|
+
if (options.buildCmd)
|
|
235
|
+
expArgs.push('--build-cmd', options.buildCmd);
|
|
236
|
+
}
|
|
237
|
+
emit({ event: 'experiment', round: r, arm: assign.arm, model: assign.model, candidateRef: out.candRef });
|
|
238
|
+
const exp = await spawnAsync('node', [self, ...expArgs], { stdio: 'capture' });
|
|
239
|
+
try {
|
|
240
|
+
out.res = JSON.parse(exp.stdout);
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// Capture WHY this arm produced no verdict (missing/invalid provider key,
|
|
244
|
+
// inference error, crash) so the driving model / fixer / PM is NOTIFIED —
|
|
245
|
+
// not just told "skipped". Surfaced in the round history + emitted event +
|
|
246
|
+
// the final result, so the driver can react (retry / reassign / report).
|
|
247
|
+
out.skipped = 'no-verdict';
|
|
248
|
+
out.reason = ((exp.stderr || '').trim().split('\n').filter(Boolean).slice(-3).join(' ')
|
|
249
|
+
|| (exp.status != null ? `exit ${exp.status}` : 'no parseable verdict')).slice(0, 500);
|
|
250
|
+
out.exitCode = exp.status ?? null;
|
|
251
|
+
return out;
|
|
252
|
+
}
|
|
253
|
+
if (!out.res?.verdict) {
|
|
254
|
+
// Parseable JSON but no verdict (e.g. {"error": ...} from a bad task-set or a
|
|
255
|
+
// missing provider key) — surface the reason instead of silently rejecting.
|
|
256
|
+
out.skipped = 'no-verdict';
|
|
257
|
+
out.reason = String(out.res?.error ?? 'experiment output had no verdict').slice(0, 500);
|
|
258
|
+
out.exitCode = exp.status ?? null;
|
|
259
|
+
out.res = undefined;
|
|
260
|
+
return out;
|
|
261
|
+
}
|
|
262
|
+
const keep = out.res.verdict?.decision === 'keep';
|
|
263
|
+
out.gateAccepted = options.holdoutSet ? !!out.res.mergeEligible : keep;
|
|
264
|
+
emit({ event: 'gate', round: r, arm: assign.arm, model: assign.model, decision: out.res.verdict?.decision, effect: out.res.verdict?.effect, mergeEligible: !!out.res.mergeEligible, accepted: out.gateAccepted });
|
|
265
|
+
return out;
|
|
266
|
+
};
|
|
116
267
|
try {
|
|
117
268
|
for (let r = 1; r <= maxRounds; r++) {
|
|
118
|
-
emit({ event: 'round_start', round: r });
|
|
269
|
+
emit({ event: 'round_start', round: r, width });
|
|
119
270
|
// 1. Goal
|
|
120
271
|
let goal = options.prompt;
|
|
121
272
|
let defId;
|
|
@@ -129,93 +280,36 @@ export async function autoResearchLoop(options) {
|
|
|
129
280
|
defId = d.id;
|
|
130
281
|
backlog.markInProgress(d.id, `loop-r${r}`);
|
|
131
282
|
}
|
|
132
|
-
// 2.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (options.fixerCmd) {
|
|
138
|
-
const cmd = options.fixerCmd.replace(/\{prompt\}/g, shQuote(goal));
|
|
139
|
-
const f = sh(cmd, candDir);
|
|
140
|
-
if (f.status !== 0) {
|
|
141
|
-
log(`r${r}: fixer-cmd failed (exit ${f.status}) → skip`);
|
|
142
|
-
emit({ event: 'round_done', round: r, merged: false, skipped: 'fixer-failed' });
|
|
143
|
-
removeWorktree(candDir);
|
|
144
|
-
stale++;
|
|
145
|
-
if (stale >= maxStale) {
|
|
146
|
-
stop = 'max-stale';
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
283
|
+
// 2-5. Fan out the arms (width 1 = the classic single-candidate round).
|
|
284
|
+
log(`r${r}: fixing${width > 1 ? ` ×${width} arms` : ''} → ${goal.slice(0, 80)}`);
|
|
285
|
+
const results = await Promise.all(plan.arms.map((a) => runArm(a, r, goal)));
|
|
286
|
+
for (const a of results.filter((x) => x.skipped)) {
|
|
287
|
+
log(`r${r}${width > 1 ? ` a${a.arm}` : ''}: ${a.skipped}${a.reason ? ` (${a.reason})` : ''} → skip`);
|
|
151
288
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
289
|
+
// 5a. Choose the winner among gate-accepted arms (highest effect; ties → lowest arm).
|
|
290
|
+
const verdictArms = results.filter((a) => a.res);
|
|
291
|
+
const acceptedArms = verdictArms
|
|
292
|
+
.filter((a) => a.gateAccepted)
|
|
293
|
+
.sort((x, y) => (y.res.verdict?.effect ?? -Infinity) - (x.res.verdict?.effect ?? -Infinity) || x.arm - y.arm);
|
|
294
|
+
// Round-level skip handling (compat: width 1 keeps today's per-reason round_done events).
|
|
295
|
+
if (!verdictArms.length) {
|
|
296
|
+
const first = results[0];
|
|
297
|
+
const failedNoVerdict = results.filter((a) => a.skipped === 'no-verdict');
|
|
298
|
+
if (failedNoVerdict.length) {
|
|
299
|
+
rounds.push({
|
|
300
|
+
round: r, candRef: failedNoVerdict[0].candRef, failed: true, accepted: false,
|
|
301
|
+
reason: failedNoVerdict[0].reason, exitCode: failedNoVerdict[0].exitCode ?? null,
|
|
302
|
+
...(width > 1 ? { arms: results.map(armHistory) } : {}),
|
|
303
|
+
});
|
|
304
|
+
emit({ event: 'round_done', round: r, merged: false, skipped: 'no-verdict', reason: failedNoVerdict[0].reason, exitCode: failedNoVerdict[0].exitCode ?? null });
|
|
164
305
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
emit({ event: 'round_done', round: r, merged: false, skipped: 'no-change' });
|
|
172
|
-
removeWorktree(candDir);
|
|
173
|
-
stale++;
|
|
174
|
-
if (stale >= maxStale) {
|
|
175
|
-
stop = 'max-stale';
|
|
176
|
-
break;
|
|
306
|
+
else {
|
|
307
|
+
emit({ event: 'round_done', round: r, merged: false, skipped: first.skipped });
|
|
308
|
+
}
|
|
309
|
+
for (const a of results) {
|
|
310
|
+
if (a.candDir)
|
|
311
|
+
removeWorktree(a.candDir);
|
|
177
312
|
}
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
|
-
git(['commit', '-q', '-m', `autoresearch loop r${r}: ${goal.slice(0, 60)}`], candDir);
|
|
181
|
-
const candRef = git(['rev-parse', '--short', 'HEAD'], candDir);
|
|
182
|
-
// 5. Experiment base vs candidate (subprocess → JSON verdict).
|
|
183
|
-
const expArgs = ['autoresearch', 'experiment',
|
|
184
|
-
'--experiment-tag', `loop-r${r}`,
|
|
185
|
-
'--base-dir', baseDir, '--candidate-dir', candDir,
|
|
186
|
-
'--base-ref', git(['rev-parse', '--short', 'HEAD'], baseDir), '--candidate-ref', candRef,
|
|
187
|
-
'--task-set', resolveTaskSet(options.taskSet, repo), '--no-build',
|
|
188
|
-
'--cortex-dir', store, '--runs', options.runs ?? '3', '--json'];
|
|
189
|
-
if (options.holdoutSet)
|
|
190
|
-
expArgs.push('--holdout-set', resolveTaskSet(options.holdoutSet, repo));
|
|
191
|
-
if (options.model)
|
|
192
|
-
expArgs.push('--model', options.model);
|
|
193
|
-
if (options.temperature)
|
|
194
|
-
expArgs.push('--temperature', options.temperature);
|
|
195
|
-
if (options.strategy)
|
|
196
|
-
expArgs.push('--strategy', options.strategy);
|
|
197
|
-
if (options.runCmd) {
|
|
198
|
-
expArgs.push('--run-cmd', options.runCmd, '--accept-exit', options.acceptExit ?? '0');
|
|
199
|
-
if (options.buildCmd)
|
|
200
|
-
expArgs.push('--build-cmd', options.buildCmd);
|
|
201
|
-
}
|
|
202
|
-
emit({ event: 'experiment', round: r, candidateRef: candRef });
|
|
203
|
-
const exp = spawnSync('node', [self, ...expArgs], { encoding: 'utf8' });
|
|
204
|
-
let res;
|
|
205
|
-
try {
|
|
206
|
-
res = JSON.parse(exp.stdout);
|
|
207
|
-
}
|
|
208
|
-
catch {
|
|
209
|
-
// Capture WHY this arm produced no verdict (missing/invalid provider key,
|
|
210
|
-
// inference error, crash) so the driving model / fixer / PM is NOTIFIED —
|
|
211
|
-
// not just told "skipped". Surfaced in the round history + emitted event +
|
|
212
|
-
// the final result, so the driver can react (retry / reassign / report).
|
|
213
|
-
const reason = ((exp.stderr || '').trim().split('\n').filter(Boolean).slice(-3).join(' ')
|
|
214
|
-
|| (exp.status != null ? `exit ${exp.status}` : 'no parseable verdict')).slice(0, 500);
|
|
215
|
-
log(`r${r}: experiment produced no verdict → skip (${reason})`);
|
|
216
|
-
rounds.push({ round: r, candRef, failed: true, accepted: false, reason, exitCode: exp.status ?? null });
|
|
217
|
-
emit({ event: 'round_done', round: r, merged: false, skipped: 'no-verdict', reason, exitCode: exp.status ?? null });
|
|
218
|
-
removeWorktree(candDir);
|
|
219
313
|
stale++;
|
|
220
314
|
if (stale >= maxStale) {
|
|
221
315
|
stop = 'max-stale';
|
|
@@ -223,72 +317,92 @@ export async function autoResearchLoop(options) {
|
|
|
223
317
|
}
|
|
224
318
|
continue;
|
|
225
319
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
320
|
+
// 5b. Optional qualitative judge gate (opt-in, default off). Runs ONLY on
|
|
321
|
+
// candidates the STATISTICAL gate already accepted — the judge can SUBTRACT
|
|
322
|
+
// acceptance, never resurrect a rejected candidate. With multiple accepted
|
|
323
|
+
// arms the judge reviews them in effect order until one is APPROVED.
|
|
324
|
+
// Fail-closed: a judge that errors or returns no parseable verdict blocks
|
|
325
|
+
// that candidate (approve defaults to false).
|
|
326
|
+
let winner;
|
|
327
|
+
if (options.requireJudge) {
|
|
328
|
+
for (const cand of acceptedArms) {
|
|
329
|
+
const baseShort = git(['rev-parse', '--short', 'HEAD'], baseDir);
|
|
330
|
+
const jArgs = ['autoresearch', 'judge',
|
|
331
|
+
'--cwd', cand.candDir, '--base-ref', baseShort, '--candidate-ref', cand.candRef, '--json'];
|
|
332
|
+
if (options.judgeRubricFile)
|
|
333
|
+
jArgs.push('--rubric-file', options.judgeRubricFile);
|
|
334
|
+
else
|
|
335
|
+
jArgs.push('--rubric', options.judgeRubric ?? DEFAULT_JUDGE_RUBRIC);
|
|
336
|
+
const jModel = options.judgeModel ?? options.model;
|
|
337
|
+
if (jModel)
|
|
338
|
+
jArgs.push('--model', jModel);
|
|
339
|
+
if (goal)
|
|
340
|
+
jArgs.push('--mission', goal.slice(0, 500));
|
|
341
|
+
emit({ event: 'judge_start', round: r, arm: cand.arm, candidateRef: cand.candRef });
|
|
342
|
+
const j = await spawnAsync('node', [self, ...jArgs], { stdio: 'capture' });
|
|
343
|
+
let jv = null;
|
|
344
|
+
try {
|
|
345
|
+
jv = JSON.parse(j.stdout);
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
jv = null;
|
|
349
|
+
}
|
|
350
|
+
const approve = !!jv?.approve;
|
|
351
|
+
emit({ event: 'judge', round: r, arm: cand.arm, approve, score: jv?.score, confidence: jv?.confidence });
|
|
352
|
+
log(`r${r}${width > 1 ? ` a${cand.arm}` : ''}: judge ${approve ? theme.colors.success('APPROVE') : theme.colors.error('reject')}${jv?.score != null ? ` (score ${jv.score})` : ''}`);
|
|
353
|
+
if (approve) {
|
|
354
|
+
winner = cand;
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
256
357
|
}
|
|
257
|
-
const approve = !!jv?.approve;
|
|
258
|
-
if (!approve)
|
|
259
|
-
accept = false;
|
|
260
|
-
emit({ event: 'judge', round: r, approve, score: jv?.score, confidence: jv?.confidence });
|
|
261
|
-
log(`r${r}: judge ${approve ? theme.colors.success('APPROVE') : theme.colors.error('reject')}${jv?.score != null ? ` (score ${jv.score})` : ''}`);
|
|
262
358
|
}
|
|
359
|
+
else {
|
|
360
|
+
winner = acceptedArms[0];
|
|
361
|
+
}
|
|
362
|
+
const accept = !!winner;
|
|
263
363
|
const candScore = (() => {
|
|
264
|
-
const
|
|
364
|
+
const src = winner ?? acceptedArms[0] ?? verdictArms[0];
|
|
365
|
+
const s = src?.res?.benchSummaries?.candidate?.holdout ?? src?.res?.benchSummaries?.candidate?.train;
|
|
265
366
|
const t = s?.tasks?.find((x) => x.taskId === successMetric?.taskId);
|
|
266
367
|
return t?.meanScore;
|
|
267
368
|
})();
|
|
268
|
-
|
|
269
|
-
|
|
369
|
+
const lead = winner ?? acceptedArms[0] ?? verdictArms[0];
|
|
370
|
+
rounds.push({
|
|
371
|
+
round: r, candRef: lead.candRef, decision: lead.res?.verdict?.decision, effect: lead.res?.verdict?.effect,
|
|
372
|
+
mergeEligible: lead.res?.mergeEligible, accepted: accept, candScore,
|
|
373
|
+
...(width > 1 ? { winnerArm: winner?.arm, arms: results.map(armHistory) } : {}),
|
|
374
|
+
});
|
|
375
|
+
log(`r${r}: ${lead.res?.verdict?.decision?.toUpperCase()} effect ${lead.res?.verdict?.effect} ${accept ? theme.colors.success('ACCEPT') : theme.colors.error('reject')}${options.holdoutSet ? '' : ' (train-only, UNVERIFIED — pass --holdout-set)'}${width > 1 && winner ? ` (arm ${winner.arm}${winner.model ? ` · ${winner.model}` : ''})` : ''}`);
|
|
270
376
|
// 6. Advance or discard.
|
|
271
|
-
if (accept) {
|
|
272
|
-
git(['branch', '-f', branch, candRef]); // anchor the accepted commit
|
|
377
|
+
if (accept && winner) {
|
|
378
|
+
git(['branch', '-f', branch, winner.candRef]); // anchor the accepted commit
|
|
273
379
|
removeWorktree(baseDir); // old base
|
|
274
|
-
|
|
275
|
-
|
|
380
|
+
for (const a of results) {
|
|
381
|
+
if (a !== winner && a.candDir && !options.keepWorktrees)
|
|
382
|
+
removeWorktree(a.candDir);
|
|
383
|
+
}
|
|
384
|
+
baseDir = winner.candDir;
|
|
385
|
+
baseRef = winner.candRef;
|
|
276
386
|
stale = 0;
|
|
277
387
|
if (defId) {
|
|
278
388
|
if (options.holdoutSet)
|
|
279
389
|
backlog.markVerified(defId, `loop-r${r}`);
|
|
280
390
|
else
|
|
281
|
-
backlog.markFixed(defId, candRef);
|
|
391
|
+
backlog.markFixed(defId, winner.candRef);
|
|
282
392
|
}
|
|
283
|
-
emit({ event: 'round_done', round: r, merged: true, ref: candRef });
|
|
393
|
+
emit({ event: 'round_done', round: r, merged: true, ref: winner.candRef, ...(width > 1 ? { arm: winner.arm, model: winner.model } : {}) });
|
|
284
394
|
if (successMetric && candScore != null && candScore >= successMetric.threshold) {
|
|
285
395
|
stop = 'success';
|
|
286
396
|
break;
|
|
287
397
|
}
|
|
288
398
|
}
|
|
289
399
|
else {
|
|
290
|
-
if (!options.keepWorktrees)
|
|
291
|
-
|
|
400
|
+
if (!options.keepWorktrees) {
|
|
401
|
+
for (const a of results) {
|
|
402
|
+
if (a.candDir)
|
|
403
|
+
removeWorktree(a.candDir);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
292
406
|
emit({ event: 'round_done', round: r, merged: false });
|
|
293
407
|
stale++;
|
|
294
408
|
if (stale >= maxStale) {
|
|
@@ -309,7 +423,7 @@ export async function autoResearchLoop(options) {
|
|
|
309
423
|
}
|
|
310
424
|
emit({ event: 'stop', reason: stop });
|
|
311
425
|
const failedArms = rounds.filter(r => r.failed).map(r => ({ round: r.round, reason: r.reason, exitCode: r.exitCode }));
|
|
312
|
-
const out = { repo, branch, finalRef: baseRef, rounds: rounds.length, merges: rounds.filter(r => r.accepted).length, failures: failedArms.length, failedArms, stop, history: rounds };
|
|
426
|
+
const out = { repo, branch, finalRef: baseRef, rounds: rounds.length, merges: rounds.filter(r => r.accepted).length, failures: failedArms.length, failedArms, stop, ...(width > 1 ? { width } : {}), history: rounds };
|
|
313
427
|
if (json) {
|
|
314
428
|
console.log(JSON.stringify(out, null, 2));
|
|
315
429
|
return;
|
|
@@ -319,4 +433,16 @@ export async function autoResearchLoop(options) {
|
|
|
319
433
|
console.log(theme.colors.muted(` Result on branch ${branch} → ${baseRef.slice(0, 8)}. Merge it when satisfied: git -C ${repo} merge ${branch}`));
|
|
320
434
|
console.log();
|
|
321
435
|
}
|
|
436
|
+
/** Compact per-arm history entry for the round record / final JSON. */
|
|
437
|
+
function armHistory(a) {
|
|
438
|
+
return {
|
|
439
|
+
arm: a.arm,
|
|
440
|
+
...(a.model ? { model: a.model } : {}),
|
|
441
|
+
...(a.candRef ? { candRef: a.candRef } : {}),
|
|
442
|
+
...(a.skipped ? { skipped: a.skipped } : {}),
|
|
443
|
+
...(a.reason ? { reason: a.reason } : {}),
|
|
444
|
+
...(a.res ? { decision: a.res.verdict?.decision, effect: a.res.verdict?.effect, mergeEligible: a.res.mergeEligible } : {}),
|
|
445
|
+
...(a.gateAccepted != null ? { gateAccepted: a.gateAccepted } : {}),
|
|
446
|
+
};
|
|
447
|
+
}
|
|
322
448
|
//# sourceMappingURL=loop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/commands/autoresearch/loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../../src/commands/autoresearch/loop.ts"],"names":[],"mappings":"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"}
|