@phamvuhoang/otto-core 0.10.0 → 0.12.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.
Files changed (60) hide show
  1. package/dist/bench.d.ts +104 -0
  2. package/dist/bench.d.ts.map +1 -0
  3. package/dist/bench.js +175 -0
  4. package/dist/bench.js.map +1 -0
  5. package/dist/cli-help.d.ts +2 -0
  6. package/dist/cli-help.d.ts.map +1 -1
  7. package/dist/cli-help.js +6 -0
  8. package/dist/cli-help.js.map +1 -1
  9. package/dist/eval-run.d.ts +61 -0
  10. package/dist/eval-run.d.ts.map +1 -0
  11. package/dist/eval-run.js +162 -0
  12. package/dist/eval-run.js.map +1 -0
  13. package/dist/eval.d.ts +49 -0
  14. package/dist/eval.d.ts.map +1 -0
  15. package/dist/eval.js +111 -0
  16. package/dist/eval.js.map +1 -0
  17. package/dist/git.d.ts +10 -0
  18. package/dist/git.d.ts.map +1 -1
  19. package/dist/git.js +27 -0
  20. package/dist/git.js.map +1 -1
  21. package/dist/index.d.ts +8 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +8 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/inspect.d.ts +24 -0
  26. package/dist/inspect.d.ts.map +1 -0
  27. package/dist/inspect.js +97 -0
  28. package/dist/inspect.js.map +1 -0
  29. package/dist/loop.d.ts +9 -0
  30. package/dist/loop.d.ts.map +1 -1
  31. package/dist/loop.js +192 -4
  32. package/dist/loop.js.map +1 -1
  33. package/dist/panel.d.ts +7 -0
  34. package/dist/panel.d.ts.map +1 -1
  35. package/dist/panel.js +8 -1
  36. package/dist/panel.js.map +1 -1
  37. package/dist/policy.d.ts +38 -0
  38. package/dist/policy.d.ts.map +1 -0
  39. package/dist/policy.js +32 -0
  40. package/dist/policy.js.map +1 -0
  41. package/dist/progress.d.ts +41 -0
  42. package/dist/progress.d.ts.map +1 -0
  43. package/dist/progress.js +37 -0
  44. package/dist/progress.js.map +1 -0
  45. package/dist/render.d.ts +1 -0
  46. package/dist/render.d.ts.map +1 -1
  47. package/dist/render.js +1 -1
  48. package/dist/render.js.map +1 -1
  49. package/dist/risk.d.ts +50 -0
  50. package/dist/risk.d.ts.map +1 -0
  51. package/dist/risk.js +113 -0
  52. package/dist/risk.js.map +1 -0
  53. package/dist/run-bin.d.ts.map +1 -1
  54. package/dist/run-bin.js +23 -10
  55. package/dist/run-bin.js.map +1 -1
  56. package/dist/run-report.d.ts +105 -0
  57. package/dist/run-report.d.ts.map +1 -0
  58. package/dist/run-report.js +118 -0
  59. package/dist/run-report.js.map +1 -0
  60. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA4B9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAyBrB,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAYD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B3D;AAYD,MAAM,MAAM,WAAW,GAAG;IAGxB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mHAAmH;IACnH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;gCAE4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,iHAAiH;IACjH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;wEACoE;IACpE,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;uFACmF;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAqFF,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA6brE"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AA6BrB,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAYD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0B3D;AAYD,MAAM,MAAM,WAAW,GAAG;IAGxB,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mHAAmH;IACnH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;0FACsF;IACtF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;4EACwE;IACxE,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACzD;;gCAE4B;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;wCACoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,iHAAiH;IACjH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;wEACoE;IACpE,eAAe,CAAC,EAAE,cAAc,CAAC;IACjC,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;uFACmF;IACnF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAqFF,wBAAsB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAsoBrE"}
package/dist/loop.js CHANGED
@@ -1,14 +1,19 @@
1
- import { appendFileSync, readFileSync } from "node:fs";
1
+ import { appendFileSync, existsSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { AGENT_DISPLAY_NAMES } from "./agent-runtime.js";
4
4
  import { readCoreVersion } from "./cli-help.js";
5
5
  import { acquire } from "./keepalive.js";
6
6
  import { notifyComplete, notifyError } from "./notify.js";
7
+ import { changedFilesSince, headSha } from "./git.js";
7
8
  import { sleep, isThrottle, nextCooldownFactor } from "./pacing.js";
9
+ import { decide } from "./policy.js";
10
+ import { deriveProgress } from "./progress.js";
11
+ import { routeReview } from "./risk.js";
8
12
  import { computeWaitMs } from "./rate-limit.js";
9
13
  import { DEFAULT_MAX_RETRIES } from "./retry.js";
10
14
  import { cleanScratch } from "./scratch.js";
11
15
  import { getAgentRuntime, stageLogPath } from "./runner.js";
16
+ import { allocateRunId, removeStageRecords, writeManifest, writeStageRecord, } from "./run-report.js";
12
17
  import { executeStage } from "./stage-exec.js";
13
18
  import { clearState, matchesResume, readState, writeState, } from "./state.js";
14
19
  import { USE_COLOR, dim, bold, red, greenOut, boldOut, dimOut, SYM, SYM_OUT, } from "./stream-render.js";
@@ -31,6 +36,8 @@ const NEXT_ACTION = {
31
36
  "halted (rate limit)": "re-run after the limit resets to resume",
32
37
  aborted: "re-run to resume from the saved iteration",
33
38
  "stopped (error)": "inspect the error above, then re-run",
39
+ "stopped (low progress)": "the run stopped making changes — refine the plan/prompt, then re-run",
40
+ "paused (needs human)": "a repeated failure needs a decision — inspect the logs, then re-run",
34
41
  };
35
42
  export function nextActionFor(reason) {
36
43
  return NEXT_ACTION[reason] ?? "re-run to resume";
@@ -158,7 +165,7 @@ function installKeyboardControls(opts) {
158
165
  };
159
166
  }
160
167
  export async function runLoop(opts) {
161
- const { stages, inputs, iterations, workspaceDir, packageDir, noKeepAlive = false, maxRetries = DEFAULT_MAX_RETRIES, notify = false, bin = "otto", cliVersion = "?", budgetUsd, cooldownMs = 0, tokenMode = "off", reviewLenses, signal: externalSignal, mode = "afk", maxWaitMs = DEFAULT_MAX_WAIT_MS, fresh = false, agentId = "claude", agentDisplayName = "Claude Code", fallbackAgentId, fallbackAgentDisplayName, autoSwitchOnLimit = false, } = opts;
168
+ const { stages, inputs, iterations, workspaceDir, packageDir, noKeepAlive = false, maxRetries = DEFAULT_MAX_RETRIES, notify = false, bin = "otto", cliVersion = "?", budgetUsd, cooldownMs = 0, tokenMode = "off", reviewLenses, adaptiveRouter = false, resolveChangedPaths, signal: externalSignal, mode = "afk", branchStrategy, maxWaitMs = DEFAULT_MAX_WAIT_MS, fresh = false, agentId = "claude", agentDisplayName = "Claude Code", fallbackAgentId, fallbackAgentDisplayName, autoSwitchOnLimit = false, } = opts;
162
169
  // The runtime in effect right now. Starts at the resolved primary and is
163
170
  // reassigned in place when auto-switch fires on a limit, so every downstream
164
171
  // seam (stage banner, executeStage/panel agentId, log path, state, summary)
@@ -190,6 +197,53 @@ export async function runLoop(opts) {
190
197
  }
191
198
  const versionLine = `${bin} ${cliVersion} (core ${readCoreVersion()}) · runtime: ${activeAgentDisplayName}`;
192
199
  process.stderr.write(`${USE_COLOR ? `${dim("━━━")} ${bold(versionLine)} ${dim("━━━")}` : `== ${versionLine} ==`}\n`);
200
+ // Allocate the run id and write an initial evidence-bundle manifest at loop
201
+ // start, so a run that crashes before any terminal path still leaves a record
202
+ // of what it was about to do. Later tasks finalize this manifest (cost/token
203
+ // totals, exit reason, artifacts) and write per-stage records alongside.
204
+ const runId = allocateRunId();
205
+ const manifestStartedAt = nowIso();
206
+ writeManifest(workspaceDir, {
207
+ runId,
208
+ bin,
209
+ mode,
210
+ inputs,
211
+ runtime: { id: activeAgentId, displayName: activeAgentDisplayName },
212
+ branchStrategy,
213
+ iterations: total,
214
+ costUsd: 0,
215
+ tokenUsage: emptyTokenUsage(),
216
+ artifacts: [],
217
+ startedAt: manifestStartedAt,
218
+ });
219
+ // Per-stage evidence records: `stageSeq` is a monotonic counter that orders
220
+ // them under the bundle's `stages/` dir. Recording is best-effort — a bundle
221
+ // write must never break the run. The panel records its own substages via the
222
+ // same closure (threaded as `recordStage`), so lens/verify/synth each get a
223
+ // record named for the substage rather than one umbrella "reviewer" record.
224
+ // Basenames of the records written so far, in seq order — the array length is
225
+ // the next seq, so records stay contiguous, and a failed panel attempt's
226
+ // records can be rolled back by truncating + deleting (see the retry catch).
227
+ const recordedStageFiles = [];
228
+ const recordStage = (recIteration, stageName, sr, startedAt) => {
229
+ try {
230
+ const name = writeStageRecord(workspaceDir, runId, recordedStageFiles.length, {
231
+ iteration: recIteration,
232
+ stage: stageName,
233
+ runtimeId: sr.runtimeId ?? activeAgentId,
234
+ costUsd: sr.costUsd,
235
+ usage: sr.usage,
236
+ isError: sr.isError,
237
+ apiErrorStatus: sr.apiErrorStatus,
238
+ startedAt,
239
+ finishedAt: nowIso(),
240
+ });
241
+ recordedStageFiles.push(name);
242
+ }
243
+ catch {
244
+ // Best-effort: never fail a run because a stage record could not be written.
245
+ }
246
+ };
193
247
  // When an external signal is injected (daemon/watch mode), the caller owns
194
248
  // wake-lock + process signal handlers. Skip both here.
195
249
  const releaser = externalSignal || noKeepAlive
@@ -263,10 +317,63 @@ export async function runLoop(opts) {
263
317
  cooldownFactor,
264
318
  };
265
319
  };
320
+ // Artifact links a finalized manifest carries. The raw NDJSON logs dir is
321
+ // always present (success metric: raw `.otto-tmp/logs` debugging stays
322
+ // available); the deferred-followups trail is linked only when it exists.
323
+ // Paths are workspace-relative so the bundle is portable.
324
+ const collectArtifacts = () => {
325
+ const list = [
326
+ {
327
+ kind: "ndjson-logs",
328
+ path: join(".otto-tmp", "logs"),
329
+ description: "raw per-stage NDJSON run logs",
330
+ },
331
+ ];
332
+ if (existsSync(join(workspaceDir, ".otto", "review-followups.md"))) {
333
+ list.push({
334
+ kind: "review-followups",
335
+ path: join(".otto", "review-followups.md"),
336
+ description: "deferred reviewer follow-ups",
337
+ });
338
+ }
339
+ return list;
340
+ };
341
+ // Finalize the run manifest on a terminal exit: stamp the completed-iteration
342
+ // count, cumulative cost/token totals, the exit reason + its next-action hint,
343
+ // the active runtime, artifact links, and finishedAt. Best-effort — a bundle
344
+ // write must NEVER break a run (mirrors the initial write + recordStage).
345
+ // Called once per terminal path through `summarize`, so every exit reason is
346
+ // covered without threading the manifest through each return site.
347
+ const finalizeManifest = (reason, completed) => {
348
+ try {
349
+ writeManifest(workspaceDir, {
350
+ runId,
351
+ bin,
352
+ mode,
353
+ inputs,
354
+ runtime: { id: activeAgentId, displayName: activeAgentDisplayName },
355
+ branchStrategy,
356
+ iterations: total,
357
+ completedIterations: completed,
358
+ costUsd: runCostUsd,
359
+ tokenUsage: runTokenUsage,
360
+ exitReason: reason,
361
+ nextAction: nextActionFor(reason),
362
+ artifacts: collectArtifacts(),
363
+ startedAt: manifestStartedAt,
364
+ finishedAt: nowIso(),
365
+ });
366
+ }
367
+ catch {
368
+ // Best-effort: never fail a run because the manifest could not be finalized.
369
+ }
370
+ };
266
371
  // One consistent end-of-run summary across every terminal path: the exit
267
372
  // reason, iterations run, and cumulative cost, then a next-action hint so a
268
373
  // maintainer reading the final line knows what to do next. Written to stdout
269
374
  // (like the other completion lines) so it survives `> out.txt` redirection.
375
+ // Also finalizes the run manifest here so the evidence bundle records the same
376
+ // exit reason on every terminal path the loop funnels through summarize.
270
377
  const summarize = (reason, iterations) => {
271
378
  const iters = `${iterations} iteration${iterations === 1 ? "" : "s"}`;
272
379
  const tokens = tokenMode === "off" ? "" : ` · tokens ${formatTokenUsage(runTokenUsage)}`;
@@ -281,8 +388,15 @@ export async function runLoop(opts) {
281
388
  line += `${dimOut(` ⚑ ${deferred} deferred follow-up${deferred === 1 ? "" : "s"} in .otto/review-followups.md`)}\n`;
282
389
  }
283
390
  process.stdout.write(line);
391
+ finalizeManifest(reason, iterations);
284
392
  };
285
393
  let sawFailure = false;
394
+ // Adaptive compute router (issue #41): per-iteration progress state. The loop
395
+ // observes the diff a change produced and the cumulative cost; failing-check
396
+ // and failure-signature observability is future work, so the active policy
397
+ // outcome today is the diff-stall early stop (a run that stops changing files).
398
+ let prevObservation = null;
399
+ let stalledIterations = 0;
286
400
  if (resuming) {
287
401
  resumeNote = `Resumed run (iteration ${startIteration} of ${total}). Prior work may already be committed or partially applied. Reconcile against git history and the working tree before acting; do not redo completed tasks.`;
288
402
  process.stdout.write(`${greenOut(SYM_OUT.bullet)} ${boldOut("resuming")}${dimOut(` from iteration ${startIteration}/${total}`)}\n`);
@@ -309,6 +423,9 @@ export async function runLoop(opts) {
309
423
  try {
310
424
  for (let i = startIteration; i <= total; i++) {
311
425
  persist(i, "running");
426
+ // Adaptive router: snapshot HEAD at iteration start so the reviewer stage
427
+ // can classify the change this iteration produced before routing its depth.
428
+ const iterStartSha = adaptiveRouter ? headSha(workspaceDir) : null;
312
429
  for (let s = 0; s < stages.length; s++) {
313
430
  const stage = stages[s];
314
431
  // Budget gate: check before running each stage.
@@ -320,13 +437,30 @@ export async function runLoop(opts) {
320
437
  ? `${dim("━━━")} ${bold(`iteration ${i}/${total}`)} ${dim("·")} ${bold(stage.name)} ${dim(`(stage ${s + 1}/${stages.length})`)} ${dim("·")} ${bold(activeAgentDisplayName)} ${dim("━━━")}`
321
438
  : `== iteration ${i}/${total} · ${stage.name} (stage ${s + 1}/${stages.length}) · ${activeAgentDisplayName} ==`;
322
439
  process.stderr.write(`\n${banner}\n`);
323
- const usePanel = reviewLenses && reviewLenses.length > 0 && stage.name === "reviewer";
440
+ // Adaptive router: route this iteration's review depth by change risk,
441
+ // selecting a per-iteration subset of the lens pool. Off → static pool.
442
+ let effectiveLenses = reviewLenses;
443
+ if (adaptiveRouter &&
444
+ stage.name === "reviewer" &&
445
+ reviewLenses &&
446
+ reviewLenses.length > 0) {
447
+ const changed = resolveChangedPaths
448
+ ? resolveChangedPaths(workspaceDir)
449
+ : changedFilesSince(workspaceDir, iterStartSha);
450
+ const route = routeReview(changed, reviewLenses);
451
+ effectiveLenses = route.lenses;
452
+ const how = route.lenses.length
453
+ ? `${route.depth} (${route.lenses.join(", ")})`
454
+ : "single reviewer";
455
+ process.stderr.write(`${dim(`↳ adaptive router: ${route.assessment.class} → ${how}`)}\n`);
456
+ }
457
+ const usePanel = effectiveLenses && effectiveLenses.length > 0 && stage.name === "reviewer";
324
458
  let sr;
325
459
  const runOnce = async () => {
326
460
  if (usePanel) {
327
461
  const { runPanel } = await import("./panel.js");
328
462
  return runPanel({
329
- lenses: reviewLenses,
463
+ lenses: effectiveLenses,
330
464
  workspaceDir,
331
465
  packageDir,
332
466
  iteration: i,
@@ -337,6 +471,7 @@ export async function runLoop(opts) {
337
471
  agentId: activeAgentId,
338
472
  resumeNote,
339
473
  onStage: accountStage,
474
+ recordStage: (stageName, subSr, startedAt) => recordStage(i, stageName, subSr, startedAt),
340
475
  });
341
476
  }
342
477
  const r = await executeStage({
@@ -353,6 +488,7 @@ export async function runLoop(opts) {
353
488
  accountStage(r);
354
489
  return r;
355
490
  };
491
+ const stageStartedAt = nowIso();
356
492
  try {
357
493
  for (;;) {
358
494
  const accountingSnapshot = {
@@ -360,6 +496,12 @@ export async function runLoop(opts) {
360
496
  tokenUsage: runTokenUsage,
361
497
  cooldownFactor,
362
498
  };
499
+ // Count of stage records committed before this attempt. A panel
500
+ // attempt records each substage inline as it completes, so a later
501
+ // substage's rate limit (which retries the whole panel) must roll
502
+ // these back too — else stageSeq is monotonic and the retry
503
+ // re-records each lens, duplicating records.
504
+ const recordSnapshot = recordedStageFiles.length;
363
505
  try {
364
506
  sr = await runOnce();
365
507
  break;
@@ -379,6 +521,13 @@ export async function runLoop(opts) {
379
521
  runCostUsd = accountingSnapshot.costUsd;
380
522
  runTokenUsage = accountingSnapshot.tokenUsage;
381
523
  cooldownFactor = accountingSnapshot.cooldownFactor;
524
+ // Mirror the accounting rollback for evidence records: drop the
525
+ // failed attempt's inline panel substage records so the retry
526
+ // re-records into the same seqs instead of duplicating them.
527
+ const discardedRecords = recordedStageFiles.splice(recordSnapshot);
528
+ if (discardedRecords.length > 0) {
529
+ removeStageRecords(workspaceDir, runId, discardedRecords);
530
+ }
382
531
  const resetsAt = err.resetsAt;
383
532
  // Auto-switch on limit: when a fallback runtime is configured and
384
533
  // we are not already on it, switch at this stage boundary and
@@ -454,6 +603,11 @@ export async function runLoop(opts) {
454
603
  }
455
604
  // Cost/pacing accounting is handled by accountStage — called once per
456
605
  // non-panel stage above, and once per sub-agent inside runPanel.
606
+ // Record this stage's evidence. A panel stage already recorded its own
607
+ // substages (lens/verify/synth) via the threaded recordStage, so skip
608
+ // the umbrella record to avoid double-counting the synth result.
609
+ if (!usePanel)
610
+ recordStage(i, stage.name, sr, stageStartedAt);
457
611
  if (s === 0) {
458
612
  if (sr.result.includes(SENTINEL)) {
459
613
  sentinelHit = true;
@@ -468,6 +622,40 @@ export async function runLoop(opts) {
468
622
  }
469
623
  completedIterations = i;
470
624
  await keyboardControls.pauseIfRequested();
625
+ // Adaptive iteration control: feed this iteration's progress signals into
626
+ // the policy and act on early-stop / escalate / confident-finish. Off by
627
+ // default; the static fixed-N behavior is unchanged when the flag is absent.
628
+ if (adaptiveRouter && i < total) {
629
+ const iterChanged = resolveChangedPaths
630
+ ? resolveChangedPaths(workspaceDir)
631
+ : changedFilesSince(workspaceDir, iterStartSha);
632
+ const cur = {
633
+ diffSignature: [...iterChanged].sort().join("|"),
634
+ failingChecks: null,
635
+ failureSignature: null,
636
+ findingSignatures: [],
637
+ cumulativeCostUsd: runCostUsd,
638
+ };
639
+ stalledIterations = iterChanged.length === 0 ? stalledIterations + 1 : 0;
640
+ const signals = deriveProgress(cur, prevObservation);
641
+ prevObservation = cur;
642
+ const decision = decide(signals, {
643
+ stalledIterations,
644
+ repeatedFailureStreak: 0,
645
+ failingChecks: null,
646
+ });
647
+ if (decision.action !== "continue") {
648
+ process.stderr.write(`${dim(`↳ adaptive router: ${decision.action} — ${decision.reason}`)}\n`);
649
+ const reason = decision.action === "stop-low-progress"
650
+ ? "stopped (low progress)"
651
+ : decision.action === "escalate-pause"
652
+ ? "paused (needs human)"
653
+ : "complete";
654
+ summarize(reason, i);
655
+ clearState(workspaceDir);
656
+ return outcome();
657
+ }
658
+ }
471
659
  // Cooldown between iterations.
472
660
  if (cooldownMs > 0 && i < total) {
473
661
  const wait = cooldownMs * cooldownFactor;
package/dist/loop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"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"}
package/dist/panel.d.ts CHANGED
@@ -25,6 +25,13 @@ export type RunPanelOptions = {
25
25
  * exhausted (stop the panel) and the current adaptive cooldown factor.
26
26
  */
27
27
  onStage?: (sr: StageResult) => PanelStageControl;
28
+ /**
29
+ * Called after every panel sub-agent (each lens + verify + synth) so the loop
30
+ * can write one evidence record per substage. The lens substages are named by
31
+ * their lens (free text from OTTO_REVIEW_LENSES); verify/synth use their stage
32
+ * names. `startedAt` is the ISO timestamp captured before the substage ran.
33
+ */
34
+ recordStage?: (stageName: string, sr: StageResult, startedAt: string) => void;
28
35
  };
29
36
  /** Harness-orchestrated reviewer panel: read-only lens reviews → one synth fix(review) commit. */
30
37
  export declare function runPanel(opts: RunPanelOptions): Promise<StageResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkE7C,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,iBAAiB,CAAC;CAClD,CAAC;AAkBF,kGAAkG;AAClG,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAgK1E"}
1
+ {"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAkE7C,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,iBAAiB,CAAC;IACjD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/E,CAAC;AAkBF,kGAAkG;AAClG,wBAAsB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAwK1E"}
package/dist/panel.js CHANGED
@@ -75,7 +75,8 @@ function lensMutatedRepo(workspaceDir, baseHead) {
75
75
  }
76
76
  /** Harness-orchestrated reviewer panel: read-only lens reviews → one synth fix(review) commit. */
77
77
  export async function runPanel(opts) {
78
- const { lenses, workspaceDir, packageDir, iteration, maxRetries, cooldownMs, tokenMode = "off", signal, agentId, resumeNote = "", onStage, } = opts;
78
+ const { lenses, workspaceDir, packageDir, iteration, maxRetries, cooldownMs, tokenMode = "off", signal, agentId, resumeNote = "", onStage, recordStage, } = opts;
79
+ const isoNow = () => new Date().toISOString();
79
80
  const panelRel = `panel-${process.pid}-${iteration}-${Date.now()}`;
80
81
  const panelHostDir = join(workspaceDir, ".otto-tmp", panelRel);
81
82
  mkdirSync(panelHostDir, { recursive: true });
@@ -107,6 +108,7 @@ export async function runPanel(opts) {
107
108
  for (let i = 0; i < lenses.length; i++) {
108
109
  const lens = lenses[i];
109
110
  phaseLine(`${lens} lens (${i + 1}/${lenses.length})`);
111
+ const lensStartedAt = isoNow();
110
112
  const sr = await executeStage({
111
113
  stage: LENS_STAGE,
112
114
  vars: { LENS: lens, RESUME: resumeNote },
@@ -122,6 +124,7 @@ export async function runPanel(opts) {
122
124
  restoreIfMutated(`lens ${lens}`);
123
125
  writeFileSync(join(panelHostDir, `findings-${lens}.md`), sr.result, "utf8");
124
126
  outcomeLine(findingsNote(sr.result));
127
+ recordStage?.(lens, sr, lensStartedAt);
125
128
  const ctrl = onStage?.(sr) ?? { stop: false, cooldownFactor: 1 };
126
129
  if (ctrl.stop)
127
130
  return sr; // budget exhausted — skip remaining lenses + verify + synth
@@ -131,6 +134,7 @@ export async function runPanel(opts) {
131
134
  // 2. Adversarial verify — a skeptic refutes the lens findings, writing
132
135
  // verdicts.md (CONFIRMED/REJECTED) so synth only fixes survivors.
133
136
  phaseLine("adversarial verify");
137
+ const verifyStartedAt = isoNow();
134
138
  const verify = await executeStage({
135
139
  stage: VERIFY_STAGE,
136
140
  vars: { FINDINGS_DIR: findingsDirRef, RESUME: resumeNote },
@@ -144,6 +148,7 @@ export async function runPanel(opts) {
144
148
  logLabel: "verify",
145
149
  });
146
150
  restoreIfMutated("verify");
151
+ recordStage?.(VERIFY_STAGE.name, verify, verifyStartedAt);
147
152
  const verdicts = readVerdicts(panelHostDir);
148
153
  if (verdicts.exists) {
149
154
  outcomeLine(`${verdicts.confirmed} confirmed, ${verdicts.rejected} rejected`);
@@ -167,6 +172,7 @@ export async function runPanel(opts) {
167
172
  await sleep(cooldownMs * vctrl.cooldownFactor, signal);
168
173
  // 3. Synth — fix only CONFIRMED findings in one fix(review:) commit.
169
174
  phaseLine("synthesize & fix");
175
+ const synthStartedAt = isoNow();
170
176
  const synth = await executeStage({
171
177
  stage: SYNTH_STAGE,
172
178
  vars: { FINDINGS_DIR: findingsDirRef, RESUME: resumeNote },
@@ -198,6 +204,7 @@ export async function runPanel(opts) {
198
204
  else {
199
205
  outcomeLine("clean — no fix needed");
200
206
  }
207
+ recordStage?.(SYNTH_STAGE.name, synth, synthStartedAt);
201
208
  onStage?.(synth);
202
209
  return synth;
203
210
  }
package/dist/panel.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ProgressSignals } from "./progress.js";
2
+ /**
3
+ * The adaptive compute router's early-stop / escalation policy (issue #41).
4
+ * Pure: maps the current {@link ProgressSignals} plus a small running
5
+ * {@link PolicyContext} to a {@link PolicyDecision}. No I/O, no model calls.
6
+ * Inert until a later task feeds it into the loop behind an off-by-default flag.
7
+ */
8
+ /** What the router should do after the current iteration. */
9
+ export type PolicyAction =
10
+ /** Keep iterating — the run is making progress. */
11
+ "continue"
12
+ /** Marginal progress is too low; stop and report rather than burn budget. */
13
+ | "stop-low-progress"
14
+ /** A repeated failure needs a human decision; pause with a report. */
15
+ | "escalate-pause"
16
+ /** Checks are green; short-circuit to a confident finish/verify. */
17
+ | "finish-confident";
18
+ /** A policy action plus the signal that justified it. */
19
+ export type PolicyDecision = {
20
+ action: PolicyAction;
21
+ reason: string;
22
+ };
23
+ /** Running counters the policy needs beyond a single iteration's signals. */
24
+ export type PolicyContext = {
25
+ /** Consecutive iterations (incl. this one) whose diff did not change. */
26
+ stalledIterations: number;
27
+ /** Consecutive iterations (incl. this one) with the same failure signature. */
28
+ repeatedFailureStreak: number;
29
+ /** Absolute failing checks this iteration, or `null` when not measured. */
30
+ failingChecks: number | null;
31
+ };
32
+ /**
33
+ * Decide what to do after an iteration. Precedence: a repeated failure that
34
+ * needs a human (escalate) outranks a confident green finish, which outranks an
35
+ * unproductive stall (stop), which outranks the default (continue). Pure.
36
+ */
37
+ export declare function decide(signals: ProgressSignals, ctx: PolicyContext): PolicyDecision;
38
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;GAKG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,YAAY;AACtB,mDAAmD;AACjD,UAAU;AACZ,6EAA6E;GAC3E,mBAAmB;AACrB,sEAAsE;GACpE,gBAAgB;AAClB,oEAAoE;GAClE,kBAAkB,CAAC;AAEvB,yDAAyD;AACzD,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG;IAC1B,yEAAyE;IACzE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAOF;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,eAAe,EACxB,GAAG,EAAE,aAAa,GACjB,cAAc,CAwBhB"}
package/dist/policy.js ADDED
@@ -0,0 +1,32 @@
1
+ /** Same failure this many iterations running → a human should look. */
2
+ const REPEATED_FAILURE_LIMIT = 3;
3
+ /** Diff unchanged this many iterations without improvement → stop. */
4
+ const STALL_LIMIT = 2;
5
+ /**
6
+ * Decide what to do after an iteration. Precedence: a repeated failure that
7
+ * needs a human (escalate) outranks a confident green finish, which outranks an
8
+ * unproductive stall (stop), which outranks the default (continue). Pure.
9
+ */
10
+ export function decide(signals, ctx) {
11
+ if (ctx.repeatedFailureStreak >= REPEATED_FAILURE_LIMIT) {
12
+ return {
13
+ action: "escalate-pause",
14
+ reason: `same failure ${ctx.repeatedFailureStreak} iterations running — human decision needed`,
15
+ };
16
+ }
17
+ if (ctx.failingChecks === 0) {
18
+ return {
19
+ action: "finish-confident",
20
+ reason: "checks are green — route to a confident finish/verify",
21
+ };
22
+ }
23
+ const notImproving = signals.checksDelta == null || signals.checksDelta <= 0;
24
+ if (ctx.stalledIterations >= STALL_LIMIT && notImproving) {
25
+ return {
26
+ action: "stop-low-progress",
27
+ reason: `diff unchanged for ${ctx.stalledIterations} iterations with no check improvement`,
28
+ };
29
+ }
30
+ return { action: "continue", reason: "run is making progress" };
31
+ }
32
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAiCA,uEAAuE;AACvE,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,sEAAsE;AACtE,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB;;;;GAIG;AACH,MAAM,UAAU,MAAM,CACpB,OAAwB,EACxB,GAAkB;IAElB,IAAI,GAAG,CAAC,qBAAqB,IAAI,sBAAsB,EAAE,CAAC;QACxD,OAAO;YACL,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,gBAAgB,GAAG,CAAC,qBAAqB,6CAA6C;SAC/F,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,uDAAuD;SAChE,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7E,IAAI,GAAG,CAAC,iBAAiB,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;QACzD,OAAO;YACL,MAAM,EAAE,mBAAmB;YAC3B,MAAM,EAAE,sBAAsB,GAAG,CAAC,iBAAiB,uCAAuC;SAC3F,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;AAClE,CAAC"}