@mobrienv/autoloop 0.1.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/README.md +103 -42
  2. package/bin/autoloop +0 -0
  3. package/dist/agent-map.d.ts +10 -0
  4. package/dist/agent-map.js +58 -0
  5. package/dist/agent-map.js.map +1 -0
  6. package/dist/backend/acp-client.d.ts +38 -0
  7. package/dist/backend/acp-client.js +288 -0
  8. package/dist/backend/acp-client.js.map +1 -0
  9. package/dist/backend/index.d.ts +1 -1
  10. package/dist/backend/index.js +17 -5
  11. package/dist/backend/index.js.map +1 -1
  12. package/dist/backend/kiro-bridge.d.ts +17 -0
  13. package/dist/backend/kiro-bridge.js +80 -0
  14. package/dist/backend/kiro-bridge.js.map +1 -0
  15. package/dist/backend/kiro-worker.d.ts +1 -0
  16. package/dist/backend/kiro-worker.js +83 -0
  17. package/dist/backend/kiro-worker.js.map +1 -0
  18. package/dist/backend/run-command.js +2 -2
  19. package/dist/backend/run-command.js.map +1 -1
  20. package/dist/backend/run-kiro.d.ts +3 -0
  21. package/dist/backend/run-kiro.js +12 -0
  22. package/dist/backend/run-kiro.js.map +1 -0
  23. package/dist/backend/run-pi.js.map +1 -1
  24. package/dist/chains/budget.js +16 -4
  25. package/dist/chains/budget.js.map +1 -1
  26. package/dist/chains/load.d.ts +7 -1
  27. package/dist/chains/load.js +58 -9
  28. package/dist/chains/load.js.map +1 -1
  29. package/dist/chains/render.js +36 -8
  30. package/dist/chains/render.js.map +1 -1
  31. package/dist/chains/run.js +129 -44
  32. package/dist/chains/run.js.map +1 -1
  33. package/dist/chains/types.d.ts +1 -0
  34. package/dist/chains.d.ts +5 -4
  35. package/dist/chains.js +3 -3
  36. package/dist/chains.js.map +1 -1
  37. package/dist/commands/chain.js +6 -4
  38. package/dist/commands/chain.js.map +1 -1
  39. package/dist/commands/config.d.ts +1 -0
  40. package/dist/commands/config.js +74 -0
  41. package/dist/commands/config.js.map +1 -0
  42. package/dist/commands/dashboard.d.ts +1 -0
  43. package/dist/commands/dashboard.js +68 -0
  44. package/dist/commands/dashboard.js.map +1 -0
  45. package/dist/commands/inspect.js +125 -17
  46. package/dist/commands/inspect.js.map +1 -1
  47. package/dist/commands/list.d.ts +1 -1
  48. package/dist/commands/list.js +6 -3
  49. package/dist/commands/list.js.map +1 -1
  50. package/dist/commands/loops.js +11 -11
  51. package/dist/commands/loops.js.map +1 -1
  52. package/dist/commands/memory.js +2 -2
  53. package/dist/commands/memory.js.map +1 -1
  54. package/dist/commands/run.d.ts +1 -1
  55. package/dist/commands/run.js +102 -15
  56. package/dist/commands/run.js.map +1 -1
  57. package/dist/commands/runs.d.ts +1 -0
  58. package/dist/commands/runs.js +50 -0
  59. package/dist/commands/runs.js.map +1 -0
  60. package/dist/commands/task.d.ts +1 -0
  61. package/dist/commands/task.js +74 -0
  62. package/dist/commands/task.js.map +1 -0
  63. package/dist/commands/worktree.d.ts +1 -0
  64. package/dist/commands/worktree.js +162 -0
  65. package/dist/commands/worktree.js.map +1 -0
  66. package/dist/config.d.ts +15 -1
  67. package/dist/config.js +90 -21
  68. package/dist/config.js.map +1 -1
  69. package/dist/dashboard/app.d.ts +12 -0
  70. package/dist/dashboard/app.js +23 -0
  71. package/dist/dashboard/app.js.map +1 -0
  72. package/dist/dashboard/routes/api.d.ts +3 -0
  73. package/dist/dashboard/routes/api.js +103 -0
  74. package/dist/dashboard/routes/api.js.map +1 -0
  75. package/dist/dashboard/routes/pages.d.ts +2 -0
  76. package/dist/dashboard/routes/pages.js +14 -0
  77. package/dist/dashboard/routes/pages.js.map +1 -0
  78. package/dist/dashboard/views/alpine-vendor.d.ts +1 -0
  79. package/dist/dashboard/views/alpine-vendor.js +10 -0
  80. package/dist/dashboard/views/alpine-vendor.js.map +1 -0
  81. package/dist/dashboard/views/shell.d.ts +1 -0
  82. package/dist/dashboard/views/shell.js +714 -0
  83. package/dist/dashboard/views/shell.js.map +1 -0
  84. package/dist/events/decode.js.map +1 -1
  85. package/dist/events/encode.js +2 -2
  86. package/dist/events/encode.js.map +1 -1
  87. package/dist/harness/config-helpers.d.ts +11 -0
  88. package/dist/harness/config-helpers.js +242 -64
  89. package/dist/harness/config-helpers.js.map +1 -1
  90. package/dist/harness/coordination.js +12 -12
  91. package/dist/harness/coordination.js.map +1 -1
  92. package/dist/harness/display.d.ts +4 -3
  93. package/dist/harness/display.js +57 -11
  94. package/dist/harness/display.js.map +1 -1
  95. package/dist/harness/emit.js +31 -13
  96. package/dist/harness/emit.js.map +1 -1
  97. package/dist/harness/index.d.ts +7 -7
  98. package/dist/harness/index.js +151 -35
  99. package/dist/harness/index.js.map +1 -1
  100. package/dist/harness/iteration.d.ts +12 -0
  101. package/dist/harness/iteration.js +66 -64
  102. package/dist/harness/iteration.js.map +1 -1
  103. package/dist/harness/journal.d.ts +17 -0
  104. package/dist/harness/journal.js +74 -5
  105. package/dist/harness/journal.js.map +1 -1
  106. package/dist/harness/metareview.js +30 -15
  107. package/dist/harness/metareview.js.map +1 -1
  108. package/dist/harness/metrics.js +12 -12
  109. package/dist/harness/metrics.js.map +1 -1
  110. package/dist/harness/parallel.d.ts +1 -1
  111. package/dist/harness/parallel.js +141 -62
  112. package/dist/harness/parallel.js.map +1 -1
  113. package/dist/harness/prompt.d.ts +18 -9
  114. package/dist/harness/prompt.js +80 -44
  115. package/dist/harness/prompt.js.map +1 -1
  116. package/dist/harness/scratchpad.js +8 -6
  117. package/dist/harness/scratchpad.js.map +1 -1
  118. package/dist/harness/stop.js +16 -9
  119. package/dist/harness/stop.js.map +1 -1
  120. package/dist/harness/tools.js +39 -13
  121. package/dist/harness/tools.js.map +1 -1
  122. package/dist/harness/types.d.ts +29 -0
  123. package/dist/harness/wave/finalize-wave.d.ts +1 -1
  124. package/dist/harness/wave/finalize-wave.js +36 -9
  125. package/dist/harness/wave/finalize-wave.js.map +1 -1
  126. package/dist/harness/wave/launch-branches.d.ts +2 -2
  127. package/dist/harness/wave/launch-branches.js +147 -51
  128. package/dist/harness/wave/launch-branches.js.map +1 -1
  129. package/dist/harness/wave/parse-objectives.js +4 -1
  130. package/dist/harness/wave/parse-objectives.js.map +1 -1
  131. package/dist/harness/wave.d.ts +2 -2
  132. package/dist/harness/wave.js +89 -28
  133. package/dist/harness/wave.js.map +1 -1
  134. package/dist/isolation/index.d.ts +4 -0
  135. package/dist/isolation/index.js +3 -0
  136. package/dist/isolation/index.js.map +1 -0
  137. package/dist/isolation/resolve.d.ts +39 -0
  138. package/dist/isolation/resolve.js +118 -0
  139. package/dist/isolation/resolve.js.map +1 -0
  140. package/dist/isolation/run-scope.d.ts +21 -0
  141. package/dist/isolation/run-scope.js +50 -0
  142. package/dist/isolation/run-scope.js.map +1 -0
  143. package/dist/json.js +10 -8
  144. package/dist/json.js.map +1 -1
  145. package/dist/loops/health.d.ts +4 -2
  146. package/dist/loops/health.js +73 -25
  147. package/dist/loops/health.js.map +1 -1
  148. package/dist/loops/list.d.ts +2 -2
  149. package/dist/loops/list.js +6 -6
  150. package/dist/loops/list.js.map +1 -1
  151. package/dist/loops/policy.d.ts +6 -0
  152. package/dist/loops/policy.js +41 -0
  153. package/dist/loops/policy.js.map +1 -0
  154. package/dist/loops/render.d.ts +2 -1
  155. package/dist/loops/render.js +24 -11
  156. package/dist/loops/render.js.map +1 -1
  157. package/dist/loops/show.d.ts +2 -2
  158. package/dist/loops/show.js +13 -13
  159. package/dist/loops/show.js.map +1 -1
  160. package/dist/loops/watch.d.ts +7 -1
  161. package/dist/loops/watch.js +82 -16
  162. package/dist/loops/watch.js.map +1 -1
  163. package/dist/main.js +58 -16
  164. package/dist/main.js.map +1 -1
  165. package/dist/markdown.js +11 -11
  166. package/dist/markdown.js.map +1 -1
  167. package/dist/memory-render.js +5 -5
  168. package/dist/memory-render.js.map +1 -1
  169. package/dist/memory.d.ts +1 -2
  170. package/dist/memory.js +44 -40
  171. package/dist/memory.js.map +1 -1
  172. package/dist/pi-adapter.js +11 -11
  173. package/dist/pi-adapter.js.map +1 -1
  174. package/dist/profiles.d.ts +12 -0
  175. package/dist/profiles.js +71 -0
  176. package/dist/profiles.js.map +1 -0
  177. package/dist/registry/derive.js +10 -3
  178. package/dist/registry/derive.js.map +1 -1
  179. package/dist/registry/discover.d.ts +20 -0
  180. package/dist/registry/discover.js +98 -0
  181. package/dist/registry/discover.js.map +1 -0
  182. package/dist/registry/harness.js +8 -2
  183. package/dist/registry/harness.js.map +1 -1
  184. package/dist/registry/index.d.ts +4 -3
  185. package/dist/registry/index.js +3 -2
  186. package/dist/registry/index.js.map +1 -1
  187. package/dist/registry/read.js.map +1 -1
  188. package/dist/registry/rebuild.js +7 -4
  189. package/dist/registry/rebuild.js.map +1 -1
  190. package/dist/registry/types.d.ts +9 -0
  191. package/dist/registry/update.js +1 -1
  192. package/dist/registry/update.js.map +1 -1
  193. package/dist/tasks-render.d.ts +2 -0
  194. package/dist/tasks-render.js +44 -0
  195. package/dist/tasks-render.js.map +1 -0
  196. package/dist/tasks.d.ts +24 -0
  197. package/dist/tasks.js +184 -0
  198. package/dist/tasks.js.map +1 -0
  199. package/dist/testing/mock-backend.js +2 -2
  200. package/dist/testing/mock-backend.js.map +1 -1
  201. package/dist/topology.d.ts +6 -0
  202. package/dist/topology.js +129 -8
  203. package/dist/topology.js.map +1 -1
  204. package/dist/usage.d.ts +1 -0
  205. package/dist/usage.js +56 -11
  206. package/dist/usage.js.map +1 -1
  207. package/dist/utils.d.ts +6 -0
  208. package/dist/utils.js +272 -2
  209. package/dist/utils.js.map +1 -1
  210. package/dist/worktree/clean.d.ts +12 -0
  211. package/dist/worktree/clean.js +98 -0
  212. package/dist/worktree/clean.js.map +1 -0
  213. package/dist/worktree/create.d.ts +14 -0
  214. package/dist/worktree/create.js +71 -0
  215. package/dist/worktree/create.js.map +1 -0
  216. package/dist/worktree/index.d.ts +10 -0
  217. package/dist/worktree/index.js +6 -0
  218. package/dist/worktree/index.js.map +1 -0
  219. package/dist/worktree/list.d.ts +9 -0
  220. package/dist/worktree/list.js +24 -0
  221. package/dist/worktree/list.js.map +1 -0
  222. package/dist/worktree/merge.d.ts +11 -0
  223. package/dist/worktree/merge.js +129 -0
  224. package/dist/worktree/merge.js.map +1 -0
  225. package/dist/worktree/meta.d.ts +17 -0
  226. package/dist/worktree/meta.js +34 -0
  227. package/dist/worktree/meta.js.map +1 -0
  228. package/package.json +24 -4
  229. package/presets/autocode/README.md +1 -1
  230. package/presets/autocode/autoloops.toml +9 -1
  231. package/presets/autocode/harness.md +12 -5
  232. package/presets/autocode/roles/build.md +5 -4
  233. package/presets/autocode/roles/critic.md +2 -2
  234. package/presets/autocode/roles/finalizer.md +2 -2
  235. package/presets/autocode/roles/planner.md +7 -7
  236. package/presets/autodoc/README.md +1 -1
  237. package/presets/autodoc/autoloops.toml +1 -1
  238. package/presets/autodoc/harness.md +6 -6
  239. package/presets/autodoc/roles/auditor.md +3 -3
  240. package/presets/autodoc/roles/checker.md +2 -2
  241. package/presets/autodoc/roles/publisher.md +3 -3
  242. package/presets/autodoc/roles/writer.md +4 -4
  243. package/presets/autofix/README.md +1 -1
  244. package/presets/autofix/autoloops.toml +5 -2
  245. package/presets/autofix/harness.md +8 -7
  246. package/presets/autofix/roles/closer.md +4 -4
  247. package/presets/autofix/roles/diagnoser.md +6 -5
  248. package/presets/autofix/roles/fixer.md +4 -4
  249. package/presets/autofix/roles/verifier.md +2 -2
  250. package/presets/autoideas/README.md +1 -1
  251. package/presets/autoideas/autoloops.toml +1 -1
  252. package/presets/autoideas/harness.md +11 -11
  253. package/presets/autoideas/roles/analyst.md +4 -4
  254. package/presets/autoideas/roles/reviewer.md +3 -3
  255. package/presets/autoideas/roles/scanner.md +3 -3
  256. package/presets/autoideas/roles/synthesizer.md +20 -7
  257. package/presets/automerge/README.md +3 -0
  258. package/presets/automerge/autoloops.toml +12 -0
  259. package/presets/automerge/harness.md +10 -0
  260. package/presets/automerge/miniloops.toml +12 -0
  261. package/presets/automerge/roles/merge.md +10 -0
  262. package/presets/automerge/topology.toml +10 -0
  263. package/presets/autoperf/README.md +1 -1
  264. package/presets/autoperf/autoloops.toml +1 -1
  265. package/presets/autoperf/harness.md +5 -5
  266. package/presets/autoperf/roles/judge.md +3 -3
  267. package/presets/autoperf/roles/measurer.md +4 -4
  268. package/presets/autoperf/roles/optimizer.md +4 -4
  269. package/presets/autoperf/roles/profiler.md +4 -4
  270. package/presets/autopr/README.md +99 -0
  271. package/presets/autopr/autoloops.toml +22 -0
  272. package/presets/autopr/harness.md +27 -0
  273. package/presets/autopr/miniloops.toml +22 -0
  274. package/presets/autopr/roles/collector.md +55 -0
  275. package/presets/autopr/roles/drafter.md +38 -0
  276. package/presets/autopr/roles/publisher.md +28 -0
  277. package/presets/autopr/roles/validator.md +31 -0
  278. package/presets/autopr/topology.toml +32 -0
  279. package/presets/autoqa/README.md +1 -1
  280. package/presets/autoqa/autoloops.toml +1 -1
  281. package/presets/autoqa/harness.md +10 -10
  282. package/presets/autoqa/roles/executor.md +3 -3
  283. package/presets/autoqa/roles/inspector.md +2 -2
  284. package/presets/autoqa/roles/planner.md +6 -6
  285. package/presets/autoqa/roles/reporter.md +9 -9
  286. package/presets/autoresearch/README.md +1 -1
  287. package/presets/autoresearch/autoloops.toml +1 -1
  288. package/presets/autoresearch/harness.md +5 -5
  289. package/presets/autoresearch/roles/benchmarker.md +3 -3
  290. package/presets/autoresearch/roles/evaluator.md +5 -5
  291. package/presets/autoresearch/roles/implementer.md +4 -4
  292. package/presets/autoresearch/roles/strategist.md +6 -6
  293. package/presets/autoreview/README.md +1 -1
  294. package/presets/autoreview/autoloops.toml +1 -1
  295. package/presets/autoreview/harness.md +5 -5
  296. package/presets/autoreview/roles/checker.md +4 -4
  297. package/presets/autoreview/roles/reader.md +5 -5
  298. package/presets/autoreview/roles/suggester.md +4 -4
  299. package/presets/autoreview/roles/summarizer.md +4 -4
  300. package/presets/autosec/README.md +1 -1
  301. package/presets/autosec/autoloops.toml +1 -1
  302. package/presets/autosec/harness.md +5 -5
  303. package/presets/autosec/roles/analyst.md +4 -4
  304. package/presets/autosec/roles/hardener.md +2 -2
  305. package/presets/autosec/roles/reporter.md +4 -4
  306. package/presets/autosec/roles/scanner.md +3 -3
  307. package/presets/autosimplify/README.md +1 -1
  308. package/presets/autosimplify/autoloops.toml +7 -3
  309. package/presets/autosimplify/harness.md +7 -7
  310. package/presets/autosimplify/roles/reviewer.md +3 -3
  311. package/presets/autosimplify/roles/scoper.md +7 -7
  312. package/presets/autosimplify/roles/simplifier.md +4 -4
  313. package/presets/autosimplify/roles/verifier.md +3 -3
  314. package/presets/autospec/README.md +1 -1
  315. package/presets/autospec/autoloops.toml +1 -1
  316. package/presets/autospec/harness.md +6 -6
  317. package/presets/autospec/roles/clarifier.md +4 -3
  318. package/presets/autospec/roles/critic.md +1 -1
  319. package/presets/autospec/roles/designer.md +3 -3
  320. package/presets/autospec/roles/planner.md +2 -2
  321. package/presets/autospec/roles/researcher.md +3 -3
  322. package/presets/autotest/README.md +1 -1
  323. package/presets/autotest/autoloops.toml +1 -1
  324. package/presets/autotest/harness.md +6 -6
  325. package/presets/autotest/roles/assessor.md +3 -3
  326. package/presets/autotest/roles/runner.md +2 -2
  327. package/presets/autotest/roles/surveyor.md +4 -4
  328. package/presets/autotest/roles/writer.md +4 -4
@@ -1,10 +1,11 @@
1
1
  import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import * as config from "../config.js";
4
- import { jsonField } from "../json.js";
5
- import { joinCsv, generateCompactId } from "../utils.js";
6
4
  import * as harness from "../harness/index.js";
7
- import { appendText, readLines, extractTopic, extractField } from "../harness/journal.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";
8
9
  import { checkBudget, defaultBudget } from "./budget.js";
9
10
  import { parseInlineChain } from "./load.js";
10
11
  export function runChain(chainSpec, projectDir, selfCommand, runOptions) {
@@ -16,12 +17,16 @@ export function runChain(chainSpec, projectDir, selfCommand, runOptions) {
16
17
  const journalFile = config.resolveJournalFile(projectDir);
17
18
  mkdirSync(chainDir, { recursive: true });
18
19
  appendChainEvent(journalFile, chainRunId, "chain.start", jsonField("name", chainName) +
19
- ", " + jsonField("steps", joinCsv(steps.map((s) => s.name))) +
20
- ", " + jsonField("step_count", String(steps.length)));
20
+ ", " +
21
+ jsonField("steps", joinCsv(steps.map((s) => s.name))) +
22
+ ", " +
23
+ jsonField("step_count", String(steps.length)));
21
24
  const result = runSteps(steps, 1, projectDir, chainDir, chainRunId, selfCommand, runOptions, journalFile, []);
22
25
  appendChainEvent(journalFile, chainRunId, "chain.complete", jsonField("name", chainName) +
23
- ", " + jsonField("steps_completed", String(result.completed.length)) +
24
- ", " + jsonField("outcome", result.outcome));
26
+ ", " +
27
+ jsonField("steps_completed", String(result.completed.length)) +
28
+ ", " +
29
+ jsonField("outcome", result.outcome));
25
30
  return result;
26
31
  }
27
32
  export function spawnDynamicChain(spec, projectDir, selfCommand, runOptions, parentId) {
@@ -29,19 +34,25 @@ export function spawnDynamicChain(spec, projectDir, selfCommand, runOptions, par
29
34
  const tracker = loadChainTracker(projectDir);
30
35
  const budgetResult = checkBudget(budget, tracker);
31
36
  if (!budgetResult.ok) {
32
- return { outcome: "budget_exceeded", reason: budgetResult.reason ?? "unknown rejection" };
37
+ return {
38
+ outcome: "budget_exceeded",
39
+ reason: budgetResult.reason ?? "unknown rejection",
40
+ };
33
41
  }
34
42
  const qualityResult = checkQualityGate(projectDir);
35
43
  if (!qualityResult.ok) {
36
- return { outcome: "quality_gate_rejected", reason: qualityResult.reason ?? "unknown rejection" };
44
+ return {
45
+ outcome: "quality_gate_rejected",
46
+ reason: qualityResult.reason ?? "unknown rejection",
47
+ };
37
48
  }
38
49
  return executeDynamicChain(spec, projectDir, selfCommand, runOptions, parentId);
39
50
  }
40
51
  export function writeDynamicSpec(projectDir, spec) {
41
52
  const specsDir = join(chainStateRoot(projectDir), "specs");
42
53
  mkdirSync(specsDir, { recursive: true });
43
- const chainId = spec.chainId ?? ("dyn-" + (countDynamicSpecs(specsDir) + 1));
44
- const path = join(specsDir, chainId + ".json");
54
+ const chainId = spec.chainId ?? `dyn-${countDynamicSpecs(specsDir) + 1}`;
55
+ const path = join(specsDir, `${chainId}.json`);
45
56
  writeFileSync(path, renderDynamicSpecJson(spec, chainId));
46
57
  return chainId;
47
58
  }
@@ -55,70 +66,135 @@ function runSteps(steps, stepNum, projectDir, chainDir, chainRunId, selfCommand,
55
66
  const [step, ...rest] = steps;
56
67
  const stepName = step.name;
57
68
  const presetDir = step.presetDir;
58
- const stepWorkDir = join(chainDir, "step-" + stepNum);
69
+ const stepWorkDir = join(chainDir, `step-${stepNum}`);
59
70
  mkdirSync(stepWorkDir, { recursive: true });
60
71
  writeHandoffArtifact(stepWorkDir, stepNum, completed, runOptions.prompt ?? null);
61
72
  appendChainEvent(journalFile, chainRunId, "chain.step.start", jsonField("step", String(stepNum)) +
62
- ", " + jsonField("preset", stepName) +
63
- ", " + jsonField("preset_dir", presetDir) +
64
- ", " + jsonField("work_dir", stepWorkDir));
65
- const stepOptions = { ...runOptions, workDir: stepWorkDir, trigger: "chain" };
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
+ };
66
87
  const prompt = stepNum === 1 ? (runOptions.prompt ?? null) : null;
67
88
  const result = harness.run(presetDir, prompt, selfCommand, stepOptions);
68
89
  const stopReason = result.stopReason;
69
90
  writeResultArtifact(stepWorkDir, stepNum, stepName, result);
70
91
  appendChainEvent(journalFile, chainRunId, "chain.step.finish", jsonField("step", String(stepNum)) +
71
- ", " + jsonField("preset", stepName) +
72
- ", " + jsonField("stop_reason", stopReason));
73
- const record = { step: stepNum, name: stepName, stopReason };
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
+ };
74
102
  const updatedCompleted = [...completed, record];
75
103
  if (chainStepSuccess(stopReason)) {
76
104
  return runSteps(rest, stepNum + 1, projectDir, chainDir, chainRunId, selfCommand, runOptions, journalFile, updatedCompleted);
77
105
  }
78
- return { completed: updatedCompleted, outcome: "step_failed", failedStep: stepNum, failedReason: stopReason };
106
+ return {
107
+ completed: updatedCompleted,
108
+ outcome: "step_failed",
109
+ failedStep: stepNum,
110
+ failedReason: stopReason,
111
+ };
79
112
  }
80
113
  function chainStepSuccess(stopReason) {
81
- return stopReason === "max_iterations" || stopReason === "completion_event" || stopReason === "completion_promise";
114
+ return (stopReason === "max_iterations" ||
115
+ stopReason === "completion_event" ||
116
+ stopReason === "completion_promise");
82
117
  }
83
118
  function writeHandoffArtifact(stepWorkDir, stepNum, completed, prompt) {
84
- let content = "# Chain Handoff — Step " + stepNum + "\n\n";
119
+ let content = `# Chain Handoff — Step ${stepNum}\n\n`;
85
120
  if (prompt)
86
- content += "## Entry Objective\n\n" + prompt + "\n\n";
121
+ content += `## Entry Objective\n\n${prompt}\n\n`;
87
122
  if (completed.length === 0) {
88
123
  content += "First step in chain. No prior results.\n";
89
124
  }
90
125
  else {
91
126
  content += "## Prior Steps\n";
92
127
  for (const rec of completed) {
93
- content += "- Step " + rec.step + " (" + rec.name + "): " + rec.stopReason + "\n";
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`;
94
144
  }
95
145
  }
96
146
  writeFileSync(join(stepWorkDir, "handoff.md"), content);
97
147
  }
98
148
  function writeResultArtifact(stepWorkDir, stepNum, stepName, result) {
99
- const content = "# Chain Result — Step " + stepNum + " (" + stepName + ")\n\n" +
100
- "Stop reason: " + result.stopReason + "\n" +
101
- "Iterations: " + result.iterations + "\n";
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` : "");
102
161
  writeFileSync(join(stepWorkDir, "result.md"), content);
103
162
  }
104
163
  function nextChainRunId(projectDir, cfg) {
105
- if (config.get(cfg, "core.run_id_format", "compact") === "counter") {
106
- const journalFile = config.resolveJournalFile(projectDir);
107
- const lines = readLines(journalFile);
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") {
108
168
  const count = lines.filter((l) => extractTopic(l) === "chain.start").length;
109
- return "chain-" + (count + 1);
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"));
110
175
  }
111
- return generateCompactId("chain");
176
+ return (uniqueGeneratedId(generateReadableId, existing) ??
177
+ generateCompactId("chain"));
112
178
  }
113
179
  function appendChainEvent(journalFile, chainRunId, topic, fieldsJson) {
114
- const line = "{" + jsonField("chain_run", chainRunId) + ", " +
115
- jsonField("topic", topic) + ', "fields": {' + fieldsJson + "}}\n";
180
+ const line = "{" +
181
+ jsonField("chain_run", chainRunId) +
182
+ ", " +
183
+ jsonField("topic", topic) +
184
+ ', "fields": {' +
185
+ fieldsJson +
186
+ "}}\n";
116
187
  appendText(journalFile, line);
117
188
  }
118
189
  function loadChainTracker(projectDir) {
119
190
  const journalFile = config.resolveJournalFile(projectDir);
120
191
  const lines = readLines(journalFile);
121
- const tracker = { depth: 0, totalSteps: 0, children: 0, consecutiveFailures: 0 };
192
+ const tracker = {
193
+ depth: 0,
194
+ totalSteps: 0,
195
+ children: 0,
196
+ consecutiveFailures: 0,
197
+ };
122
198
  for (const line of lines) {
123
199
  const topic = extractTopic(line);
124
200
  if (topic === "chain.start") {
@@ -141,7 +217,10 @@ function loadChainTracker(projectDir) {
141
217
  function checkQualityGate(projectDir) {
142
218
  const tracker = loadChainTracker(projectDir);
143
219
  if (tracker.consecutiveFailures >= 2) {
144
- return { ok: false, reason: `quality gate: ${tracker.consecutiveFailures} consecutive failures — consolidate before spawning` };
220
+ return {
221
+ ok: false,
222
+ reason: `quality gate: ${tracker.consecutiveFailures} consecutive failures — consolidate before spawning`,
223
+ };
145
224
  }
146
225
  return { ok: true };
147
226
  }
@@ -151,9 +230,12 @@ function executeDynamicChain(spec, projectDir, selfCommand, runOptions, parentId
151
230
  const journalFile = config.resolveJournalFile(projectDir);
152
231
  const justification = spec.justification ?? "";
153
232
  appendChainEvent(journalFile, chainId, "chain.spawn", jsonField("chain_id", chainId) +
154
- ", " + jsonField("parent_id", parentId) +
155
- ", " + jsonField("steps", joinCsv(stepsCsv)) +
156
- ", " + jsonField("justification", justification));
233
+ ", " +
234
+ jsonField("parent_id", parentId) +
235
+ ", " +
236
+ jsonField("steps", joinCsv(stepsCsv)) +
237
+ ", " +
238
+ jsonField("justification", justification));
157
239
  const chainSpec = parseInlineChain(joinCsv(stepsCsv), projectDir);
158
240
  const namedSpec = { ...chainSpec, name: chainId };
159
241
  const result = runChain(namedSpec, projectDir, selfCommand, runOptions);
@@ -165,11 +247,14 @@ function countDynamicSpecs(specsDir) {
165
247
  return readdirSync(specsDir).filter((f) => f.endsWith(".json")).length;
166
248
  }
167
249
  function renderDynamicSpecJson(spec, chainId) {
168
- return "{" +
169
- jsonField("chain_id", chainId) + ", " +
170
- jsonField("parent_id", spec.parentId ?? "") + ", " +
171
- jsonField("steps", joinCsv(spec.steps)) + ", " +
250
+ return ("{" +
251
+ jsonField("chain_id", chainId) +
252
+ ", " +
253
+ jsonField("parent_id", spec.parentId ?? "") +
254
+ ", " +
255
+ jsonField("steps", joinCsv(spec.steps)) +
256
+ ", " +
172
257
  jsonField("justification", spec.justification ?? "") +
173
- "}\n";
258
+ "}\n");
174
259
  }
175
260
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/chains/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/chains/run.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export interface StepRecord {
28
28
  step: number;
29
29
  name: string;
30
30
  stopReason: string;
31
+ runId?: string;
31
32
  }
32
33
  export interface ChainTracker {
33
34
  depth: number;
package/dist/chains.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- export type { ChainStep, ChainSpec, Budget, ChainsConfig, DynamicChainSpec, StepRecord, ChainTracker, } from "./chains/types.js";
2
- export { defaultBudget, checkBudget, parseBudgetFromToml } from "./chains/budget.js";
3
- export { load, resolveChain, listChains, parseInlineChain, loadBudget, resolvePresetDir, listKnownPresets, validatePresetVocabulary, } from "./chains/load.js";
4
- export { renderChainState, renderChainLines } from "./chains/render.js";
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
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 CHANGED
@@ -1,5 +1,5 @@
1
- export { defaultBudget, checkBudget, parseBudgetFromToml } from "./chains/budget.js";
2
- export { load, resolveChain, listChains, parseInlineChain, loadBudget, resolvePresetDir, listKnownPresets, validatePresetVocabulary, } from "./chains/load.js";
3
- export { renderChainState, renderChainLines } from "./chains/render.js";
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
4
  export { runChain, spawnDynamicChain, writeDynamicSpec } from "./chains/run.js";
5
5
  //# sourceMappingURL=chains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,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
+ {"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"}
@@ -12,7 +12,7 @@ export function dispatchChain(args, selfCmd) {
12
12
  }
13
13
  for (const chain of chainList) {
14
14
  const stepNames = chain.steps.map((s) => s.name).join(" -> ") || "(empty)";
15
- console.log(chain.name + ": " + stepNames);
15
+ console.log(`${chain.name}: ${stepNames}`);
16
16
  }
17
17
  return true;
18
18
  }
@@ -27,10 +27,12 @@ export function dispatchChain(args, selfCmd) {
27
27
  const chainsData = chains.load(projectDir);
28
28
  const chainSpec = chains.resolveChain(chainsData, name);
29
29
  if (!chainSpec) {
30
- console.log("chain `" + name + "` not found in chains.toml");
30
+ console.log(`chain \`${name}\` not found in chains.toml`);
31
31
  return true;
32
32
  }
33
- chains.runChain(chainSpec, projectDir, selfCmd, { prompt: normalizePrompt(prompt) });
33
+ chains.runChain(chainSpec, projectDir, selfCmd, {
34
+ prompt: normalizePrompt(prompt),
35
+ });
34
36
  return true;
35
37
  }
36
38
  default:
@@ -41,7 +43,7 @@ export function dispatchChain(args, selfCmd) {
41
43
  }
42
44
  }
43
45
  function resolveRuntimeProjectDir() {
44
- return process.env["MINILOOPS_PROJECT_DIR"] || ".";
46
+ return process.env.AUTOLOOP_PROJECT_DIR || ".";
45
47
  }
46
48
  function normalizePrompt(prompt) {
47
49
  if (prompt === null || prompt === "")
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/commands/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,IAAc,EAAE,OAAe;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,wBAAwB,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBACzE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;gBAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YACtG,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,wBAAwB,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;YAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,4BAA4B,CAAC,CAAC;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO,IAAI,CAAC;QACd,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC;AACrD,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/commands/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,aAAa,CAAC,IAAc,EAAE,OAAe;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,wBAAwB,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CACT,2DAA2D,CAC5D,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,MAAM,SAAS,GACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CACT,4DAA4D,CAC7D,CAAC;gBACF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,wBAAwB,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;YAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,6BAA6B,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE;gBAC9C,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function dispatchConfig(args: string[]): boolean;
@@ -0,0 +1,74 @@
1
+ import { existsSync } from "node:fs";
2
+ import * as config from "../config.js";
3
+ export function dispatchConfig(args) {
4
+ const sub = args[0] ?? "";
5
+ if (sub === "show") {
6
+ return configShow(args.slice(1));
7
+ }
8
+ if (sub === "path") {
9
+ return configPath();
10
+ }
11
+ if (sub === "--help" || sub === "-h" || sub === "") {
12
+ printConfigUsage();
13
+ return true;
14
+ }
15
+ console.log(`unknown config subcommand: ${sub}`);
16
+ printConfigUsage();
17
+ return true;
18
+ }
19
+ function configShow(args) {
20
+ let projectDir = ".";
21
+ let json = false;
22
+ for (let i = 0; i < args.length; i++) {
23
+ if ((args[i] === "--project" || args[i] === "-d") && args[i + 1]) {
24
+ projectDir = args[i + 1];
25
+ i++;
26
+ }
27
+ else if (args[i] === "--json") {
28
+ json = true;
29
+ }
30
+ }
31
+ const { config: resolved, provenance } = config.loadLayered(projectDir);
32
+ if (json) {
33
+ console.log(JSON.stringify({ config: resolved, provenance }, null, 2));
34
+ return true;
35
+ }
36
+ console.log("# Resolved configuration (highest-precedence source shown)");
37
+ console.log("");
38
+ for (const section of Object.keys(resolved)) {
39
+ console.log(`[${section}]`);
40
+ const value = resolved[section];
41
+ if (typeof value === "object" && value !== null) {
42
+ for (const [k, v] of Object.entries(value)) {
43
+ const dotPath = `${section}.${k}`;
44
+ const source = provenance[dotPath] ?? "default";
45
+ console.log(` ${k} = ${JSON.stringify(String(v))} # ${source}`);
46
+ }
47
+ }
48
+ else {
49
+ const source = provenance[section] ?? "default";
50
+ console.log(` ${JSON.stringify(String(value))} # ${source}`);
51
+ }
52
+ console.log("");
53
+ }
54
+ return true;
55
+ }
56
+ function configPath() {
57
+ const path = config.userConfigPath();
58
+ const exists = existsSync(path);
59
+ console.log(path);
60
+ console.log(exists ? "exists: yes" : "exists: no");
61
+ return true;
62
+ }
63
+ function printConfigUsage() {
64
+ console.log("Usage: autoloop config <subcommand>");
65
+ console.log("");
66
+ console.log("Subcommands:");
67
+ console.log(" show Show resolved config with provenance labels");
68
+ console.log(" path Print user config file path and existence");
69
+ console.log("");
70
+ console.log("Options (show):");
71
+ console.log(" --project <dir> Resolve against a specific project directory");
72
+ console.log(" --json Output as JSON with config and provenance");
73
+ }
74
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function dispatchDashboard(args: string[], bundleRoot: string, selfCmd: string): void;
@@ -0,0 +1,68 @@
1
+ import { join, resolve } from "node:path";
2
+ import { serve } from "@hono/node-server";
3
+ import { createApp } from "../dashboard/app.js";
4
+ export function dispatchDashboard(args, bundleRoot, selfCmd) {
5
+ let port = 4800;
6
+ let host = "127.0.0.1";
7
+ let projectDir = ".";
8
+ for (let i = 0; i < args.length; i++) {
9
+ const arg = args[i];
10
+ if ((arg === "--port" || arg === "-p") && args[i + 1]) {
11
+ port = parseInt(args[i + 1], 10);
12
+ i++;
13
+ }
14
+ else if (arg === "--host" && args[i + 1]) {
15
+ host = args[i + 1];
16
+ i++;
17
+ }
18
+ else if (arg === "--project-dir" && args[i + 1]) {
19
+ projectDir = args[i + 1];
20
+ i++;
21
+ }
22
+ else if (arg === "--help" || arg === "-h") {
23
+ printUsage();
24
+ return;
25
+ }
26
+ }
27
+ const resolved = resolve(projectDir);
28
+ const stateDir = join(resolved, ".autoloop");
29
+ const ctx = {
30
+ registryPath: join(stateDir, "registry.jsonl"),
31
+ journalPath: join(stateDir, "journal.jsonl"),
32
+ stateDir,
33
+ bundleRoot,
34
+ projectDir: resolved,
35
+ selfCmd,
36
+ };
37
+ const app = createApp({ ...ctx, host, port });
38
+ const server = serve({ fetch: app.fetch, port, hostname: host }, (info) => {
39
+ if (process.stderr.isTTY) {
40
+ console.error(`autoloop dashboard → http://${info.address}:${info.port}`);
41
+ }
42
+ console.log(`Dashboard listening on http://${info.address}:${info.port}`);
43
+ });
44
+ const shutdown = () => {
45
+ console.log("\nShutting down dashboard...");
46
+ server.close();
47
+ process.exit(0);
48
+ };
49
+ process.on("SIGINT", shutdown);
50
+ process.on("SIGTERM", shutdown);
51
+ server.on("error", (err) => {
52
+ if (err.code === "EADDRINUSE") {
53
+ console.error(`Port ${port} is already in use.`);
54
+ process.exit(1);
55
+ }
56
+ throw err;
57
+ });
58
+ }
59
+ function printUsage() {
60
+ console.log("Usage: autoloop dashboard [options]");
61
+ console.log("");
62
+ console.log("Options:");
63
+ console.log(" --port, -p <port> Port to listen on (default: 4800)");
64
+ console.log(" --host <host> Host to bind to (default: 127.0.0.1)");
65
+ console.log(" --project-dir <dir> Project directory (default: .)");
66
+ console.log(" --help, -h Show this help");
67
+ }
68
+ //# sourceMappingURL=dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}