@monoes/monomindcli 1.18.15 → 2.0.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 (511) hide show
  1. package/.claude/agents/core/researcher.md +29 -24
  2. package/.claude/agents/github/code-review-swarm.md +1 -1
  3. package/.claude/agents/github/github-modes.md +1 -1
  4. package/.claude/agents/github/issue-tracker.md +1 -3
  5. package/.claude/agents/github/multi-repo-swarm.md +1 -1
  6. package/.claude/agents/github/pr-manager.md +1 -3
  7. package/.claude/agents/github/project-board-sync.md +1 -1
  8. package/.claude/agents/github/release-manager.md +1 -1
  9. package/.claude/agents/github/repo-architect.md +4 -12
  10. package/.claude/agents/github/swarm-issue.md +1 -1
  11. package/.claude/agents/github/swarm-pr.md +1 -1
  12. package/.claude/agents/github/sync-coordinator.md +1 -1
  13. package/.claude/agents/github/workflow-automation.md +1 -1
  14. package/.claude/agents/goal/goal-planner.md +1 -2
  15. package/.claude/agents/specialized/specialized-workflow-architect.md +11 -14
  16. package/.claude/agents/testing/production-validator.md +8 -7
  17. package/.claude/agents/testing/testing-evidence-collector.md +3 -1
  18. package/.claude/commands/github/issue-tracker.md +0 -2
  19. package/.claude/commands/github/pr-manager.md +0 -2
  20. package/.claude/commands/github/repo-architect.md +3 -10
  21. package/.claude/commands/mastermind/code-review.md +4 -4
  22. package/.claude/commands/mastermind/help.md +5 -5
  23. package/.claude/commands/mastermind/okf-export.md +14 -0
  24. package/.claude/commands/mastermind/okf-import.md +15 -0
  25. package/.claude/commands/workflows/README.md +0 -1
  26. package/.claude/commands/workflows/workflow-create.md +0 -1
  27. package/.claude/commands/workflows/workflow-execute.md +1 -3
  28. package/.claude/commands/workflows/workflow-export.md +0 -2
  29. package/.claude/helpers/handlers/agent-start-handler.cjs +28 -36
  30. package/.claude/helpers/handlers/capture-handler.cjs +110 -0
  31. package/.claude/helpers/handlers/edit-handler.cjs +15 -0
  32. package/.claude/helpers/handlers/gates-handler.cjs +2 -8
  33. package/.claude/helpers/handlers/route-handler.cjs +314 -245
  34. package/.claude/helpers/handlers/session-handler.cjs +182 -163
  35. package/.claude/helpers/handlers/session-restore-handler.cjs +95 -53
  36. package/.claude/helpers/handlers/task-handler.cjs +17 -160
  37. package/.claude/helpers/hook-handler.cjs +153 -16
  38. package/.claude/helpers/intelligence.cjs +255 -15
  39. package/.claude/helpers/learning-service.mjs +1 -0
  40. package/.claude/helpers/mastermind-activate.cjs +33 -51
  41. package/.claude/helpers/monolean-activate.cjs +13 -3
  42. package/.claude/helpers/monolean-propagate.cjs +7 -3
  43. package/.claude/helpers/router.cjs +122 -11
  44. package/.claude/helpers/skill-registry.json +0 -189
  45. package/.claude/skills/github-toolkit/SKILL.md +60 -0
  46. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -15
  47. package/.claude/skills/hooks-automation/SKILL.md +0 -1
  48. package/.claude/skills/mastermind-skills/_protocol.md +1 -1
  49. package/.claude/skills/mastermind-skills/architect.md +5 -6
  50. package/.claude/skills/mastermind-skills/autodev.md +8 -5
  51. package/.claude/skills/mastermind-skills/build.md +1 -2
  52. package/.claude/skills/mastermind-skills/review.md +8 -5
  53. package/.claude/skills/mastermind-skills/techport.md +37 -3
  54. package/.claude/skills/memory-toolkit/SKILL.md +75 -0
  55. package/.claude/skills/monodesign/document.md +9 -6
  56. package/.claude/skills/monodesign/extract.md +1 -1
  57. package/.claude/skills/monodesign/reference/document.md +1 -1
  58. package/.claude/skills/monodesign/reference/live.md +1 -1
  59. package/.claude/skills/monolean/SKILL.md +1 -1
  60. package/.claude/skills/specialagent/SKILL.md +2 -4
  61. package/.claude/skills/swarm-advanced/SKILL.md +0 -1
  62. package/README.md +2 -5
  63. package/bin/mcp-server.js +11 -1
  64. package/dist/src/autopilot-state.d.ts.map +1 -1
  65. package/dist/src/autopilot-state.js +4 -5
  66. package/dist/src/autopilot-state.js.map +1 -1
  67. package/dist/src/browser/dashboard/server.d.ts.map +1 -1
  68. package/dist/src/browser/dashboard/server.js +69 -1
  69. package/dist/src/browser/dashboard/server.js.map +1 -1
  70. package/dist/src/browser/dashboard/ui.html +214 -1764
  71. package/dist/src/capabilities/index.d.ts +0 -2
  72. package/dist/src/capabilities/index.d.ts.map +1 -1
  73. package/dist/src/capabilities/index.js +0 -1
  74. package/dist/src/capabilities/index.js.map +1 -1
  75. package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
  76. package/dist/src/commands/agent-lifecycle.js +2 -6
  77. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  78. package/dist/src/commands/agent-ops.d.ts +1 -2
  79. package/dist/src/commands/agent-ops.d.ts.map +1 -1
  80. package/dist/src/commands/agent-ops.js +1 -59
  81. package/dist/src/commands/agent-ops.js.map +1 -1
  82. package/dist/src/commands/agent.d.ts.map +1 -1
  83. package/dist/src/commands/agent.js +2 -3
  84. package/dist/src/commands/agent.js.map +1 -1
  85. package/dist/src/commands/analyze-diff.js +1 -1
  86. package/dist/src/commands/analyze-diff.js.map +1 -1
  87. package/dist/src/commands/analyze.d.ts +0 -4
  88. package/dist/src/commands/analyze.d.ts.map +1 -1
  89. package/dist/src/commands/analyze.js +1 -29
  90. package/dist/src/commands/analyze.js.map +1 -1
  91. package/dist/src/commands/browse-action.d.ts.map +1 -1
  92. package/dist/src/commands/browse-action.js +94 -2
  93. package/dist/src/commands/browse-action.js.map +1 -1
  94. package/dist/src/commands/completions.d.ts.map +1 -1
  95. package/dist/src/commands/completions.js +12 -76
  96. package/dist/src/commands/completions.js.map +1 -1
  97. package/dist/src/commands/config.d.ts.map +1 -1
  98. package/dist/src/commands/config.js +0 -6
  99. package/dist/src/commands/config.js.map +1 -1
  100. package/dist/src/commands/doctor-project-checks.d.ts +13 -3
  101. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  102. package/dist/src/commands/doctor-project-checks.js +131 -23
  103. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  104. package/dist/src/commands/doctor.d.ts.map +1 -1
  105. package/dist/src/commands/doctor.js +6 -5
  106. package/dist/src/commands/doctor.js.map +1 -1
  107. package/dist/src/commands/guidance.d.ts +5 -1
  108. package/dist/src/commands/guidance.d.ts.map +1 -1
  109. package/dist/src/commands/guidance.js +11 -556
  110. package/dist/src/commands/guidance.js.map +1 -1
  111. package/dist/src/commands/hive-mind-comms.d.ts.map +1 -1
  112. package/dist/src/commands/hive-mind-comms.js +11 -4
  113. package/dist/src/commands/hive-mind-comms.js.map +1 -1
  114. package/dist/src/commands/hive-mind-helpers.js +2 -2
  115. package/dist/src/commands/hive-mind-helpers.js.map +1 -1
  116. package/dist/src/commands/hive-mind-ops.d.ts +1 -3
  117. package/dist/src/commands/hive-mind-ops.d.ts.map +1 -1
  118. package/dist/src/commands/hive-mind-ops.js +2 -116
  119. package/dist/src/commands/hive-mind-ops.js.map +1 -1
  120. package/dist/src/commands/hive-mind.d.ts +4 -4
  121. package/dist/src/commands/hive-mind.d.ts.map +1 -1
  122. package/dist/src/commands/hive-mind.js +11 -11
  123. package/dist/src/commands/hive-mind.js.map +1 -1
  124. package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -1
  125. package/dist/src/commands/hooks-coverage-commands.js +8 -7
  126. package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
  127. package/dist/src/commands/hooks-coverage-gaps.js +1 -1
  128. package/dist/src/commands/hooks-coverage-gaps.js.map +1 -1
  129. package/dist/src/commands/hooks-coverage-routing.js +2 -2
  130. package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
  131. package/dist/src/commands/hooks-extended-commands.d.ts +0 -3
  132. package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -1
  133. package/dist/src/commands/hooks-extended-commands.js +0 -307
  134. package/dist/src/commands/hooks-extended-commands.js.map +1 -1
  135. package/dist/src/commands/hooks-formatting.d.ts +1 -5
  136. package/dist/src/commands/hooks-formatting.d.ts.map +1 -1
  137. package/dist/src/commands/hooks-formatting.js +1 -18
  138. package/dist/src/commands/hooks-formatting.js.map +1 -1
  139. package/dist/src/commands/hooks-workers.d.ts +1 -1
  140. package/dist/src/commands/hooks-workers.d.ts.map +1 -1
  141. package/dist/src/commands/hooks-workers.js +82 -330
  142. package/dist/src/commands/hooks-workers.js.map +1 -1
  143. package/dist/src/commands/hooks.d.ts.map +1 -1
  144. package/dist/src/commands/hooks.js +1 -12
  145. package/dist/src/commands/hooks.js.map +1 -1
  146. package/dist/src/commands/index.d.ts +2 -55
  147. package/dist/src/commands/index.d.ts.map +1 -1
  148. package/dist/src/commands/index.js +23 -216
  149. package/dist/src/commands/index.js.map +1 -1
  150. package/dist/src/commands/init-wizard.d.ts.map +1 -1
  151. package/dist/src/commands/init-wizard.js +3 -5
  152. package/dist/src/commands/init-wizard.js.map +1 -1
  153. package/dist/src/commands/init.d.ts.map +1 -1
  154. package/dist/src/commands/init.js +4 -24
  155. package/dist/src/commands/init.js.map +1 -1
  156. package/dist/src/commands/mcp.d.ts.map +1 -1
  157. package/dist/src/commands/mcp.js +32 -4
  158. package/dist/src/commands/mcp.js.map +1 -1
  159. package/dist/src/commands/memory-admin.d.ts +1 -2
  160. package/dist/src/commands/memory-admin.d.ts.map +1 -1
  161. package/dist/src/commands/memory-admin.js +1 -118
  162. package/dist/src/commands/memory-admin.js.map +1 -1
  163. package/dist/src/commands/memory-transfer.d.ts +1 -2
  164. package/dist/src/commands/memory-transfer.d.ts.map +1 -1
  165. package/dist/src/commands/memory-transfer.js +5 -171
  166. package/dist/src/commands/memory-transfer.js.map +1 -1
  167. package/dist/src/commands/memory.d.ts.map +1 -1
  168. package/dist/src/commands/memory.js +3 -6
  169. package/dist/src/commands/memory.js.map +1 -1
  170. package/dist/src/commands/neural-core.d.ts +3 -1
  171. package/dist/src/commands/neural-core.d.ts.map +1 -1
  172. package/dist/src/commands/neural-core.js +154 -15
  173. package/dist/src/commands/neural-core.js.map +1 -1
  174. package/dist/src/commands/neural-optimize.d.ts.map +1 -1
  175. package/dist/src/commands/neural-optimize.js +13 -15
  176. package/dist/src/commands/neural-optimize.js.map +1 -1
  177. package/dist/src/commands/neural-registry.d.ts +1 -1
  178. package/dist/src/commands/neural-registry.js +14 -14
  179. package/dist/src/commands/neural-registry.js.map +1 -1
  180. package/dist/src/commands/neural.d.ts +1 -1
  181. package/dist/src/commands/neural.js +6 -6
  182. package/dist/src/commands/neural.js.map +1 -1
  183. package/dist/src/commands/performance.d.ts.map +1 -1
  184. package/dist/src/commands/performance.js +68 -58
  185. package/dist/src/commands/performance.js.map +1 -1
  186. package/dist/src/commands/providers.d.ts.map +1 -1
  187. package/dist/src/commands/providers.js +77 -117
  188. package/dist/src/commands/providers.js.map +1 -1
  189. package/dist/src/commands/search-universal.d.ts +7 -1
  190. package/dist/src/commands/search-universal.d.ts.map +1 -1
  191. package/dist/src/commands/search-universal.js +59 -5
  192. package/dist/src/commands/search-universal.js.map +1 -1
  193. package/dist/src/commands/security-cve.d.ts.map +1 -1
  194. package/dist/src/commands/security-cve.js +3 -5
  195. package/dist/src/commands/security-cve.js.map +1 -1
  196. package/dist/src/commands/security-misc.d.ts +0 -1
  197. package/dist/src/commands/security-misc.d.ts.map +1 -1
  198. package/dist/src/commands/security-misc.js +69 -45
  199. package/dist/src/commands/security-misc.js.map +1 -1
  200. package/dist/src/commands/security.d.ts.map +1 -1
  201. package/dist/src/commands/security.js +2 -4
  202. package/dist/src/commands/security.js.map +1 -1
  203. package/dist/src/commands/session.d.ts.map +1 -1
  204. package/dist/src/commands/session.js +137 -281
  205. package/dist/src/commands/session.js.map +1 -1
  206. package/dist/src/commands/start.d.ts.map +1 -1
  207. package/dist/src/commands/start.js +2 -59
  208. package/dist/src/commands/start.js.map +1 -1
  209. package/dist/src/commands/status.d.ts.map +1 -1
  210. package/dist/src/commands/status.js +18 -29
  211. package/dist/src/commands/status.js.map +1 -1
  212. package/dist/src/commands/swarm.d.ts.map +1 -1
  213. package/dist/src/commands/swarm.js +113 -66
  214. package/dist/src/commands/swarm.js.map +1 -1
  215. package/dist/src/commands/task.d.ts.map +1 -1
  216. package/dist/src/commands/task.js +2 -49
  217. package/dist/src/commands/task.js.map +1 -1
  218. package/dist/src/consensus/audit-writer.d.ts.map +1 -1
  219. package/dist/src/consensus/audit-writer.js +43 -1
  220. package/dist/src/consensus/audit-writer.js.map +1 -1
  221. package/dist/src/consensus/tally.d.ts +19 -0
  222. package/dist/src/consensus/tally.d.ts.map +1 -0
  223. package/dist/src/consensus/tally.js +34 -0
  224. package/dist/src/consensus/tally.js.map +1 -0
  225. package/dist/src/index.d.ts +3 -2
  226. package/dist/src/index.d.ts.map +1 -1
  227. package/dist/src/index.js +13 -9
  228. package/dist/src/index.js.map +1 -1
  229. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  230. package/dist/src/init/claudemd-generator.js +10 -14
  231. package/dist/src/init/claudemd-generator.js.map +1 -1
  232. package/dist/src/init/executor.d.ts.map +1 -1
  233. package/dist/src/init/executor.js +42 -100
  234. package/dist/src/init/executor.js.map +1 -1
  235. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  236. package/dist/src/init/helpers-generator.js +2 -22
  237. package/dist/src/init/helpers-generator.js.map +1 -1
  238. package/dist/src/init/settings-generator.d.ts.map +1 -1
  239. package/dist/src/init/settings-generator.js +0 -13
  240. package/dist/src/init/settings-generator.js.map +1 -1
  241. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  242. package/dist/src/init/statusline-generator.js +62 -0
  243. package/dist/src/init/statusline-generator.js.map +1 -1
  244. package/dist/src/init/types.d.ts +3 -9
  245. package/dist/src/init/types.d.ts.map +1 -1
  246. package/dist/src/init/types.js +0 -5
  247. package/dist/src/init/types.js.map +1 -1
  248. package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
  249. package/dist/src/knowledge/document-pipeline.js +18 -8
  250. package/dist/src/knowledge/document-pipeline.js.map +1 -1
  251. package/dist/src/mcp-client.d.ts.map +1 -1
  252. package/dist/src/mcp-client.js +0 -8
  253. package/dist/src/mcp-client.js.map +1 -1
  254. package/dist/src/mcp-server.d.ts.map +1 -1
  255. package/dist/src/mcp-server.js +14 -0
  256. package/dist/src/mcp-server.js.map +1 -1
  257. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  258. package/dist/src/mcp-tools/agent-tools.js +0 -17
  259. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  260. package/dist/src/mcp-tools/coherence/causal-infer.d.ts +5 -5
  261. package/dist/src/mcp-tools/coherence/causal-infer.d.ts.map +1 -1
  262. package/dist/src/mcp-tools/coherence/causal-infer.js +32 -46
  263. package/dist/src/mcp-tools/coherence/causal-infer.js.map +1 -1
  264. package/dist/src/mcp-tools/coherence/coherence-check.d.ts.map +1 -1
  265. package/dist/src/mcp-tools/coherence/coherence-check.js +1 -19
  266. package/dist/src/mcp-tools/coherence/coherence-check.js.map +1 -1
  267. package/dist/src/mcp-tools/coherence/consensus-verify.d.ts +2 -3
  268. package/dist/src/mcp-tools/coherence/consensus-verify.d.ts.map +1 -1
  269. package/dist/src/mcp-tools/coherence/consensus-verify.js +22 -20
  270. package/dist/src/mcp-tools/coherence/consensus-verify.js.map +1 -1
  271. package/dist/src/mcp-tools/coherence/memory-gate.d.ts +3 -2
  272. package/dist/src/mcp-tools/coherence/memory-gate.d.ts.map +1 -1
  273. package/dist/src/mcp-tools/coherence/memory-gate.js +32 -19
  274. package/dist/src/mcp-tools/coherence/memory-gate.js.map +1 -1
  275. package/dist/src/mcp-tools/coherence/quantum-topology.d.ts +4 -4
  276. package/dist/src/mcp-tools/coherence/quantum-topology.d.ts.map +1 -1
  277. package/dist/src/mcp-tools/coherence/quantum-topology.js +11 -17
  278. package/dist/src/mcp-tools/coherence/quantum-topology.js.map +1 -1
  279. package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts +2 -3
  280. package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts.map +1 -1
  281. package/dist/src/mcp-tools/coherence/spectral-analyze.js +51 -32
  282. package/dist/src/mcp-tools/coherence/spectral-analyze.js.map +1 -1
  283. package/dist/src/mcp-tools/coherence/types.d.ts +8 -11
  284. package/dist/src/mcp-tools/coherence/types.d.ts.map +1 -1
  285. package/dist/src/mcp-tools/coherence/types.js +3 -18
  286. package/dist/src/mcp-tools/coherence/types.js.map +1 -1
  287. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
  288. package/dist/src/mcp-tools/embeddings-tools.js +1 -7
  289. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  290. package/dist/src/mcp-tools/graphify-tools.js +2 -2
  291. package/dist/src/mcp-tools/graphify-tools.js.map +1 -1
  292. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  293. package/dist/src/mcp-tools/guidance-tools.js +9 -19
  294. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  295. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -1
  296. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -1
  297. package/dist/src/mcp-tools/hive-mind-tools.js +198 -40
  298. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  299. package/dist/src/mcp-tools/hooks-advanced.d.ts +18 -0
  300. package/dist/src/mcp-tools/hooks-advanced.d.ts.map +1 -0
  301. package/dist/src/mcp-tools/hooks-advanced.js +25 -0
  302. package/dist/src/mcp-tools/hooks-advanced.js.map +1 -0
  303. package/dist/src/mcp-tools/hooks-intelligence.d.ts +4 -8
  304. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  305. package/dist/src/mcp-tools/hooks-intelligence.js +33 -482
  306. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  307. package/dist/src/mcp-tools/hooks-routing.d.ts +1 -3
  308. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  309. package/dist/src/mcp-tools/hooks-routing.js +96 -202
  310. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  311. package/dist/src/mcp-tools/hooks-synthesis.d.ts +31 -0
  312. package/dist/src/mcp-tools/hooks-synthesis.d.ts.map +1 -0
  313. package/dist/src/mcp-tools/hooks-synthesis.js +196 -0
  314. package/dist/src/mcp-tools/hooks-synthesis.js.map +1 -0
  315. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  316. package/dist/src/mcp-tools/hooks-tools.js +10 -11
  317. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  318. package/dist/src/mcp-tools/index.d.ts +0 -3
  319. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  320. package/dist/src/mcp-tools/index.js +0 -4
  321. package/dist/src/mcp-tools/index.js.map +1 -1
  322. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  323. package/dist/src/mcp-tools/memory-tools.js +24 -9
  324. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  325. package/dist/src/mcp-tools/monograph-tools.d.ts +6 -0
  326. package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
  327. package/dist/src/mcp-tools/monograph-tools.js +370 -95
  328. package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
  329. package/dist/src/mcp-tools/neural-tools.d.ts +8 -9
  330. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -1
  331. package/dist/src/mcp-tools/neural-tools.js +249 -539
  332. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  333. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  334. package/dist/src/mcp-tools/performance-tools.js +5 -17
  335. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  336. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +2 -2
  337. package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +1 -1
  338. package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +4 -4
  339. package/dist/src/mcp-tools/quality-tools.d.ts +7 -2
  340. package/dist/src/mcp-tools/quality-tools.d.ts.map +1 -1
  341. package/dist/src/mcp-tools/quality-tools.js +7 -257
  342. package/dist/src/mcp-tools/quality-tools.js.map +1 -1
  343. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
  344. package/dist/src/mcp-tools/security-tools.js +103 -0
  345. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  346. package/dist/src/memory/intelligence.d.ts +9 -9
  347. package/dist/src/memory/intelligence.d.ts.map +1 -1
  348. package/dist/src/memory/intelligence.js +71 -59
  349. package/dist/src/memory/intelligence.js.map +1 -1
  350. package/dist/src/memory/memory-bridge.d.ts +1 -0
  351. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  352. package/dist/src/memory/memory-bridge.js +47 -5
  353. package/dist/src/memory/memory-bridge.js.map +1 -1
  354. package/dist/src/memory/memory-read.d.ts.map +1 -1
  355. package/dist/src/memory/memory-read.js +1 -19
  356. package/dist/src/memory/memory-read.js.map +1 -1
  357. package/dist/src/suggest.d.ts.map +1 -1
  358. package/dist/src/suggest.js +1 -12
  359. package/dist/src/suggest.js.map +1 -1
  360. package/dist/src/transfer/store/discovery.d.ts +3 -2
  361. package/dist/src/transfer/store/discovery.d.ts.map +1 -1
  362. package/dist/src/transfer/store/discovery.js +22 -70
  363. package/dist/src/transfer/store/discovery.js.map +1 -1
  364. package/dist/src/update/checker.d.ts.map +1 -1
  365. package/dist/src/update/checker.js +0 -1
  366. package/dist/src/update/checker.js.map +1 -1
  367. package/dist/src/utils/cosine-similarity.d.ts +22 -0
  368. package/dist/src/utils/cosine-similarity.d.ts.map +1 -0
  369. package/dist/src/utils/cosine-similarity.js +38 -0
  370. package/dist/src/utils/cosine-similarity.js.map +1 -0
  371. package/dist/src/utils/input-guards.d.ts +51 -0
  372. package/dist/src/utils/input-guards.d.ts.map +1 -0
  373. package/dist/src/utils/input-guards.js +223 -0
  374. package/dist/src/utils/input-guards.js.map +1 -0
  375. package/dist/src/utils/json-file.d.ts +33 -0
  376. package/dist/src/utils/json-file.d.ts.map +1 -0
  377. package/dist/src/utils/json-file.js +57 -0
  378. package/dist/src/utils/json-file.js.map +1 -0
  379. package/dist/tsconfig.tsbuildinfo +1 -1
  380. package/package.json +9 -6
  381. package/scripts/sync-claude-assets.sh +16 -20
  382. package/.claude/agents/generated/case-analyst.md +0 -50
  383. package/.claude/agents/generated/channel-intelligence-director.md +0 -87
  384. package/.claude/agents/generated/chief-growth-officer.md +0 -88
  385. package/.claude/agents/generated/churn-analyst.md +0 -53
  386. package/.claude/agents/generated/code-reviewer.md +0 -55
  387. package/.claude/agents/generated/code-validator.md +0 -57
  388. package/.claude/agents/generated/complexity-scanner.md +0 -56
  389. package/.claude/agents/generated/content-seo-strategist.md +0 -90
  390. package/.claude/agents/generated/copy-editor.md +0 -45
  391. package/.claude/agents/generated/court-reporter.md +0 -50
  392. package/.claude/agents/generated/defender.md +0 -51
  393. package/.claude/agents/generated/devbot-orchestrator.md +0 -58
  394. package/.claude/agents/generated/devbot-planner.md +0 -63
  395. package/.claude/agents/generated/developer-community-strategist.md +0 -91
  396. package/.claude/agents/generated/editor-in-chief.md +0 -45
  397. package/.claude/agents/generated/fact-checker.md +0 -45
  398. package/.claude/agents/generated/impact-assessor.md +0 -54
  399. package/.claude/agents/generated/judge.md +0 -51
  400. package/.claude/agents/generated/outreach-partnership-strategist.md +0 -90
  401. package/.claude/agents/generated/prosecutor.md +0 -51
  402. package/.claude/agents/generated/reporter.md +0 -45
  403. package/.claude/agents/generated/social-media-strategist.md +0 -91
  404. package/.claude/agents/generated/video-visual-strategist.md +0 -90
  405. package/.claude/agents/reengineer-squad/boss.md +0 -113
  406. package/.claude/agents/reengineer-squad/critic-architect.md +0 -132
  407. package/.claude/agents/reengineer-squad/git-manager.md +0 -145
  408. package/.claude/agents/reengineer-squad/idea-generator.md +0 -95
  409. package/.claude/agents/reengineer-squad/implementer.md +0 -112
  410. package/.claude/agents/reengineer-squad/integration-planner.md +0 -112
  411. package/.claude/agents/reengineer-squad/source-analyst.md +0 -103
  412. package/.claude/agents/reengineer-squad/target-analyst.md +0 -118
  413. package/.claude/agents/reengineer-squad/tester.md +0 -105
  414. package/.claude/agents/sparc/architecture.md +0 -453
  415. package/.claude/agents/sparc/pseudocode.md +0 -299
  416. package/.claude/agents/sparc/refinement.md +0 -504
  417. package/.claude/agents/sparc/specification.md +0 -258
  418. package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  419. package/.claude/commands/sparc/analyzer.md +0 -35
  420. package/.claude/commands/sparc/architect.md +0 -36
  421. package/.claude/commands/sparc/ask.md +0 -56
  422. package/.claude/commands/sparc/batch-executor.md +0 -37
  423. package/.claude/commands/sparc/code.md +0 -48
  424. package/.claude/commands/sparc/coder.md +0 -37
  425. package/.claude/commands/sparc/debug.md +0 -42
  426. package/.claude/commands/sparc/debugger.md +0 -37
  427. package/.claude/commands/sparc/designer.md +0 -36
  428. package/.claude/commands/sparc/devops.md +0 -68
  429. package/.claude/commands/sparc/docs-writer.md +0 -39
  430. package/.claude/commands/sparc/documenter.md +0 -37
  431. package/.claude/commands/sparc/innovator.md +0 -37
  432. package/.claude/commands/sparc/integration.md +0 -42
  433. package/.claude/commands/sparc/mcp.md +0 -76
  434. package/.claude/commands/sparc/memory-manager.md +0 -57
  435. package/.claude/commands/sparc/optimizer.md +0 -37
  436. package/.claude/commands/sparc/orchestrator.md +0 -70
  437. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  438. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  439. package/.claude/commands/sparc/researcher.md +0 -37
  440. package/.claude/commands/sparc/reviewer.md +0 -37
  441. package/.claude/commands/sparc/security-review.md +0 -39
  442. package/.claude/commands/sparc/sparc-modes.md +0 -120
  443. package/.claude/commands/sparc/sparc.md +0 -71
  444. package/.claude/commands/sparc/spec-pseudocode.md +0 -39
  445. package/.claude/commands/sparc/supabase-admin.md +0 -301
  446. package/.claude/commands/sparc/swarm-coordinator.md +0 -50
  447. package/.claude/commands/sparc/tdd.md +0 -37
  448. package/.claude/commands/sparc/tester.md +0 -37
  449. package/.claude/commands/sparc/tutorial.md +0 -38
  450. package/.claude/commands/sparc/workflow-manager.md +0 -37
  451. package/.claude/commands/sparc.md +0 -112
  452. package/.claude/helpers/auto-memory-hook.mjs +0 -503
  453. package/.claude/skills/sparc-methodology/SKILL.md +0 -950
  454. package/dist/src/capabilities/enrichment.d.ts +0 -44
  455. package/dist/src/capabilities/enrichment.d.ts.map +0 -1
  456. package/dist/src/capabilities/enrichment.js +0 -141
  457. package/dist/src/capabilities/enrichment.js.map +0 -1
  458. package/dist/src/commands/analyze-boundaries.d.ts +0 -14
  459. package/dist/src/commands/analyze-boundaries.d.ts.map +0 -1
  460. package/dist/src/commands/analyze-boundaries.js +0 -295
  461. package/dist/src/commands/analyze-boundaries.js.map +0 -1
  462. package/dist/src/commands/analyze-graph.d.ts +0 -14
  463. package/dist/src/commands/analyze-graph.d.ts.map +0 -1
  464. package/dist/src/commands/analyze-graph.js +0 -304
  465. package/dist/src/commands/analyze-graph.js.map +0 -1
  466. package/dist/src/commands/claims.d.ts +0 -10
  467. package/dist/src/commands/claims.d.ts.map +0 -1
  468. package/dist/src/commands/claims.js +0 -650
  469. package/dist/src/commands/claims.js.map +0 -1
  470. package/dist/src/commands/daemon.d.ts +0 -8
  471. package/dist/src/commands/daemon.d.ts.map +0 -1
  472. package/dist/src/commands/daemon.js +0 -681
  473. package/dist/src/commands/daemon.js.map +0 -1
  474. package/dist/src/commands/deployment.d.ts +0 -10
  475. package/dist/src/commands/deployment.d.ts.map +0 -1
  476. package/dist/src/commands/deployment.js +0 -706
  477. package/dist/src/commands/deployment.js.map +0 -1
  478. package/dist/src/commands/enrich.d.ts +0 -10
  479. package/dist/src/commands/enrich.d.ts.map +0 -1
  480. package/dist/src/commands/enrich.js +0 -58
  481. package/dist/src/commands/enrich.js.map +0 -1
  482. package/dist/src/commands/issues.d.ts +0 -21
  483. package/dist/src/commands/issues.d.ts.map +0 -1
  484. package/dist/src/commands/issues.js +0 -575
  485. package/dist/src/commands/issues.js.map +0 -1
  486. package/dist/src/commands/workflow.d.ts +0 -8
  487. package/dist/src/commands/workflow.d.ts.map +0 -1
  488. package/dist/src/commands/workflow.js +0 -677
  489. package/dist/src/commands/workflow.js.map +0 -1
  490. package/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  491. package/dist/src/mcp-tools/workflow-tools.d.ts.map +0 -1
  492. package/dist/src/mcp-tools/workflow-tools.js +0 -717
  493. package/dist/src/mcp-tools/workflow-tools.js.map +0 -1
  494. package/dist/src/services/claim-service.d.ts +0 -198
  495. package/dist/src/services/claim-service.d.ts.map +0 -1
  496. package/dist/src/services/claim-service.js +0 -890
  497. package/dist/src/services/claim-service.js.map +0 -1
  498. package/dist/src/services/headless-worker-executor.d.ts +0 -311
  499. package/dist/src/services/headless-worker-executor.d.ts.map +0 -1
  500. package/dist/src/services/headless-worker-executor.js +0 -1183
  501. package/dist/src/services/headless-worker-executor.js.map +0 -1
  502. package/dist/src/services/worker-daemon.d.ts +0 -248
  503. package/dist/src/services/worker-daemon.d.ts.map +0 -1
  504. package/dist/src/services/worker-daemon.js +0 -1417
  505. package/dist/src/services/worker-daemon.js.map +0 -1
  506. package/dist/src/ui/.monomind/capture/active-run.json +0 -1
  507. package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.convs.jsonl +0 -3
  508. package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/real-events-1782290897.jsonl +0 -11
  509. package/dist/src/ui/.monomind/orgs/system-trial-qa/runs/rigid-qa-restart-1782288201.jsonl +0 -540
  510. package/dist/src/ui/.monomind/orgs/system-trial-qa-threads.jsonl +0 -3
  511. package/dist/src/ui/.monomind/orgs/test-event-fix/runs/rigid-qa-restart-1782288201.jsonl +0 -2
@@ -1,677 +0,0 @@
1
- /**
2
- * CLI Workflow Command
3
- * Workflow execution, validation, and template management
4
- */
5
- import { output } from '../output.js';
6
- import { select, confirm } from '../prompt.js';
7
- import { callMCPTool, MCPClientError } from '../mcp-client.js';
8
- // Workflow templates
9
- const WORKFLOW_TEMPLATES = [
10
- { value: 'development', label: 'Development', hint: 'Standard development workflow' },
11
- { value: 'research', label: 'Research', hint: 'Research and analysis workflow' },
12
- { value: 'testing', label: 'Testing', hint: 'Comprehensive testing workflow' },
13
- { value: 'security-audit', label: 'Security Audit', hint: 'Security review workflow' },
14
- { value: 'code-review', label: 'Code Review', hint: 'Multi-agent code review' },
15
- { value: 'refactoring', label: 'Refactoring', hint: 'Code refactoring workflow' },
16
- { value: 'sparc', label: 'SPARC', hint: 'SPARC methodology workflow' },
17
- { value: 'custom', label: 'Custom', hint: 'Define custom workflow' }
18
- ];
19
- // Run subcommand
20
- const runCommand = {
21
- name: 'run',
22
- description: 'Execute a workflow',
23
- options: [
24
- {
25
- name: 'template',
26
- short: 't',
27
- description: 'Workflow template',
28
- type: 'string',
29
- choices: WORKFLOW_TEMPLATES.map(t => t.value)
30
- },
31
- {
32
- name: 'file',
33
- short: 'f',
34
- description: 'Workflow definition file (YAML/JSON)',
35
- type: 'string'
36
- },
37
- {
38
- name: 'task',
39
- description: 'Task description',
40
- type: 'string'
41
- },
42
- {
43
- name: 'parallel',
44
- short: 'p',
45
- description: 'Enable parallel execution',
46
- type: 'boolean',
47
- default: true
48
- },
49
- {
50
- name: 'max-agents',
51
- short: 'm',
52
- description: 'Maximum agents to spawn',
53
- type: 'number',
54
- default: 5
55
- },
56
- {
57
- name: 'timeout',
58
- description: 'Workflow timeout in minutes',
59
- type: 'number',
60
- default: 30
61
- },
62
- {
63
- name: 'dry-run',
64
- short: 'd',
65
- description: 'Validate without executing',
66
- type: 'boolean',
67
- default: false
68
- }
69
- ],
70
- examples: [
71
- { command: 'monomind workflow run -t development --task "Build auth system"', description: 'Run development workflow' },
72
- { command: 'monomind workflow run -f ./workflow.yaml', description: 'Run from file' },
73
- { command: 'monomind workflow run -t sparc --dry-run', description: 'Validate SPARC workflow' }
74
- ],
75
- action: async (ctx) => {
76
- let template = ctx.flags.template;
77
- const rawFile = ctx.flags.file;
78
- const rawTask = ctx.flags.task || ctx.args[0];
79
- const parallel = ctx.flags.parallel;
80
- const rawMaxAgents = ctx.flags['max-agents'];
81
- const rawTimeout = ctx.flags.timeout;
82
- const dryRun = ctx.flags['dry-run'];
83
- // Cap/validate inputs to prevent DoS and injection
84
- const task = typeof rawTask === 'string' ? rawTask.slice(0, 4000) : undefined;
85
- const maxAgents = typeof rawMaxAgents === 'number' && Number.isFinite(rawMaxAgents)
86
- ? Math.max(1, Math.min(Math.floor(rawMaxAgents), 50))
87
- : 5;
88
- const timeout = typeof rawTimeout === 'number' && Number.isFinite(rawTimeout)
89
- ? Math.max(1, Math.min(Math.floor(rawTimeout), 1440))
90
- : 30;
91
- // Validate file path to prevent path traversal when a file is given
92
- let file;
93
- if (rawFile) {
94
- const pathMod = await import('path');
95
- const effectiveCwd = ctx.cwd || process.cwd();
96
- const absFile = pathMod.isAbsolute(rawFile) ? rawFile : pathMod.resolve(effectiveCwd, rawFile);
97
- const resolvedFile = pathMod.resolve(absFile);
98
- const resolvedCwd = pathMod.resolve(effectiveCwd);
99
- if (!resolvedFile.startsWith(resolvedCwd + pathMod.sep) && resolvedFile !== resolvedCwd) {
100
- output.printError('Workflow file path must be within the working directory.');
101
- return { success: false, exitCode: 1 };
102
- }
103
- file = resolvedFile;
104
- }
105
- if (!template && !file && ctx.interactive) {
106
- template = await select({
107
- message: 'Select workflow template:',
108
- options: WORKFLOW_TEMPLATES
109
- });
110
- }
111
- if (!template && !file) {
112
- output.printError('Workflow template or file is required. Use --template or --file');
113
- return { success: false, exitCode: 1 };
114
- }
115
- output.writeln();
116
- if (dryRun) {
117
- output.writeln(output.warning('DRY RUN MODE - No changes will be made'));
118
- }
119
- output.writeln(output.bold(`Workflow: ${template || file}`));
120
- output.writeln();
121
- const spinner = output.createSpinner({ text: 'Initializing workflow...', spinner: 'dots' });
122
- try {
123
- spinner.start();
124
- // Call MCP tool to run workflow
125
- const result = await callMCPTool('workflow_run', {
126
- template: template || undefined,
127
- file: file || undefined,
128
- task,
129
- options: {
130
- parallel,
131
- maxAgents,
132
- timeout,
133
- dryRun,
134
- },
135
- });
136
- if (dryRun) {
137
- spinner.succeed('Workflow validated successfully');
138
- }
139
- else {
140
- spinner.succeed('Workflow started');
141
- }
142
- if (ctx.flags.format === 'json') {
143
- output.printJson(result);
144
- return { success: true, data: result };
145
- }
146
- output.writeln();
147
- output.printBox([
148
- `ID: ${result.workflowId}`,
149
- `Template: ${result.template}`,
150
- `Status: ${result.status}`,
151
- `Stages: ${result.metrics.totalStages}`,
152
- `Agents: ${result.metrics.agentsSpawned}`,
153
- `Est. Duration: ${result.metrics.estimatedDuration}`
154
- ].join('\n'), 'Workflow Details');
155
- output.writeln();
156
- output.writeln(output.bold('Stages'));
157
- output.printTable({
158
- columns: [
159
- { key: 'name', header: 'Stage', width: 20 },
160
- { key: 'status', header: 'Status', width: 12, format: formatStageStatus },
161
- { key: 'agents', header: 'Agents', width: 30, format: (v) => Array.isArray(v) ? v.join(', ') : String(v) },
162
- { key: 'duration', header: 'Duration', width: 10, align: 'right', format: (v) => v ? `${v}ms` : '-' }
163
- ],
164
- data: result.stages
165
- });
166
- if (!dryRun) {
167
- output.writeln();
168
- output.printInfo(`Track progress: monomind workflow status ${result.workflowId}`);
169
- }
170
- return { success: true, data: result };
171
- }
172
- catch (error) {
173
- spinner.fail('Workflow failed');
174
- if (error instanceof MCPClientError) {
175
- output.printError(`Workflow error: ${error.message}`);
176
- }
177
- else {
178
- output.printError(`Unexpected error: ${String(error)}`);
179
- }
180
- return { success: false, exitCode: 1 };
181
- }
182
- }
183
- };
184
- // Validate subcommand
185
- const validateCommand = {
186
- name: 'validate',
187
- description: 'Validate a workflow definition',
188
- options: [
189
- {
190
- name: 'file',
191
- short: 'f',
192
- description: 'Workflow definition file',
193
- type: 'string',
194
- required: true
195
- },
196
- {
197
- name: 'strict',
198
- short: 's',
199
- description: 'Strict validation mode',
200
- type: 'boolean',
201
- default: false
202
- }
203
- ],
204
- examples: [
205
- { command: 'monomind workflow validate -f ./workflow.yaml', description: 'Validate workflow file' },
206
- { command: 'monomind workflow validate -f ./workflow.json --strict', description: 'Strict validation' }
207
- ],
208
- action: async (ctx) => {
209
- const rawFile = ctx.flags.file || ctx.args[0];
210
- const strict = ctx.flags.strict;
211
- if (!rawFile) {
212
- output.printError('Workflow file is required. Use --file or -f');
213
- return { success: false, exitCode: 1 };
214
- }
215
- // Path traversal guard: file must stay within working directory
216
- const pathMod = await import('path');
217
- const effectiveCwd = ctx.cwd || process.cwd();
218
- const absFile = pathMod.isAbsolute(rawFile) ? rawFile : pathMod.resolve(effectiveCwd, rawFile);
219
- const resolvedFile = pathMod.resolve(absFile);
220
- const resolvedCwd = pathMod.resolve(effectiveCwd);
221
- if (!resolvedFile.startsWith(resolvedCwd + pathMod.sep) && resolvedFile !== resolvedCwd) {
222
- output.printError('Workflow file path must be within the working directory.');
223
- return { success: false, exitCode: 1 };
224
- }
225
- const file = resolvedFile;
226
- output.printInfo(`Validating: ${file}`);
227
- try {
228
- const result = await callMCPTool('workflow_validate', {
229
- file,
230
- strict,
231
- });
232
- if (ctx.flags.format === 'json') {
233
- output.printJson(result);
234
- return { success: result.valid, data: result };
235
- }
236
- output.writeln();
237
- if (result.valid) {
238
- output.printSuccess('Workflow is valid');
239
- }
240
- else {
241
- output.printError('Workflow validation failed');
242
- }
243
- if (result.errors.length > 0) {
244
- output.writeln();
245
- output.writeln(output.bold(output.error('Errors')));
246
- output.printTable({
247
- columns: [
248
- { key: 'line', header: 'Line', width: 8, align: 'right' },
249
- { key: 'severity', header: 'Severity', width: 10 },
250
- { key: 'message', header: 'Message', width: 50 }
251
- ],
252
- data: result.errors
253
- });
254
- }
255
- if (result.warnings.length > 0) {
256
- output.writeln();
257
- output.writeln(output.bold(output.warning('Warnings')));
258
- result.warnings.forEach(w => {
259
- output.writeln(output.warning(` Line ${w.line}: ${w.message}`));
260
- });
261
- }
262
- if (result.valid) {
263
- output.writeln();
264
- output.writeln(output.bold('Workflow Stats'));
265
- output.printList([
266
- `Stages: ${result.stats.stages}`,
267
- `Agents Required: ${result.stats.agents}`,
268
- `Est. Duration: ${result.stats.estimatedDuration}`
269
- ]);
270
- }
271
- return { success: result.valid, data: result };
272
- }
273
- catch (error) {
274
- if (error instanceof MCPClientError) {
275
- output.printError(`Validation error: ${error.message}`);
276
- }
277
- else {
278
- output.printError(`Unexpected error: ${String(error)}`);
279
- }
280
- return { success: false, exitCode: 1 };
281
- }
282
- }
283
- };
284
- // List subcommand
285
- const listCommand = {
286
- name: 'list',
287
- aliases: ['ls'],
288
- description: 'List workflows',
289
- options: [
290
- {
291
- name: 'status',
292
- short: 's',
293
- description: 'Filter by status',
294
- type: 'string',
295
- choices: ['running', 'completed', 'failed', 'all']
296
- },
297
- {
298
- name: 'limit',
299
- short: 'l',
300
- description: 'Maximum results',
301
- type: 'number',
302
- default: 10
303
- }
304
- ],
305
- action: async (ctx) => {
306
- const status = ctx.flags.status;
307
- const limit = ctx.flags.limit;
308
- try {
309
- const result = await callMCPTool('workflow_list', {
310
- status: status || 'all',
311
- limit,
312
- });
313
- if (ctx.flags.format === 'json') {
314
- output.printJson(result);
315
- return { success: true, data: result };
316
- }
317
- output.writeln();
318
- output.writeln(output.bold('Workflows'));
319
- output.writeln();
320
- if (result.workflows.length === 0) {
321
- output.printInfo('No workflows found');
322
- return { success: true, data: result };
323
- }
324
- output.printTable({
325
- columns: [
326
- { key: 'id', header: 'ID', width: 15 },
327
- { key: 'template', header: 'Template', width: 15 },
328
- { key: 'status', header: 'Status', width: 12, format: formatStageStatus },
329
- { key: 'progress', header: 'Progress', width: 10, align: 'right', format: (v) => `${v}%` },
330
- { key: 'startedAt', header: 'Started', width: 20, format: (v) => new Date(String(v)).toLocaleString() }
331
- ],
332
- data: result.workflows
333
- });
334
- output.writeln();
335
- output.printInfo(`Total: ${result.total} workflows`);
336
- return { success: true, data: result };
337
- }
338
- catch (error) {
339
- if (error instanceof MCPClientError) {
340
- output.printError(`Failed to list workflows: ${error.message}`);
341
- }
342
- else {
343
- output.printError(`Unexpected error: ${String(error)}`);
344
- }
345
- return { success: false, exitCode: 1 };
346
- }
347
- }
348
- };
349
- // Status subcommand
350
- const statusCommand = {
351
- name: 'status',
352
- description: 'Show workflow status',
353
- options: [
354
- {
355
- name: 'watch',
356
- short: 'w',
357
- description: 'Watch for changes',
358
- type: 'boolean',
359
- default: false
360
- }
361
- ],
362
- action: async (ctx) => {
363
- const workflowId = ctx.args[0];
364
- if (!workflowId) {
365
- output.printError('Workflow ID is required');
366
- return { success: false, exitCode: 1 };
367
- }
368
- try {
369
- const result = await callMCPTool('workflow_status', {
370
- workflowId,
371
- });
372
- if (ctx.flags.format === 'json') {
373
- output.printJson(result);
374
- return { success: true, data: result };
375
- }
376
- output.writeln();
377
- output.printBox([
378
- `ID: ${result.id}`,
379
- `Template: ${result.template}`,
380
- `Status: ${formatStageStatus(result.status)}`,
381
- `Progress: ${result.progress}%`,
382
- `Duration: ${(result.metrics.duration / 1000).toFixed(1)}s`,
383
- `Tokens: ${result.metrics.tokensUsed.toLocaleString()}`,
384
- `Agents: ${result.metrics.agentsSpawned}`
385
- ].join('\n'), 'Workflow Status');
386
- output.writeln();
387
- output.writeln(output.bold('Stage Progress'));
388
- output.printTable({
389
- columns: [
390
- { key: 'name', header: 'Stage', width: 20 },
391
- { key: 'status', header: 'Status', width: 12, format: formatStageStatus },
392
- { key: 'agents', header: 'Agents', width: 25, format: (v) => Array.isArray(v) ? v.length.toString() : '0' }
393
- ],
394
- data: result.stages
395
- });
396
- return { success: true, data: result };
397
- }
398
- catch (error) {
399
- if (error instanceof MCPClientError) {
400
- output.printError(`Failed to get status: ${error.message}`);
401
- }
402
- else {
403
- output.printError(`Unexpected error: ${String(error)}`);
404
- }
405
- return { success: false, exitCode: 1 };
406
- }
407
- }
408
- };
409
- // Stop subcommand
410
- const stopCommand = {
411
- name: 'stop',
412
- description: 'Stop a running workflow',
413
- options: [
414
- {
415
- name: 'force',
416
- short: 'f',
417
- description: 'Force stop without graceful shutdown',
418
- type: 'boolean',
419
- default: false
420
- }
421
- ],
422
- action: async (ctx) => {
423
- const workflowId = ctx.args[0];
424
- const force = ctx.flags.force;
425
- if (!workflowId) {
426
- output.printError('Workflow ID is required');
427
- return { success: false, exitCode: 1 };
428
- }
429
- if (!force && ctx.interactive) {
430
- const confirmed = await confirm({
431
- message: `Stop workflow ${workflowId}?`,
432
- default: false
433
- });
434
- if (!confirmed) {
435
- output.printInfo('Operation cancelled');
436
- return { success: true };
437
- }
438
- }
439
- try {
440
- const result = await callMCPTool('workflow_stop', {
441
- workflowId,
442
- graceful: !force,
443
- });
444
- output.printSuccess(`Workflow ${workflowId} stopped`);
445
- return { success: true, data: result };
446
- }
447
- catch (error) {
448
- if (error instanceof MCPClientError) {
449
- output.printError(`Failed to stop workflow: ${error.message}`);
450
- }
451
- else {
452
- output.printError(`Unexpected error: ${String(error)}`);
453
- }
454
- return { success: false, exitCode: 1 };
455
- }
456
- }
457
- };
458
- // Template subcommand
459
- const templateCommand = {
460
- name: 'template',
461
- description: 'Manage workflow templates',
462
- subcommands: [
463
- {
464
- name: 'list',
465
- description: 'List available templates',
466
- action: async (ctx) => {
467
- if (ctx.flags.format === 'json') {
468
- output.printJson(WORKFLOW_TEMPLATES);
469
- return { success: true, data: WORKFLOW_TEMPLATES };
470
- }
471
- output.writeln();
472
- output.writeln(output.bold('Available Workflow Templates'));
473
- output.writeln();
474
- output.printTable({
475
- columns: [
476
- { key: 'value', header: 'Template', width: 20 },
477
- { key: 'label', header: 'Name', width: 20 },
478
- { key: 'hint', header: 'Description', width: 35 }
479
- ],
480
- data: WORKFLOW_TEMPLATES
481
- });
482
- return { success: true, data: WORKFLOW_TEMPLATES };
483
- }
484
- },
485
- {
486
- name: 'show',
487
- description: 'Show template details',
488
- action: async (ctx) => {
489
- const templateName = ctx.args[0];
490
- if (!templateName) {
491
- output.printError('Template name is required');
492
- return { success: false, exitCode: 1 };
493
- }
494
- const template = WORKFLOW_TEMPLATES.find(t => t.value === templateName);
495
- if (!template) {
496
- output.printError(`Template "${templateName}" not found`);
497
- return { success: false, exitCode: 1 };
498
- }
499
- // Show template details
500
- const details = {
501
- name: template.value,
502
- description: template.hint,
503
- stages: getTemplateStages(template.value),
504
- agents: getTemplateAgents(template.value),
505
- estimatedDuration: getTemplateDuration(template.value)
506
- };
507
- if (ctx.flags.format === 'json') {
508
- output.printJson(details);
509
- return { success: true, data: details };
510
- }
511
- output.writeln();
512
- output.printBox([
513
- `Name: ${details.name}`,
514
- `Description: ${details.description}`,
515
- `Stages: ${details.stages.length}`,
516
- `Agents: ${details.agents.join(', ')}`,
517
- `Est. Duration: ${details.estimatedDuration}`
518
- ].join('\n'), 'Template Details');
519
- output.writeln();
520
- output.writeln(output.bold('Stages'));
521
- output.printList(details.stages.map((s, i) => `${i + 1}. ${s}`));
522
- return { success: true, data: details };
523
- }
524
- },
525
- {
526
- name: 'create',
527
- description: 'Create a new template from workflow',
528
- options: [
529
- { name: 'name', short: 'n', description: 'Template name', type: 'string', required: true },
530
- { name: 'workflow', short: 'w', description: 'Workflow ID to save as template', type: 'string' },
531
- { name: 'file', short: 'f', description: 'Workflow file to save as template', type: 'string' }
532
- ],
533
- action: async (ctx) => {
534
- const name = ctx.flags.name;
535
- if (!name) {
536
- output.printError('Template name is required');
537
- return { success: false, exitCode: 1 };
538
- }
539
- if (!/^[a-zA-Z0-9_-]{1,64}$/.test(name)) {
540
- output.printError('Template name must be 1-64 alphanumeric, underscore, or dash characters.');
541
- return { success: false, exitCode: 1 };
542
- }
543
- const { writeFileSync, renameSync: renameTemplate, mkdirSync, existsSync } = await import('fs');
544
- const { join, resolve: resolvePath, sep } = await import('path');
545
- const templatesDir = join(ctx.cwd, '.monomind', 'workflows', 'templates');
546
- if (!existsSync(templatesDir)) {
547
- mkdirSync(templatesDir, { recursive: true });
548
- }
549
- const templatePath = join(templatesDir, `${name}.json`);
550
- if (!resolvePath(templatePath).startsWith(resolvePath(templatesDir) + sep)) {
551
- output.printError('Template name attempts path traversal.');
552
- return { success: false, exitCode: 1 };
553
- }
554
- if (existsSync(templatePath) && !ctx.flags.force) {
555
- output.writeln(output.error(`Template "${name}" already exists. Use --force to overwrite.`));
556
- return { success: false, exitCode: 1 };
557
- }
558
- const template = {
559
- name,
560
- description: ctx.flags.description || '',
561
- steps: [],
562
- variables: {},
563
- createdAt: new Date().toISOString(),
564
- };
565
- writeFileSync(templatePath + '.tmp', JSON.stringify(template, null, 2));
566
- renameTemplate(templatePath + '.tmp', templatePath);
567
- output.writeln(output.success(`✓ Template "${name}" created at ${templatePath.replace(ctx.cwd, '.')}`));
568
- return { success: true, data: { name, created: true } };
569
- }
570
- }
571
- ],
572
- action: async () => {
573
- output.writeln();
574
- output.writeln(output.bold('Template Management'));
575
- output.writeln();
576
- output.writeln('Usage: monomind workflow template <subcommand>');
577
- output.writeln();
578
- output.writeln('Subcommands:');
579
- output.printList([
580
- `${output.highlight('list')} - List available templates`,
581
- `${output.highlight('show')} - Show template details`,
582
- `${output.highlight('create')} - Create new template`
583
- ]);
584
- return { success: true };
585
- }
586
- };
587
- // Main workflow command
588
- export const workflowCommand = {
589
- name: 'workflow',
590
- description: 'Workflow execution and management',
591
- subcommands: [runCommand, validateCommand, listCommand, statusCommand, stopCommand, templateCommand],
592
- options: [],
593
- examples: [
594
- { command: 'monomind workflow run -t development --task "Build feature"', description: 'Run workflow' },
595
- { command: 'monomind workflow validate -f ./workflow.yaml', description: 'Validate workflow' },
596
- { command: 'monomind workflow list', description: 'List workflows' }
597
- ],
598
- action: async () => {
599
- output.writeln();
600
- output.writeln(output.bold('Workflow Commands'));
601
- output.writeln();
602
- output.writeln('Usage: monomind workflow <subcommand> [options]');
603
- output.writeln();
604
- output.writeln('Subcommands:');
605
- output.printList([
606
- `${output.highlight('run')} - Execute a workflow`,
607
- `${output.highlight('validate')} - Validate workflow definition`,
608
- `${output.highlight('list')} - List workflows`,
609
- `${output.highlight('status')} - Show workflow status`,
610
- `${output.highlight('stop')} - Stop running workflow`,
611
- `${output.highlight('template')} - Manage templates`
612
- ]);
613
- output.writeln();
614
- output.writeln('Run "monomind workflow <subcommand> --help" for more info');
615
- return { success: true };
616
- }
617
- };
618
- // Helper functions
619
- function formatStageStatus(status) {
620
- const statusStr = String(status);
621
- switch (statusStr) {
622
- case 'completed':
623
- case 'success':
624
- return output.success(statusStr);
625
- case 'running':
626
- case 'in_progress':
627
- return output.highlight(statusStr);
628
- case 'pending':
629
- case 'waiting':
630
- return output.dim(statusStr);
631
- case 'failed':
632
- case 'error':
633
- return output.error(statusStr);
634
- case 'validated':
635
- return output.success(statusStr);
636
- default:
637
- return statusStr;
638
- }
639
- }
640
- function getTemplateStages(template) {
641
- const stages = {
642
- development: ['Planning', 'Implementation', 'Testing', 'Review', 'Integration'],
643
- research: ['Discovery', 'Analysis', 'Synthesis', 'Documentation'],
644
- testing: ['Unit Tests', 'Integration Tests', 'E2E Tests', 'Performance Tests'],
645
- 'security-audit': ['Threat Model', 'Static Analysis', 'Dynamic Analysis', 'Report'],
646
- 'code-review': ['Initial Review', 'Security Check', 'Quality Analysis', 'Feedback'],
647
- refactoring: ['Analysis', 'Planning', 'Refactor', 'Validation'],
648
- sparc: ['Specification', 'Pseudocode', 'Architecture', 'Refinement', 'Completion']
649
- };
650
- return stages[template] || ['Initialize', 'Execute', 'Complete'];
651
- }
652
- function getTemplateAgents(template) {
653
- const agents = {
654
- development: ['coder', 'tester', 'reviewer'],
655
- research: ['researcher', 'analyst'],
656
- testing: ['tester', 'coder'],
657
- 'security-audit': ['security-architect', 'security-auditor'],
658
- 'code-review': ['reviewer', 'security-auditor', 'analyst'],
659
- refactoring: ['architect', 'coder', 'reviewer'],
660
- sparc: ['architect', 'coder', 'tester', 'reviewer']
661
- };
662
- return agents[template] || ['coder'];
663
- }
664
- function getTemplateDuration(template) {
665
- const durations = {
666
- development: '15-30 min',
667
- research: '10-20 min',
668
- testing: '5-15 min',
669
- 'security-audit': '20-40 min',
670
- 'code-review': '10-25 min',
671
- refactoring: '15-35 min',
672
- sparc: '25-45 min'
673
- };
674
- return durations[template] || '10-20 min';
675
- }
676
- export default workflowCommand;
677
- //# sourceMappingURL=workflow.js.map