@mobrienv/autoloop 0.3.0 → 0.7.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 (415) hide show
  1. package/README.md +140 -43
  2. package/bin/autoloop +1 -1
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.js +19 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/testing/mock-backend.js +3 -5
  7. package/dist/testing/mock-backend.js.map +1 -1
  8. package/package.json +32 -10
  9. package/plugins/autoloop/.claude-plugin/plugin.json +1 -1
  10. package/dist/agent-map.d.ts +0 -10
  11. package/dist/agent-map.js +0 -58
  12. package/dist/agent-map.js.map +0 -1
  13. package/dist/backend/acp-client.d.ts +0 -38
  14. package/dist/backend/acp-client.js +0 -288
  15. package/dist/backend/acp-client.js.map +0 -1
  16. package/dist/backend/index.d.ts +0 -10
  17. package/dist/backend/index.js +0 -71
  18. package/dist/backend/index.js.map +0 -1
  19. package/dist/backend/kiro-bridge.d.ts +0 -17
  20. package/dist/backend/kiro-bridge.js +0 -84
  21. package/dist/backend/kiro-bridge.js.map +0 -1
  22. package/dist/backend/kiro-worker.d.ts +0 -1
  23. package/dist/backend/kiro-worker.js +0 -92
  24. package/dist/backend/kiro-worker.js.map +0 -1
  25. package/dist/backend/run-command.d.ts +0 -7
  26. package/dist/backend/run-command.js +0 -50
  27. package/dist/backend/run-command.js.map +0 -1
  28. package/dist/backend/run-kiro.d.ts +0 -3
  29. package/dist/backend/run-kiro.js +0 -16
  30. package/dist/backend/run-kiro.js.map +0 -1
  31. package/dist/backend/run-mock.d.ts +0 -1
  32. package/dist/backend/run-mock.js +0 -6
  33. package/dist/backend/run-mock.js.map +0 -1
  34. package/dist/backend/run-pi.d.ts +0 -5
  35. package/dist/backend/run-pi.js +0 -5
  36. package/dist/backend/run-pi.js.map +0 -1
  37. package/dist/backend/types.d.ts +0 -21
  38. package/dist/backend/types.js +0 -2
  39. package/dist/backend/types.js.map +0 -1
  40. package/dist/chains/budget.d.ts +0 -7
  41. package/dist/chains/budget.js +0 -54
  42. package/dist/chains/budget.js.map +0 -1
  43. package/dist/chains/load.d.ts +0 -18
  44. package/dist/chains/load.js +0 -129
  45. package/dist/chains/load.js.map +0 -1
  46. package/dist/chains/render.d.ts +0 -2
  47. package/dist/chains/render.js +0 -74
  48. package/dist/chains/render.js.map +0 -1
  49. package/dist/chains/run.d.ts +0 -17
  50. package/dist/chains/run.js +0 -260
  51. package/dist/chains/run.js.map +0 -1
  52. package/dist/chains/types.d.ts +0 -38
  53. package/dist/chains/types.js +0 -2
  54. package/dist/chains/types.js.map +0 -1
  55. package/dist/chains.d.ts +0 -6
  56. package/dist/chains.js +0 -5
  57. package/dist/chains.js.map +0 -1
  58. package/dist/commands/chain.d.ts +0 -1
  59. package/dist/commands/chain.js +0 -53
  60. package/dist/commands/chain.js.map +0 -1
  61. package/dist/commands/config.d.ts +0 -1
  62. package/dist/commands/config.js +0 -74
  63. package/dist/commands/config.js.map +0 -1
  64. package/dist/commands/dashboard.d.ts +0 -1
  65. package/dist/commands/dashboard.js +0 -68
  66. package/dist/commands/dashboard.js.map +0 -1
  67. package/dist/commands/guide.d.ts +0 -1
  68. package/dist/commands/guide.js +0 -33
  69. package/dist/commands/guide.js.map +0 -1
  70. package/dist/commands/inspect.d.ts +0 -1
  71. package/dist/commands/inspect.js +0 -203
  72. package/dist/commands/inspect.js.map +0 -1
  73. package/dist/commands/list.d.ts +0 -1
  74. package/dist/commands/list.js +0 -15
  75. package/dist/commands/list.js.map +0 -1
  76. package/dist/commands/loops.d.ts +0 -1
  77. package/dist/commands/loops.js +0 -72
  78. package/dist/commands/loops.js.map +0 -1
  79. package/dist/commands/memory.d.ts +0 -1
  80. package/dist/commands/memory.js +0 -65
  81. package/dist/commands/memory.js.map +0 -1
  82. package/dist/commands/pi-adapter.d.ts +0 -1
  83. package/dist/commands/pi-adapter.js +0 -6
  84. package/dist/commands/pi-adapter.js.map +0 -1
  85. package/dist/commands/run.d.ts +0 -1
  86. package/dist/commands/run.js +0 -292
  87. package/dist/commands/run.js.map +0 -1
  88. package/dist/commands/runs.d.ts +0 -1
  89. package/dist/commands/runs.js +0 -50
  90. package/dist/commands/runs.js.map +0 -1
  91. package/dist/commands/task.d.ts +0 -1
  92. package/dist/commands/task.js +0 -74
  93. package/dist/commands/task.js.map +0 -1
  94. package/dist/commands/worktree.d.ts +0 -1
  95. package/dist/commands/worktree.js +0 -162
  96. package/dist/commands/worktree.js.map +0 -1
  97. package/dist/config.d.ts +0 -31
  98. package/dist/config.js +0 -261
  99. package/dist/config.js.map +0 -1
  100. package/dist/dashboard/app.d.ts +0 -12
  101. package/dist/dashboard/app.js +0 -23
  102. package/dist/dashboard/app.js.map +0 -1
  103. package/dist/dashboard/routes/api.d.ts +0 -3
  104. package/dist/dashboard/routes/api.js +0 -130
  105. package/dist/dashboard/routes/api.js.map +0 -1
  106. package/dist/dashboard/routes/pages.d.ts +0 -2
  107. package/dist/dashboard/routes/pages.js +0 -14
  108. package/dist/dashboard/routes/pages.js.map +0 -1
  109. package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
  110. package/dist/dashboard/views/alpine-vendor.js +0 -10
  111. package/dist/dashboard/views/alpine-vendor.js.map +0 -1
  112. package/dist/dashboard/views/shell.d.ts +0 -1
  113. package/dist/dashboard/views/shell.js +0 -746
  114. package/dist/dashboard/views/shell.js.map +0 -1
  115. package/dist/events/decode.d.ts +0 -2
  116. package/dist/events/decode.js +0 -45
  117. package/dist/events/decode.js.map +0 -1
  118. package/dist/events/encode.d.ts +0 -2
  119. package/dist/events/encode.js +0 -33
  120. package/dist/events/encode.js.map +0 -1
  121. package/dist/events/guards.d.ts +0 -5
  122. package/dist/events/guards.js +0 -42
  123. package/dist/events/guards.js.map +0 -1
  124. package/dist/events/types.d.ts +0 -26
  125. package/dist/events/types.js +0 -2
  126. package/dist/events/types.js.map +0 -1
  127. package/dist/harness/config-helpers.d.ts +0 -35
  128. package/dist/harness/config-helpers.js +0 -411
  129. package/dist/harness/config-helpers.js.map +0 -1
  130. package/dist/harness/coordination.d.ts +0 -1
  131. package/dist/harness/coordination.js +0 -127
  132. package/dist/harness/coordination.js.map +0 -1
  133. package/dist/harness/display.d.ts +0 -21
  134. package/dist/harness/display.js +0 -176
  135. package/dist/harness/display.js.map +0 -1
  136. package/dist/harness/emit.d.ts +0 -15
  137. package/dist/harness/emit.js +0 -240
  138. package/dist/harness/emit.js.map +0 -1
  139. package/dist/harness/index.d.ts +0 -13
  140. package/dist/harness/index.js +0 -240
  141. package/dist/harness/index.js.map +0 -1
  142. package/dist/harness/iteration.d.ts +0 -16
  143. package/dist/harness/iteration.js +0 -131
  144. package/dist/harness/iteration.js.map +0 -1
  145. package/dist/harness/journal.d.ts +0 -31
  146. package/dist/harness/journal.js +0 -178
  147. package/dist/harness/journal.js.map +0 -1
  148. package/dist/harness/metareview.d.ts +0 -4
  149. package/dist/harness/metareview.js +0 -48
  150. package/dist/harness/metareview.js.map +0 -1
  151. package/dist/harness/metrics.d.ts +0 -12
  152. package/dist/harness/metrics.js +0 -180
  153. package/dist/harness/metrics.js.map +0 -1
  154. package/dist/harness/parallel.d.ts +0 -37
  155. package/dist/harness/parallel.js +0 -237
  156. package/dist/harness/parallel.js.map +0 -1
  157. package/dist/harness/prompt.d.ts +0 -46
  158. package/dist/harness/prompt.js +0 -403
  159. package/dist/harness/prompt.js.map +0 -1
  160. package/dist/harness/scratchpad.d.ts +0 -2
  161. package/dist/harness/scratchpad.js +0 -67
  162. package/dist/harness/scratchpad.js.map +0 -1
  163. package/dist/harness/stop.d.ts +0 -5
  164. package/dist/harness/stop.js +0 -70
  165. package/dist/harness/stop.js.map +0 -1
  166. package/dist/harness/tools.d.ts +0 -3
  167. package/dist/harness/tools.js +0 -65
  168. package/dist/harness/tools.js.map +0 -1
  169. package/dist/harness/types.d.ts +0 -110
  170. package/dist/harness/types.js +0 -2
  171. package/dist/harness/types.js.map +0 -1
  172. package/dist/harness/wave/finalize-wave.d.ts +0 -9
  173. package/dist/harness/wave/finalize-wave.js +0 -87
  174. package/dist/harness/wave/finalize-wave.js.map +0 -1
  175. package/dist/harness/wave/launch-branches.d.ts +0 -6
  176. package/dist/harness/wave/launch-branches.js +0 -314
  177. package/dist/harness/wave/launch-branches.js.map +0 -1
  178. package/dist/harness/wave/parse-objectives.d.ts +0 -3
  179. package/dist/harness/wave/parse-objectives.js +0 -32
  180. package/dist/harness/wave/parse-objectives.js.map +0 -1
  181. package/dist/harness/wave/types.d.ts +0 -43
  182. package/dist/harness/wave/types.js +0 -2
  183. package/dist/harness/wave/types.js.map +0 -1
  184. package/dist/harness/wave.d.ts +0 -6
  185. package/dist/harness/wave.js +0 -159
  186. package/dist/harness/wave.js.map +0 -1
  187. package/dist/isolation/index.d.ts +0 -4
  188. package/dist/isolation/index.js +0 -3
  189. package/dist/isolation/index.js.map +0 -1
  190. package/dist/isolation/resolve.d.ts +0 -39
  191. package/dist/isolation/resolve.js +0 -118
  192. package/dist/isolation/resolve.js.map +0 -1
  193. package/dist/isolation/run-scope.d.ts +0 -21
  194. package/dist/isolation/run-scope.js +0 -50
  195. package/dist/isolation/run-scope.js.map +0 -1
  196. package/dist/json.d.ts +0 -8
  197. package/dist/json.js +0 -82
  198. package/dist/json.js.map +0 -1
  199. package/dist/loops/health.d.ts +0 -16
  200. package/dist/loops/health.js +0 -152
  201. package/dist/loops/health.js.map +0 -1
  202. package/dist/loops/list.d.ts +0 -6
  203. package/dist/loops/list.js +0 -21
  204. package/dist/loops/list.js.map +0 -1
  205. package/dist/loops/policy.d.ts +0 -6
  206. package/dist/loops/policy.js +0 -41
  207. package/dist/loops/policy.js.map +0 -1
  208. package/dist/loops/render.d.ts +0 -19
  209. package/dist/loops/render.js +0 -100
  210. package/dist/loops/render.js.map +0 -1
  211. package/dist/loops/show.d.ts +0 -8
  212. package/dist/loops/show.js +0 -31
  213. package/dist/loops/show.js.map +0 -1
  214. package/dist/loops/watch.d.ts +0 -14
  215. package/dist/loops/watch.js +0 -143
  216. package/dist/loops/watch.js.map +0 -1
  217. package/dist/main.d.ts +0 -1
  218. package/dist/main.js +0 -148
  219. package/dist/main.js.map +0 -1
  220. package/dist/markdown.d.ts +0 -10
  221. package/dist/markdown.js +0 -66
  222. package/dist/markdown.js.map +0 -1
  223. package/dist/memory-render.d.ts +0 -6
  224. package/dist/memory-render.js +0 -81
  225. package/dist/memory-render.js.map +0 -1
  226. package/dist/memory.d.ts +0 -22
  227. package/dist/memory.js +0 -318
  228. package/dist/memory.js.map +0 -1
  229. package/dist/pi-adapter.d.ts +0 -1
  230. package/dist/pi-adapter.js +0 -220
  231. package/dist/pi-adapter.js.map +0 -1
  232. package/dist/profiles.d.ts +0 -12
  233. package/dist/profiles.js +0 -71
  234. package/dist/profiles.js.map +0 -1
  235. package/dist/registry/derive.d.ts +0 -8
  236. package/dist/registry/derive.js +0 -88
  237. package/dist/registry/derive.js.map +0 -1
  238. package/dist/registry/discover.d.ts +0 -20
  239. package/dist/registry/discover.js +0 -98
  240. package/dist/registry/discover.js.map +0 -1
  241. package/dist/registry/harness.d.ts +0 -7
  242. package/dist/registry/harness.js +0 -63
  243. package/dist/registry/harness.js.map +0 -1
  244. package/dist/registry/index.d.ts +0 -6
  245. package/dist/registry/index.js +0 -6
  246. package/dist/registry/index.js.map +0 -1
  247. package/dist/registry/read.d.ts +0 -11
  248. package/dist/registry/read.js +0 -50
  249. package/dist/registry/read.js.map +0 -1
  250. package/dist/registry/rebuild.d.ts +0 -5
  251. package/dist/registry/rebuild.js +0 -22
  252. package/dist/registry/rebuild.js.map +0 -1
  253. package/dist/registry/types.d.ts +0 -28
  254. package/dist/registry/types.js +0 -2
  255. package/dist/registry/types.js.map +0 -1
  256. package/dist/registry/update.d.ts +0 -2
  257. package/dist/registry/update.js +0 -7
  258. package/dist/registry/update.js.map +0 -1
  259. package/dist/tasks-render.d.ts +0 -2
  260. package/dist/tasks-render.js +0 -44
  261. package/dist/tasks-render.js.map +0 -1
  262. package/dist/tasks.d.ts +0 -24
  263. package/dist/tasks.js +0 -184
  264. package/dist/tasks.js.map +0 -1
  265. package/dist/topology.d.ts +0 -31
  266. package/dist/topology.js +0 -309
  267. package/dist/topology.js.map +0 -1
  268. package/dist/usage.d.ts +0 -9
  269. package/dist/usage.js +0 -159
  270. package/dist/usage.js.map +0 -1
  271. package/dist/utils.d.ts +0 -21
  272. package/dist/utils.js +0 -349
  273. package/dist/utils.js.map +0 -1
  274. package/dist/worktree/clean.d.ts +0 -12
  275. package/dist/worktree/clean.js +0 -98
  276. package/dist/worktree/clean.js.map +0 -1
  277. package/dist/worktree/create.d.ts +0 -14
  278. package/dist/worktree/create.js +0 -71
  279. package/dist/worktree/create.js.map +0 -1
  280. package/dist/worktree/index.d.ts +0 -10
  281. package/dist/worktree/index.js +0 -6
  282. package/dist/worktree/index.js.map +0 -1
  283. package/dist/worktree/list.d.ts +0 -9
  284. package/dist/worktree/list.js +0 -24
  285. package/dist/worktree/list.js.map +0 -1
  286. package/dist/worktree/merge.d.ts +0 -11
  287. package/dist/worktree/merge.js +0 -129
  288. package/dist/worktree/merge.js.map +0 -1
  289. package/dist/worktree/meta.d.ts +0 -17
  290. package/dist/worktree/meta.js +0 -34
  291. package/dist/worktree/meta.js.map +0 -1
  292. package/presets/autocode/README.md +0 -81
  293. package/presets/autocode/autoloops.toml +0 -30
  294. package/presets/autocode/harness.md +0 -26
  295. package/presets/autocode/miniloops.toml +0 -22
  296. package/presets/autocode/roles/build.md +0 -34
  297. package/presets/autocode/roles/critic.md +0 -40
  298. package/presets/autocode/roles/finalizer.md +0 -43
  299. package/presets/autocode/roles/planner.md +0 -40
  300. package/presets/autocode/topology.toml +0 -32
  301. package/presets/autodoc/README.md +0 -42
  302. package/presets/autodoc/autoloops.toml +0 -21
  303. package/presets/autodoc/harness.md +0 -19
  304. package/presets/autodoc/miniloops.toml +0 -21
  305. package/presets/autodoc/roles/auditor.md +0 -39
  306. package/presets/autodoc/roles/checker.md +0 -43
  307. package/presets/autodoc/roles/publisher.md +0 -51
  308. package/presets/autodoc/roles/writer.md +0 -37
  309. package/presets/autodoc/topology.toml +0 -31
  310. package/presets/autofix/README.md +0 -56
  311. package/presets/autofix/autoloops.toml +0 -24
  312. package/presets/autofix/harness.md +0 -25
  313. package/presets/autofix/miniloops.toml +0 -21
  314. package/presets/autofix/roles/closer.md +0 -48
  315. package/presets/autofix/roles/diagnoser.md +0 -43
  316. package/presets/autofix/roles/fixer.md +0 -28
  317. package/presets/autofix/roles/verifier.md +0 -31
  318. package/presets/autofix/topology.toml +0 -33
  319. package/presets/autoideas/README.md +0 -73
  320. package/presets/autoideas/autoloops.toml +0 -18
  321. package/presets/autoideas/harness.md +0 -31
  322. package/presets/autoideas/miniloops.toml +0 -18
  323. package/presets/autoideas/roles/analyst.md +0 -32
  324. package/presets/autoideas/roles/reviewer.md +0 -36
  325. package/presets/autoideas/roles/scanner.md +0 -26
  326. package/presets/autoideas/roles/synthesizer.md +0 -61
  327. package/presets/autoideas/topology.toml +0 -32
  328. package/presets/automerge/README.md +0 -3
  329. package/presets/automerge/autoloops.toml +0 -12
  330. package/presets/automerge/harness.md +0 -10
  331. package/presets/automerge/miniloops.toml +0 -12
  332. package/presets/automerge/roles/merge.md +0 -10
  333. package/presets/automerge/topology.toml +0 -10
  334. package/presets/autoperf/README.md +0 -56
  335. package/presets/autoperf/autoloops.toml +0 -21
  336. package/presets/autoperf/harness.md +0 -21
  337. package/presets/autoperf/miniloops.toml +0 -21
  338. package/presets/autoperf/roles/judge.md +0 -38
  339. package/presets/autoperf/roles/measurer.md +0 -36
  340. package/presets/autoperf/roles/optimizer.md +0 -35
  341. package/presets/autoperf/roles/profiler.md +0 -38
  342. package/presets/autoperf/topology.toml +0 -32
  343. package/presets/autopr/README.md +0 -99
  344. package/presets/autopr/autoloops.toml +0 -22
  345. package/presets/autopr/harness.md +0 -27
  346. package/presets/autopr/miniloops.toml +0 -22
  347. package/presets/autopr/roles/collector.md +0 -55
  348. package/presets/autopr/roles/drafter.md +0 -38
  349. package/presets/autopr/roles/publisher.md +0 -28
  350. package/presets/autopr/roles/validator.md +0 -31
  351. package/presets/autopr/topology.toml +0 -32
  352. package/presets/autoqa/README.md +0 -76
  353. package/presets/autoqa/autoloops.toml +0 -21
  354. package/presets/autoqa/harness.md +0 -30
  355. package/presets/autoqa/miniloops.toml +0 -21
  356. package/presets/autoqa/roles/executor.md +0 -43
  357. package/presets/autoqa/roles/inspector.md +0 -45
  358. package/presets/autoqa/roles/planner.md +0 -55
  359. package/presets/autoqa/roles/reporter.md +0 -74
  360. package/presets/autoqa/topology.toml +0 -31
  361. package/presets/autoresearch/README.md +0 -63
  362. package/presets/autoresearch/autoloops.toml +0 -18
  363. package/presets/autoresearch/harness.md +0 -28
  364. package/presets/autoresearch/miniloops.toml +0 -18
  365. package/presets/autoresearch/roles/benchmarker.md +0 -34
  366. package/presets/autoresearch/roles/evaluator.md +0 -33
  367. package/presets/autoresearch/roles/implementer.md +0 -26
  368. package/presets/autoresearch/roles/strategist.md +0 -43
  369. package/presets/autoresearch/topology.toml +0 -31
  370. package/presets/autoreview/README.md +0 -51
  371. package/presets/autoreview/autoloops.toml +0 -21
  372. package/presets/autoreview/harness.md +0 -20
  373. package/presets/autoreview/miniloops.toml +0 -21
  374. package/presets/autoreview/roles/checker.md +0 -36
  375. package/presets/autoreview/roles/reader.md +0 -33
  376. package/presets/autoreview/roles/suggester.md +0 -26
  377. package/presets/autoreview/roles/summarizer.md +0 -57
  378. package/presets/autoreview/topology.toml +0 -31
  379. package/presets/autosec/README.md +0 -51
  380. package/presets/autosec/autoloops.toml +0 -21
  381. package/presets/autosec/harness.md +0 -20
  382. package/presets/autosec/miniloops.toml +0 -21
  383. package/presets/autosec/roles/analyst.md +0 -38
  384. package/presets/autosec/roles/hardener.md +0 -36
  385. package/presets/autosec/roles/reporter.md +0 -63
  386. package/presets/autosec/roles/scanner.md +0 -38
  387. package/presets/autosec/topology.toml +0 -31
  388. package/presets/autosimplify/README.md +0 -83
  389. package/presets/autosimplify/autoloops.toml +0 -26
  390. package/presets/autosimplify/harness.md +0 -25
  391. package/presets/autosimplify/miniloops.toml +0 -22
  392. package/presets/autosimplify/roles/reviewer.md +0 -38
  393. package/presets/autosimplify/roles/scoper.md +0 -42
  394. package/presets/autosimplify/roles/simplifier.md +0 -51
  395. package/presets/autosimplify/roles/verifier.md +0 -40
  396. package/presets/autosimplify/topology.toml +0 -32
  397. package/presets/autospec/README.md +0 -84
  398. package/presets/autospec/autoloops.toml +0 -21
  399. package/presets/autospec/harness.md +0 -23
  400. package/presets/autospec/miniloops.toml +0 -21
  401. package/presets/autospec/roles/clarifier.md +0 -39
  402. package/presets/autospec/roles/critic.md +0 -41
  403. package/presets/autospec/roles/designer.md +0 -37
  404. package/presets/autospec/roles/planner.md +0 -38
  405. package/presets/autospec/roles/researcher.md +0 -33
  406. package/presets/autospec/topology.toml +0 -38
  407. package/presets/autotest/README.md +0 -55
  408. package/presets/autotest/autoloops.toml +0 -21
  409. package/presets/autotest/harness.md +0 -21
  410. package/presets/autotest/miniloops.toml +0 -21
  411. package/presets/autotest/roles/assessor.md +0 -57
  412. package/presets/autotest/roles/runner.md +0 -31
  413. package/presets/autotest/roles/surveyor.md +0 -39
  414. package/presets/autotest/roles/writer.md +0 -37
  415. package/presets/autotest/topology.toml +0 -32
@@ -1,65 +0,0 @@
1
- import { joinCsv, shellQuote } from "../utils.js";
2
- export function emitToolScript(loop) {
3
- return ("#!/bin/sh\n" +
4
- "set -eu\n" +
5
- "export AUTOLOOP_PROJECT_DIR=" +
6
- shellQuote(loop.paths.projectDir) +
7
- "\n" +
8
- "export AUTOLOOP_STATE_DIR=" +
9
- shellQuote(loop.paths.stateDir) +
10
- "\n" +
11
- "export AUTOLOOP_JOURNAL_FILE=" +
12
- shellQuote(loop.paths.journalFile) +
13
- "\n" +
14
- "export AUTOLOOP_EVENTS_FILE=" +
15
- shellQuote(loop.paths.journalFile) +
16
- "\n" +
17
- "export AUTOLOOP_MEMORY_FILE=" +
18
- shellQuote(loop.paths.memoryFile) +
19
- "\n" +
20
- "export AUTOLOOP_TASKS_FILE=" +
21
- shellQuote(loop.paths.tasksFile) +
22
- "\n" +
23
- "export AUTOLOOP_RUN_ID=" +
24
- shellQuote(loop.runtime.runId) +
25
- "\n" +
26
- "export AUTOLOOP_COMPLETION_EVENT=" +
27
- shellQuote(loop.completion.event) +
28
- "\n" +
29
- "export AUTOLOOP_REQUIRED_EVENTS=" +
30
- shellQuote(joinCsv(loop.completion.requiredEvents)) +
31
- "\n" +
32
- "export AUTOLOOP_BIN=" +
33
- shellQuote(loop.paths.toolPath) +
34
- "\n" +
35
- "stdout_file=$(mktemp)\n" +
36
- "stderr_file=$(mktemp)\n" +
37
- "cleanup() {\n" +
38
- ' rm -f "$stdout_file" "$stderr_file"\n' +
39
- "}\n" +
40
- "trap cleanup EXIT\n" +
41
- "if " +
42
- loop.runtime.selfCommand +
43
- ' "$@" >"$stdout_file" 2>"$stderr_file"; then\n' +
44
- " status=0\n" +
45
- "else\n" +
46
- " status=$?\n" +
47
- "fi\n" +
48
- 'cat "$stderr_file" >&2\n' +
49
- 'if [ "${1:-}" = "emit" ]; then\n' +
50
- " inner=$(sed -n 's/^%{:exit_code => \\([0-9][0-9]*\\),.*$/\\1/p' \"$stdout_file\" | tail -n 1)\n" +
51
- ' if [ -n "$inner" ]; then\n' +
52
- ' exit "$inner"\n' +
53
- " fi\n" +
54
- "fi\n" +
55
- 'cat "$stdout_file"\n' +
56
- 'exit "$status"\n');
57
- }
58
- export function piAdapterScript(loop) {
59
- return ("#!/bin/sh\n" +
60
- "set -eu\n" +
61
- "exec " +
62
- loop.runtime.selfCommand +
63
- ' pi-adapter "$@"\n');
64
- }
65
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/harness/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,OAAO,CACL,aAAa;QACb,WAAW;QACX,8BAA8B;QAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACjC,IAAI;QACJ,4BAA4B;QAC5B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI;QACJ,+BAA+B;QAC/B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAClC,IAAI;QACJ,8BAA8B;QAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAClC,IAAI;QACJ,8BAA8B;QAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACjC,IAAI;QACJ,6BAA6B;QAC7B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,IAAI;QACJ,yBAAyB;QACzB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9B,IAAI;QACJ,mCAAmC;QACnC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACjC,IAAI;QACJ,kCAAkC;QAClC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI;QACJ,sBAAsB;QACtB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI;QACJ,yBAAyB;QACzB,yBAAyB;QACzB,eAAe;QACf,yCAAyC;QACzC,KAAK;QACL,qBAAqB;QACrB,KAAK;QACL,IAAI,CAAC,OAAO,CAAC,WAAW;QACxB,gDAAgD;QAChD,cAAc;QACd,QAAQ;QACR,eAAe;QACf,MAAM;QACN,0BAA0B;QAC1B,kCAAkC;QAClC,mGAAmG;QACnG,8BAA8B;QAC9B,qBAAqB;QACrB,QAAQ;QACR,MAAM;QACN,sBAAsB;QACtB,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,OAAO,CACL,aAAa;QACb,WAAW;QACX,OAAO;QACP,IAAI,CAAC,OAAO,CAAC,WAAW;QACxB,oBAAoB,CACrB,CAAC;AACJ,CAAC"}
@@ -1,110 +0,0 @@
1
- import type { AgentMap } from "../agent-map.js";
2
- import type { KiroSessionHandle } from "../backend/kiro-bridge.js";
3
- import type * as topo from "../topology.js";
4
- export type TriggerSource = "cli" | "chain" | "branch";
5
- export interface LaunchMetadata {
6
- preset: string;
7
- trigger: TriggerSource;
8
- createdAt: string;
9
- parentRunId: string;
10
- }
11
- export interface ProfileInfo {
12
- active: string[];
13
- fragments: Map<string, string>;
14
- warnings: string[];
15
- }
16
- export interface LoopContext {
17
- objective: string;
18
- topology: topo.Topology;
19
- limits: {
20
- maxIterations: number;
21
- };
22
- completion: {
23
- promise: string;
24
- event: string;
25
- requiredEvents: string[];
26
- };
27
- backend: {
28
- kind: string;
29
- command: string;
30
- args: string[];
31
- promptMode: string;
32
- timeoutMs: number;
33
- };
34
- review: {
35
- enabled: boolean;
36
- every: number;
37
- kind: string;
38
- command: string;
39
- args: string[];
40
- promptMode: string;
41
- prompt: string;
42
- timeoutMs: number;
43
- };
44
- parallel: {
45
- enabled: boolean;
46
- maxBranches: number;
47
- branchTimeoutMs: number;
48
- };
49
- memory: {
50
- budgetChars: number;
51
- };
52
- tasks: {
53
- budgetChars: number;
54
- };
55
- harness: {
56
- instructions: string;
57
- };
58
- profiles: ProfileInfo;
59
- paths: {
60
- projectDir: string;
61
- workDir: string;
62
- stateDir: string;
63
- journalFile: string;
64
- memoryFile: string;
65
- tasksFile: string;
66
- registryFile: string;
67
- toolPath: string;
68
- piAdapterPath: string;
69
- baseStateDir: string;
70
- mainProjectDir: string;
71
- worktreeBranch: string;
72
- worktreePath: string;
73
- worktreeMetaDir: string;
74
- };
75
- runtime: {
76
- runId: string;
77
- selfCommand: string;
78
- promptOverride: string | null;
79
- backendOverride: Record<string, unknown>;
80
- logLevel: string;
81
- branchMode: boolean;
82
- isolationMode: string;
83
- };
84
- launch: LaunchMetadata;
85
- store: Record<string, unknown>;
86
- agentMap: AgentMap | null;
87
- kiroSession?: KiroSessionHandle;
88
- }
89
- export interface RunOptions {
90
- workDir?: string;
91
- backendOverride?: Record<string, unknown>;
92
- logLevel?: string | null;
93
- prompt?: string | null;
94
- chain?: string | null;
95
- trigger?: TriggerSource;
96
- parentRunId?: string;
97
- profiles?: string[];
98
- noDefaultProfiles?: boolean;
99
- worktree?: boolean;
100
- noWorktree?: boolean;
101
- isolationMode?: string;
102
- mergeStrategy?: string;
103
- automerge?: boolean;
104
- keepWorktree?: boolean;
105
- }
106
- export interface RunSummary {
107
- iterations: number;
108
- stopReason: string;
109
- runId?: string;
110
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import type { IterationContext } from "../prompt.js";
2
- import type { LoopContext, RunSummary } from "../types.js";
3
- import type { BranchResult, IterateFn } from "./types.js";
4
- export declare function finalizeParallelWave(loop: LoopContext, iter: IterationContext, waveId: string, results: BranchResult[]): {
5
- reason: string;
6
- waveId: string;
7
- };
8
- export declare function continueAfterParallelJoin(loop: LoopContext, iter: IterationContext, waveId: string, emittedTopic: string, totalElapsedMs: number, iterateFn: IterateFn): RunSummary;
9
- export declare function stopAfterParallelWave(loop: LoopContext, iter: IterationContext, reason: string, waveId: string): RunSummary;
@@ -1,87 +0,0 @@
1
- import { jsonField } from "../../json.js";
2
- import * as topology from "../../topology.js";
3
- import { joinCsv } from "../../utils.js";
4
- import { parallelDispatchBase, parallelJoinedTopic } from "../emit.js";
5
- import { appendEvent, appendHarnessEvent } from "../journal.js";
6
- export function finalizeParallelWave(loop, iter, waveId, results) {
7
- const timedOut = results
8
- .filter((r) => r.stopReason === "backend_timeout")
9
- .map((r) => r.branchId);
10
- if (timedOut.length > 0) {
11
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "wave.timeout", jsonField("wave_id", waveId) +
12
- ", " +
13
- jsonField("timed_out_branches", joinCsv(timedOut)));
14
- return { reason: "parallel_wave_timeout", waveId };
15
- }
16
- const failed = results
17
- .filter((r) => !branchSuccessStatus(r.stopReason))
18
- .map((r) => r.branchId);
19
- if (failed.length > 0) {
20
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "wave.failed", jsonField("wave_id", waveId) +
21
- ", " +
22
- jsonField("failed_branches", joinCsv(failed)));
23
- return { reason: "parallel_wave_failed", waveId };
24
- }
25
- return { reason: "parallel_wave_complete", waveId };
26
- }
27
- function branchSuccessStatus(status) {
28
- return (status === "max_iterations" ||
29
- status === "completion_event" ||
30
- status === "completion_promise");
31
- }
32
- export function continueAfterParallelJoin(loop, iter, waveId, emittedTopic, totalElapsedMs, iterateFn) {
33
- const joinedTopic = parallelJoinedTopic(emittedTopic);
34
- appendWaveJoinFinish(loop, iter, waveId, emittedTopic, joinedTopic, totalElapsedMs);
35
- appendHarnessEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), joinedTopic, waveId);
36
- return iterateFn(loop, iter.iteration + 1);
37
- }
38
- export function stopAfterParallelWave(loop, iter, reason, waveId) {
39
- const fields = jsonField("reason", reason) +
40
- ", " +
41
- jsonField("iteration", String(iter.iteration)) +
42
- (waveId ? `, ${jsonField("wave_id", waveId)}` : "");
43
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "loop.stop", fields);
44
- return { iterations: iter.iteration, stopReason: reason };
45
- }
46
- function joinedResumeRoutingBasis(iter, emittedTopic) {
47
- if (emittedTopic === "explore.parallel")
48
- return iter.recentEvent;
49
- return parallelDispatchBase(emittedTopic) || iter.recentEvent;
50
- }
51
- function joinedResumeRecentEvent(iter, emittedTopic, joinedTopic) {
52
- if (emittedTopic === "explore.parallel")
53
- return iter.recentEvent;
54
- return joinedTopic;
55
- }
56
- function joinedResumeRoles(loop, iter, emittedTopic, routingBasis) {
57
- if (emittedTopic === "explore.parallel")
58
- return iter.allowedRoles;
59
- return topology.suggestedRoles(loop.topology, routingBasis);
60
- }
61
- function joinedResumeEvents(loop, iter, emittedTopic, routingBasis) {
62
- if (emittedTopic === "explore.parallel")
63
- return iter.allowedEvents;
64
- return topology.allowedEvents(loop.topology, routingBasis);
65
- }
66
- function appendWaveJoinFinish(loop, iter, waveId, emittedTopic, joinedTopic, totalElapsed) {
67
- const routingBasis = joinedResumeRoutingBasis(iter, emittedTopic);
68
- const resumeRecentEvent = joinedResumeRecentEvent(iter, emittedTopic, joinedTopic);
69
- const resumeRoles = joinedResumeRoles(loop, iter, emittedTopic, routingBasis);
70
- const resumeEvents = joinedResumeEvents(loop, iter, emittedTopic, routingBasis);
71
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "wave.join.finish", jsonField("wave_id", waveId) +
72
- ", " +
73
- jsonField("trigger_topic", emittedTopic) +
74
- ", " +
75
- jsonField("joined_topic", joinedTopic) +
76
- ", " +
77
- jsonField("routing_basis", routingBasis) +
78
- ", " +
79
- jsonField("resume_recent_event", resumeRecentEvent) +
80
- ", " +
81
- jsonField("resume_roles", joinCsv(resumeRoles)) +
82
- ", " +
83
- jsonField("resume_events", joinCsv(resumeEvents)) +
84
- ", " +
85
- jsonField("elapsed_ms", String(totalElapsed)));
86
- }
87
- //# sourceMappingURL=finalize-wave.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"finalize-wave.js","sourceRoot":"","sources":["../../../src/harness/wave/finalize-wave.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { IterationContext } from "../prompt.js";
2
- import type { LoopContext } from "../types.js";
3
- import type { BranchResult, BranchSpec } from "./types.js";
4
- export declare function prepareParallelBranches(loop: LoopContext, iter: IterationContext, waveId: string, waveDir: string, emittedTopic: string, objectives: string[]): BranchSpec[];
5
- export declare function launchParallelBranches(loop: LoopContext, specs: BranchSpec[]): BranchSpec[];
6
- export declare function joinParallelBranches(loop: LoopContext, iter: IterationContext, waveId: string, pending: BranchSpec[]): BranchResult[];
@@ -1,314 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { chmodSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
3
- import { join } from "node:path";
4
- import { jsonField } from "../../json.js";
5
- import * as md from "../../markdown.js";
6
- import * as topology from "../../topology.js";
7
- import { joinCsv, listText, shellQuote } from "../../utils.js";
8
- import { parallelDispatchBase } from "../emit.js";
9
- import { appendEvent, extractField, readIfExists } from "../journal.js";
10
- import { renderBranchResult, runProcess, writeParallelBranchSummary, } from "../parallel.js";
11
- export function prepareParallelBranches(loop, iter, waveId, waveDir, emittedTopic, objectives) {
12
- return objectives.map((objective, i) => {
13
- const branchId = `branch-${i + 1}`;
14
- const branchDir = join(waveDir, "branches", branchId);
15
- const routingEvent = branchRoutingEvent(iter, emittedTopic);
16
- const branchRoles = topology.suggestedRoles(loop.topology, routingEvent);
17
- const branchEvents = topology.allowedEvents(loop.topology, routingEvent);
18
- const prompt = renderBranchPrompt(loop, objective, emittedTopic, routingEvent, branchRoles, branchEvents);
19
- const spec = {
20
- branchId,
21
- waveId,
22
- objective,
23
- emittedTopic,
24
- routingEvent,
25
- allowedRoles: branchRoles,
26
- allowedEvents: branchEvents,
27
- prompt,
28
- branchDir,
29
- launchFile: join(branchDir, "launch.json"),
30
- summaryFile: join(branchDir, "summary.json"),
31
- stdoutFile: join(branchDir, "stdout.log"),
32
- stderrFile: join(branchDir, "stderr.log"),
33
- statusFile: join(branchDir, "status.txt"),
34
- pidFile: join(branchDir, "pid.txt"),
35
- supervisorFile: join(branchDir, "supervisor.sh"),
36
- launchMs: 0,
37
- };
38
- mkdirSync(branchDir, { recursive: true });
39
- writeFileSync(join(branchDir, "objective.md"), renderBranchObjective(objective, emittedTopic, routingEvent, branchRoles, branchEvents));
40
- writeBranchLaunch(spec, loop);
41
- appendWaveBranchStart(loop, iter, waveId, branchId, objective, routingEvent, branchRoles, branchEvents);
42
- return spec;
43
- });
44
- }
45
- export function launchParallelBranches(loop, specs) {
46
- return specs.map((spec) => launchBranch(loop, spec));
47
- }
48
- function launchBranch(loop, spec) {
49
- const launchMs = Date.now();
50
- writeSupervisor(loop, spec);
51
- const cmd = `rm -f ${shellQuote(spec.stdoutFile)} ${shellQuote(spec.stderrFile)} ${shellQuote(spec.statusFile)} ${shellQuote(spec.pidFile)} ; ` +
52
- `nohup sh ${shellQuote(spec.supervisorFile)} >/dev/null 2>&1 & printf '%s' "$!" > ${shellQuote(spec.pidFile)}`;
53
- runProcess(cmd, 10000);
54
- const launched = { ...spec, launchMs };
55
- const pid = readIfExists(spec.pidFile).trim();
56
- if (!pid)
57
- recordLaunchFailure(launched);
58
- return launched;
59
- }
60
- export function joinParallelBranches(loop, iter, waveId, pending) {
61
- const results = [];
62
- let remaining = [...pending];
63
- while (remaining.length > 0) {
64
- const ready = [];
65
- const stillPending = [];
66
- for (const spec of remaining) {
67
- const polled = pollBranch(loop, spec);
68
- if (polled)
69
- ready.push(polled);
70
- else
71
- stillPending.push(spec);
72
- }
73
- if (ready.length > 0) {
74
- for (const r of sortByFinishedAt(ready)) {
75
- appendWaveBranchFinish(loop, iter, waveId, r.branchId, r);
76
- results.push(r);
77
- }
78
- }
79
- remaining = stillPending;
80
- if (remaining.length > 0 && ready.length === 0) {
81
- try {
82
- execSync("sleep 0.1");
83
- }
84
- catch {
85
- /* */
86
- }
87
- }
88
- }
89
- return results;
90
- }
91
- function writeBranchLaunch(spec, loop) {
92
- const fields = jsonField("branch_id", spec.branchId) +
93
- ", " +
94
- jsonField("objective", spec.objective) +
95
- ", " +
96
- jsonField("emitted_topic", spec.emittedTopic) +
97
- ", " +
98
- jsonField("routing_event", spec.routingEvent) +
99
- ", " +
100
- jsonField("allowed_roles", joinCsv(spec.allowedRoles)) +
101
- ", " +
102
- jsonField("allowed_events", joinCsv(spec.allowedEvents)) +
103
- ", " +
104
- jsonField("prompt", spec.prompt) +
105
- ", " +
106
- jsonField("backend_kind", loop.backend.kind) +
107
- ", " +
108
- jsonField("backend_command", loop.backend.command) +
109
- ", " +
110
- jsonField("backend_args", joinCsv(loop.backend.args)) +
111
- ", " +
112
- jsonField("backend_prompt_mode", loop.backend.promptMode) +
113
- ", " +
114
- jsonField("log_level", loop.runtime.logLevel);
115
- writeFileSync(spec.launchFile, `{${fields}}\n`);
116
- }
117
- function writeSupervisor(loop, spec) {
118
- const cmd = loop.runtime.selfCommand +
119
- " branch-run " +
120
- shellQuote(loop.paths.projectDir) +
121
- " " +
122
- shellQuote(spec.branchDir);
123
- const content = "#!/bin/sh\nset -eu\nchild=''\n" +
124
- 'cleanup() {\n if [ -n "$child" ]; then\n kill "$child" 2>/dev/null || true\n wait "$child" 2>/dev/null || true\n fi\n exit 130\n}\n' +
125
- "trap cleanup INT TERM\n" +
126
- cmd +
127
- " >" +
128
- shellQuote(spec.stdoutFile) +
129
- " 2>" +
130
- shellQuote(spec.stderrFile) +
131
- " &\n" +
132
- 'child=$!\nwait "$child"\nstatus=$?\n' +
133
- "printf '%s' \"$status\" > " +
134
- shellQuote(spec.statusFile) +
135
- "\n";
136
- writeFileSync(spec.supervisorFile, content);
137
- try {
138
- chmodSync(spec.supervisorFile, 0o755);
139
- }
140
- catch {
141
- /* */
142
- }
143
- }
144
- function recordLaunchFailure(spec) {
145
- const finishedMs = Date.now();
146
- const result = branchResultFromSpec(spec, "branch_process_failed", `branch launch failed for \`${spec.branchId}\``, finishedMs - spec.launchMs, finishedMs);
147
- writeFileSync(spec.statusFile, "1");
148
- writeFileSync(join(spec.branchDir, "result.md"), renderBranchResult({ ...result, branch_dir: spec.branchDir }));
149
- writeParallelBranchSummary(spec.branchDir, {
150
- ...result,
151
- branch_dir: spec.branchDir,
152
- });
153
- }
154
- function pollBranch(loop, spec) {
155
- if (existsSync(spec.summaryFile))
156
- return loadSummaryResult(spec);
157
- if (existsSync(spec.statusFile))
158
- return ensureBranchResult(spec, "branch_process_failed");
159
- if (Date.now() - spec.launchMs > loop.parallel.branchTimeoutMs) {
160
- terminateBranch(spec);
161
- return ensureBranchResult(spec, "backend_timeout");
162
- }
163
- return null;
164
- }
165
- function loadSummaryResult(spec) {
166
- const line = readIfExists(spec.summaryFile);
167
- return {
168
- branchId: extractField(line, "branch_id"),
169
- objective: extractField(line, "objective"),
170
- stopReason: extractField(line, "stop_reason"),
171
- output: extractField(line, "output"),
172
- routingEvent: extractField(line, "routing_event"),
173
- allowedRoles: csvList(line, "allowed_roles"),
174
- allowedEvents: csvList(line, "allowed_events"),
175
- branchDir: spec.branchDir,
176
- elapsedMs: parseInt(extractField(line, "elapsed_ms"), 10) || 0,
177
- finishedAtMs: parseInt(extractField(line, "finished_at_ms"), 10) || 0,
178
- };
179
- }
180
- function ensureBranchResult(spec, fallbackReason) {
181
- if (existsSync(spec.summaryFile))
182
- return loadSummaryResult(spec);
183
- const finishedMs = Date.now();
184
- const output = combinedOutput(spec);
185
- const result = branchResultFromSpec(spec, fallbackReason, output, finishedMs - spec.launchMs, finishedMs);
186
- writeFileSync(join(spec.branchDir, "result.md"), renderBranchResult({ ...result, branch_dir: spec.branchDir }));
187
- writeParallelBranchSummary(spec.branchDir, {
188
- ...result,
189
- branch_dir: spec.branchDir,
190
- });
191
- return result;
192
- }
193
- function terminateBranch(spec) {
194
- const pid = readIfExists(spec.pidFile).trim();
195
- if (pid) {
196
- try {
197
- runProcess(`kill ${shellQuote(pid)} 2>/dev/null || true`, 5000);
198
- }
199
- catch {
200
- /* */
201
- }
202
- }
203
- }
204
- function combinedOutput(spec) {
205
- const stdout = readIfExists(spec.stdoutFile).trim();
206
- const stderr = readIfExists(spec.stderrFile).trim();
207
- if (!stdout)
208
- return stderr;
209
- if (!stderr)
210
- return stdout;
211
- return `${stdout}\n\nstderr:\n${stderr}`;
212
- }
213
- function csvList(line, field) {
214
- const v = extractField(line, field);
215
- return v
216
- ? v
217
- .split(",")
218
- .map((s) => s.trim())
219
- .filter((s) => s !== "")
220
- : [];
221
- }
222
- function branchResultFromSpec(spec, stopReason, output, elapsedMs, finishedAtMs) {
223
- return {
224
- branchId: spec.branchId,
225
- objective: spec.objective,
226
- stopReason,
227
- output,
228
- routingEvent: spec.routingEvent,
229
- allowedRoles: spec.allowedRoles,
230
- allowedEvents: spec.allowedEvents,
231
- branchDir: spec.branchDir,
232
- elapsedMs,
233
- finishedAtMs,
234
- };
235
- }
236
- function sortByFinishedAt(results) {
237
- return [...results].sort((a, b) => {
238
- if (a.finishedAtMs !== b.finishedAtMs)
239
- return a.finishedAtMs - b.finishedAtMs;
240
- return branchIndex(a.branchId) - branchIndex(b.branchId);
241
- });
242
- }
243
- function branchIndex(id) {
244
- return parseInt(id.replace("branch-", ""), 10) || 0;
245
- }
246
- function branchRoutingEvent(iter, emittedTopic) {
247
- if (emittedTopic === "explore.parallel")
248
- return iter.recentEvent;
249
- return parallelDispatchBase(emittedTopic) || iter.recentEvent;
250
- }
251
- function renderBranchPrompt(loop, objective, emittedTopic, routingEvent, roles, events) {
252
- return ("Parallel branch objective:\n" +
253
- objective +
254
- "\n\n" +
255
- "Parent objective:\n" +
256
- loop.objective +
257
- "\n\n" +
258
- "Wave trigger: " +
259
- md.code(emittedTopic) +
260
- "\n" +
261
- "Branch routing event: " +
262
- md.code(routingEvent) +
263
- "\n" +
264
- "Suggested roles: " +
265
- listText(roles) +
266
- "\n" +
267
- "Allowed events: " +
268
- listText(events) +
269
- "\n" +
270
- "Work only on this branch objective. Branch state is isolated; do not assume you can control parent routing directly.\n");
271
- }
272
- function renderBranchObjective(objective, emittedTopic, routingEvent, roles, events) {
273
- return (md.heading(1, "Branch Objective") +
274
- "\n\n" +
275
- "Trigger: " +
276
- md.code(emittedTopic) +
277
- "\n" +
278
- "Routing event: " +
279
- md.code(routingEvent) +
280
- "\n" +
281
- "Roles: " +
282
- listText(roles) +
283
- "\n" +
284
- "Allowed events: " +
285
- listText(events) +
286
- "\n\n" +
287
- objective +
288
- "\n");
289
- }
290
- function appendWaveBranchStart(loop, iter, waveId, branchId, objective, routingEvent, roles, events) {
291
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "wave.branch.start", jsonField("wave_id", waveId) +
292
- ", " +
293
- jsonField("branch_id", branchId) +
294
- ", " +
295
- jsonField("objective", objective) +
296
- ", " +
297
- jsonField("routing_event", routingEvent) +
298
- ", " +
299
- jsonField("branch_roles", joinCsv(roles)) +
300
- ", " +
301
- jsonField("branch_events", joinCsv(events)));
302
- }
303
- function appendWaveBranchFinish(loop, iter, waveId, branchId, result) {
304
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), "wave.branch.finish", jsonField("wave_id", waveId) +
305
- ", " +
306
- jsonField("branch_id", branchId) +
307
- ", " +
308
- jsonField("stop_reason", result.stopReason) +
309
- ", " +
310
- jsonField("elapsed_ms", String(result.elapsedMs)) +
311
- ", " +
312
- jsonField("output", result.output));
313
- }
314
- //# sourceMappingURL=launch-branches.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launch-branches.js","sourceRoot":"","sources":["../../../src/harness/wave/launch-branches.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { ParseResult } from "./types.js";
2
- export declare function parseParallelObjectives(payload: string, maxBranches: number): ParseResult;
3
- export declare function parseObjectiveLine(line: string): string;