@mobrienv/autoloop 0.4.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 (440) hide show
  1. package/README.md +40 -14
  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 +30 -23
  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 -293
  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 -19
  20. package/dist/backend/kiro-bridge.js +0 -114
  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 -96
  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/cli/color.d.ts +0 -6
  59. package/dist/cli/color.js +0 -40
  60. package/dist/cli/color.js.map +0 -1
  61. package/dist/commands/chain.d.ts +0 -1
  62. package/dist/commands/chain.js +0 -53
  63. package/dist/commands/chain.js.map +0 -1
  64. package/dist/commands/config.d.ts +0 -1
  65. package/dist/commands/config.js +0 -74
  66. package/dist/commands/config.js.map +0 -1
  67. package/dist/commands/dashboard.d.ts +0 -1
  68. package/dist/commands/dashboard.js +0 -68
  69. package/dist/commands/dashboard.js.map +0 -1
  70. package/dist/commands/guide.d.ts +0 -1
  71. package/dist/commands/guide.js +0 -33
  72. package/dist/commands/guide.js.map +0 -1
  73. package/dist/commands/inspect.d.ts +0 -1
  74. package/dist/commands/inspect.js +0 -243
  75. package/dist/commands/inspect.js.map +0 -1
  76. package/dist/commands/list.d.ts +0 -1
  77. package/dist/commands/list.js +0 -15
  78. package/dist/commands/list.js.map +0 -1
  79. package/dist/commands/loops.d.ts +0 -1
  80. package/dist/commands/loops.js +0 -72
  81. package/dist/commands/loops.js.map +0 -1
  82. package/dist/commands/memory.d.ts +0 -1
  83. package/dist/commands/memory.js +0 -65
  84. package/dist/commands/memory.js.map +0 -1
  85. package/dist/commands/pi-adapter.d.ts +0 -1
  86. package/dist/commands/pi-adapter.js +0 -6
  87. package/dist/commands/pi-adapter.js.map +0 -1
  88. package/dist/commands/run.d.ts +0 -1
  89. package/dist/commands/run.js +0 -292
  90. package/dist/commands/run.js.map +0 -1
  91. package/dist/commands/runs.d.ts +0 -1
  92. package/dist/commands/runs.js +0 -50
  93. package/dist/commands/runs.js.map +0 -1
  94. package/dist/commands/task.d.ts +0 -1
  95. package/dist/commands/task.js +0 -74
  96. package/dist/commands/task.js.map +0 -1
  97. package/dist/commands/worktree.d.ts +0 -1
  98. package/dist/commands/worktree.js +0 -162
  99. package/dist/commands/worktree.js.map +0 -1
  100. package/dist/config.d.ts +0 -31
  101. package/dist/config.js +0 -261
  102. package/dist/config.js.map +0 -1
  103. package/dist/dashboard/app.d.ts +0 -12
  104. package/dist/dashboard/app.js +0 -23
  105. package/dist/dashboard/app.js.map +0 -1
  106. package/dist/dashboard/routes/api.d.ts +0 -3
  107. package/dist/dashboard/routes/api.js +0 -186
  108. package/dist/dashboard/routes/api.js.map +0 -1
  109. package/dist/dashboard/routes/pages.d.ts +0 -2
  110. package/dist/dashboard/routes/pages.js +0 -16
  111. package/dist/dashboard/routes/pages.js.map +0 -1
  112. package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
  113. package/dist/dashboard/views/alpine-vendor.js +0 -10
  114. package/dist/dashboard/views/alpine-vendor.js.map +0 -1
  115. package/dist/dashboard/views/shell.d.ts +0 -1
  116. package/dist/dashboard/views/shell.js +0 -1062
  117. package/dist/dashboard/views/shell.js.map +0 -1
  118. package/dist/events/decode.d.ts +0 -2
  119. package/dist/events/decode.js +0 -45
  120. package/dist/events/decode.js.map +0 -1
  121. package/dist/events/encode.d.ts +0 -2
  122. package/dist/events/encode.js +0 -33
  123. package/dist/events/encode.js.map +0 -1
  124. package/dist/events/guards.d.ts +0 -5
  125. package/dist/events/guards.js +0 -42
  126. package/dist/events/guards.js.map +0 -1
  127. package/dist/events/types.d.ts +0 -27
  128. package/dist/events/types.js +0 -2
  129. package/dist/events/types.js.map +0 -1
  130. package/dist/harness/artifacts.d.ts +0 -50
  131. package/dist/harness/artifacts.js +0 -333
  132. package/dist/harness/artifacts.js.map +0 -1
  133. package/dist/harness/config-helpers.d.ts +0 -35
  134. package/dist/harness/config-helpers.js +0 -409
  135. package/dist/harness/config-helpers.js.map +0 -1
  136. package/dist/harness/coordination.d.ts +0 -1
  137. package/dist/harness/coordination.js +0 -127
  138. package/dist/harness/coordination.js.map +0 -1
  139. package/dist/harness/display.d.ts +0 -21
  140. package/dist/harness/display.js +0 -176
  141. package/dist/harness/display.js.map +0 -1
  142. package/dist/harness/emit.d.ts +0 -15
  143. package/dist/harness/emit.js +0 -240
  144. package/dist/harness/emit.js.map +0 -1
  145. package/dist/harness/index.d.ts +0 -20
  146. package/dist/harness/index.js +0 -311
  147. package/dist/harness/index.js.map +0 -1
  148. package/dist/harness/iteration.d.ts +0 -16
  149. package/dist/harness/iteration.js +0 -131
  150. package/dist/harness/iteration.js.map +0 -1
  151. package/dist/harness/journal-format.d.ts +0 -25
  152. package/dist/harness/journal-format.js +0 -153
  153. package/dist/harness/journal-format.js.map +0 -1
  154. package/dist/harness/journal.d.ts +0 -31
  155. package/dist/harness/journal.js +0 -178
  156. package/dist/harness/journal.js.map +0 -1
  157. package/dist/harness/metareview.d.ts +0 -4
  158. package/dist/harness/metareview.js +0 -48
  159. package/dist/harness/metareview.js.map +0 -1
  160. package/dist/harness/metrics.d.ts +0 -12
  161. package/dist/harness/metrics.js +0 -180
  162. package/dist/harness/metrics.js.map +0 -1
  163. package/dist/harness/parallel.d.ts +0 -37
  164. package/dist/harness/parallel.js +0 -237
  165. package/dist/harness/parallel.js.map +0 -1
  166. package/dist/harness/prompt.d.ts +0 -46
  167. package/dist/harness/prompt.js +0 -403
  168. package/dist/harness/prompt.js.map +0 -1
  169. package/dist/harness/scratchpad.d.ts +0 -2
  170. package/dist/harness/scratchpad.js +0 -67
  171. package/dist/harness/scratchpad.js.map +0 -1
  172. package/dist/harness/stop.d.ts +0 -5
  173. package/dist/harness/stop.js +0 -70
  174. package/dist/harness/stop.js.map +0 -1
  175. package/dist/harness/tools.d.ts +0 -3
  176. package/dist/harness/tools.js +0 -65
  177. package/dist/harness/tools.js.map +0 -1
  178. package/dist/harness/types.d.ts +0 -110
  179. package/dist/harness/types.js +0 -2
  180. package/dist/harness/types.js.map +0 -1
  181. package/dist/harness/wave/finalize-wave.d.ts +0 -9
  182. package/dist/harness/wave/finalize-wave.js +0 -87
  183. package/dist/harness/wave/finalize-wave.js.map +0 -1
  184. package/dist/harness/wave/launch-branches.d.ts +0 -6
  185. package/dist/harness/wave/launch-branches.js +0 -314
  186. package/dist/harness/wave/launch-branches.js.map +0 -1
  187. package/dist/harness/wave/parse-objectives.d.ts +0 -3
  188. package/dist/harness/wave/parse-objectives.js +0 -32
  189. package/dist/harness/wave/parse-objectives.js.map +0 -1
  190. package/dist/harness/wave/types.d.ts +0 -43
  191. package/dist/harness/wave/types.js +0 -2
  192. package/dist/harness/wave/types.js.map +0 -1
  193. package/dist/harness/wave.d.ts +0 -6
  194. package/dist/harness/wave.js +0 -159
  195. package/dist/harness/wave.js.map +0 -1
  196. package/dist/isolation/index.d.ts +0 -4
  197. package/dist/isolation/index.js +0 -3
  198. package/dist/isolation/index.js.map +0 -1
  199. package/dist/isolation/resolve.d.ts +0 -39
  200. package/dist/isolation/resolve.js +0 -118
  201. package/dist/isolation/resolve.js.map +0 -1
  202. package/dist/isolation/run-scope.d.ts +0 -21
  203. package/dist/isolation/run-scope.js +0 -50
  204. package/dist/isolation/run-scope.js.map +0 -1
  205. package/dist/json.d.ts +0 -8
  206. package/dist/json.js +0 -82
  207. package/dist/json.js.map +0 -1
  208. package/dist/loops/health.d.ts +0 -17
  209. package/dist/loops/health.js +0 -152
  210. package/dist/loops/health.js.map +0 -1
  211. package/dist/loops/list.d.ts +0 -6
  212. package/dist/loops/list.js +0 -21
  213. package/dist/loops/list.js.map +0 -1
  214. package/dist/loops/policy.d.ts +0 -6
  215. package/dist/loops/policy.js +0 -41
  216. package/dist/loops/policy.js.map +0 -1
  217. package/dist/loops/render.d.ts +0 -19
  218. package/dist/loops/render.js +0 -100
  219. package/dist/loops/render.js.map +0 -1
  220. package/dist/loops/show.d.ts +0 -8
  221. package/dist/loops/show.js +0 -31
  222. package/dist/loops/show.js.map +0 -1
  223. package/dist/loops/watch.d.ts +0 -14
  224. package/dist/loops/watch.js +0 -143
  225. package/dist/loops/watch.js.map +0 -1
  226. package/dist/main.d.ts +0 -1
  227. package/dist/main.js +0 -148
  228. package/dist/main.js.map +0 -1
  229. package/dist/markdown.d.ts +0 -10
  230. package/dist/markdown.js +0 -66
  231. package/dist/markdown.js.map +0 -1
  232. package/dist/memory-render.d.ts +0 -6
  233. package/dist/memory-render.js +0 -81
  234. package/dist/memory-render.js.map +0 -1
  235. package/dist/memory.d.ts +0 -22
  236. package/dist/memory.js +0 -318
  237. package/dist/memory.js.map +0 -1
  238. package/dist/pi-adapter.d.ts +0 -1
  239. package/dist/pi-adapter.js +0 -220
  240. package/dist/pi-adapter.js.map +0 -1
  241. package/dist/profiles.d.ts +0 -12
  242. package/dist/profiles.js +0 -71
  243. package/dist/profiles.js.map +0 -1
  244. package/dist/registry/derive.d.ts +0 -8
  245. package/dist/registry/derive.js +0 -88
  246. package/dist/registry/derive.js.map +0 -1
  247. package/dist/registry/discover.d.ts +0 -20
  248. package/dist/registry/discover.js +0 -98
  249. package/dist/registry/discover.js.map +0 -1
  250. package/dist/registry/harness.d.ts +0 -7
  251. package/dist/registry/harness.js +0 -63
  252. package/dist/registry/harness.js.map +0 -1
  253. package/dist/registry/index.d.ts +0 -6
  254. package/dist/registry/index.js +0 -6
  255. package/dist/registry/index.js.map +0 -1
  256. package/dist/registry/read.d.ts +0 -11
  257. package/dist/registry/read.js +0 -50
  258. package/dist/registry/read.js.map +0 -1
  259. package/dist/registry/rebuild.d.ts +0 -5
  260. package/dist/registry/rebuild.js +0 -22
  261. package/dist/registry/rebuild.js.map +0 -1
  262. package/dist/registry/types.d.ts +0 -28
  263. package/dist/registry/types.js +0 -2
  264. package/dist/registry/types.js.map +0 -1
  265. package/dist/registry/update.d.ts +0 -2
  266. package/dist/registry/update.js +0 -7
  267. package/dist/registry/update.js.map +0 -1
  268. package/dist/tasks-render.d.ts +0 -2
  269. package/dist/tasks-render.js +0 -44
  270. package/dist/tasks-render.js.map +0 -1
  271. package/dist/tasks.d.ts +0 -24
  272. package/dist/tasks.js +0 -184
  273. package/dist/tasks.js.map +0 -1
  274. package/dist/topology.d.ts +0 -31
  275. package/dist/topology.js +0 -309
  276. package/dist/topology.js.map +0 -1
  277. package/dist/usage.d.ts +0 -9
  278. package/dist/usage.js +0 -160
  279. package/dist/usage.js.map +0 -1
  280. package/dist/utils.d.ts +0 -21
  281. package/dist/utils.js +0 -349
  282. package/dist/utils.js.map +0 -1
  283. package/dist/worktree/clean.d.ts +0 -12
  284. package/dist/worktree/clean.js +0 -113
  285. package/dist/worktree/clean.js.map +0 -1
  286. package/dist/worktree/create.d.ts +0 -14
  287. package/dist/worktree/create.js +0 -71
  288. package/dist/worktree/create.js.map +0 -1
  289. package/dist/worktree/index.d.ts +0 -10
  290. package/dist/worktree/index.js +0 -6
  291. package/dist/worktree/index.js.map +0 -1
  292. package/dist/worktree/list.d.ts +0 -9
  293. package/dist/worktree/list.js +0 -24
  294. package/dist/worktree/list.js.map +0 -1
  295. package/dist/worktree/merge.d.ts +0 -11
  296. package/dist/worktree/merge.js +0 -129
  297. package/dist/worktree/merge.js.map +0 -1
  298. package/dist/worktree/meta.d.ts +0 -17
  299. package/dist/worktree/meta.js +0 -34
  300. package/dist/worktree/meta.js.map +0 -1
  301. package/presets/autocode/README.md +0 -81
  302. package/presets/autocode/autoloops.toml +0 -30
  303. package/presets/autocode/harness.md +0 -26
  304. package/presets/autocode/miniloops.toml +0 -22
  305. package/presets/autocode/roles/build.md +0 -34
  306. package/presets/autocode/roles/critic.md +0 -40
  307. package/presets/autocode/roles/finalizer.md +0 -43
  308. package/presets/autocode/roles/planner.md +0 -40
  309. package/presets/autocode/topology.toml +0 -32
  310. package/presets/autodebug/README.md +0 -50
  311. package/presets/autodebug/autoloops.toml +0 -18
  312. package/presets/autodebug/harness.md +0 -31
  313. package/presets/autodebug/roles/fixer.md +0 -58
  314. package/presets/autodebug/roles/investigator.md +0 -52
  315. package/presets/autodebug/roles/strategist.md +0 -45
  316. package/presets/autodebug/roles/verifier.md +0 -66
  317. package/presets/autodebug/topology.toml +0 -34
  318. package/presets/autodoc/README.md +0 -42
  319. package/presets/autodoc/autoloops.toml +0 -21
  320. package/presets/autodoc/harness.md +0 -19
  321. package/presets/autodoc/miniloops.toml +0 -21
  322. package/presets/autodoc/roles/auditor.md +0 -39
  323. package/presets/autodoc/roles/checker.md +0 -43
  324. package/presets/autodoc/roles/publisher.md +0 -51
  325. package/presets/autodoc/roles/writer.md +0 -37
  326. package/presets/autodoc/topology.toml +0 -31
  327. package/presets/autofix/README.md +0 -56
  328. package/presets/autofix/autoloops.toml +0 -24
  329. package/presets/autofix/harness.md +0 -25
  330. package/presets/autofix/miniloops.toml +0 -21
  331. package/presets/autofix/roles/closer.md +0 -48
  332. package/presets/autofix/roles/diagnoser.md +0 -43
  333. package/presets/autofix/roles/fixer.md +0 -28
  334. package/presets/autofix/roles/verifier.md +0 -31
  335. package/presets/autofix/topology.toml +0 -33
  336. package/presets/autoideas/README.md +0 -73
  337. package/presets/autoideas/autoloops.toml +0 -18
  338. package/presets/autoideas/harness.md +0 -31
  339. package/presets/autoideas/miniloops.toml +0 -18
  340. package/presets/autoideas/roles/analyst.md +0 -32
  341. package/presets/autoideas/roles/reviewer.md +0 -36
  342. package/presets/autoideas/roles/scanner.md +0 -26
  343. package/presets/autoideas/roles/synthesizer.md +0 -61
  344. package/presets/autoideas/topology.toml +0 -32
  345. package/presets/automerge/README.md +0 -3
  346. package/presets/automerge/autoloops.toml +0 -12
  347. package/presets/automerge/harness.md +0 -10
  348. package/presets/automerge/miniloops.toml +0 -12
  349. package/presets/automerge/roles/merge.md +0 -10
  350. package/presets/automerge/topology.toml +0 -10
  351. package/presets/autoperf/README.md +0 -56
  352. package/presets/autoperf/autoloops.toml +0 -21
  353. package/presets/autoperf/harness.md +0 -21
  354. package/presets/autoperf/miniloops.toml +0 -21
  355. package/presets/autoperf/roles/judge.md +0 -38
  356. package/presets/autoperf/roles/measurer.md +0 -36
  357. package/presets/autoperf/roles/optimizer.md +0 -35
  358. package/presets/autoperf/roles/profiler.md +0 -38
  359. package/presets/autoperf/topology.toml +0 -32
  360. package/presets/autopr/README.md +0 -99
  361. package/presets/autopr/autoloops.toml +0 -22
  362. package/presets/autopr/harness.md +0 -27
  363. package/presets/autopr/miniloops.toml +0 -22
  364. package/presets/autopr/roles/collector.md +0 -55
  365. package/presets/autopr/roles/drafter.md +0 -38
  366. package/presets/autopr/roles/publisher.md +0 -28
  367. package/presets/autopr/roles/validator.md +0 -31
  368. package/presets/autopr/topology.toml +0 -32
  369. package/presets/autopreset/README.md +0 -35
  370. package/presets/autopreset/autoloops.toml +0 -18
  371. package/presets/autopreset/harness.md +0 -38
  372. package/presets/autopreset/roles/designer.md +0 -33
  373. package/presets/autopreset/roles/finalizer.md +0 -23
  374. package/presets/autopreset/roles/generator.md +0 -34
  375. package/presets/autopreset/roles/validator.md +0 -31
  376. package/presets/autopreset/topology.toml +0 -32
  377. package/presets/autoqa/README.md +0 -105
  378. package/presets/autoqa/autoloops.toml +0 -21
  379. package/presets/autoqa/harness.md +0 -52
  380. package/presets/autoqa/miniloops.toml +0 -21
  381. package/presets/autoqa/roles/executor.md +0 -96
  382. package/presets/autoqa/roles/inspector.md +0 -100
  383. package/presets/autoqa/roles/planner.md +0 -87
  384. package/presets/autoqa/roles/reporter.md +0 -117
  385. package/presets/autoqa/topology.toml +0 -31
  386. package/presets/autoresearch/README.md +0 -63
  387. package/presets/autoresearch/autoloops.toml +0 -18
  388. package/presets/autoresearch/harness.md +0 -28
  389. package/presets/autoresearch/miniloops.toml +0 -18
  390. package/presets/autoresearch/roles/benchmarker.md +0 -34
  391. package/presets/autoresearch/roles/evaluator.md +0 -33
  392. package/presets/autoresearch/roles/implementer.md +0 -26
  393. package/presets/autoresearch/roles/strategist.md +0 -43
  394. package/presets/autoresearch/topology.toml +0 -31
  395. package/presets/autoreview/README.md +0 -51
  396. package/presets/autoreview/autoloops.toml +0 -21
  397. package/presets/autoreview/harness.md +0 -20
  398. package/presets/autoreview/miniloops.toml +0 -21
  399. package/presets/autoreview/roles/checker.md +0 -36
  400. package/presets/autoreview/roles/reader.md +0 -33
  401. package/presets/autoreview/roles/suggester.md +0 -26
  402. package/presets/autoreview/roles/summarizer.md +0 -57
  403. package/presets/autoreview/topology.toml +0 -31
  404. package/presets/autosec/README.md +0 -51
  405. package/presets/autosec/autoloops.toml +0 -21
  406. package/presets/autosec/harness.md +0 -20
  407. package/presets/autosec/miniloops.toml +0 -21
  408. package/presets/autosec/roles/analyst.md +0 -38
  409. package/presets/autosec/roles/hardener.md +0 -36
  410. package/presets/autosec/roles/reporter.md +0 -63
  411. package/presets/autosec/roles/scanner.md +0 -38
  412. package/presets/autosec/topology.toml +0 -31
  413. package/presets/autosimplify/README.md +0 -83
  414. package/presets/autosimplify/autoloops.toml +0 -26
  415. package/presets/autosimplify/harness.md +0 -25
  416. package/presets/autosimplify/miniloops.toml +0 -22
  417. package/presets/autosimplify/roles/reviewer.md +0 -38
  418. package/presets/autosimplify/roles/scoper.md +0 -42
  419. package/presets/autosimplify/roles/simplifier.md +0 -51
  420. package/presets/autosimplify/roles/verifier.md +0 -40
  421. package/presets/autosimplify/topology.toml +0 -32
  422. package/presets/autospec/README.md +0 -84
  423. package/presets/autospec/autoloops.toml +0 -21
  424. package/presets/autospec/harness.md +0 -23
  425. package/presets/autospec/miniloops.toml +0 -21
  426. package/presets/autospec/roles/clarifier.md +0 -39
  427. package/presets/autospec/roles/critic.md +0 -41
  428. package/presets/autospec/roles/designer.md +0 -37
  429. package/presets/autospec/roles/planner.md +0 -38
  430. package/presets/autospec/roles/researcher.md +0 -33
  431. package/presets/autospec/topology.toml +0 -38
  432. package/presets/autotest/README.md +0 -55
  433. package/presets/autotest/autoloops.toml +0 -21
  434. package/presets/autotest/harness.md +0 -21
  435. package/presets/autotest/miniloops.toml +0 -21
  436. package/presets/autotest/roles/assessor.md +0 -57
  437. package/presets/autotest/roles/runner.md +0 -31
  438. package/presets/autotest/roles/surveyor.md +0 -39
  439. package/presets/autotest/roles/writer.md +0 -37
  440. package/presets/autotest/topology.toml +0 -32
@@ -1,311 +0,0 @@
1
- import { existsSync, unlinkSync, writeFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import { initKiroSession, signalInterrupt, terminateKiroSession, } from "../backend/kiro-bridge.js";
4
- import * as config from "../config.js";
5
- import { registryStart, registryStop } from "../registry/harness.js";
6
- import { cleanWorktrees } from "../worktree/clean.js";
7
- import { mergeWorktree } from "../worktree/merge.js";
8
- import { readMeta, updateStatus as updateWorktreeStatus, } from "../worktree/meta.js";
9
- import { collectArtifacts, formatArtifacts } from "./artifacts.js";
10
- import { applyRuntimeModeOverrides, buildLoopContext, emptyFallback, ensureLayout, ensureRenderRunId, initStore, installRuntimeTools, iterationFieldForRun, reloadLoop, resolveJournalFileForRun, } from "./config-helpers.js";
11
- import { coordinationFromLines } from "./coordination.js";
12
- import { log, printProjectedMarkdown, printProjectedText, printSummary, } from "./display.js";
13
- import { emit as emitCmd, resolveEmitJournalFile } from "./emit.js";
14
- import { runIteration } from "./iteration.js";
15
- import { readAllJournals, readIfExists, readRunJournal, readRunLines, } from "./journal.js";
16
- import { formatTimeline } from "./journal-format.js";
17
- import { maybeRunMetareview } from "./metareview.js";
18
- import { collectMetricsRows, formatMetrics } from "./metrics.js";
19
- import { appendLoopStart, branchStopReason, loadParallelBranchLaunch, parallelBranchBackendOverride, renderBranchResult, seedBranchContext, writeParallelBranchSummary, } from "./parallel.js";
20
- import { renderRunScratchpadFull } from "./scratchpad.js";
21
- import { stopMaxIterations } from "./stop.js";
22
- export function run(projectDir, promptOverride, selfCommand, runOptions) {
23
- let loop = buildLoopContext(projectDir, promptOverride, selfCommand, runOptions);
24
- loop = initStore(loop);
25
- ensureLayout(loop.paths.stateDir);
26
- installRuntimeTools(loop);
27
- appendLoopStart(loop);
28
- registryStart(loop);
29
- // Track current iteration for signal handler (must be mutable)
30
- let currentIteration = 0;
31
- let signalHandled = false;
32
- const onSignal = (signal) => {
33
- if (signalHandled)
34
- return;
35
- signalHandled = true;
36
- signalInterrupt();
37
- try {
38
- if (loop.kiroSession) {
39
- terminateKiroSession(loop.kiroSession);
40
- loop.kiroSession = undefined;
41
- }
42
- }
43
- catch {
44
- /* best-effort */
45
- }
46
- try {
47
- registryStop(loop, currentIteration, "interrupted");
48
- }
49
- catch {
50
- /* best-effort */
51
- }
52
- // Update worktree meta so the run isn't stuck as "running"
53
- if (loop.paths.worktreeMetaDir) {
54
- try {
55
- updateWorktreeStatus(loop.paths.worktreeMetaDir, "failed");
56
- }
57
- catch {
58
- /* best-effort */
59
- }
60
- }
61
- // Remove active wave marker so future waves aren't blocked
62
- const waveMarker = join(loop.paths.stateDir, "waves", "active");
63
- if (existsSync(waveMarker)) {
64
- try {
65
- unlinkSync(waveMarker);
66
- }
67
- catch {
68
- /* best-effort */
69
- }
70
- }
71
- process.removeListener("SIGINT", onSignal);
72
- process.removeListener("SIGTERM", onSignal);
73
- process.kill(process.pid, signal);
74
- };
75
- process.on("SIGINT", onSignal);
76
- process.on("SIGTERM", onSignal);
77
- log(loop, "info", `loop start run_id=${loop.runtime.runId} max_iterations=${loop.limits.maxIterations}`);
78
- // Initialize kiro ACP session if backend is kiro
79
- if (loop.backend.kind === "kiro") {
80
- const acpOpts = {
81
- command: loop.backend.command,
82
- args: loop.backend.args,
83
- cwd: loop.paths.workDir,
84
- trustAllTools: loop.store.kiro_trust_all_tools !== false,
85
- agentName: loop.store.kiro_agent || undefined,
86
- modelId: loop.store.kiro_model || undefined,
87
- verbose: loop.runtime.logLevel === "debug",
88
- };
89
- loop.kiroSession = initKiroSession(acpOpts);
90
- }
91
- let summary;
92
- const trackedIterate = (ctx, iter) => {
93
- currentIteration = iter;
94
- return iterateWith(ctx, iter, trackedIterate);
95
- };
96
- try {
97
- summary = trackedIterate(loop, 1);
98
- }
99
- finally {
100
- if (loop.kiroSession) {
101
- terminateKiroSession(loop.kiroSession);
102
- }
103
- }
104
- // Clean up signal handlers on normal exit
105
- process.removeListener("SIGINT", onSignal);
106
- process.removeListener("SIGTERM", onSignal);
107
- // Post-run worktree lifecycle: status update, automerge, cleanup
108
- if (loop.runtime.isolationMode === "worktree" && loop.paths.worktreeMetaDir) {
109
- const succeeded = summary.stopReason === "completed";
110
- const wtStatus = succeeded ? "completed" : "failed";
111
- try {
112
- updateWorktreeStatus(loop.paths.worktreeMetaDir, wtStatus);
113
- }
114
- catch {
115
- /* meta update is best-effort */
116
- }
117
- const keepWorktree = runOptions.keepWorktree ?? false;
118
- const automerge = runOptions.automerge ?? false;
119
- const cfg = config.loadProject(loop.paths.mainProjectDir);
120
- const cleanupPolicy = config.get(cfg, "worktree.cleanup", "on_success");
121
- // Automerge if requested and run succeeded.
122
- // Skip when trigger is "chain" — chain-mode defers merge to a dedicated automerge step.
123
- if (automerge &&
124
- succeeded &&
125
- !keepWorktree &&
126
- loop.launch.trigger !== "chain") {
127
- const meta = readMeta(loop.paths.worktreeMetaDir);
128
- if (meta) {
129
- const strategy = (meta.merge_strategy || "squash");
130
- try {
131
- mergeWorktree({
132
- mainProjectDir: loop.paths.mainProjectDir,
133
- metaDir: loop.paths.worktreeMetaDir,
134
- strategy,
135
- });
136
- log(loop, "info", `worktree merged (${strategy}) for run ${loop.runtime.runId}`);
137
- }
138
- catch (err) {
139
- const msg = err instanceof Error ? err.message : String(err);
140
- log(loop, "warn", `worktree merge failed: ${msg}`);
141
- }
142
- }
143
- }
144
- // Cleanup worktree based on policy (unless --keep-worktree)
145
- if (!keepWorktree) {
146
- const shouldClean = cleanupPolicy === "always" ||
147
- (cleanupPolicy === "on_success" && succeeded);
148
- if (shouldClean) {
149
- try {
150
- cleanWorktrees({
151
- mainProjectDir: loop.paths.mainProjectDir,
152
- mainStateDir: loop.paths.baseStateDir,
153
- runId: loop.runtime.runId,
154
- force: cleanupPolicy === "always",
155
- });
156
- log(loop, "info", `worktree cleaned for run ${loop.runtime.runId}`);
157
- }
158
- catch (err) {
159
- const msg = err instanceof Error ? err.message : String(err);
160
- log(loop, "warn", `worktree cleanup failed: ${msg}`);
161
- }
162
- }
163
- }
164
- }
165
- printSummary(summary, loop);
166
- return { ...summary, runId: loop.runtime.runId };
167
- }
168
- export { emitCmd as emit };
169
- export function renderScratchpadFormat(projectDir, format, runIdOverride) {
170
- const { journalFile, runId } = resolveJournalAndRun(projectDir, runIdOverride);
171
- printProjectedMarkdown(emptyFallback(renderRunScratchpadFull(readRunLines(journalFile, runId))), format);
172
- }
173
- export function renderPromptFormat(projectDir, iteration, format, runIdOverride) {
174
- const { journalFile, runId } = resolveJournalAndRun(projectDir, runIdOverride);
175
- const prompt = iterationFieldForRun(journalFile, runId, iteration, "iteration.start", "prompt");
176
- if (!prompt) {
177
- console.log(`missing prompt projection for iteration ${iteration}`);
178
- return;
179
- }
180
- printProjectedMarkdown(prompt, format);
181
- }
182
- export function renderOutput(projectDir, iteration, runIdOverride) {
183
- const { journalFile, runId } = resolveJournalAndRun(projectDir, runIdOverride);
184
- const output = iterationFieldForRun(journalFile, runId, iteration, "iteration.finish", "output");
185
- console.log(output || `missing output projection for iteration ${iteration}`);
186
- }
187
- export function renderJournal(projectDir, runId) {
188
- if (runId) {
189
- const stateDir = config.stateDirPath(projectDir);
190
- const lines = readRunJournal(stateDir, runId);
191
- console.log(lines.join("\n"));
192
- return;
193
- }
194
- console.log(readIfExists(resolveEmitJournalFile(projectDir)));
195
- }
196
- export function renderAllJournals(projectDir) {
197
- const stateDir = config.stateDirPath(projectDir);
198
- const lines = readAllJournals(stateDir);
199
- if (lines.length > 0) {
200
- console.log(lines.join("\n"));
201
- }
202
- else {
203
- renderJournal(projectDir);
204
- }
205
- }
206
- export function renderCoordinationFormat(projectDir, format, runIdOverride) {
207
- const { journalFile, runId } = resolveJournalAndRun(projectDir, runIdOverride);
208
- const lines = readRunLines(journalFile, runId);
209
- printProjectedMarkdown(emptyFallback(coordinationFromLines(lines)), format);
210
- }
211
- export function renderMetrics(projectDir, format, runIdOverride) {
212
- const { journalFile, runId } = resolveJournalAndRun(projectDir, runIdOverride);
213
- const lines = readRunLines(journalFile, runId);
214
- const rows = collectMetricsRows(lines);
215
- printProjectedText(formatMetrics(rows, format), format);
216
- }
217
- export function runParallelBranchCli(projectDir, branchDir, selfCommand) {
218
- const launch = loadParallelBranchLaunch(branchDir);
219
- const branchPrompt = launch.prompt;
220
- const routingEvent = launch.routingEvent || "loop.start";
221
- const backendOverride = parallelBranchBackendOverride(launch);
222
- const logLevelVal = launch.logLevel || null;
223
- let branchLoop = buildLoopContext(projectDir, branchPrompt, selfCommand, {
224
- workDir: branchDir,
225
- backendOverride,
226
- logLevel: logLevelVal,
227
- trigger: "branch",
228
- });
229
- branchLoop = initStore(branchLoop);
230
- branchLoop.runtime.branchMode = true;
231
- branchLoop = applyRuntimeModeOverrides(branchLoop);
232
- ensureLayout(branchLoop.paths.stateDir);
233
- installRuntimeTools(branchLoop);
234
- appendLoopStart(branchLoop);
235
- registryStart(branchLoop);
236
- const seeded = seedBranchContext(branchLoop, routingEvent);
237
- const startMs = Date.now();
238
- const summary = iterate(seeded, 1);
239
- const finishedMs = Date.now();
240
- const elapsedMs = finishedMs - startMs;
241
- const output = iterationFieldForRun(seeded.paths.journalFile, seeded.runtime.runId, "1", "iteration.finish", "output");
242
- const stopReason = branchStopReason(summary.stopReason, elapsedMs, seeded.parallel.branchTimeoutMs);
243
- const result = {
244
- branch_id: launch.branchId,
245
- objective: launch.objective,
246
- stop_reason: stopReason,
247
- output,
248
- routing_event: routingEvent,
249
- allowed_roles: launch.allowedRoles,
250
- allowed_events: launch.allowedEvents,
251
- branch_dir: branchDir,
252
- elapsed_ms: elapsedMs,
253
- finished_at_ms: finishedMs,
254
- };
255
- writeFileSync(join(branchDir, "result.md"), renderBranchResult(result));
256
- writeParallelBranchSummary(branchDir, result);
257
- }
258
- export function renderJournalTimeline(projectDir, spec) {
259
- let lines;
260
- if (spec.allRuns) {
261
- const stateDir = config.stateDirPath(projectDir);
262
- lines = readAllJournals(stateDir);
263
- if (lines.length === 0) {
264
- // Fallback to current journal file
265
- const journalFile = resolveEmitJournalFile(projectDir);
266
- lines = readRunLines(journalFile, ensureRenderRunId(journalFile));
267
- }
268
- }
269
- else {
270
- const { journalFile, runId } = resolveJournalAndRun(projectDir, spec.run);
271
- lines = readRunLines(journalFile, runId);
272
- }
273
- const output = formatTimeline(lines, {
274
- topics: spec.topics,
275
- iterFilter: spec.iterFilter,
276
- });
277
- console.log(output);
278
- }
279
- export function renderArtifacts(projectDir, format, runOverride) {
280
- const { journalFile, runId } = resolveJournalAndRun(projectDir, runOverride);
281
- const lines = readRunLines(journalFile, runId);
282
- const artifacts = collectArtifacts(lines, projectDir);
283
- if (format === "json") {
284
- console.log(JSON.stringify(artifacts, null, 2));
285
- }
286
- else {
287
- console.log(formatArtifacts(artifacts));
288
- }
289
- }
290
- // --- Private implementation ---
291
- function resolveJournalAndRun(projectDir, runIdOverride) {
292
- if (runIdOverride) {
293
- return resolveJournalFileForRun(projectDir, runIdOverride);
294
- }
295
- const journalFile = resolveEmitJournalFile(projectDir);
296
- return { journalFile, runId: ensureRenderRunId(journalFile) };
297
- }
298
- function iterateWith(loop, iteration, recurse) {
299
- const liveLoop = reloadLoop(loop);
300
- liveLoop.kiroSession = loop.kiroSession;
301
- installRuntimeTools(liveLoop);
302
- const reviewed = maybeRunMetareview(liveLoop, iteration);
303
- if (iteration > reviewed.limits.maxIterations) {
304
- return stopMaxIterations(reviewed, iteration);
305
- }
306
- return runIteration(reviewed, iteration, recurse);
307
- }
308
- function iterate(loop, iteration) {
309
- return iterateWith(loop, iteration, iterate);
310
- }
311
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/harness/index.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { IterationContext } from "./prompt.js";
2
- import type { LoopContext, RunSummary } from "./types.js";
3
- export declare function runIteration(loop: LoopContext, iteration: number, iterate: (loop: LoopContext, iteration: number) => RunSummary): RunSummary;
4
- export declare function finishIteration(loop: LoopContext, iter: IterationContext, output: string, iterate: (loop: LoopContext, iteration: number) => RunSummary): RunSummary;
5
- export declare function resolveOutcome(ctx: {
6
- emittedTopic: string;
7
- allTopics: string[];
8
- hadInvalidEvents: boolean;
9
- output: string;
10
- completionEvent: string;
11
- requiredEvents: string[];
12
- completionPromise: string;
13
- }): {
14
- action: string;
15
- outcome: string;
16
- };
@@ -1,131 +0,0 @@
1
- import { runKiroIterationSync, setKiroSessionMode, } from "../backend/kiro-bridge.js";
2
- import { registryProgress } from "../registry/harness.js";
3
- import { listText } from "../utils.js";
4
- import { log, printBackendOutputTail, printIterationBanner, printIterationFooter, printProgressLine, } from "./display.js";
5
- import { appendInvalidEvent, invalidEvent, parallelTriggerTopic, systemTopic, } from "./emit.js";
6
- import { extractField, extractIteration, extractTopic, readRunLines, } from "./journal.js";
7
- import { appendBackendFinish, appendBackendStart, appendIterationFinish, appendIterationStart, buildBackendCommand, runProcess, } from "./parallel.js";
8
- import { buildIterationContext } from "./prompt.js";
9
- import { completeLoop, stopBackendFailed, stopBackendTimeout } from "./stop.js";
10
- import { continueAfterParallelJoin, executeParallelWave, stopAfterParallelWave, } from "./wave.js";
11
- export function runIteration(loop, iteration, iterate) {
12
- const iter = buildIterationContext(loop, iteration);
13
- printIterationBanner(loop, iter);
14
- appendIterationStart(loop, iter);
15
- log(loop, "debug", `iteration ${iteration} start`);
16
- appendBackendStart(loop, iter);
17
- log(loop, "debug", `backend start command=${loop.backend.command}`);
18
- const startEpoch = Math.floor(Date.now() / 1000);
19
- // Switch Kiro session agent mode per-role if agents.toml provides a mapping
20
- if (iter.roleAgent && loop.backend.kind === "kiro" && loop.kiroSession) {
21
- log(loop, "debug", `switching kiro agent to "${iter.roleAgent}" for role "${iter.allowedRoles[0]}"`);
22
- setKiroSessionMode(loop.kiroSession, iter.roleAgent);
23
- }
24
- const { output, exitCode, timedOut } = loop.backend.kind === "kiro" && loop.kiroSession
25
- ? runKiroIterationSync(loop.kiroSession, iter.prompt, loop.backend.timeoutMs)
26
- : runProcess(buildBackendCommand(loop, iter), loop.backend.timeoutMs, loop.backend.kind);
27
- const elapsedS = Math.floor(Date.now() / 1000) - startEpoch;
28
- appendBackendFinish(loop, iter, output, exitCode, timedOut);
29
- appendIterationFinish(loop, iter, output, exitCode, timedOut, elapsedS);
30
- registryProgress(loop, iteration);
31
- log(loop, "debug", `iteration ${iteration} finish exit_code=${exitCode}`);
32
- printIterationFooter(iter, elapsedS);
33
- printBackendOutputTail(output);
34
- if (timedOut)
35
- return stopBackendTimeout(loop, iteration, output);
36
- if (exitCode !== 0)
37
- return stopBackendFailed(loop, iteration, output);
38
- return finishIteration(loop, iter, output, iterate);
39
- }
40
- export function finishIteration(loop, iter, output, iterate) {
41
- const runLines = readRunLines(loop.paths.journalFile, loop.runtime.runId);
42
- const allTopics = runLines.map(extractTopic).filter((t) => t !== "");
43
- const turnLines = runLines.filter((l) => extractIteration(l) === String(iter.iteration));
44
- const emitted = latestAgentEventRecord(turnLines);
45
- const hadInvalidEvents = turnLines.some((l) => extractTopic(l) === "event.invalid");
46
- const progress = (emittedTopic, outcome) => printProgressLine({
47
- runId: loop.runtime.runId,
48
- iteration: iter.iteration,
49
- recentEvent: iter.recentEvent,
50
- allowedRoles: iter.allowedRoles,
51
- emittedTopic,
52
- outcome,
53
- });
54
- if (invalidEvent(emitted.topic, iter.allowedEvents, loop.parallel.enabled, loop.completion.event)) {
55
- return rejectInvalidAndContinue(loop, iter, emitted.topic, iterate, progress);
56
- }
57
- if (parallelTriggerTopic(emitted.topic)) {
58
- return finishParallelIteration(loop, iter, emitted.topic, emitted.payload, iterate, progress);
59
- }
60
- const resolved = resolveOutcome({
61
- emittedTopic: emitted.topic,
62
- allTopics,
63
- hadInvalidEvents,
64
- output,
65
- completionEvent: loop.completion.event,
66
- requiredEvents: loop.completion.requiredEvents,
67
- completionPromise: loop.completion.promise,
68
- });
69
- progress(emitted.topic, resolved.outcome);
70
- if (resolved.action === "complete_event")
71
- return completeLoop(loop, iter.iteration, "completion_event");
72
- if (resolved.action === "complete_promise")
73
- return completeLoop(loop, iter.iteration, "completion_promise");
74
- return iterate(loop, iter.iteration + 1);
75
- }
76
- function rejectInvalidAndContinue(loop, iter, emittedTopic, iterate, progress) {
77
- appendInvalidEvent(loop.paths.journalFile, loop.runtime.runId, String(iter.iteration), iter.recentEvent, emittedTopic, iter.allowedRoles, iter.allowedEvents);
78
- console.log(`[reject] invalid event \`${emittedTopic}\`; recent event: \`${iter.recentEvent}\`; allowed next events: ${listText(iter.allowedEvents)}`);
79
- progress(emittedTopic, "rejected:event.invalid");
80
- return iterate(loop, iter.iteration + 1);
81
- }
82
- function finishParallelIteration(loop, iter, emittedTopic, emittedPayload, iterate, progress) {
83
- const result = executeParallelWave(loop, iter, emittedTopic, emittedPayload);
84
- if (result.reason === "parallel_wave_complete") {
85
- progress(emittedTopic, "parallel:joined");
86
- return continueAfterParallelJoin(loop, iter, result.waveId, emittedTopic, result.elapsedMs, iterate);
87
- }
88
- progress(emittedTopic, `parallel:stop:${result.reason}`);
89
- return stopAfterParallelWave(loop, iter, result.reason, result.waveId);
90
- }
91
- export function resolveOutcome(ctx) {
92
- if (completedViaEvent(ctx.allTopics, ctx.completionEvent, ctx.requiredEvents)) {
93
- return { action: "complete_event", outcome: "complete:completion_event" };
94
- }
95
- if (shouldContinueFromAcceptedEvent(ctx.emittedTopic, ctx.completionEvent)) {
96
- return { action: "continue_routed", outcome: "continue:routed_event" };
97
- }
98
- if (!ctx.hadInvalidEvents &&
99
- completedViaPromise(ctx.output, ctx.completionPromise)) {
100
- return {
101
- action: "complete_promise",
102
- outcome: "complete:completion_promise",
103
- };
104
- }
105
- return { action: "continue", outcome: "continue" };
106
- }
107
- function latestAgentEventRecord(lines) {
108
- for (let i = lines.length - 1; i >= 0; i--) {
109
- const topic = extractTopic(lines[i]);
110
- if (!systemTopic(topic)) {
111
- return { topic, payload: extractField(lines[i], "payload") };
112
- }
113
- }
114
- return { topic: "", payload: "" };
115
- }
116
- function completedViaEvent(topics, completionEvent, requiredEvents) {
117
- if (!topics.includes(completionEvent))
118
- return false;
119
- return requiredEvents.every((e) => topics.includes(e));
120
- }
121
- function completedViaPromise(output, promise) {
122
- if (!promise)
123
- return false;
124
- return output.includes(promise);
125
- }
126
- function shouldContinueFromAcceptedEvent(emittedTopic, completionEvent) {
127
- if (!emittedTopic)
128
- return false;
129
- return emittedTopic !== completionEvent;
130
- }
131
- //# sourceMappingURL=iteration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iteration.js","sourceRoot":"","sources":["../../src/harness/iteration.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Journal timeline formatting utilities.
3
- * Converts raw journal events into a filterable, color-coded terminal timeline.
4
- */
5
- import type { JournalEvent } from "../events/types.js";
6
- /** Map a topic string to its category name. */
7
- export declare function topicCategory(topic: string): string;
8
- /**
9
- * Check if a topic matches a filter pattern.
10
- * Supports exact match, category prefix, and glob with `*`.
11
- */
12
- export declare function topicMatchesFilter(topic: string, pattern: string): boolean;
13
- /** Format a single event into a one-line string with color. */
14
- export declare function eventOneLiner(line: string, event: JournalEvent, maxWidth?: number): string;
15
- interface TimelineOptions {
16
- topics?: string[];
17
- iterFilter?: string;
18
- maxWidth?: number;
19
- }
20
- /**
21
- * Format an array of raw journal lines into a grouped, colored timeline string.
22
- * Groups events by iteration, with separator lines.
23
- */
24
- export declare function formatTimeline(lines: string[], opts?: TimelineOptions): string;
25
- export {};