@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,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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EACL,UAAU,EACV,GAAG,EACH,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,UAAU,iBAAiB,CAC/B,IAAiB,EACjB,SAAiB;IAEjB,MAAM,SAAS,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IACrD,GAAG,CACD,IAAI,EACJ,MAAM,EACN,wDAAwD,SAAS,mBAAmB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAChH,CAAC;IACF,iBAAiB,CAAC;QAChB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CACT,4BAA4B,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,wBAAwB,CAC3F,CAAC;IACF,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,EAAE,EACF,WAAW,EACX,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACnC,IAAI;QACJ,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI;QACJ,SAAS,CAAC,0BAA0B,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI;QACJ,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CACjE,CAAC;IACF,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAChD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAiB,EACjB,SAAiB,EACjB,MAAc;IAEd,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,6CAA6C,SAAS,EAAE,CAAC,CAAC;IAC7E,iBAAiB,CAAC;QAChB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,SAAS;QACT,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CAAC;IACH,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,SAAS,CAAC,EACjB,WAAW,EACX,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACnC,IAAI;QACJ,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI;QACJ,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CACjC,CAAC;IACF,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAChD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAiB,EACjB,SAAiB,EACjB,MAAc;IAEd,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,8CAA8C,SAAS,EAAE,CAAC,CAAC;IAC9E,iBAAiB,CAAC;QAChB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;QACzB,SAAS;QACT,WAAW,EAAE,WAAW;QACxB,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,sBAAsB;KAChC,CAAC,CAAC;IACH,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,SAAS,CAAC,EACjB,WAAW,EACX,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACpC,IAAI;QACJ,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI;QACJ,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CACjC,CAAC;IACF,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAiB,EACjB,SAAiB,EACjB,MAAc;IAEd,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,wBAAwB,MAAM,EAAE,CAAC,CAAC;IACpD,WAAW,CACT,IAAI,CAAC,KAAK,CAAC,WAAW,EACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,MAAM,CAAC,SAAS,CAAC,EACjB,eAAe,EACf,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC5B,CAAC;IACF,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACvD,CAAC"}
@@ -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;