@mobrienv/autoloop-harness 0.7.4 → 0.9.1

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 (154) hide show
  1. package/dist/acceptance.d.ts +31 -0
  2. package/dist/acceptance.js +69 -0
  3. package/dist/acceptance.js.map +1 -0
  4. package/dist/ask.d.ts +16 -0
  5. package/dist/ask.js +47 -0
  6. package/dist/ask.js.map +1 -0
  7. package/dist/backend/types.d.ts +16 -0
  8. package/dist/backend/types.js +17 -0
  9. package/dist/backend/types.js.map +1 -0
  10. package/dist/circuit-breaker.d.ts +27 -0
  11. package/dist/circuit-breaker.js +41 -0
  12. package/dist/circuit-breaker.js.map +1 -0
  13. package/dist/completion-lint.d.ts +29 -0
  14. package/dist/completion-lint.js +51 -0
  15. package/dist/completion-lint.js.map +1 -0
  16. package/dist/config-helpers.d.ts +10 -2
  17. package/dist/config-helpers.js +272 -30
  18. package/dist/config-helpers.js.map +1 -1
  19. package/dist/control/acp-adapter.d.ts +12 -0
  20. package/dist/control/acp-adapter.js +54 -0
  21. package/dist/control/acp-adapter.js.map +1 -0
  22. package/dist/control/adapter.d.ts +12 -0
  23. package/dist/control/adapter.js +2 -0
  24. package/dist/control/adapter.js.map +1 -0
  25. package/dist/control/capabilities.d.ts +9 -0
  26. package/dist/control/capabilities.js +27 -0
  27. package/dist/control/capabilities.js.map +1 -0
  28. package/dist/control/claude-sdk-adapter.d.ts +15 -0
  29. package/dist/control/claude-sdk-adapter.js +79 -0
  30. package/dist/control/claude-sdk-adapter.js.map +1 -0
  31. package/dist/control/command-adapter.d.ts +19 -0
  32. package/dist/control/command-adapter.js +57 -0
  33. package/dist/control/command-adapter.js.map +1 -0
  34. package/dist/control/dispatch.d.ts +14 -0
  35. package/dist/control/dispatch.js +55 -0
  36. package/dist/control/dispatch.js.map +1 -0
  37. package/dist/control/index.d.ts +11 -0
  38. package/dist/control/index.js +9 -0
  39. package/dist/control/index.js.map +1 -0
  40. package/dist/control/kiro-adapter.d.ts +2 -0
  41. package/dist/control/kiro-adapter.js +2 -0
  42. package/dist/control/kiro-adapter.js.map +1 -0
  43. package/dist/control/paths.d.ts +19 -0
  44. package/dist/control/paths.js +40 -0
  45. package/dist/control/paths.js.map +1 -0
  46. package/dist/control/pi-adapter.d.ts +15 -0
  47. package/dist/control/pi-adapter.js +76 -0
  48. package/dist/control/pi-adapter.js.map +1 -0
  49. package/dist/control/queue.d.ts +14 -0
  50. package/dist/control/queue.js +82 -0
  51. package/dist/control/queue.js.map +1 -0
  52. package/dist/control/render.d.ts +10 -0
  53. package/dist/control/render.js +53 -0
  54. package/dist/control/render.js.map +1 -0
  55. package/dist/control/types.d.ts +56 -0
  56. package/dist/control/types.js +9 -0
  57. package/dist/control/types.js.map +1 -0
  58. package/dist/display.d.ts +9 -2
  59. package/dist/display.js +37 -1
  60. package/dist/display.js.map +1 -1
  61. package/dist/emit.d.ts +27 -0
  62. package/dist/emit.js +327 -6
  63. package/dist/emit.js.map +1 -1
  64. package/dist/events.d.ts +36 -3
  65. package/dist/fanout-runner.d.ts +25 -0
  66. package/dist/fanout-runner.js +54 -0
  67. package/dist/fanout-runner.js.map +1 -0
  68. package/dist/file-mod-audit.d.ts +29 -0
  69. package/dist/file-mod-audit.js +63 -0
  70. package/dist/file-mod-audit.js.map +1 -0
  71. package/dist/git-diff.d.ts +19 -0
  72. package/dist/git-diff.js +74 -0
  73. package/dist/git-diff.js.map +1 -0
  74. package/dist/guards.d.ts +37 -0
  75. package/dist/guards.js +78 -0
  76. package/dist/guards.js.map +1 -0
  77. package/dist/hooks.d.ts +78 -0
  78. package/dist/hooks.js +239 -0
  79. package/dist/hooks.js.map +1 -0
  80. package/dist/index.d.ts +15 -2
  81. package/dist/index.js +359 -26
  82. package/dist/index.js.map +1 -1
  83. package/dist/intent.d.ts +45 -0
  84. package/dist/intent.js +127 -0
  85. package/dist/intent.js.map +1 -0
  86. package/dist/iteration-diff.d.ts +32 -0
  87. package/dist/iteration-diff.js +92 -0
  88. package/dist/iteration-diff.js.map +1 -0
  89. package/dist/iteration.d.ts +20 -0
  90. package/dist/iteration.js +551 -30
  91. package/dist/iteration.js.map +1 -1
  92. package/dist/metareview.d.ts +9 -1
  93. package/dist/metareview.js +158 -34
  94. package/dist/metareview.js.map +1 -1
  95. package/dist/notify.d.ts +22 -0
  96. package/dist/notify.js +110 -0
  97. package/dist/notify.js.map +1 -0
  98. package/dist/parallel.d.ts +17 -0
  99. package/dist/parallel.js +38 -6
  100. package/dist/parallel.js.map +1 -1
  101. package/dist/postconditions.d.ts +25 -0
  102. package/dist/postconditions.js +107 -0
  103. package/dist/postconditions.js.map +1 -0
  104. package/dist/postfire-verify.d.ts +31 -0
  105. package/dist/postfire-verify.js +64 -0
  106. package/dist/postfire-verify.js.map +1 -0
  107. package/dist/premature-quit.d.ts +25 -0
  108. package/dist/premature-quit.js +54 -0
  109. package/dist/premature-quit.js.map +1 -0
  110. package/dist/progress.d.ts +20 -0
  111. package/dist/progress.js +56 -0
  112. package/dist/progress.js.map +1 -0
  113. package/dist/prompt.d.ts +4 -0
  114. package/dist/prompt.js +42 -2
  115. package/dist/prompt.js.map +1 -1
  116. package/dist/provisional.d.ts +42 -0
  117. package/dist/provisional.js +92 -0
  118. package/dist/provisional.js.map +1 -0
  119. package/dist/registry-bridge.js +32 -1
  120. package/dist/registry-bridge.js.map +1 -1
  121. package/dist/resume.d.ts +61 -0
  122. package/dist/resume.js +226 -0
  123. package/dist/resume.js.map +1 -0
  124. package/dist/scratchpad.js +27 -8
  125. package/dist/scratchpad.js.map +1 -1
  126. package/dist/stage.d.ts +21 -0
  127. package/dist/stage.js +131 -0
  128. package/dist/stage.js.map +1 -0
  129. package/dist/stop.d.ts +32 -2
  130. package/dist/stop.js +169 -0
  131. package/dist/stop.js.map +1 -1
  132. package/dist/suspend-state.d.ts +32 -0
  133. package/dist/suspend-state.js +104 -0
  134. package/dist/suspend-state.js.map +1 -0
  135. package/dist/tamper.d.ts +21 -0
  136. package/dist/tamper.js +88 -0
  137. package/dist/tamper.js.map +1 -0
  138. package/dist/types.d.ts +294 -3
  139. package/dist/types.js +91 -1
  140. package/dist/types.js.map +1 -1
  141. package/dist/wave/finalize-wave.d.ts +15 -5
  142. package/dist/wave/finalize-wave.js +56 -2
  143. package/dist/wave/finalize-wave.js.map +1 -1
  144. package/dist/wave/launch-branches.d.ts +23 -2
  145. package/dist/wave/launch-branches.js +58 -3
  146. package/dist/wave/launch-branches.js.map +1 -1
  147. package/dist/wave/stage-branch-runner.d.ts +12 -0
  148. package/dist/wave/stage-branch-runner.js +130 -0
  149. package/dist/wave/stage-branch-runner.js.map +1 -0
  150. package/dist/wave/types.d.ts +40 -2
  151. package/dist/wave.d.ts +32 -1
  152. package/dist/wave.js +163 -34
  153. package/dist/wave.js.map +1 -1
  154. package/package.json +131 -3
@@ -1,7 +1,9 @@
1
1
  import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
2
2
  import { basename, join, resolve } from "node:path";
3
+ import { isAcpBackendKind, resolveAcpProvider, } from "@mobrienv/autoloop-backends/acp-providers";
3
4
  import { assertNoRawAutoloopPaths, expandTemplatePlaceholders, generateCompactId, generateReadableId, splitCsv, uniqueGeneratedId, } from "@mobrienv/autoloop-core";
4
5
  import { loadAgentMap } from "@mobrienv/autoloop-core/agent-map";
6
+ import * as concurrency from "@mobrienv/autoloop-core/concurrency";
5
7
  import * as config from "@mobrienv/autoloop-core/config";
6
8
  import { presetCategory, resolveIsolationMode, } from "@mobrienv/autoloop-core/isolation/resolve";
7
9
  import { createRunScopedDir } from "@mobrienv/autoloop-core/isolation/run-scope";
@@ -11,7 +13,8 @@ import { activeRuns } from "@mobrienv/autoloop-core/registry/read";
11
13
  import * as topo from "@mobrienv/autoloop-core/topology";
12
14
  import { createWorktree, resolveGitRoot, tryResolveGitRoot, } from "@mobrienv/autoloop-core/worktree";
13
15
  import { emitToolScript, piAdapterScript } from "./tools.js";
14
- export function resolvePrompt(projectDir, cfg, override) {
16
+ const DEFAULT_PROMPT = "Do the task and publish the completion event when finished.";
17
+ export function resolvePrompt(projectDir, cfg, override, options = {}) {
15
18
  if (override !== null)
16
19
  return override;
17
20
  const inlinePrompt = config.get(cfg, "event_loop.prompt", "");
@@ -23,7 +26,19 @@ export function resolvePrompt(projectDir, cfg, override) {
23
26
  if (existsSync(fullPath))
24
27
  return readFileSync(fullPath, "utf-8");
25
28
  }
26
- return "Do the task and publish the completion event when finished.";
29
+ if (!existingPlanFile(options)) {
30
+ const promptDir = tryResolveGitRoot(options.workDir ?? projectDir) ??
31
+ options.workDir ??
32
+ projectDir;
33
+ const rootPrompt = join(promptDir, "PROMPT.md");
34
+ if (existsSync(rootPrompt))
35
+ return readFileSync(rootPrompt, "utf-8");
36
+ }
37
+ return DEFAULT_PROMPT;
38
+ }
39
+ function existingPlanFile(options) {
40
+ const dirs = [options.stateDir, options.baseStateDir].filter((dir) => Boolean(dir));
41
+ return dirs.some((dir) => existsSync(join(dir, "plan.md")));
27
42
  }
28
43
  export function resolveReviewPrompt(projectDir, cfg) {
29
44
  const inlinePrompt = config.get(cfg, "review.prompt", "");
@@ -58,21 +73,40 @@ export function installRuntimeTools(loop) {
58
73
  writeFileSync(loop.paths.piAdapterPath, piAdapterScript(loop));
59
74
  chmodSync(loop.paths.piAdapterPath, 0o755);
60
75
  }
61
- export function resolveProcessKind(kind, command) {
76
+ export function resolveProcessKind(kind, command, opts) {
62
77
  if (kind === "pi" || piBinary(command))
63
78
  return "pi";
64
- if (kind === "kiro")
65
- return "kiro";
79
+ if (kind === "claude-sdk")
80
+ return "claude-sdk";
81
+ if (isAcpBackendKind(kind))
82
+ return "acp";
83
+ // Hermes ACP: `hermes acp` is a native ACP provider like pi. Map it to the
84
+ // ACP session path so providerLaunchArgs injects --profile correctly.
85
+ if (hermesBinary(command))
86
+ return "acp";
87
+ // Default: a plain `claude` invocation runs through the Agent SDK session
88
+ // backend (live interrupt/steer + cost telemetry). Custom args mean the
89
+ // user is tailoring the CLI invocation — respect it and keep the shell
90
+ // path, as does an explicit `kind = "command"`.
91
+ if (kind === "" && claudeBackend(command) && !opts?.hasCustomArgs) {
92
+ return "claude-sdk";
93
+ }
66
94
  return "command";
67
95
  }
68
96
  function piBinary(command) {
69
97
  return command === "pi" || command.endsWith("/pi");
70
98
  }
99
+ function hermesBinary(command) {
100
+ const base = command.split("/").pop() ?? "";
101
+ return base === "hermes";
102
+ }
71
103
  export function normalizePromptMode(value) {
72
104
  if (value === "stdin")
73
105
  return "stdin";
74
106
  if (value === "file")
75
107
  return "file";
108
+ if (value === "acp")
109
+ return "acp";
76
110
  return "arg";
77
111
  }
78
112
  export function configListWithFallback(cfg, key, fallback) {
@@ -111,6 +145,16 @@ export function processIntOverride(override, key, fallback) {
111
145
  }
112
146
  return fallback;
113
147
  }
148
+ export function processBoolOverride(override, key, fallback) {
149
+ const val = override[key];
150
+ if (val === undefined)
151
+ return fallback;
152
+ if (typeof val === "boolean")
153
+ return val;
154
+ if (typeof val === "string")
155
+ return val !== "false";
156
+ return fallback;
157
+ }
114
158
  export function claudeBackend(command) {
115
159
  return command === "claude" || command.endsWith("/claude");
116
160
  }
@@ -163,11 +207,27 @@ export function resolveJournalFileForRun(projectDir, runId) {
163
207
  export function buildLoopContext(projectDir, promptOverride, selfCommand, runOptions) {
164
208
  const resolvedProjectDir = absolutePath(projectDir);
165
209
  const resolvedWorkDir = absolutePath(runOptions.workDir || ".");
166
- const cfg = config.loadProject(resolvedProjectDir);
167
- const stateDirAnchor = tryResolveGitRoot(resolvedWorkDir) ?? resolvedWorkDir;
210
+ const presetFile = runOptions.presetFile
211
+ ? absolutePath(runOptions.presetFile)
212
+ : "";
213
+ const currentPresetName = presetFile
214
+ ? basename(presetFile, ".toml")
215
+ : basename(resolvedProjectDir);
216
+ const configWorkDir = tryResolveGitRoot(resolvedWorkDir) ?? resolvedWorkDir;
217
+ const configOverride = runOptions.configOverride || {};
218
+ const loadOptions = {
219
+ presetName: currentPresetName,
220
+ workDir: configWorkDir,
221
+ cliOverride: configOverride,
222
+ };
223
+ const cfg = presetFile
224
+ ? config.loadProjectFromFile(presetFile, loadOptions)
225
+ : config.loadProject(resolvedProjectDir, loadOptions);
226
+ const stateDirAnchor = configWorkDir;
168
227
  const stateDir = join(stateDirAnchor, config.get(cfg, "core.state_dir", ".autoloop"));
169
- const journalFile = config.resolveJournalFileIn(resolvedProjectDir, resolvedWorkDir);
170
- const memoryFile = config.resolveMemoryFileIn(resolvedProjectDir, resolvedWorkDir);
228
+ const journalRelPath = config.get(cfg, "core.journal_file", config.get(cfg, "core.events_file", ".autoloop/journal.jsonl"));
229
+ const journalFile = join(resolvedWorkDir, journalRelPath);
230
+ const memoryFile = join(resolvedWorkDir, config.get(cfg, "core.memory_file", ".autoloop/memory.jsonl"));
171
231
  // tasksFile is resolved later, after isolation mode determines effectiveStateDir
172
232
  const runId = nextRunId(journalFile, cfg);
173
233
  const backendOverride = runOptions.backendOverride || {};
@@ -177,7 +237,6 @@ export function buildLoopContext(projectDir, promptOverride, selfCommand, runOpt
177
237
  const otherActive = activeRuns(registryFile);
178
238
  const configIsolationEnabled = config.get(cfg, "worktree.enabled", "") === "true" ||
179
239
  config.get(cfg, "isolation.enabled", "false") === "true";
180
- const currentPresetName = basename(resolvedProjectDir);
181
240
  const currentCat = presetCategory(currentPresetName, resolvedProjectDir);
182
241
  const isolation = resolveIsolationMode({
183
242
  worktree: runOptions.worktree,
@@ -248,21 +307,25 @@ export function buildLoopContext(projectDir, promptOverride, selfCommand, runOpt
248
307
  worktreeBranch,
249
308
  worktreePath,
250
309
  worktreeMetaDir,
310
+ configWorkDir,
251
311
  },
252
312
  runtime: {
253
313
  runId,
254
314
  selfCommand,
255
315
  promptOverride: promptOverride ?? null,
256
316
  backendOverride,
317
+ configOverride,
257
318
  logLevel,
258
319
  branchMode: false,
259
320
  isolationMode: isolation.mode,
321
+ noResume: runOptions.noResume ?? false,
260
322
  },
261
323
  launch: {
262
- preset: basename(resolvedProjectDir),
324
+ preset: currentPresetName,
263
325
  trigger: runOptions.trigger ?? "cli",
264
326
  createdAt: new Date().toISOString(),
265
327
  parentRunId: runOptions.parentRunId ?? "",
328
+ presetFile,
266
329
  },
267
330
  profiles: {
268
331
  active: activeProfiles,
@@ -276,8 +339,18 @@ export function buildLoopContext(projectDir, promptOverride, selfCommand, runOpt
276
339
  export function reloadLoop(loop) {
277
340
  const pd = loop.paths.projectDir;
278
341
  const wd = loop.paths.workDir;
279
- const cfg = config.loadProject(pd);
280
- const topoData = topo.loadTopology(pd);
342
+ const presetFile = loop.launch.presetFile ?? "";
343
+ const loadOptions = {
344
+ presetName: loop.launch.preset,
345
+ workDir: loop.paths.configWorkDir || wd,
346
+ cliOverride: loop.runtime.configOverride,
347
+ };
348
+ const cfg = presetFile
349
+ ? config.loadProjectFromFile(presetFile, loadOptions)
350
+ : config.loadProject(pd, loadOptions);
351
+ const topoData = presetFile
352
+ ? topo.loadTopologyFromFile(presetFile)
353
+ : topo.loadTopology(pd);
281
354
  const backend = readBackendConfig(cfg, loop.runtime.backendOverride);
282
355
  const review = readReviewConfig(cfg, topoData, pd, backend);
283
356
  const parallel = readParallelConfig(cfg);
@@ -308,6 +381,10 @@ export function reloadLoop(loop) {
308
381
  const templateVars = {
309
382
  STATE_DIR: loop.paths.stateDir,
310
383
  TOOL_PATH: loop.paths.toolPath,
384
+ // Absolute path to the preset/config dir (holds roles, scripts, hooks). Lets a
385
+ // role reference preset-bundled scripts by path — e.g. a bootstrap script the
386
+ // loop runs before any copied-in scripts exist in the work dir.
387
+ PRESET_DIR: absolutePath(pd),
311
388
  };
312
389
  const updatedTopology = {
313
390
  ...finalTopology,
@@ -317,18 +394,62 @@ export function reloadLoop(loop) {
317
394
  return { ...role, prompt };
318
395
  }),
319
396
  };
397
+ // Per-iteration runtime cap: when set, it overrides backend.timeout_ms
398
+ // (the branch-mode clamp and per-role backend_timeout_ms still apply later).
399
+ const maxIterationRuntimeMs = config.getDuration(cfg, "event_loop.max_iteration_runtime", 0);
320
400
  const updated = {
321
- objective: resolvePrompt(pd, cfg, loop.runtime.promptOverride),
401
+ objective: resolvePrompt(pd, cfg, loop.runtime.promptOverride, {
402
+ workDir: wd,
403
+ stateDir: loop.paths.stateDir,
404
+ baseStateDir: loop.paths.baseStateDir,
405
+ }),
322
406
  topology: updatedTopology,
323
407
  limits: {
324
408
  maxIterations: config.getInt(cfg, "event_loop.max_iterations", 3),
409
+ stallIterations: config.getInt(cfg, "event_loop.stall_iterations", 0),
410
+ maxCostUsd: config.getFloat(cfg, "event_loop.max_cost_usd", 0),
411
+ maxIterationRuntimeMs,
412
+ maxRuntimeMs: config.getDuration(cfg, "event_loop.max_runtime", 0),
413
+ transientMaxPauses: config.getInt(cfg, "event_loop.transient_max_pauses", 3),
414
+ transientPauseMs: config.getDuration(cfg, "event_loop.transient_pause", 5000),
415
+ transientBackoffCapMs: config.getDuration(cfg, "event_loop.transient_backoff_cap", 30000),
416
+ prematureMaxRearms: config.getInt(cfg, "event_loop.premature_max_rearms", 1),
325
417
  },
326
418
  completion: {
327
419
  promise: config.get(cfg, "event_loop.completion_promise", "LOOP_COMPLETE"),
328
420
  event: topo.completionEvent(topoData, config.get(cfg, "event_loop.completion_event", "task.complete")),
329
421
  requiredEvents: config.getList(cfg, "event_loop.required_events"),
422
+ mustBeLast: truthySetting(config.get(cfg, "event_loop.completion_must_be_last", "false")),
423
+ },
424
+ policy: {
425
+ fileModAudit: truthySetting(config.get(cfg, "event_loop.audit_file_mods", "false")),
330
426
  },
331
- backend,
427
+ acceptance: {
428
+ // Accept either a single `verify_cmd` or a `verify_cmds` list; merge both.
429
+ verifyCmds: [
430
+ ...config.getList(cfg, "acceptance.verify_cmds"),
431
+ ...(() => {
432
+ const single = config.get(cfg, "acceptance.verify_cmd", "").trim();
433
+ return single ? [single] : [];
434
+ })(),
435
+ ],
436
+ timeoutMs: config.getDuration(cfg, "acceptance.timeout", 300000),
437
+ assertNoTodo: truthySetting(config.get(cfg, "acceptance.assert_no_todo", "false")),
438
+ assertNoSkippedTests: truthySetting(config.get(cfg, "acceptance.assert_no_skipped_tests", "false")),
439
+ assertNoSecrets: truthySetting(config.get(cfg, "acceptance.assert_no_secrets", "false")),
440
+ assertCleanTree: truthySetting(config.get(cfg, "acceptance.assert_clean_tree", "false")),
441
+ screenTestTamper: truthySetting(config.get(cfg, "acceptance.screen_test_tamper", "false")),
442
+ criteria: config.getList(cfg, "acceptance.criteria"),
443
+ },
444
+ ask: {
445
+ event: config.get(cfg, "event_loop.ask_event", "human.ask"),
446
+ enabled: config.get(cfg, "event_loop.ask_event", "human.ask") !== "",
447
+ timeoutMs: config.getDuration(cfg, "event_loop.ask_timeout", 300000),
448
+ pollMs: config.getInt(cfg, "event_loop.ask_poll_ms", 500),
449
+ },
450
+ backend: maxIterationRuntimeMs > 0
451
+ ? { ...backend, timeoutMs: maxIterationRuntimeMs }
452
+ : backend,
332
453
  review: {
333
454
  ...review,
334
455
  prompt: (() => {
@@ -338,12 +459,31 @@ export function reloadLoop(loop) {
338
459
  })(),
339
460
  },
340
461
  parallel,
462
+ stage: readStageConfig(cfg),
463
+ hooks: {
464
+ // Hook commands get the same template vars as role prompts ({{PRESET_DIR}},
465
+ // {{TOOL_PATH}}, {{STATE_DIR}}) so a hook can reference preset-bundled scripts by
466
+ // path — e.g. a deterministic bootstrap (okf-init) run before any agent turn.
467
+ preRun: expandTemplatePlaceholders(config.get(cfg, "hooks.pre_run", ""), templateVars),
468
+ preIteration: expandTemplatePlaceholders(config.get(cfg, "hooks.pre_iteration", ""), templateVars),
469
+ postIteration: expandTemplatePlaceholders(config.get(cfg, "hooks.post_iteration", ""), templateVars),
470
+ postRun: expandTemplatePlaceholders(config.get(cfg, "hooks.post_run", ""), templateVars),
471
+ strict: config.get(cfg, "hooks.strict", "false") === "true",
472
+ specs: expandHookSpecCommands(presetFile
473
+ ? config.loadHookSpecsFromFile(presetFile)
474
+ : config.loadHookSpecs(pd), templateVars),
475
+ },
341
476
  memory: {
342
477
  budgetChars: config.getInt(cfg, "memory.prompt_budget_chars", 8000),
343
478
  },
344
479
  tasks: {
345
480
  budgetChars: config.getInt(cfg, "tasks.prompt_budget_chars", 4000),
346
481
  },
482
+ progress: {
483
+ metricCmd: config.get(cfg, "progress.metric_cmd", ""),
484
+ name: config.get(cfg, "progress.name", "progress"),
485
+ timeoutMs: config.getDuration(cfg, "progress.timeout", 60000),
486
+ },
347
487
  harness: {
348
488
  instructions: (() => {
349
489
  const raw = readOptionalProjectFile(pd, config.get(cfg, "harness.instructions_file", "harness.md"));
@@ -356,49 +496,143 @@ export function reloadLoop(loop) {
356
496
  paths: loop.paths,
357
497
  runtime: loop.runtime,
358
498
  launch: loop.launch,
359
- store: {
360
- ...loop.store,
361
- ...(backend.kind === "kiro"
362
- ? {
363
- kiro_trust_all_tools: config.get(cfg, "backend.trust_all_tools", "true") !== "false",
364
- kiro_agent: config.get(cfg, "backend.agent", ""),
365
- kiro_model: config.get(cfg, "backend.model", ""),
366
- }
367
- : {}),
368
- },
499
+ store: loop.store,
369
500
  agentMap: loadAgentMap(pd),
501
+ // Alias, never copy: all reloaded contexts must share one session holder.
502
+ acpSession: loop.acpSession ?? { current: undefined },
503
+ piSession: loop.piSession ?? { current: undefined },
504
+ claudeSdkSession: loop.claudeSdkSession ?? { current: undefined },
505
+ commandSession: loop.commandSession ?? { current: undefined },
370
506
  onEvent: loop.onEvent,
507
+ signal: loop.signal,
371
508
  };
372
509
  return applyRuntimeModeOverrides(updated);
373
510
  }
374
511
  function readBackendConfig(cfg, bo) {
375
- const command = processStringOverride(bo, "command", config.get(cfg, "backend.command", "claude"));
376
- const kind = resolveProcessKind(processStringOverride(bo, "kind", config.get(cfg, "backend.kind", "")), command);
377
- const args = injectClaudePermissions(command, processListOverride(bo, "args", configListWithFallback(cfg, "backend.args", [])));
378
- const promptMode = normalizePromptMode(processStringOverride(bo, "prompt_mode", config.get(cfg, "backend.prompt_mode", "arg")));
512
+ let rawKind = processStringOverride(bo, "kind", config.get(cfg, "backend.kind", ""));
513
+ const cfgCommandMarker = "__missing_command__";
514
+ const cfgCommand = config.get(cfg, "backend.command", cfgCommandMarker);
515
+ const explicitCommand = typeof bo.command === "string"
516
+ ? bo.command
517
+ : cfgCommand !== cfgCommandMarker
518
+ ? cfgCommand
519
+ : "";
520
+ const rawProvider = processStringOverride(bo, "provider", config.get(cfg, "backend.provider", ""));
521
+ const acpProvider = resolveAcpProvider({
522
+ kind: rawKind,
523
+ provider: rawProvider,
524
+ command: explicitCommand,
525
+ });
526
+ // If the config specifies an explicit provider (not a generic fallback), ensure
527
+ // the ACP path so that resolveProcessKind derives the right backend kind.
528
+ // This handles the case where `backend.provider = "hermes"` is set in config
529
+ // without an explicit `backend.kind`.
530
+ if (!rawKind && rawProvider && acpProvider.id !== "generic") {
531
+ rawKind = "acp";
532
+ }
533
+ const commandFallback = isAcpBackendKind(rawKind)
534
+ ? acpProvider.defaultCommand
535
+ : "claude";
536
+ const command = processStringOverride(bo, "command", cfgCommand !== cfgCommandMarker ? cfgCommand : commandFallback);
537
+ const cfgArgsMarker = "__missing_args__";
538
+ const rawCfgArgs = config.get(cfg, "backend.args", cfgArgsMarker);
539
+ const hasCustomArgs = (Array.isArray(bo.args) && bo.args.length > 0) ||
540
+ (rawCfgArgs !== cfgArgsMarker && splitCsv(rawCfgArgs).length > 0);
541
+ const kind = resolveProcessKind(rawKind, command, { hasCustomArgs });
542
+ const provider = kind === "acp" ? acpProvider.id : "";
543
+ const argsFallback = rawCfgArgs === cfgArgsMarker
544
+ ? kind === "acp"
545
+ ? acpProvider.defaultArgs
546
+ : []
547
+ : configListWithFallback(cfg, "backend.args", []);
548
+ const rawArgs = processListOverride(bo, "args", argsFallback);
549
+ const args = kind === "command" ? injectClaudePermissions(command, rawArgs) : rawArgs;
550
+ const cfgPromptMarker = "__missing_prompt_mode__";
551
+ const rawCfgPromptMode = config.get(cfg, "backend.prompt_mode", cfgPromptMarker);
552
+ const promptModeFallback = rawCfgPromptMode === cfgPromptMarker
553
+ ? kind === "acp"
554
+ ? acpProvider.defaultPromptMode
555
+ : "arg"
556
+ : rawCfgPromptMode;
557
+ const promptMode = normalizePromptMode(processStringOverride(bo, "prompt_mode", promptModeFallback));
379
558
  const timeoutMs = processIntOverride(bo, "timeout_ms", config.getInt(cfg, "backend.timeout_ms", 300000));
380
- return { kind, command, args, promptMode, timeoutMs };
559
+ const trustAllTools = processBoolOverride(bo, "trust_all_tools", config.get(cfg, "backend.trust_all_tools", "true") !== "false");
560
+ const agent = processStringOverride(bo, "agent", config.get(cfg, "backend.agent", ""));
561
+ const model = processStringOverride(bo, "model", config.get(cfg, "backend.model", ""));
562
+ const profile = processStringOverride(bo, "profile", config.get(cfg, "backend.profile", ""));
563
+ // Tools the backend must NOT expose to the agent (claude-sdk only). Opt-in via
564
+ // `backend.disallowed_tools` (CSV); empty by default so other presets are
565
+ // unaffected. Used e.g. to force a preset onto a dedicated capture tool by
566
+ // removing the built-in WebFetch/WebSearch.
567
+ const disallowedTools = config.getList(cfg, "backend.disallowed_tools");
568
+ // Opt-in cost-telemetry convention for `command`-kind backends. See
569
+ // `usage_from` in config-schema.ts for the contract.
570
+ const usageFrom = processStringOverride(bo, "usage_from", config.get(cfg, "backend.usage_from", ""));
571
+ return {
572
+ kind,
573
+ provider,
574
+ command,
575
+ args,
576
+ promptMode,
577
+ timeoutMs,
578
+ trustAllTools,
579
+ agent,
580
+ model,
581
+ profile,
582
+ disallowedTools,
583
+ usageFrom,
584
+ };
381
585
  }
382
586
  function readReviewConfig(cfg, topoData, projectDir, backend) {
383
587
  const command = config.get(cfg, "review.command", backend.command);
384
588
  const kind = resolveProcessKind(config.get(cfg, "review.kind", backend.kind), command);
589
+ const provider = config.get(cfg, "review.provider", backend.provider);
385
590
  return {
386
591
  enabled: truthySetting(config.get(cfg, "review.enabled", "true")),
387
592
  every: resolveReviewEvery(cfg, topoData),
388
593
  adversarialFirst: truthySetting(config.get(cfg, "review.adversarial_first", "true")),
389
594
  kind,
595
+ provider: kind === "acp" ? provider || backend.provider || "generic" : "",
390
596
  command,
391
597
  args: configListWithFallback(cfg, "review.args", backend.args),
392
598
  promptMode: normalizePromptMode(config.get(cfg, "review.prompt_mode", backend.promptMode)),
393
599
  prompt: resolveReviewPrompt(projectDir, cfg),
394
600
  timeoutMs: config.getInt(cfg, "review.timeout_ms", 300000),
601
+ trustAllTools: config.get(cfg, "review.trust_all_tools", String(backend.trustAllTools)) !== "false",
602
+ agent: config.get(cfg, "review.agent", backend.agent),
603
+ model: config.get(cfg, "review.model", backend.model),
604
+ profile: config.get(cfg, "review.profile", backend.profile ?? ""),
605
+ onError: normalizeReviewOnError(config.get(cfg, "review.on_error", "hold")),
606
+ minConfidence: config.getFloat(cfg, "review.min_confidence", 0.5),
395
607
  };
396
608
  }
609
+ /**
610
+ * Coerce the `review.on_error` setting to a known mode, defaulting to the
611
+ * fail-closed `hold` for unset or unrecognized values.
612
+ */
613
+ function normalizeReviewOnError(raw) {
614
+ const v = raw.trim().toLowerCase();
615
+ return v === "exit" || v === "continue" ? v : "hold";
616
+ }
397
617
  function readParallelConfig(cfg) {
398
618
  return {
399
619
  enabled: truthySetting(config.get(cfg, "parallel.enabled", "false")),
400
620
  maxBranches: config.getInt(cfg, "parallel.max_branches", 3),
401
621
  branchTimeoutMs: config.getInt(cfg, "parallel.branch_timeout_ms", 180000),
622
+ aggregate: {
623
+ mode: normalizeAggregateMode(config.get(cfg, "parallel.aggregate.mode", "wait_for_all")),
624
+ timeoutMs: config.getInt(cfg, "parallel.aggregate.timeout_ms", 0),
625
+ },
626
+ };
627
+ }
628
+ /** Fallback-safe aggregate-mode guard: unrecognized values default to `wait_for_all`. */
629
+ function normalizeAggregateMode(raw) {
630
+ return raw === "first_success" || raw === "timeout" ? raw : "wait_for_all";
631
+ }
632
+ function readStageConfig(cfg) {
633
+ return {
634
+ concurrency: config.getInt(cfg, "stage.concurrency", concurrency.defaultConcurrency()),
635
+ branchTimeoutMs: config.getInt(cfg, "stage.branch_timeout_ms", 180000),
402
636
  };
403
637
  }
404
638
  export function applyRuntimeModeOverrides(loop) {
@@ -415,6 +649,14 @@ export function applyRuntimeModeOverrides(loop) {
415
649
  },
416
650
  };
417
651
  }
652
+ /** Apply the same template-placeholder expansion legacy hook fields get to
653
+ * every structured hook spec's command (e.g. `{{PRESET_DIR}}`, `{{TOOL_PATH}}`). */
654
+ function expandHookSpecCommands(specs, templateVars) {
655
+ return specs.map((spec) => ({
656
+ ...spec,
657
+ command: expandTemplatePlaceholders(spec.command, templateVars),
658
+ }));
659
+ }
418
660
  export function initStore(loop) {
419
661
  return {
420
662
  ...loop,
@@ -1 +1 @@
1
- {"version":3,"file":"config-helpers.js","sourceRoot":"","sources":["../src/config-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-helpers.js","sourceRoot":"","sources":["../src/config-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { LiveControlAdapter } from "./adapter.js";
2
+ export interface AcpAdapterHooks {
3
+ /** Called when the supervisor asks the backend to cancel its in-flight turn. */
4
+ triggerInterrupt: () => void;
5
+ }
6
+ /**
7
+ * Live-control adapter for ACP backends. ACP clients expose a cancellable
8
+ * in-flight turn, and the harness also kills the detached child process group as
9
+ * a fallback via the provided `triggerInterrupt` hook.
10
+ */
11
+ export declare function acpControlAdapter(runId: string, provider: string, hooks: AcpAdapterHooks): LiveControlAdapter;
12
+ export declare function kiroControlAdapter(runId: string, hooks: AcpAdapterHooks): LiveControlAdapter;
@@ -0,0 +1,54 @@
1
+ import { defaultCapabilities } from "./capabilities.js";
2
+ /**
3
+ * Live-control adapter for ACP backends. ACP clients expose a cancellable
4
+ * in-flight turn, and the harness also kills the detached child process group as
5
+ * a fallback via the provided `triggerInterrupt` hook.
6
+ */
7
+ export function acpControlAdapter(runId, provider, hooks) {
8
+ const providerLabel = provider || "generic";
9
+ const caps = buildCapabilities(runId, providerLabel);
10
+ return {
11
+ backend: `acp:${providerLabel}`,
12
+ capabilities() {
13
+ return caps;
14
+ },
15
+ onRequest(request) {
16
+ if (request.verb === "interrupt") {
17
+ return applyInterrupt(hooks);
18
+ }
19
+ if (request.verb === "guide") {
20
+ const payload = request.payload;
21
+ if (payload?.interrupt) {
22
+ return applyInterrupt(hooks, "guidance-driven");
23
+ }
24
+ return { state: "applied", detail: "guidance appended" };
25
+ }
26
+ return { state: "ignored", detail: `unknown verb: ${request.verb}` };
27
+ },
28
+ };
29
+ }
30
+ export function kiroControlAdapter(runId, hooks) {
31
+ return acpControlAdapter(runId, "kiro", hooks);
32
+ }
33
+ function buildCapabilities(runId, provider) {
34
+ const base = defaultCapabilities(`acp:${provider}`, runId);
35
+ base.interrupt = {
36
+ supported: true,
37
+ detail: "ACP cancel + child-process-group SIGTERM",
38
+ };
39
+ return base;
40
+ }
41
+ function applyInterrupt(hooks, detailPrefix = "interrupt") {
42
+ try {
43
+ hooks.triggerInterrupt();
44
+ return { state: "applied", detail: `${detailPrefix}: signalled ACP` };
45
+ }
46
+ catch (err) {
47
+ const msg = err instanceof Error ? err.message : String(err);
48
+ return {
49
+ state: "rejected",
50
+ detail: `${detailPrefix}: signal failed: ${msg}`,
51
+ };
52
+ }
53
+ }
54
+ //# sourceMappingURL=acp-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-adapter.js","sourceRoot":"","sources":["../../src/control/acp-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAaxD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,QAAgB,EAChB,KAAsB;IAEtB,MAAM,aAAa,GAAG,QAAQ,IAAI,SAAS,CAAC;IAC5C,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAErD,OAAO;QACL,OAAO,EAAE,OAAO,aAAa,EAAE;QAC/B,YAAY;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,SAAS,CAAC,OAAuB;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACjC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAuB,CAAC;gBAChD,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;oBACvB,OAAO,cAAc,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC3D,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACvE,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,KAAsB;IAEtB,OAAO,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAa,EACb,QAAgB;IAEhB,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,GAAG;QACf,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,0CAA0C;KACnD,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,KAAsB,EACtB,YAAY,GAAG,WAAW;IAE1B,IAAI,CAAC;QACH,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,iBAAiB,EAAE,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,GAAG,YAAY,oBAAoB,GAAG,EAAE;SACjD,CAAC;IACJ,CAAC;AACH,CAAC"}