@monoes/monomindcli 2.9.22 → 2.9.23

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 (486) hide show
  1. package/.claude/agents/consensus/quorum-manager.md +35 -54
  2. package/.claude/agents/core/coordinator.md +14 -18
  3. package/.claude/agents/core/researcher.md +1 -1
  4. package/.claude/agents/github/issue-tracker.md +3 -3
  5. package/.claude/agents/github/{code-review-swarm.md → monoswarm-code-review.md} +1 -1
  6. package/.claude/agents/github/{swarm-issue.md → monoswarm-issue.md} +1 -1
  7. package/.claude/agents/github/{multi-repo-swarm.md → monoswarm-multi-repo.md} +1 -1
  8. package/.claude/agents/github/{swarm-pr.md → monoswarm-pr.md} +1 -1
  9. package/.claude/agents/github/pr-manager.md +1 -1
  10. package/.claude/agents/github/release-manager.md +1 -1
  11. package/.claude/agents/github/repo-architect.md +1 -1
  12. package/.claude/agents/github/sync-coordinator.md +4 -4
  13. package/.claude/agents/{hive-mind → monoswarm}/collective-intelligence-coordinator.md +9 -16
  14. package/.claude/agents/{swarm → monoswarm}/mesh-coordinator.md +19 -24
  15. package/.claude/agents/{hive-mind/swarm-memory-manager.md → monoswarm/monoswarm-memory-manager.md} +1 -1
  16. package/.claude/agents/templates/{coordinator-swarm-init.md → coordinator-monoswarm-init.md} +1 -1
  17. package/.claude/agents/testing/{tdd-london-swarm.md → tdd-london-monoswarm.md} +2 -2
  18. package/.claude/commands/agents/agent-coordination.md +3 -3
  19. package/.claude/commands/agents/agent-types.md +1 -1
  20. package/.claude/commands/automation/self-healing.md +1 -1
  21. package/.claude/commands/automation/smart-spawn.md +1 -1
  22. package/.claude/commands/coordination/README.md +1 -1
  23. package/.claude/commands/coordination/{swarm-init.md → monoswarm-init.md} +2 -2
  24. package/.claude/commands/coordination/task-orchestrate.md +4 -4
  25. package/.claude/commands/github/README.md +1 -1
  26. package/.claude/commands/github/issue-tracker.md +2 -2
  27. package/.claude/commands/github/pr-manager.md +1 -1
  28. package/.claude/commands/github/release-manager.md +1 -1
  29. package/.claude/commands/github/repo-architect.md +1 -1
  30. package/.claude/commands/github/sync-coordinator.md +2 -2
  31. package/.claude/commands/hooks/README.md +1 -2
  32. package/.claude/commands/hooks/overview.md +1 -2
  33. package/.claude/commands/hooks/setup.md +0 -3
  34. package/.claude/commands/mastermind/createtask.md +2 -2
  35. package/.claude/commands/mastermind/do.md +3 -3
  36. package/.claude/commands/mastermind/help.md +2 -2
  37. package/.claude/commands/mastermind/ideate.md +1 -1
  38. package/.claude/commands/mastermind/improve.md +1 -1
  39. package/.claude/commands/mastermind/memory.md +2 -2
  40. package/.claude/commands/mastermind/{swarm.md → monoswarm.md} +13 -26
  41. package/.claude/commands/mastermind/topology.md +1 -1
  42. package/.claude/commands/memory/README.md +2 -2
  43. package/.claude/commands/memory/memory-search.md +1 -1
  44. package/.claude/commands/monoswarm/README.md +59 -0
  45. package/.claude/commands/monoswarm/consensus.md +61 -0
  46. package/.claude/commands/monoswarm/init.md +68 -0
  47. package/.claude/commands/monoswarm/memory.md +55 -0
  48. package/.claude/commands/monoswarm/monoswarm.md +139 -0
  49. package/.claude/commands/{swarm → monoswarm}/research.md +2 -2
  50. package/.claude/commands/monoswarm/spawn.md +49 -0
  51. package/.claude/commands/monoswarm/status.md +48 -0
  52. package/.claude/commands/monoswarm/stop.md +46 -0
  53. package/.claude/commands/optimization/auto-topology.md +9 -9
  54. package/.claude/commands/stream-chain/run.md +1 -1
  55. package/.claude/commands/workflows/development.md +1 -1
  56. package/.claude/commands/workflows/research.md +2 -2
  57. package/.claude/helpers/audit-log-writer.cjs +72 -0
  58. package/.claude/helpers/control-start.cjs +84 -26
  59. package/.claude/helpers/handlers/agent-start-handler.cjs +5 -5
  60. package/.claude/helpers/handlers/gates-handler.cjs +31 -10
  61. package/.claude/helpers/handlers/session-restore-handler.cjs +1 -1
  62. package/.claude/helpers/handlers/task-handler.cjs +4 -4
  63. package/.claude/helpers/skill-registry.json +4718 -3669
  64. package/.claude/helpers/statusline.cjs +21 -21
  65. package/.claude/helpers/token-tracker.cjs +0 -6
  66. package/.claude/settings.json +2 -3
  67. package/.claude/skills/hooks-automation/SKILL.md +5 -5
  68. package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
  69. package/.claude/skills/memory-toolkit/SKILL.md +2 -2
  70. package/.claude/skills/{swarm-orchestration → monoswarm}/SKILL.md +106 -42
  71. package/.claude/skills/specialagent/SKILL.md +1 -1
  72. package/README.md +31 -12
  73. package/dist/src/autopilot-state.d.ts +0 -16
  74. package/dist/src/autopilot-state.d.ts.map +1 -1
  75. package/dist/src/autopilot-state.js +0 -15
  76. package/dist/src/autopilot-state.js.map +1 -1
  77. package/dist/src/browser/dashboard/server.js +3 -3
  78. package/dist/src/browser/dashboard/server.js.map +1 -1
  79. package/dist/src/browser/dashboard/ui.html +2 -2
  80. package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
  81. package/dist/src/capabilities/cap-documents.js +49 -38
  82. package/dist/src/capabilities/cap-documents.js.map +1 -1
  83. package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
  84. package/dist/src/commands/agent-lifecycle.js +4 -9
  85. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  86. package/dist/src/commands/agent-ops.d.ts.map +1 -1
  87. package/dist/src/commands/agent-ops.js +37 -24
  88. package/dist/src/commands/agent-ops.js.map +1 -1
  89. package/dist/src/commands/analyze-ast.d.ts +1 -1
  90. package/dist/src/commands/analyze-ast.d.ts.map +1 -1
  91. package/dist/src/commands/analyze-ast.js +8 -27
  92. package/dist/src/commands/analyze-ast.js.map +1 -1
  93. package/dist/src/commands/analyze-imports.d.ts.map +1 -1
  94. package/dist/src/commands/analyze-imports.js +18 -17
  95. package/dist/src/commands/analyze-imports.js.map +1 -1
  96. package/dist/src/commands/analyze-symbols.d.ts.map +1 -1
  97. package/dist/src/commands/analyze-symbols.js +10 -24
  98. package/dist/src/commands/analyze-symbols.js.map +1 -1
  99. package/dist/src/commands/analyze.d.ts +19 -6
  100. package/dist/src/commands/analyze.d.ts.map +1 -1
  101. package/dist/src/commands/analyze.js +61 -15
  102. package/dist/src/commands/analyze.js.map +1 -1
  103. package/dist/src/commands/autopilot.d.ts.map +1 -1
  104. package/dist/src/commands/autopilot.js +4 -89
  105. package/dist/src/commands/autopilot.js.map +1 -1
  106. package/dist/src/commands/browse.d.ts +1 -1
  107. package/dist/src/commands/cleanup.d.ts.map +1 -1
  108. package/dist/src/commands/cleanup.js +4 -2
  109. package/dist/src/commands/cleanup.js.map +1 -1
  110. package/dist/src/commands/completions.d.ts.map +1 -1
  111. package/dist/src/commands/completions.js +0 -1
  112. package/dist/src/commands/completions.js.map +1 -1
  113. package/dist/src/commands/config.js +7 -7
  114. package/dist/src/commands/config.js.map +1 -1
  115. package/dist/src/commands/doctor-project-checks.d.ts +7 -0
  116. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  117. package/dist/src/commands/doctor-project-checks.js +37 -5
  118. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  119. package/dist/src/commands/doctor.d.ts.map +1 -1
  120. package/dist/src/commands/doctor.js +9 -3
  121. package/dist/src/commands/doctor.js.map +1 -1
  122. package/dist/src/commands/hooks-routing-commands.d.ts +1 -2
  123. package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -1
  124. package/dist/src/commands/hooks-routing-commands.js +1 -101
  125. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  126. package/dist/src/commands/hooks-workers.d.ts.map +1 -1
  127. package/dist/src/commands/hooks-workers.js +19 -71
  128. package/dist/src/commands/hooks-workers.js.map +1 -1
  129. package/dist/src/commands/hooks.d.ts +1 -1
  130. package/dist/src/commands/hooks.d.ts.map +1 -1
  131. package/dist/src/commands/hooks.js +4 -7
  132. package/dist/src/commands/hooks.js.map +1 -1
  133. package/dist/src/commands/index.d.ts +1 -1
  134. package/dist/src/commands/index.d.ts.map +1 -1
  135. package/dist/src/commands/index.js +2 -2
  136. package/dist/src/commands/index.js.map +1 -1
  137. package/dist/src/commands/init-subcommands.d.ts.map +1 -1
  138. package/dist/src/commands/init-subcommands.js +4 -0
  139. package/dist/src/commands/init-subcommands.js.map +1 -1
  140. package/dist/src/commands/init-wizard.d.ts.map +1 -1
  141. package/dist/src/commands/init-wizard.js +0 -8
  142. package/dist/src/commands/init-wizard.js.map +1 -1
  143. package/dist/src/commands/init.d.ts.map +1 -1
  144. package/dist/src/commands/init.js +53 -23
  145. package/dist/src/commands/init.js.map +1 -1
  146. package/dist/src/commands/mcp.d.ts +1 -0
  147. package/dist/src/commands/mcp.d.ts.map +1 -1
  148. package/dist/src/commands/mcp.js +111 -60
  149. package/dist/src/commands/mcp.js.map +1 -1
  150. package/dist/src/commands/memory-crud.d.ts.map +1 -1
  151. package/dist/src/commands/memory-crud.js +33 -20
  152. package/dist/src/commands/memory-crud.js.map +1 -1
  153. package/dist/src/commands/monoswarm.d.ts +8 -0
  154. package/dist/src/commands/monoswarm.d.ts.map +1 -0
  155. package/dist/src/commands/{swarm.js → monoswarm.js} +83 -297
  156. package/dist/src/commands/monoswarm.js.map +1 -0
  157. package/dist/src/commands/neural-core.d.ts.map +1 -1
  158. package/dist/src/commands/neural-core.js +9 -1
  159. package/dist/src/commands/neural-core.js.map +1 -1
  160. package/dist/src/commands/neural-optimize.d.ts.map +1 -1
  161. package/dist/src/commands/neural-optimize.js +30 -110
  162. package/dist/src/commands/neural-optimize.js.map +1 -1
  163. package/dist/src/commands/neural-registry.d.ts +1 -2
  164. package/dist/src/commands/neural-registry.d.ts.map +1 -1
  165. package/dist/src/commands/neural-registry.js +21 -168
  166. package/dist/src/commands/neural-registry.js.map +1 -1
  167. package/dist/src/commands/org-observe.d.ts +13 -3
  168. package/dist/src/commands/org-observe.d.ts.map +1 -1
  169. package/dist/src/commands/org-observe.js +134 -45
  170. package/dist/src/commands/org-observe.js.map +1 -1
  171. package/dist/src/commands/org.d.ts +14 -0
  172. package/dist/src/commands/org.d.ts.map +1 -1
  173. package/dist/src/commands/org.js +98 -20
  174. package/dist/src/commands/org.js.map +1 -1
  175. package/dist/src/commands/performance.d.ts.map +1 -1
  176. package/dist/src/commands/performance.js +38 -31
  177. package/dist/src/commands/performance.js.map +1 -1
  178. package/dist/src/commands/security-misc.d.ts.map +1 -1
  179. package/dist/src/commands/security-misc.js +220 -90
  180. package/dist/src/commands/security-misc.js.map +1 -1
  181. package/dist/src/commands/security-scan.d.ts +13 -0
  182. package/dist/src/commands/security-scan.d.ts.map +1 -1
  183. package/dist/src/commands/security-scan.js +96 -27
  184. package/dist/src/commands/security-scan.js.map +1 -1
  185. package/dist/src/commands/security.js +1 -1
  186. package/dist/src/commands/security.js.map +1 -1
  187. package/dist/src/commands/start.d.ts.map +1 -1
  188. package/dist/src/commands/start.js +17 -96
  189. package/dist/src/commands/start.js.map +1 -1
  190. package/dist/src/commands/status.d.ts.map +1 -1
  191. package/dist/src/commands/status.js +72 -64
  192. package/dist/src/commands/status.js.map +1 -1
  193. package/dist/src/commands/tokens.d.ts.map +1 -1
  194. package/dist/src/commands/tokens.js +4 -5
  195. package/dist/src/commands/tokens.js.map +1 -1
  196. package/dist/src/consensus/audit-writer.d.ts +2 -2
  197. package/dist/src/consensus/audit-writer.d.ts.map +1 -1
  198. package/dist/src/consensus/audit-writer.js +1 -1
  199. package/dist/src/index.d.ts +2 -2
  200. package/dist/src/index.d.ts.map +1 -1
  201. package/dist/src/index.js +12 -10
  202. package/dist/src/index.js.map +1 -1
  203. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  204. package/dist/src/init/claudemd-generator.js +32 -31
  205. package/dist/src/init/claudemd-generator.js.map +1 -1
  206. package/dist/src/init/codex-generator.d.ts +10 -0
  207. package/dist/src/init/codex-generator.d.ts.map +1 -0
  208. package/dist/src/init/codex-generator.js +67 -0
  209. package/dist/src/init/codex-generator.js.map +1 -0
  210. package/dist/src/init/copy-assets.d.ts.map +1 -1
  211. package/dist/src/init/copy-assets.js +4 -8
  212. package/dist/src/init/copy-assets.js.map +1 -1
  213. package/dist/src/init/executor.d.ts.map +1 -1
  214. package/dist/src/init/executor.js +9 -2
  215. package/dist/src/init/executor.js.map +1 -1
  216. package/dist/src/init/helpers-generator.js +1 -1
  217. package/dist/src/init/index.d.ts +1 -0
  218. package/dist/src/init/index.d.ts.map +1 -1
  219. package/dist/src/init/index.js +1 -0
  220. package/dist/src/init/index.js.map +1 -1
  221. package/dist/src/init/opencode-generator.js +2 -2
  222. package/dist/src/init/opencode-generator.js.map +1 -1
  223. package/dist/src/init/settings-generator.d.ts.map +1 -1
  224. package/dist/src/init/settings-generator.js +1 -2
  225. package/dist/src/init/settings-generator.js.map +1 -1
  226. package/dist/src/init/shared.d.ts.map +1 -1
  227. package/dist/src/init/shared.js +3 -7
  228. package/dist/src/init/shared.js.map +1 -1
  229. package/dist/src/init/statusline-generator.js +19 -19
  230. package/dist/src/init/types.d.ts +9 -10
  231. package/dist/src/init/types.d.ts.map +1 -1
  232. package/dist/src/init/types.js +8 -6
  233. package/dist/src/init/types.js.map +1 -1
  234. package/dist/src/init/upgrade.js +5 -5
  235. package/dist/src/init/upgrade.js.map +1 -1
  236. package/dist/src/init/write-capabilities.d.ts.map +1 -1
  237. package/dist/src/init/write-capabilities.js +36 -49
  238. package/dist/src/init/write-capabilities.js.map +1 -1
  239. package/dist/src/init/write-claude.js +1 -1
  240. package/dist/src/init/write-claude.js.map +1 -1
  241. package/dist/src/init/write-codex.d.ts +4 -0
  242. package/dist/src/init/write-codex.d.ts.map +1 -0
  243. package/dist/src/init/write-codex.js +57 -0
  244. package/dist/src/init/write-codex.js.map +1 -0
  245. package/dist/src/init/write-runtime-config.d.ts.map +1 -1
  246. package/dist/src/init/write-runtime-config.js +4 -5
  247. package/dist/src/init/write-runtime-config.js.map +1 -1
  248. package/dist/src/knowledge/eval/golden-set.js +15 -15
  249. package/dist/src/knowledge/eval/golden-set.js.map +1 -1
  250. package/dist/src/mcp-client.d.ts.map +1 -1
  251. package/dist/src/mcp-client.js +1 -2
  252. package/dist/src/mcp-client.js.map +1 -1
  253. package/dist/src/mcp-server.js +1 -1
  254. package/dist/src/mcp-server.js.map +1 -1
  255. package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
  256. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  257. package/dist/src/mcp-tools/agent-tools.js +3 -3
  258. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  259. package/dist/src/mcp-tools/autopilot-tools.d.ts +1 -1
  260. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
  261. package/dist/src/mcp-tools/autopilot-tools.js +4 -62
  262. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  263. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  264. package/dist/src/mcp-tools/guidance-tools.js +21 -31
  265. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  266. package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -1
  267. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  268. package/dist/src/mcp-tools/hooks-intelligence.js +56 -103
  269. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  270. package/dist/src/mcp-tools/hooks-routing.d.ts +1 -2
  271. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  272. package/dist/src/mcp-tools/hooks-routing.js +78 -152
  273. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  274. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  275. package/dist/src/mcp-tools/hooks-tools.js +2 -4
  276. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  277. package/dist/src/mcp-tools/index.d.ts +1 -2
  278. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  279. package/dist/src/mcp-tools/index.js +1 -2
  280. package/dist/src/mcp-tools/index.js.map +1 -1
  281. package/dist/src/mcp-tools/memory-tools.js +10 -10
  282. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  283. package/dist/src/mcp-tools/monograph/query-tools.js +9 -9
  284. package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
  285. package/dist/src/mcp-tools/monoswarm-tools.d.ts +17 -0
  286. package/dist/src/mcp-tools/monoswarm-tools.d.ts.map +1 -0
  287. package/dist/src/mcp-tools/monoswarm-tools.js +1153 -0
  288. package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -0
  289. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
  290. package/dist/src/mcp-tools/performance-tools.js +32 -25
  291. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  292. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
  293. package/dist/src/mcp-tools/system-tools.js +30 -13
  294. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  295. package/dist/src/mcp-tools/transfer-tools.d.ts +8 -12
  296. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  297. package/dist/src/mcp-tools/transfer-tools.js +9 -13
  298. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  299. package/dist/src/memory/embedding-operations.d.ts.map +1 -1
  300. package/dist/src/memory/embedding-operations.js +0 -37
  301. package/dist/src/memory/embedding-operations.js.map +1 -1
  302. package/dist/src/memory/hnsw-operations.d.ts +14 -74
  303. package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
  304. package/dist/src/memory/hnsw-operations.js +22 -262
  305. package/dist/src/memory/hnsw-operations.js.map +1 -1
  306. package/dist/src/memory/intelligence.d.ts +2 -2
  307. package/dist/src/memory/intelligence.d.ts.map +1 -1
  308. package/dist/src/memory/intelligence.js +8 -7
  309. package/dist/src/memory/intelligence.js.map +1 -1
  310. package/dist/src/memory/memory-bridge.d.ts +24 -24
  311. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  312. package/dist/src/memory/memory-bridge.js +33 -34
  313. package/dist/src/memory/memory-bridge.js.map +1 -1
  314. package/dist/src/memory/memory-crud.d.ts.map +1 -1
  315. package/dist/src/memory/memory-crud.js +0 -20
  316. package/dist/src/memory/memory-crud.js.map +1 -1
  317. package/dist/src/memory/memory-initializer.d.ts +2 -3
  318. package/dist/src/memory/memory-initializer.d.ts.map +1 -1
  319. package/dist/src/memory/memory-initializer.js +2 -3
  320. package/dist/src/memory/memory-initializer.js.map +1 -1
  321. package/dist/src/memory/memory-read.d.ts.map +1 -1
  322. package/dist/src/memory/memory-read.js +5 -14
  323. package/dist/src/memory/memory-read.js.map +1 -1
  324. package/dist/src/memory/sona-optimizer.d.ts +1 -1
  325. package/dist/src/memory/sona-optimizer.js +1 -1
  326. package/dist/src/monovector/model-outcomes.d.ts +25 -0
  327. package/dist/src/monovector/model-outcomes.d.ts.map +1 -0
  328. package/dist/src/monovector/model-outcomes.js +113 -0
  329. package/dist/src/monovector/model-outcomes.js.map +1 -0
  330. package/dist/src/orgrt/agent-runner.d.ts +8 -2
  331. package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
  332. package/dist/src/orgrt/agent-runner.js.map +1 -1
  333. package/dist/src/orgrt/antigravity-runner.d.ts +25 -2
  334. package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
  335. package/dist/src/orgrt/antigravity-runner.js +265 -124
  336. package/dist/src/orgrt/antigravity-runner.js.map +1 -1
  337. package/dist/src/orgrt/approvals.d.ts.map +1 -1
  338. package/dist/src/orgrt/approvals.js +8 -0
  339. package/dist/src/orgrt/approvals.js.map +1 -1
  340. package/dist/src/orgrt/checkpoint-ops.d.ts +10 -16
  341. package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
  342. package/dist/src/orgrt/checkpoint-ops.js +12 -18
  343. package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
  344. package/dist/src/orgrt/checkpoint.d.ts +12 -1
  345. package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
  346. package/dist/src/orgrt/checkpoint.js +19 -3
  347. package/dist/src/orgrt/checkpoint.js.map +1 -1
  348. package/dist/src/orgrt/codex-runner.d.ts +26 -2
  349. package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
  350. package/dist/src/orgrt/codex-runner.js +359 -128
  351. package/dist/src/orgrt/codex-runner.js.map +1 -1
  352. package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
  353. package/dist/src/orgrt/copilot-runner.js +12 -2
  354. package/dist/src/orgrt/copilot-runner.js.map +1 -1
  355. package/dist/src/orgrt/cross-org.d.ts.map +1 -1
  356. package/dist/src/orgrt/cross-org.js +11 -0
  357. package/dist/src/orgrt/cross-org.js.map +1 -1
  358. package/dist/src/orgrt/crush-runner.d.ts +4 -1
  359. package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
  360. package/dist/src/orgrt/crush-runner.js +42 -30
  361. package/dist/src/orgrt/crush-runner.js.map +1 -1
  362. package/dist/src/orgrt/daemon.d.ts +38 -25
  363. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  364. package/dist/src/orgrt/daemon.js +150 -28
  365. package/dist/src/orgrt/daemon.js.map +1 -1
  366. package/dist/src/orgrt/decisions.d.ts +1 -0
  367. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  368. package/dist/src/orgrt/decisions.js +20 -0
  369. package/dist/src/orgrt/decisions.js.map +1 -1
  370. package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
  371. package/dist/src/orgrt/grok-runner.js +39 -14
  372. package/dist/src/orgrt/grok-runner.js.map +1 -1
  373. package/dist/src/orgrt/kimicode-runner.d.ts +53 -7
  374. package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
  375. package/dist/src/orgrt/kimicode-runner.js +246 -144
  376. package/dist/src/orgrt/kimicode-runner.js.map +1 -1
  377. package/dist/src/orgrt/mailbox.d.ts +26 -1
  378. package/dist/src/orgrt/mailbox.d.ts.map +1 -1
  379. package/dist/src/orgrt/mailbox.js +74 -2
  380. package/dist/src/orgrt/mailbox.js.map +1 -1
  381. package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
  382. package/dist/src/orgrt/pi-rpc-runner.js +76 -91
  383. package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
  384. package/dist/src/orgrt/policy.d.ts +11 -0
  385. package/dist/src/orgrt/policy.d.ts.map +1 -1
  386. package/dist/src/orgrt/policy.js +25 -2
  387. package/dist/src/orgrt/policy.js.map +1 -1
  388. package/dist/src/orgrt/provider.d.ts +29 -1
  389. package/dist/src/orgrt/provider.d.ts.map +1 -1
  390. package/dist/src/orgrt/provider.js +62 -2
  391. package/dist/src/orgrt/provider.js.map +1 -1
  392. package/dist/src/orgrt/qwen-rpc-runner.d.ts +56 -0
  393. package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -0
  394. package/dist/src/orgrt/qwen-rpc-runner.js +346 -0
  395. package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -0
  396. package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
  397. package/dist/src/orgrt/qwen-runner.js +11 -8
  398. package/dist/src/orgrt/qwen-runner.js.map +1 -1
  399. package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
  400. package/dist/src/orgrt/scheduler-integration.js +7 -0
  401. package/dist/src/orgrt/scheduler-integration.js.map +1 -1
  402. package/dist/src/orgrt/session.d.ts +29 -1
  403. package/dist/src/orgrt/session.d.ts.map +1 -1
  404. package/dist/src/orgrt/session.js +87 -18
  405. package/dist/src/orgrt/session.js.map +1 -1
  406. package/dist/src/orgrt/task-dag.d.ts +29 -1
  407. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  408. package/dist/src/orgrt/task-dag.js +54 -0
  409. package/dist/src/orgrt/task-dag.js.map +1 -1
  410. package/dist/src/orgrt/test-loop.d.ts.map +1 -1
  411. package/dist/src/orgrt/test-loop.js +86 -9
  412. package/dist/src/orgrt/test-loop.js.map +1 -1
  413. package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
  414. package/dist/src/orgrt/tool-fence.js +15 -0
  415. package/dist/src/orgrt/tool-fence.js.map +1 -1
  416. package/dist/src/orgrt/types.d.ts +32 -1
  417. package/dist/src/orgrt/types.d.ts.map +1 -1
  418. package/dist/src/orgrt/types.js +47 -4
  419. package/dist/src/orgrt/types.js.map +1 -1
  420. package/dist/src/pricing/model-pricing.d.ts.map +1 -1
  421. package/dist/src/pricing/model-pricing.js +0 -4
  422. package/dist/src/pricing/model-pricing.js.map +1 -1
  423. package/dist/src/security/audit-log.d.ts +47 -0
  424. package/dist/src/security/audit-log.d.ts.map +1 -0
  425. package/dist/src/security/audit-log.js +84 -0
  426. package/dist/src/security/audit-log.js.map +1 -0
  427. package/dist/src/services/config-file-manager.d.ts +2 -2
  428. package/dist/src/services/config-file-manager.d.ts.map +1 -1
  429. package/dist/src/services/config-file-manager.js +6 -7
  430. package/dist/src/services/config-file-manager.js.map +1 -1
  431. package/dist/src/suggest.d.ts.map +1 -1
  432. package/dist/src/suggest.js +4 -5
  433. package/dist/src/suggest.js.map +1 -1
  434. package/dist/src/transfer/anonymization/index.d.ts +1 -1
  435. package/dist/src/transfer/anonymization/index.js +1 -1
  436. package/dist/src/types.d.ts +3 -3
  437. package/dist/src/types.d.ts.map +1 -1
  438. package/dist/src/ui/collector.mjs +9 -13
  439. package/dist/src/ui/dashboard.html +30 -10
  440. package/dist/src/ui/data/agent-avatars.html +0 -12
  441. package/dist/src/ui/data/agent-avatars.json +10 -26
  442. package/dist/src/ui/routes-org.mjs +59 -16
  443. package/dist/src/ui/server.mjs +50 -23
  444. package/dist/src/utils/json-file.d.ts +12 -0
  445. package/dist/src/utils/json-file.d.ts.map +1 -1
  446. package/dist/src/utils/json-file.js +11 -0
  447. package/dist/src/utils/json-file.js.map +1 -1
  448. package/dist/tsconfig.tsbuildinfo +1 -1
  449. package/package.json +4 -4
  450. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  451. package/.claude/commands/hive-mind/README.md +0 -42
  452. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
  453. package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
  454. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
  455. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
  456. package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
  457. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
  458. package/.claude/commands/hive-mind/hive-mind.md +0 -87
  459. package/.claude/commands/swarm/README.md +0 -40
  460. package/.claude/commands/swarm/swarm.md +0 -79
  461. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -347
  462. package/.claude/skills/swarm-advanced/SKILL.md +0 -936
  463. package/dist/src/commands/swarm.d.ts +0 -8
  464. package/dist/src/commands/swarm.d.ts.map +0 -1
  465. package/dist/src/commands/swarm.js.map +0 -1
  466. package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -17
  467. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -1
  468. package/dist/src/mcp-tools/hive-mind-tools.js +0 -1239
  469. package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -1
  470. package/dist/src/mcp-tools/swarm-tools.d.ts +0 -9
  471. package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -1
  472. package/dist/src/mcp-tools/swarm-tools.js +0 -411
  473. package/dist/src/mcp-tools/swarm-tools.js.map +0 -1
  474. package/dist/src/ui/data/avatars/crdt-synchronizer.svg +0 -53
  475. package/dist/src/ui/data/avatars/gossip-coordinator.svg +0 -54
  476. package/scripts/deploy-ipfs-node.sh +0 -153
  477. package/scripts/setup-ipfs-registry.md +0 -365
  478. /package/.claude/agents/{hive-mind → monoswarm}/scout-explorer.md +0 -0
  479. /package/.claude/agents/{hive-mind → monoswarm}/worker-specialist.md +0 -0
  480. /package/.claude/commands/{swarm → monoswarm}/analysis.md +0 -0
  481. /package/.claude/commands/{swarm → monoswarm}/development.md +0 -0
  482. /package/.claude/commands/{swarm → monoswarm}/examples.md +0 -0
  483. /package/.claude/commands/{swarm → monoswarm}/maintenance.md +0 -0
  484. /package/.claude/commands/{swarm → monoswarm}/optimization.md +0 -0
  485. /package/.claude/commands/{swarm → monoswarm}/testing.md +0 -0
  486. /package/dist/src/ui/data/avatars/{code-review-swarm.svg → monoswarm-code-review.svg} +0 -0
@@ -1,36 +1,29 @@
1
1
  /**
2
- * CLI Swarm Command
3
- * Swarm coordination and management commands
2
+ * CLI Monoswarm Command
3
+ * Monoswarm coordination and management commands
4
4
  */
5
5
  import { output } from '../output.js';
6
6
  import { select, confirm } from '../prompt.js';
7
7
  import { callMCPTool, MCPClientError } from '../mcp-client.js';
8
8
  import * as fs from 'fs';
9
9
  import * as path from 'path';
10
- import { writeJsonFileAtomic } from '../utils/json-file.js';
11
10
  import { getMonomindDataRoot, getProjectCwd, migrateLegacyStoreFile } from '../utils/paths.js';
12
11
  // Canonical paths — resolved through getMonomindDataRoot() so the CLI and the MCP
13
- // tools (agent-tools.ts / swarm-tools.ts / task-tools.ts) read and write the SAME
14
- // physical files. These used to be `path.join(process.cwd(), '.monomind/...')`,
15
- // which only coincides with the canonical root when there is no `.git` directory;
16
- // inside a real repo the canonical root is `<repo>/.git/monomind`, so the CLI read
17
- // an empty parallel store ("0 agents" with agents on disk) and `swarm init` wrote a
18
- // second, divergent swarm-state.json no MCP tool ever read.
19
- const SWARM_STATE_SUBDIR = 'swarm';
20
- const SWARM_STATE_FILE = 'swarm-state.json';
12
+ // tools (agent-tools.ts / monoswarm-tools.ts / task-tools.ts) read and write the
13
+ // SAME physical files: `.monomind/monoswarm/state.json`. This is a clean break from
14
+ // the pre-rename `.monomind/swarm/swarm-state.json` layout — no migration from that
15
+ // legacy path is performed.
16
+ const SWARM_STATE_SUBDIR = 'monoswarm';
17
+ const SWARM_STATE_FILE = 'state.json';
21
18
  const AGENT_STORE_SUBDIR = 'agents';
22
19
  const AGENT_STORE_FILE = 'store.json';
23
20
  function getSwarmDir() {
24
21
  return path.join(getMonomindDataRoot(), SWARM_STATE_SUBDIR);
25
22
  }
26
- // Canonical swarm-state.json path. Also pulls a pre-existing legacy
27
- // `<cwd>/.monomind/swarm/swarm-state.json` into place (copy, never move; no-op once
28
- // the canonical file exists or when the two paths coincide) so state written by an
29
- // older CLI isn't silently orphaned — same helper the MCP tools use.
23
+ // Canonical state.json path — `.monomind/monoswarm/state.json`, shared with the
24
+ // MCP tools.
30
25
  function getSwarmStateFile() {
31
- const file = path.join(getSwarmDir(), SWARM_STATE_FILE);
32
- migrateLegacyStoreFile(file, path.join(SWARM_STATE_SUBDIR, SWARM_STATE_FILE));
33
- return file;
26
+ return path.join(getSwarmDir(), SWARM_STATE_FILE);
34
27
  }
35
28
  function getAgentStoreFile() {
36
29
  const file = path.join(getMonomindDataRoot(), AGENT_STORE_SUBDIR, AGENT_STORE_FILE);
@@ -52,25 +45,12 @@ function getSwarmStatus(swarmId) {
52
45
  try {
53
46
  const swarmStatSz = fs.statSync(swarmStateFile).size;
54
47
  if (swarmStatSz <= 10_485_760) {
55
- const store = JSON.parse(fs.readFileSync(swarmStateFile, 'utf-8'));
56
- // MCP swarm-tools stores { swarms: { [id]: SwarmState } }
57
- if (store?.swarms && typeof store.swarms === 'object') {
58
- const swarms = store.swarms;
59
- if (swarmId && swarms[swarmId]) {
60
- swarmState = swarms[swarmId];
61
- }
62
- else {
63
- // Find latest non-terminated swarm
64
- const running = Object.values(swarms)
65
- .filter((s) => s.status !== 'terminated')
66
- .sort((a, b) => String(b.updatedAt || '').localeCompare(String(a.updatedAt || '')));
67
- if (running.length > 0)
68
- swarmState = running[0];
69
- }
70
- }
71
- else if (store?.id || store?.swarmId) {
72
- // Legacy CLI-written format { id, topology, ... }
73
- swarmState = store;
48
+ const state = JSON.parse(fs.readFileSync(swarmStateFile, 'utf-8'));
49
+ // monoswarm-tools.ts writes a single flat MonoswarmState object — there
50
+ // is only one monoswarm per project, so there is no per-id map to look
51
+ // up (a `swarmId` argument is accepted purely as a display override).
52
+ if (state?.initialized) {
53
+ swarmState = state;
74
54
  }
75
55
  }
76
56
  }
@@ -181,20 +161,25 @@ function getSwarmStatus(swarmId) {
181
161
  else if (swarmState) {
182
162
  status = 'ready';
183
163
  }
164
+ const swarmConfig = swarmState?.config;
184
165
  return {
185
166
  id: swarmId ||
186
- swarmState?.swarmId ||
187
- swarmState?.id ||
167
+ swarmState?.monoswarmId ||
188
168
  'no-active-swarm',
189
169
  topology: swarmState?.topology || 'none',
190
170
  status,
191
- objective: swarmState?.objective || 'No active objective',
192
- strategy: swarmState?.strategy || 'none',
171
+ // Not tracked in the merged monoswarm state — the state file records
172
+ // topology/strategy/votes, not a free-text objective.
173
+ objective: 'No active objective',
174
+ strategy: swarmConfig?.strategy || 'none',
193
175
  agents: {
194
176
  total: totalAgents,
195
177
  active: activeAgents,
196
178
  idle: Math.max(0, totalAgents - activeAgents),
197
- completed: 0,
179
+ // Not tracked anywhere — nothing distinguishes a "completed" agent
180
+ // from an active/idle one in the agent store. '--' rather than a
181
+ // fake 0.
182
+ completed: '--',
198
183
  },
199
184
  progress,
200
185
  tasks: {
@@ -204,16 +189,12 @@ function getSwarmStatus(swarmId) {
204
189
  pending: pendingTasks,
205
190
  },
206
191
  metrics: {
207
- tokensUsed: 0,
192
+ // Token usage isn't tracked here — '--' rather than a fake 0.
193
+ tokensUsed: '--',
208
194
  avgResponseTime: '--',
209
195
  successRate: totalTasks > 0 ? `${Math.round((completedTasks / totalTasks) * 100)}%` : '--',
210
196
  elapsedTime: '--',
211
197
  },
212
- coordination: {
213
- consensusRounds: 0,
214
- messagesSent: 0,
215
- conflictsResolved: 0,
216
- },
217
198
  hasActiveSwarm: !!swarmState || totalAgents > 0,
218
199
  };
219
200
  }
@@ -254,7 +235,7 @@ const initCommand = {
254
235
  {
255
236
  name: 'topology',
256
237
  short: 't',
257
- description: 'Swarm topology',
238
+ description: 'Monoswarm topology',
258
239
  type: 'string',
259
240
  choices: TOPOLOGIES.map((t) => t.value),
260
241
  default: 'hierarchical',
@@ -266,12 +247,6 @@ const initCommand = {
266
247
  type: 'number',
267
248
  default: 15,
268
249
  },
269
- {
270
- name: 'auto-scale',
271
- description: 'Enable automatic scaling',
272
- type: 'boolean',
273
- default: true,
274
- },
275
250
  {
276
251
  name: 'strategy',
277
252
  short: 's',
@@ -307,15 +282,12 @@ const initCommand = {
307
282
  output.printInfo('Initializing swarm...');
308
283
  try {
309
284
  // Call MCP tool to initialize swarm
310
- const result = await callMCPTool('swarm_init', {
285
+ const result = await callMCPTool('monoswarm_init', {
311
286
  topology: topology,
312
287
  maxAgents,
313
288
  config: {
314
- communicationProtocol: 'message-bus',
315
- consensusMechanism: 'majority',
316
289
  failureHandling: 'retry',
317
290
  loadBalancing: true,
318
- autoScaling: ctx.flags['auto-scale'] ?? true,
319
291
  },
320
292
  metadata: {
321
293
  v1Mode,
@@ -323,7 +295,7 @@ const initCommand = {
323
295
  },
324
296
  });
325
297
  // Display initialization progress
326
- output.writeln(output.dim(` Wrote swarm config: ${result.swarmId}`));
298
+ output.writeln(output.dim(` Wrote swarm config: ${result.monoswarmId}`));
327
299
  if (v1Mode) {
328
300
  output.writeln(output.dim(' (v1-mode: topology renamed to hierarchical-mesh; no ANN or keyword routing is performed during init)'));
329
301
  }
@@ -334,55 +306,18 @@ const initCommand = {
334
306
  { key: 'value', header: 'Value', width: 35 },
335
307
  ],
336
308
  data: [
337
- { property: 'Swarm ID', value: result.swarmId },
309
+ { property: 'Monoswarm ID', value: result.monoswarmId },
338
310
  { property: 'Topology', value: result.topology },
339
311
  { property: 'Max Agents', value: result.config.maxAgents },
340
- { property: 'Auto Scale', value: result.config.autoScaling ? 'Enabled' : 'Disabled' },
341
- { property: 'Protocol', value: result.config.communicationProtocol || 'N/A' },
342
312
  { property: 'v1 Mode', value: v1Mode ? 'Enabled' : 'Disabled' },
343
313
  ],
344
314
  });
345
315
  output.writeln();
346
- output.printSuccess('Swarm initialized successfully');
347
- // Save swarm state to MCP-canonical path so CLI and MCP share state
348
- try {
349
- const swarmDir2 = getSwarmDir();
350
- if (!fs.existsSync(swarmDir2)) {
351
- fs.mkdirSync(swarmDir2, { recursive: true });
352
- }
353
- // Read existing store to preserve other swarms
354
- const stateFile = path.join(swarmDir2, SWARM_STATE_FILE);
355
- let store = { swarms: {}, version: '3.0.0' };
356
- if (fs.existsSync(stateFile)) {
357
- try {
358
- store = JSON.parse(fs.readFileSync(stateFile, 'utf-8'));
359
- }
360
- catch {
361
- /* use default */
362
- }
363
- }
364
- if (!store.swarms || typeof store.swarms !== 'object')
365
- store.swarms = {};
366
- store.swarms[result.swarmId] = {
367
- swarmId: result.swarmId,
368
- topology: result.topology,
369
- maxAgents: result.config.maxAgents,
370
- // P0-4: no agents are actually running yet at init time — the
371
- // printed message says so; the persisted state must agree, or
372
- // `swarm status --format json` contradicts the human-readable output.
373
- status: 'configured',
374
- agents: [],
375
- tasks: [],
376
- config: { strategy: ctx.flags.strategy || 'development', v1Mode },
377
- createdAt: result.initializedAt || new Date().toISOString(),
378
- updatedAt: new Date().toISOString(),
379
- };
380
- writeJsonFileAtomic(stateFile, store);
381
- }
382
- catch (e) {
383
- if (process.env.DEBUG || process.env.MONOMIND_DEBUG)
384
- console.error('[swarm-init] failed to persist swarm state file:', e);
385
- }
316
+ output.printSuccess('Monoswarm initialized successfully');
317
+ // No further write here: monoswarm_init already persisted the canonical
318
+ // state to `.monomind/monoswarm/state.json` (a single flat record — the
319
+ // CLI and the MCP tools share exactly that one file, so writing a second,
320
+ // differently-shaped copy would overwrite the tool's own record).
386
321
  if (ctx.flags.format === 'json') {
387
322
  output.printJson(result);
388
323
  }
@@ -407,7 +342,7 @@ const startCommand = {
407
342
  {
408
343
  name: 'objective',
409
344
  short: 'o',
410
- description: 'Swarm objective/task',
345
+ description: 'Monoswarm objective/task',
411
346
  type: 'string',
412
347
  required: true,
413
348
  },
@@ -425,20 +360,14 @@ const startCommand = {
425
360
  type: 'boolean',
426
361
  default: true,
427
362
  },
428
- {
429
- name: 'monitor',
430
- description: 'Enable real-time monitoring',
431
- type: 'boolean',
432
- default: true,
433
- },
434
363
  ],
435
364
  examples: [
436
365
  {
437
- command: 'monomind swarm start -o "Build REST API" -s development',
366
+ command: 'monomind monoswarm start -o "Build REST API" -s development',
438
367
  description: 'Start development swarm',
439
368
  },
440
369
  {
441
- command: 'monomind swarm start -o "Analyze codebase" --parallel',
370
+ command: 'monomind monoswarm start -o "Analyze codebase" --parallel',
442
371
  description: 'Parallel analysis',
443
372
  },
444
373
  ],
@@ -480,7 +409,7 @@ const startCommand = {
480
409
  default: true,
481
410
  });
482
411
  if (!confirmed) {
483
- output.printInfo('Swarm execution cancelled');
412
+ output.printInfo('Monoswarm execution cancelled');
484
413
  return { success: true };
485
414
  }
486
415
  }
@@ -496,58 +425,32 @@ const startCommand = {
496
425
  let resolvedSwarmId = swarmId;
497
426
  try {
498
427
  // Actually call MCP to initialize the swarm
499
- const initResult = await callMCPTool('swarm_init', {
428
+ const initResult = await callMCPTool('monoswarm_init', {
500
429
  topology: 'hierarchical',
501
430
  maxAgents: totalAgents,
502
431
  strategy: strategy === 'development' ? 'specialized' : strategy,
503
432
  });
504
433
  const mcpData = typeof initResult === 'string' ? JSON.parse(initResult) : initResult;
505
- // Prefer the canonical ID assigned by the MCP server over the locally generated one
506
- resolvedSwarmId = mcpData?.swarmId ?? mcpData?.id ?? swarmId;
507
- spinner.succeed('Swarm initialized via MCP');
434
+ // Prefer the canonical ID assigned by the MCP tool over the locally generated one
435
+ resolvedSwarmId = mcpData?.monoswarmId ?? swarmId;
436
+ spinner.succeed('Monoswarm initialized via MCP');
508
437
  }
509
438
  catch (err) {
510
- // swarm_init runs in-process via the local MCP tool registry — there is no
439
+ // monoswarm_init runs in-process via the local MCP tool registry — there is no
511
440
  // separate MCP server to "start" here. A failure means the handler itself
512
441
  // threw (bad input, filesystem/config issue, etc.), not that a server is down.
513
- spinner.fail('swarm_init failed — swarm metadata saved locally only');
442
+ spinner.fail('monoswarm_init failed — monoswarm metadata saved locally only');
514
443
  output.writeln(output.dim(` Error: ${err instanceof Error ? err.message : String(err)}`));
515
444
  output.writeln(output.dim(' Run with -v/--verbose for more detail, or `monomind doctor` to check config/permission issues.'));
516
445
  }
517
- // Persist swarm state to MCP-canonical path so CLI and MCP share state
518
- const swarmDir = getSwarmDir();
519
- if (!fs.existsSync(swarmDir))
520
- fs.mkdirSync(swarmDir, { recursive: true });
521
- // Read existing store to preserve other swarms
522
- const stateFile2 = path.join(swarmDir, SWARM_STATE_FILE);
523
- let startStore = { swarms: {}, version: '3.0.0' };
524
- if (fs.existsSync(stateFile2)) {
525
- try {
526
- startStore = JSON.parse(fs.readFileSync(stateFile2, 'utf-8'));
527
- }
528
- catch {
529
- /* use default */
530
- }
531
- }
532
- if (!startStore.swarms || typeof startStore.swarms !== 'object')
533
- startStore.swarms = {};
534
- startStore.swarms[resolvedSwarmId] = {
535
- swarmId: resolvedSwarmId,
536
- topology: 'hierarchical',
537
- maxAgents: totalAgents,
538
- // P0-4: same fix as swarm init — persisted status must match the
539
- // "No agents are running" message below, not claim 'running'.
540
- status: 'configured',
541
- agents: [],
542
- tasks: [],
543
- config: { strategy, objective, agentPlan, parallel: ctx.flags.parallel ?? true },
544
- createdAt: new Date().toISOString(),
545
- updatedAt: new Date().toISOString(),
546
- };
547
- writeJsonFileAtomic(stateFile2, startStore);
446
+ // No further write here: monoswarm_init (called above) already persisted
447
+ // the canonical state to `.monomind/monoswarm/state.json` — a single flat
448
+ // record shared with the MCP tools, not a per-id map. `objective` and
449
+ // `agentPlan` are display-only for this command; they are not tracked in
450
+ // the merged monoswarm state (see getSwarmStatus()'s objective field).
548
451
  output.writeln();
549
- output.printSuccess(`Swarm ${resolvedSwarmId} config written (${totalAgents} agent slots reserved). No agents are running — use 'agent spawn' or hive-mind spawn --claude to dispatch Task-tool agents.`);
550
- output.writeln(output.dim(` Monitor: monomind swarm status ${resolvedSwarmId}`));
452
+ output.printSuccess(`Monoswarm ${resolvedSwarmId} config written (${totalAgents} agent slots reserved). No agents are running — use 'agent spawn' to dispatch Task-tool agents.`);
453
+ output.writeln(output.dim(` Monitor: monomind monoswarm status ${resolvedSwarmId}`));
551
454
  return {
552
455
  success: true,
553
456
  data: { swarmId: resolvedSwarmId, objective, strategy, agents: totalAgents },
@@ -572,12 +475,12 @@ const statusCommand = {
572
475
  output.writeln(output.warning('No active swarm'));
573
476
  output.writeln();
574
477
  output.writeln(output.dim('Start a swarm with:'));
575
- output.writeln(output.dim(' npx monomind@latest swarm init'));
576
- output.writeln(output.dim(' npx monomind@latest swarm start'));
478
+ output.writeln(output.dim(' npx monomind@latest monoswarm init'));
479
+ output.writeln(output.dim(' npx monomind@latest monoswarm start'));
577
480
  output.writeln();
578
481
  return { success: true, data: status };
579
482
  }
580
- output.writeln(output.bold(`Swarm Status: ${status.id}`));
483
+ output.writeln(output.bold(`Monoswarm Status: ${status.id}`));
581
484
  output.writeln();
582
485
  // Progress bar
583
486
  output.writeln(`Overall Progress: ${output.progressBar(status.progress, 100, 40)}`);
@@ -615,19 +518,11 @@ const statusCommand = {
615
518
  // Metrics
616
519
  output.writeln(output.bold('Performance Metrics'));
617
520
  output.printList([
618
- `Tokens Used: ${status.metrics.tokensUsed.toLocaleString()}`,
521
+ `Tokens Used: ${status.metrics.tokensUsed}`,
619
522
  `Avg Response Time: ${status.metrics.avgResponseTime}`,
620
523
  `Success Rate: ${status.metrics.successRate}`,
621
524
  `Elapsed Time: ${status.metrics.elapsedTime}`,
622
525
  ]);
623
- output.writeln();
624
- // Coordination stats
625
- output.writeln(output.bold('Coordination'));
626
- output.printList([
627
- `Consensus Rounds: ${status.coordination.consensusRounds}`,
628
- `Messages Sent: ${status.coordination.messagesSent}`,
629
- `Conflicts Resolved: ${status.coordination.conflictsResolved}`,
630
- ]);
631
526
  return { success: true, data: status };
632
527
  },
633
528
  };
@@ -654,7 +549,7 @@ const stopCommand = {
654
549
  const swarmId = ctx.args[0];
655
550
  const force = ctx.flags.force;
656
551
  if (!swarmId) {
657
- output.printError('Swarm ID is required');
552
+ output.printError('Monoswarm ID is required');
658
553
  return { success: false, exitCode: 1 };
659
554
  }
660
555
  if (ctx.interactive && !force) {
@@ -668,45 +563,17 @@ const stopCommand = {
668
563
  }
669
564
  }
670
565
  output.printInfo(`Stopping swarm ${swarmId}...`);
671
- // Attempt MCP cleanup first — only persist 'stopped' state if it succeeds
672
- let mcpStopped = false;
566
+ // monoswarm_shutdown marks the canonical state file terminated and clears
567
+ // the roster itself — no further local write is needed here.
673
568
  try {
674
- await callMCPTool('swarm_shutdown', { swarmId, force });
675
- output.writeln(output.dim(' MCP swarm stopped'));
676
- mcpStopped = true;
569
+ await callMCPTool('monoswarm_shutdown', { swarmId, force });
570
+ output.writeln(output.dim(' Monoswarm state updated'));
677
571
  }
678
572
  catch (err) {
679
573
  output.printWarning(`MCP stop failed: ${String(err)}`);
680
574
  return { success: false, message: `MCP stop failed: ${String(err)}`, exitCode: 1 };
681
575
  }
682
- // Only update persisted swarm state if the MCP call succeeded (#1423)
683
- if (mcpStopped) {
684
- const stopStateFile = getSwarmStateFile();
685
- if (fs.existsSync(stopStateFile)) {
686
- try {
687
- const stopStatSz = fs.statSync(stopStateFile).size;
688
- if (stopStatSz > 10_485_760)
689
- throw new Error('swarm state file too large');
690
- const store = JSON.parse(fs.readFileSync(stopStateFile, 'utf-8'));
691
- // Update the specific swarm in the MCP store format
692
- if (store?.swarms?.[swarmId]) {
693
- store.swarms[swarmId].status = 'terminated';
694
- store.swarms[swarmId].updatedAt = new Date().toISOString();
695
- }
696
- else if (store?.id || store?.swarmId) {
697
- // Legacy format
698
- store.status = 'stopped';
699
- store.stoppedAt = new Date().toISOString();
700
- }
701
- writeJsonFileAtomic(stopStateFile, store);
702
- output.writeln(output.dim(' Swarm state updated'));
703
- }
704
- catch {
705
- output.writeln(output.dim(' Could not update swarm state file'));
706
- }
707
- }
708
- }
709
- output.printSuccess(`Swarm ${swarmId} stopped`);
576
+ output.printSuccess(`Monoswarm ${swarmId} stopped`);
710
577
  return { success: true, data: { swarmId, stopped: true, force } };
711
578
  },
712
579
  };
@@ -734,7 +601,7 @@ const scaleCommand = {
734
601
  const targetAgents = ctx.flags.agents;
735
602
  const agentType = ctx.flags.type;
736
603
  if (!swarmId) {
737
- output.printError('Swarm ID is required');
604
+ output.printError('Monoswarm ID is required');
738
605
  return { success: false, exitCode: 1 };
739
606
  }
740
607
  // 0 is a valid target (scale a swarm down to no agents) — check for
@@ -745,13 +612,13 @@ const scaleCommand = {
745
612
  }
746
613
  output.printInfo(`Scaling swarm ${swarmId} to ${targetAgents} agents...`);
747
614
  try {
748
- const result = await callMCPTool('swarm_scale', { swarmId, targetAgents, agentType });
615
+ const result = await callMCPTool('monoswarm_scale', { swarmId, targetAgents, agentType });
749
616
  if (!result.success) {
750
617
  output.printError(result.error || 'Failed to scale swarm');
751
618
  return { success: false, exitCode: 1 };
752
619
  }
753
620
  if (result.spawned.length === 0 && result.terminated.length === 0) {
754
- output.printInfo('Swarm already at target size');
621
+ output.printInfo('Monoswarm already at target size');
755
622
  return { success: true, data: result };
756
623
  }
757
624
  if (result.spawned.length > 0) {
@@ -769,119 +636,38 @@ const scaleCommand = {
769
636
  }
770
637
  },
771
638
  };
772
- // Coordinate command (v1 specific)
773
- const coordinateCommand = {
774
- name: 'coordinate',
775
- description: 'Execute v1 15-agent hierarchical mesh coordination',
776
- options: [
777
- {
778
- name: 'agents',
779
- description: 'Number of agents',
780
- type: 'number',
781
- default: 15,
782
- },
783
- {
784
- name: 'domains',
785
- description: 'Domains to activate',
786
- type: 'array',
787
- },
788
- ],
789
- action: async (ctx) => {
790
- const agentCount = ctx.flags.agents || 15;
791
- output.writeln();
792
- output.writeln(output.bold('v1 15-Agent Hierarchical Mesh Coordination'));
793
- output.writeln();
794
- // agent structure
795
- const v1Agents = [
796
- { id: 1, role: 'Queen Coordinator', domain: 'Orchestration', status: 'primary' },
797
- { id: 2, role: 'Security Architect', domain: 'Security', status: 'active' },
798
- { id: 3, role: 'Security Auditor', domain: 'Security', status: 'active' },
799
- { id: 4, role: 'Test Architect', domain: 'Security', status: 'active' },
800
- { id: 5, role: 'Core Architect', domain: 'Core', status: 'active' },
801
- { id: 6, role: 'Memory Specialist', domain: 'Core', status: 'active' },
802
- { id: 7, role: 'Swarm Specialist', domain: 'Core', status: 'active' },
803
- { id: 8, role: 'Integration Architect', domain: 'Integration', status: 'active' },
804
- { id: 9, role: 'Performance Engineer', domain: 'Integration', status: 'active' },
805
- { id: 10, role: 'CLI Developer', domain: 'Integration', status: 'active' },
806
- { id: 11, role: 'Hooks Developer', domain: 'Integration', status: 'active' },
807
- { id: 12, role: 'MCP Specialist', domain: 'Integration', status: 'active' },
808
- { id: 13, role: 'Project Coordinator', domain: 'Management', status: 'active' },
809
- { id: 14, role: 'Documentation Lead', domain: 'Management', status: 'standby' },
810
- { id: 15, role: 'DevOps Engineer', domain: 'Management', status: 'standby' },
811
- ].slice(0, agentCount);
812
- output.printTable({
813
- columns: [
814
- { key: 'id', header: '#', width: 3, align: 'right' },
815
- { key: 'role', header: 'Role', width: 22 },
816
- { key: 'domain', header: 'Domain', width: 15 },
817
- {
818
- key: 'status',
819
- header: 'Status',
820
- width: 10,
821
- format: (v) => {
822
- if (v === 'primary')
823
- return output.highlight(String(v));
824
- if (v === 'active')
825
- return output.success(String(v));
826
- return output.dim(String(v));
827
- },
828
- },
829
- ],
830
- data: v1Agents,
831
- });
832
- // Actually initialize via MCP instead of just displaying (#1423)
833
- output.writeln();
834
- try {
835
- await callMCPTool('swarm_init', {
836
- topology: 'hierarchical-mesh',
837
- maxAgents: agentCount,
838
- strategy: 'specialized',
839
- });
840
- output.printSuccess(`Swarm coordination config written (${agentCount} agent slots reserved) via MCP. No agents are running.`);
841
- }
842
- catch {
843
- output.printWarning('MCP unavailable — showing agent plan only (no swarm state written)');
844
- }
845
- output.writeln();
846
- output.writeln(output.dim('Use Claude Code Task tool or hive-mind spawn --claude to drive actual agent execution.'));
847
- return { success: true, data: { agents: v1Agents, count: agentCount } };
848
- },
849
- };
850
639
  // Main swarm command
851
- export const swarmCommand = {
852
- name: 'swarm',
853
- description: 'Swarm coordination commands',
640
+ export const monoswarmCommand = {
641
+ name: 'monoswarm',
642
+ description: 'Monoswarm coordination commands',
854
643
  subcommands: [
855
644
  initCommand,
856
645
  startCommand,
857
646
  statusCommand,
858
647
  stopCommand,
859
648
  scaleCommand,
860
- coordinateCommand,
861
649
  ],
862
650
  options: [],
863
651
  examples: [
864
- { command: 'monomind swarm init --v1-mode', description: 'Initialize swarm' },
652
+ { command: 'monomind monoswarm init --v1-mode', description: 'Initialize monoswarm' },
865
653
  {
866
- command: 'monomind swarm start -o "Build API" -s development',
867
- description: 'Start development swarm',
654
+ command: 'monomind monoswarm start -o "Build API" -s development',
655
+ description: 'Start development monoswarm',
868
656
  },
869
- { command: 'monomind swarm coordinate --agents 15', description: 'v1 coordination' },
870
657
  ],
871
658
  action: async (ctx) => {
872
659
  output.writeln();
873
- output.writeln(output.bold('Swarm Coordination Commands'));
660
+ output.writeln(output.bold('Monoswarm Coordination Commands'));
874
661
  output.writeln();
875
- output.writeln('Usage: monomind swarm <subcommand> [options]');
662
+ output.writeln('Usage: monomind monoswarm <subcommand> [options]');
876
663
  output.writeln();
877
664
  output.writeln('Subcommands:');
878
665
  output.printList([
879
- `${output.highlight('init')} - Initialize a new swarm`,
880
- `${output.highlight('start')} - Start swarm execution`,
881
- `${output.highlight('status')} - Show swarm status`,
882
- `${output.highlight('stop')} - Stop swarm execution`,
883
- `${output.highlight('scale')} - Scale swarm agent count`,
884
- `${output.highlight('coordinate')} - 15-agent coordination`,
666
+ `${output.highlight('init')} - Initialize a new monoswarm`,
667
+ `${output.highlight('start')} - Start monoswarm execution`,
668
+ `${output.highlight('status')} - Show monoswarm status`,
669
+ `${output.highlight('stop')} - Stop monoswarm execution`,
670
+ `${output.highlight('scale')} - Scale monoswarm agent count`,
885
671
  ]);
886
672
  return { success: true };
887
673
  },
@@ -948,5 +734,5 @@ function getAgentPlan(strategy) {
948
734
  };
949
735
  return plans[strategy] || plans.development;
950
736
  }
951
- export default swarmCommand;
952
- //# sourceMappingURL=swarm.js.map
737
+ export default monoswarmCommand;
738
+ //# sourceMappingURL=monoswarm.js.map