@mobrienv/autoloop 0.4.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -14
  3. package/bin/autoloop +1 -1
  4. package/dist/index.d.ts +6 -0
  5. package/dist/index.js +19 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/testing/mock-backend.js +3 -5
  8. package/dist/testing/mock-backend.js.map +1 -1
  9. package/package.json +32 -23
  10. package/plugins/autoloop/.claude-plugin/plugin.json +1 -1
  11. package/dist/agent-map.d.ts +0 -10
  12. package/dist/agent-map.js +0 -58
  13. package/dist/agent-map.js.map +0 -1
  14. package/dist/backend/acp-client.d.ts +0 -38
  15. package/dist/backend/acp-client.js +0 -293
  16. package/dist/backend/acp-client.js.map +0 -1
  17. package/dist/backend/index.d.ts +0 -10
  18. package/dist/backend/index.js +0 -71
  19. package/dist/backend/index.js.map +0 -1
  20. package/dist/backend/kiro-bridge.d.ts +0 -19
  21. package/dist/backend/kiro-bridge.js +0 -114
  22. package/dist/backend/kiro-bridge.js.map +0 -1
  23. package/dist/backend/kiro-worker.d.ts +0 -1
  24. package/dist/backend/kiro-worker.js +0 -96
  25. package/dist/backend/kiro-worker.js.map +0 -1
  26. package/dist/backend/run-command.d.ts +0 -7
  27. package/dist/backend/run-command.js +0 -50
  28. package/dist/backend/run-command.js.map +0 -1
  29. package/dist/backend/run-kiro.d.ts +0 -3
  30. package/dist/backend/run-kiro.js +0 -16
  31. package/dist/backend/run-kiro.js.map +0 -1
  32. package/dist/backend/run-mock.d.ts +0 -1
  33. package/dist/backend/run-mock.js +0 -6
  34. package/dist/backend/run-mock.js.map +0 -1
  35. package/dist/backend/run-pi.d.ts +0 -5
  36. package/dist/backend/run-pi.js +0 -5
  37. package/dist/backend/run-pi.js.map +0 -1
  38. package/dist/backend/types.d.ts +0 -21
  39. package/dist/backend/types.js +0 -2
  40. package/dist/backend/types.js.map +0 -1
  41. package/dist/chains/budget.d.ts +0 -7
  42. package/dist/chains/budget.js +0 -54
  43. package/dist/chains/budget.js.map +0 -1
  44. package/dist/chains/load.d.ts +0 -18
  45. package/dist/chains/load.js +0 -129
  46. package/dist/chains/load.js.map +0 -1
  47. package/dist/chains/render.d.ts +0 -2
  48. package/dist/chains/render.js +0 -74
  49. package/dist/chains/render.js.map +0 -1
  50. package/dist/chains/run.d.ts +0 -17
  51. package/dist/chains/run.js +0 -260
  52. package/dist/chains/run.js.map +0 -1
  53. package/dist/chains/types.d.ts +0 -38
  54. package/dist/chains/types.js +0 -2
  55. package/dist/chains/types.js.map +0 -1
  56. package/dist/chains.d.ts +0 -6
  57. package/dist/chains.js +0 -5
  58. package/dist/chains.js.map +0 -1
  59. package/dist/cli/color.d.ts +0 -6
  60. package/dist/cli/color.js +0 -40
  61. package/dist/cli/color.js.map +0 -1
  62. package/dist/commands/chain.d.ts +0 -1
  63. package/dist/commands/chain.js +0 -53
  64. package/dist/commands/chain.js.map +0 -1
  65. package/dist/commands/config.d.ts +0 -1
  66. package/dist/commands/config.js +0 -74
  67. package/dist/commands/config.js.map +0 -1
  68. package/dist/commands/dashboard.d.ts +0 -1
  69. package/dist/commands/dashboard.js +0 -68
  70. package/dist/commands/dashboard.js.map +0 -1
  71. package/dist/commands/guide.d.ts +0 -1
  72. package/dist/commands/guide.js +0 -33
  73. package/dist/commands/guide.js.map +0 -1
  74. package/dist/commands/inspect.d.ts +0 -1
  75. package/dist/commands/inspect.js +0 -243
  76. package/dist/commands/inspect.js.map +0 -1
  77. package/dist/commands/list.d.ts +0 -1
  78. package/dist/commands/list.js +0 -15
  79. package/dist/commands/list.js.map +0 -1
  80. package/dist/commands/loops.d.ts +0 -1
  81. package/dist/commands/loops.js +0 -72
  82. package/dist/commands/loops.js.map +0 -1
  83. package/dist/commands/memory.d.ts +0 -1
  84. package/dist/commands/memory.js +0 -65
  85. package/dist/commands/memory.js.map +0 -1
  86. package/dist/commands/pi-adapter.d.ts +0 -1
  87. package/dist/commands/pi-adapter.js +0 -6
  88. package/dist/commands/pi-adapter.js.map +0 -1
  89. package/dist/commands/run.d.ts +0 -1
  90. package/dist/commands/run.js +0 -292
  91. package/dist/commands/run.js.map +0 -1
  92. package/dist/commands/runs.d.ts +0 -1
  93. package/dist/commands/runs.js +0 -50
  94. package/dist/commands/runs.js.map +0 -1
  95. package/dist/commands/task.d.ts +0 -1
  96. package/dist/commands/task.js +0 -74
  97. package/dist/commands/task.js.map +0 -1
  98. package/dist/commands/worktree.d.ts +0 -1
  99. package/dist/commands/worktree.js +0 -162
  100. package/dist/commands/worktree.js.map +0 -1
  101. package/dist/config.d.ts +0 -31
  102. package/dist/config.js +0 -261
  103. package/dist/config.js.map +0 -1
  104. package/dist/dashboard/app.d.ts +0 -12
  105. package/dist/dashboard/app.js +0 -23
  106. package/dist/dashboard/app.js.map +0 -1
  107. package/dist/dashboard/routes/api.d.ts +0 -3
  108. package/dist/dashboard/routes/api.js +0 -186
  109. package/dist/dashboard/routes/api.js.map +0 -1
  110. package/dist/dashboard/routes/pages.d.ts +0 -2
  111. package/dist/dashboard/routes/pages.js +0 -16
  112. package/dist/dashboard/routes/pages.js.map +0 -1
  113. package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
  114. package/dist/dashboard/views/alpine-vendor.js +0 -10
  115. package/dist/dashboard/views/alpine-vendor.js.map +0 -1
  116. package/dist/dashboard/views/shell.d.ts +0 -1
  117. package/dist/dashboard/views/shell.js +0 -1062
  118. package/dist/dashboard/views/shell.js.map +0 -1
  119. package/dist/events/decode.d.ts +0 -2
  120. package/dist/events/decode.js +0 -45
  121. package/dist/events/decode.js.map +0 -1
  122. package/dist/events/encode.d.ts +0 -2
  123. package/dist/events/encode.js +0 -33
  124. package/dist/events/encode.js.map +0 -1
  125. package/dist/events/guards.d.ts +0 -5
  126. package/dist/events/guards.js +0 -42
  127. package/dist/events/guards.js.map +0 -1
  128. package/dist/events/types.d.ts +0 -27
  129. package/dist/events/types.js +0 -2
  130. package/dist/events/types.js.map +0 -1
  131. package/dist/harness/artifacts.d.ts +0 -50
  132. package/dist/harness/artifacts.js +0 -333
  133. package/dist/harness/artifacts.js.map +0 -1
  134. package/dist/harness/config-helpers.d.ts +0 -35
  135. package/dist/harness/config-helpers.js +0 -409
  136. package/dist/harness/config-helpers.js.map +0 -1
  137. package/dist/harness/coordination.d.ts +0 -1
  138. package/dist/harness/coordination.js +0 -127
  139. package/dist/harness/coordination.js.map +0 -1
  140. package/dist/harness/display.d.ts +0 -21
  141. package/dist/harness/display.js +0 -176
  142. package/dist/harness/display.js.map +0 -1
  143. package/dist/harness/emit.d.ts +0 -15
  144. package/dist/harness/emit.js +0 -240
  145. package/dist/harness/emit.js.map +0 -1
  146. package/dist/harness/index.d.ts +0 -20
  147. package/dist/harness/index.js +0 -311
  148. package/dist/harness/index.js.map +0 -1
  149. package/dist/harness/iteration.d.ts +0 -16
  150. package/dist/harness/iteration.js +0 -131
  151. package/dist/harness/iteration.js.map +0 -1
  152. package/dist/harness/journal-format.d.ts +0 -25
  153. package/dist/harness/journal-format.js +0 -153
  154. package/dist/harness/journal-format.js.map +0 -1
  155. package/dist/harness/journal.d.ts +0 -31
  156. package/dist/harness/journal.js +0 -178
  157. package/dist/harness/journal.js.map +0 -1
  158. package/dist/harness/metareview.d.ts +0 -4
  159. package/dist/harness/metareview.js +0 -48
  160. package/dist/harness/metareview.js.map +0 -1
  161. package/dist/harness/metrics.d.ts +0 -12
  162. package/dist/harness/metrics.js +0 -180
  163. package/dist/harness/metrics.js.map +0 -1
  164. package/dist/harness/parallel.d.ts +0 -37
  165. package/dist/harness/parallel.js +0 -237
  166. package/dist/harness/parallel.js.map +0 -1
  167. package/dist/harness/prompt.d.ts +0 -46
  168. package/dist/harness/prompt.js +0 -403
  169. package/dist/harness/prompt.js.map +0 -1
  170. package/dist/harness/scratchpad.d.ts +0 -2
  171. package/dist/harness/scratchpad.js +0 -67
  172. package/dist/harness/scratchpad.js.map +0 -1
  173. package/dist/harness/stop.d.ts +0 -5
  174. package/dist/harness/stop.js +0 -70
  175. package/dist/harness/stop.js.map +0 -1
  176. package/dist/harness/tools.d.ts +0 -3
  177. package/dist/harness/tools.js +0 -65
  178. package/dist/harness/tools.js.map +0 -1
  179. package/dist/harness/types.d.ts +0 -110
  180. package/dist/harness/types.js +0 -2
  181. package/dist/harness/types.js.map +0 -1
  182. package/dist/harness/wave/finalize-wave.d.ts +0 -9
  183. package/dist/harness/wave/finalize-wave.js +0 -87
  184. package/dist/harness/wave/finalize-wave.js.map +0 -1
  185. package/dist/harness/wave/launch-branches.d.ts +0 -6
  186. package/dist/harness/wave/launch-branches.js +0 -314
  187. package/dist/harness/wave/launch-branches.js.map +0 -1
  188. package/dist/harness/wave/parse-objectives.d.ts +0 -3
  189. package/dist/harness/wave/parse-objectives.js +0 -32
  190. package/dist/harness/wave/parse-objectives.js.map +0 -1
  191. package/dist/harness/wave/types.d.ts +0 -43
  192. package/dist/harness/wave/types.js +0 -2
  193. package/dist/harness/wave/types.js.map +0 -1
  194. package/dist/harness/wave.d.ts +0 -6
  195. package/dist/harness/wave.js +0 -159
  196. package/dist/harness/wave.js.map +0 -1
  197. package/dist/isolation/index.d.ts +0 -4
  198. package/dist/isolation/index.js +0 -3
  199. package/dist/isolation/index.js.map +0 -1
  200. package/dist/isolation/resolve.d.ts +0 -39
  201. package/dist/isolation/resolve.js +0 -118
  202. package/dist/isolation/resolve.js.map +0 -1
  203. package/dist/isolation/run-scope.d.ts +0 -21
  204. package/dist/isolation/run-scope.js +0 -50
  205. package/dist/isolation/run-scope.js.map +0 -1
  206. package/dist/json.d.ts +0 -8
  207. package/dist/json.js +0 -82
  208. package/dist/json.js.map +0 -1
  209. package/dist/loops/health.d.ts +0 -17
  210. package/dist/loops/health.js +0 -152
  211. package/dist/loops/health.js.map +0 -1
  212. package/dist/loops/list.d.ts +0 -6
  213. package/dist/loops/list.js +0 -21
  214. package/dist/loops/list.js.map +0 -1
  215. package/dist/loops/policy.d.ts +0 -6
  216. package/dist/loops/policy.js +0 -41
  217. package/dist/loops/policy.js.map +0 -1
  218. package/dist/loops/render.d.ts +0 -19
  219. package/dist/loops/render.js +0 -100
  220. package/dist/loops/render.js.map +0 -1
  221. package/dist/loops/show.d.ts +0 -8
  222. package/dist/loops/show.js +0 -31
  223. package/dist/loops/show.js.map +0 -1
  224. package/dist/loops/watch.d.ts +0 -14
  225. package/dist/loops/watch.js +0 -143
  226. package/dist/loops/watch.js.map +0 -1
  227. package/dist/main.d.ts +0 -1
  228. package/dist/main.js +0 -148
  229. package/dist/main.js.map +0 -1
  230. package/dist/markdown.d.ts +0 -10
  231. package/dist/markdown.js +0 -66
  232. package/dist/markdown.js.map +0 -1
  233. package/dist/memory-render.d.ts +0 -6
  234. package/dist/memory-render.js +0 -81
  235. package/dist/memory-render.js.map +0 -1
  236. package/dist/memory.d.ts +0 -22
  237. package/dist/memory.js +0 -318
  238. package/dist/memory.js.map +0 -1
  239. package/dist/pi-adapter.d.ts +0 -1
  240. package/dist/pi-adapter.js +0 -220
  241. package/dist/pi-adapter.js.map +0 -1
  242. package/dist/profiles.d.ts +0 -12
  243. package/dist/profiles.js +0 -71
  244. package/dist/profiles.js.map +0 -1
  245. package/dist/registry/derive.d.ts +0 -8
  246. package/dist/registry/derive.js +0 -88
  247. package/dist/registry/derive.js.map +0 -1
  248. package/dist/registry/discover.d.ts +0 -20
  249. package/dist/registry/discover.js +0 -98
  250. package/dist/registry/discover.js.map +0 -1
  251. package/dist/registry/harness.d.ts +0 -7
  252. package/dist/registry/harness.js +0 -63
  253. package/dist/registry/harness.js.map +0 -1
  254. package/dist/registry/index.d.ts +0 -6
  255. package/dist/registry/index.js +0 -6
  256. package/dist/registry/index.js.map +0 -1
  257. package/dist/registry/read.d.ts +0 -11
  258. package/dist/registry/read.js +0 -50
  259. package/dist/registry/read.js.map +0 -1
  260. package/dist/registry/rebuild.d.ts +0 -5
  261. package/dist/registry/rebuild.js +0 -22
  262. package/dist/registry/rebuild.js.map +0 -1
  263. package/dist/registry/types.d.ts +0 -28
  264. package/dist/registry/types.js +0 -2
  265. package/dist/registry/types.js.map +0 -1
  266. package/dist/registry/update.d.ts +0 -2
  267. package/dist/registry/update.js +0 -7
  268. package/dist/registry/update.js.map +0 -1
  269. package/dist/tasks-render.d.ts +0 -2
  270. package/dist/tasks-render.js +0 -44
  271. package/dist/tasks-render.js.map +0 -1
  272. package/dist/tasks.d.ts +0 -24
  273. package/dist/tasks.js +0 -184
  274. package/dist/tasks.js.map +0 -1
  275. package/dist/topology.d.ts +0 -31
  276. package/dist/topology.js +0 -309
  277. package/dist/topology.js.map +0 -1
  278. package/dist/usage.d.ts +0 -9
  279. package/dist/usage.js +0 -160
  280. package/dist/usage.js.map +0 -1
  281. package/dist/utils.d.ts +0 -21
  282. package/dist/utils.js +0 -349
  283. package/dist/utils.js.map +0 -1
  284. package/dist/worktree/clean.d.ts +0 -12
  285. package/dist/worktree/clean.js +0 -113
  286. package/dist/worktree/clean.js.map +0 -1
  287. package/dist/worktree/create.d.ts +0 -14
  288. package/dist/worktree/create.js +0 -71
  289. package/dist/worktree/create.js.map +0 -1
  290. package/dist/worktree/index.d.ts +0 -10
  291. package/dist/worktree/index.js +0 -6
  292. package/dist/worktree/index.js.map +0 -1
  293. package/dist/worktree/list.d.ts +0 -9
  294. package/dist/worktree/list.js +0 -24
  295. package/dist/worktree/list.js.map +0 -1
  296. package/dist/worktree/merge.d.ts +0 -11
  297. package/dist/worktree/merge.js +0 -129
  298. package/dist/worktree/merge.js.map +0 -1
  299. package/dist/worktree/meta.d.ts +0 -17
  300. package/dist/worktree/meta.js +0 -34
  301. package/dist/worktree/meta.js.map +0 -1
  302. package/presets/autocode/README.md +0 -81
  303. package/presets/autocode/autoloops.toml +0 -30
  304. package/presets/autocode/harness.md +0 -26
  305. package/presets/autocode/miniloops.toml +0 -22
  306. package/presets/autocode/roles/build.md +0 -34
  307. package/presets/autocode/roles/critic.md +0 -40
  308. package/presets/autocode/roles/finalizer.md +0 -43
  309. package/presets/autocode/roles/planner.md +0 -40
  310. package/presets/autocode/topology.toml +0 -32
  311. package/presets/autodebug/README.md +0 -50
  312. package/presets/autodebug/autoloops.toml +0 -18
  313. package/presets/autodebug/harness.md +0 -31
  314. package/presets/autodebug/roles/fixer.md +0 -58
  315. package/presets/autodebug/roles/investigator.md +0 -52
  316. package/presets/autodebug/roles/strategist.md +0 -45
  317. package/presets/autodebug/roles/verifier.md +0 -66
  318. package/presets/autodebug/topology.toml +0 -34
  319. package/presets/autodoc/README.md +0 -42
  320. package/presets/autodoc/autoloops.toml +0 -21
  321. package/presets/autodoc/harness.md +0 -19
  322. package/presets/autodoc/miniloops.toml +0 -21
  323. package/presets/autodoc/roles/auditor.md +0 -39
  324. package/presets/autodoc/roles/checker.md +0 -43
  325. package/presets/autodoc/roles/publisher.md +0 -51
  326. package/presets/autodoc/roles/writer.md +0 -37
  327. package/presets/autodoc/topology.toml +0 -31
  328. package/presets/autofix/README.md +0 -56
  329. package/presets/autofix/autoloops.toml +0 -24
  330. package/presets/autofix/harness.md +0 -25
  331. package/presets/autofix/miniloops.toml +0 -21
  332. package/presets/autofix/roles/closer.md +0 -48
  333. package/presets/autofix/roles/diagnoser.md +0 -43
  334. package/presets/autofix/roles/fixer.md +0 -28
  335. package/presets/autofix/roles/verifier.md +0 -31
  336. package/presets/autofix/topology.toml +0 -33
  337. package/presets/autoideas/README.md +0 -73
  338. package/presets/autoideas/autoloops.toml +0 -18
  339. package/presets/autoideas/harness.md +0 -31
  340. package/presets/autoideas/miniloops.toml +0 -18
  341. package/presets/autoideas/roles/analyst.md +0 -32
  342. package/presets/autoideas/roles/reviewer.md +0 -36
  343. package/presets/autoideas/roles/scanner.md +0 -26
  344. package/presets/autoideas/roles/synthesizer.md +0 -61
  345. package/presets/autoideas/topology.toml +0 -32
  346. package/presets/automerge/README.md +0 -3
  347. package/presets/automerge/autoloops.toml +0 -12
  348. package/presets/automerge/harness.md +0 -10
  349. package/presets/automerge/miniloops.toml +0 -12
  350. package/presets/automerge/roles/merge.md +0 -10
  351. package/presets/automerge/topology.toml +0 -10
  352. package/presets/autoperf/README.md +0 -56
  353. package/presets/autoperf/autoloops.toml +0 -21
  354. package/presets/autoperf/harness.md +0 -21
  355. package/presets/autoperf/miniloops.toml +0 -21
  356. package/presets/autoperf/roles/judge.md +0 -38
  357. package/presets/autoperf/roles/measurer.md +0 -36
  358. package/presets/autoperf/roles/optimizer.md +0 -35
  359. package/presets/autoperf/roles/profiler.md +0 -38
  360. package/presets/autoperf/topology.toml +0 -32
  361. package/presets/autopr/README.md +0 -99
  362. package/presets/autopr/autoloops.toml +0 -22
  363. package/presets/autopr/harness.md +0 -27
  364. package/presets/autopr/miniloops.toml +0 -22
  365. package/presets/autopr/roles/collector.md +0 -55
  366. package/presets/autopr/roles/drafter.md +0 -38
  367. package/presets/autopr/roles/publisher.md +0 -28
  368. package/presets/autopr/roles/validator.md +0 -31
  369. package/presets/autopr/topology.toml +0 -32
  370. package/presets/autopreset/README.md +0 -35
  371. package/presets/autopreset/autoloops.toml +0 -18
  372. package/presets/autopreset/harness.md +0 -38
  373. package/presets/autopreset/roles/designer.md +0 -33
  374. package/presets/autopreset/roles/finalizer.md +0 -23
  375. package/presets/autopreset/roles/generator.md +0 -34
  376. package/presets/autopreset/roles/validator.md +0 -31
  377. package/presets/autopreset/topology.toml +0 -32
  378. package/presets/autoqa/README.md +0 -105
  379. package/presets/autoqa/autoloops.toml +0 -21
  380. package/presets/autoqa/harness.md +0 -52
  381. package/presets/autoqa/miniloops.toml +0 -21
  382. package/presets/autoqa/roles/executor.md +0 -96
  383. package/presets/autoqa/roles/inspector.md +0 -100
  384. package/presets/autoqa/roles/planner.md +0 -87
  385. package/presets/autoqa/roles/reporter.md +0 -117
  386. package/presets/autoqa/topology.toml +0 -31
  387. package/presets/autoresearch/README.md +0 -63
  388. package/presets/autoresearch/autoloops.toml +0 -18
  389. package/presets/autoresearch/harness.md +0 -28
  390. package/presets/autoresearch/miniloops.toml +0 -18
  391. package/presets/autoresearch/roles/benchmarker.md +0 -34
  392. package/presets/autoresearch/roles/evaluator.md +0 -33
  393. package/presets/autoresearch/roles/implementer.md +0 -26
  394. package/presets/autoresearch/roles/strategist.md +0 -43
  395. package/presets/autoresearch/topology.toml +0 -31
  396. package/presets/autoreview/README.md +0 -51
  397. package/presets/autoreview/autoloops.toml +0 -21
  398. package/presets/autoreview/harness.md +0 -20
  399. package/presets/autoreview/miniloops.toml +0 -21
  400. package/presets/autoreview/roles/checker.md +0 -36
  401. package/presets/autoreview/roles/reader.md +0 -33
  402. package/presets/autoreview/roles/suggester.md +0 -26
  403. package/presets/autoreview/roles/summarizer.md +0 -57
  404. package/presets/autoreview/topology.toml +0 -31
  405. package/presets/autosec/README.md +0 -51
  406. package/presets/autosec/autoloops.toml +0 -21
  407. package/presets/autosec/harness.md +0 -20
  408. package/presets/autosec/miniloops.toml +0 -21
  409. package/presets/autosec/roles/analyst.md +0 -38
  410. package/presets/autosec/roles/hardener.md +0 -36
  411. package/presets/autosec/roles/reporter.md +0 -63
  412. package/presets/autosec/roles/scanner.md +0 -38
  413. package/presets/autosec/topology.toml +0 -31
  414. package/presets/autosimplify/README.md +0 -83
  415. package/presets/autosimplify/autoloops.toml +0 -26
  416. package/presets/autosimplify/harness.md +0 -25
  417. package/presets/autosimplify/miniloops.toml +0 -22
  418. package/presets/autosimplify/roles/reviewer.md +0 -38
  419. package/presets/autosimplify/roles/scoper.md +0 -42
  420. package/presets/autosimplify/roles/simplifier.md +0 -51
  421. package/presets/autosimplify/roles/verifier.md +0 -40
  422. package/presets/autosimplify/topology.toml +0 -32
  423. package/presets/autospec/README.md +0 -84
  424. package/presets/autospec/autoloops.toml +0 -21
  425. package/presets/autospec/harness.md +0 -23
  426. package/presets/autospec/miniloops.toml +0 -21
  427. package/presets/autospec/roles/clarifier.md +0 -39
  428. package/presets/autospec/roles/critic.md +0 -41
  429. package/presets/autospec/roles/designer.md +0 -37
  430. package/presets/autospec/roles/planner.md +0 -38
  431. package/presets/autospec/roles/researcher.md +0 -33
  432. package/presets/autospec/topology.toml +0 -38
  433. package/presets/autotest/README.md +0 -55
  434. package/presets/autotest/autoloops.toml +0 -21
  435. package/presets/autotest/harness.md +0 -21
  436. package/presets/autotest/miniloops.toml +0 -21
  437. package/presets/autotest/roles/assessor.md +0 -57
  438. package/presets/autotest/roles/runner.md +0 -31
  439. package/presets/autotest/roles/surveyor.md +0 -39
  440. package/presets/autotest/roles/writer.md +0 -37
  441. package/presets/autotest/topology.toml +0 -32
@@ -1,403 +0,0 @@
1
- import { resolveRoleAgent } from "../agent-map.js";
2
- import * as memory from "../memory.js";
3
- import { materialize as materializeTasks } from "../tasks.js";
4
- import { renderTasksPrompt } from "../tasks-render.js";
5
- import * as topology from "../topology.js";
6
- import { joinCsv, listText } from "../utils.js";
7
- import { coordinationTopic, coreSystemTopic, parallelTopic, reservedParallelJoinedTopic, routingTopic, systemTopic, } from "./emit.js";
8
- import { appendHarnessEvent, extractField, extractIteration, extractTopic, readLines, readRunLines, } from "./journal.js";
9
- import { renderRunScratchpadPrompt } from "./scratchpad.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
- guidanceMessages: drainGuidance(runLines),
25
- routing: iterationRoutingContext(loop.topology, runLines),
26
- backpressure: latestInvalidNote(runLines),
27
- invalidCount: invalidEventCount(runLines),
28
- lastRejected: lastRejectedTopic(runLines),
29
- };
30
- }
31
- export function buildIterationContext(loop, iteration) {
32
- const runLines = readRunLines(loop.paths.journalFile, loop.runtime.runId);
33
- const derived = deriveRunContext(loop, runLines);
34
- const activeRole = derived.routing.allowedRoles.length === 1
35
- ? derived.routing.allowedRoles[0]
36
- : "";
37
- const roleAgent = resolveRoleAgent(loop.agentMap, loop.launch.preset, activeRole) || "";
38
- const prompt = renderIterationPromptText(loop, iteration, derived);
39
- if (derived.guidanceMessages.length > 0) {
40
- appendHarnessEvent(loop.paths.journalFile, loop.runtime.runId, String(iteration), "operator.guidance.consumed", `Consumed ${derived.guidanceMessages.length} guidance message(s)`);
41
- }
42
- return {
43
- iteration,
44
- recentEvent: derived.routing.recentEvent,
45
- allowedRoles: derived.routing.allowedRoles,
46
- allowedEvents: derived.routing.allowedEvents,
47
- backpressure: derived.backpressure,
48
- lastRejected: derived.lastRejected,
49
- scratchpadText: derived.scratchpadText,
50
- memoryText: derived.memoryText,
51
- prompt,
52
- roleAgent,
53
- };
54
- }
55
- export function iterationRoutingContext(topo, runLines) {
56
- const recentEvent = routingEventFromLines(runLines);
57
- if (reservedParallelJoinedTopic(recentEvent)) {
58
- return joinedIterationRoutingContext(topo, runLines, recentEvent);
59
- }
60
- return {
61
- recentEvent,
62
- allowedRoles: topology.suggestedRoles(topo, recentEvent),
63
- allowedEvents: topology.allowedEvents(topo, recentEvent),
64
- };
65
- }
66
- function joinedIterationRoutingContext(topo, runLines, joinedTopic) {
67
- const joinLine = latestWaveJoinFinishLine(runLines, joinedTopic);
68
- const routingBasis = joinedRoutingBasis(joinLine, joinedTopic);
69
- const resumeRecentEvent = joinedRecentEvent(joinLine, joinedTopic);
70
- const fallbackRoles = topology.suggestedRoles(topo, routingBasis);
71
- const fallbackEvents = topology.allowedEvents(topo, routingBasis);
72
- const restoredRoles = csvFieldList(joinLine, "resume_roles");
73
- const restoredEvents = csvFieldList(joinLine, "resume_events");
74
- return {
75
- recentEvent: resumeRecentEvent,
76
- allowedRoles: restoredRoles.length > 0 ? restoredRoles : fallbackRoles,
77
- allowedEvents: restoredEvents.length > 0 ? restoredEvents : fallbackEvents,
78
- };
79
- }
80
- function latestWaveJoinFinishLine(lines, joinedTopic) {
81
- let current = "";
82
- for (const line of lines) {
83
- if (extractTopic(line) === "wave.join.finish") {
84
- if (extractField(line, "joined_topic") === joinedTopic) {
85
- current = line;
86
- }
87
- }
88
- }
89
- return current;
90
- }
91
- function joinedRoutingBasis(joinLine, joinedTopic) {
92
- if (!joinLine)
93
- return defaultJoinedRoutingBasis(joinedTopic);
94
- const basis = extractField(joinLine, "routing_basis");
95
- return basis || defaultJoinedRoutingBasis(joinedTopic);
96
- }
97
- function defaultJoinedRoutingBasis(joinedTopic) {
98
- if (joinedTopic === "explore.parallel.joined")
99
- return "loop.start";
100
- if (joinedTopic.endsWith(".parallel.joined")) {
101
- return joinedTopic.slice(0, -".parallel.joined".length);
102
- }
103
- return joinedTopic;
104
- }
105
- function joinedRecentEvent(joinLine, joinedTopic) {
106
- if (!joinLine)
107
- return joinedTopic;
108
- return extractField(joinLine, "resume_recent_event") || joinedTopic;
109
- }
110
- function csvFieldList(line, field) {
111
- if (!line)
112
- return [];
113
- const value = extractField(line, field);
114
- if (!value)
115
- return [];
116
- return value
117
- .split(",")
118
- .map((s) => s.trim())
119
- .filter((s) => s !== "");
120
- }
121
- export function routingEventFromLines(lines) {
122
- let current = "loop.start";
123
- for (const line of lines) {
124
- const topic = extractTopic(line);
125
- if (topic === "event.invalid") {
126
- const extracted = extractField(line, "recent_event");
127
- if (extracted)
128
- current = extracted;
129
- }
130
- else if (routingTopic(topic)) {
131
- current = topic;
132
- }
133
- }
134
- return current;
135
- }
136
- export function latestInvalidNote(runLines) {
137
- let note = "";
138
- for (const line of runLines) {
139
- const topic = extractTopic(line);
140
- if (topic === "event.invalid") {
141
- note = invalidNoteFromLine(line);
142
- }
143
- else if (!systemTopic(topic)) {
144
- note = "";
145
- }
146
- }
147
- return note;
148
- }
149
- function invalidNoteFromLine(line) {
150
- return ("Emitted `" +
151
- extractField(line, "emitted") +
152
- "` after `" +
153
- extractField(line, "recent_event") +
154
- "`.\n" +
155
- "Suggested roles: " +
156
- emptyListText(extractField(line, "suggested_roles")) +
157
- "\n" +
158
- "Allowed next events: " +
159
- emptyListText(extractField(line, "allowed_events")) +
160
- "\n" +
161
- "Re-emit using one of the allowed events above.");
162
- }
163
- function emptyListText(text) {
164
- return text || "(none)";
165
- }
166
- export function invalidEventCount(runLines) {
167
- let count = 0;
168
- for (const line of runLines) {
169
- if (extractTopic(line) === "event.invalid")
170
- count++;
171
- }
172
- return count;
173
- }
174
- export function lastRejectedTopic(runLines) {
175
- let last = "";
176
- for (const line of runLines) {
177
- if (extractTopic(line) === "event.invalid") {
178
- last = extractField(line, "emitted");
179
- }
180
- }
181
- return last;
182
- }
183
- export function renderIterationPromptText(loop, iteration, derived) {
184
- const { routing, backpressure, memoryStats, memoryText, tasksText, tasksStats, guidanceMessages, scratchpadText, invalidCount, lastRejected, } = derived;
185
- const { allowedRoles, allowedEvents, recentEvent } = routing;
186
- return ("You are inside a bare-minimal autoloops harness.\n\n" +
187
- harnessInstructionsText(loop) +
188
- contextPressureText(memoryStats, tasksStats, invalidCount, lastRejected) +
189
- backpressureText(backpressure) +
190
- "Objective:\n" +
191
- loop.objective +
192
- "\n\n" +
193
- renderGuidanceSection(guidanceMessages) +
194
- (memoryText ? `${memoryText}\n` : "") +
195
- (tasksText ? `${tasksText}\n` : "") +
196
- topology.renderWithContext(loop.topology, recentEvent, allowedRoles, allowedEvents) +
197
- "\n" +
198
- parallelPromptText(loop, allowedEvents) +
199
- `Iteration: ${iteration}/${loop.limits.maxIterations}\n` +
200
- `Log level: ${loop.runtime.logLevel}\n` +
201
- `Completion event: ${loop.completion.event}\n` +
202
- `Completion promise fallback: ${loop.completion.promise}\n` +
203
- `Required events: ${loop.completion.requiredEvents.length === 0 ? "(none)" : joinCsv(loop.completion.requiredEvents)}\n` +
204
- `Loop-owned working files belong under: ${loop.paths.stateDir}\n` +
205
- `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` +
206
- `Suggested next roles now: ${listText(allowedRoles)}\n` +
207
- `Allowed next events now: ${listText(allowedEvents)}\n` +
208
- "Event tool: " +
209
- loop.paths.toolPath +
210
- "\n\n" +
211
- "Current scratchpad:\n" +
212
- (scratchpadText || "(empty)") +
213
- "\n\n" +
214
- "Use the event tool to publish your allowed handoff or completion event.\n" +
215
- "Examples:\n" +
216
- loop.paths.toolPath +
217
- ' emit <allowed-topic> "brief handoff summary"\n' +
218
- loop.paths.toolPath +
219
- " emit " +
220
- loop.completion.event +
221
- ' "brief completion summary"\n' +
222
- loop.paths.toolPath +
223
- ' memory add learning "durable lesson"\n' +
224
- loop.paths.toolPath +
225
- ' memory add preference Workflow "short preference note"\n' +
226
- loop.paths.toolPath +
227
- ' task add "description of work item"\n' +
228
- loop.paths.toolPath +
229
- " task complete task-1\n\n" +
230
- "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" +
231
- "Prompt/output/scratchpad/memory are projections or stores you can inspect with `" +
232
- loop.paths.toolPath +
233
- ` inspect prompt ${iteration} --format md\`, \`` +
234
- loop.paths.toolPath +
235
- " inspect scratchpad --format md`, and `" +
236
- loop.paths.toolPath +
237
- " inspect memory --format md`.\n" +
238
- "Plain text alone does not publish an event. Prefer the event tool over the stdout completion promise.\n");
239
- }
240
- export function renderReviewPromptText(loop, iteration, runLines) {
241
- const derived = deriveRunContext(loop, runLines);
242
- const { scratchpadText, memoryText, tasksText, memoryStats, tasksStats, guidanceMessages, routing, backpressure, invalidCount, lastRejected, } = derived;
243
- const latestIteration = String(maxReviewPromptIteration(runLines));
244
- return ("You are the metareview meta-reviewer for this loop.\n\n" +
245
- "Your job is to improve the loop itself, not to finish the task directly.\n" +
246
- "You may make bounded hygiene edits to runtime-facing loop files when that will improve the next iterations.\n" +
247
- `Safe edit targets include \`autoloops.toml\`, \`topology.toml\`, \`harness.md\`, \`metareview.md\`, \`roles/*.md\`, \`${loop.paths.stateDir}/context.md\`, \`${loop.paths.stateDir}/plan.md\`, \`${loop.paths.stateDir}/progress.md\`, \`${loop.paths.stateDir}/logs/\`, and \`${loop.paths.stateDir}/docs/*.md\`.\n` +
248
- `Keep loop-owned artifacts under \`${loop.paths.stateDir}/\`; do not leave loop-owned working files at the repo root.\n` +
249
- `Use \`${loop.paths.toolPath} memory add ...\` for short durable lessons or operator notes that should persist across turns.\n` +
250
- `Do not edit app/product source code, tests, package manifests, generated state under \`${loop.paths.stateDir}/\`, or journal history during review.\n` +
251
- "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" +
252
- "Do not emit normal loop events during review.\n\n" +
253
- reviewInstructionsText(loop) +
254
- contextPressureText(memoryStats, tasksStats, invalidCount, lastRejected) +
255
- backpressureText(backpressure) +
256
- renderGuidanceSection(guidanceMessages) +
257
- (memoryText ? `${memoryText}\n` : "") +
258
- (tasksText ? `${tasksText}\n` : "") +
259
- `Review trigger iteration: ${iteration}\n` +
260
- "Latest routing event: " +
261
- routing.recentEvent +
262
- "\n\n" +
263
- topology.renderWithContext(loop.topology, routing.recentEvent, routing.allowedRoles, routing.allowedEvents) +
264
- "\n" +
265
- "Current scratchpad:\n" +
266
- (scratchpadText || "(empty)") +
267
- "\n\n" +
268
- "Useful commands:\n" +
269
- loop.paths.toolPath +
270
- " inspect scratchpad --format md\n" +
271
- loop.paths.toolPath +
272
- " inspect memory --format md\n" +
273
- loop.paths.toolPath +
274
- " inspect prompt " +
275
- latestIteration +
276
- " --format md\n" +
277
- loop.paths.toolPath +
278
- " inspect output " +
279
- latestIteration +
280
- " --format text\n\n" +
281
- "If no improvements are needed, store a short learning explaining why and exit cleanly.\n");
282
- }
283
- export function drainGuidance(runLines) {
284
- // Find the index of the last operator.guidance.consumed marker
285
- let consumedIdx = -1;
286
- for (let i = runLines.length - 1; i >= 0; i--) {
287
- if (extractTopic(runLines[i]) === "operator.guidance.consumed") {
288
- consumedIdx = i;
289
- break;
290
- }
291
- }
292
- // Collect all operator.guidance events after the last consumed marker
293
- const messages = [];
294
- for (let i = consumedIdx + 1; i < runLines.length; i++) {
295
- if (extractTopic(runLines[i]) === "operator.guidance") {
296
- const payload = extractField(runLines[i], "payload");
297
- if (payload)
298
- messages.push(payload);
299
- }
300
- }
301
- return messages;
302
- }
303
- function renderGuidanceSection(guidance) {
304
- if (guidance.length === 0)
305
- return "";
306
- const body = guidance.length === 1
307
- ? guidance[0]
308
- : guidance.map((g, i) => `${i + 1}. ${g}`).join("\n");
309
- return ("## OPERATOR GUIDANCE\n\n" +
310
- body +
311
- "\n\n\u26a0\ufe0f Act on this guidance in this iteration. It will not be repeated.\n\n");
312
- }
313
- function harnessInstructionsText(loop) {
314
- if (!loop.harness.instructions)
315
- return "";
316
- return `Live harness instructions:\n${loop.harness.instructions}\n\n`;
317
- }
318
- function reviewInstructionsText(loop) {
319
- if (!loop.review.prompt)
320
- return "";
321
- return `Additional metareview instructions:\n${loop.review.prompt}\n\n`;
322
- }
323
- function contextPressureText(memoryStats, tasksStats, invalidCount, lastRejected) {
324
- return ("Context pressure:\n" +
325
- "- Memory: " +
326
- memoryPressureSummary(memoryStats) +
327
- "\n" +
328
- "- Tasks: " +
329
- tasksPressureSummary(tasksStats) +
330
- "\n" +
331
- "- Invalid emits this run: " +
332
- invalidCount +
333
- invalidEmitHint(invalidCount, lastRejected) +
334
- "\n" +
335
- contextPressureRecommendation(memoryStats.truncated, invalidCount));
336
- }
337
- function tasksPressureSummary(stats) {
338
- if (stats.total === 0)
339
- return "no tasks";
340
- return `${stats.open} open, ${stats.done} done (${stats.total} total)`;
341
- }
342
- function memoryPressureSummary(stats) {
343
- const entryDetail = `${stats.totalEntries} entries (${stats.preferences} preferences, ${stats.learnings} learnings, ${stats.meta} meta)`;
344
- if (stats.truncated) {
345
- return `${stats.renderedChars}/${stats.budgetChars} chars across ${entryDetail} — truncated by ${stats.renderedChars - stats.budgetChars} chars (drop order: meta → learnings → preferences)`;
346
- }
347
- if (stats.budgetChars <= 0) {
348
- return `${stats.renderedChars} chars across ${entryDetail}; prompt budget disabled`;
349
- }
350
- return `${stats.renderedChars}/${stats.budgetChars} chars across ${entryDetail}`;
351
- }
352
- function invalidEmitHint(invalidCount, lastRejected) {
353
- if (invalidCount === 0)
354
- return "";
355
- if (!lastRejected)
356
- return " — routing is currently under backpressure";
357
- return ` — routing backpressure; last rejected: \`${lastRejected}\``;
358
- }
359
- function contextPressureRecommendation(truncated, invalidCount) {
360
- if (truncated || invalidCount > 0) {
361
- return "- Recommendation: consolidate stale or duplicate context before adding new memory, and re-route using the allowed-event set when needed.\n\n";
362
- }
363
- return "\n";
364
- }
365
- function backpressureText(text) {
366
- return text ? `Backpressure:\n${text}\n\n` : "";
367
- }
368
- function parallelPromptText(loop, allowedEvents) {
369
- if (!loop.parallel.enabled || loop.runtime.branchMode)
370
- return "";
371
- const dispatch = parallelDispatchPromptEvents(allowedEvents, loop.completion.event);
372
- const dispatchLine = dispatch.length === 0
373
- ? "- Dispatch fan-out is available as `<allowed-event>.parallel` for currently allowed normal handoff events.\n"
374
- : "- Dispatch fan-out is available now via `<allowed-event>.parallel`: " +
375
- dispatch.map((e) => `\`${e}\``).join(", ") +
376
- ".\n";
377
- return ("Structured parallelism:\n" +
378
- "- `explore.parallel` is available for exploratory self-loop fan-out before you choose the real next event.\n" +
379
- dispatchLine +
380
- `- Payloads must be a markdown bullet list or numbered list with 1..${loop.parallel.maxBranches} distinct branch objectives.\n` +
381
- "- Use fan-out only when branches are concrete, independently useful, and worth the barrier cost; keep one active wave at a time.\n" +
382
- `- 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`);
383
- }
384
- function parallelDispatchPromptEvents(allowedEvents, completionEvent) {
385
- return allowedEvents
386
- .filter((e) => e !== completionEvent &&
387
- !coordinationTopic(e) &&
388
- !coreSystemTopic(e) &&
389
- !parallelTopic(e))
390
- .map((e) => `${e}.parallel`);
391
- }
392
- function maxReviewPromptIteration(runLines) {
393
- let current = 1;
394
- for (const line of runLines) {
395
- if (extractTopic(line) === "iteration.start") {
396
- const val = parseInt(extractIteration(line), 10);
397
- if (!Number.isNaN(val) && val > current)
398
- current = val;
399
- }
400
- }
401
- return current;
402
- }
403
- //# sourceMappingURL=prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/harness/prompt.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function renderRunScratchpadFull(lines: string[]): string;
2
- export declare function renderRunScratchpadPrompt(lines: string[]): string;
@@ -1,67 +0,0 @@
1
- import { decodeEvent } from "../events/decode.js";
2
- import { bulletList, heading } from "../markdown.js";
3
- import { lineSep } from "../utils.js";
4
- export function renderRunScratchpadFull(lines) {
5
- const entries = collectScratchpadEntries(lines);
6
- return renderScratchpadEntries(entries);
7
- }
8
- export function renderRunScratchpadPrompt(lines) {
9
- const entries = collectScratchpadEntries(lines);
10
- if (entries.length <= 4)
11
- return renderScratchpadEntries(entries);
12
- const compactCount = entries.length - 4;
13
- const compacted = entries.slice(0, compactCount);
14
- const recent = entries.slice(compactCount);
15
- return (heading(2, "Earlier iterations (compacted)") +
16
- "\n\n" +
17
- bulletList(compacted.map(compactScratchpadItem)) +
18
- "\n\n" +
19
- renderScratchpadEntries(recent));
20
- }
21
- function collectScratchpadEntries(lines) {
22
- const entries = [];
23
- for (const line of lines) {
24
- const event = decodeEvent(line);
25
- if (!event ||
26
- event.shape !== "fields" ||
27
- event.topic !== "iteration.finish")
28
- continue;
29
- entries.push({
30
- iteration: event.iteration ?? "",
31
- exitCode: event.fields.exit_code ?? "",
32
- output: event.fields.output ?? "",
33
- });
34
- }
35
- return entries;
36
- }
37
- function renderScratchpadEntries(entries) {
38
- return entries.map(scratchpadEntryText).join("");
39
- }
40
- function scratchpadEntryText(entry) {
41
- return (heading(2, `Iteration ${entry.iteration}`) +
42
- "\n\n" +
43
- "exit_code=" +
44
- entry.exitCode +
45
- "\n\n" +
46
- entry.output +
47
- "\n");
48
- }
49
- function compactScratchpadItem(entry) {
50
- return ("Iteration " +
51
- entry.iteration +
52
- " exit_code=" +
53
- entry.exitCode +
54
- " — " +
55
- scratchpadEntrySummary(entry));
56
- }
57
- function scratchpadEntrySummary(entry) {
58
- const lines = entry.output.split(lineSep());
59
- for (const line of lines) {
60
- const trimmed = line.trim();
61
- if (trimmed !== "") {
62
- return trimmed.length <= 120 ? trimmed : `${trimmed.slice(0, 120)}...`;
63
- }
64
- }
65
- return "(no output)";
66
- }
67
- //# sourceMappingURL=scratchpad.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scratchpad.js","sourceRoot":"","sources":["../../src/harness/scratchpad.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { LoopContext, RunSummary } from "./types.js";
2
- export declare function stopMaxIterations(loop: LoopContext, iteration: number): RunSummary;
3
- export declare function stopBackendFailed(loop: LoopContext, iteration: number, output: string): RunSummary;
4
- export declare function stopBackendTimeout(loop: LoopContext, iteration: number, output: string): RunSummary;
5
- export declare function completeLoop(loop: LoopContext, iteration: number, reason: string): RunSummary;
@@ -1,70 +0,0 @@
1
- import { jsonField } from "../json.js";
2
- import { registryComplete, registryStop } from "../registry/harness.js";
3
- import { lastNChars, log, printFailureDiagnostic, printProgressLine, } from "./display.js";
4
- import { appendEvent } from "./journal.js";
5
- export function stopMaxIterations(loop, iteration) {
6
- const completed = iteration <= 1 ? 0 : iteration - 1;
7
- log(loop, "warn", `loop stop reason=max_iterations completed_iterations=${completed} max_iterations=${loop.limits.maxIterations}`);
8
- printProgressLine({
9
- runId: loop.runtime.runId,
10
- iteration: completed,
11
- recentEvent: "loop.stop",
12
- allowedRoles: [],
13
- outcome: "stop:max_iterations",
14
- });
15
- console.log(`Reached iteration limit: ${completed}/${loop.limits.maxIterations} iterations completed.`);
16
- appendEvent(loop.paths.journalFile, loop.runtime.runId, "", "loop.stop", jsonField("reason", "max_iterations") +
17
- ", " +
18
- jsonField("completed_iterations", String(completed)) +
19
- ", " +
20
- jsonField("stopped_before_iteration", String(iteration)) +
21
- ", " +
22
- jsonField("max_iterations", String(loop.limits.maxIterations)));
23
- registryStop(loop, completed, "max_iterations");
24
- return { iterations: completed, stopReason: "max_iterations" };
25
- }
26
- export function stopBackendFailed(loop, iteration, output) {
27
- log(loop, "error", `loop stop reason=backend_failed iteration=${iteration}`);
28
- printProgressLine({
29
- runId: loop.runtime.runId,
30
- iteration,
31
- recentEvent: "loop.stop",
32
- allowedRoles: [],
33
- outcome: "stop:backend_failed",
34
- });
35
- printFailureDiagnostic(output, "backend_failed");
36
- const tail = lastNChars(output, 500);
37
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iteration), "loop.stop", jsonField("reason", "backend_failed") +
38
- ", " +
39
- jsonField("iteration", String(iteration)) +
40
- ", " +
41
- jsonField("output_tail", tail));
42
- registryStop(loop, iteration, "backend_failed");
43
- return { iterations: iteration, stopReason: "backend_failed" };
44
- }
45
- export function stopBackendTimeout(loop, iteration, output) {
46
- log(loop, "error", `loop stop reason=backend_timeout iteration=${iteration}`);
47
- printProgressLine({
48
- runId: loop.runtime.runId,
49
- iteration,
50
- recentEvent: "loop.stop",
51
- allowedRoles: [],
52
- outcome: "stop:backend_timeout",
53
- });
54
- printFailureDiagnostic(output, "backend_timeout");
55
- const tail = lastNChars(output, 500);
56
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iteration), "loop.stop", jsonField("reason", "backend_timeout") +
57
- ", " +
58
- jsonField("iteration", String(iteration)) +
59
- ", " +
60
- jsonField("output_tail", tail));
61
- registryStop(loop, iteration, "backend_timeout");
62
- return { iterations: iteration, stopReason: "backend_timeout" };
63
- }
64
- export function completeLoop(loop, iteration, reason) {
65
- log(loop, "info", `loop complete reason=${reason}`);
66
- appendEvent(loop.paths.journalFile, loop.runtime.runId, String(iteration), "loop.complete", jsonField("reason", reason));
67
- registryComplete(loop, iteration, reason);
68
- return { iterations: iteration, stopReason: reason };
69
- }
70
- //# sourceMappingURL=stop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/harness/stop.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { LoopContext } from "./index.js";
2
- export declare function emitToolScript(loop: LoopContext): string;
3
- export declare function piAdapterScript(loop: LoopContext): string;