monomind 1.7.0 → 1.9.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 (562) hide show
  1. package/.claude/agents/design/design-monodesign.md +121 -0
  2. package/.claude/agents/github/issue-tracker.md +12 -12
  3. package/.claude/agents/github/pr-manager.md +10 -10
  4. package/.claude/agents/github/release-manager.md +49 -105
  5. package/.claude/agents/github/repo-architect.md +73 -92
  6. package/.claude/agents/github/sync-coordinator.md +55 -123
  7. package/.claude/agents/marketing/marketing-competitive-content.md +155 -0
  8. package/.claude/agents/marketing/marketing-content-creator.md +13 -0
  9. package/.claude/agents/marketing/marketing-cro-specialist.md +147 -0
  10. package/.claude/agents/marketing/marketing-email-specialist.md +90 -0
  11. package/.claude/agents/marketing/marketing-launch-strategist.md +129 -0
  12. package/.claude/agents/marketing/marketing-pricing-strategist.md +127 -0
  13. package/.claude/agents/specialists/integration-architect.md +94 -0
  14. package/.claude/commands/agents/README.md +4 -0
  15. package/.claude/commands/agents/agent-capabilities.md +6 -2
  16. package/.claude/commands/agents/agent-coordination.md +4 -0
  17. package/.claude/commands/agents/agent-spawning.md +4 -0
  18. package/.claude/commands/agents/agent-types.md +6 -2
  19. package/.claude/commands/analysis/README.md +14 -5
  20. package/.claude/commands/analysis/bottleneck-detect.md +30 -123
  21. package/.claude/commands/analysis/performance-bottlenecks.md +14 -14
  22. package/.claude/commands/analysis/performance-report.md +38 -11
  23. package/.claude/commands/analysis/token-efficiency.md +13 -16
  24. package/.claude/commands/analysis/token-usage.md +34 -12
  25. package/.claude/commands/automation/README.md +15 -5
  26. package/.claude/commands/automation/auto-agent.md +49 -85
  27. package/.claude/commands/automation/self-healing.md +20 -18
  28. package/.claude/commands/automation/session-memory.md +28 -29
  29. package/.claude/commands/automation/smart-agents.md +17 -9
  30. package/.claude/commands/automation/smart-spawn.md +52 -11
  31. package/.claude/commands/automation/workflow-select.md +46 -11
  32. package/.claude/commands/browse.md +5 -0
  33. package/.claude/commands/coordination/README.md +9 -5
  34. package/.claude/commands/coordination/agent-spawn.md +53 -9
  35. package/.claude/commands/coordination/swarm-init.md +39 -42
  36. package/.claude/commands/coordination/task-orchestrate.md +65 -11
  37. package/.claude/commands/github/README.md +21 -8
  38. package/.claude/commands/github/github-modes.md +9 -5
  39. package/.claude/commands/github/issue-tracker.md +34 -33
  40. package/.claude/commands/github/pr-manager.md +20 -17
  41. package/.claude/commands/github/release-manager.md +37 -49
  42. package/.claude/commands/github/repo-architect.md +39 -41
  43. package/.claude/commands/github/sync-coordinator.md +45 -49
  44. package/.claude/commands/hive-mind/README.md +42 -17
  45. package/.claude/commands/hive-mind/hive-mind-consensus.md +68 -4
  46. package/.claude/commands/hive-mind/hive-mind-init.md +55 -5
  47. package/.claude/commands/hive-mind/hive-mind-memory.md +69 -4
  48. package/.claude/commands/hive-mind/hive-mind-spawn.md +71 -10
  49. package/.claude/commands/hive-mind/hive-mind-status.md +52 -4
  50. package/.claude/commands/hive-mind/hive-mind-stop.md +51 -4
  51. package/.claude/commands/hive-mind/hive-mind.md +74 -14
  52. package/.claude/commands/hooks/README.md +62 -7
  53. package/.claude/commands/hooks/overview.md +94 -35
  54. package/.claude/commands/hooks/post-edit.md +48 -87
  55. package/.claude/commands/hooks/post-task.md +37 -87
  56. package/.claude/commands/hooks/pre-edit.md +52 -84
  57. package/.claude/commands/hooks/pre-task.md +46 -81
  58. package/.claude/commands/hooks/session-end.md +49 -85
  59. package/.claude/commands/hooks/setup.md +87 -58
  60. package/.claude/commands/mastermind/_repeat.md +308 -0
  61. package/.claude/commands/mastermind/architect.md +49 -0
  62. package/.claude/commands/mastermind/brain.md +98 -0
  63. package/.claude/commands/mastermind/build.md +22 -0
  64. package/.claude/commands/mastermind/content.md +22 -0
  65. package/.claude/commands/mastermind/createorg.md +94 -0
  66. package/.claude/commands/mastermind/finance.md +22 -0
  67. package/.claude/commands/mastermind/idea.md +22 -0
  68. package/.claude/commands/mastermind/marketing.md +22 -0
  69. package/.claude/commands/mastermind/master.md +379 -0
  70. package/.claude/commands/mastermind/ops.md +22 -0
  71. package/.claude/commands/mastermind/release.md +22 -0
  72. package/.claude/commands/mastermind/research.md +22 -0
  73. package/.claude/commands/mastermind/review.md +22 -0
  74. package/.claude/commands/mastermind/runorg.md +106 -0
  75. package/.claude/commands/mastermind/sales.md +22 -0
  76. package/.claude/commands/mastermind/techport.md +17 -0
  77. package/.claude/commands/memory/README.md +75 -5
  78. package/.claude/commands/memory/memory-search.md +63 -11
  79. package/.claude/commands/monitoring/README.md +64 -4
  80. package/.claude/commands/monitoring/agent-metrics.md +50 -10
  81. package/.claude/commands/monitoring/agents.md +59 -32
  82. package/.claude/commands/monitoring/status.md +96 -34
  83. package/.claude/commands/monograph/README.md +102 -0
  84. package/.claude/commands/monograph/monograph-build.md +79 -0
  85. package/.claude/commands/monograph/monograph-search.md +96 -0
  86. package/.claude/commands/monograph/monograph-stats.md +53 -0
  87. package/.claude/commands/monograph/monograph-watch.md +63 -0
  88. package/.claude/commands/monograph/monograph-wiki.md +91 -0
  89. package/.claude/commands/monomind/createtask.md +277 -0
  90. package/.claude/commands/{monomind-do.md → monomind/do.md} +22 -9
  91. package/.claude/commands/monomind/help.md +118 -0
  92. package/.claude/commands/{monomind-idea.md → monomind/idea.md} +23 -29
  93. package/.claude/commands/{monomind-improve.md → monomind/improve.md} +24 -30
  94. package/.claude/commands/monomind/memory.md +230 -0
  95. package/.claude/commands/monomind/repeat.md +201 -0
  96. package/.claude/commands/monomind/review.md +313 -0
  97. package/.claude/commands/monomind/specialagents.md +125 -0
  98. package/.claude/commands/monomind/swarm.md +161 -0
  99. package/.claude/commands/monomind/understand.md +148 -0
  100. package/.claude/commands/optimization/README.md +69 -5
  101. package/.claude/commands/optimization/auto-topology.md +66 -43
  102. package/.claude/commands/optimization/parallel-execution.md +65 -39
  103. package/.claude/commands/optimization/performance-optimize.md +79 -0
  104. package/.claude/commands/pair/README.md +48 -230
  105. package/.claude/commands/pair/examples.md +85 -441
  106. package/.claude/commands/pair/modes.md +77 -303
  107. package/.claude/commands/pair/session.md +76 -359
  108. package/.claude/commands/sparc/analyzer.md +9 -26
  109. package/.claude/commands/sparc/architect.md +8 -25
  110. package/.claude/commands/sparc/ask.md +27 -68
  111. package/.claude/commands/sparc/batch-executor.md +8 -25
  112. package/.claude/commands/sparc/code.md +12 -53
  113. package/.claude/commands/sparc/coder.md +8 -25
  114. package/.claude/commands/sparc/debug.md +12 -53
  115. package/.claude/commands/sparc/debugger.md +8 -25
  116. package/.claude/commands/sparc/designer.md +8 -25
  117. package/.claude/commands/sparc/devops.md +16 -57
  118. package/.claude/commands/sparc/docs-writer.md +12 -53
  119. package/.claude/commands/sparc/documenter.md +8 -25
  120. package/.claude/commands/sparc/innovator.md +8 -25
  121. package/.claude/commands/sparc/integration.md +12 -53
  122. package/.claude/commands/sparc/mcp.md +12 -53
  123. package/.claude/commands/sparc/memory-manager.md +28 -25
  124. package/.claude/commands/sparc/optimizer.md +8 -25
  125. package/.claude/commands/sparc/orchestrator.md +35 -97
  126. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +13 -54
  127. package/.claude/commands/sparc/refinement-optimization-mode.md +13 -54
  128. package/.claude/commands/sparc/researcher.md +8 -25
  129. package/.claude/commands/sparc/reviewer.md +8 -25
  130. package/.claude/commands/sparc/security-review.md +13 -54
  131. package/.claude/commands/sparc/sparc-modes.md +97 -151
  132. package/.claude/commands/sparc/sparc.md +16 -56
  133. package/.claude/commands/sparc/spec-pseudocode.md +13 -54
  134. package/.claude/commands/sparc/supabase-admin.md +19 -66
  135. package/.claude/commands/sparc/swarm-coordinator.md +21 -25
  136. package/.claude/commands/sparc/tdd.md +8 -25
  137. package/.claude/commands/sparc/tester.md +8 -25
  138. package/.claude/commands/sparc/tutorial.md +12 -53
  139. package/.claude/commands/sparc/workflow-manager.md +8 -25
  140. package/.claude/commands/sparc.md +76 -130
  141. package/.claude/commands/stream-chain/pipeline.md +72 -77
  142. package/.claude/commands/stream-chain/run.md +133 -47
  143. package/.claude/commands/swarm/README.md +37 -12
  144. package/.claude/commands/swarm/analysis.md +47 -69
  145. package/.claude/commands/swarm/development.md +45 -69
  146. package/.claude/commands/swarm/examples.md +77 -142
  147. package/.claude/commands/swarm/maintenance.md +47 -74
  148. package/.claude/commands/swarm/optimization.md +54 -87
  149. package/.claude/commands/swarm/research.md +47 -107
  150. package/.claude/commands/swarm/swarm-analysis.md +58 -4
  151. package/.claude/commands/swarm/swarm-background.md +61 -4
  152. package/.claude/commands/swarm/swarm-modes.md +63 -4
  153. package/.claude/commands/swarm/swarm-monitor.md +50 -4
  154. package/.claude/commands/swarm/swarm-status.md +40 -4
  155. package/.claude/commands/swarm/swarm-strategies.md +73 -5
  156. package/.claude/commands/swarm/swarm.md +70 -18
  157. package/.claude/commands/swarm/testing.md +51 -102
  158. package/.claude/commands/tokens.md +6 -1
  159. package/.claude/commands/training/README.md +36 -6
  160. package/.claude/commands/training/model-update.md +68 -15
  161. package/.claude/commands/training/neural-patterns.md +54 -55
  162. package/.claude/commands/training/neural-train.md +70 -16
  163. package/.claude/commands/training/pattern-learn.md +60 -16
  164. package/.claude/commands/training/specialization.md +78 -49
  165. package/.claude/commands/truth/start.md +87 -109
  166. package/.claude/commands/ts.md +7 -2
  167. package/.claude/commands/verify/check.md +90 -34
  168. package/.claude/commands/verify/start.md +71 -94
  169. package/.claude/commands/workflows/README.md +62 -6
  170. package/.claude/commands/workflows/development.md +69 -61
  171. package/.claude/commands/workflows/research.md +73 -47
  172. package/.claude/commands/workflows/workflow-create.md +75 -16
  173. package/.claude/commands/workflows/workflow-execute.md +94 -16
  174. package/.claude/commands/workflows/workflow-export.md +81 -16
  175. package/.claude/helpers/control-start.cjs +91 -0
  176. package/.claude/helpers/extras-registry.json +4104 -1991
  177. package/.claude/helpers/graphify-freshen.cjs +44 -13
  178. package/.claude/helpers/hook-handler.cjs +256 -1
  179. package/.claude/helpers/loop-tracker.cjs +107 -0
  180. package/.claude/helpers/router.cjs +48 -68
  181. package/.claude/helpers/skill-registry.json +89 -104
  182. package/.claude/helpers/statusline.cjs +33 -2
  183. package/.claude/scheduled_tasks.lock +1 -0
  184. package/.claude/settings.json +15 -0
  185. package/.claude/skills/.monomind/data/ranked-context.json +5 -0
  186. package/.claude/skills/.monomind/sessions/current.json +13 -0
  187. package/.claude/skills/.monomind/sessions/session-1777829336455.json +15 -0
  188. package/.claude/skills/.monomind/sessions/session-1777831614725.json +15 -0
  189. package/.claude/skills/.monomind/sessions/session-1777832095857.json +15 -0
  190. package/.claude/skills/.monomind/sessions/session-1777839814183.json +15 -0
  191. package/.claude/skills/.monomind/sessions/session-1777841847131.json +15 -0
  192. package/.claude/skills/.monomind/sessions/session-1777843309463.json +15 -0
  193. package/.claude/skills/.monomind/sessions/session-1777880867159.json +15 -0
  194. package/.claude/skills/.monomind/sessions/session-1777881884593.json +15 -0
  195. package/.claude/skills/.monomind/sessions/session-1777884090471.json +15 -0
  196. package/.claude/skills/.monomind/sessions/session-1777884808221.json +15 -0
  197. package/.claude/skills/.monomind/sessions/session-1777885672155.json +15 -0
  198. package/.claude/skills/.monomind/sessions/session-1777886852818.json +15 -0
  199. package/.claude/skills/.monomind/sessions/session-1777896532690.json +15 -0
  200. package/.claude/skills/agentdb-advanced/SKILL.md +11 -12
  201. package/.claude/skills/agentdb-learning/SKILL.md +20 -21
  202. package/.claude/skills/agentdb-memory-patterns/SKILL.md +28 -30
  203. package/.claude/skills/agentdb-optimization/SKILL.md +11 -12
  204. package/.claude/skills/agentdb-vector-search/SKILL.md +37 -41
  205. package/.claude/skills/{v3-integration-deep → agentic-integration}/SKILL.md +20 -13
  206. package/.claude/skills/agentic-jujutsu/SKILL.md +22 -22
  207. package/.claude/skills/{v3-cli-modernization → cli-modernization}/SKILL.md +17 -8
  208. package/.claude/skills/{v3-core-implementation → core-implementation}/SKILL.md +33 -8
  209. package/.claude/skills/{v3-ddd-architecture → ddd-architecture}/SKILL.md +18 -25
  210. package/.claude/skills/github-code-review/SKILL.md +82 -83
  211. package/.claude/skills/github-multi-repo/SKILL.md +42 -46
  212. package/.claude/skills/github-project-management/SKILL.md +83 -88
  213. package/.claude/skills/github-release-management/SKILL.md +12 -18
  214. package/.claude/skills/github-workflow-automation/SKILL.md +70 -74
  215. package/.claude/skills/hooks-automation/SKILL.md +9 -13
  216. package/.claude/skills/mastermind/_intake.md +83 -0
  217. package/.claude/skills/mastermind/_protocol.md +275 -0
  218. package/.claude/skills/mastermind/architect.md +847 -0
  219. package/.claude/skills/mastermind/build.md +158 -0
  220. package/.claude/skills/mastermind/content.md +185 -0
  221. package/.claude/skills/mastermind/createorg.md +318 -0
  222. package/.claude/skills/mastermind/finance.md +154 -0
  223. package/.claude/skills/mastermind/idea.md +158 -0
  224. package/.claude/skills/mastermind/marketing.md +216 -0
  225. package/.claude/skills/mastermind/monotask.md +350 -0
  226. package/.claude/skills/mastermind/ops.md +156 -0
  227. package/.claude/skills/mastermind/references/copywriting-frameworks.md +181 -0
  228. package/.claude/skills/mastermind/references/persuasion-psychology.md +158 -0
  229. package/.claude/skills/mastermind/release.md +156 -0
  230. package/.claude/skills/mastermind/research.md +156 -0
  231. package/.claude/skills/mastermind/review.md +157 -0
  232. package/.claude/skills/mastermind/runorg.md +308 -0
  233. package/.claude/skills/mastermind/sales.md +158 -0
  234. package/.claude/skills/mastermind/techport.md +743 -0
  235. package/.claude/skills/{v3-mcp-optimization → mcp-optimization}/SKILL.md +35 -14
  236. package/.claude/skills/{v3-memory-unification → memory-unification}/SKILL.md +20 -4
  237. package/.claude/skills/monodesign/SKILL.md +302 -0
  238. package/.claude/skills/monodesign/reference/adapt.md +190 -0
  239. package/.claude/skills/monodesign/reference/animate.md +175 -0
  240. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +187 -0
  241. package/.claude/skills/monodesign/reference/audit.md +133 -0
  242. package/.claude/skills/monodesign/reference/bolder.md +113 -0
  243. package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
  244. package/.claude/skills/monodesign/reference/brand.md +114 -0
  245. package/.claude/skills/monodesign/reference/clarify.md +174 -0
  246. package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
  247. package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
  248. package/.claude/skills/monodesign/reference/colorize.md +154 -0
  249. package/.claude/skills/monodesign/reference/component-specs.md +260 -0
  250. package/.claude/skills/monodesign/reference/component-states.md +274 -0
  251. package/.claude/skills/monodesign/reference/component-system.md +358 -0
  252. package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
  253. package/.claude/skills/monodesign/reference/craft.md +193 -0
  254. package/.claude/skills/monodesign/reference/critique.md +213 -0
  255. package/.claude/skills/monodesign/reference/delight.md +302 -0
  256. package/.claude/skills/monodesign/reference/design-principles.md +246 -0
  257. package/.claude/skills/monodesign/reference/distill.md +111 -0
  258. package/.claude/skills/monodesign/reference/document.md +427 -0
  259. package/.claude/skills/monodesign/reference/extract.md +69 -0
  260. package/.claude/skills/monodesign/reference/harden.md +347 -0
  261. package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
  262. package/.claude/skills/monodesign/reference/image-prompts.md +118 -0
  263. package/.claude/skills/monodesign/reference/interaction-design.md +195 -0
  264. package/.claude/skills/monodesign/reference/layout.md +141 -0
  265. package/.claude/skills/monodesign/reference/live.md +622 -0
  266. package/.claude/skills/monodesign/reference/motion-design.md +109 -0
  267. package/.claude/skills/monodesign/reference/onboard.md +234 -0
  268. package/.claude/skills/monodesign/reference/optimize.md +258 -0
  269. package/.claude/skills/monodesign/reference/overdrive.md +130 -0
  270. package/.claude/skills/monodesign/reference/personas.md +179 -0
  271. package/.claude/skills/monodesign/reference/polish.md +233 -0
  272. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
  273. package/.claude/skills/monodesign/reference/product.md +62 -0
  274. package/.claude/skills/monodesign/reference/quieter.md +99 -0
  275. package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
  276. package/.claude/skills/monodesign/reference/shape.md +151 -0
  277. package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
  278. package/.claude/skills/monodesign/reference/teach.md +156 -0
  279. package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
  280. package/.claude/skills/monodesign/reference/typeset.md +124 -0
  281. package/.claude/skills/monodesign/reference/typography.md +159 -0
  282. package/.claude/skills/monodesign/reference/ux-research.md +143 -0
  283. package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
  284. package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
  285. package/.claude/skills/monomotion/SKILL.md +145 -0
  286. package/.claude/skills/monomotion/rules/api-control.md +139 -0
  287. package/.claude/skills/monomotion/rules/effects.md +109 -0
  288. package/.claude/skills/monomotion/rules/integration.md +140 -0
  289. package/.claude/skills/monomotion/rules/scroll.md +131 -0
  290. package/.claude/skills/monomotion/rules/sequencing.md +105 -0
  291. package/.claude/skills/monomotion/rules/svg.md +101 -0
  292. package/.claude/skills/monomotion/rules/text.md +119 -0
  293. package/.claude/skills/pair-programming/SKILL.md +1 -1
  294. package/.claude/skills/performance-analysis/SKILL.md +3 -3
  295. package/.claude/skills/{v3-performance-optimization → performance-optimization}/SKILL.md +16 -8
  296. package/.claude/skills/reasoningbank-agentdb/SKILL.md +17 -19
  297. package/.claude/skills/reasoningbank-intelligence/SKILL.md +4 -6
  298. package/.claude/skills/{v3-security-overhaul → security-hardening}/SKILL.md +13 -3
  299. package/.claude/skills/skill-builder/SKILL.md +19 -19
  300. package/.claude/skills/sparc-methodology/SKILL.md +55 -211
  301. package/.claude/skills/stop-slop/SKILL.md +67 -0
  302. package/.claude/skills/stop-slop/references/examples.md +61 -0
  303. package/.claude/skills/stop-slop/references/phrases.md +130 -0
  304. package/.claude/skills/stop-slop/references/structures.md +136 -0
  305. package/.claude/skills/swarm-advanced/SKILL.md +13 -43
  306. package/.claude/skills/{v3-swarm-coordination → swarm-coordination}/SKILL.md +39 -21
  307. package/.claude/skills/swarm-orchestration/SKILL.md +12 -12
  308. package/.claude/skills/verification-quality/SKILL.md +5 -5
  309. package/README.md +5 -5
  310. package/package.json +1 -1
  311. package/packages/@monomind/cli/README.md +5 -5
  312. package/packages/@monomind/cli/bin/cli.js +78 -13
  313. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +33 -7
  314. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +5 -2
  315. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +3 -2
  316. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +1 -1
  317. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +5 -2
  318. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +26 -4
  319. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +17 -9
  320. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +5 -3
  321. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +58 -10
  322. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -1
  323. package/packages/@monomind/cli/dist/src/agents/version-store.js +44 -21
  324. package/packages/@monomind/cli/dist/src/autopilot-state.js +79 -28
  325. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +7 -2
  326. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +20 -8
  327. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +2 -1
  328. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +25 -2
  329. package/packages/@monomind/cli/dist/src/commands/agent.js +6 -4
  330. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +23 -0
  331. package/packages/@monomind/cli/dist/src/commands/autopilot.js +3 -3
  332. package/packages/@monomind/cli/dist/src/commands/benchmark.js +119 -8
  333. package/packages/@monomind/cli/dist/src/commands/claims.js +22 -14
  334. package/packages/@monomind/cli/dist/src/commands/config.js +32 -0
  335. package/packages/@monomind/cli/dist/src/commands/daemon.js +13 -11
  336. package/packages/@monomind/cli/dist/src/commands/deployment.js +21 -2
  337. package/packages/@monomind/cli/dist/src/commands/doctor.js +28 -62
  338. package/packages/@monomind/cli/dist/src/commands/embeddings.js +124 -48
  339. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +15 -14
  340. package/packages/@monomind/cli/dist/src/commands/hooks.js +45 -41
  341. package/packages/@monomind/cli/dist/src/commands/index.d.ts +2 -0
  342. package/packages/@monomind/cli/dist/src/commands/index.js +20 -7
  343. package/packages/@monomind/cli/dist/src/commands/init.js +53 -19
  344. package/packages/@monomind/cli/dist/src/commands/mcp.js +31 -44
  345. package/packages/@monomind/cli/dist/src/commands/memory.js +47 -15
  346. package/packages/@monomind/cli/dist/src/commands/migrate.js +156 -108
  347. package/packages/@monomind/cli/dist/src/commands/monograph.d.ts +8 -0
  348. package/packages/@monomind/cli/dist/src/commands/monograph.js +526 -0
  349. package/packages/@monomind/cli/dist/src/commands/neural.js +96 -56
  350. package/packages/@monomind/cli/dist/src/commands/performance.js +30 -8
  351. package/packages/@monomind/cli/dist/src/commands/plugins.js +13 -37
  352. package/packages/@monomind/cli/dist/src/commands/process.js +25 -2
  353. package/packages/@monomind/cli/dist/src/commands/providers.js +37 -5
  354. package/packages/@monomind/cli/dist/src/commands/replay.js +4 -4
  355. package/packages/@monomind/cli/dist/src/commands/route.js +37 -5
  356. package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +12 -2
  357. package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +15 -0
  358. package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +16 -3
  359. package/packages/@monomind/cli/dist/src/commands/security.js +342 -193
  360. package/packages/@monomind/cli/dist/src/commands/session.js +51 -8
  361. package/packages/@monomind/cli/dist/src/commands/start.js +18 -4
  362. package/packages/@monomind/cli/dist/src/commands/swarm.js +47 -36
  363. package/packages/@monomind/cli/dist/src/commands/tokens.js +11 -11
  364. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +1 -1
  365. package/packages/@monomind/cli/dist/src/commands/workflow.js +31 -4
  366. package/packages/@monomind/cli/dist/src/config-adapter.d.ts +2 -1
  367. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +46 -13
  368. package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -3
  369. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +9 -1
  370. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +4 -2
  371. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +25 -8
  372. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +10 -3
  373. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +50 -16
  374. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +27 -5
  375. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +2 -2
  376. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +26 -16
  377. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +23 -3
  378. package/packages/@monomind/cli/dist/src/index.js +12 -10
  379. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +8 -8
  380. package/packages/@monomind/cli/dist/src/init/executor.js +163 -137
  381. package/packages/@monomind/cli/dist/src/init/helpers-generator.js +49 -36
  382. package/packages/@monomind/cli/dist/src/init/mcp-generator.js +3 -3
  383. package/packages/@monomind/cli/dist/src/init/settings-generator.js +10 -3
  384. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +18 -3
  385. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +3 -1
  386. package/packages/@monomind/cli/dist/src/init/types.d.ts +35 -11
  387. package/packages/@monomind/cli/dist/src/init/types.js +5 -9
  388. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +8 -3
  389. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +38 -4
  390. package/packages/@monomind/cli/dist/src/mcp-client.js +15 -6
  391. package/packages/@monomind/cli/dist/src/mcp-server.d.ts +9 -2
  392. package/packages/@monomind/cli/dist/src/mcp-server.js +182 -35
  393. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +66 -34
  394. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +34 -7
  395. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +25 -16
  396. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +4 -6
  397. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +12 -2
  398. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +199 -20
  399. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +68 -18
  400. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +33 -5
  401. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +59 -4
  402. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +46 -10
  403. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +46 -5
  404. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +29 -16
  405. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.d.ts +4 -67
  406. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +40 -1250
  407. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +38 -10
  408. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +96 -33
  409. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +70 -37
  410. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +1 -0
  411. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +1 -0
  412. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +29 -13
  413. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +9 -0
  414. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +6306 -0
  415. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +121 -37
  416. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +21 -8
  417. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +10 -8
  418. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +4 -1
  419. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +19 -8
  420. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +57 -17
  421. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +35 -17
  422. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +4 -3
  423. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +53 -13
  424. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +63 -14
  425. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +21 -16
  426. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +92 -23
  427. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +41 -10
  428. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -2
  429. package/packages/@monomind/cli/dist/src/memory/intelligence.js +39 -13
  430. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +1 -0
  431. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +149 -56
  432. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +107 -45
  433. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +8 -1
  434. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +25 -8
  435. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +40 -0
  436. package/packages/@monomind/cli/dist/src/observability/replay-reader.js +138 -0
  437. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +35 -5
  438. package/packages/@monomind/cli/dist/src/parser.d.ts +8 -0
  439. package/packages/@monomind/cli/dist/src/parser.js +48 -14
  440. package/packages/@monomind/cli/dist/src/plugins/manager.js +112 -19
  441. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +1 -1
  442. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +80 -62
  443. package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +8 -1
  444. package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +4 -2
  445. package/packages/@monomind/cli/dist/src/production/error-handler.js +27 -5
  446. package/packages/@monomind/cli/dist/src/production/monitoring.js +8 -4
  447. package/packages/@monomind/cli/dist/src/production/rate-limiter.js +30 -22
  448. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +2 -2
  449. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +19 -9
  450. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +1 -0
  451. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +26 -6
  452. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +24 -2
  453. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +1 -2
  454. package/packages/@monomind/cli/dist/src/ruvector/index.js +2 -2
  455. package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +4 -2
  456. package/packages/@monomind/cli/dist/src/ruvector/model-router.js +30 -6
  457. package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +7 -0
  458. package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +35 -12
  459. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +7 -1
  460. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +40 -9
  461. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +3 -1
  462. package/packages/@monomind/cli/dist/src/services/claim-service.js +33 -2
  463. package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +16 -2
  464. package/packages/@monomind/cli/dist/src/services/config-file-manager.js +105 -17
  465. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +51 -11
  466. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +7 -0
  467. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +188 -45
  468. package/packages/@monomind/cli/dist/src/services/registry-api.js +62 -9
  469. package/packages/@monomind/cli/dist/src/services/ruvector-training.js +8 -0
  470. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +4 -1
  471. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +112 -28
  472. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +9 -2
  473. package/packages/@monomind/cli/dist/src/services/worker-queue.js +86 -5
  474. package/packages/@monomind/cli/dist/src/suggest.js +9 -0
  475. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +5 -3
  476. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +17 -5
  477. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +3 -0
  478. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +30 -6
  479. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +5 -3
  480. package/packages/@monomind/cli/dist/src/transfer/export.js +5 -3
  481. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +84 -7
  482. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +13 -4
  483. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +19 -10
  484. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +9 -2
  485. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +68 -13
  486. package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +15 -6
  487. package/packages/@monomind/cli/dist/src/transfer/store/download.js +113 -24
  488. package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +1 -1
  489. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +13 -14
  490. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +3 -3
  491. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +32 -16
  492. package/packages/@monomind/cli/dist/src/update/checker.js +17 -4
  493. package/packages/@monomind/cli/dist/src/update/executor.js +25 -20
  494. package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +11 -0
  495. package/packages/@monomind/cli/dist/src/update/rate-limiter.js +23 -3
  496. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.d.ts +6 -0
  497. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.js +22 -0
  498. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +37 -3
  499. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +27 -11
  500. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +51 -13
  501. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +3 -0
  502. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +6 -2
  503. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +7 -0
  504. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +95 -14
  505. package/packages/@monomind/cli/package.json +5 -2
  506. package/packages/@monomind/guidance/README.md +0 -3
  507. package/packages/@monomind/shared/README.md +0 -1
  508. package/packages/@monomind/shared/dist/types/consensus-audit.d.ts +3 -1
  509. package/packages/README.md +15 -16
  510. package/.claude/agents/design/design-brand-guardian.md +0 -323
  511. package/.claude/agents/design/design-image-prompt-engineer.md +0 -237
  512. package/.claude/agents/design/design-inclusive-visuals-specialist.md +0 -72
  513. package/.claude/agents/design/design-ui-designer.md +0 -384
  514. package/.claude/agents/design/design-ux-architect.md +0 -470
  515. package/.claude/agents/design/design-ux-researcher.md +0 -330
  516. package/.claude/agents/design/design-visual-storyteller.md +0 -150
  517. package/.claude/agents/design/design-whimsy-injector.md +0 -439
  518. package/.claude/agents/v3/integration-architect.md +0 -338
  519. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
  520. package/.claude/commands/coordination/init.md +0 -44
  521. package/.claude/commands/coordination/orchestrate.md +0 -43
  522. package/.claude/commands/coordination/spawn.md +0 -45
  523. package/.claude/commands/github/code-review-swarm.md +0 -550
  524. package/.claude/commands/github/code-review.md +0 -25
  525. package/.claude/commands/github/github-swarm.md +0 -121
  526. package/.claude/commands/github/issue-triage.md +0 -25
  527. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  528. package/.claude/commands/github/pr-enhance.md +0 -26
  529. package/.claude/commands/github/project-board-sync.md +0 -471
  530. package/.claude/commands/github/release-swarm.md +0 -590
  531. package/.claude/commands/github/repo-analyze.md +0 -25
  532. package/.claude/commands/github/swarm-issue.md +0 -482
  533. package/.claude/commands/github/swarm-pr.md +0 -310
  534. package/.claude/commands/github/workflow-automation.md +0 -468
  535. package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
  536. package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
  537. package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
  538. package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
  539. package/.claude/commands/list-agents.md +0 -17
  540. package/.claude/commands/memory/memory-persist.md +0 -25
  541. package/.claude/commands/memory/memory-usage.md +0 -25
  542. package/.claude/commands/memory/neural.md +0 -47
  543. package/.claude/commands/metrics.md +0 -11
  544. package/.claude/commands/monitoring/real-time-view.md +0 -25
  545. package/.claude/commands/monitoring/swarm-monitor.md +0 -25
  546. package/.claude/commands/monomind-createtask.md +0 -302
  547. package/.claude/commands/monomind-help.md +0 -103
  548. package/.claude/commands/monomind-memory.md +0 -107
  549. package/.claude/commands/monomind-repeat.md +0 -149
  550. package/.claude/commands/monomind-swarm.md +0 -205
  551. package/.claude/commands/optimization/cache-manage.md +0 -25
  552. package/.claude/commands/optimization/topology-optimize.md +0 -25
  553. package/.claude/commands/pair/commands.md +0 -546
  554. package/.claude/commands/pair/config.md +0 -510
  555. package/.claude/commands/pair/start.md +0 -209
  556. package/.claude/commands/use-agent.md +0 -67
  557. package/.claude/skills/monomind-createtask/SKILL.md +0 -269
  558. package/.claude/skills/monomind-task-engine/SKILL.md +0 -358
  559. /package/.claude/agents/{v3 → specialists}/memory-specialist.md +0 -0
  560. /package/.claude/agents/{v3 → specialists}/performance-engineer.md +0 -0
  561. /package/.claude/agents/{v3 → specialists}/queen-coordinator.md +0 -0
  562. /package/.claude/agents/{v3 → specialists}/security-architect.md +0 -0
@@ -16,7 +16,7 @@ import { output } from '../output.js';
16
16
  // Dynamic imports for embeddings package
17
17
  async function getEmbeddings() {
18
18
  try {
19
- return await import('@monoes/embeddings');
19
+ return await import('@monomind/embeddings');
20
20
  }
21
21
  catch {
22
22
  return null;
@@ -127,6 +127,21 @@ const searchCommand = {
127
127
  const fs = await import('fs');
128
128
  const path = await import('path');
129
129
  const fullDbPath = path.resolve(process.cwd(), dbPath);
130
+ // Containment + sanity checks. Without these, --db-path /etc/shadow,
131
+ // /proc/self/environ, or /dev/zero would all be loaded into memory and
132
+ // handed to the sql.js parser — info disclosure / parser-CVE surface /
133
+ // OOM hang.
134
+ const projectRoot = path.resolve(process.cwd());
135
+ if (!fullDbPath.startsWith(projectRoot + path.sep) && fullDbPath !== projectRoot) {
136
+ spinner.fail('Invalid db-path');
137
+ output.printError(`db-path must resolve within the project directory: ${projectRoot}`);
138
+ return { success: false, exitCode: 1 };
139
+ }
140
+ if (!/\.(db|sqlite)$/i.test(fullDbPath)) {
141
+ spinner.fail('Invalid db-path');
142
+ output.printError('db-path must end in .db or .sqlite');
143
+ return { success: false, exitCode: 1 };
144
+ }
130
145
  // Check if database exists
131
146
  if (!fs.existsSync(fullDbPath)) {
132
147
  spinner.fail('Database not found');
@@ -134,6 +149,12 @@ const searchCommand = {
134
149
  output.printInfo('Run: monomind memory init');
135
150
  return { success: false, exitCode: 1 };
136
151
  }
152
+ const stat = fs.statSync(fullDbPath);
153
+ if (stat.size > 500 * 1024 * 1024) {
154
+ spinner.fail('Database too large');
155
+ output.printError(`Database exceeds 500MB cap: ${stat.size} bytes`);
156
+ return { success: false, exitCode: 1 };
157
+ }
137
158
  // Load sql.js
138
159
  const initSqlJs = (await import('sql.js')).default;
139
160
  const SQL = await initSqlJs();
@@ -145,14 +166,13 @@ const searchCommand = {
145
166
  const queryResult = await generateEmbedding(query);
146
167
  const queryEmbedding = queryResult.embedding;
147
168
  // Get all entries with embeddings from database
148
- const entries = db.exec(`
149
- SELECT id, key, namespace, content, embedding, embedding_dimensions
150
- FROM memory_entries
151
- WHERE status = 'active'
152
- AND embedding IS NOT NULL
153
- ${namespace !== 'all' ? `AND namespace = '${namespace}'` : ''}
154
- LIMIT 1000
155
- `);
169
+ let entries;
170
+ if (namespace !== 'all') {
171
+ entries = db.exec('SELECT id, key, namespace, content, embedding, embedding_dimensions FROM memory_entries WHERE status = \'active\' AND embedding IS NOT NULL AND namespace = ? LIMIT 1000', [namespace]);
172
+ }
173
+ else {
174
+ entries = db.exec('SELECT id, key, namespace, content, embedding, embedding_dimensions FROM memory_entries WHERE status = \'active\' AND embedding IS NOT NULL LIMIT 1000');
175
+ }
156
176
  const results = [];
157
177
  if (entries[0]?.values) {
158
178
  for (const row of entries[0].values) {
@@ -160,7 +180,11 @@ const searchCommand = {
160
180
  if (!embeddingJson)
161
181
  continue;
162
182
  try {
163
- const embedding = JSON.parse(embeddingJson);
183
+ const parsed = JSON.parse(embeddingJson);
184
+ if (!Array.isArray(parsed) || parsed.some((v) => typeof v !== 'number')) {
185
+ continue;
186
+ }
187
+ const embedding = parsed;
164
188
  // Calculate cosine similarity
165
189
  const similarity = cosineSimilarity(queryEmbedding, embedding);
166
190
  if (similarity >= threshold) {
@@ -180,27 +204,26 @@ const searchCommand = {
180
204
  }
181
205
  // Also search entries without embeddings using keyword match
182
206
  if (results.length < limit) {
183
- const keywordEntries = db.exec(`
184
- SELECT id, key, namespace, content
185
- FROM memory_entries
186
- WHERE status = 'active'
187
- AND (content LIKE '%${query.replace(/'/g, "''")}%' OR key LIKE '%${query.replace(/'/g, "''")}%')
188
- ${namespace !== 'all' ? `AND namespace = '${namespace}'` : ''}
189
- LIMIT ${limit - results.length}
190
- `);
191
- if (keywordEntries[0]?.values) {
192
- for (const row of keywordEntries[0].values) {
193
- const [id, key, ns, content] = row;
194
- // Avoid duplicates
195
- if (!results.some(r => r.id === id.substring(0, 10))) {
196
- results.push({
197
- score: 0.5, // Keyword match base score
198
- id: id.substring(0, 10),
199
- key: key || id.substring(0, 15),
200
- content: (content || '').substring(0, 45) + ((content || '').length > 45 ? '...' : ''),
201
- namespace: ns || 'default'
202
- });
203
- }
207
+ const remaining = limit - results.length;
208
+ let keywordResult;
209
+ if (namespace !== 'all') {
210
+ keywordResult = db.exec("SELECT id, key, namespace, content FROM memory_entries WHERE status = 'active' AND (content LIKE ? OR key LIKE ?) AND namespace = ? LIMIT ?", [`%${query}%`, `%${query}%`, namespace, remaining]);
211
+ }
212
+ else {
213
+ keywordResult = db.exec("SELECT id, key, namespace, content FROM memory_entries WHERE status = 'active' AND (content LIKE ? OR key LIKE ?) LIMIT ?", [`%${query}%`, `%${query}%`, remaining]);
214
+ }
215
+ const keywordRows = keywordResult[0]?.values ?? [];
216
+ for (const row of keywordRows) {
217
+ const [id, key, ns, content] = row;
218
+ // Avoid duplicates (keyword fallback is unconditional — threshold applies to semantic results)
219
+ if (!results.some(r => r.id === id.substring(0, 10))) {
220
+ results.push({
221
+ score: 0.5,
222
+ id: id.substring(0, 10),
223
+ key: key || id.substring(0, 15),
224
+ content: (content || '').substring(0, 45) + ((content || '').length > 45 ? '...' : ''),
225
+ namespace: ns || 'default'
226
+ });
204
227
  }
205
228
  }
206
229
  }
@@ -247,7 +270,9 @@ const searchCommand = {
247
270
  * V8 JIT-friendly - ~0.5μs per 384-dim vector comparison
248
271
  */
249
272
  function cosineSimilarity(a, b) {
250
- const len = Math.min(a.length, b.length);
273
+ if (a.length !== b.length)
274
+ return 0;
275
+ const len = a.length;
251
276
  if (len === 0)
252
277
  return 0;
253
278
  let dot = 0, normA = 0, normB = 0;
@@ -369,6 +394,16 @@ const collectionsCommand = {
369
394
  const fs = await import('fs');
370
395
  const path = await import('path');
371
396
  const fullDbPath = path.resolve(process.cwd(), dbPath);
397
+ // Containment check (mirrors the search handler above).
398
+ const projectRoot = path.resolve(process.cwd());
399
+ if (!fullDbPath.startsWith(projectRoot + path.sep) && fullDbPath !== projectRoot) {
400
+ output.printError(`db-path must resolve within the project directory: ${projectRoot}`);
401
+ return { success: false, exitCode: 1 };
402
+ }
403
+ if (!/\.(db|sqlite)$/i.test(fullDbPath)) {
404
+ output.printError('db-path must end in .db or .sqlite');
405
+ return { success: false, exitCode: 1 };
406
+ }
372
407
  // Check if database exists
373
408
  if (!fs.existsSync(fullDbPath)) {
374
409
  output.printWarning('No database found');
@@ -377,6 +412,11 @@ const collectionsCommand = {
377
412
  output.writeln(output.dim('No collections yet - initialize memory first'));
378
413
  return { success: true, data: [] };
379
414
  }
415
+ const stat2 = fs.statSync(fullDbPath);
416
+ if (stat2.size > 500 * 1024 * 1024) {
417
+ output.printError(`Database exceeds 500MB cap: ${stat2.size} bytes`);
418
+ return { success: false, exitCode: 1 };
419
+ }
380
420
  // Load sql.js and query real data
381
421
  const initSqlJs = (await import('sql.js')).default;
382
422
  const SQL = await initSqlJs();
@@ -616,6 +656,14 @@ const initCommand = {
616
656
  output.writeln(output.dim('Use --force to overwrite existing configuration'));
617
657
  return { success: false, exitCode: 1 };
618
658
  }
659
+ // Validate model id against HuggingFace-style shape before any path-derived
660
+ // operation. Without this, `--model "Xenova/../../etc/foo"` could collapse
661
+ // into a path-traversal sink inside the embeddings package's downloader.
662
+ const MODEL_ID_RE = /^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+$/;
663
+ if (!MODEL_ID_RE.test(model)) {
664
+ output.printError(`Invalid model id: must match ${MODEL_ID_RE} (HuggingFace org/name)`);
665
+ return { success: false, exitCode: 1 };
666
+ }
619
667
  const spinner = output.createSpinner({ text: 'Initializing...', spinner: 'dots' });
620
668
  spinner.start();
621
669
  if (!fs.existsSync(configDir)) {
@@ -636,7 +684,7 @@ const initCommand = {
636
684
  else {
637
685
  // Embeddings package not available — skip download
638
686
  await new Promise(r => setTimeout(r, 500));
639
- output.writeln(output.dim(' (Skipped — @monoes/embeddings not installed)'));
687
+ output.writeln(output.dim(' (Skipped — @monomind/embeddings not installed)'));
640
688
  }
641
689
  }
642
690
  // Write embeddings config
@@ -660,7 +708,14 @@ const initCommand = {
660
708
  },
661
709
  initialized: new Date().toISOString(),
662
710
  };
663
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
711
+ // Atomic write with restrictive mode — embeddings.json content is not
712
+ // secret today but the helper pattern guards against partial writes from
713
+ // SIGINT during init.
714
+ {
715
+ const tmp = `${configPath}.${process.pid}.tmp`;
716
+ fs.writeFileSync(tmp, JSON.stringify(config, null, 2), { mode: 0o644 });
717
+ fs.renameSync(tmp, configPath);
718
+ }
664
719
  spinner.succeed('Embedding subsystem initialized');
665
720
  output.writeln();
666
721
  output.printTable({
@@ -762,7 +817,7 @@ const chunkCommand = {
762
817
  output.writeln(output.bold('Document Chunking'));
763
818
  output.writeln(output.dim('─'.repeat(50)));
764
819
  if (!embeddings) {
765
- output.printWarning('@monoes/embeddings not installed, showing preview');
820
+ output.printWarning('@monomind/embeddings not installed, showing preview');
766
821
  output.writeln();
767
822
  output.printBox([
768
823
  `Strategy: ${strategy}`,
@@ -855,10 +910,10 @@ const hyperbolicCommand = {
855
910
  output.writeln(output.dim('─'.repeat(50)));
856
911
  // Try to import hyperbolic functions from embeddings package
857
912
  try {
858
- const hyperbolic = await import('@monoes/embeddings').then(m => m).catch(() => null);
913
+ const hyperbolic = await import('@monomind/embeddings').then(m => m).catch(() => null);
859
914
  if (!hyperbolic || !hyperbolic.euclideanToPoincare) {
860
- output.printWarning('@monoes/embeddings hyperbolic module not available');
861
- output.printInfo('Install with: npm install @monoes/embeddings');
915
+ output.printWarning('@monomind/embeddings hyperbolic module not available');
916
+ output.printInfo('Install with: npm install @monomind/embeddings');
862
917
  return { success: false, exitCode: 1 };
863
918
  }
864
919
  if (!inputJson) {
@@ -1005,7 +1060,14 @@ const neuralCommand = {
1005
1060
  },
1006
1061
  initializedAt: new Date().toISOString(),
1007
1062
  };
1008
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
1063
+ // Atomic write with restrictive mode — embeddings.json content is not
1064
+ // secret today but the helper pattern guards against partial writes from
1065
+ // SIGINT during init.
1066
+ {
1067
+ const tmp = `${configPath}.${process.pid}.tmp`;
1068
+ fs.writeFileSync(tmp, JSON.stringify(config, null, 2), { mode: 0o644 });
1069
+ fs.renameSync(tmp, configPath);
1070
+ }
1009
1071
  output.printSuccess('Neural substrate initialized');
1010
1072
  output.writeln();
1011
1073
  }
@@ -1123,7 +1185,7 @@ const modelsCommand = {
1123
1185
  }
1124
1186
  else {
1125
1187
  await new Promise(r => setTimeout(r, 500));
1126
- spinner.succeed(`Download skipped — @monoes/embeddings not installed`);
1188
+ spinner.succeed(`Download skipped — @monomind/embeddings not installed`);
1127
1189
  }
1128
1190
  return { success: true };
1129
1191
  }
@@ -1180,6 +1242,15 @@ const cacheCommand = {
1180
1242
  const path = await import('path');
1181
1243
  // Get real cache stats
1182
1244
  const resolvedDbPath = path.resolve(dbPath);
1245
+ const projectRoot = path.resolve(process.cwd());
1246
+ if (!resolvedDbPath.startsWith(projectRoot + path.sep) && resolvedDbPath !== projectRoot) {
1247
+ output.printError(`db-path must resolve within the project directory: ${projectRoot}`);
1248
+ return { success: false, exitCode: 1 };
1249
+ }
1250
+ if (!/\.(db|sqlite)$/i.test(resolvedDbPath)) {
1251
+ output.printError('db-path must end in .db or .sqlite');
1252
+ return { success: false, exitCode: 1 };
1253
+ }
1183
1254
  let sqliteEntries = 0;
1184
1255
  let sqliteSize = '0 B';
1185
1256
  let sqliteExists = false;
@@ -1200,15 +1271,20 @@ const cacheCommand = {
1200
1271
  }
1201
1272
  // Try to count real entries via sql.js
1202
1273
  try {
1203
- const initSqlJs = (await import('sql.js')).default;
1204
- const SQL = await initSqlJs();
1205
- const fileBuffer = fs.readFileSync(resolvedDbPath);
1206
- const db = new SQL.Database(fileBuffer);
1207
- const result = db.exec('SELECT COUNT(*) as count FROM embeddings');
1208
- if (result.length > 0 && result[0].values.length > 0) {
1209
- sqliteEntries = result[0].values[0][0];
1274
+ if (stats.size > 500 * 1024 * 1024) {
1275
+ sqliteEntries = Math.floor(stats.size / 1600);
1276
+ }
1277
+ else {
1278
+ const initSqlJs = (await import('sql.js')).default;
1279
+ const SQL = await initSqlJs();
1280
+ const fileBuffer = fs.readFileSync(resolvedDbPath);
1281
+ const db = new SQL.Database(fileBuffer);
1282
+ const result = db.exec('SELECT COUNT(*) as count FROM embeddings');
1283
+ if (result.length > 0 && result[0].values.length > 0) {
1284
+ sqliteEntries = result[0].values[0][0];
1285
+ }
1286
+ db.close();
1210
1287
  }
1211
- db.close();
1212
1288
  }
1213
1289
  catch {
1214
1290
  // Estimate entries from file size (~1600 bytes per entry for 384-dim embeddings)
@@ -180,7 +180,8 @@ async function spawnClaudeCodeInstance(swarmId, swarmName, objective, workers, f
180
180
  // Ensure sessions directory exists
181
181
  const sessionsDir = join('.hive-mind', 'sessions');
182
182
  await mkdir(sessionsDir, { recursive: true });
183
- const promptFile = join(sessionsDir, `hive-mind-prompt-${swarmId}.txt`);
183
+ const safeSwarmId = swarmId.replace(/[^a-zA-Z0-9_-]/g, '_');
184
+ const promptFile = join(sessionsDir, `hive-mind-prompt-${safeSwarmId}.txt`);
184
185
  await writeFile(promptFile, hiveMindPrompt, 'utf8');
185
186
  output.writeln();
186
187
  output.printSuccess(`Hive Mind prompt saved to: ${promptFile}`);
@@ -208,15 +209,14 @@ async function spawnClaudeCodeInstance(swarmId, swarmName, objective, workers, f
208
209
  claudeArgs.push('--verbose');
209
210
  output.printInfo('Running in non-interactive mode');
210
211
  }
211
- // Add auto-permission flag unless explicitly disabled
212
- const skipPermissions = flags['dangerously-skip-permissions'] !== false && !flags['no-auto-permissions'];
212
+ // Add auto-permission flag only when explicitly requested
213
+ const skipPermissions = flags['dangerously-skip-permissions'] === true && !flags['no-auto-permissions'];
213
214
  if (skipPermissions) {
214
215
  claudeArgs.push('--dangerously-skip-permissions');
215
- if (!isNonInteractive) {
216
- output.printWarning('Using --dangerously-skip-permissions for seamless hive-mind execution');
217
- }
216
+ output.writeln(output.warning('WARNING: Running with --dangerously-skip-permissions: all file and shell operations will execute without prompts.'));
218
217
  }
219
- // Add the prompt as the LAST argument
218
+ // '--' ends option parsing so the prompt cannot be interpreted as a flag
219
+ claudeArgs.push('--');
220
220
  claudeArgs.push(hiveMindPrompt);
221
221
  output.writeln();
222
222
  output.printInfo('Launching Claude Code...');
@@ -297,7 +297,8 @@ async function spawnClaudeCodeInstance(swarmId, swarmName, objective, workers, f
297
297
  output.printError(`Error: ${errorMessage}`);
298
298
  // Try to save prompt as fallback
299
299
  try {
300
- const promptFile = `hive-mind-prompt-${swarmId}-fallback.txt`;
300
+ const safeSwarmIdFallback = swarmId.replace(/[^a-zA-Z0-9_-]/g, '_');
301
+ const promptFile = `hive-mind-prompt-${safeSwarmIdFallback}-fallback.txt`;
301
302
  const workerGroups = groupWorkersByType(workers);
302
303
  const hiveMindPrompt = generateHiveMindPrompt(swarmId, swarmName, objective, workers, workerGroups, flags);
303
304
  await writeFile(promptFile, hiveMindPrompt, 'utf8');
@@ -377,9 +378,9 @@ const initCommand = {
377
378
  const config = {
378
379
  topology: topology || 'hierarchical-mesh',
379
380
  consensus: consensus || 'byzantine',
380
- maxAgents: ctx.flags.maxAgents || 15,
381
+ maxAgents: ctx.flags['max-agents'] || 15,
381
382
  persist: ctx.flags.persist,
382
- memoryBackend: ctx.flags.memoryBackend || 'hybrid'
383
+ memoryBackend: ctx.flags['memory-backend'] || 'hybrid'
383
384
  };
384
385
  output.writeln();
385
386
  output.writeln(output.bold('Initializing Hive Mind'));
@@ -471,7 +472,7 @@ const spawnCommand = {
471
472
  name: 'dangerously-skip-permissions',
472
473
  description: 'Skip permission prompts in Claude Code (use with caution)',
473
474
  type: 'boolean',
474
- default: true
475
+ default: false
475
476
  },
476
477
  {
477
478
  name: 'no-auto-permissions',
@@ -772,7 +773,7 @@ const taskCommand = {
772
773
  return { success: false, exitCode: 1 };
773
774
  }
774
775
  const priority = ctx.flags.priority;
775
- const requireConsensus = ctx.flags.requireConsensus;
776
+ const requireConsensus = ctx.flags['require-consensus'];
776
777
  const timeout = ctx.flags.timeout;
777
778
  output.printInfo('Submitting task to hive...');
778
779
  try {
@@ -948,7 +949,7 @@ const consensusCommand = {
948
949
  action: async (ctx) => {
949
950
  const action = ctx.flags.action || 'list';
950
951
  try {
951
- const result = await callMCPTool('hive-mind_consensus', { action, proposalId: ctx.flags.proposalId, type: ctx.flags.type, value: ctx.flags.value, vote: ctx.flags.vote === 'yes', voterId: ctx.flags.voterId });
952
+ const result = await callMCPTool('hive-mind_consensus', { action, proposalId: ctx.flags['proposal-id'], type: ctx.flags.type, value: ctx.flags.value, vote: ctx.flags.vote === 'yes', voterId: ctx.flags['voter-id'] });
952
953
  if (ctx.flags.format === 'json') {
953
954
  output.printJson(result);
954
955
  return { success: true, data: result };
@@ -1080,7 +1081,7 @@ const shutdownCommand = {
1080
1081
  ],
1081
1082
  action: async (ctx) => {
1082
1083
  const force = ctx.flags.force;
1083
- const saveState = ctx.flags.saveState;
1084
+ const saveState = ctx.flags['save-state'];
1084
1085
  if (!force && ctx.interactive) {
1085
1086
  const confirmed = await confirm({
1086
1087
  message: 'Shutdown the hive mind? All agents will be terminated.',
@@ -73,7 +73,7 @@ function parseCoverageSummaryJson(data, source) {
73
73
  const m = metrics;
74
74
  if (!m || typeof m !== 'object')
75
75
  continue;
76
- const linePct = m.lines?.pct ?? m.lines?.covered != null ? ((m.lines?.covered ?? 0) / Math.max(m.lines?.total ?? 1, 1)) * 100 : 0;
76
+ const linePct = m.lines?.pct ?? (m.lines?.covered != null ? ((m.lines?.covered ?? 0) / Math.max(m.lines?.total ?? 1, 1)) * 100 : 0);
77
77
  const branchPct = m.branches?.pct ?? (m.branches?.total ? ((m.branches?.covered ?? 0) / m.branches.total) * 100 : 100);
78
78
  const funcPct = m.functions?.pct ?? (m.functions?.total ? ((m.functions?.covered ?? 0) / m.functions.total) * 100 : 100);
79
79
  const stmtPct = m.statements?.pct ?? (m.statements?.total ? ((m.statements?.covered ?? 0) / m.statements.total) * 100 : 100);
@@ -114,6 +114,10 @@ function parseLcovInfo(raw, source) {
114
114
  let linesHit = 0, linesFound = 0;
115
115
  let branchesHit = 0, branchesFound = 0;
116
116
  let functionsHit = 0, functionsFound = 0;
117
+ let totalLines = 0, coveredLines = 0;
118
+ let totalBranches = 0, coveredBranches = 0;
119
+ let totalFunctions = 0, coveredFunctions = 0;
120
+ let totalStatements = 0, coveredStatements = 0;
117
121
  const flushRecord = () => {
118
122
  if (currentFile) {
119
123
  entries.push({
@@ -123,6 +127,14 @@ function parseLcovInfo(raw, source) {
123
127
  functions: functionsFound > 0 ? (functionsHit / functionsFound) * 100 : 100,
124
128
  statements: linesFound > 0 ? (linesHit / linesFound) * 100 : 0,
125
129
  });
130
+ totalLines += linesFound;
131
+ coveredLines += linesHit;
132
+ totalBranches += branchesFound;
133
+ coveredBranches += branchesHit;
134
+ totalFunctions += functionsFound;
135
+ coveredFunctions += functionsHit;
136
+ totalStatements += linesFound;
137
+ coveredStatements += linesHit;
126
138
  }
127
139
  };
128
140
  for (const line of raw.split('\n')) {
@@ -161,25 +173,16 @@ function parseLcovInfo(raw, source) {
161
173
  }
162
174
  flushRecord();
163
175
  entries.sort((a, b) => a.lines - b.lines);
164
- let totalLH = 0, totalLF = 0, totalBH = 0, totalBF = 0;
165
- for (const e of entries) {
166
- // Approximate from percentages (we lost exact counts after flush, but summaries are okay)
167
- totalLH += e.lines;
168
- totalLF += 100;
169
- totalBH += e.branches;
170
- totalBF += 100;
171
- }
172
- const n = entries.length || 1;
173
176
  return {
174
177
  found: true,
175
178
  source,
176
179
  entries,
177
180
  summary: {
178
181
  totalFiles: entries.length,
179
- overallLineCoverage: totalLH / n,
180
- overallBranchCoverage: totalBH / n,
181
- overallFunctionCoverage: 0,
182
- overallStatementCoverage: totalLH / n,
182
+ overallLineCoverage: totalLines > 0 ? (coveredLines / totalLines) * 100 : 0,
183
+ overallBranchCoverage: totalBranches > 0 ? (coveredBranches / totalBranches) * 100 : 100,
184
+ overallFunctionCoverage: totalFunctions > 0 ? (coveredFunctions / totalFunctions) * 100 : 0,
185
+ overallStatementCoverage: totalStatements > 0 ? (coveredStatements / totalStatements) * 100 : 0,
183
186
  },
184
187
  };
185
188
  }
@@ -570,7 +573,7 @@ const postCommandCommand = {
570
573
  const result = await callMCPTool('hooks_post-command', {
571
574
  command,
572
575
  success,
573
- exitCode: ctx.flags.exitCode || 0,
576
+ exitCode: ctx.flags['exit-code'] || 0,
574
577
  duration: ctx.flags.duration,
575
578
  timestamp: Date.now(),
576
579
  });
@@ -630,7 +633,7 @@ const routeCommand = {
630
633
  ],
631
634
  action: async (ctx) => {
632
635
  const task = ctx.args[0] || ctx.flags.task;
633
- const topK = ctx.flags.topK || 3;
636
+ const topK = ctx.flags['top-k'] || 3;
634
637
  if (!task) {
635
638
  output.printError('Task description is required. Use --task or -t flag.');
636
639
  return { success: false, exitCode: 1 };
@@ -892,7 +895,7 @@ const pretrainCommand = {
892
895
  const result = await callMCPTool('hooks_pretrain', {
893
896
  path: repoPath,
894
897
  depth,
895
- skipCache: ctx.flags.skipCache || false,
898
+ skipCache: ctx.flags['skip-cache'] || false,
896
899
  withEmbeddings,
897
900
  embeddingModel,
898
901
  fileTypes: fileTypes.split(',').map((t) => t.trim()),
@@ -1179,7 +1182,7 @@ const transferFromProjectCommand = {
1179
1182
  ],
1180
1183
  action: async (ctx) => {
1181
1184
  const sourcePath = ctx.args[0] || ctx.flags.source;
1182
- const minConfidence = ctx.flags.minConfidence || 0.7;
1185
+ const minConfidence = ctx.flags['min-confidence'] || 0.7;
1183
1186
  if (!sourcePath) {
1184
1187
  output.printError('Source project path is required. Use --source or -s flag.');
1185
1188
  return { success: false, exitCode: 1 };
@@ -1375,7 +1378,7 @@ const preTaskCommand = {
1375
1378
  { command: 'monomind hooks pre-task -i task-456 -d "Implement feature" --auto-spawn', description: 'With auto-spawn' }
1376
1379
  ],
1377
1380
  action: async (ctx) => {
1378
- const taskId = ctx.flags.taskId || `task-${Date.now().toString(36)}`;
1381
+ const taskId = ctx.flags['task-id'] || `task-${Date.now().toString(36)}`;
1379
1382
  const description = ctx.args[0] || ctx.flags.description;
1380
1383
  if (!description) {
1381
1384
  output.printError('Description is required: --description "your task"');
@@ -1386,7 +1389,7 @@ const preTaskCommand = {
1386
1389
  const result = await callMCPTool('hooks_pre-task', {
1387
1390
  taskId,
1388
1391
  description,
1389
- autoSpawn: ctx.flags.autoSpawn || false,
1392
+ autoSpawn: ctx.flags['auto-spawn'] || false,
1390
1393
  timestamp: Date.now(),
1391
1394
  });
1392
1395
  if (ctx.flags.format === 'json') {
@@ -1520,7 +1523,7 @@ const postTaskCommand = {
1520
1523
  ],
1521
1524
  action: async (ctx) => {
1522
1525
  // Auto-generate task ID if not provided
1523
- const taskId = ctx.flags.taskId || `task_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
1526
+ const taskId = ctx.flags['task-id'] || `task_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
1524
1527
  // Default success to true for backward compatibility
1525
1528
  const success = ctx.flags.success !== undefined ? ctx.flags.success : true;
1526
1529
  output.printInfo(`Recording outcome for task: ${output.highlight(taskId)}`);
@@ -1586,7 +1589,7 @@ const sessionEndCommand = {
1586
1589
  output.printInfo('Ending session...');
1587
1590
  try {
1588
1591
  const result = await callMCPTool('hooks_session-end', {
1589
- saveState: ctx.flags.saveState ?? true,
1592
+ saveState: ctx.flags['save-state'] ?? true,
1590
1593
  timestamp: Date.now(),
1591
1594
  });
1592
1595
  if (ctx.flags.format === 'json') {
@@ -1661,13 +1664,13 @@ const sessionRestoreCommand = {
1661
1664
  { command: 'monomind hooks session-restore -i session-12345', description: 'Restore specific session' }
1662
1665
  ],
1663
1666
  action: async (ctx) => {
1664
- const sessionId = ctx.args[0] || ctx.flags.sessionId || 'latest';
1667
+ const sessionId = ctx.args[0] || ctx.flags['session-id'] || 'latest';
1665
1668
  output.printInfo(`Restoring session: ${output.highlight(sessionId)}`);
1666
1669
  try {
1667
1670
  const result = await callMCPTool('hooks_session-restore', {
1668
1671
  sessionId,
1669
- restoreAgents: ctx.flags.restoreAgents ?? true,
1670
- restoreTasks: ctx.flags.restoreTasks ?? true,
1672
+ restoreAgents: ctx.flags['restore-agents'] ?? true,
1673
+ restoreTasks: ctx.flags['restore-tasks'] ?? true,
1671
1674
  timestamp: Date.now(),
1672
1675
  });
1673
1676
  if (ctx.flags.format === 'json') {
@@ -1778,10 +1781,10 @@ const intelligenceCommand = {
1778
1781
  const showStatus = ctx.flags.status;
1779
1782
  const forceTraining = ctx.flags.train;
1780
1783
  const reset = ctx.flags.reset;
1781
- const enableSona = ctx.flags.enableSona ?? true;
1782
- const enableMoe = ctx.flags.enableMoe ?? true;
1783
- const enableHnsw = ctx.flags.enableHnsw ?? true;
1784
- const embeddingProvider = ctx.flags.embeddingProvider || 'transformers';
1784
+ const enableSona = ctx.flags['enable-sona'] ?? true;
1785
+ const enableMoe = ctx.flags['enable-moe'] ?? true;
1786
+ const enableHnsw = ctx.flags['enable-hnsw'] ?? true;
1787
+ const embeddingProvider = ctx.flags['embedding-provider'] || 'transformers';
1785
1788
  output.writeln();
1786
1789
  output.writeln(output.bold('RuVector Intelligence System'));
1787
1790
  output.writeln();
@@ -1926,9 +1929,9 @@ const intelligenceCommand = {
1926
1929
  },
1927
1930
  };
1928
1931
  if (forceTraining) {
1929
- spinner.setText('Running training cycle...');
1930
- await new Promise(resolve => setTimeout(resolve, 500));
1931
- spinner.succeed('Training cycle completed');
1932
+ output.printWarning('Training cycle is not yet wired to the intelligence system. No patterns were updated.');
1933
+ spinner.fail('Training not implemented');
1934
+ return { success: false, message: 'Training not implemented', exitCode: 1 };
1932
1935
  }
1933
1936
  else {
1934
1937
  spinner.succeed(hasLocalData ? 'Intelligence system active (local data loaded)' : 'Intelligence system active');
@@ -3368,7 +3371,8 @@ const statuslineCommand = {
3368
3371
  ? 'tasklist /FI "IMAGENAME eq node.exe" 2>NUL | findstr /I /C:"node" >NUL && echo 1 || echo 0'
3369
3372
  : 'ps aux 2>/dev/null | grep -c agentic-flow || echo "0"';
3370
3373
  const ps = execSync(psCmd, { encoding: 'utf-8' });
3371
- activeAgents = Math.max(0, parseInt(ps.trim()) - 1);
3374
+ const raw = parseInt(ps.trim());
3375
+ activeAgents = Math.max(0, isWindows ? raw : raw - 1);
3372
3376
  coordinationActive = activeAgents > 0;
3373
3377
  }
3374
3378
  catch {
@@ -4129,10 +4133,10 @@ const teammateIdleCommand = {
4129
4133
  { command: 'monomind hooks teammate-idle -t worker-1 --check-task-list', description: 'Check tasks for specific teammate' }
4130
4134
  ],
4131
4135
  action: async (ctx) => {
4132
- const autoAssign = ctx.flags.autoAssign !== false;
4133
- const checkTaskList = ctx.flags.checkTaskList !== false;
4134
- const teammateId = ctx.flags.teammateId;
4135
- const teamName = ctx.flags.teamName;
4136
+ const autoAssign = ctx.flags['auto-assign'] !== false;
4137
+ const checkTaskList = ctx.flags['check-task-list'] !== false;
4138
+ const teammateId = ctx.flags['teammate-id'];
4139
+ const teamName = ctx.flags['team-name'];
4136
4140
  if (ctx.flags.format !== 'json') {
4137
4141
  output.printInfo(`Teammate idle hook triggered${teammateId ? ` for: ${output.highlight(teammateId)}` : ''}`);
4138
4142
  }
@@ -4228,12 +4232,12 @@ const taskCompletedCommand = {
4228
4232
  { command: 'monomind hooks task-completed -i task-456 --notify-lead --quality 0.95', description: 'Complete with quality score' }
4229
4233
  ],
4230
4234
  action: async (ctx) => {
4231
- const taskId = ctx.args[0] || ctx.flags.taskId;
4232
- const trainPatterns = ctx.flags.trainPatterns !== false;
4233
- const notifyLead = ctx.flags.notifyLead !== false;
4235
+ const taskId = ctx.args[0] || ctx.flags['task-id'];
4236
+ const trainPatterns = ctx.flags['train-patterns'] !== false;
4237
+ const notifyLead = ctx.flags['notify-lead'] !== false;
4234
4238
  const success = ctx.flags.success !== false;
4235
4239
  const quality = ctx.flags.quality;
4236
- const teammateId = ctx.flags.teammateId;
4240
+ const teammateId = ctx.flags['teammate-id'];
4237
4241
  if (!taskId) {
4238
4242
  output.printError('Task ID is required. Use --task-id or -i flag.');
4239
4243
  return { success: false, exitCode: 1 };
@@ -31,6 +31,7 @@ export { guidanceCommand } from './guidance.js';
31
31
  export { applianceCommand } from './appliance.js';
32
32
  export { cleanupCommand } from './cleanup.js';
33
33
  export { autopilotCommand } from './autopilot.js';
34
+ export { monographCommand } from './monograph.js';
34
35
  export declare function getConfigCommand(): Promise<Command | undefined>;
35
36
  export declare function getMigrateCommand(): Promise<Command | undefined>;
36
37
  export declare function getWorkflowCommand(): Promise<Command | undefined>;
@@ -56,6 +57,7 @@ export declare function getGuidanceCommand(): Promise<Command | undefined>;
56
57
  export declare function getApplianceCommand(): Promise<Command | undefined>;
57
58
  export declare function getCleanupCommand(): Promise<Command | undefined>;
58
59
  export declare function getAutopilotCommand(): Promise<Command | undefined>;
60
+ export declare function getMonographCommand(): Promise<Command | undefined>;
59
61
  /**
60
62
  * Core commands loaded synchronously (available immediately)
61
63
  * Advanced commands loaded on-demand for faster startup