@mobrienv/autoloop-harness 0.7.4 → 0.8.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 (71) hide show
  1. package/dist/backend/types.d.ts +13 -0
  2. package/dist/backend/types.js +14 -0
  3. package/dist/backend/types.js.map +1 -0
  4. package/dist/config-helpers.d.ts +10 -2
  5. package/dist/config-helpers.js +137 -28
  6. package/dist/config-helpers.js.map +1 -1
  7. package/dist/control/acp-adapter.d.ts +12 -0
  8. package/dist/control/acp-adapter.js +54 -0
  9. package/dist/control/acp-adapter.js.map +1 -0
  10. package/dist/control/adapter.d.ts +12 -0
  11. package/dist/control/adapter.js +2 -0
  12. package/dist/control/adapter.js.map +1 -0
  13. package/dist/control/capabilities.d.ts +9 -0
  14. package/dist/control/capabilities.js +27 -0
  15. package/dist/control/capabilities.js.map +1 -0
  16. package/dist/control/claude-sdk-adapter.d.ts +15 -0
  17. package/dist/control/claude-sdk-adapter.js +79 -0
  18. package/dist/control/claude-sdk-adapter.js.map +1 -0
  19. package/dist/control/dispatch.d.ts +14 -0
  20. package/dist/control/dispatch.js +41 -0
  21. package/dist/control/dispatch.js.map +1 -0
  22. package/dist/control/index.d.ts +11 -0
  23. package/dist/control/index.js +9 -0
  24. package/dist/control/index.js.map +1 -0
  25. package/dist/control/kiro-adapter.d.ts +2 -0
  26. package/dist/control/kiro-adapter.js +2 -0
  27. package/dist/control/kiro-adapter.js.map +1 -0
  28. package/dist/control/paths.d.ts +19 -0
  29. package/dist/control/paths.js +40 -0
  30. package/dist/control/paths.js.map +1 -0
  31. package/dist/control/pi-adapter.d.ts +15 -0
  32. package/dist/control/pi-adapter.js +76 -0
  33. package/dist/control/pi-adapter.js.map +1 -0
  34. package/dist/control/queue.d.ts +14 -0
  35. package/dist/control/queue.js +82 -0
  36. package/dist/control/queue.js.map +1 -0
  37. package/dist/control/render.d.ts +10 -0
  38. package/dist/control/render.js +53 -0
  39. package/dist/control/render.js.map +1 -0
  40. package/dist/control/types.d.ts +47 -0
  41. package/dist/control/types.js +9 -0
  42. package/dist/control/types.js.map +1 -0
  43. package/dist/emit.js +6 -4
  44. package/dist/emit.js.map +1 -1
  45. package/dist/guards.d.ts +37 -0
  46. package/dist/guards.js +78 -0
  47. package/dist/guards.js.map +1 -0
  48. package/dist/index.js +181 -24
  49. package/dist/index.js.map +1 -1
  50. package/dist/iteration.js +174 -20
  51. package/dist/iteration.js.map +1 -1
  52. package/dist/metareview.js +92 -6
  53. package/dist/metareview.js.map +1 -1
  54. package/dist/notify.d.ts +15 -0
  55. package/dist/notify.js +98 -0
  56. package/dist/notify.js.map +1 -0
  57. package/dist/parallel.d.ts +1 -0
  58. package/dist/parallel.js +10 -5
  59. package/dist/parallel.js.map +1 -1
  60. package/dist/prompt.d.ts +4 -0
  61. package/dist/prompt.js +34 -0
  62. package/dist/prompt.js.map +1 -1
  63. package/dist/registry-bridge.js +7 -1
  64. package/dist/registry-bridge.js.map +1 -1
  65. package/dist/stop.d.ts +3 -0
  66. package/dist/stop.js +63 -0
  67. package/dist/stop.js.map +1 -1
  68. package/dist/types.d.ts +47 -1
  69. package/dist/wave/launch-branches.js +2 -0
  70. package/dist/wave/launch-branches.js.map +1 -1
  71. package/package.json +51 -3
package/dist/emit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../src/emit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface StallCheck {
2
+ stalled: boolean;
3
+ repeats: number;
4
+ }
5
+ /**
6
+ * Detect a no-progress loop: `threshold` (or more) consecutive iterations
7
+ * whose backend output is byte-identical. A threshold of 0 disables the
8
+ * check. Empty outputs never count as a stall — backend failures and
9
+ * timeouts already have their own stop reasons.
10
+ */
11
+ export declare function detectStall(runLines: string[], threshold: number): StallCheck;
12
+ /**
13
+ * Epoch-ms start of the run, from the `created_at` field of the run's
14
+ * `loop.start` event. Null when absent or unparseable, in which case the
15
+ * runtime budget guard disables itself.
16
+ */
17
+ export declare function loopStartMs(runLines: string[]): number | null;
18
+ export interface RuntimeBudgetCheck {
19
+ exceeded: boolean;
20
+ elapsedMs: number;
21
+ }
22
+ /**
23
+ * Check elapsed wall-clock time (from the journaled `loop.start` event)
24
+ * against a runtime budget. A budget of 0 disables the check; so does a
25
+ * missing or unparseable start timestamp.
26
+ */
27
+ export declare function checkRuntimeBudget(runLines: string[], maxRuntimeMs: number, nowMs?: number): RuntimeBudgetCheck;
28
+ export interface CostBudgetCheck {
29
+ exceeded: boolean;
30
+ costUsd: number;
31
+ }
32
+ /**
33
+ * Check accumulated run cost (from `backend.usage` events) against a USD
34
+ * budget. A budget of 0 disables the check. Backends without usage telemetry
35
+ * report zero cost, so the budget never fires for them.
36
+ */
37
+ export declare function checkCostBudget(runLines: string[], maxCostUsd: number): CostBudgetCheck;
package/dist/guards.js ADDED
@@ -0,0 +1,78 @@
1
+ // Run-level guard checks evaluated between iterations.
2
+ //
3
+ // Both guards are journal-derived (no in-memory counters), so they survive
4
+ // context reloads and apply uniformly to every continue path — routed events,
5
+ // rejected emits, and plain continues alike.
6
+ import { collectUsage, decodeEvent } from "@mobrienv/autoloop-core";
7
+ /**
8
+ * Detect a no-progress loop: `threshold` (or more) consecutive iterations
9
+ * whose backend output is byte-identical. A threshold of 0 disables the
10
+ * check. Empty outputs never count as a stall — backend failures and
11
+ * timeouts already have their own stop reasons.
12
+ */
13
+ export function detectStall(runLines, threshold) {
14
+ if (threshold <= 0)
15
+ return { stalled: false, repeats: 0 };
16
+ const outputs = [];
17
+ for (const line of runLines) {
18
+ const event = decodeEvent(line);
19
+ if (!event || event.shape !== "fields")
20
+ continue;
21
+ if (event.topic !== "iteration.finish")
22
+ continue;
23
+ outputs.push((event.fields.output ?? "").trim());
24
+ }
25
+ if (outputs.length === 0)
26
+ return { stalled: false, repeats: 0 };
27
+ const last = outputs[outputs.length - 1];
28
+ if (last === "")
29
+ return { stalled: false, repeats: 0 };
30
+ let repeats = 1;
31
+ for (let i = outputs.length - 2; i >= 0 && outputs[i] === last; i--) {
32
+ repeats++;
33
+ }
34
+ return { stalled: repeats >= threshold, repeats };
35
+ }
36
+ /**
37
+ * Epoch-ms start of the run, from the `created_at` field of the run's
38
+ * `loop.start` event. Null when absent or unparseable, in which case the
39
+ * runtime budget guard disables itself.
40
+ */
41
+ export function loopStartMs(runLines) {
42
+ for (const line of runLines) {
43
+ const event = decodeEvent(line);
44
+ if (!event || event.shape !== "fields")
45
+ continue;
46
+ if (event.topic !== "loop.start")
47
+ continue;
48
+ const parsed = Date.parse(event.fields.created_at ?? "");
49
+ return Number.isNaN(parsed) ? null : parsed;
50
+ }
51
+ return null;
52
+ }
53
+ /**
54
+ * Check elapsed wall-clock time (from the journaled `loop.start` event)
55
+ * against a runtime budget. A budget of 0 disables the check; so does a
56
+ * missing or unparseable start timestamp.
57
+ */
58
+ export function checkRuntimeBudget(runLines, maxRuntimeMs, nowMs = Date.now()) {
59
+ if (maxRuntimeMs <= 0)
60
+ return { exceeded: false, elapsedMs: 0 };
61
+ const startMs = loopStartMs(runLines);
62
+ if (startMs === null)
63
+ return { exceeded: false, elapsedMs: 0 };
64
+ const elapsedMs = nowMs - startMs;
65
+ return { exceeded: elapsedMs >= maxRuntimeMs, elapsedMs };
66
+ }
67
+ /**
68
+ * Check accumulated run cost (from `backend.usage` events) against a USD
69
+ * budget. A budget of 0 disables the check. Backends without usage telemetry
70
+ * report zero cost, so the budget never fires for them.
71
+ */
72
+ export function checkCostBudget(runLines, maxCostUsd) {
73
+ if (maxCostUsd <= 0)
74
+ return { exceeded: false, costUsd: 0 };
75
+ const { totals } = collectUsage(runLines);
76
+ return { exceeded: totals.costUsd >= maxCostUsd, costUsd: totals.costUsd };
77
+ }
78
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,6CAA6C;AAE7C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAOpE;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB,EAAE,SAAiB;IAC/D,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;YAAE,SAAS;QACjD,IAAI,KAAK,CAAC,KAAK,KAAK,kBAAkB;YAAE,SAAS;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACvD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACpE,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;YAAE,SAAS;QACjD,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY;YAAE,SAAS;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,YAAoB,EACpB,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAChE,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;IAClC,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI,YAAY,EAAE,SAAS,EAAE,CAAC;AAC5D,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAkB,EAClB,UAAkB;IAElB,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7E,CAAC"}
package/dist/index.js CHANGED
@@ -1,17 +1,25 @@
1
1
  import { existsSync, unlinkSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { initAcpSession, terminateAcpSession, } from "@mobrienv/autoloop-backends/acp-client";
3
+ import { terminateAcpSession } from "@mobrienv/autoloop-backends/acp-client";
4
+ import { abortClaudeSdkTurn, steerClaudeSdkTurn, terminateClaudeSdkSession, } from "@mobrienv/autoloop-backends/claude-sdk-client";
5
+ import { abortPiTurn, steerPiTurn, terminatePiSession, } from "@mobrienv/autoloop-backends/pi-rpc-client";
4
6
  import * as config from "@mobrienv/autoloop-core/config";
5
- import { readIfExists } from "@mobrienv/autoloop-core/journal";
7
+ import { readIfExists, readRunLines } from "@mobrienv/autoloop-core/journal";
6
8
  import { cleanWorktrees, mergeWorktree, readMeta, updateStatus as updateWorktreeStatus, } from "@mobrienv/autoloop-core/worktree";
7
9
  import { applyRuntimeModeOverrides, buildLoopContext, ensureLayout, initStore, installRuntimeTools, iterationFieldForRun, reloadLoop, } from "./config-helpers.js";
10
+ import { acpControlAdapter } from "./control/acp-adapter.js";
11
+ import { claudeSdkControlAdapter } from "./control/claude-sdk-adapter.js";
12
+ import { drainControlRequests, publishCapabilities, } from "./control/dispatch.js";
13
+ import { piControlAdapter } from "./control/pi-adapter.js";
8
14
  import { log } from "./display.js";
9
15
  import { emit as emitCmd } from "./emit.js";
16
+ import { checkCostBudget, checkRuntimeBudget, detectStall } from "./guards.js";
10
17
  import { runIteration } from "./iteration.js";
11
18
  import { maybeRunMetareview } from "./metareview.js";
19
+ import { runFinishNotification } from "./notify.js";
12
20
  import { appendLoopStart, branchStopReason, loadParallelBranchLaunch, parallelBranchBackendOverride, renderBranchResult, seedBranchContext, writeParallelBranchSummary, } from "./parallel.js";
13
21
  import { registryStart, registryStop } from "./registry-bridge.js";
14
- import { completeLoop, stopMaxIterations } from "./stop.js";
22
+ import { completeLoop, stopCostBudget, stopMaxIterations, stopMaxRuntime, stopStalled, } from "./stop.js";
15
23
  export async function run(projectDir, promptOverride, selfCommand, runOptions) {
16
24
  let loop = buildLoopContext(projectDir, promptOverride, selfCommand, runOptions);
17
25
  loop.onEvent = runOptions.onEvent;
@@ -20,6 +28,10 @@ export async function run(projectDir, promptOverride, selfCommand, runOptions) {
20
28
  installRuntimeTools(loop);
21
29
  appendLoopStart(loop);
22
30
  registryStart(loop);
31
+ loop.controlAdapter = buildControlAdapter(loop);
32
+ if (loop.controlAdapter) {
33
+ publishCapabilities(loop.paths.stateDir, loop.controlAdapter);
34
+ }
23
35
  // Track current iteration for abort handler (must be mutable)
24
36
  let currentIteration = 0;
25
37
  let aborted = false;
@@ -27,15 +39,29 @@ export async function run(projectDir, promptOverride, selfCommand, runOptions) {
27
39
  if (aborted)
28
40
  return;
29
41
  aborted = true;
30
- // Fire-and-forget ACP termination — abort handlers must stay sync.
42
+ // Fire-and-forget session termination — abort handlers must stay sync.
31
43
  // The finally block below awaits a final terminate as backstop.
32
- if (loop.kiroSession) {
33
- const session = loop.kiroSession;
34
- loop.kiroSession = undefined;
44
+ if (loop.acpSession.current) {
45
+ const session = loop.acpSession.current;
46
+ loop.acpSession.current = undefined;
35
47
  terminateAcpSession(session).catch(() => {
36
48
  /* best-effort */
37
49
  });
38
50
  }
51
+ if (loop.piSession.current) {
52
+ const session = loop.piSession.current;
53
+ loop.piSession.current = undefined;
54
+ terminatePiSession(session).catch(() => {
55
+ /* best-effort */
56
+ });
57
+ }
58
+ if (loop.claudeSdkSession.current) {
59
+ const session = loop.claudeSdkSession.current;
60
+ loop.claudeSdkSession.current = undefined;
61
+ terminateClaudeSdkSession(session).catch(() => {
62
+ /* best-effort */
63
+ });
64
+ }
39
65
  try {
40
66
  registryStop(loop, currentIteration, "interrupted");
41
67
  }
@@ -70,20 +96,18 @@ export async function run(projectDir, promptOverride, selfCommand, runOptions) {
70
96
  runOptions.signal?.addEventListener("abort", onAbort);
71
97
  if (runOptions.signal?.aborted)
72
98
  teardown();
99
+ const onSigusr1 = () => {
100
+ if (!loop.controlAdapter)
101
+ return;
102
+ try {
103
+ drainControlRequests(loop.paths.stateDir, loop.controlAdapter);
104
+ }
105
+ catch {
106
+ /* best-effort */
107
+ }
108
+ };
109
+ process.on("SIGUSR1", onSigusr1);
73
110
  log(loop, "info", `loop start run_id=${loop.runtime.runId} max_iterations=${loop.limits.maxIterations}`);
74
- // Initialize kiro ACP session if backend is kiro
75
- if (loop.backend.kind === "kiro") {
76
- const acpOpts = {
77
- command: loop.backend.command,
78
- args: loop.backend.args,
79
- cwd: loop.paths.workDir,
80
- trustAllTools: loop.store.kiro_trust_all_tools !== false,
81
- agentName: loop.store.kiro_agent || undefined,
82
- modelId: loop.store.kiro_model || undefined,
83
- verbose: loop.runtime.logLevel === "debug",
84
- };
85
- loop.kiroSession = await initAcpSession(acpOpts);
86
- }
87
111
  let summary;
88
112
  const trackedIterate = async (ctx, iter) => {
89
113
  if (aborted)
@@ -105,13 +129,32 @@ export async function run(projectDir, promptOverride, selfCommand, runOptions) {
105
129
  summary = await trackedIterate(loop, 1);
106
130
  }
107
131
  finally {
108
- if (loop.kiroSession) {
132
+ if (loop.acpSession.current) {
109
133
  try {
110
- await terminateAcpSession(loop.kiroSession);
134
+ await terminateAcpSession(loop.acpSession.current);
111
135
  }
112
136
  catch {
113
137
  /* best-effort */
114
138
  }
139
+ loop.acpSession.current = undefined;
140
+ }
141
+ if (loop.piSession.current) {
142
+ try {
143
+ await terminatePiSession(loop.piSession.current);
144
+ }
145
+ catch {
146
+ /* best-effort */
147
+ }
148
+ loop.piSession.current = undefined;
149
+ }
150
+ if (loop.claudeSdkSession.current) {
151
+ try {
152
+ await terminateClaudeSdkSession(loop.claudeSdkSession.current);
153
+ }
154
+ catch {
155
+ /* best-effort */
156
+ }
157
+ loop.claudeSdkSession.current = undefined;
115
158
  }
116
159
  runOptions.signal?.removeEventListener("abort", onAbort);
117
160
  }
@@ -173,6 +216,14 @@ export async function run(projectDir, promptOverride, selfCommand, runOptions) {
173
216
  }
174
217
  }
175
218
  }
219
+ runFinishNotification({
220
+ projectDir: loop.paths.mainProjectDir,
221
+ journalFile: loop.paths.journalFile,
222
+ runId: loop.runtime.runId,
223
+ preset: loop.launch.preset,
224
+ stopReason: summary.stopReason,
225
+ iterations: summary.iterations,
226
+ });
176
227
  loop.onEvent?.({
177
228
  type: "summary",
178
229
  runId: loop.runtime.runId,
@@ -212,9 +263,45 @@ export async function runParallelBranchCli(projectDir, branchDir, selfCommand, o
212
263
  installRuntimeTools(branchLoop);
213
264
  appendLoopStart(branchLoop);
214
265
  registryStart(branchLoop);
266
+ branchLoop.controlAdapter = buildControlAdapter(branchLoop);
267
+ if (branchLoop.controlAdapter) {
268
+ publishCapabilities(branchLoop.paths.stateDir, branchLoop.controlAdapter);
269
+ }
215
270
  const seeded = seedBranchContext(branchLoop, routingEvent);
216
271
  const startMs = Date.now();
217
- const summary = await iterate(seeded, 1);
272
+ let summary;
273
+ try {
274
+ summary = await iterate(seeded, 1);
275
+ }
276
+ finally {
277
+ if (seeded.acpSession.current) {
278
+ try {
279
+ await terminateAcpSession(seeded.acpSession.current);
280
+ }
281
+ catch {
282
+ /* best-effort */
283
+ }
284
+ seeded.acpSession.current = undefined;
285
+ }
286
+ if (seeded.piSession.current) {
287
+ try {
288
+ await terminatePiSession(seeded.piSession.current);
289
+ }
290
+ catch {
291
+ /* best-effort */
292
+ }
293
+ seeded.piSession.current = undefined;
294
+ }
295
+ if (seeded.claudeSdkSession.current) {
296
+ try {
297
+ await terminateClaudeSdkSession(seeded.claudeSdkSession.current);
298
+ }
299
+ catch {
300
+ /* best-effort */
301
+ }
302
+ seeded.claudeSdkSession.current = undefined;
303
+ }
304
+ }
218
305
  const finishedMs = Date.now();
219
306
  const elapsedMs = finishedMs - startMs;
220
307
  const output = iterationFieldForRun(seeded.paths.journalFile, seeded.runtime.runId, "1", "iteration.finish", "output");
@@ -237,11 +324,19 @@ export async function runParallelBranchCli(projectDir, branchDir, selfCommand, o
237
324
  // --- Private implementation ---
238
325
  function iterateWith(loop, iteration, recurse) {
239
326
  const liveLoop = reloadLoop(loop);
240
- liveLoop.kiroSession = loop.kiroSession;
327
+ liveLoop.controlAdapter = loop.controlAdapter;
241
328
  installRuntimeTools(liveLoop);
242
329
  return runReviewThenIterate(liveLoop, iteration, recurse);
243
330
  }
244
331
  async function runReviewThenIterate(liveLoop, iteration, recurse) {
332
+ if (liveLoop.controlAdapter) {
333
+ try {
334
+ drainControlRequests(liveLoop.paths.stateDir, liveLoop.controlAdapter);
335
+ }
336
+ catch {
337
+ /* control drain is best-effort; next pass will retry */
338
+ }
339
+ }
245
340
  const reviewed = await maybeRunMetareview(liveLoop, iteration);
246
341
  const verdict = reviewed.lastVerdict;
247
342
  if (verdict) {
@@ -264,9 +359,71 @@ async function runReviewThenIterate(liveLoop, iteration, recurse) {
264
359
  if (iteration > reviewed.limits.maxIterations) {
265
360
  return stopMaxIterations(reviewed, iteration);
266
361
  }
362
+ // Guard checks between iterations: both are journal-derived so they cover
363
+ // every continue path (routed, rejected, plain) without in-memory state.
364
+ if (iteration > 1) {
365
+ const runLines = readRunLines(reviewed.paths.journalFile, reviewed.runtime.runId);
366
+ const stall = detectStall(runLines, reviewed.limits.stallIterations ?? 0);
367
+ if (stall.stalled) {
368
+ return stopStalled(reviewed, iteration - 1, stall.repeats);
369
+ }
370
+ const budget = checkCostBudget(runLines, reviewed.limits.maxCostUsd ?? 0);
371
+ if (budget.exceeded) {
372
+ return stopCostBudget(reviewed, iteration - 1, budget.costUsd, reviewed.limits.maxCostUsd ?? 0);
373
+ }
374
+ const runtime = checkRuntimeBudget(runLines, reviewed.limits.maxRuntimeMs ?? 0);
375
+ if (runtime.exceeded) {
376
+ return stopMaxRuntime(reviewed, iteration - 1, runtime.elapsedMs, reviewed.limits.maxRuntimeMs ?? 0);
377
+ }
378
+ }
267
379
  return runIteration(reviewed, iteration, recurse);
268
380
  }
269
381
  function iterate(loop, iteration) {
270
382
  return iterateWith(loop, iteration, iterate);
271
383
  }
384
+ function buildControlAdapter(loop) {
385
+ if (loop.backend.kind === "acp") {
386
+ return acpControlAdapter(loop.runtime.runId, loop.backend.provider, {
387
+ triggerInterrupt: () => {
388
+ if (loop.acpSession.current?.process.pid) {
389
+ try {
390
+ process.kill(-loop.acpSession.current.process.pid, "SIGINT");
391
+ }
392
+ catch {
393
+ /* best-effort */
394
+ }
395
+ }
396
+ },
397
+ });
398
+ }
399
+ if (loop.backend.kind === "pi") {
400
+ return piControlAdapter(loop.runtime.runId, {
401
+ triggerInterrupt: () => {
402
+ if (loop.piSession.current) {
403
+ abortPiTurn(loop.piSession.current);
404
+ }
405
+ },
406
+ triggerSteer: (message) => {
407
+ if (loop.piSession.current) {
408
+ steerPiTurn(loop.piSession.current, message);
409
+ }
410
+ },
411
+ });
412
+ }
413
+ if (loop.backend.kind === "claude-sdk") {
414
+ return claudeSdkControlAdapter(loop.runtime.runId, {
415
+ triggerInterrupt: () => {
416
+ if (loop.claudeSdkSession.current) {
417
+ abortClaudeSdkTurn(loop.claudeSdkSession.current);
418
+ }
419
+ },
420
+ triggerSteer: (message) => {
421
+ if (loop.claudeSdkSession.current) {
422
+ steerClaudeSdkTurn(loop.claudeSdkSession.current, message);
423
+ }
424
+ },
425
+ });
426
+ }
427
+ return undefined;
428
+ }
272
429
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}