@mobrienv/autoloop 0.1.3 → 0.2.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 (328) hide show
  1. package/README.md +13 -0
  2. package/bin/autoloop +0 -0
  3. package/dist/agent-map.d.ts +10 -0
  4. package/dist/agent-map.js +58 -0
  5. package/dist/agent-map.js.map +1 -0
  6. package/dist/backend/acp-client.d.ts +32 -0
  7. package/dist/backend/acp-client.js +210 -0
  8. package/dist/backend/acp-client.js.map +1 -0
  9. package/dist/backend/index.d.ts +1 -1
  10. package/dist/backend/index.js +17 -5
  11. package/dist/backend/index.js.map +1 -1
  12. package/dist/backend/kiro-bridge.d.ts +17 -0
  13. package/dist/backend/kiro-bridge.js +80 -0
  14. package/dist/backend/kiro-bridge.js.map +1 -0
  15. package/dist/backend/kiro-worker.d.ts +1 -0
  16. package/dist/backend/kiro-worker.js +83 -0
  17. package/dist/backend/kiro-worker.js.map +1 -0
  18. package/dist/backend/run-command.js +2 -2
  19. package/dist/backend/run-command.js.map +1 -1
  20. package/dist/backend/run-kiro.d.ts +3 -0
  21. package/dist/backend/run-kiro.js +12 -0
  22. package/dist/backend/run-kiro.js.map +1 -0
  23. package/dist/backend/run-pi.js.map +1 -1
  24. package/dist/chains/budget.js +16 -4
  25. package/dist/chains/budget.js.map +1 -1
  26. package/dist/chains/load.d.ts +7 -1
  27. package/dist/chains/load.js +58 -9
  28. package/dist/chains/load.js.map +1 -1
  29. package/dist/chains/render.js +36 -8
  30. package/dist/chains/render.js.map +1 -1
  31. package/dist/chains/run.js +129 -44
  32. package/dist/chains/run.js.map +1 -1
  33. package/dist/chains/types.d.ts +1 -0
  34. package/dist/chains.d.ts +5 -4
  35. package/dist/chains.js +3 -3
  36. package/dist/chains.js.map +1 -1
  37. package/dist/commands/chain.js +6 -4
  38. package/dist/commands/chain.js.map +1 -1
  39. package/dist/commands/config.d.ts +1 -0
  40. package/dist/commands/config.js +74 -0
  41. package/dist/commands/config.js.map +1 -0
  42. package/dist/commands/dashboard.d.ts +1 -0
  43. package/dist/commands/dashboard.js +68 -0
  44. package/dist/commands/dashboard.js.map +1 -0
  45. package/dist/commands/inspect.js +125 -17
  46. package/dist/commands/inspect.js.map +1 -1
  47. package/dist/commands/list.d.ts +1 -1
  48. package/dist/commands/list.js +6 -3
  49. package/dist/commands/list.js.map +1 -1
  50. package/dist/commands/loops.js +11 -11
  51. package/dist/commands/loops.js.map +1 -1
  52. package/dist/commands/memory.js +2 -2
  53. package/dist/commands/memory.js.map +1 -1
  54. package/dist/commands/run.d.ts +1 -1
  55. package/dist/commands/run.js +121 -19
  56. package/dist/commands/run.js.map +1 -1
  57. package/dist/commands/runs.d.ts +1 -0
  58. package/dist/commands/runs.js +50 -0
  59. package/dist/commands/runs.js.map +1 -0
  60. package/dist/commands/task.d.ts +1 -0
  61. package/dist/commands/task.js +74 -0
  62. package/dist/commands/task.js.map +1 -0
  63. package/dist/commands/worktree.d.ts +1 -0
  64. package/dist/commands/worktree.js +162 -0
  65. package/dist/commands/worktree.js.map +1 -0
  66. package/dist/config.d.ts +16 -1
  67. package/dist/config.js +105 -13
  68. package/dist/config.js.map +1 -1
  69. package/dist/dashboard/app.d.ts +12 -0
  70. package/dist/dashboard/app.js +23 -0
  71. package/dist/dashboard/app.js.map +1 -0
  72. package/dist/dashboard/routes/api.d.ts +3 -0
  73. package/dist/dashboard/routes/api.js +103 -0
  74. package/dist/dashboard/routes/api.js.map +1 -0
  75. package/dist/dashboard/routes/pages.d.ts +2 -0
  76. package/dist/dashboard/routes/pages.js +14 -0
  77. package/dist/dashboard/routes/pages.js.map +1 -0
  78. package/dist/dashboard/views/alpine-vendor.d.ts +1 -0
  79. package/dist/dashboard/views/alpine-vendor.js +10 -0
  80. package/dist/dashboard/views/alpine-vendor.js.map +1 -0
  81. package/dist/dashboard/views/shell.d.ts +1 -0
  82. package/dist/dashboard/views/shell.js +714 -0
  83. package/dist/dashboard/views/shell.js.map +1 -0
  84. package/dist/events/decode.js.map +1 -1
  85. package/dist/events/encode.js +2 -2
  86. package/dist/events/encode.js.map +1 -1
  87. package/dist/harness/config-helpers.d.ts +11 -0
  88. package/dist/harness/config-helpers.js +242 -64
  89. package/dist/harness/config-helpers.js.map +1 -1
  90. package/dist/harness/coordination.js +12 -12
  91. package/dist/harness/coordination.js.map +1 -1
  92. package/dist/harness/display.d.ts +4 -3
  93. package/dist/harness/display.js +57 -11
  94. package/dist/harness/display.js.map +1 -1
  95. package/dist/harness/emit.js +31 -13
  96. package/dist/harness/emit.js.map +1 -1
  97. package/dist/harness/index.d.ts +7 -7
  98. package/dist/harness/index.js +151 -35
  99. package/dist/harness/index.js.map +1 -1
  100. package/dist/harness/iteration.d.ts +12 -0
  101. package/dist/harness/iteration.js +66 -64
  102. package/dist/harness/iteration.js.map +1 -1
  103. package/dist/harness/journal.d.ts +17 -0
  104. package/dist/harness/journal.js +74 -5
  105. package/dist/harness/journal.js.map +1 -1
  106. package/dist/harness/metareview.js +30 -15
  107. package/dist/harness/metareview.js.map +1 -1
  108. package/dist/harness/metrics.js +12 -12
  109. package/dist/harness/metrics.js.map +1 -1
  110. package/dist/harness/parallel.d.ts +1 -1
  111. package/dist/harness/parallel.js +141 -62
  112. package/dist/harness/parallel.js.map +1 -1
  113. package/dist/harness/prompt.d.ts +18 -9
  114. package/dist/harness/prompt.js +80 -44
  115. package/dist/harness/prompt.js.map +1 -1
  116. package/dist/harness/scratchpad.js +8 -6
  117. package/dist/harness/scratchpad.js.map +1 -1
  118. package/dist/harness/stop.js +16 -9
  119. package/dist/harness/stop.js.map +1 -1
  120. package/dist/harness/tools.js +39 -13
  121. package/dist/harness/tools.js.map +1 -1
  122. package/dist/harness/types.d.ts +29 -0
  123. package/dist/harness/wave/finalize-wave.d.ts +1 -1
  124. package/dist/harness/wave/finalize-wave.js +36 -9
  125. package/dist/harness/wave/finalize-wave.js.map +1 -1
  126. package/dist/harness/wave/launch-branches.d.ts +2 -2
  127. package/dist/harness/wave/launch-branches.js +147 -51
  128. package/dist/harness/wave/launch-branches.js.map +1 -1
  129. package/dist/harness/wave/parse-objectives.js +4 -1
  130. package/dist/harness/wave/parse-objectives.js.map +1 -1
  131. package/dist/harness/wave.d.ts +2 -2
  132. package/dist/harness/wave.js +89 -28
  133. package/dist/harness/wave.js.map +1 -1
  134. package/dist/isolation/index.d.ts +4 -0
  135. package/dist/isolation/index.js +3 -0
  136. package/dist/isolation/index.js.map +1 -0
  137. package/dist/isolation/resolve.d.ts +39 -0
  138. package/dist/isolation/resolve.js +118 -0
  139. package/dist/isolation/resolve.js.map +1 -0
  140. package/dist/isolation/run-scope.d.ts +21 -0
  141. package/dist/isolation/run-scope.js +50 -0
  142. package/dist/isolation/run-scope.js.map +1 -0
  143. package/dist/json.js +10 -8
  144. package/dist/json.js.map +1 -1
  145. package/dist/loops/health.d.ts +4 -2
  146. package/dist/loops/health.js +73 -25
  147. package/dist/loops/health.js.map +1 -1
  148. package/dist/loops/list.d.ts +2 -2
  149. package/dist/loops/list.js +6 -6
  150. package/dist/loops/list.js.map +1 -1
  151. package/dist/loops/policy.d.ts +6 -0
  152. package/dist/loops/policy.js +41 -0
  153. package/dist/loops/policy.js.map +1 -0
  154. package/dist/loops/render.d.ts +2 -1
  155. package/dist/loops/render.js +24 -11
  156. package/dist/loops/render.js.map +1 -1
  157. package/dist/loops/show.d.ts +2 -2
  158. package/dist/loops/show.js +13 -13
  159. package/dist/loops/show.js.map +1 -1
  160. package/dist/loops/watch.d.ts +7 -1
  161. package/dist/loops/watch.js +82 -16
  162. package/dist/loops/watch.js.map +1 -1
  163. package/dist/main.js +48 -11
  164. package/dist/main.js.map +1 -1
  165. package/dist/markdown.js +11 -11
  166. package/dist/markdown.js.map +1 -1
  167. package/dist/memory-render.js +5 -5
  168. package/dist/memory-render.js.map +1 -1
  169. package/dist/memory.d.ts +1 -2
  170. package/dist/memory.js +44 -40
  171. package/dist/memory.js.map +1 -1
  172. package/dist/pi-adapter.js +11 -11
  173. package/dist/pi-adapter.js.map +1 -1
  174. package/dist/profiles.d.ts +12 -0
  175. package/dist/profiles.js +71 -0
  176. package/dist/profiles.js.map +1 -0
  177. package/dist/registry/derive.js +10 -3
  178. package/dist/registry/derive.js.map +1 -1
  179. package/dist/registry/discover.d.ts +20 -0
  180. package/dist/registry/discover.js +98 -0
  181. package/dist/registry/discover.js.map +1 -0
  182. package/dist/registry/harness.js +8 -2
  183. package/dist/registry/harness.js.map +1 -1
  184. package/dist/registry/index.d.ts +4 -3
  185. package/dist/registry/index.js +3 -2
  186. package/dist/registry/index.js.map +1 -1
  187. package/dist/registry/read.js.map +1 -1
  188. package/dist/registry/rebuild.js +7 -4
  189. package/dist/registry/rebuild.js.map +1 -1
  190. package/dist/registry/types.d.ts +9 -0
  191. package/dist/registry/update.js +1 -1
  192. package/dist/registry/update.js.map +1 -1
  193. package/dist/tasks-render.d.ts +2 -0
  194. package/dist/tasks-render.js +44 -0
  195. package/dist/tasks-render.js.map +1 -0
  196. package/dist/tasks.d.ts +24 -0
  197. package/dist/tasks.js +184 -0
  198. package/dist/tasks.js.map +1 -0
  199. package/dist/testing/mock-backend.js +2 -2
  200. package/dist/testing/mock-backend.js.map +1 -1
  201. package/dist/topology.d.ts +6 -0
  202. package/dist/topology.js +129 -8
  203. package/dist/topology.js.map +1 -1
  204. package/dist/usage.d.ts +1 -0
  205. package/dist/usage.js +56 -11
  206. package/dist/usage.js.map +1 -1
  207. package/dist/utils.d.ts +6 -0
  208. package/dist/utils.js +272 -2
  209. package/dist/utils.js.map +1 -1
  210. package/dist/worktree/clean.d.ts +12 -0
  211. package/dist/worktree/clean.js +98 -0
  212. package/dist/worktree/clean.js.map +1 -0
  213. package/dist/worktree/create.d.ts +14 -0
  214. package/dist/worktree/create.js +71 -0
  215. package/dist/worktree/create.js.map +1 -0
  216. package/dist/worktree/index.d.ts +10 -0
  217. package/dist/worktree/index.js +6 -0
  218. package/dist/worktree/index.js.map +1 -0
  219. package/dist/worktree/list.d.ts +9 -0
  220. package/dist/worktree/list.js +24 -0
  221. package/dist/worktree/list.js.map +1 -0
  222. package/dist/worktree/merge.d.ts +11 -0
  223. package/dist/worktree/merge.js +129 -0
  224. package/dist/worktree/merge.js.map +1 -0
  225. package/dist/worktree/meta.d.ts +17 -0
  226. package/dist/worktree/meta.js +34 -0
  227. package/dist/worktree/meta.js.map +1 -0
  228. package/package.json +24 -4
  229. package/presets/autocode/README.md +1 -1
  230. package/presets/autocode/autoloops.toml +9 -1
  231. package/presets/autocode/harness.md +12 -5
  232. package/presets/autocode/roles/build.md +5 -4
  233. package/presets/autocode/roles/critic.md +2 -2
  234. package/presets/autocode/roles/finalizer.md +2 -2
  235. package/presets/autocode/roles/planner.md +7 -7
  236. package/presets/autodoc/README.md +1 -1
  237. package/presets/autodoc/autoloops.toml +1 -1
  238. package/presets/autodoc/harness.md +6 -6
  239. package/presets/autodoc/roles/auditor.md +3 -3
  240. package/presets/autodoc/roles/checker.md +2 -2
  241. package/presets/autodoc/roles/publisher.md +3 -3
  242. package/presets/autodoc/roles/writer.md +4 -4
  243. package/presets/autofix/README.md +1 -1
  244. package/presets/autofix/autoloops.toml +5 -2
  245. package/presets/autofix/harness.md +8 -7
  246. package/presets/autofix/roles/closer.md +4 -4
  247. package/presets/autofix/roles/diagnoser.md +6 -5
  248. package/presets/autofix/roles/fixer.md +4 -4
  249. package/presets/autofix/roles/verifier.md +2 -2
  250. package/presets/autoideas/README.md +1 -1
  251. package/presets/autoideas/autoloops.toml +1 -1
  252. package/presets/autoideas/harness.md +11 -11
  253. package/presets/autoideas/roles/analyst.md +4 -4
  254. package/presets/autoideas/roles/reviewer.md +3 -3
  255. package/presets/autoideas/roles/scanner.md +3 -3
  256. package/presets/autoideas/roles/synthesizer.md +20 -7
  257. package/presets/automerge/README.md +3 -0
  258. package/presets/automerge/autoloops.toml +12 -0
  259. package/presets/automerge/harness.md +10 -0
  260. package/presets/automerge/miniloops.toml +12 -0
  261. package/presets/automerge/roles/merge.md +10 -0
  262. package/presets/automerge/topology.toml +10 -0
  263. package/presets/autoperf/README.md +1 -1
  264. package/presets/autoperf/autoloops.toml +1 -1
  265. package/presets/autoperf/harness.md +5 -5
  266. package/presets/autoperf/roles/judge.md +3 -3
  267. package/presets/autoperf/roles/measurer.md +4 -4
  268. package/presets/autoperf/roles/optimizer.md +4 -4
  269. package/presets/autoperf/roles/profiler.md +4 -4
  270. package/presets/autopr/README.md +99 -0
  271. package/presets/autopr/autoloops.toml +22 -0
  272. package/presets/autopr/harness.md +27 -0
  273. package/presets/autopr/miniloops.toml +22 -0
  274. package/presets/autopr/roles/collector.md +55 -0
  275. package/presets/autopr/roles/drafter.md +38 -0
  276. package/presets/autopr/roles/publisher.md +28 -0
  277. package/presets/autopr/roles/validator.md +31 -0
  278. package/presets/autopr/topology.toml +32 -0
  279. package/presets/autoqa/README.md +1 -1
  280. package/presets/autoqa/autoloops.toml +1 -1
  281. package/presets/autoqa/harness.md +10 -10
  282. package/presets/autoqa/roles/executor.md +3 -3
  283. package/presets/autoqa/roles/inspector.md +2 -2
  284. package/presets/autoqa/roles/planner.md +6 -6
  285. package/presets/autoqa/roles/reporter.md +9 -9
  286. package/presets/autoresearch/README.md +1 -1
  287. package/presets/autoresearch/autoloops.toml +1 -1
  288. package/presets/autoresearch/harness.md +5 -5
  289. package/presets/autoresearch/roles/benchmarker.md +3 -3
  290. package/presets/autoresearch/roles/evaluator.md +5 -5
  291. package/presets/autoresearch/roles/implementer.md +4 -4
  292. package/presets/autoresearch/roles/strategist.md +6 -6
  293. package/presets/autoreview/README.md +1 -1
  294. package/presets/autoreview/autoloops.toml +1 -1
  295. package/presets/autoreview/harness.md +5 -5
  296. package/presets/autoreview/roles/checker.md +4 -4
  297. package/presets/autoreview/roles/reader.md +5 -5
  298. package/presets/autoreview/roles/suggester.md +4 -4
  299. package/presets/autoreview/roles/summarizer.md +4 -4
  300. package/presets/autosec/README.md +1 -1
  301. package/presets/autosec/autoloops.toml +1 -1
  302. package/presets/autosec/harness.md +5 -5
  303. package/presets/autosec/roles/analyst.md +4 -4
  304. package/presets/autosec/roles/hardener.md +2 -2
  305. package/presets/autosec/roles/reporter.md +4 -4
  306. package/presets/autosec/roles/scanner.md +3 -3
  307. package/presets/autosimplify/README.md +1 -1
  308. package/presets/autosimplify/autoloops.toml +7 -3
  309. package/presets/autosimplify/harness.md +7 -7
  310. package/presets/autosimplify/roles/reviewer.md +3 -3
  311. package/presets/autosimplify/roles/scoper.md +7 -7
  312. package/presets/autosimplify/roles/simplifier.md +4 -4
  313. package/presets/autosimplify/roles/verifier.md +3 -3
  314. package/presets/autospec/README.md +1 -1
  315. package/presets/autospec/autoloops.toml +1 -1
  316. package/presets/autospec/harness.md +6 -6
  317. package/presets/autospec/roles/clarifier.md +4 -3
  318. package/presets/autospec/roles/critic.md +1 -1
  319. package/presets/autospec/roles/designer.md +3 -3
  320. package/presets/autospec/roles/planner.md +2 -2
  321. package/presets/autospec/roles/researcher.md +3 -3
  322. package/presets/autotest/README.md +1 -1
  323. package/presets/autotest/autoloops.toml +1 -1
  324. package/presets/autotest/harness.md +6 -6
  325. package/presets/autotest/roles/assessor.md +3 -3
  326. package/presets/autotest/roles/runner.md +2 -2
  327. package/presets/autotest/roles/surveyor.md +4 -4
  328. package/presets/autotest/roles/writer.md +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/harness/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/harness/metrics.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { LoopContext } from "./types.js";
2
1
  import type { IterationContext } from "./prompt.js";
2
+ import type { LoopContext } from "./types.js";
3
3
  export interface BranchLaunch {
4
4
  branchId: string;
5
5
  objective: string;
@@ -1,9 +1,9 @@
1
1
  import { writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { jsonField, jsonFieldRaw, jsonBool } from "../json.js";
4
- import { joinCsv, splitCsv, listText, shellQuote } from "../utils.js";
5
- import { extractField, readIfExists, appendAgentEvent, appendEvent } from "./journal.js";
6
- import { buildBackendShellCommand, normalizeBackendLabel, runBackendCommand } from "../backend/index.js";
3
+ import { buildBackendShellCommand, normalizeBackendLabel, runBackendCommand, } from "../backend/index.js";
4
+ import { jsonBool, jsonField, jsonFieldRaw } from "../json.js";
5
+ import { joinCsv, listText, shellQuote, splitCsv } from "../utils.js";
6
+ import { appendAgentEvent, appendEvent, extractField, readIfExists, } from "./journal.js";
7
7
  export function loadParallelBranchLaunch(branchDir) {
8
8
  const line = readIfExists(join(branchDir, "launch.json"));
9
9
  return {
@@ -30,34 +30,52 @@ export function csvFieldList(line, field) {
30
30
  export function parallelBranchBackendOverride(launch) {
31
31
  const override = {};
32
32
  if (launch.backendKind)
33
- override["kind"] = launch.backendKind;
33
+ override.kind = launch.backendKind;
34
34
  if (launch.backendCommand)
35
- override["command"] = launch.backendCommand;
35
+ override.command = launch.backendCommand;
36
36
  if (launch.backendArgs.length > 0)
37
- override["args"] = launch.backendArgs;
37
+ override.args = launch.backendArgs;
38
38
  if (launch.backendPromptMode)
39
- override["prompt_mode"] = launch.backendPromptMode;
39
+ override.prompt_mode = launch.backendPromptMode;
40
40
  return override;
41
41
  }
42
42
  export function writeParallelBranchSummary(branchDir, result) {
43
- const fields = jsonField("branch_id", String(result["branch_id"] ?? "")) + ", " +
44
- jsonField("objective", String(result["objective"] ?? "")) + ", " +
45
- jsonField("stop_reason", String(result["stop_reason"] ?? "unknown")) + ", " +
46
- jsonField("output", String(result["output"] ?? "")) + ", " +
47
- jsonField("routing_event", String(result["routing_event"] ?? "")) + ", " +
48
- jsonField("allowed_roles", joinCsv((result["allowed_roles"] ?? []))) + ", " +
49
- jsonField("allowed_events", joinCsv((result["allowed_events"] ?? []))) + ", " +
50
- jsonField("elapsed_ms", String(result["elapsed_ms"] ?? 0)) + ", " +
51
- jsonField("finished_at_ms", String(result["finished_at_ms"] ?? 0));
52
- writeFileSync(join(branchDir, "summary.json"), "{" + fields + "}\n");
43
+ const fields = jsonField("branch_id", String(result.branch_id ?? "")) +
44
+ ", " +
45
+ jsonField("objective", String(result.objective ?? "")) +
46
+ ", " +
47
+ jsonField("stop_reason", String(result.stop_reason ?? "unknown")) +
48
+ ", " +
49
+ jsonField("output", String(result.output ?? "")) +
50
+ ", " +
51
+ jsonField("routing_event", String(result.routing_event ?? "")) +
52
+ ", " +
53
+ jsonField("allowed_roles", joinCsv((result.allowed_roles ?? []))) +
54
+ ", " +
55
+ jsonField("allowed_events", joinCsv((result.allowed_events ?? []))) +
56
+ ", " +
57
+ jsonField("elapsed_ms", String(result.elapsed_ms ?? 0)) +
58
+ ", " +
59
+ jsonField("finished_at_ms", String(result.finished_at_ms ?? 0));
60
+ writeFileSync(join(branchDir, "summary.json"), `{${fields}}\n`);
53
61
  }
54
62
  export function renderBranchResult(result) {
55
63
  return ("# Branch Result\n\n" +
56
- "Stop reason: `" + (result["stop_reason"] ?? "unknown") + "`\n" +
57
- "Elapsed: `" + (result["elapsed_ms"] ?? 0) + "ms`\n" +
58
- "Routing event: `" + (result["routing_event"] ?? "") + "`\n" +
59
- "Allowed events: " + listText((result["allowed_events"] ?? [])) + "\n\n" +
60
- "## Output\n\n" + (result["output"] ?? "") + "\n");
64
+ "Stop reason: `" +
65
+ (result.stop_reason ?? "unknown") +
66
+ "`\n" +
67
+ "Elapsed: `" +
68
+ (result.elapsed_ms ?? 0) +
69
+ "ms`\n" +
70
+ "Routing event: `" +
71
+ (result.routing_event ?? "") +
72
+ "`\n" +
73
+ "Allowed events: " +
74
+ listText((result.allowed_events ?? [])) +
75
+ "\n\n" +
76
+ "## Output\n\n" +
77
+ (result.output ?? "") +
78
+ "\n");
61
79
  }
62
80
  export function seedBranchContext(loop, routingEvent) {
63
81
  if (routingEvent === "loop.start")
@@ -95,64 +113,125 @@ export function buildReviewCommand(loop, iteration, reviewPrompt) {
95
113
  });
96
114
  }
97
115
  export function runtimeEnvLines(loop, iteration, recentEvent, allowedRoles, allowedEvents, reviewMode) {
98
- let lines = "export MINILOOPS_RUN_ID=" + shellQuote(loop.runtime.runId) + "\n" +
99
- "export MINILOOPS_ITERATION=" + shellQuote(iteration) + "\n";
116
+ let lines = "export AUTOLOOP_RUN_ID=" +
117
+ shellQuote(loop.runtime.runId) +
118
+ "\n" +
119
+ "export AUTOLOOP_ITERATION=" +
120
+ shellQuote(iteration) +
121
+ "\n";
100
122
  if (reviewMode) {
101
- lines += "export MINILOOPS_REVIEW_MODE=" + shellQuote(reviewMode) + "\n";
123
+ lines += `export AUTOLOOP_REVIEW_MODE=${shellQuote(reviewMode)}\n`;
102
124
  }
103
125
  lines +=
104
- "export MINILOOPS_LOG_LEVEL=" + shellQuote(loop.runtime.logLevel) + "\n" +
105
- "export MINILOOPS_COMPLETION_PROMISE=" + shellQuote(loop.completion.promise) + "\n" +
106
- "export MINILOOPS_COMPLETION_EVENT=" + shellQuote(loop.completion.event) + "\n" +
107
- "export MINILOOPS_STATE_DIR=" + shellQuote(loop.paths.stateDir) + "\n" +
108
- "export MINILOOPS_PROJECT_DIR=" + shellQuote(loop.paths.projectDir) + "\n" +
109
- "export MINILOOPS_JOURNAL_FILE=" + shellQuote(loop.paths.journalFile) + "\n" +
110
- "export MINILOOPS_EVENTS_FILE=" + shellQuote(loop.paths.journalFile) + "\n" +
111
- "export MINILOOPS_MEMORY_FILE=" + shellQuote(loop.paths.memoryFile) + "\n" +
112
- "export MINILOOPS_REQUIRED_EVENTS=" + shellQuote(joinCsv(loop.completion.requiredEvents)) + "\n" +
113
- "export MINILOOPS_RECENT_EVENT=" + shellQuote(recentEvent) + "\n" +
114
- "export MINILOOPS_ALLOWED_ROLES=" + shellQuote(allowedRoles) + "\n" +
115
- "export MINILOOPS_ALLOWED_EVENTS=" + shellQuote(allowedEvents) + "\n" +
116
- "export MINILOOPS_BIN=" + shellQuote(loop.paths.toolPath) + "\n";
126
+ "export AUTOLOOP_LOG_LEVEL=" +
127
+ shellQuote(loop.runtime.logLevel) +
128
+ "\n" +
129
+ "export AUTOLOOP_COMPLETION_PROMISE=" +
130
+ shellQuote(loop.completion.promise) +
131
+ "\n" +
132
+ "export AUTOLOOP_COMPLETION_EVENT=" +
133
+ shellQuote(loop.completion.event) +
134
+ "\n" +
135
+ "export AUTOLOOP_STATE_DIR=" +
136
+ shellQuote(loop.paths.stateDir) +
137
+ "\n" +
138
+ "export AUTOLOOP_PROJECT_DIR=" +
139
+ shellQuote(loop.paths.projectDir) +
140
+ "\n" +
141
+ "export AUTOLOOP_JOURNAL_FILE=" +
142
+ shellQuote(loop.paths.journalFile) +
143
+ "\n" +
144
+ "export AUTOLOOP_EVENTS_FILE=" +
145
+ shellQuote(loop.paths.journalFile) +
146
+ "\n" +
147
+ "export AUTOLOOP_MEMORY_FILE=" +
148
+ shellQuote(loop.paths.memoryFile) +
149
+ "\n" +
150
+ "export AUTOLOOP_REQUIRED_EVENTS=" +
151
+ shellQuote(joinCsv(loop.completion.requiredEvents)) +
152
+ "\n" +
153
+ "export AUTOLOOP_RECENT_EVENT=" +
154
+ shellQuote(recentEvent) +
155
+ "\n" +
156
+ "export AUTOLOOP_ALLOWED_ROLES=" +
157
+ shellQuote(allowedRoles) +
158
+ "\n" +
159
+ "export AUTOLOOP_ALLOWED_EVENTS=" +
160
+ shellQuote(allowedEvents) +
161
+ "\n" +
162
+ "export AUTOLOOP_BIN=" +
163
+ shellQuote(loop.paths.toolPath) +
164
+ "\n";
117
165
  return lines;
118
166
  }
119
167
  // --- Journal append helpers ---
120
168
  export function appendLoopStart(loop) {
121
169
  appendEvent(loop.paths.journalFile, loop.runtime.runId, "", "loop.start", jsonField("max_iterations", String(loop.limits.maxIterations)) +
122
- ", " + jsonField("completion_promise", loop.completion.promise) +
123
- ", " + jsonField("completion_event", loop.completion.event) +
124
- ", " + jsonField("review_every", String(loop.review.every)) +
125
- ", " + jsonField("objective", loop.objective) +
126
- ", " + jsonField("preset", loop.launch.preset) +
127
- ", " + jsonField("trigger", loop.launch.trigger) +
128
- ", " + jsonField("created_at", loop.launch.createdAt) +
129
- ", " + jsonField("project_dir", loop.paths.projectDir) +
130
- ", " + jsonField("work_dir", loop.paths.workDir) +
131
- ", " + jsonField("backend", normalizeBackendLabel(loop.backend.command)) +
132
- ", " + jsonField("parent_run_id", loop.launch.parentRunId));
170
+ ", " +
171
+ jsonField("completion_promise", loop.completion.promise) +
172
+ ", " +
173
+ jsonField("completion_event", loop.completion.event) +
174
+ ", " +
175
+ jsonField("review_every", String(loop.review.every)) +
176
+ ", " +
177
+ jsonField("objective", loop.objective) +
178
+ ", " +
179
+ jsonField("preset", loop.launch.preset) +
180
+ ", " +
181
+ jsonField("trigger", loop.launch.trigger) +
182
+ ", " +
183
+ jsonField("created_at", loop.launch.createdAt) +
184
+ ", " +
185
+ jsonField("project_dir", loop.paths.projectDir) +
186
+ ", " +
187
+ jsonField("work_dir", loop.paths.workDir) +
188
+ ", " +
189
+ jsonField("backend", normalizeBackendLabel(loop.backend.command)) +
190
+ ", " +
191
+ jsonField("backend_args", joinCsv(loop.backend.args)) +
192
+ ", " +
193
+ jsonField("parent_run_id", loop.launch.parentRunId) +
194
+ ", " +
195
+ jsonField("isolation_mode", loop.runtime.isolationMode ?? "shared") +
196
+ ", " +
197
+ jsonField("worktree_name", loop.paths.worktreeBranch || "") +
198
+ ", " +
199
+ jsonField("worktree_path", loop.paths.worktreePath || ""));
133
200
  }
134
201
  export function appendIterationStart(loop, iter) {
135
202
  appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "iteration.start", jsonField("recent_event", iter.recentEvent) +
136
- ", " + jsonField("suggested_roles", joinCsv(iter.allowedRoles)) +
137
- ", " + jsonField("allowed_events", joinCsv(iter.allowedEvents)) +
138
- ", " + jsonField("backpressure", iter.backpressure) +
139
- ", " + jsonField("prompt", iter.prompt));
203
+ ", " +
204
+ jsonField("suggested_roles", joinCsv(iter.allowedRoles)) +
205
+ ", " +
206
+ jsonField("allowed_events", joinCsv(iter.allowedEvents)) +
207
+ ", " +
208
+ jsonField("backpressure", iter.backpressure) +
209
+ ", " +
210
+ jsonField("prompt", iter.prompt));
140
211
  }
141
212
  export function appendBackendStart(loop, iter) {
142
213
  appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "backend.start", jsonField("backend_kind", loop.backend.kind) +
143
- ", " + jsonField("command", loop.backend.command) +
144
- ", " + jsonField("prompt_mode", loop.backend.promptMode) +
145
- ", " + jsonField("timeout_ms", String(loop.backend.timeoutMs)));
214
+ ", " +
215
+ jsonField("command", loop.backend.command) +
216
+ ", " +
217
+ jsonField("prompt_mode", loop.backend.promptMode) +
218
+ ", " +
219
+ jsonField("timeout_ms", String(loop.backend.timeoutMs)));
146
220
  }
147
221
  export function appendBackendFinish(loop, iter, output, exitCode, timedOut) {
148
222
  appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "backend.finish", jsonField("exit_code", String(exitCode)) +
149
- ", " + jsonFieldRaw("timed_out", jsonBool(timedOut)) +
150
- ", " + jsonField("output", output));
223
+ ", " +
224
+ jsonFieldRaw("timed_out", jsonBool(timedOut)) +
225
+ ", " +
226
+ jsonField("output", output));
151
227
  }
152
228
  export function appendIterationFinish(loop, iter, output, exitCode, timedOut, elapsedS) {
153
229
  appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "iteration.finish", jsonField("exit_code", String(exitCode)) +
154
- ", " + jsonFieldRaw("timed_out", jsonBool(timedOut)) +
155
- ", " + jsonField("elapsed_s", String(elapsedS)) +
156
- ", " + jsonField("output", output));
230
+ ", " +
231
+ jsonFieldRaw("timed_out", jsonBool(timedOut)) +
232
+ ", " +
233
+ jsonField("elapsed_s", String(elapsedS)) +
234
+ ", " +
235
+ jsonField("output", output));
157
236
  }
158
237
  //# sourceMappingURL=parallel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/harness/parallel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzF,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAkBzG,MAAM,UAAU,wBAAwB,CAAC,SAAiB;IACxD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1D,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;QACzC,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;QAC1C,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC;QACjD,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC;QACjD,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC;QACjD,aAAa,EAAE,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACnD,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;QACpC,WAAW,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC;QAC/C,cAAc,EAAE,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC;QACrD,WAAW,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC;QAC/C,iBAAiB,EAAE,YAAY,CAAC,IAAI,EAAE,qBAAqB,CAAC;QAC5D,QAAQ,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAoB;IAChE,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,WAAW;QAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;IAC9D,IAAI,MAAM,CAAC,cAAc;QAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC;IACvE,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;IACzE,IAAI,MAAM,CAAC,iBAAiB;QAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACjF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAAiB,EAAE,MAA+B;IAC3F,MAAM,MAAM,GACV,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;QAChE,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;QAChE,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,IAAI;QAC3E,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;QAC1D,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;QACxE,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAa,CAAC,CAAC,GAAG,IAAI;QACvF,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAa,CAAC,CAAC,GAAG,IAAI;QACzF,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;QACjE,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA+B;IAChE,OAAO,CACL,qBAAqB;QACrB,gBAAgB,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,GAAG,KAAK;QAC/D,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO;QACpD,kBAAkB,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK;QAC5D,kBAAkB,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAa,CAAC,GAAG,MAAM;QACpF,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAiB,EAAE,YAAoB;IACvE,IAAI,YAAY,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/C,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;IACtG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,SAAiB,EAAE,SAAiB;IACvF,IAAI,UAAU,KAAK,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAC/D,OAAO,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC;AAChE,CAAC;AAUD,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAY,GAAG,SAAS;IACrF,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACnE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAiB,EAAE,IAAsB;IAC3E,OAAO,wBAAwB,CAAC;QAC9B,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,OAAO;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;KACzI,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,SAAiB,EAAE,YAAoB;IAC3F,OAAO,wBAAwB,CAAC;QAC9B,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,yBAAyB,EAAE,YAAY,CAAC;KACtH,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAiB,EACjB,SAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,aAAqB,EACrB,UAAkB;IAElB,IAAI,KAAK,GACP,0BAA0B,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI;QAClE,6BAA6B,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC/D,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,IAAI,+BAA+B,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC3E,CAAC;IACD,KAAK;QACH,6BAA6B,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;YACxE,sCAAsC,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI;YACnF,oCAAoC,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;YAC/E,6BAA6B,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;YACtE,+BAA+B,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI;YAC1E,gCAAgC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;YAC5E,+BAA+B,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI;YAC3E,+BAA+B,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI;YAC1E,mCAAmC,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI;YAChG,gCAAgC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;YACjE,iCAAiC,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,IAAI;YACnE,kCAAkC,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI;YACrE,uBAAuB,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iCAAiC;AAEjC,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,EAAE,EACF,YAAY,EACZ,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,GAAG,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAC/D,IAAI,GAAG,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3D,IAAI,GAAG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;QAC7C,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9C,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAChD,IAAI,GAAG,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACrD,IAAI,GAAG,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACtD,IAAI,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAChD,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,GAAG,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAiB,EAAE,IAAsB;IAC5E,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,iBAAiB,EACjB,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC;QACzC,IAAI,GAAG,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,GAAG,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,GAAG,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAiB,EAAE,IAAsB;IAC1E,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,eAAe,EACf,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACjD,IAAI,GAAG,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACxD,IAAI,GAAG,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAiB,EACjB,IAAsB,EACtB,MAAc,EACd,QAAgB,EAChB,QAAiB;IAEjB,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,gBAAgB,EAChB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CACrC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,IAAsB,EACtB,MAAc,EACd,QAAgB,EAChB,QAAiB,EACjB,QAAgB;IAEhB,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EACtB,kBAAkB,EAClB,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/harness/parallel.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { MemoryStats } from "../memory.js";
1
2
  import * as topology from "../topology.js";
2
3
  import type { LoopContext } from "./index.js";
3
4
  export interface IterationContext {
@@ -10,6 +11,22 @@ export interface IterationContext {
10
11
  scratchpadText: string;
11
12
  memoryText: string;
12
13
  prompt: string;
14
+ roleAgent: string;
15
+ }
16
+ interface DerivedRunContext {
17
+ scratchpadText: string;
18
+ memoryText: string;
19
+ memoryStats: MemoryStats;
20
+ tasksText: string;
21
+ tasksStats: {
22
+ open: number;
23
+ done: number;
24
+ total: number;
25
+ };
26
+ routing: RoutingContext;
27
+ backpressure: string;
28
+ invalidCount: number;
29
+ lastRejected: string;
13
30
  }
14
31
  export declare function buildIterationContext(loop: LoopContext, iteration: number): IterationContext;
15
32
  interface RoutingContext {
@@ -22,14 +39,6 @@ export declare function routingEventFromLines(lines: string[]): string;
22
39
  export declare function latestInvalidNote(runLines: string[]): string;
23
40
  export declare function invalidEventCount(runLines: string[]): number;
24
41
  export declare function lastRejectedTopic(runLines: string[]): string;
25
- export declare function renderIterationPromptText(loop: LoopContext, iteration: number, recentEvent: string, allowedRoles: string[], allowedEvents: string[], backpressure: string, invalidCount: number, lastRejected: string, scratchpadText: string, memoryText: string, memoryStats: {
26
- renderedChars: number;
27
- budgetChars: number;
28
- totalEntries: number;
29
- preferences: number;
30
- learnings: number;
31
- meta: number;
32
- truncated: boolean;
33
- }): string;
42
+ export declare function renderIterationPromptText(loop: LoopContext, iteration: number, derived: DerivedRunContext): string;
34
43
  export declare function renderReviewPromptText(loop: LoopContext, iteration: number, runLines: string[]): string;
35
44
  export {};
@@ -1,28 +1,48 @@
1
- import * as topology from "../topology.js";
2
1
  import * as memory from "../memory.js";
3
- import { listText, joinCsv } from "../utils.js";
4
- import { extractTopic, extractField, extractIteration, readRunLines, } from "./journal.js";
2
+ import { materialize as materializeTasks } from "../tasks.js";
3
+ import { renderTasksPrompt } from "../tasks-render.js";
4
+ import * as topology from "../topology.js";
5
+ import { joinCsv, listText } from "../utils.js";
6
+ import { coordinationTopic, coreSystemTopic, parallelTopic, reservedParallelJoinedTopic, routingTopic, systemTopic, } from "./emit.js";
7
+ import { resolveRoleAgent } from "../agent-map.js";
8
+ import { extractField, extractIteration, extractTopic, readLines, readRunLines, } from "./journal.js";
5
9
  import { renderRunScratchpadPrompt } from "./scratchpad.js";
6
- import { routingTopic, systemTopic, coordinationTopic, coreSystemTopic, parallelTopic, reservedParallelJoinedTopic, } from "./emit.js";
10
+ function deriveRunContext(loop, runLines) {
11
+ const taskLines = readLines(loop.paths.tasksFile);
12
+ const tasksMaterialized = materializeTasks(taskLines);
13
+ const tasksText = renderTasksPrompt(tasksMaterialized, loop.tasks.budgetChars);
14
+ return {
15
+ scratchpadText: renderRunScratchpadPrompt(runLines),
16
+ memoryText: memory.renderFile(loop.paths.memoryFile, loop.memory.budgetChars),
17
+ memoryStats: memory.statsFile(loop.paths.memoryFile, loop.memory.budgetChars),
18
+ tasksText,
19
+ tasksStats: {
20
+ open: tasksMaterialized.open.length,
21
+ done: tasksMaterialized.done.length,
22
+ total: tasksMaterialized.open.length + tasksMaterialized.done.length,
23
+ },
24
+ routing: iterationRoutingContext(loop.topology, runLines),
25
+ backpressure: latestInvalidNote(runLines),
26
+ invalidCount: invalidEventCount(runLines),
27
+ lastRejected: lastRejectedTopic(runLines),
28
+ };
29
+ }
7
30
  export function buildIterationContext(loop, iteration) {
8
31
  const runLines = readRunLines(loop.paths.journalFile, loop.runtime.runId);
9
- const scratchpadText = renderRunScratchpadPrompt(runLines);
10
- const routing = iterationRoutingContext(loop.topology, runLines);
11
- const backpressure = latestInvalidNote(runLines);
12
- const memoryText = memory.renderFile(loop.paths.memoryFile, loop.memory.budgetChars);
13
- const memoryStats = memory.statsFile(loop.paths.memoryFile, loop.memory.budgetChars);
14
- const invalidCount = invalidEventCount(runLines);
15
- const lastRejected = lastRejectedTopic(runLines);
32
+ const derived = deriveRunContext(loop, runLines);
33
+ const activeRole = derived.routing.allowedRoles.length === 1 ? derived.routing.allowedRoles[0] : "";
34
+ const roleAgent = resolveRoleAgent(loop.agentMap, loop.launch.preset, activeRole) || "";
16
35
  return {
17
36
  iteration,
18
- recentEvent: routing.recentEvent,
19
- allowedRoles: routing.allowedRoles,
20
- allowedEvents: routing.allowedEvents,
21
- backpressure,
22
- lastRejected,
23
- scratchpadText,
24
- memoryText,
25
- prompt: renderIterationPromptText(loop, iteration, routing.recentEvent, routing.allowedRoles, routing.allowedEvents, backpressure, invalidCount, lastRejected, scratchpadText, memoryText, memoryStats),
37
+ recentEvent: derived.routing.recentEvent,
38
+ allowedRoles: derived.routing.allowedRoles,
39
+ allowedEvents: derived.routing.allowedEvents,
40
+ backpressure: derived.backpressure,
41
+ lastRejected: derived.lastRejected,
42
+ scratchpadText: derived.scratchpadText,
43
+ memoryText: derived.memoryText,
44
+ prompt: renderIterationPromptText(loop, iteration, derived),
45
+ roleAgent,
26
46
  };
27
47
  }
28
48
  export function iterationRoutingContext(topo, runLines) {
@@ -86,7 +106,10 @@ function csvFieldList(line, field) {
86
106
  const value = extractField(line, field);
87
107
  if (!value)
88
108
  return [];
89
- return value.split(",").map((s) => s.trim()).filter((s) => s !== "");
109
+ return value
110
+ .split(",")
111
+ .map((s) => s.trim())
112
+ .filter((s) => s !== "");
90
113
  }
91
114
  export function routingEventFromLines(lines) {
92
115
  let current = "loop.start";
@@ -150,15 +173,18 @@ export function lastRejectedTopic(runLines) {
150
173
  }
151
174
  return last;
152
175
  }
153
- export function renderIterationPromptText(loop, iteration, recentEvent, allowedRoles, allowedEvents, backpressure, invalidCount, lastRejected, scratchpadText, memoryText, memoryStats) {
176
+ export function renderIterationPromptText(loop, iteration, derived) {
177
+ const { routing, backpressure, memoryStats, memoryText, tasksText, tasksStats, scratchpadText, invalidCount, lastRejected, } = derived;
178
+ const { allowedRoles, allowedEvents, recentEvent } = routing;
154
179
  return ("You are inside a bare-minimal autoloops harness.\n\n" +
155
180
  harnessInstructionsText(loop) +
156
- contextPressureText(memoryStats, invalidCount, lastRejected) +
181
+ contextPressureText(memoryStats, tasksStats, invalidCount, lastRejected) +
157
182
  backpressureText(backpressure) +
158
183
  "Objective:\n" +
159
184
  loop.objective +
160
185
  "\n\n" +
161
- (memoryText ? memoryText + "\n" : "") +
186
+ (memoryText ? `${memoryText}\n` : "") +
187
+ (tasksText ? `${tasksText}\n` : "") +
162
188
  topology.renderWithContext(loop.topology, recentEvent, allowedRoles, allowedEvents) +
163
189
  "\n" +
164
190
  parallelPromptText(loop, allowedEvents) +
@@ -166,7 +192,7 @@ export function renderIterationPromptText(loop, iteration, recentEvent, allowedR
166
192
  `Log level: ${loop.runtime.logLevel}\n` +
167
193
  `Completion event: ${loop.completion.event}\n` +
168
194
  `Completion promise fallback: ${loop.completion.promise}\n` +
169
- `Required events: ${(loop.completion.requiredEvents.length === 0 ? "(none)" : joinCsv(loop.completion.requiredEvents))}\n` +
195
+ `Required events: ${loop.completion.requiredEvents.length === 0 ? "(none)" : joinCsv(loop.completion.requiredEvents)}\n` +
170
196
  `Loop-owned working files belong under: ${loop.paths.stateDir}\n` +
171
197
  `Do not leave loop-owned artifacts at the repo root. Use paths under ${loop.paths.stateDir} such as ${loop.paths.stateDir}/progress.md or ${loop.paths.stateDir}/logs/.\n` +
172
198
  `Suggested next roles now: ${listText(allowedRoles)}\n` +
@@ -188,7 +214,11 @@ export function renderIterationPromptText(loop, iteration, recentEvent, allowedR
188
214
  loop.paths.toolPath +
189
215
  ' memory add learning "durable lesson"\n' +
190
216
  loop.paths.toolPath +
191
- ' memory add preference Workflow "short preference note"\n\n' +
217
+ ' memory add preference Workflow "short preference note"\n' +
218
+ loop.paths.toolPath +
219
+ ' task add "description of work item"\n' +
220
+ loop.paths.toolPath +
221
+ " task complete task-1\n\n" +
192
222
  "Backpressure rule: if you emit an event outside the allowed next-event set, the loop will reject that handoff and ask you to re-route.\n" +
193
223
  "Prompt/output/scratchpad/memory are projections or stores you can inspect with `" +
194
224
  loop.paths.toolPath +
@@ -200,13 +230,8 @@ export function renderIterationPromptText(loop, iteration, recentEvent, allowedR
200
230
  "Plain text alone does not publish an event. Prefer the event tool over the stdout completion promise.\n");
201
231
  }
202
232
  export function renderReviewPromptText(loop, iteration, runLines) {
203
- const scratchpadText = renderRunScratchpadPrompt(runLines);
204
- const memoryText = memory.renderFile(loop.paths.memoryFile, loop.memory.budgetChars);
205
- const memoryStatsData = memory.statsFile(loop.paths.memoryFile, loop.memory.budgetChars);
206
- const routing = iterationRoutingContext(loop.topology, runLines);
207
- const backpressure = latestInvalidNote(runLines);
208
- const invalidCount = invalidEventCount(runLines);
209
- const lastRejected = lastRejectedTopic(runLines);
233
+ const derived = deriveRunContext(loop, runLines);
234
+ const { scratchpadText, memoryText, tasksText, memoryStats, tasksStats, routing, backpressure, invalidCount, lastRejected, } = derived;
210
235
  const latestIteration = String(maxReviewPromptIteration(runLines));
211
236
  return ("You are the metareview meta-reviewer for this loop.\n\n" +
212
237
  "Your job is to improve the loop itself, not to finish the task directly.\n" +
@@ -218,9 +243,10 @@ export function renderReviewPromptText(loop, iteration, runLines) {
218
243
  "The scratchpad is projected from journal history, so do not try to edit it directly; instead tighten prompts, working files, or archived context so future iterations stay concise.\n" +
219
244
  "Do not emit normal loop events during review.\n\n" +
220
245
  reviewInstructionsText(loop) +
221
- contextPressureText(memoryStatsData, invalidCount, lastRejected) +
246
+ contextPressureText(memoryStats, tasksStats, invalidCount, lastRejected) +
222
247
  backpressureText(backpressure) +
223
- (memoryText ? memoryText + "\n" : "") +
248
+ (memoryText ? `${memoryText}\n` : "") +
249
+ (tasksText ? `${tasksText}\n` : "") +
224
250
  `Review trigger iteration: ${iteration}\n` +
225
251
  "Latest routing event: " +
226
252
  routing.recentEvent +
@@ -248,24 +274,32 @@ export function renderReviewPromptText(loop, iteration, runLines) {
248
274
  function harnessInstructionsText(loop) {
249
275
  if (!loop.harness.instructions)
250
276
  return "";
251
- return "Live harness instructions:\n" + loop.harness.instructions + "\n\n";
277
+ return `Live harness instructions:\n${loop.harness.instructions}\n\n`;
252
278
  }
253
279
  function reviewInstructionsText(loop) {
254
280
  if (!loop.review.prompt)
255
281
  return "";
256
- return "Additional metareview instructions:\n" + loop.review.prompt + "\n\n";
282
+ return `Additional metareview instructions:\n${loop.review.prompt}\n\n`;
257
283
  }
258
- function contextPressureText(memoryStats, invalidCount, lastRejected) {
284
+ function contextPressureText(memoryStats, tasksStats, invalidCount, lastRejected) {
259
285
  return ("Context pressure:\n" +
260
286
  "- Memory: " +
261
287
  memoryPressureSummary(memoryStats) +
262
288
  "\n" +
289
+ "- Tasks: " +
290
+ tasksPressureSummary(tasksStats) +
291
+ "\n" +
263
292
  "- Invalid emits this run: " +
264
293
  invalidCount +
265
294
  invalidEmitHint(invalidCount, lastRejected) +
266
295
  "\n" +
267
296
  contextPressureRecommendation(memoryStats.truncated, invalidCount));
268
297
  }
298
+ function tasksPressureSummary(stats) {
299
+ if (stats.total === 0)
300
+ return "no tasks";
301
+ return `${stats.open} open, ${stats.done} done (${stats.total} total)`;
302
+ }
269
303
  function memoryPressureSummary(stats) {
270
304
  const entryDetail = `${stats.totalEntries} entries (${stats.preferences} preferences, ${stats.learnings} learnings, ${stats.meta} meta)`;
271
305
  if (stats.truncated) {
@@ -281,7 +315,7 @@ function invalidEmitHint(invalidCount, lastRejected) {
281
315
  return "";
282
316
  if (!lastRejected)
283
317
  return " — routing is currently under backpressure";
284
- return " — routing backpressure; last rejected: `" + lastRejected + "`";
318
+ return ` — routing backpressure; last rejected: \`${lastRejected}\``;
285
319
  }
286
320
  function contextPressureRecommendation(truncated, invalidCount) {
287
321
  if (truncated || invalidCount > 0) {
@@ -290,7 +324,7 @@ function contextPressureRecommendation(truncated, invalidCount) {
290
324
  return "\n";
291
325
  }
292
326
  function backpressureText(text) {
293
- return text ? "Backpressure:\n" + text + "\n\n" : "";
327
+ return text ? `Backpressure:\n${text}\n\n` : "";
294
328
  }
295
329
  function parallelPromptText(loop, allowedEvents) {
296
330
  if (!loop.parallel.enabled || loop.runtime.branchMode)
@@ -298,13 +332,15 @@ function parallelPromptText(loop, allowedEvents) {
298
332
  const dispatch = parallelDispatchPromptEvents(allowedEvents, loop.completion.event);
299
333
  const dispatchLine = dispatch.length === 0
300
334
  ? "- Dispatch fan-out is available as `<allowed-event>.parallel` for currently allowed normal handoff events.\n"
301
- : "- Dispatch fan-out is available now via `<allowed-event>.parallel`: " + dispatch.map((e) => "`" + e + "`").join(", ") + ".\n";
302
- return "Structured parallelism:\n" +
335
+ : "- Dispatch fan-out is available now via `<allowed-event>.parallel`: " +
336
+ dispatch.map((e) => `\`${e}\``).join(", ") +
337
+ ".\n";
338
+ return ("Structured parallelism:\n" +
303
339
  "- `explore.parallel` is available for exploratory self-loop fan-out before you choose the real next event.\n" +
304
340
  dispatchLine +
305
341
  `- Payloads must be a markdown bullet list or numbered list with 1..${loop.parallel.maxBranches} distinct branch objectives.\n` +
306
342
  "- Use fan-out only when branches are concrete, independently useful, and worth the barrier cost; keep one active wave at a time.\n" +
307
- `- Branches run in isolated state under \`${loop.paths.stateDir}/waves/\`; only the harness may emit \`*.parallel.joined\` to resume the parent after the join barrier.\n\n`;
343
+ `- Branches run in isolated state under \`${loop.paths.stateDir}/waves/\`; only the harness may emit \`*.parallel.joined\` to resume the parent after the join barrier.\n\n`);
308
344
  }
309
345
  function parallelDispatchPromptEvents(allowedEvents, completionEvent) {
310
346
  return allowedEvents
@@ -312,14 +348,14 @@ function parallelDispatchPromptEvents(allowedEvents, completionEvent) {
312
348
  !coordinationTopic(e) &&
313
349
  !coreSystemTopic(e) &&
314
350
  !parallelTopic(e))
315
- .map((e) => e + ".parallel");
351
+ .map((e) => `${e}.parallel`);
316
352
  }
317
353
  function maxReviewPromptIteration(runLines) {
318
354
  let current = 1;
319
355
  for (const line of runLines) {
320
356
  if (extractTopic(line) === "iteration.start") {
321
357
  const val = parseInt(extractIteration(line), 10);
322
- if (!isNaN(val) && val > current)
358
+ if (!Number.isNaN(val) && val > current)
323
359
  current = val;
324
360
  }
325
361
  }