swarm-engine 1.1.0 → 1.3.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 (300) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.md +102 -25
  3. package/agents/accessibility-reviewer.md +2 -0
  4. package/agents/api-contract-reviewer.md +2 -0
  5. package/agents/concurrency-reviewer.md +2 -0
  6. package/agents/data-integrity-reviewer.md +1 -0
  7. package/agents/debugger.md +2 -0
  8. package/agents/dependency-reviewer.md +2 -0
  9. package/agents/devils-advocate.md +1 -0
  10. package/agents/documentation-reviewer.md +2 -0
  11. package/agents/documenter.md +13 -0
  12. package/agents/error-handling-reviewer.md +2 -0
  13. package/agents/grounding.md +3 -2
  14. package/agents/guardian.md +3 -0
  15. package/agents/implementer.md +2 -0
  16. package/agents/integrator.md +3 -0
  17. package/agents/judge.md +2 -0
  18. package/agents/librarian.md +4 -1
  19. package/agents/orchestrator.md +3 -0
  20. package/agents/performance-reviewer.md +2 -0
  21. package/agents/planner.md +2 -0
  22. package/agents/refactorer.md +3 -0
  23. package/agents/reviewer.md +1 -0
  24. package/agents/security-reviewer.md +1 -0
  25. package/agents/sentinel.md +3 -0
  26. package/agents/tester.md +2 -0
  27. package/agents/testing-reviewer.md +2 -0
  28. package/commands/diff-review.md +27 -15
  29. package/commands/discover.md +102 -0
  30. package/commands/dynamic.md +136 -0
  31. package/commands/fix-pr.md +30 -24
  32. package/commands/postmortem.md +106 -0
  33. package/commands/red-team.md +41 -26
  34. package/commands/research.md +22 -1
  35. package/commands/review-cycle.md +38 -20
  36. package/commands/spike.md +108 -0
  37. package/commands/swarm.md +68 -60
  38. package/commands/tdd.md +44 -24
  39. package/dist/cli/commands/acp.d.ts.map +1 -1
  40. package/dist/cli/commands/acp.js +12 -2
  41. package/dist/cli/commands/acp.js.map +1 -1
  42. package/dist/cli/commands/agents.d.ts.map +1 -1
  43. package/dist/cli/commands/agents.js +16 -13
  44. package/dist/cli/commands/agents.js.map +1 -1
  45. package/dist/cli/commands/completions.d.ts.map +1 -1
  46. package/dist/cli/commands/completions.js +21 -9
  47. package/dist/cli/commands/completions.js.map +1 -1
  48. package/dist/cli/commands/compound.d.ts.map +1 -1
  49. package/dist/cli/commands/compound.js +1 -2
  50. package/dist/cli/commands/compound.js.map +1 -1
  51. package/dist/cli/commands/configure.d.ts.map +1 -1
  52. package/dist/cli/commands/configure.js +24 -8
  53. package/dist/cli/commands/configure.js.map +1 -1
  54. package/dist/cli/commands/convert.d.ts +1 -1
  55. package/dist/cli/commands/convert.d.ts.map +1 -1
  56. package/dist/cli/commands/convert.js +22 -48
  57. package/dist/cli/commands/convert.js.map +1 -1
  58. package/dist/cli/commands/doctor.d.ts.map +1 -1
  59. package/dist/cli/commands/doctor.js +1 -3
  60. package/dist/cli/commands/doctor.js.map +1 -1
  61. package/dist/cli/commands/init.d.ts.map +1 -1
  62. package/dist/cli/commands/init.js +17 -7
  63. package/dist/cli/commands/init.js.map +1 -1
  64. package/dist/cli/commands/install.d.ts.map +1 -1
  65. package/dist/cli/commands/install.js +1 -1
  66. package/dist/cli/commands/install.js.map +1 -1
  67. package/dist/cli/commands/learn.js +6 -6
  68. package/dist/cli/commands/learn.js.map +1 -1
  69. package/dist/cli/commands/mcp.d.ts.map +1 -1
  70. package/dist/cli/commands/mcp.js +1 -2
  71. package/dist/cli/commands/mcp.js.map +1 -1
  72. package/dist/cli/commands/memory.d.ts.map +1 -1
  73. package/dist/cli/commands/memory.js +1 -2
  74. package/dist/cli/commands/memory.js.map +1 -1
  75. package/dist/cli/commands/orchestrate.d.ts.map +1 -1
  76. package/dist/cli/commands/orchestrate.js +20 -7
  77. package/dist/cli/commands/orchestrate.js.map +1 -1
  78. package/dist/cli/commands/plan.d.ts.map +1 -1
  79. package/dist/cli/commands/plan.js.map +1 -1
  80. package/dist/cli/commands/plugin.d.ts.map +1 -1
  81. package/dist/cli/commands/plugin.js +8 -5
  82. package/dist/cli/commands/plugin.js.map +1 -1
  83. package/dist/cli/commands/resume.js +1 -1
  84. package/dist/cli/commands/resume.js.map +1 -1
  85. package/dist/cli/commands/run.d.ts.map +1 -1
  86. package/dist/cli/commands/run.js +20 -6
  87. package/dist/cli/commands/run.js.map +1 -1
  88. package/dist/cli/commands/share.d.ts.map +1 -1
  89. package/dist/cli/commands/share.js +6 -1
  90. package/dist/cli/commands/share.js.map +1 -1
  91. package/dist/cli/commands/status.d.ts.map +1 -1
  92. package/dist/cli/commands/status.js +15 -7
  93. package/dist/cli/commands/status.js.map +1 -1
  94. package/dist/cli/commands/template.d.ts.map +1 -1
  95. package/dist/cli/commands/template.js +14 -6
  96. package/dist/cli/commands/template.js.map +1 -1
  97. package/dist/cli/commands/vault.d.ts.map +1 -1
  98. package/dist/cli/commands/vault.js +14 -9
  99. package/dist/cli/commands/vault.js.map +1 -1
  100. package/dist/cli/commands/verify.d.ts.map +1 -1
  101. package/dist/cli/commands/verify.js +2 -2
  102. package/dist/cli/commands/verify.js.map +1 -1
  103. package/dist/cli/commands/watch.js +1 -1
  104. package/dist/cli/commands/watch.js.map +1 -1
  105. package/dist/cli/index.js +14 -4
  106. package/dist/cli/index.js.map +1 -1
  107. package/dist/core/checkpoint.js +1 -1
  108. package/dist/core/checkpoint.js.map +1 -1
  109. package/dist/core/event-bus.d.ts.map +1 -1
  110. package/dist/core/event-bus.js +9 -3
  111. package/dist/core/event-bus.js.map +1 -1
  112. package/dist/core/lifecycle.js.map +1 -1
  113. package/dist/core/patterns.d.ts.map +1 -1
  114. package/dist/core/patterns.js +31 -8
  115. package/dist/core/patterns.js.map +1 -1
  116. package/dist/core/permissions.d.ts.map +1 -1
  117. package/dist/core/permissions.js +21 -10
  118. package/dist/core/permissions.js.map +1 -1
  119. package/dist/core/registry.d.ts.map +1 -1
  120. package/dist/core/registry.js +10 -6
  121. package/dist/core/registry.js.map +1 -1
  122. package/dist/core/snapshots.d.ts.map +1 -1
  123. package/dist/core/snapshots.js +17 -5
  124. package/dist/core/snapshots.js.map +1 -1
  125. package/dist/core/types.d.ts +3 -0
  126. package/dist/core/types.d.ts.map +1 -1
  127. package/dist/core/types.js.map +1 -1
  128. package/dist/hooks/index.js.map +1 -1
  129. package/dist/index.d.ts +68 -6
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +60 -4
  132. package/dist/index.js.map +1 -1
  133. package/dist/memory/index.d.ts +1 -0
  134. package/dist/memory/index.d.ts.map +1 -1
  135. package/dist/memory/index.js +39 -24
  136. package/dist/memory/index.js.map +1 -1
  137. package/dist/memory/schema.d.ts +1 -0
  138. package/dist/memory/schema.d.ts.map +1 -1
  139. package/dist/memory/schema.js +20 -19
  140. package/dist/memory/schema.js.map +1 -1
  141. package/dist/plugin/index.d.ts.map +1 -1
  142. package/dist/plugin/index.js.map +1 -1
  143. package/dist/runtime/acp.d.ts.map +1 -1
  144. package/dist/runtime/acp.js +71 -41
  145. package/dist/runtime/acp.js.map +1 -1
  146. package/dist/runtime/adaptive.d.ts.map +1 -1
  147. package/dist/runtime/adaptive.js +30 -31
  148. package/dist/runtime/adaptive.js.map +1 -1
  149. package/dist/runtime/agent-runner.d.ts +52 -0
  150. package/dist/runtime/agent-runner.d.ts.map +1 -0
  151. package/dist/runtime/agent-runner.js +156 -0
  152. package/dist/runtime/agent-runner.js.map +1 -0
  153. package/dist/runtime/autonomy.d.ts +1 -0
  154. package/dist/runtime/autonomy.d.ts.map +1 -1
  155. package/dist/runtime/autonomy.js +37 -19
  156. package/dist/runtime/autonomy.js.map +1 -1
  157. package/dist/runtime/backends/claude.d.ts.map +1 -1
  158. package/dist/runtime/backends/claude.js +2 -2
  159. package/dist/runtime/backends/claude.js.map +1 -1
  160. package/dist/runtime/backends/codex.d.ts.map +1 -1
  161. package/dist/runtime/backends/codex.js +8 -11
  162. package/dist/runtime/backends/codex.js.map +1 -1
  163. package/dist/runtime/backends/gemini.d.ts.map +1 -1
  164. package/dist/runtime/backends/gemini.js +11 -7
  165. package/dist/runtime/backends/gemini.js.map +1 -1
  166. package/dist/runtime/backends/index.js +1 -1
  167. package/dist/runtime/backends/index.js.map +1 -1
  168. package/dist/runtime/backends/mock.d.ts.map +1 -1
  169. package/dist/runtime/backends/mock.js +1 -1
  170. package/dist/runtime/backends/mock.js.map +1 -1
  171. package/dist/runtime/backends/vercel-ai.d.ts.map +1 -1
  172. package/dist/runtime/backends/vercel-ai.js +41 -9
  173. package/dist/runtime/backends/vercel-ai.js.map +1 -1
  174. package/dist/runtime/cache-optimizer.d.ts.map +1 -1
  175. package/dist/runtime/cache-optimizer.js +3 -9
  176. package/dist/runtime/cache-optimizer.js.map +1 -1
  177. package/dist/runtime/cascade.d.ts.map +1 -1
  178. package/dist/runtime/cascade.js +34 -7
  179. package/dist/runtime/cascade.js.map +1 -1
  180. package/dist/runtime/chunker.d.ts.map +1 -1
  181. package/dist/runtime/chunker.js +12 -6
  182. package/dist/runtime/chunker.js.map +1 -1
  183. package/dist/runtime/compounder.d.ts +1 -1
  184. package/dist/runtime/compounder.d.ts.map +1 -1
  185. package/dist/runtime/compounder.js +30 -11
  186. package/dist/runtime/compounder.js.map +1 -1
  187. package/dist/runtime/cost-model.d.ts.map +1 -1
  188. package/dist/runtime/cost-model.js +1 -1
  189. package/dist/runtime/cost-model.js.map +1 -1
  190. package/dist/runtime/database.d.ts +16 -0
  191. package/dist/runtime/database.d.ts.map +1 -0
  192. package/dist/runtime/database.js +39 -0
  193. package/dist/runtime/database.js.map +1 -0
  194. package/dist/runtime/distiller.d.ts.map +1 -1
  195. package/dist/runtime/distiller.js +6 -3
  196. package/dist/runtime/distiller.js.map +1 -1
  197. package/dist/runtime/engine.d.ts +7 -9
  198. package/dist/runtime/engine.d.ts.map +1 -1
  199. package/dist/runtime/engine.js +129 -394
  200. package/dist/runtime/engine.js.map +1 -1
  201. package/dist/runtime/executor.d.ts +1 -2
  202. package/dist/runtime/executor.d.ts.map +1 -1
  203. package/dist/runtime/executor.js +45 -14
  204. package/dist/runtime/executor.js.map +1 -1
  205. package/dist/runtime/heuristics.d.ts +1 -0
  206. package/dist/runtime/heuristics.d.ts.map +1 -1
  207. package/dist/runtime/heuristics.js +44 -22
  208. package/dist/runtime/heuristics.js.map +1 -1
  209. package/dist/runtime/learning-engine.d.ts +51 -0
  210. package/dist/runtime/learning-engine.d.ts.map +1 -0
  211. package/dist/runtime/learning-engine.js +209 -0
  212. package/dist/runtime/learning-engine.js.map +1 -0
  213. package/dist/runtime/living-spec.js +3 -3
  214. package/dist/runtime/living-spec.js.map +1 -1
  215. package/dist/runtime/lsp.d.ts.map +1 -1
  216. package/dist/runtime/lsp.js +41 -14
  217. package/dist/runtime/lsp.js.map +1 -1
  218. package/dist/runtime/mcp.d.ts.map +1 -1
  219. package/dist/runtime/mcp.js +56 -19
  220. package/dist/runtime/mcp.js.map +1 -1
  221. package/dist/runtime/model-router.d.ts +1 -0
  222. package/dist/runtime/model-router.d.ts.map +1 -1
  223. package/dist/runtime/model-router.js +37 -21
  224. package/dist/runtime/model-router.js.map +1 -1
  225. package/dist/runtime/panes.d.ts.map +1 -1
  226. package/dist/runtime/panes.js +50 -49
  227. package/dist/runtime/panes.js.map +1 -1
  228. package/dist/runtime/plan-search.js +2 -2
  229. package/dist/runtime/plan-search.js.map +1 -1
  230. package/dist/runtime/plugins.d.ts +1 -1
  231. package/dist/runtime/plugins.d.ts.map +1 -1
  232. package/dist/runtime/plugins.js +63 -47
  233. package/dist/runtime/plugins.js.map +1 -1
  234. package/dist/runtime/reflexion.d.ts.map +1 -1
  235. package/dist/runtime/reflexion.js +4 -8
  236. package/dist/runtime/reflexion.js.map +1 -1
  237. package/dist/runtime/review-schema.d.ts.map +1 -1
  238. package/dist/runtime/review-schema.js +12 -12
  239. package/dist/runtime/review-schema.js.map +1 -1
  240. package/dist/runtime/rewriter.d.ts.map +1 -1
  241. package/dist/runtime/rewriter.js +29 -9
  242. package/dist/runtime/rewriter.js.map +1 -1
  243. package/dist/runtime/sharing.d.ts +1 -1
  244. package/dist/runtime/sharing.d.ts.map +1 -1
  245. package/dist/runtime/sharing.js +55 -27
  246. package/dist/runtime/sharing.js.map +1 -1
  247. package/dist/runtime/stats.d.ts +1 -0
  248. package/dist/runtime/stats.d.ts.map +1 -1
  249. package/dist/runtime/stats.js +40 -24
  250. package/dist/runtime/stats.js.map +1 -1
  251. package/dist/runtime/templates.d.ts.map +1 -1
  252. package/dist/runtime/templates.js +2 -2
  253. package/dist/runtime/templates.js.map +1 -1
  254. package/dist/runtime/traces.d.ts +1 -0
  255. package/dist/runtime/traces.d.ts.map +1 -1
  256. package/dist/runtime/traces.js +50 -28
  257. package/dist/runtime/traces.js.map +1 -1
  258. package/dist/runtime/verifier.d.ts.map +1 -1
  259. package/dist/runtime/verifier.js +12 -6
  260. package/dist/runtime/verifier.js.map +1 -1
  261. package/dist/runtime/worktree.d.ts.map +1 -1
  262. package/dist/runtime/worktree.js +35 -18
  263. package/dist/runtime/worktree.js.map +1 -1
  264. package/dist/tui/dashboard.d.ts.map +1 -1
  265. package/dist/tui/dashboard.js +20 -16
  266. package/dist/tui/dashboard.js.map +1 -1
  267. package/dist/tui/progress.d.ts +2 -0
  268. package/dist/tui/progress.d.ts.map +1 -1
  269. package/dist/tui/progress.js +105 -33
  270. package/dist/tui/progress.js.map +1 -1
  271. package/dist/tui/renderer.d.ts.map +1 -1
  272. package/dist/tui/renderer.js.map +1 -1
  273. package/dist/utils/compact-format.js +1 -1
  274. package/dist/utils/compact-format.js.map +1 -1
  275. package/dist/utils/config.d.ts.map +1 -1
  276. package/dist/utils/config.js.map +1 -1
  277. package/dist/utils/env.d.ts.map +1 -1
  278. package/dist/utils/env.js +19 -5
  279. package/dist/utils/env.js.map +1 -1
  280. package/dist/utils/errors.d.ts.map +1 -1
  281. package/dist/utils/errors.js +3 -7
  282. package/dist/utils/errors.js.map +1 -1
  283. package/dist/utils/output.d.ts.map +1 -1
  284. package/dist/utils/output.js +6 -2
  285. package/dist/utils/output.js.map +1 -1
  286. package/dist/utils/project-config.d.ts +18 -0
  287. package/dist/utils/project-config.d.ts.map +1 -1
  288. package/dist/utils/project-config.js +14 -6
  289. package/dist/utils/project-config.js.map +1 -1
  290. package/dist/utils/schemas.d.ts.map +1 -1
  291. package/dist/utils/schemas.js +12 -12
  292. package/dist/utils/schemas.js.map +1 -1
  293. package/dist/utils/terminal.d.ts.map +1 -1
  294. package/dist/utils/terminal.js +18 -7
  295. package/dist/utils/terminal.js.map +1 -1
  296. package/dist/utils/tiers.d.ts.map +1 -1
  297. package/dist/utils/tiers.js +14 -6
  298. package/dist/utils/tiers.js.map +1 -1
  299. package/package.json +14 -3
  300. package/skills/swarm-output-style/SKILL.md +114 -46
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAGjE;AAED,wBAAgB,UAAU,IAAI,OAAO,CAAqB;AAC1D,wBAAgB,WAAW,IAAI,OAAO,CAAsB;AAE5D,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAI7C;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAGjE;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AACD,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,4CAA4C;AAC5C,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,+CAA+C;AAC/C,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAI7C;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE9C"}
@@ -5,8 +5,12 @@ export function setOutputMode(json, quiet) {
5
5
  jsonMode = json;
6
6
  quietMode = quiet;
7
7
  }
8
- export function isJsonMode() { return jsonMode; }
9
- export function isQuietMode() { return quietMode; }
8
+ export function isJsonMode() {
9
+ return jsonMode;
10
+ }
11
+ export function isQuietMode() {
12
+ return quietMode;
13
+ }
10
14
  /** Print to stdout — respects quiet mode */
11
15
  export function print(message) {
12
16
  if (!quietMode)
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,KAAc;IACzD,QAAQ,GAAG,IAAI,CAAC;IAChB,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,UAAU,KAAc,OAAO,QAAQ,CAAC,CAAC,CAAC;AAC1D,MAAM,UAAU,WAAW,KAAc,OAAO,SAAS,CAAC,CAAC,CAAC;AAE5D,4CAA4C;AAC5C,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,UAAU,aAAa,CAAC,IAAa,EAAE,KAAc;IACzD,QAAQ,GAAG,IAAI,CAAC;IAChB,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,KAAK,CAAC,OAAe;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,5 +1,15 @@
1
+ /**
2
+ * Project-level config loaded from .swarm.yml / .swarm.yaml (snake_case).
3
+ *
4
+ * Relationship to global config:
5
+ * - .swarm.yml — project-level, snake_case keys, YAML
6
+ * - .swarm/config.json — global/local, camelCase keys, JSON
7
+ *
8
+ * CLI flags > .swarm.yml (project) > .swarm/config.json (global) > defaults.
9
+ */
1
10
  export interface ProjectConfig {
2
11
  project?: string;
12
+ default_backend?: string;
3
13
  default_pattern?: string;
4
14
  cost_budget?: number;
5
15
  autonomy?: 'ask' | 'auto';
@@ -14,5 +24,13 @@ export interface ProjectConfig {
14
24
  }>;
15
25
  }
16
26
  export declare function loadProjectConfig(cwd?: string): ProjectConfig | null;
27
+ /**
28
+ * Resolve the effective default backend from project config (.swarm.yml).
29
+ * Returns the project-level default_backend if set, otherwise null.
30
+ *
31
+ * CLI commands should use this to fall back when no --backend flag is given:
32
+ * const backend = cliFlag !== 'claude' ? cliFlag : getProjectDefaultBackend() ?? 'claude';
33
+ */
34
+ export declare function getProjectDefaultBackend(cwd?: string): string | null;
17
35
  export declare function getProjectName(cwd?: string): string | null;
18
36
  //# sourceMappingURL=project-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/utils/project-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsBpE;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB1D"}
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/utils/project-config.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CACb,MAAM,EACN;QAEE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CACF,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,EACN;QAEE,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CACF,CAAC;CACH;AAED,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAmBpE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGpE;AAED,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB1D"}
@@ -3,11 +3,7 @@ import { join } from 'path';
3
3
  import yaml from 'js-yaml';
4
4
  export function loadProjectConfig(cwd) {
5
5
  const dir = cwd ?? process.cwd();
6
- const candidates = [
7
- join(dir, '.swarm.yml'),
8
- join(dir, '.swarm.yaml'),
9
- join(dir, '.swarm', 'config.yml'),
10
- ];
6
+ const candidates = [join(dir, '.swarm.yml'), join(dir, '.swarm.yaml'), join(dir, '.swarm', 'config.yml')];
11
7
  for (const path of candidates) {
12
8
  if (existsSync(path)) {
13
9
  try {
@@ -17,13 +13,25 @@ export function loadProjectConfig(cwd) {
17
13
  return parsed;
18
14
  }
19
15
  }
20
- catch {
16
+ catch (e) {
17
+ console.warn(`[swarm] Failed to parse ${path}: ${e instanceof Error ? e.message : e}`);
21
18
  return null;
22
19
  }
23
20
  }
24
21
  }
25
22
  return null;
26
23
  }
24
+ /**
25
+ * Resolve the effective default backend from project config (.swarm.yml).
26
+ * Returns the project-level default_backend if set, otherwise null.
27
+ *
28
+ * CLI commands should use this to fall back when no --backend flag is given:
29
+ * const backend = cliFlag !== 'claude' ? cliFlag : getProjectDefaultBackend() ?? 'claude';
30
+ */
31
+ export function getProjectDefaultBackend(cwd) {
32
+ const config = loadProjectConfig(cwd);
33
+ return config?.default_backend ?? null;
34
+ }
27
35
  export function getProjectName(cwd) {
28
36
  // Try .swarm.yml first
29
37
  const config = loadProjectConfig(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/utils/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,IAAI,MAAM,SAAS,CAAC;AAkB3B,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;QACxB,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC;KAClC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBACnE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACzC,OAAO,MAAuB,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,uBAAuB;IACvB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAE3C,mBAAmB;IACnB,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,8BAA8B;IAC9B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/utils/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,IAAI,MAAM,SAAS,CAAC;AAoC3B,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE1G,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBACnE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACzC,OAAO,MAAuB,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,MAAM,EAAE,eAAe,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,uBAAuB;IACvB,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAE3C,mBAAmB;IACnB,MAAM,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,IAAI;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,8BAA8B;IAC9B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe,2BAA0C,CAAC;AAEvE,eAAO,MAAM,uBAAuB;;;;GAAqD,CAAC;AAE1F,eAAO,MAAM,gBAAgB;;;;GAAiD,CAAC;AAE/E,eAAO,MAAM,kBAAkB;;;GAA4C,CAAC;AAE5E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyBnB,CAAC;AAIjB,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAOlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;iBAKtC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUjB,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe,2BAA0C,CAAC;AAEvE,eAAO,MAAM,uBAAuB;;;;GAAqD,CAAC;AAE1F,eAAO,MAAM,gBAAgB;;;;GAAiD,CAAC;AAE/E,eAAO,MAAM,kBAAkB;;;GAA4C,CAAC;AAE5E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBnB,CAAC;AAIjB,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAOlC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;iBAKtC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYjB,CAAC"}
@@ -4,7 +4,8 @@ export const ModelTierSchema = z.string().default('claude-sonnet-4-6');
4
4
  export const PermissionProfileSchema = z.enum(['safe', 'standard', 'trusted']).optional();
5
5
  export const PromptTierSchema = z.enum(['full', 'lite', 'minimal']).optional();
6
6
  export const OutputFormatSchema = z.enum(['free', 'structured']).optional();
7
- export const AgentFrontmatterSchema = z.object({
7
+ export const AgentFrontmatterSchema = z
8
+ .object({
8
9
  name: z.string().min(1, 'Agent name is required'),
9
10
  description: z.string().default(''),
10
11
  model: ModelTierSchema,
@@ -12,14 +13,10 @@ export const AgentFrontmatterSchema = z.object({
12
13
  backend: z.string().optional(),
13
14
  backendModel: z.string().optional(),
14
15
  extends: z.string().optional(),
15
- tools: z.union([
16
- z.array(z.string()),
17
- z.string().transform(s => s.split(',').map(t => t.trim())),
18
- ]).optional(),
19
- disallowedTools: z.union([
20
- z.array(z.string()),
21
- z.string().transform(s => s.split(',').map(t => t.trim())),
22
- ]).optional(),
16
+ tools: z.union([z.array(z.string()), z.string().transform((s) => s.split(',').map((t) => t.trim()))]).optional(),
17
+ disallowedTools: z
18
+ .union([z.array(z.string()), z.string().transform((s) => s.split(',').map((t) => t.trim()))])
19
+ .optional(),
23
20
  maxTurns: z.number().positive().optional(),
24
21
  timeout: z.number().positive().optional(),
25
22
  costBudget: z.number().positive().optional(),
@@ -29,7 +26,8 @@ export const AgentFrontmatterSchema = z.object({
29
26
  outputFormat: OutputFormatSchema,
30
27
  mcp: z.array(z.string()).optional(),
31
28
  worktree: z.boolean().optional(),
32
- }).passthrough(); // Allow unknown fields for forward compatibility
29
+ })
30
+ .passthrough(); // Allow unknown fields for forward compatibility
33
31
  // ─── Template Schema ──────────────────────────────────────────
34
32
  export const TemplateParameterSchema = z.object({
35
33
  type: z.enum(['string', 'number', 'boolean']),
@@ -50,7 +48,8 @@ export const TemplateVerificationSchema = z.object({
50
48
  command: z.string(),
51
49
  optional: z.boolean().default(false),
52
50
  });
53
- export const TemplateConfigSchema = z.object({
51
+ export const TemplateConfigSchema = z
52
+ .object({
54
53
  name: z.string().min(1, 'Template name is required'),
55
54
  description: z.string(),
56
55
  parameters: z.record(z.string(), TemplateParameterSchema).default({}),
@@ -60,5 +59,6 @@ export const TemplateConfigSchema = z.object({
60
59
  verification: z.array(TemplateVerificationSchema).optional(),
61
60
  success_criteria: z.array(z.string()).optional(),
62
61
  tags: z.array(z.string()).optional(),
63
- }).passthrough();
62
+ })
63
+ .passthrough();
64
64
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtG,wBAAgB,cAAc,IAAI,YAAY,CAU7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAIvC;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,OAAO,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAA0C;AAC5E,wBAAgB,OAAO,IAAI,OAAO,CAAyC;AAC3E,wBAAgB,SAAS,IAAI,OAAO,CAAyC;AAE7E;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB1E"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEtG,wBAAgB,cAAc,IAAI,YAAY,CAU7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK5C;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAIvC;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,OAAO,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AACD,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AACD,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB1E"}
@@ -51,9 +51,15 @@ export function isCI() {
51
51
  /**
52
52
  * Platform detection.
53
53
  */
54
- export function isMacOS() { return process.platform === 'darwin'; }
55
- export function isLinux() { return process.platform === 'linux'; }
56
- export function isWindows() { return process.platform === 'win32'; }
54
+ export function isMacOS() {
55
+ return process.platform === 'darwin';
56
+ }
57
+ export function isLinux() {
58
+ return process.platform === 'linux';
59
+ }
60
+ export function isWindows() {
61
+ return process.platform === 'win32';
62
+ }
57
63
  /**
58
64
  * Send a desktop notification (cross-platform).
59
65
  */
@@ -65,10 +71,15 @@ export async function notify(title, message) {
65
71
  if (isMacOS()) {
66
72
  // Use execFile with argument array — prevents shell injection
67
73
  await execFileAsync('osascript', [
68
- '-e', 'on run argv',
69
- '-e', 'display notification (item 1 of argv) with title (item 2 of argv)',
70
- '-e', 'end run',
71
- '--', message, title,
74
+ '-e',
75
+ 'on run argv',
76
+ '-e',
77
+ 'display notification (item 1 of argv) with title (item 2 of argv)',
78
+ '-e',
79
+ 'end run',
80
+ '--',
81
+ message,
82
+ title,
72
83
  ]);
73
84
  }
74
85
  else if (isLinux()) {
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,UAAU,cAAc;IAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,SAAS;QAAE,OAAO,kBAAkB,CAAC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,gEAAgE;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACnD,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,KAAc,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;AAC5E,MAAM,UAAU,OAAO,KAAc,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;AAC3E,MAAM,UAAU,SAAS,KAAc,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC;AAE7E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,OAAe;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,IAAI,OAAO,EAAE,EAAE,CAAC;YACd,8DAA8D;YAC9D,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC/B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,mEAAmE;gBACzE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO,EAAE,KAAK;aACrB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,EAAE,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/utils/terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,UAAU,cAAc;IAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,SAAS;QAAE,OAAO,kBAAkB,CAAC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,gEAAgE;IAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACnD,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC9G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC;AACD,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,OAAe;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,IAAI,OAAO,EAAE,EAAE,CAAC;YACd,8DAA8D;YAC9D,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC/B,IAAI;gBACJ,aAAa;gBACb,IAAI;gBACJ,mEAAmE;gBACnE,IAAI;gBACJ,SAAS;gBACT,IAAI;gBACJ,OAAO;gBACP,KAAK;aACN,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,EAAE,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../../src/utils/tiers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;AA6BjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAO7C;AASD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAGrE"}
1
+ {"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../../src/utils/tiers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,WAAW,CAAC;AA6BjD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAqB7C;AASD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAGrE"}
@@ -8,7 +8,7 @@ const MODEL_TIERS = {
8
8
  'gpt-4o-mini': 'cheap',
9
9
  'gpt-4o': 'mid',
10
10
  'gpt-4.1': 'mid',
11
- 'o3': 'expensive',
11
+ o3: 'expensive',
12
12
  'o4-mini': 'cheap',
13
13
  // Google
14
14
  'gemini-2.5-flash': 'cheap',
@@ -29,17 +29,25 @@ export function inferTier(model) {
29
29
  return MODEL_TIERS[model];
30
30
  // Heuristic: check for keywords
31
31
  const lower = model.toLowerCase();
32
- if (lower.includes('haiku') || lower.includes('mini') || lower.includes('flash') || lower.includes('small') || lower.includes('instant'))
32
+ if (lower.includes('haiku') ||
33
+ lower.includes('mini') ||
34
+ lower.includes('flash') ||
35
+ lower.includes('small') ||
36
+ lower.includes('instant'))
33
37
  return 'cheap';
34
- if (lower.includes('opus') || lower.includes('pro') || lower.includes('large') || lower.includes('o3') || lower.includes('grok-3'))
38
+ if (lower.includes('opus') ||
39
+ lower.includes('pro') ||
40
+ lower.includes('large') ||
41
+ lower.includes('o3') ||
42
+ lower.includes('grok-3'))
35
43
  return 'expensive';
36
44
  return 'mid'; // default
37
45
  }
38
46
  // Expand old shorthand values to full model names
39
47
  const LEGACY_MODEL_MAP = {
40
- 'haiku': 'claude-haiku-4-5-20251001',
41
- 'sonnet': 'claude-sonnet-4-6',
42
- 'opus': 'claude-opus-4-6',
48
+ haiku: 'claude-haiku-4-5-20251001',
49
+ sonnet: 'claude-sonnet-4-6',
50
+ opus: 'claude-opus-4-6',
43
51
  };
44
52
  export function resolveModel(model) {
45
53
  return LEGACY_MODEL_MAP[model] ?? model;
@@ -1 +1 @@
1
- {"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../src/utils/tiers.ts"],"names":[],"mappings":"AAEA,+BAA+B;AAC/B,MAAM,WAAW,GAAyB;IACxC,SAAS;IACT,2BAA2B,EAAE,OAAO;IACpC,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,WAAW;IAC9B,SAAS;IACT,aAAa,EAAE,OAAO;IACtB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,OAAO;IAClB,SAAS;IACT,kBAAkB,EAAE,OAAO;IAC3B,gBAAgB,EAAE,WAAW;IAC7B,UAAU;IACV,sBAAsB,EAAE,OAAO;IAC/B,uBAAuB,EAAE,KAAK;IAC9B,sBAAsB,EAAE,WAAW;IACnC,OAAO;IACP,sBAAsB,EAAE,OAAO;IAC/B,yBAAyB,EAAE,WAAW;IACtC,MAAM;IACN,aAAa,EAAE,OAAO;IACtB,QAAQ,EAAE,WAAW;CACtB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAClD,gCAAgC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IACzJ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,WAAW,CAAC;IACvJ,OAAO,KAAK,CAAC,CAAC,UAAU;AAC1B,CAAC;AAED,kDAAkD;AAClD,MAAM,gBAAgB,GAA2B;IAC/C,OAAO,EAAE,2BAA2B;IACpC,QAAQ,EAAE,mBAAmB;IAC7B,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAuC;IAC7D,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACpC,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"tiers.js","sourceRoot":"","sources":["../../src/utils/tiers.ts"],"names":[],"mappings":"AAEA,+BAA+B;AAC/B,MAAM,WAAW,GAAyB;IACxC,SAAS;IACT,2BAA2B,EAAE,OAAO;IACpC,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,WAAW;IAC9B,SAAS;IACT,aAAa,EAAE,OAAO;IACtB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,KAAK;IAChB,EAAE,EAAE,WAAW;IACf,SAAS,EAAE,OAAO;IAClB,SAAS;IACT,kBAAkB,EAAE,OAAO;IAC3B,gBAAgB,EAAE,WAAW;IAC7B,UAAU;IACV,sBAAsB,EAAE,OAAO;IAC/B,uBAAuB,EAAE,KAAK;IAC9B,sBAAsB,EAAE,WAAW;IACnC,OAAO;IACP,sBAAsB,EAAE,OAAO;IAC/B,yBAAyB,EAAE,WAAW;IACtC,MAAM;IACN,aAAa,EAAE,OAAO;IACtB,QAAQ,EAAE,WAAW;CACtB,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAClD,gCAAgC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IACE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAEzB,OAAO,OAAO,CAAC;IACjB,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAExB,OAAO,WAAW,CAAC;IACrB,OAAO,KAAK,CAAC,CAAC,UAAU;AAC1B,CAAC;AAED,kDAAkD;AAClD,MAAM,gBAAgB,GAA2B;IAC/C,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,mBAAmB;IAC3B,IAAI,EAAE,iBAAiB;CACxB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAuC;IAC7D,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACpC,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swarm-engine",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Multi-agent orchestration for AI coding tools — your agents, orchestrated",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,20 +26,31 @@
26
26
  "test": "vitest",
27
27
  "test:run": "vitest run",
28
28
  "lint": "tsc --noEmit",
29
+ "format": "prettier --write 'src/**/*.ts' 'tests/**/*.ts'",
30
+ "format:check": "prettier --check 'src/**/*.ts' 'tests/**/*.ts'",
29
31
  "start": "node dist/cli/index.js",
30
32
  "prepublishOnly": "npm run build"
31
33
  },
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js"
38
+ }
39
+ },
32
40
  "dependencies": {
33
41
  "@anthropic-ai/claude-agent-sdk": "^0.2.90",
34
42
  "better-sqlite3": "^12.8.0",
35
43
  "chalk": "^5.3.0",
36
44
  "commander": "^12.0.0",
37
- "js-yaml": "^4.1.1"
45
+ "js-yaml": "^4.1.1",
46
+ "zod": "^4.3.6"
38
47
  },
39
48
  "devDependencies": {
40
49
  "@types/better-sqlite3": "^7.6.13",
41
50
  "@types/js-yaml": "^4.0.9",
42
51
  "@types/node": "^22.0.0",
52
+ "@vitest/coverage-v8": "^3.2.4",
53
+ "prettier": "^3.8.1",
43
54
  "tsx": "^4.0.0",
44
55
  "typescript": "^5.7.0",
45
56
  "vitest": "^3.0.0"
@@ -66,5 +77,5 @@
66
77
  "homepage": "https://github.com/simoncoombes/swarm-engine",
67
78
  "bugs": "https://github.com/simoncoombes/swarm-engine/issues",
68
79
  "license": "MIT",
69
- "author": "Simon Coombes <simon@unstructured.io>"
80
+ "author": "Simon Coombes <simon@coombes.io>"
70
81
  }
@@ -9,77 +9,145 @@ description: |
9
9
 
10
10
  # Swarm Output Style Guide
11
11
 
12
- ## Plan Presentation
12
+ All orchestration output follows this guide. The goal: the user should always know what's happening, what it costs, and what to do next.
13
13
 
14
- When presenting an orchestration plan, use this format:
14
+ ## 1. Pre-flight Plan (MANDATORY before any agent spawns)
15
+
16
+ Show this BEFORE creating any team or spawning any agent. The user must approve before tokens are spent.
15
17
 
16
18
  ```
17
19
  ## Orchestration Plan
18
20
 
19
21
  **Task**: [1-line description]
20
- **Pattern**: [pattern name]
21
- **Agents**: [count] | **Phases**: [count] | **Est. cost**: ~$[amount]
22
+ **Pattern**: [pattern name] | **Phases**: [N] | **Agents**: [N] | **Est. cost**: ~$[amount] | **Est. time**: ~[duration]
23
+
24
+ ### Phase 1: [Name] -- [parallel/sequential] (~[time], ~$[cost])
25
+ | Agent | Model | Focus |
26
+ |-------|-------|-------|
27
+ | `agent-name` | [model] | [what this agent will do] |
28
+
29
+ ### Phase 2: [Name] -- [parallel/sequential] (~[time], ~$[cost])
30
+ | Agent | Model | Focus |
31
+ |-------|-------|-------|
32
+ | `agent-name` | [model] | [what this agent will do] |
22
33
 
23
- ### Phase 1: [Name] — parallel
24
- | Agent | Role | Model | Focus |
25
- |-------|------|-------|-------|
26
- | `name` | type | model | what they do |
34
+ [repeat for all phases]
27
35
 
28
- ### Phase 2: [Name] — sequential (depends on Phase 1)
29
- | Agent | Role | Model | Focus |
30
- |-------|------|-------|-------|
31
- | `name` | type | model | what they do |
36
+ Proceed?
32
37
  ```
33
38
 
34
- ## Progress Updates
39
+ Cost estimates use these rough defaults per agent type:
40
+ - Researcher (mid tier): ~5K tokens, ~$0.04
41
+ - Implementer (expensive tier): ~15K tokens, ~$0.19
42
+ - Reviewer (expensive tier): ~8K tokens, ~$0.10
43
+ - Tester (expensive tier): ~10K tokens, ~$0.13
44
+ - Debugger (expensive tier): ~12K tokens, ~$0.15
45
+
46
+ ## 2. Phase Transition Banners
47
+
48
+ At the start of each phase, show a clear banner with running totals:
35
49
 
36
- Keep compact. One line per agent with status:
37
50
  ```
38
- agent-name [working] current action
39
- agent-name [done] completed in 12s
40
- agent-name [idle] waiting for Phase 2
51
+ ---
52
+ **Phase [N] / [total]: [Name]** -- [N] agent(s) [parallel/sequential]
53
+ Running total: ~$[amount] | [elapsed] elapsed
41
54
  ```
42
55
 
43
- Do NOT dump raw agent output into progress updates. Summarize.
56
+ ## 3. Agent Completion Lines
44
57
 
45
- ## Agent Reports
58
+ As each agent finishes, append a single line:
46
59
 
47
- Each agent includes a Meta block. When aggregating:
48
- - Lead with the overall result (pass/fail/concerns)
49
- - Group findings by severity (critical > important > suggestion)
50
- - Include file:line references
51
- - Keep it scannable — bullet points, not paragraphs
60
+ ```
61
+ `agent-name` [done] [duration] | ~[tokens] tokens | [1-line summary of what they found/did]
62
+ ```
52
63
 
53
- ## Final Summary
64
+ If an agent errors:
54
65
 
55
66
  ```
56
- ## Summary
67
+ `agent-name` [error] [duration] | [1-line error description]
68
+ ```
69
+
70
+ Do NOT dump raw agent output. Summarize the key finding in one line.
57
71
 
58
- **Status**: [COMPLETE / NEEDS CHANGES / FAILED]
72
+ ## 4. Phase Summary (between phases)
59
73
 
60
- ### What was done
61
- - [bullet points]
74
+ After all agents in a phase complete, summarize before moving on:
62
75
 
63
- ### Key decisions
64
- - [bullet points]
76
+ ```
77
+ **Phase [N] complete** -- [duration] | ~[tokens] tokens | ~$[cost]
78
+
79
+ Key findings:
80
+ - [finding 1 with file:line reference if applicable]
81
+ - [finding 2]
82
+
83
+ Proceeding to Phase [N+1] -- [name]
84
+ ```
85
+
86
+ Only ask for explicit approval at the Research-to-Implement transition (where cost jumps). Other transitions proceed automatically.
87
+
88
+ ## 5. Error Recovery (when agents fail or return low confidence)
89
+
90
+ Surface structured options, don't just stop:
91
+
92
+ ```
93
+ **Agent issue**: `agent-name` -- [description of problem]
65
94
 
66
- ### Metrics
67
- Agents: [N] | Phases: [N] | Duration: [time] | Est. cost: ~$[amount]
95
+ Options:
96
+ 1. **Retry** with [adjusted parameters]
97
+ 2. **Skip** and proceed to next phase
98
+ 3. **Abort** orchestration
99
+
100
+ Choice (1-3) or describe a different approach >
101
+ ```
102
+
103
+ For low-confidence results:
104
+
105
+ ```
106
+ **Low confidence**: `agent-name` flagged uncertainty about [specific thing]
107
+
108
+ Options:
109
+ 1. **Accept** and note as a risk
110
+ 2. **Spawn** a targeted agent to investigate further
111
+ 3. **Flag** for manual review in the summary
112
+ ```
113
+
114
+ ## 6. Post-Completion Summary (MANDATORY)
115
+
116
+ ```
117
+ ---
118
+ ## Orchestration Complete -- [PASS / NEEDS ATTENTION / FAILED]
119
+
120
+ **Pattern**: [name] | **Phases**: [N] | **Agents**: [N] | **Duration**: [time]
121
+ **Tokens**: ~[total] | **Cost**: ~$[amount]
122
+
123
+ ### What Changed
124
+ [List files with brief descriptions. Include `git diff --stat` output if available.]
125
+
126
+ ### Review Gate: [PASS / FAIL] ([Nth] iteration)
127
+ | Reviewer | Result | Findings |
128
+ |----------|--------|----------|
129
+ | [name] | PASS/FAIL | [count] critical, [count] important, [count] suggestions |
130
+
131
+ ### Suggestions (non-blocking)
132
+ - [suggestion with reviewer attribution]
133
+
134
+ ### Knowledge Stored
135
+ - [what was saved to memory, if anything]
136
+
137
+ ---
138
+ **Next steps:**
139
+ - Review changes: `git diff HEAD`
140
+ - Run tests: `npm test` (or project equivalent)
141
+ - Run verification: type `/verify`
68
142
  ```
69
143
 
70
144
  ## Anti-Patterns (DO NOT)
71
145
 
146
+ - Do NOT spawn agents before showing the pre-flight plan
72
147
  - Do NOT dump raw agent transcripts into the summary
73
- - Do NOT use emoji in structured output (alignment issues in terminals)
74
- - Do NOT repeat the original task description in every status update
75
- - Do NOT show agent Meta blocks to the user synthesize them
76
- - Do NOT use vague language ("various improvements") be specific
77
- - Do NOT include timestamps in every line only in the activity feed
78
-
79
- ## Color Conventions (for terminal output)
80
-
81
- When outputting to terminal:
82
- - **Bold** for section headers
83
- - Agent names in their role color (blue=researcher, green=implementer, yellow=reviewer)
84
- - Status badges: `[working]` `[done]` `[idle]` `[error]`
85
- - Keep lines under 80 characters for terminal compatibility
148
+ - Do NOT use emoji in structured output
149
+ - Do NOT repeat the full task description in every status update
150
+ - Do NOT show agent Meta blocks to the user -- synthesize them
151
+ - Do NOT use vague language ("various improvements") -- be specific
152
+ - Do NOT include timestamps on every line -- only in phase banners
153
+ - Do NOT ask "proceed?" after every phase -- only at Research-to-Implement transition