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
@@ -0,0 +1,526 @@
1
+ /**
2
+ * Monograph CLI Command
3
+ * Knowledge graph for code and documents — build, search, inspect.
4
+ */
5
+ import { join, resolve, extname } from 'path';
6
+ import { readdirSync, statSync, existsSync } from 'fs';
7
+ import { output } from '../output.js';
8
+ const DOC_EXTENSIONS = new Set(['.md', '.mdx', '.txt', '.rst', '.pdf']);
9
+ const IGNORE_DIRS = new Set([
10
+ 'node_modules', '.git', 'dist', 'build', '__pycache__',
11
+ '.cache', 'coverage', '.monomind', 'vendor', 'target',
12
+ ]);
13
+ function getDbPath(root) {
14
+ return join(root, '.monomind', 'monograph.db');
15
+ }
16
+ function walkDocs(dir, ignore) {
17
+ const extraIgnore = new Set(ignore);
18
+ const results = [];
19
+ function walk(d) {
20
+ let entries;
21
+ try {
22
+ entries = readdirSync(d);
23
+ }
24
+ catch {
25
+ return;
26
+ }
27
+ for (const entry of entries) {
28
+ if (IGNORE_DIRS.has(entry) || extraIgnore.has(entry))
29
+ continue;
30
+ const full = join(d, entry);
31
+ let st;
32
+ try {
33
+ st = statSync(full);
34
+ }
35
+ catch {
36
+ continue;
37
+ }
38
+ if (st.isDirectory()) {
39
+ walk(full);
40
+ continue;
41
+ }
42
+ const ext = extname(entry).toLowerCase();
43
+ if (DOC_EXTENSIONS.has(ext))
44
+ results.push({ path: full, ext });
45
+ }
46
+ }
47
+ walk(dir);
48
+ return results;
49
+ }
50
+ // ── build subcommand ──────────────────────────────────────────────────────────
51
+ const buildCommand = {
52
+ name: 'build',
53
+ description: 'Build the knowledge graph from code, docs (md/txt/rst), and PDFs',
54
+ options: [
55
+ { name: 'path', short: 'p', type: 'string', description: 'Root path to index (default: cwd)' },
56
+ { name: 'code-only', type: 'boolean', description: 'Index only code files, skip documents' },
57
+ { name: 'llm', type: 'boolean', description: 'Enable Claude-powered semantic extraction (requires ANTHROPIC_API_KEY)' },
58
+ { name: 'llm-sections', type: 'number', description: 'Max sections to enrich with LLM (default 50)', default: '50' },
59
+ { name: 'force', short: 'f', type: 'boolean', description: 'Force full rebuild even if index is fresh' },
60
+ ],
61
+ examples: [
62
+ { command: 'monomind monograph build', description: 'Index code + all documents' },
63
+ { command: 'monomind monograph build --llm', description: 'Also extract semantic relationships with Claude' },
64
+ { command: 'monomind monograph build --code-only', description: 'Code only, skip docs' },
65
+ { command: 'monomind monograph build -p ./docs', description: 'Index a specific path' },
66
+ ],
67
+ action: async (ctx) => {
68
+ const root = resolve(ctx.flags.path ?? process.cwd());
69
+ const codeOnly = ctx.flags['code-only'] === true;
70
+ const force = ctx.flags.force === true;
71
+ const llmFlag = ctx.flags.llm === true;
72
+ const llmSections = parseInt(ctx.flags['llm-sections'] || '50', 10);
73
+ const hasApiKey = !!process.env.ANTHROPIC_API_KEY;
74
+ const llmMaxSections = (llmFlag && hasApiKey) ? llmSections : 0;
75
+ if (llmFlag && !hasApiKey) {
76
+ output.printWarning('--llm passed but ANTHROPIC_API_KEY is not set — LLM extraction disabled');
77
+ }
78
+ output.writeln();
79
+ output.writeln(output.bold('Monograph — Knowledge Graph Build'));
80
+ output.writeln(output.dim('─'.repeat(60)));
81
+ output.writeln(` Path : ${root}`);
82
+ output.writeln(` Mode : ${codeOnly ? 'Code only' : 'Code + Documents + PDFs'}`);
83
+ if (llmMaxSections > 0) {
84
+ output.writeln(` Claude : Enriching up to ${llmMaxSections} sections`);
85
+ }
86
+ output.writeln();
87
+ // Pre-scan to show what will be indexed
88
+ if (!codeOnly) {
89
+ const docs = walkDocs(root, []);
90
+ const byExt = new Map();
91
+ for (const { ext } of docs)
92
+ byExt.set(ext, (byExt.get(ext) ?? 0) + 1);
93
+ if (docs.length > 0) {
94
+ output.writeln(output.dim(` Found ${docs.length} document files:`));
95
+ for (const [ext, count] of [...byExt.entries()].sort()) {
96
+ output.writeln(output.dim(` ${ext.padEnd(6)} ${count} files`));
97
+ }
98
+ output.writeln();
99
+ }
100
+ }
101
+ const spinner = output.createSpinner({ text: 'Building knowledge graph…', spinner: 'dots' });
102
+ spinner.start();
103
+ const startTime = Date.now();
104
+ const progressLines = [];
105
+ try {
106
+ const { buildAsync } = await import('@monoes/monograph');
107
+ await buildAsync(root, {
108
+ codeOnly,
109
+ force,
110
+ llmMaxSections,
111
+ onProgress: (p) => {
112
+ const msg = `[${p.phase}] ${p.message ?? ''}`;
113
+ progressLines.push(msg);
114
+ spinner.setText(msg.slice(0, 60));
115
+ },
116
+ });
117
+ const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
118
+ spinner.succeed(`Build complete in ${elapsed}s`);
119
+ // Show per-phase summary
120
+ output.writeln();
121
+ output.writeln(output.bold(' Build phases:'));
122
+ for (const line of progressLines) {
123
+ output.writeln(output.dim(` ${line}`));
124
+ }
125
+ // Show graph stats
126
+ output.writeln();
127
+ await printStats(root);
128
+ return { success: true };
129
+ }
130
+ catch (err) {
131
+ spinner.fail('Build failed');
132
+ output.printError(err instanceof Error ? err.message : String(err));
133
+ return { success: false, exitCode: 1 };
134
+ }
135
+ },
136
+ };
137
+ // ── wiki subcommand ───────────────────────────────────────────────────────────
138
+ const wikiCommand = {
139
+ name: 'wiki',
140
+ description: 'Scan all docs and PDFs in the project and build a searchable knowledge graph',
141
+ options: [
142
+ { name: 'path', short: 'p', type: 'string', description: 'Root path (default: cwd)' },
143
+ { name: 'llm', type: 'boolean', description: 'Enrich with Claude semantic extraction (requires ANTHROPIC_API_KEY)' },
144
+ { name: 'llm-sections', type: 'number', description: 'Max sections for LLM enrichment (default 100)', default: '100' },
145
+ { name: 'force', short: 'f', type: 'boolean', description: 'Force full rebuild' },
146
+ ],
147
+ examples: [
148
+ { command: 'monomind monograph wiki', description: 'Build knowledge graph from all docs and PDFs' },
149
+ { command: 'monomind monograph wiki --llm', description: 'Also extract semantic relationships with Claude' },
150
+ { command: 'monomind monograph wiki --llm --llm-sections 200', description: 'Process 200 sections with Claude' },
151
+ ],
152
+ action: async (ctx) => {
153
+ const root = resolve(ctx.flags.path ?? process.cwd());
154
+ const force = ctx.flags.force === true;
155
+ const llmFlag = ctx.flags.llm === true;
156
+ const llmSections = parseInt(ctx.flags['llm-sections'] || '100', 10);
157
+ const hasApiKey = !!process.env.ANTHROPIC_API_KEY;
158
+ const llmMaxSections = (llmFlag && hasApiKey) ? llmSections : 0;
159
+ if (llmFlag && !hasApiKey) {
160
+ output.printWarning('--llm passed but ANTHROPIC_API_KEY is not set — LLM extraction disabled');
161
+ }
162
+ // Pre-scan docs
163
+ const docs = walkDocs(root, []);
164
+ const byExt = new Map();
165
+ for (const { ext } of docs)
166
+ byExt.set(ext, (byExt.get(ext) ?? 0) + 1);
167
+ output.writeln();
168
+ output.writeln(output.bold('Monograph — Wiki & Document Knowledge Graph'));
169
+ output.writeln(output.dim('─'.repeat(60)));
170
+ output.writeln(` Path : ${root}`);
171
+ output.writeln();
172
+ if (docs.length === 0) {
173
+ output.printWarning('No document files found (.md .mdx .txt .rst .pdf)');
174
+ output.writeln(output.dim(` Searched: ${root}`));
175
+ output.writeln(output.dim(' Make sure you\'re in the right directory.'));
176
+ return { success: false, exitCode: 1 };
177
+ }
178
+ output.writeln(output.bold(` Discovered ${docs.length} files:`));
179
+ for (const [ext, count] of [...byExt.entries()].sort()) {
180
+ const label = ext === '.pdf' ? '(PDF chunks will be created)' :
181
+ ext === '.md' || ext === '.mdx' ? '(headings → Section nodes)' :
182
+ '(plain text → Section nodes)';
183
+ output.writeln(` ${output.success(ext.padEnd(6))} ${String(count).padStart(4)} files ${output.dim(label)}`);
184
+ }
185
+ if (llmMaxSections > 0) {
186
+ output.writeln();
187
+ output.writeln(` ${output.success('Claude enrichment')} enabled — up to ${llmMaxSections} sections`);
188
+ output.writeln(output.dim(' Extracts typed semantic relationships (DESCRIBES, CAUSES, PART_OF, …)'));
189
+ }
190
+ else if (!llmFlag) {
191
+ output.writeln();
192
+ output.writeln(output.dim(' Tip: add --llm to extract Claude-inferred semantic relationships'));
193
+ }
194
+ output.writeln();
195
+ const spinner = output.createSpinner({ text: 'Building…', spinner: 'dots' });
196
+ spinner.start();
197
+ const startTime = Date.now();
198
+ const progressLines = [];
199
+ try {
200
+ const { buildAsync } = await import('@monoes/monograph');
201
+ await buildAsync(root, {
202
+ codeOnly: false,
203
+ force,
204
+ llmMaxSections,
205
+ onProgress: (p) => {
206
+ const msg = `[${p.phase}] ${p.message ?? ''}`;
207
+ progressLines.push(msg);
208
+ if (p.phase.includes('docs') || p.phase.includes('pdf') ||
209
+ p.phase.includes('contextual') || p.phase.includes('llm') ||
210
+ p.phase.includes('embed')) {
211
+ spinner.setText(msg.slice(0, 70));
212
+ }
213
+ },
214
+ });
215
+ const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
216
+ spinner.succeed(`Done in ${elapsed}s`);
217
+ output.writeln();
218
+ output.writeln(output.bold(' Knowledge graph phases:'));
219
+ for (const line of progressLines.filter(l => l.includes('docs') || l.includes('pdf') || l.includes('contextual') ||
220
+ l.includes('llm') || l.includes('embed') || l.includes('structure'))) {
221
+ output.writeln(output.dim(` ${line}`));
222
+ }
223
+ output.writeln();
224
+ await printStats(root);
225
+ output.writeln();
226
+ output.writeln(output.bold(' Next steps:'));
227
+ output.printList([
228
+ 'monomind monograph search "your query" — search the wiki',
229
+ 'monomind monograph stats — full node/edge breakdown',
230
+ 'monomind monograph watch — rebuild on file changes',
231
+ ]);
232
+ return { success: true };
233
+ }
234
+ catch (err) {
235
+ spinner.fail('Build failed');
236
+ output.printError(err instanceof Error ? err.message : String(err));
237
+ return { success: false, exitCode: 1 };
238
+ }
239
+ },
240
+ };
241
+ // ── search subcommand ─────────────────────────────────────────────────────────
242
+ const searchCommand = {
243
+ name: 'search',
244
+ description: 'Search the knowledge graph (BM25, semantic, or hybrid)',
245
+ options: [
246
+ { name: 'query', short: 'q', type: 'string', description: 'Search query', required: true },
247
+ { name: 'limit', short: 'l', type: 'number', description: 'Max results (default 15)', default: '15' },
248
+ { name: 'label', type: 'string', description: 'Filter by node type: Section, Function, Concept, File, etc.' },
249
+ { name: 'mode', short: 'm', type: 'string', description: 'Search mode: bm25 | semantic | hybrid (default: hybrid)', default: 'hybrid' },
250
+ { name: 'path', short: 'p', type: 'string', description: 'Root path (default: cwd)' },
251
+ ],
252
+ examples: [
253
+ { command: 'monomind monograph search -q "authentication flow"', description: 'Hybrid search across all nodes' },
254
+ { command: 'monomind monograph search -q "API design" --label Section', description: 'Search only doc sections' },
255
+ { command: 'monomind monograph search -q "pipeline" --mode semantic', description: 'Semantic (embedding) search' },
256
+ ],
257
+ action: async (ctx) => {
258
+ const query = ctx.flags.query;
259
+ const limit = parseInt(ctx.flags.limit || '15', 10);
260
+ const label = ctx.flags.label;
261
+ const mode = ctx.flags.mode ?? 'hybrid';
262
+ const root = resolve(ctx.flags.path ?? process.cwd());
263
+ const dbPath = getDbPath(root);
264
+ if (!query) {
265
+ output.printError('--query is required');
266
+ return { success: false, exitCode: 1 };
267
+ }
268
+ if (!existsSync(dbPath)) {
269
+ output.printWarning('No knowledge graph found. Run: monomind monograph build');
270
+ return { success: false, exitCode: 1 };
271
+ }
272
+ output.writeln();
273
+ output.writeln(output.bold(`Monograph Search — "${query}"`));
274
+ output.writeln(output.dim(` mode: ${mode}${label ? ` label: ${label}` : ''} limit: ${limit}`));
275
+ output.writeln();
276
+ try {
277
+ const { openDb, closeDb, ftsSearch, semanticSearch } = await import('@monoes/monograph');
278
+ const db = openDb(dbPath);
279
+ let results = [];
280
+ const K = 60;
281
+ if (mode === 'semantic') {
282
+ results = semanticSearch(db, query, limit, label).map(r => ({ ...r }));
283
+ }
284
+ else if (mode === 'bm25') {
285
+ results = ftsSearch(db, query, limit, label).map(r => ({ ...r }));
286
+ }
287
+ else {
288
+ // hybrid: RRF merge
289
+ const bm25 = ftsSearch(db, query, limit * 2, label);
290
+ const sem = semanticSearch(db, query, limit * 2, label);
291
+ const scores = new Map();
292
+ const meta = new Map();
293
+ bm25.forEach((r, i) => { scores.set(r.id, (scores.get(r.id) ?? 0) + 1 / (K + i)); meta.set(r.id, r); });
294
+ sem.forEach((r, i) => { scores.set(r.id, (scores.get(r.id) ?? 0) + 1 / (K + i)); if (!meta.has(r.id))
295
+ meta.set(r.id, r); });
296
+ results = [...scores.entries()]
297
+ .sort((a, b) => b[1] - a[1])
298
+ .slice(0, limit)
299
+ .map(([id, score]) => ({ ...meta.get(id), score }));
300
+ }
301
+ closeDb(db);
302
+ if (results.length === 0) {
303
+ output.printWarning('No results found.');
304
+ output.writeln(output.dim(' Try: --mode semantic or monomind monograph build to rebuild the index'));
305
+ return { success: true, data: [] };
306
+ }
307
+ output.printTable({
308
+ columns: [
309
+ { key: 'label', header: 'Type', width: 12 },
310
+ { key: 'name', header: 'Name', width: 32 },
311
+ { key: 'file', header: 'File', width: 30 },
312
+ { key: 'score', header: 'Score', width: 8 },
313
+ ],
314
+ data: results.map(r => ({
315
+ label: output.dim(r.label),
316
+ name: r.name.length > 30 ? r.name.slice(0, 27) + '…' : r.name,
317
+ file: r.filePath ? (r.filePath.length > 28 ? '…' + r.filePath.slice(-27) : r.filePath) : output.dim('—'),
318
+ score: r.score != null ? output.dim(r.score.toFixed(4)) : output.dim('—'),
319
+ })),
320
+ });
321
+ output.writeln(output.dim(`\n ${results.length} results`));
322
+ return { success: true, data: results };
323
+ }
324
+ catch (err) {
325
+ output.printError(err instanceof Error ? err.message : String(err));
326
+ return { success: false, exitCode: 1 };
327
+ }
328
+ },
329
+ };
330
+ // ── stats subcommand ──────────────────────────────────────────────────────────
331
+ const statsCommand = {
332
+ name: 'stats',
333
+ description: 'Show knowledge graph statistics — node counts, edge types, top concepts',
334
+ options: [
335
+ { name: 'path', short: 'p', type: 'string', description: 'Root path (default: cwd)' },
336
+ { name: 'top', type: 'number', description: 'Number of top concepts to show (default 10)', default: '10' },
337
+ ],
338
+ examples: [
339
+ { command: 'monomind monograph stats', description: 'Show graph statistics' },
340
+ { command: 'monomind monograph stats --top 20', description: 'Show top 20 concepts' },
341
+ ],
342
+ action: async (ctx) => {
343
+ const root = resolve(ctx.flags.path ?? process.cwd());
344
+ const top = parseInt(ctx.flags.top || '10', 10);
345
+ const dbPath = getDbPath(root);
346
+ if (!existsSync(dbPath)) {
347
+ output.printWarning('No knowledge graph found. Run: monomind monograph build');
348
+ return { success: false, exitCode: 1 };
349
+ }
350
+ output.writeln();
351
+ output.writeln(output.bold('Monograph — Knowledge Graph Statistics'));
352
+ output.writeln(output.dim('─'.repeat(60)));
353
+ output.writeln();
354
+ try {
355
+ await printStats(root, top, true);
356
+ return { success: true };
357
+ }
358
+ catch (err) {
359
+ output.printError(err instanceof Error ? err.message : String(err));
360
+ return { success: false, exitCode: 1 };
361
+ }
362
+ },
363
+ };
364
+ // ── watch subcommand ──────────────────────────────────────────────────────────
365
+ const watchCommand = {
366
+ name: 'watch',
367
+ description: 'Watch for file changes and incrementally rebuild the knowledge graph',
368
+ options: [
369
+ { name: 'path', short: 'p', type: 'string', description: 'Root path (default: cwd)' },
370
+ { name: 'llm', type: 'boolean', description: 'Enable LLM enrichment on rebuild (requires ANTHROPIC_API_KEY)' },
371
+ ],
372
+ examples: [
373
+ { command: 'monomind monograph watch', description: 'Watch and rebuild on changes' },
374
+ ],
375
+ action: async (ctx) => {
376
+ const root = resolve(ctx.flags.path ?? process.cwd());
377
+ const llmFlag = ctx.flags.llm === true;
378
+ const hasApiKey = !!process.env.ANTHROPIC_API_KEY;
379
+ const llmMaxSections = (llmFlag && hasApiKey) ? 50 : 0;
380
+ output.writeln();
381
+ output.writeln(output.bold('Monograph — Watch Mode'));
382
+ output.writeln(output.dim(` Watching: ${root}`));
383
+ output.writeln(output.dim(' Press Ctrl+C to stop'));
384
+ output.writeln();
385
+ try {
386
+ const { watchAsync } = await import('@monoes/monograph');
387
+ const watcher = await watchAsync(root, {
388
+ codeOnly: false,
389
+ llmMaxSections,
390
+ onProgress: (p) => {
391
+ output.writeln(output.dim(` [${p.phase}] ${p.message ?? ''}`));
392
+ },
393
+ });
394
+ output.printSuccess('Watching for changes…');
395
+ output.writeln();
396
+ await new Promise(resolve => {
397
+ process.on('SIGINT', () => {
398
+ watcher?.stop?.();
399
+ output.writeln();
400
+ output.writeln(output.dim('Watch stopped.'));
401
+ resolve();
402
+ });
403
+ });
404
+ return { success: true };
405
+ }
406
+ catch (err) {
407
+ output.printError(err instanceof Error ? err.message : String(err));
408
+ return { success: false, exitCode: 1 };
409
+ }
410
+ },
411
+ };
412
+ // ── shared helper ─────────────────────────────────────────────────────────────
413
+ async function printStats(root, topN = 10, detailed = false) {
414
+ const { openDb, closeDb } = await import('@monoes/monograph');
415
+ const db = openDb(getDbPath(root));
416
+ try {
417
+ // Node counts by label
418
+ const nodeCounts = db.prepare(`SELECT label, COUNT(*) as n FROM nodes GROUP BY label ORDER BY n DESC`).all();
419
+ // Edge counts by relation
420
+ const edgeCounts = db.prepare(`SELECT relation, COUNT(*) as n FROM edges GROUP BY relation ORDER BY n DESC`).all();
421
+ // Top concepts by importance
422
+ const topConcepts = db.prepare(`
423
+ SELECT name,
424
+ COALESCE(json_extract(properties, '$.importance'), 1) as importance,
425
+ (SELECT COUNT(*) FROM edges WHERE target_id = nodes.id AND relation = 'TAGGED_AS') as sections
426
+ FROM nodes WHERE label = 'Concept'
427
+ ORDER BY importance DESC, sections DESC
428
+ LIMIT ?
429
+ `).all(topN);
430
+ output.writeln(output.bold(' Nodes'));
431
+ output.printTable({
432
+ columns: [
433
+ { key: 'label', header: 'Type', width: 18 },
434
+ { key: 'count', header: 'Count', width: 10 },
435
+ { key: 'bar', header: '', width: 30 },
436
+ ],
437
+ data: nodeCounts.map(r => {
438
+ const n = r.n;
439
+ const max = nodeCounts[0]?.n ?? 1;
440
+ const bars = Math.round((n / max) * 20);
441
+ return {
442
+ label: r.label,
443
+ count: String(n),
444
+ bar: output.dim('█'.repeat(bars) + '░'.repeat(20 - bars)),
445
+ };
446
+ }),
447
+ });
448
+ if (detailed) {
449
+ output.writeln();
450
+ output.writeln(output.bold(' Edges'));
451
+ output.printTable({
452
+ columns: [
453
+ { key: 'relation', header: 'Relation', width: 22 },
454
+ { key: 'count', header: 'Count', width: 10 },
455
+ ],
456
+ data: edgeCounts.map(r => ({ relation: r.relation, count: String(r.n) })),
457
+ });
458
+ }
459
+ if (topConcepts.length > 0) {
460
+ output.writeln();
461
+ output.writeln(output.bold(` Top ${topN} Concepts by Importance`));
462
+ output.printTable({
463
+ columns: [
464
+ { key: 'name', header: 'Concept', width: 28 },
465
+ { key: 'importance', header: 'Importance', width: 12 },
466
+ { key: 'sections', header: 'Sections', width: 10 },
467
+ ],
468
+ data: topConcepts.map(r => ({
469
+ name: r.name,
470
+ importance: output.dim('★'.repeat(r.importance) + '☆'.repeat(5 - r.importance)),
471
+ sections: String(r.sections ?? 0),
472
+ })),
473
+ });
474
+ }
475
+ // CO_OCCURS enrichment hint
476
+ const coOccurCount = db.prepare(`SELECT COUNT(*) as n FROM edges WHERE relation = 'CO_OCCURS'`).get().n;
477
+ const llmCount = db.prepare(`SELECT COUNT(*) as n FROM edges WHERE confidence = 'INFERRED'`).get().n;
478
+ output.writeln();
479
+ output.writeln(output.dim(` CO_OCCURS edges: ${coOccurCount} Inferred (LLM) edges: ${llmCount}`));
480
+ output.writeln(output.dim(` Database: ${getDbPath(root)}`));
481
+ }
482
+ finally {
483
+ closeDb(db);
484
+ }
485
+ }
486
+ // ── root command ──────────────────────────────────────────────────────────────
487
+ export const monographCommand = {
488
+ name: 'monograph',
489
+ description: 'Knowledge graph for code and documents — build, search, explore',
490
+ aliases: ['kg'],
491
+ subcommands: [buildCommand, wikiCommand, searchCommand, statsCommand, watchCommand],
492
+ examples: [
493
+ { command: 'monomind monograph wiki', description: 'Build KG from all docs and PDFs' },
494
+ { command: 'monomind monograph wiki --llm', description: 'Build KG with Claude semantic extraction' },
495
+ { command: 'monomind monograph build', description: 'Build KG from code + docs' },
496
+ { command: 'monomind monograph search -q "authentication"', description: 'Search the knowledge graph' },
497
+ { command: 'monomind monograph stats', description: 'Show graph statistics' },
498
+ { command: 'monomind monograph watch', description: 'Watch for changes and rebuild' },
499
+ ],
500
+ action: async () => {
501
+ output.writeln();
502
+ output.writeln(output.bold('Monograph — Knowledge Graph'));
503
+ output.writeln(output.dim('Code intelligence + Document wiki in one unified graph'));
504
+ output.writeln();
505
+ output.writeln('Commands:');
506
+ output.printList([
507
+ 'wiki — Scan all docs & PDFs → searchable knowledge graph',
508
+ 'build — Full build (code + docs + PDFs)',
509
+ 'search — Search across code, sections, and concepts',
510
+ 'stats — Node/edge counts, top concepts',
511
+ 'watch — Auto-rebuild on file changes',
512
+ ]);
513
+ output.writeln();
514
+ output.writeln('Examples:');
515
+ output.printList([
516
+ 'monomind monograph wiki',
517
+ 'monomind monograph wiki --llm',
518
+ 'monomind monograph search -q "pipeline architecture"',
519
+ ]);
520
+ output.writeln();
521
+ output.writeln(output.dim('Add --llm to any build command to extract semantic relationships with Claude'));
522
+ return { success: true };
523
+ },
524
+ };
525
+ export default monographCommand;
526
+ //# sourceMappingURL=monograph.js.map