@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,129 +0,0 @@
1
- import { existsSync, readdirSync, readFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import TOML from "@iarna/toml";
4
- import * as config from "../config.js";
5
- import { parseStringList } from "../utils.js";
6
- import { defaultBudget, parseBudgetFromToml } from "./budget.js";
7
- export function load(projectDir) {
8
- const path = join(projectDir, "chains.toml");
9
- if (!existsSync(path))
10
- return { chains: [], budget: defaultBudget() };
11
- return loadExisting(path, projectDir);
12
- }
13
- export function resolveChain(chains, name) {
14
- return chains.chains.find((c) => c.name === name) ?? null;
15
- }
16
- export function listChains(chains) {
17
- return chains.chains;
18
- }
19
- export function parseInlineChain(csvSteps, projectDir) {
20
- const stepNames = parseStringList(csvSteps);
21
- return {
22
- name: "inline",
23
- steps: resolveSteps(stepNames, projectDir),
24
- };
25
- }
26
- export function loadBudget(projectDir) {
27
- const path = join(projectDir, "chains.toml");
28
- if (!existsSync(path))
29
- return defaultBudget();
30
- const parsed = TOML.parse(readFileSync(path, "utf-8"));
31
- return parseBudgetFromToml(parsed.budget);
32
- }
33
- export function resolvePresetDir(name, projectDir) {
34
- const candidate = join(projectDir, `presets/${name}`);
35
- if (existsSync(candidate))
36
- return candidate;
37
- const cwdCandidate = join(".", `presets/${name}`);
38
- if (existsSync(cwdCandidate))
39
- return cwdCandidate;
40
- const userCandidate = join(config.userPresetsDir(), name);
41
- if (existsSync(userCandidate))
42
- return userCandidate;
43
- return name;
44
- }
45
- export function listKnownPresets() {
46
- const builtIn = [
47
- "autocode",
48
- "autosimplify",
49
- "autoideas",
50
- "autoresearch",
51
- "autoqa",
52
- "autotest",
53
- "autofix",
54
- "autoreview",
55
- "autodoc",
56
- "autosec",
57
- "autoperf",
58
- "autospec",
59
- "automerge",
60
- "autopr",
61
- ];
62
- const userDir = config.userPresetsDir();
63
- if (!existsSync(userDir))
64
- return builtIn;
65
- try {
66
- const entries = readdirSync(userDir, { withFileTypes: true });
67
- const userNames = entries
68
- .filter((e) => e.isDirectory() && config.projectHasConfig(join(userDir, e.name)))
69
- .map((e) => e.name)
70
- .filter((n) => !builtIn.includes(n));
71
- return [...builtIn, ...userNames];
72
- }
73
- catch {
74
- return builtIn;
75
- }
76
- }
77
- export function getPresetDescription(name, projectDir) {
78
- const dir = resolvePresetDir(name, projectDir);
79
- const readme = join(dir, "README.md");
80
- if (!existsSync(readme))
81
- return "";
82
- const lines = readFileSync(readme, "utf-8").split("\n");
83
- for (const line of lines) {
84
- const trimmed = line.trim();
85
- if (trimmed === "" || trimmed.startsWith("#"))
86
- continue;
87
- return trimmed;
88
- }
89
- return "";
90
- }
91
- export function listPresetsWithDescriptions(projectDir) {
92
- return listKnownPresets().map((name) => ({
93
- name,
94
- description: getPresetDescription(name, projectDir),
95
- }));
96
- }
97
- export function validatePresetVocabulary(steps, projectDir) {
98
- const known = listKnownPresets();
99
- for (const name of steps) {
100
- if (!known.includes(name) &&
101
- !config.projectHasConfig(resolvePresetDir(name, projectDir))) {
102
- return { ok: false, reason: `unknown preset: ${name}` };
103
- }
104
- }
105
- return { ok: true };
106
- }
107
- function loadExisting(path, projectDir) {
108
- const text = readFileSync(path, "utf-8");
109
- const parsed = TOML.parse(text);
110
- return parseChainsFromToml(parsed, projectDir);
111
- }
112
- function parseChainsFromToml(parsed, projectDir) {
113
- const rawChains = (parsed.chain ?? []);
114
- const chains = rawChains
115
- .filter((c) => typeof c.name === "string" && c.name !== "")
116
- .map((c) => ({
117
- name: c.name,
118
- steps: resolveSteps(c.steps ?? [], projectDir),
119
- }));
120
- const budget = parseBudgetFromToml(parsed.budget);
121
- return { chains, budget };
122
- }
123
- function resolveSteps(stepNames, projectDir) {
124
- return stepNames.map((name) => ({
125
- name,
126
- presetDir: resolvePresetDir(name, projectDir),
127
- }));
128
- }
129
- //# sourceMappingURL=load.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/chains/load.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function renderChainState(projectDir: string): string;
2
- export declare function renderChainLines(lines: string[]): string;
@@ -1,74 +0,0 @@
1
- import * as config from "../config.js";
2
- import { extractField, extractTopic, readLines } from "../harness/journal.js";
3
- export function renderChainState(projectDir) {
4
- const journalFile = config.resolveJournalFile(projectDir);
5
- const lines = readLines(journalFile);
6
- return renderChainLines(lines);
7
- }
8
- export function renderChainLines(lines) {
9
- const entries = [];
10
- for (const line of lines) {
11
- const topic = extractTopic(line);
12
- if (isChainTopic(topic)) {
13
- entries.push({ topic, line });
14
- }
15
- }
16
- if (entries.length === 0)
17
- return "(no chain runs found)";
18
- let result = "# Chain State\n\n";
19
- for (const entry of entries) {
20
- result += renderChainEntry(entry.topic, entry.line);
21
- }
22
- return result;
23
- }
24
- function isChainTopic(topic) {
25
- return [
26
- "chain.start",
27
- "chain.step.start",
28
- "chain.step.finish",
29
- "chain.complete",
30
- "chain.spawn",
31
- ].includes(topic);
32
- }
33
- function renderChainEntry(topic, line) {
34
- switch (topic) {
35
- case "chain.start":
36
- return ("## Chain: " +
37
- extractField(line, "name") +
38
- "\n" +
39
- "Steps: " +
40
- extractField(line, "steps") +
41
- "\n\n");
42
- case "chain.step.start":
43
- return ("- Step " +
44
- extractField(line, "step") +
45
- " (" +
46
- extractField(line, "preset") +
47
- ") started\n");
48
- case "chain.step.finish":
49
- return ("- Step " +
50
- extractField(line, "step") +
51
- " (" +
52
- extractField(line, "preset") +
53
- ") finished: " +
54
- extractField(line, "stop_reason") +
55
- "\n");
56
- case "chain.complete":
57
- return ("\nOutcome: " +
58
- extractField(line, "outcome") +
59
- " (" +
60
- extractField(line, "steps_completed") +
61
- " steps completed)\n\n");
62
- case "chain.spawn":
63
- return ("- Spawned: " +
64
- extractField(line, "chain_id") +
65
- " (parent: " +
66
- extractField(line, "parent_id") +
67
- ", steps: " +
68
- extractField(line, "steps") +
69
- ")\n");
70
- default:
71
- return "";
72
- }
73
- }
74
- //# sourceMappingURL=render.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/chains/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE9E,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAe;IAC9C,MAAM,OAAO,GAA2C,EAAE,CAAC;IAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IACzD,IAAI,MAAM,GAAG,mBAAmB,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO;QACL,aAAa;QACb,kBAAkB;QAClB,mBAAmB;QACnB,gBAAgB;QAChB,aAAa;KACd,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACnD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,aAAa;YAChB,OAAO,CACL,YAAY;gBACZ,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC1B,IAAI;gBACJ,SAAS;gBACT,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC3B,MAAM,CACP,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,CACL,SAAS;gBACT,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC1B,IAAI;gBACJ,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC5B,aAAa,CACd,CAAC;QACJ,KAAK,mBAAmB;YACtB,OAAO,CACL,SAAS;gBACT,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC1B,IAAI;gBACJ,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAC5B,cAAc;gBACd,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC;gBACjC,IAAI,CACL,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,CACL,aAAa;gBACb,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC;gBAC7B,IAAI;gBACJ,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC;gBACrC,uBAAuB,CACxB,CAAC;QACJ,KAAK,aAAa;YAChB,OAAO,CACL,aAAa;gBACb,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;gBAC9B,YAAY;gBACZ,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;gBAC/B,WAAW;gBACX,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC3B,KAAK,CACN,CAAC;QACJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,17 +0,0 @@
1
- import * as harness from "../harness/index.js";
2
- import type { ChainSpec, DynamicChainSpec, StepRecord } from "./types.js";
3
- export declare function runChain(chainSpec: ChainSpec, projectDir: string, selfCommand: string, runOptions: harness.RunOptions): {
4
- completed: StepRecord[];
5
- outcome: string;
6
- failedStep?: number;
7
- failedReason?: string;
8
- };
9
- export declare function spawnDynamicChain(spec: DynamicChainSpec, projectDir: string, selfCommand: string, runOptions: harness.RunOptions, parentId: string): {
10
- outcome: string;
11
- reason?: string;
12
- chainId?: string;
13
- completed?: StepRecord[];
14
- failedStep?: number;
15
- failedReason?: string;
16
- };
17
- export declare function writeDynamicSpec(projectDir: string, spec: DynamicChainSpec): string;
@@ -1,260 +0,0 @@
1
- import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
2
- import { join } from "node:path";
3
- import * as config from "../config.js";
4
- import * as harness from "../harness/index.js";
5
- import { appendText, extractField, extractTopic, readLines, } from "../harness/journal.js";
6
- import { presetCategory } from "../isolation/resolve.js";
7
- import { jsonField } from "../json.js";
8
- import { generateCompactId, generateReadableId, joinCsv, uniqueGeneratedId, } from "../utils.js";
9
- import { checkBudget, defaultBudget } from "./budget.js";
10
- import { parseInlineChain } from "./load.js";
11
- export function runChain(chainSpec, projectDir, selfCommand, runOptions) {
12
- const chainName = chainSpec.name;
13
- const steps = chainSpec.steps;
14
- const cfg = config.loadProject(projectDir);
15
- const chainRunId = nextChainRunId(projectDir, cfg);
16
- const chainDir = join(chainStateRoot(projectDir), chainRunId);
17
- const journalFile = config.resolveJournalFile(projectDir);
18
- mkdirSync(chainDir, { recursive: true });
19
- appendChainEvent(journalFile, chainRunId, "chain.start", jsonField("name", chainName) +
20
- ", " +
21
- jsonField("steps", joinCsv(steps.map((s) => s.name))) +
22
- ", " +
23
- jsonField("step_count", String(steps.length)));
24
- const result = runSteps(steps, 1, projectDir, chainDir, chainRunId, selfCommand, runOptions, journalFile, []);
25
- appendChainEvent(journalFile, chainRunId, "chain.complete", jsonField("name", chainName) +
26
- ", " +
27
- jsonField("steps_completed", String(result.completed.length)) +
28
- ", " +
29
- jsonField("outcome", result.outcome));
30
- return result;
31
- }
32
- export function spawnDynamicChain(spec, projectDir, selfCommand, runOptions, parentId) {
33
- const budget = spec.budget ?? defaultBudget();
34
- const tracker = loadChainTracker(projectDir);
35
- const budgetResult = checkBudget(budget, tracker);
36
- if (!budgetResult.ok) {
37
- return {
38
- outcome: "budget_exceeded",
39
- reason: budgetResult.reason ?? "unknown rejection",
40
- };
41
- }
42
- const qualityResult = checkQualityGate(projectDir);
43
- if (!qualityResult.ok) {
44
- return {
45
- outcome: "quality_gate_rejected",
46
- reason: qualityResult.reason ?? "unknown rejection",
47
- };
48
- }
49
- return executeDynamicChain(spec, projectDir, selfCommand, runOptions, parentId);
50
- }
51
- export function writeDynamicSpec(projectDir, spec) {
52
- const specsDir = join(chainStateRoot(projectDir), "specs");
53
- mkdirSync(specsDir, { recursive: true });
54
- const chainId = spec.chainId ?? `dyn-${countDynamicSpecs(specsDir) + 1}`;
55
- const path = join(specsDir, `${chainId}.json`);
56
- writeFileSync(path, renderDynamicSpecJson(spec, chainId));
57
- return chainId;
58
- }
59
- function chainStateRoot(projectDir) {
60
- return join(config.stateDirPath(projectDir), "chains");
61
- }
62
- function runSteps(steps, stepNum, projectDir, chainDir, chainRunId, selfCommand, runOptions, journalFile, completed) {
63
- if (steps.length === 0) {
64
- return { completed, outcome: "all_steps_complete" };
65
- }
66
- const [step, ...rest] = steps;
67
- const stepName = step.name;
68
- const presetDir = step.presetDir;
69
- const stepWorkDir = join(chainDir, `step-${stepNum}`);
70
- mkdirSync(stepWorkDir, { recursive: true });
71
- writeHandoffArtifact(stepWorkDir, stepNum, completed, runOptions.prompt ?? null);
72
- appendChainEvent(journalFile, chainRunId, "chain.step.start", jsonField("step", String(stepNum)) +
73
- ", " +
74
- jsonField("preset", stepName) +
75
- ", " +
76
- jsonField("preset_dir", presetDir) +
77
- ", " +
78
- jsonField("work_dir", stepWorkDir));
79
- const category = presetCategory(stepName, projectDir);
80
- const suppressWorktree = category === "planning" && runOptions.worktree;
81
- const stepOptions = {
82
- ...runOptions,
83
- workDir: stepWorkDir,
84
- trigger: "chain",
85
- ...(suppressWorktree ? { worktree: undefined, noWorktree: true } : {}),
86
- };
87
- const prompt = stepNum === 1 ? (runOptions.prompt ?? null) : null;
88
- const result = harness.run(presetDir, prompt, selfCommand, stepOptions);
89
- const stopReason = result.stopReason;
90
- writeResultArtifact(stepWorkDir, stepNum, stepName, result);
91
- appendChainEvent(journalFile, chainRunId, "chain.step.finish", jsonField("step", String(stepNum)) +
92
- ", " +
93
- jsonField("preset", stepName) +
94
- ", " +
95
- jsonField("stop_reason", stopReason));
96
- const record = {
97
- step: stepNum,
98
- name: stepName,
99
- stopReason,
100
- runId: result.runId,
101
- };
102
- const updatedCompleted = [...completed, record];
103
- if (chainStepSuccess(stopReason)) {
104
- return runSteps(rest, stepNum + 1, projectDir, chainDir, chainRunId, selfCommand, runOptions, journalFile, updatedCompleted);
105
- }
106
- return {
107
- completed: updatedCompleted,
108
- outcome: "step_failed",
109
- failedStep: stepNum,
110
- failedReason: stopReason,
111
- };
112
- }
113
- function chainStepSuccess(stopReason) {
114
- return (stopReason === "max_iterations" ||
115
- stopReason === "completion_event" ||
116
- stopReason === "completion_promise");
117
- }
118
- function writeHandoffArtifact(stepWorkDir, stepNum, completed, prompt) {
119
- let content = `# Chain Handoff — Step ${stepNum}\n\n`;
120
- if (prompt)
121
- content += `## Entry Objective\n\n${prompt}\n\n`;
122
- if (completed.length === 0) {
123
- content += "First step in chain. No prior results.\n";
124
- }
125
- else {
126
- content += "## Prior Steps\n";
127
- for (const rec of completed) {
128
- const runTag = rec.runId ? ` [run_id=${rec.runId}]` : "";
129
- content +=
130
- "- Step " +
131
- rec.step +
132
- " (" +
133
- rec.name +
134
- "): " +
135
- rec.stopReason +
136
- runTag +
137
- "\n";
138
- }
139
- // Expose the most recent run ID as parent_run_id for downstream steps (e.g. automerge)
140
- const lastWithRunId = [...completed].reverse().find((r) => r.runId);
141
- if (lastWithRunId) {
142
- content += "\n## Parent Run\n";
143
- content += `parent_run_id: ${lastWithRunId.runId}\n`;
144
- }
145
- }
146
- writeFileSync(join(stepWorkDir, "handoff.md"), content);
147
- }
148
- function writeResultArtifact(stepWorkDir, stepNum, stepName, result) {
149
- const content = "# Chain Result — Step " +
150
- stepNum +
151
- " (" +
152
- stepName +
153
- ")\n\n" +
154
- "Stop reason: " +
155
- result.stopReason +
156
- "\n" +
157
- "Iterations: " +
158
- result.iterations +
159
- "\n" +
160
- (result.runId ? `Run ID: ${result.runId}\n` : "");
161
- writeFileSync(join(stepWorkDir, "result.md"), content);
162
- }
163
- function nextChainRunId(projectDir, cfg) {
164
- const journalFile = config.resolveJournalFile(projectDir);
165
- const lines = readLines(journalFile);
166
- const format = config.get(cfg, "core.run_id_format", "human");
167
- if (format === "counter") {
168
- const count = lines.filter((l) => extractTopic(l) === "chain.start").length;
169
- return `chain-${count + 1}`;
170
- }
171
- const existing = new Set(lines.map((line) => extractField(line, "chain_run")).filter(Boolean));
172
- if (format === "compact") {
173
- return (uniqueGeneratedId(() => generateCompactId("chain"), existing) ??
174
- generateCompactId("chain"));
175
- }
176
- return (uniqueGeneratedId(generateReadableId, existing) ??
177
- generateCompactId("chain"));
178
- }
179
- function appendChainEvent(journalFile, chainRunId, topic, fieldsJson) {
180
- const line = "{" +
181
- jsonField("chain_run", chainRunId) +
182
- ", " +
183
- jsonField("topic", topic) +
184
- ', "fields": {' +
185
- fieldsJson +
186
- "}}\n";
187
- appendText(journalFile, line);
188
- }
189
- function loadChainTracker(projectDir) {
190
- const journalFile = config.resolveJournalFile(projectDir);
191
- const lines = readLines(journalFile);
192
- const tracker = {
193
- depth: 0,
194
- totalSteps: 0,
195
- children: 0,
196
- consecutiveFailures: 0,
197
- };
198
- for (const line of lines) {
199
- const topic = extractTopic(line);
200
- if (topic === "chain.start") {
201
- tracker.children++;
202
- tracker.consecutiveFailures = 0;
203
- }
204
- else if (topic === "chain.step.finish") {
205
- tracker.totalSteps++;
206
- }
207
- else if (topic === "chain.complete") {
208
- const outcome = extractField(line, "outcome");
209
- if (outcome === "all_steps_complete")
210
- tracker.consecutiveFailures = 0;
211
- else
212
- tracker.consecutiveFailures++;
213
- }
214
- }
215
- return tracker;
216
- }
217
- function checkQualityGate(projectDir) {
218
- const tracker = loadChainTracker(projectDir);
219
- if (tracker.consecutiveFailures >= 2) {
220
- return {
221
- ok: false,
222
- reason: `quality gate: ${tracker.consecutiveFailures} consecutive failures — consolidate before spawning`,
223
- };
224
- }
225
- return { ok: true };
226
- }
227
- function executeDynamicChain(spec, projectDir, selfCommand, runOptions, parentId) {
228
- const chainId = writeDynamicSpec(projectDir, { ...spec, parentId });
229
- const stepsCsv = spec.steps;
230
- const journalFile = config.resolveJournalFile(projectDir);
231
- const justification = spec.justification ?? "";
232
- appendChainEvent(journalFile, chainId, "chain.spawn", jsonField("chain_id", chainId) +
233
- ", " +
234
- jsonField("parent_id", parentId) +
235
- ", " +
236
- jsonField("steps", joinCsv(stepsCsv)) +
237
- ", " +
238
- jsonField("justification", justification));
239
- const chainSpec = parseInlineChain(joinCsv(stepsCsv), projectDir);
240
- const namedSpec = { ...chainSpec, name: chainId };
241
- const result = runChain(namedSpec, projectDir, selfCommand, runOptions);
242
- return { ...result, chainId };
243
- }
244
- function countDynamicSpecs(specsDir) {
245
- if (!existsSync(specsDir))
246
- return 0;
247
- return readdirSync(specsDir).filter((f) => f.endsWith(".json")).length;
248
- }
249
- function renderDynamicSpecJson(spec, chainId) {
250
- return ("{" +
251
- jsonField("chain_id", chainId) +
252
- ", " +
253
- jsonField("parent_id", spec.parentId ?? "") +
254
- ", " +
255
- jsonField("steps", joinCsv(spec.steps)) +
256
- ", " +
257
- jsonField("justification", spec.justification ?? "") +
258
- "}\n");
259
- }
260
- //# sourceMappingURL=run.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/chains/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAQ7C,MAAM,UAAU,QAAQ,CACtB,SAAoB,EACpB,UAAkB,EAClB,WAAmB,EACnB,UAA8B;IAO9B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAE1D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,gBAAgB,CACd,WAAW,EACX,UAAU,EACV,aAAa,EACb,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;QAC1B,IAAI;QACJ,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,IAAI;QACJ,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAChD,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CACrB,KAAK,EACL,CAAC,EACD,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,EAAE,CACH,CAAC;IAEF,gBAAgB,CACd,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;QAC1B,IAAI;QACJ,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI;QACJ,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CACvC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAsB,EACtB,UAAkB,EAClB,WAAmB,EACnB,UAA8B,EAC9B,QAAgB;IAShB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;IAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,mBAAmB;SACnD,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,uBAAuB;YAChC,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,mBAAmB;SACpD,CAAC;IACJ,CAAC;IAED,OAAO,mBAAmB,CACxB,IAAI,EACJ,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,UAAkB,EAClB,IAAsB;IAEtB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;IAC/C,aAAa,CAAC,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CACf,KAAyB,EACzB,OAAe,EACf,UAAkB,EAClB,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,UAA8B,EAC9B,WAAmB,EACnB,SAAuB;IAOvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,OAAO,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,oBAAoB,CAClB,WAAW,EACX,OAAO,EACP,SAAS,EACT,UAAU,CAAC,MAAM,IAAI,IAAI,CAC1B,CAAC;IACF,gBAAgB,CACd,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI;QACJ,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC7B,IAAI;QACJ,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC;QAClC,IAAI;QACJ,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CACrC,CAAC;IAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,QAAQ,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC;IACxE,MAAM,WAAW,GAAuB;QACtC,GAAG,UAAU;QACb,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,OAAO;QAChB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAErC,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,gBAAgB,CACd,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI;QACJ,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC7B,IAAI;QACJ,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CACvC,CAAC;IAEF,MAAM,MAAM,GAAe;QACzB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IAEhD,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CACb,IAAI,EACJ,OAAO,GAAG,CAAC,EACX,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,CACjB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,UAAU;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,OAAO,CACL,UAAU,KAAK,gBAAgB;QAC/B,UAAU,KAAK,kBAAkB;QACjC,UAAU,KAAK,oBAAoB,CACpC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,WAAmB,EACnB,OAAe,EACf,SAAuB,EACvB,MAAqB;IAErB,IAAI,OAAO,GAAG,0BAA0B,OAAO,MAAM,CAAC;IACtD,IAAI,MAAM;QAAE,OAAO,IAAI,yBAAyB,MAAM,MAAM,CAAC;IAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,0CAA0C,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,kBAAkB,CAAC;QAC9B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO;gBACL,SAAS;oBACT,GAAG,CAAC,IAAI;oBACR,IAAI;oBACJ,GAAG,CAAC,IAAI;oBACR,KAAK;oBACL,GAAG,CAAC,UAAU;oBACd,MAAM;oBACN,IAAI,CAAC;QACT,CAAC;QACD,uFAAuF;QACvF,MAAM,aAAa,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,mBAAmB,CAAC;YAC/B,OAAO,IAAI,kBAAkB,aAAa,CAAC,KAAK,IAAI,CAAC;QACvD,CAAC;IACH,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAAmB,EACnB,OAAe,EACf,QAAgB,EAChB,MAA0B;IAE1B,MAAM,OAAO,GACX,wBAAwB;QACxB,OAAO;QACP,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,eAAe;QACf,MAAM,CAAC,UAAU;QACjB,IAAI;QACJ,cAAc;QACd,MAAM,CAAC,UAAU;QACjB,IAAI;QACJ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB,EAAE,GAAkB;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC9D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;QAC5E,OAAO,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACrE,CAAC;IACF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CACL,iBAAiB,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;YAC7D,iBAAiB,CAAC,OAAO,CAAC,CAC3B,CAAC;IACJ,CAAC;IACD,OAAO,CACL,iBAAiB,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QAC/C,iBAAiB,CAAC,OAAO,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,WAAmB,EACnB,UAAkB,EAClB,KAAa,EACb,UAAkB;IAElB,MAAM,IAAI,GACR,GAAG;QACH,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC;QAClC,IAAI;QACJ,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;QACzB,eAAe;QACf,UAAU;QACV,MAAM,CAAC;IACT,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,OAAO,GAAiB;QAC5B,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,mBAAmB,EAAE,CAAC;KACvB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;YAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;YACzC,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,OAAO,KAAK,oBAAoB;gBAAE,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;;gBACjE,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAI1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,OAAO,CAAC,mBAAmB,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,iBAAiB,OAAO,CAAC,mBAAmB,qDAAqD;SAC1G,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAsB,EACtB,UAAkB,EAClB,WAAmB,EACnB,UAA8B,EAC9B,QAAgB;IAQhB,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;IAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IAE/C,gBAAgB,CACd,WAAW,EACX,OAAO,EACP,aAAa,EACb,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;QAC5B,IAAI;QACJ,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;QAChC,IAAI;QACJ,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI;QACJ,SAAS,CAAC,eAAe,EAAE,aAAa,CAAC,CAC5C,CAAC;IAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;IAClE,MAAM,SAAS,GAAc,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACxE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,CAAC;IACpC,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACzE,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAsB,EACtB,OAAe;IAEf,OAAO,CACL,GAAG;QACH,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;QAC9B,IAAI;QACJ,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC3C,IAAI;QACJ,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI;QACJ,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACpD,KAAK,CACN,CAAC;AACJ,CAAC"}
@@ -1,38 +0,0 @@
1
- export interface ChainStep {
2
- name: string;
3
- presetDir: string;
4
- }
5
- export interface ChainSpec {
6
- name: string;
7
- steps: ChainStep[];
8
- }
9
- export interface Budget {
10
- maxDepth: number;
11
- maxSteps: number;
12
- maxRuntimeMs: number;
13
- maxChildren: number;
14
- maxConsecutiveFailures: number;
15
- }
16
- export interface ChainsConfig {
17
- chains: ChainSpec[];
18
- budget: Budget;
19
- }
20
- export interface DynamicChainSpec {
21
- steps: string[];
22
- justification?: string;
23
- budget?: Budget;
24
- chainId?: string;
25
- parentId?: string;
26
- }
27
- export interface StepRecord {
28
- step: number;
29
- name: string;
30
- stopReason: string;
31
- runId?: string;
32
- }
33
- export interface ChainTracker {
34
- depth: number;
35
- totalSteps: number;
36
- children: number;
37
- consecutiveFailures: number;
38
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/chains/types.ts"],"names":[],"mappings":""}
package/dist/chains.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export { checkBudget, defaultBudget, parseBudgetFromToml, } from "./chains/budget.js";
2
- export type { PresetInfo } from "./chains/load.js";
3
- export { getPresetDescription, listChains, listKnownPresets, listPresetsWithDescriptions, load, loadBudget, parseInlineChain, resolveChain, resolvePresetDir, validatePresetVocabulary, } from "./chains/load.js";
4
- export { renderChainLines, renderChainState } from "./chains/render.js";
5
- export { runChain, spawnDynamicChain, writeDynamicSpec } from "./chains/run.js";
6
- export type { Budget, ChainSpec, ChainStep, ChainsConfig, ChainTracker, DynamicChainSpec, StepRecord, } from "./chains/types.js";
package/dist/chains.js DELETED
@@ -1,5 +0,0 @@
1
- export { checkBudget, defaultBudget, parseBudgetFromToml, } from "./chains/budget.js";
2
- export { getPresetDescription, listChains, listKnownPresets, listPresetsWithDescriptions, load, loadBudget, parseInlineChain, resolveChain, resolvePresetDir, validatePresetVocabulary, } from "./chains/load.js";
3
- export { renderChainLines, renderChainState } from "./chains/render.js";
4
- export { runChain, spawnDynamicChain, writeDynamicSpec } from "./chains/run.js";
5
- //# sourceMappingURL=chains.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,IAAI,EACJ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * ANSI color utility respecting NO_COLOR / FORCE_COLOR env vars and TTY detection.
3
- * No external dependencies.
4
- */
5
- export declare function color(text: string, ...styles: string[]): string;
6
- export declare function strip(text: string): string;
package/dist/cli/color.js DELETED
@@ -1,40 +0,0 @@
1
- /**
2
- * ANSI color utility respecting NO_COLOR / FORCE_COLOR env vars and TTY detection.
3
- * No external dependencies.
4
- */
5
- const RESET = "\x1b[0m";
6
- const STYLES = {
7
- bold: "\x1b[1m",
8
- dim: "\x1b[2m",
9
- red: "\x1b[31m",
10
- green: "\x1b[32m",
11
- yellow: "\x1b[33m",
12
- blue: "\x1b[34m",
13
- magenta: "\x1b[35m",
14
- cyan: "\x1b[36m",
15
- gray: "\x1b[90m",
16
- brightRed: "\x1b[91m",
17
- dimBlue: "\x1b[2;34m",
18
- };
19
- function colorsEnabled() {
20
- if (process.env.NO_COLOR !== undefined)
21
- return false;
22
- if (process.env.FORCE_COLOR !== undefined)
23
- return true;
24
- return process.stdout.isTTY === true;
25
- }
26
- export function color(text, ...styles) {
27
- if (!colorsEnabled())
28
- return text;
29
- const codes = styles
30
- .map((s) => STYLES[s])
31
- .filter((c) => c !== undefined);
32
- if (codes.length === 0)
33
- return text;
34
- return codes.join("") + text + RESET;
35
- }
36
- export function strip(text) {
37
- // biome-ignore lint/suspicious/noControlCharactersInRegex: stripping ANSI escapes
38
- return text.replace(/\x1b\[[0-9;]*m/g, "");
39
- }
40
- //# sourceMappingURL=color.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/cli/color.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,KAAK,GAAG,SAAS,CAAC;AAExB,MAAM,MAAM,GAA2B;IACrC,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,GAAG,MAAgB;IACrD,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,kFAAkF;IAClF,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC"}
@@ -1 +0,0 @@
1
- export declare function dispatchChain(args: string[], selfCmd: string): boolean;