monomind 1.10.0 → 1.10.1

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 (912) hide show
  1. package/bin/monomind.js +50 -0
  2. package/package.json +11 -71
  3. package/.claude/agents/academic/academic-anthropologist.md +0 -126
  4. package/.claude/agents/academic/academic-geographer.md +0 -128
  5. package/.claude/agents/academic/academic-historian.md +0 -124
  6. package/.claude/agents/academic/academic-narratologist.md +0 -119
  7. package/.claude/agents/academic/academic-psychologist.md +0 -119
  8. package/.claude/agents/analysis/analyze-code-quality.md +0 -58
  9. package/.claude/agents/analysis/code-analyzer.md +0 -189
  10. package/.claude/agents/analysis/code-review/analyze-code-quality.md +0 -58
  11. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -54
  12. package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
  13. package/.claude/agents/consensus/performance-benchmarker.md +0 -831
  14. package/.claude/agents/consensus/quorum-manager.md +0 -803
  15. package/.claude/agents/consensus/security-manager.md +0 -602
  16. package/.claude/agents/core/coder.md +0 -262
  17. package/.claude/agents/core/planner.md +0 -170
  18. package/.claude/agents/core/researcher.md +0 -192
  19. package/.claude/agents/core/reviewer.md +0 -327
  20. package/.claude/agents/core/tester.md +0 -318
  21. package/.claude/agents/data/ml/data-ml-model.md +0 -76
  22. package/.claude/agents/design/design-monodesign.md +0 -121
  23. package/.claude/agents/development/dev-backend-api.md +0 -178
  24. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -52
  25. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -63
  26. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +0 -212
  27. package/.claude/agents/engineering/engineering-ai-engineer.md +0 -165
  28. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +0 -108
  29. package/.claude/agents/engineering/engineering-backend-architect.md +0 -254
  30. package/.claude/agents/engineering/engineering-code-reviewer.md +0 -95
  31. package/.claude/agents/engineering/engineering-data-engineer.md +0 -307
  32. package/.claude/agents/engineering/engineering-database-optimizer.md +0 -200
  33. package/.claude/agents/engineering/engineering-devops-automator.md +0 -430
  34. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +0 -174
  35. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +0 -607
  36. package/.claude/agents/engineering/engineering-frontend-developer.md +0 -249
  37. package/.claude/agents/engineering/engineering-git-workflow-master.md +0 -108
  38. package/.claude/agents/engineering/engineering-incident-response-commander.md +0 -482
  39. package/.claude/agents/engineering/engineering-mobile-app-builder.md +0 -499
  40. package/.claude/agents/engineering/engineering-rapid-prototyper.md +0 -463
  41. package/.claude/agents/engineering/engineering-security-engineer.md +0 -303
  42. package/.claude/agents/engineering/engineering-senior-developer.md +0 -195
  43. package/.claude/agents/engineering/engineering-software-architect.md +0 -100
  44. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +0 -528
  45. package/.claude/agents/engineering/engineering-sre.md +0 -114
  46. package/.claude/agents/engineering/engineering-technical-writer.md +0 -412
  47. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +0 -540
  48. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +0 -351
  49. package/.claude/agents/game-development/blender/blender-addon-engineer.md +0 -235
  50. package/.claude/agents/game-development/game-audio-engineer.md +0 -265
  51. package/.claude/agents/game-development/game-designer.md +0 -168
  52. package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +0 -335
  53. package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +0 -298
  54. package/.claude/agents/game-development/godot/godot-shader-developer.md +0 -267
  55. package/.claude/agents/game-development/level-designer.md +0 -209
  56. package/.claude/agents/game-development/narrative-designer.md +0 -244
  57. package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +0 -298
  58. package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +0 -306
  59. package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +0 -326
  60. package/.claude/agents/game-development/technical-artist.md +0 -230
  61. package/.claude/agents/game-development/unity/unity-architect.md +0 -272
  62. package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +0 -311
  63. package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +0 -322
  64. package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +0 -270
  65. package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +0 -314
  66. package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +0 -311
  67. package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +0 -257
  68. package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +0 -274
  69. package/.claude/agents/github/code-review-swarm.md +0 -557
  70. package/.claude/agents/github/github-modes.md +0 -154
  71. package/.claude/agents/github/issue-tracker.md +0 -299
  72. package/.claude/agents/github/multi-repo-swarm.md +0 -525
  73. package/.claude/agents/github/pr-manager.md +0 -163
  74. package/.claude/agents/github/project-board-sync.md +0 -478
  75. package/.claude/agents/github/release-manager.md +0 -296
  76. package/.claude/agents/github/release-swarm.md +0 -597
  77. package/.claude/agents/github/repo-architect.md +0 -359
  78. package/.claude/agents/github/swarm-issue.md +0 -548
  79. package/.claude/agents/github/swarm-pr.md +0 -427
  80. package/.claude/agents/github/sync-coordinator.md +0 -355
  81. package/.claude/agents/github/workflow-automation.md +0 -640
  82. package/.claude/agents/goal/agent.md +0 -804
  83. package/.claude/agents/goal/code-goal-planner.md +0 -445
  84. package/.claude/agents/goal/goal-planner.md +0 -168
  85. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -129
  86. package/.claude/agents/hive-mind/queen-coordinator.md +0 -202
  87. package/.claude/agents/hive-mind/scout-explorer.md +0 -241
  88. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -192
  89. package/.claude/agents/hive-mind/worker-specialist.md +0 -216
  90. package/.claude/agents/marketing/marketing-ai-citation-strategist.md +0 -171
  91. package/.claude/agents/marketing/marketing-app-store-optimizer.md +0 -322
  92. package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +0 -227
  93. package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +0 -200
  94. package/.claude/agents/marketing/marketing-book-co-author.md +0 -111
  95. package/.claude/agents/marketing/marketing-carousel-growth-engine.md +0 -200
  96. package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +0 -284
  97. package/.claude/agents/marketing/marketing-competitive-content.md +0 -155
  98. package/.claude/agents/marketing/marketing-content-creator.md +0 -67
  99. package/.claude/agents/marketing/marketing-cro-specialist.md +0 -147
  100. package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +0 -260
  101. package/.claude/agents/marketing/marketing-douyin-strategist.md +0 -150
  102. package/.claude/agents/marketing/marketing-email-specialist.md +0 -90
  103. package/.claude/agents/marketing/marketing-growth-hacker.md +0 -54
  104. package/.claude/agents/marketing/marketing-instagram-curator.md +0 -114
  105. package/.claude/agents/marketing/marketing-kuaishou-strategist.md +0 -224
  106. package/.claude/agents/marketing/marketing-launch-strategist.md +0 -129
  107. package/.claude/agents/marketing/marketing-linkedin-content-creator.md +0 -215
  108. package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +0 -306
  109. package/.claude/agents/marketing/marketing-podcast-strategist.md +0 -278
  110. package/.claude/agents/marketing/marketing-pricing-strategist.md +0 -127
  111. package/.claude/agents/marketing/marketing-private-domain-operator.md +0 -309
  112. package/.claude/agents/marketing/marketing-reddit-community-builder.md +0 -124
  113. package/.claude/agents/marketing/marketing-seo-specialist.md +0 -279
  114. package/.claude/agents/marketing/marketing-short-video-editing-coach.md +0 -413
  115. package/.claude/agents/marketing/marketing-social-media-strategist.md +0 -125
  116. package/.claude/agents/marketing/marketing-tiktok-strategist.md +0 -126
  117. package/.claude/agents/marketing/marketing-twitter-engager.md +0 -127
  118. package/.claude/agents/marketing/marketing-wechat-official-account.md +0 -146
  119. package/.claude/agents/marketing/marketing-weibo-strategist.md +0 -241
  120. package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +0 -139
  121. package/.claude/agents/marketing/marketing-zhihu-strategist.md +0 -163
  122. package/.claude/agents/neural/safla-neural.md +0 -74
  123. package/.claude/agents/optimization/benchmark-suite.md +0 -663
  124. package/.claude/agents/optimization/load-balancer.md +0 -429
  125. package/.claude/agents/optimization/performance-monitor.md +0 -670
  126. package/.claude/agents/optimization/resource-allocator.md +0 -672
  127. package/.claude/agents/optimization/topology-optimizer.md +0 -806
  128. package/.claude/agents/paid-media/paid-media-auditor.md +0 -71
  129. package/.claude/agents/paid-media/paid-media-creative-strategist.md +0 -71
  130. package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +0 -71
  131. package/.claude/agents/paid-media/paid-media-ppc-strategist.md +0 -71
  132. package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +0 -71
  133. package/.claude/agents/paid-media/paid-media-search-query-analyst.md +0 -71
  134. package/.claude/agents/paid-media/paid-media-tracking-specialist.md +0 -71
  135. package/.claude/agents/payments/agentic-payments.md +0 -126
  136. package/.claude/agents/product/product-behavioral-nudge-engine.md +0 -81
  137. package/.claude/agents/product/product-feedback-synthesizer.md +0 -119
  138. package/.claude/agents/product/product-manager.md +0 -469
  139. package/.claude/agents/product/product-sprint-prioritizer.md +0 -154
  140. package/.claude/agents/product/product-trend-researcher.md +0 -159
  141. package/.claude/agents/project-management/project-management-experiment-tracker.md +0 -199
  142. package/.claude/agents/project-management/project-management-jira-workflow-steward.md +0 -231
  143. package/.claude/agents/project-management/project-management-project-shepherd.md +0 -195
  144. package/.claude/agents/project-management/project-management-studio-operations.md +0 -201
  145. package/.claude/agents/project-management/project-management-studio-producer.md +0 -204
  146. package/.claude/agents/project-management/project-manager-senior.md +0 -136
  147. package/.claude/agents/reasoning/agent.md +0 -804
  148. package/.claude/agents/reasoning/goal-planner.md +0 -73
  149. package/.claude/agents/sales/sales-account-strategist.md +0 -228
  150. package/.claude/agents/sales/sales-coach.md +0 -272
  151. package/.claude/agents/sales/sales-deal-strategist.md +0 -181
  152. package/.claude/agents/sales/sales-discovery-coach.md +0 -226
  153. package/.claude/agents/sales/sales-engineer.md +0 -183
  154. package/.claude/agents/sales/sales-outbound-strategist.md +0 -202
  155. package/.claude/agents/sales/sales-pipeline-analyst.md +0 -268
  156. package/.claude/agents/sales/sales-proposal-strategist.md +0 -218
  157. package/.claude/agents/schemas/architecture-output.json +0 -43
  158. package/.claude/agents/schemas/code-review-output.json +0 -28
  159. package/.claude/agents/schemas/generic-task-input.json +0 -12
  160. package/.claude/agents/schemas/implementation-output.json +0 -18
  161. package/.claude/agents/schemas/research-output.json +0 -31
  162. package/.claude/agents/schemas/security-audit-output.json +0 -29
  163. package/.claude/agents/schemas/test-report-output.json +0 -29
  164. package/.claude/agents/sona/sona-learning-optimizer.md +0 -65
  165. package/.claude/agents/sparc/architecture.md +0 -453
  166. package/.claude/agents/sparc/pseudocode.md +0 -299
  167. package/.claude/agents/sparc/refinement.md +0 -504
  168. package/.claude/agents/sparc/specification.md +0 -258
  169. package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +0 -338
  170. package/.claude/agents/spatial-computing/terminal-integration-specialist.md +0 -71
  171. package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +0 -55
  172. package/.claude/agents/specialists/integration-architect.md +0 -94
  173. package/.claude/agents/specialists/memory-specialist.md +0 -298
  174. package/.claude/agents/specialists/performance-engineer.md +0 -387
  175. package/.claude/agents/specialists/queen-coordinator.md +0 -67
  176. package/.claude/agents/specialists/security-architect.md +0 -154
  177. package/.claude/agents/specialized/accounts-payable-agent.md +0 -186
  178. package/.claude/agents/specialized/agentic-identity-trust.md +0 -388
  179. package/.claude/agents/specialized/agents-orchestrator.md +0 -368
  180. package/.claude/agents/specialized/automation-governance-architect.md +0 -217
  181. package/.claude/agents/specialized/blockchain-security-auditor.md +0 -497
  182. package/.claude/agents/specialized/compliance-auditor.md +0 -159
  183. package/.claude/agents/specialized/corporate-training-designer.md +0 -193
  184. package/.claude/agents/specialized/data-consolidation-agent.md +0 -61
  185. package/.claude/agents/specialized/government-digital-presales-consultant.md +0 -364
  186. package/.claude/agents/specialized/healthcare-marketing-compliance.md +0 -396
  187. package/.claude/agents/specialized/identity-graph-operator.md +0 -261
  188. package/.claude/agents/specialized/lsp-index-engineer.md +0 -315
  189. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -89
  190. package/.claude/agents/specialized/recruitment-specialist.md +0 -510
  191. package/.claude/agents/specialized/report-distribution-agent.md +0 -66
  192. package/.claude/agents/specialized/sales-data-extraction-agent.md +0 -68
  193. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +0 -89
  194. package/.claude/agents/specialized/specialized-developer-advocate.md +0 -318
  195. package/.claude/agents/specialized/specialized-document-generator.md +0 -56
  196. package/.claude/agents/specialized/specialized-french-consulting-market.md +0 -193
  197. package/.claude/agents/specialized/specialized-korean-business-navigator.md +0 -217
  198. package/.claude/agents/specialized/specialized-mcp-builder.md +0 -64
  199. package/.claude/agents/specialized/specialized-model-qa.md +0 -489
  200. package/.claude/agents/specialized/specialized-salesforce-architect.md +0 -181
  201. package/.claude/agents/specialized/specialized-workflow-architect.md +0 -598
  202. package/.claude/agents/specialized/study-abroad-advisor.md +0 -283
  203. package/.claude/agents/specialized/supply-chain-strategist.md +0 -583
  204. package/.claude/agents/specialized/zk-steward.md +0 -212
  205. package/.claude/agents/sublinear/consensus-coordinator.md +0 -333
  206. package/.claude/agents/sublinear/matrix-optimizer.md +0 -180
  207. package/.claude/agents/sublinear/pagerank-analyzer.md +0 -295
  208. package/.claude/agents/sublinear/performance-optimizer.md +0 -363
  209. package/.claude/agents/sublinear/trading-predictor.md +0 -242
  210. package/.claude/agents/support/support-analytics-reporter.md +0 -366
  211. package/.claude/agents/support/support-executive-summary-generator.md +0 -213
  212. package/.claude/agents/support/support-finance-tracker.md +0 -443
  213. package/.claude/agents/support/support-infrastructure-maintainer.md +0 -619
  214. package/.claude/agents/support/support-legal-compliance-checker.md +0 -589
  215. package/.claude/agents/support/support-support-responder.md +0 -586
  216. package/.claude/agents/swarm/adaptive-coordinator.md +0 -364
  217. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -318
  218. package/.claude/agents/swarm/mesh-coordinator.md +0 -363
  219. package/.claude/agents/templates/automation-smart-agent.md +0 -185
  220. package/.claude/agents/templates/coordinator-swarm-init.md +0 -83
  221. package/.claude/agents/templates/github-pr-manager.md +0 -155
  222. package/.claude/agents/templates/implementer-sparc-coder.md +0 -231
  223. package/.claude/agents/templates/memory-coordinator.md +0 -163
  224. package/.claude/agents/templates/migration-plan.md +0 -724
  225. package/.claude/agents/templates/orchestrator-task.md +0 -120
  226. package/.claude/agents/templates/performance-analyzer.md +0 -179
  227. package/.claude/agents/templates/sparc-coordinator.md +0 -163
  228. package/.claude/agents/testing/production-validator.md +0 -374
  229. package/.claude/agents/testing/tdd-london-swarm.md +0 -241
  230. package/.claude/agents/testing/testing-accessibility-auditor.md +0 -322
  231. package/.claude/agents/testing/testing-api-tester.md +0 -307
  232. package/.claude/agents/testing/testing-evidence-collector.md +0 -211
  233. package/.claude/agents/testing/testing-performance-benchmarker.md +0 -269
  234. package/.claude/agents/testing/testing-reality-checker.md +0 -237
  235. package/.claude/agents/testing/testing-test-results-analyzer.md +0 -306
  236. package/.claude/agents/testing/testing-tool-evaluator.md +0 -395
  237. package/.claude/agents/testing/testing-workflow-optimizer.md +0 -451
  238. package/.claude/checkpoints/1767754460.json +0 -8
  239. package/.claude/commands/agents/README.md +0 -14
  240. package/.claude/commands/agents/agent-capabilities.md +0 -25
  241. package/.claude/commands/agents/agent-coordination.md +0 -32
  242. package/.claude/commands/agents/agent-spawning.md +0 -32
  243. package/.claude/commands/agents/agent-types.md +0 -30
  244. package/.claude/commands/analysis/README.md +0 -18
  245. package/.claude/commands/analysis/bottleneck-detect.md +0 -69
  246. package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
  247. package/.claude/commands/analysis/performance-report.md +0 -52
  248. package/.claude/commands/analysis/token-efficiency.md +0 -42
  249. package/.claude/commands/analysis/token-usage.md +0 -47
  250. package/.claude/commands/automation/README.md +0 -19
  251. package/.claude/commands/automation/auto-agent.md +0 -86
  252. package/.claude/commands/automation/self-healing.md +0 -108
  253. package/.claude/commands/automation/session-memory.md +0 -89
  254. package/.claude/commands/automation/smart-agents.md +0 -81
  255. package/.claude/commands/automation/smart-spawn.md +0 -66
  256. package/.claude/commands/automation/workflow-select.md +0 -60
  257. package/.claude/commands/browse.md +0 -32
  258. package/.claude/commands/coordination/README.md +0 -13
  259. package/.claude/commands/coordination/agent-spawn.md +0 -69
  260. package/.claude/commands/coordination/swarm-init.md +0 -82
  261. package/.claude/commands/coordination/task-orchestrate.md +0 -79
  262. package/.claude/commands/github/README.md +0 -24
  263. package/.claude/commands/github/github-modes.md +0 -151
  264. package/.claude/commands/github/issue-tracker.md +0 -293
  265. package/.claude/commands/github/pr-manager.md +0 -173
  266. package/.claude/commands/github/release-manager.md +0 -343
  267. package/.claude/commands/github/repo-architect.md +0 -379
  268. package/.claude/commands/github/sync-coordinator.md +0 -297
  269. package/.claude/commands/hive-mind/README.md +0 -42
  270. package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
  271. package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
  272. package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
  273. package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
  274. package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
  275. package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
  276. package/.claude/commands/hive-mind/hive-mind.md +0 -87
  277. package/.claude/commands/hooks/README.md +0 -66
  278. package/.claude/commands/hooks/overview.md +0 -117
  279. package/.claude/commands/hooks/post-edit.md +0 -78
  280. package/.claude/commands/hooks/post-task.md +0 -62
  281. package/.claude/commands/hooks/pre-edit.md +0 -81
  282. package/.claude/commands/hooks/pre-task.md +0 -76
  283. package/.claude/commands/hooks/session-end.md +0 -82
  284. package/.claude/commands/hooks/setup.md +0 -132
  285. package/.claude/commands/mastermind/_repeat.md +0 -451
  286. package/.claude/commands/mastermind/architect.md +0 -55
  287. package/.claude/commands/mastermind/brain.md +0 -102
  288. package/.claude/commands/mastermind/build.md +0 -26
  289. package/.claude/commands/mastermind/content.md +0 -26
  290. package/.claude/commands/mastermind/createorg.md +0 -97
  291. package/.claude/commands/mastermind/finance.md +0 -26
  292. package/.claude/commands/mastermind/idea.md +0 -26
  293. package/.claude/commands/mastermind/marketing.md +0 -26
  294. package/.claude/commands/mastermind/master.md +0 -772
  295. package/.claude/commands/mastermind/ops.md +0 -26
  296. package/.claude/commands/mastermind/release.md +0 -26
  297. package/.claude/commands/mastermind/research.md +0 -26
  298. package/.claude/commands/mastermind/review.md +0 -26
  299. package/.claude/commands/mastermind/runorg.md +0 -109
  300. package/.claude/commands/mastermind/sales.md +0 -26
  301. package/.claude/commands/mastermind/techport.md +0 -26
  302. package/.claude/commands/mastermind.md +0 -121
  303. package/.claude/commands/memory/README.md +0 -79
  304. package/.claude/commands/memory/memory-search.md +0 -77
  305. package/.claude/commands/monitoring/README.md +0 -69
  306. package/.claude/commands/monitoring/agent-metrics.md +0 -65
  307. package/.claude/commands/monitoring/agents.md +0 -71
  308. package/.claude/commands/monitoring/status.md +0 -108
  309. package/.claude/commands/monograph/README.md +0 -102
  310. package/.claude/commands/monograph/monograph-build.md +0 -79
  311. package/.claude/commands/monograph/monograph-search.md +0 -96
  312. package/.claude/commands/monograph/monograph-stats.md +0 -53
  313. package/.claude/commands/monograph/monograph-watch.md +0 -63
  314. package/.claude/commands/monograph/monograph-wiki.md +0 -91
  315. package/.claude/commands/monomind/createtask.md +0 -277
  316. package/.claude/commands/monomind/do.md +0 -446
  317. package/.claude/commands/monomind/help.md +0 -118
  318. package/.claude/commands/monomind/idea.md +0 -273
  319. package/.claude/commands/monomind/improve.md +0 -350
  320. package/.claude/commands/monomind/memory.md +0 -230
  321. package/.claude/commands/monomind/repeat.md +0 -257
  322. package/.claude/commands/monomind/review.md +0 -317
  323. package/.claude/commands/monomind/specialagents.md +0 -125
  324. package/.claude/commands/monomind/swarm.md +0 -161
  325. package/.claude/commands/monomind/understand.md +0 -150
  326. package/.claude/commands/optimization/README.md +0 -73
  327. package/.claude/commands/optimization/auto-topology.md +0 -85
  328. package/.claude/commands/optimization/parallel-execution.md +0 -76
  329. package/.claude/commands/optimization/performance-optimize.md +0 -79
  330. package/.claude/commands/pair/README.md +0 -79
  331. package/.claude/commands/pair/examples.md +0 -156
  332. package/.claude/commands/pair/modes.md +0 -122
  333. package/.claude/commands/pair/session.md +0 -124
  334. package/.claude/commands/sparc/analyzer.md +0 -35
  335. package/.claude/commands/sparc/architect.md +0 -36
  336. package/.claude/commands/sparc/ask.md +0 -56
  337. package/.claude/commands/sparc/batch-executor.md +0 -37
  338. package/.claude/commands/sparc/code.md +0 -48
  339. package/.claude/commands/sparc/coder.md +0 -37
  340. package/.claude/commands/sparc/debug.md +0 -42
  341. package/.claude/commands/sparc/debugger.md +0 -37
  342. package/.claude/commands/sparc/designer.md +0 -36
  343. package/.claude/commands/sparc/devops.md +0 -68
  344. package/.claude/commands/sparc/docs-writer.md +0 -39
  345. package/.claude/commands/sparc/documenter.md +0 -37
  346. package/.claude/commands/sparc/innovator.md +0 -37
  347. package/.claude/commands/sparc/integration.md +0 -42
  348. package/.claude/commands/sparc/mcp.md +0 -76
  349. package/.claude/commands/sparc/memory-manager.md +0 -57
  350. package/.claude/commands/sparc/optimizer.md +0 -37
  351. package/.claude/commands/sparc/orchestrator.md +0 -70
  352. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -42
  353. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -42
  354. package/.claude/commands/sparc/researcher.md +0 -37
  355. package/.claude/commands/sparc/reviewer.md +0 -37
  356. package/.claude/commands/sparc/security-review.md +0 -39
  357. package/.claude/commands/sparc/sparc-modes.md +0 -120
  358. package/.claude/commands/sparc/sparc.md +0 -71
  359. package/.claude/commands/sparc/spec-pseudocode.md +0 -39
  360. package/.claude/commands/sparc/supabase-admin.md +0 -301
  361. package/.claude/commands/sparc/swarm-coordinator.md +0 -50
  362. package/.claude/commands/sparc/tdd.md +0 -37
  363. package/.claude/commands/sparc/tester.md +0 -37
  364. package/.claude/commands/sparc/tutorial.md +0 -38
  365. package/.claude/commands/sparc/workflow-manager.md +0 -37
  366. package/.claude/commands/sparc.md +0 -112
  367. package/.claude/commands/stream-chain/pipeline.md +0 -116
  368. package/.claude/commands/stream-chain/run.md +0 -156
  369. package/.claude/commands/swarm/README.md +0 -40
  370. package/.claude/commands/swarm/analysis.md +0 -73
  371. package/.claude/commands/swarm/development.md +0 -72
  372. package/.claude/commands/swarm/examples.md +0 -103
  373. package/.claude/commands/swarm/maintenance.md +0 -75
  374. package/.claude/commands/swarm/optimization.md +0 -84
  375. package/.claude/commands/swarm/research.md +0 -76
  376. package/.claude/commands/swarm/swarm-analysis.md +0 -62
  377. package/.claude/commands/swarm/swarm-background.md +0 -65
  378. package/.claude/commands/swarm/swarm-modes.md +0 -67
  379. package/.claude/commands/swarm/swarm-monitor.md +0 -54
  380. package/.claude/commands/swarm/swarm-status.md +0 -44
  381. package/.claude/commands/swarm/swarm-strategies.md +0 -76
  382. package/.claude/commands/swarm/swarm.md +0 -79
  383. package/.claude/commands/swarm/testing.md +0 -80
  384. package/.claude/commands/tokens.md +0 -18
  385. package/.claude/commands/training/README.md +0 -39
  386. package/.claude/commands/training/model-update.md +0 -78
  387. package/.claude/commands/training/neural-patterns.md +0 -73
  388. package/.claude/commands/training/neural-train.md +0 -79
  389. package/.claude/commands/training/pattern-learn.md +0 -69
  390. package/.claude/commands/training/specialization.md +0 -92
  391. package/.claude/commands/truth/start.md +0 -121
  392. package/.claude/commands/ts.md +0 -14
  393. package/.claude/commands/verify/check.md +0 -106
  394. package/.claude/commands/verify/start.md +0 -105
  395. package/.claude/commands/workflows/README.md +0 -65
  396. package/.claude/commands/workflows/development.md +0 -86
  397. package/.claude/commands/workflows/research.md +0 -89
  398. package/.claude/commands/workflows/workflow-create.md +0 -84
  399. package/.claude/commands/workflows/workflow-execute.md +0 -103
  400. package/.claude/commands/workflows/workflow-export.md +0 -90
  401. package/.claude/config/v1-dependency-optimization.json +0 -266
  402. package/.claude/config/v1-performance-targets.json +0 -251
  403. package/.claude/helpers/README.md +0 -105
  404. package/.claude/helpers/auto-memory-hook.mjs +0 -369
  405. package/.claude/helpers/context-persistence-hook.mjs +0 -1988
  406. package/.claude/helpers/control-start.cjs +0 -91
  407. package/.claude/helpers/extras-registry.json +0 -5141
  408. package/.claude/helpers/graphify-freshen.cjs +0 -98
  409. package/.claude/helpers/hook-handler.cjs +0 -1718
  410. package/.claude/helpers/intelligence.cjs +0 -227
  411. package/.claude/helpers/learning-service.mjs +0 -1144
  412. package/.claude/helpers/loop-tracker.cjs +0 -107
  413. package/.claude/helpers/memory-palace.cjs +0 -401
  414. package/.claude/helpers/memory.cjs +0 -84
  415. package/.claude/helpers/metrics-db.mjs +0 -488
  416. package/.claude/helpers/router.cjs +0 -450
  417. package/.claude/helpers/session.cjs +0 -125
  418. package/.claude/helpers/skill-registry.json +0 -946
  419. package/.claude/helpers/statusline.cjs +0 -1331
  420. package/.claude/helpers/swarm-hooks.sh +0 -761
  421. package/.claude/helpers/toggle-statusline.cjs +0 -58
  422. package/.claude/helpers/token-tracker.cjs +0 -934
  423. package/.claude/mcp.json +0 -3
  424. package/.claude/scheduled_tasks.lock +0 -1
  425. package/.claude/settings.json +0 -318
  426. package/.claude/settings.local.json +0 -52
  427. package/.claude/skills/.monomind/data/ranked-context.json +0 -5
  428. package/.claude/skills/.monomind/sessions/current.json +0 -13
  429. package/.claude/skills/.monomind/sessions/session-1777829336455.json +0 -15
  430. package/.claude/skills/.monomind/sessions/session-1777831614725.json +0 -15
  431. package/.claude/skills/.monomind/sessions/session-1777832095857.json +0 -15
  432. package/.claude/skills/.monomind/sessions/session-1777839814183.json +0 -15
  433. package/.claude/skills/.monomind/sessions/session-1777841847131.json +0 -15
  434. package/.claude/skills/.monomind/sessions/session-1777843309463.json +0 -15
  435. package/.claude/skills/.monomind/sessions/session-1777880867159.json +0 -15
  436. package/.claude/skills/.monomind/sessions/session-1777881884593.json +0 -15
  437. package/.claude/skills/.monomind/sessions/session-1777884090471.json +0 -15
  438. package/.claude/skills/.monomind/sessions/session-1777884808221.json +0 -15
  439. package/.claude/skills/.monomind/sessions/session-1777885672155.json +0 -15
  440. package/.claude/skills/.monomind/sessions/session-1777886852818.json +0 -15
  441. package/.claude/skills/.monomind/sessions/session-1777896532690.json +0 -15
  442. package/.claude/skills/agent-browser-testing/SKILL.md +0 -312
  443. package/.claude/skills/agentdb-advanced/SKILL.md +0 -549
  444. package/.claude/skills/agentdb-learning/SKILL.md +0 -544
  445. package/.claude/skills/agentdb-memory-patterns/SKILL.md +0 -337
  446. package/.claude/skills/agentdb-optimization/SKILL.md +0 -508
  447. package/.claude/skills/agentdb-vector-search/SKILL.md +0 -335
  448. package/.claude/skills/agentic-integration/SKILL.md +0 -265
  449. package/.claude/skills/agentic-jujutsu/SKILL.md +0 -645
  450. package/.claude/skills/cli-modernization/SKILL.md +0 -950
  451. package/.claude/skills/core-implementation/SKILL.md +0 -892
  452. package/.claude/skills/ddd-architecture/SKILL.md +0 -444
  453. package/.claude/skills/github-code-review/SKILL.md +0 -1147
  454. package/.claude/skills/github-multi-repo/SKILL.md +0 -912
  455. package/.claude/skills/github-project-management/SKILL.md +0 -1245
  456. package/.claude/skills/github-release-management/SKILL.md +0 -1118
  457. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1107
  458. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -709
  459. package/.claude/skills/hooks-automation/SKILL.md +0 -1196
  460. package/.claude/skills/mastermind/_agent-select.md +0 -132
  461. package/.claude/skills/mastermind/_intake.md +0 -83
  462. package/.claude/skills/mastermind/_protocol.md +0 -380
  463. package/.claude/skills/mastermind/access.md +0 -236
  464. package/.claude/skills/mastermind/activity.md +0 -191
  465. package/.claude/skills/mastermind/adapter-manager.md +0 -259
  466. package/.claude/skills/mastermind/adapters.md +0 -204
  467. package/.claude/skills/mastermind/agent-detail.md +0 -242
  468. package/.claude/skills/mastermind/agents.md +0 -178
  469. package/.claude/skills/mastermind/approval-detail.md +0 -259
  470. package/.claude/skills/mastermind/approve.md +0 -181
  471. package/.claude/skills/mastermind/architect.md +0 -863
  472. package/.claude/skills/mastermind/backup.md +0 -197
  473. package/.claude/skills/mastermind/bootstrap.md +0 -190
  474. package/.claude/skills/mastermind/budgets.md +0 -237
  475. package/.claude/skills/mastermind/build.md +0 -170
  476. package/.claude/skills/mastermind/companies.md +0 -256
  477. package/.claude/skills/mastermind/content.md +0 -197
  478. package/.claude/skills/mastermind/costs.md +0 -151
  479. package/.claude/skills/mastermind/createorg.md +0 -344
  480. package/.claude/skills/mastermind/diagnose.md +0 -249
  481. package/.claude/skills/mastermind/env.md +0 -198
  482. package/.claude/skills/mastermind/environments.md +0 -250
  483. package/.claude/skills/mastermind/export.md +0 -324
  484. package/.claude/skills/mastermind/finance.md +0 -166
  485. package/.claude/skills/mastermind/goal-detail.md +0 -255
  486. package/.claude/skills/mastermind/goals.md +0 -149
  487. package/.claude/skills/mastermind/heartbeat.md +0 -164
  488. package/.claude/skills/mastermind/idea.md +0 -1120
  489. package/.claude/skills/mastermind/import.md +0 -281
  490. package/.claude/skills/mastermind/inbox.md +0 -214
  491. package/.claude/skills/mastermind/instance-settings.md +0 -315
  492. package/.claude/skills/mastermind/instance.md +0 -231
  493. package/.claude/skills/mastermind/invite-landing.md +0 -227
  494. package/.claude/skills/mastermind/invites.md +0 -254
  495. package/.claude/skills/mastermind/issue-detail.md +0 -291
  496. package/.claude/skills/mastermind/issues.md +0 -235
  497. package/.claude/skills/mastermind/join-queue.md +0 -170
  498. package/.claude/skills/mastermind/liveness.md +0 -392
  499. package/.claude/skills/mastermind/marketing.md +0 -228
  500. package/.claude/skills/mastermind/memory.md +0 -321
  501. package/.claude/skills/mastermind/monotask.md +0 -350
  502. package/.claude/skills/mastermind/my-issues.md +0 -146
  503. package/.claude/skills/mastermind/new-agent.md +0 -241
  504. package/.claude/skills/mastermind/ops.md +0 -168
  505. package/.claude/skills/mastermind/org-chart.md +0 -207
  506. package/.claude/skills/mastermind/org-settings.md +0 -217
  507. package/.claude/skills/mastermind/plan-to-tasks.md +0 -136
  508. package/.claude/skills/mastermind/plugin-manager.md +0 -241
  509. package/.claude/skills/mastermind/plugin-settings.md +0 -273
  510. package/.claude/skills/mastermind/plugins.md +0 -190
  511. package/.claude/skills/mastermind/profile.md +0 -187
  512. package/.claude/skills/mastermind/project-detail.md +0 -249
  513. package/.claude/skills/mastermind/project-workspace.md +0 -244
  514. package/.claude/skills/mastermind/projects.md +0 -164
  515. package/.claude/skills/mastermind/references/copywriting-frameworks.md +0 -181
  516. package/.claude/skills/mastermind/references/persuasion-psychology.md +0 -158
  517. package/.claude/skills/mastermind/release.md +0 -168
  518. package/.claude/skills/mastermind/research.md +0 -168
  519. package/.claude/skills/mastermind/review.md +0 -169
  520. package/.claude/skills/mastermind/routine-detail.md +0 -253
  521. package/.claude/skills/mastermind/routines.md +0 -202
  522. package/.claude/skills/mastermind/runorg.md +0 -373
  523. package/.claude/skills/mastermind/sales.md +0 -170
  524. package/.claude/skills/mastermind/search.md +0 -186
  525. package/.claude/skills/mastermind/secrets.md +0 -199
  526. package/.claude/skills/mastermind/skills.md +0 -156
  527. package/.claude/skills/mastermind/tasks.md +0 -149
  528. package/.claude/skills/mastermind/techport.md +0 -743
  529. package/.claude/skills/mastermind/threads.md +0 -259
  530. package/.claude/skills/mastermind/tree-control.md +0 -250
  531. package/.claude/skills/mastermind/wiki.md +0 -314
  532. package/.claude/skills/mastermind/workspace-detail.md +0 -317
  533. package/.claude/skills/mastermind/workspaces.md +0 -261
  534. package/.claude/skills/mastermind/worktree.md +0 -187
  535. package/.claude/skills/mcp-optimization/SKILL.md +0 -837
  536. package/.claude/skills/memory-unification/SKILL.md +0 -196
  537. package/.claude/skills/monodesign/SKILL.md +0 -302
  538. package/.claude/skills/monodesign/reference/adapt.md +0 -190
  539. package/.claude/skills/monodesign/reference/animate.md +0 -175
  540. package/.claude/skills/monodesign/reference/antipatterns-catalog.md +0 -187
  541. package/.claude/skills/monodesign/reference/audit.md +0 -133
  542. package/.claude/skills/monodesign/reference/bolder.md +0 -113
  543. package/.claude/skills/monodesign/reference/brand-workflow.md +0 -180
  544. package/.claude/skills/monodesign/reference/brand.md +0 -114
  545. package/.claude/skills/monodesign/reference/clarify.md +0 -174
  546. package/.claude/skills/monodesign/reference/cognitive-load.md +0 -106
  547. package/.claude/skills/monodesign/reference/color-and-contrast.md +0 -105
  548. package/.claude/skills/monodesign/reference/colorize.md +0 -154
  549. package/.claude/skills/monodesign/reference/component-specs.md +0 -260
  550. package/.claude/skills/monodesign/reference/component-states.md +0 -274
  551. package/.claude/skills/monodesign/reference/component-system.md +0 -358
  552. package/.claude/skills/monodesign/reference/copy-formulas.md +0 -160
  553. package/.claude/skills/monodesign/reference/craft.md +0 -193
  554. package/.claude/skills/monodesign/reference/critique.md +0 -213
  555. package/.claude/skills/monodesign/reference/delight.md +0 -302
  556. package/.claude/skills/monodesign/reference/design-principles.md +0 -246
  557. package/.claude/skills/monodesign/reference/distill.md +0 -111
  558. package/.claude/skills/monodesign/reference/document.md +0 -427
  559. package/.claude/skills/monodesign/reference/extract.md +0 -69
  560. package/.claude/skills/monodesign/reference/harden.md +0 -347
  561. package/.claude/skills/monodesign/reference/heuristics-scoring.md +0 -234
  562. package/.claude/skills/monodesign/reference/image-prompts.md +0 -118
  563. package/.claude/skills/monodesign/reference/interaction-design.md +0 -195
  564. package/.claude/skills/monodesign/reference/layout.md +0 -141
  565. package/.claude/skills/monodesign/reference/live.md +0 -622
  566. package/.claude/skills/monodesign/reference/motion-design.md +0 -109
  567. package/.claude/skills/monodesign/reference/onboard.md +0 -234
  568. package/.claude/skills/monodesign/reference/optimize.md +0 -258
  569. package/.claude/skills/monodesign/reference/overdrive.md +0 -130
  570. package/.claude/skills/monodesign/reference/personas.md +0 -179
  571. package/.claude/skills/monodesign/reference/polish.md +0 -233
  572. package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +0 -108
  573. package/.claude/skills/monodesign/reference/product.md +0 -62
  574. package/.claude/skills/monodesign/reference/quieter.md +0 -99
  575. package/.claude/skills/monodesign/reference/responsive-design.md +0 -114
  576. package/.claude/skills/monodesign/reference/shape.md +0 -151
  577. package/.claude/skills/monodesign/reference/spatial-design.md +0 -100
  578. package/.claude/skills/monodesign/reference/teach.md +0 -156
  579. package/.claude/skills/monodesign/reference/token-architecture.md +0 -222
  580. package/.claude/skills/monodesign/reference/typeset.md +0 -124
  581. package/.claude/skills/monodesign/reference/typography.md +0 -159
  582. package/.claude/skills/monodesign/reference/ux-research.md +0 -143
  583. package/.claude/skills/monodesign/reference/ux-rules.md +0 -211
  584. package/.claude/skills/monodesign/reference/ux-writing.md +0 -107
  585. package/.claude/skills/monomotion/SKILL.md +0 -145
  586. package/.claude/skills/monomotion/rules/api-control.md +0 -139
  587. package/.claude/skills/monomotion/rules/effects.md +0 -109
  588. package/.claude/skills/monomotion/rules/integration.md +0 -140
  589. package/.claude/skills/monomotion/rules/scroll.md +0 -131
  590. package/.claude/skills/monomotion/rules/sequencing.md +0 -105
  591. package/.claude/skills/monomotion/rules/svg.md +0 -101
  592. package/.claude/skills/monomotion/rules/text.md +0 -119
  593. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  594. package/.claude/skills/performance-analysis/SKILL.md +0 -560
  595. package/.claude/skills/performance-optimization/SKILL.md +0 -416
  596. package/.claude/skills/reasoningbank-agentdb/SKILL.md +0 -444
  597. package/.claude/skills/reasoningbank-intelligence/SKILL.md +0 -199
  598. package/.claude/skills/security-hardening/SKILL.md +0 -101
  599. package/.claude/skills/skill-builder/SKILL.md +0 -910
  600. package/.claude/skills/sparc-methodology/SKILL.md +0 -950
  601. package/.claude/skills/specialagent/SKILL.md +0 -208
  602. package/.claude/skills/stop-slop/SKILL.md +0 -67
  603. package/.claude/skills/stop-slop/references/examples.md +0 -61
  604. package/.claude/skills/stop-slop/references/phrases.md +0 -130
  605. package/.claude/skills/stop-slop/references/structures.md +0 -136
  606. package/.claude/skills/stream-chain/SKILL.md +0 -560
  607. package/.claude/skills/swarm-advanced/SKILL.md +0 -940
  608. package/.claude/skills/swarm-coordination/SKILL.md +0 -451
  609. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  610. package/.claude/skills/verification-quality/SKILL.md +0 -674
  611. package/.claude/statusline-command.sh +0 -176
  612. package/.claude/statusline.mjs +0 -109
  613. package/.claude/statusline.sh +0 -431
  614. package/.claude/workflows/feature-dev.yaml +0 -18
  615. package/.claude/workflows/security-audit.yaml +0 -10
  616. package/.claude-plugin/README.md +0 -705
  617. package/.claude-plugin/docs/INSTALLATION.md +0 -258
  618. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +0 -359
  619. package/.claude-plugin/docs/QUICKSTART.md +0 -360
  620. package/.claude-plugin/docs/STRUCTURE.md +0 -126
  621. package/.claude-plugin/hooks/hooks.json +0 -74
  622. package/.claude-plugin/marketplace.json +0 -98
  623. package/.claude-plugin/plugin.json +0 -70
  624. package/.claude-plugin/scripts/install.sh +0 -234
  625. package/.claude-plugin/scripts/uninstall.sh +0 -36
  626. package/.claude-plugin/scripts/verify.sh +0 -108
  627. package/LICENSE +0 -21
  628. package/README.md +0 -441
  629. package/bin/cli.js +0 -11
  630. package/bin/npx-safe-launch.js +0 -9
  631. package/packages/@monomind/cli/README.md +0 -441
  632. package/packages/@monomind/cli/bin/cli.js +0 -221
  633. package/packages/@monomind/cli/bin/mcp-server.js +0 -189
  634. package/packages/@monomind/cli/bin/preinstall.cjs +0 -2
  635. package/packages/@monomind/cli/bundled-graph/dist/tsconfig.tsbuildinfo +0 -1
  636. package/packages/@monomind/cli/bundled-graph/package.json +0 -57
  637. package/packages/@monomind/cli/package.json +0 -114
  638. package/packages/@monomind/guidance/README.md +0 -1192
  639. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  640. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  641. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  642. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  643. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  644. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  645. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  646. package/packages/@monomind/guidance/dist/authority.js +0 -558
  647. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  648. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  649. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  650. package/packages/@monomind/guidance/dist/coherence.js +0 -372
  651. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  652. package/packages/@monomind/guidance/dist/compiler.js +0 -419
  653. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  654. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  655. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  656. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  657. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  658. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  659. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  660. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  661. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  662. package/packages/@monomind/guidance/dist/gates.js +0 -302
  663. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  664. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  665. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  666. package/packages/@monomind/guidance/dist/generators.js +0 -682
  667. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  668. package/packages/@monomind/guidance/dist/headless.js +0 -342
  669. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  670. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  671. package/packages/@monomind/guidance/dist/index.d.ts +0 -205
  672. package/packages/@monomind/guidance/dist/index.js +0 -321
  673. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  674. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  675. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  676. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  677. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  678. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  679. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  680. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  681. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  682. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  683. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  684. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  685. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  686. package/packages/@monomind/guidance/dist/proof.js +0 -238
  687. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  688. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  689. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  690. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  691. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -426
  692. package/packages/@monomind/guidance/dist/temporal.js +0 -658
  693. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  694. package/packages/@monomind/guidance/dist/trust.js +0 -473
  695. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  696. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  697. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  698. package/packages/@monomind/guidance/dist/types.js +0 -10
  699. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  700. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  701. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  702. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
  703. package/packages/@monomind/guidance/package.json +0 -198
  704. package/packages/@monomind/shared/README.md +0 -322
  705. package/packages/@monomind/shared/dist/agent-contract.d.ts +0 -28
  706. package/packages/@monomind/shared/dist/agent-contract.js +0 -57
  707. package/packages/@monomind/shared/dist/agent-error-result.d.ts +0 -17
  708. package/packages/@monomind/shared/dist/agent-error-result.js +0 -23
  709. package/packages/@monomind/shared/dist/core/config/defaults.d.ts +0 -41
  710. package/packages/@monomind/shared/dist/core/config/defaults.js +0 -186
  711. package/packages/@monomind/shared/dist/core/config/index.d.ts +0 -8
  712. package/packages/@monomind/shared/dist/core/config/index.js +0 -12
  713. package/packages/@monomind/shared/dist/core/config/loader.d.ts +0 -45
  714. package/packages/@monomind/shared/dist/core/config/loader.js +0 -238
  715. package/packages/@monomind/shared/dist/core/config/schema.d.ts +0 -324
  716. package/packages/@monomind/shared/dist/core/config/schema.js +0 -160
  717. package/packages/@monomind/shared/dist/core/config/validator.d.ts +0 -92
  718. package/packages/@monomind/shared/dist/core/config/validator.js +0 -147
  719. package/packages/@monomind/shared/dist/core/event-bus.d.ts +0 -31
  720. package/packages/@monomind/shared/dist/core/event-bus.js +0 -197
  721. package/packages/@monomind/shared/dist/core/index.d.ts +0 -15
  722. package/packages/@monomind/shared/dist/core/index.js +0 -19
  723. package/packages/@monomind/shared/dist/core/interfaces/agent.interface.d.ts +0 -200
  724. package/packages/@monomind/shared/dist/core/interfaces/agent.interface.js +0 -6
  725. package/packages/@monomind/shared/dist/core/interfaces/coordinator.interface.d.ts +0 -310
  726. package/packages/@monomind/shared/dist/core/interfaces/coordinator.interface.js +0 -7
  727. package/packages/@monomind/shared/dist/core/interfaces/event.interface.d.ts +0 -224
  728. package/packages/@monomind/shared/dist/core/interfaces/event.interface.js +0 -46
  729. package/packages/@monomind/shared/dist/core/interfaces/index.d.ts +0 -10
  730. package/packages/@monomind/shared/dist/core/interfaces/index.js +0 -15
  731. package/packages/@monomind/shared/dist/core/interfaces/memory.interface.d.ts +0 -298
  732. package/packages/@monomind/shared/dist/core/interfaces/memory.interface.js +0 -7
  733. package/packages/@monomind/shared/dist/core/interfaces/task.interface.d.ts +0 -185
  734. package/packages/@monomind/shared/dist/core/interfaces/task.interface.js +0 -6
  735. package/packages/@monomind/shared/dist/core/orchestrator/event-coordinator.d.ts +0 -35
  736. package/packages/@monomind/shared/dist/core/orchestrator/event-coordinator.js +0 -101
  737. package/packages/@monomind/shared/dist/core/orchestrator/health-monitor.d.ts +0 -60
  738. package/packages/@monomind/shared/dist/core/orchestrator/health-monitor.js +0 -166
  739. package/packages/@monomind/shared/dist/core/orchestrator/index.d.ts +0 -46
  740. package/packages/@monomind/shared/dist/core/orchestrator/index.js +0 -64
  741. package/packages/@monomind/shared/dist/core/orchestrator/lifecycle-manager.d.ts +0 -56
  742. package/packages/@monomind/shared/dist/core/orchestrator/lifecycle-manager.js +0 -195
  743. package/packages/@monomind/shared/dist/core/orchestrator/session-manager.d.ts +0 -83
  744. package/packages/@monomind/shared/dist/core/orchestrator/session-manager.js +0 -193
  745. package/packages/@monomind/shared/dist/core/orchestrator/task-manager.d.ts +0 -49
  746. package/packages/@monomind/shared/dist/core/orchestrator/task-manager.js +0 -253
  747. package/packages/@monomind/shared/dist/events/domain-events.d.ts +0 -282
  748. package/packages/@monomind/shared/dist/events/domain-events.js +0 -165
  749. package/packages/@monomind/shared/dist/events/event-store.d.ts +0 -126
  750. package/packages/@monomind/shared/dist/events/event-store.js +0 -416
  751. package/packages/@monomind/shared/dist/events/event-store.test.d.ts +0 -8
  752. package/packages/@monomind/shared/dist/events/event-store.test.js +0 -293
  753. package/packages/@monomind/shared/dist/events/example-usage.d.ts +0 -10
  754. package/packages/@monomind/shared/dist/events/example-usage.js +0 -193
  755. package/packages/@monomind/shared/dist/events/index.d.ts +0 -21
  756. package/packages/@monomind/shared/dist/events/index.js +0 -22
  757. package/packages/@monomind/shared/dist/events/projections.d.ts +0 -177
  758. package/packages/@monomind/shared/dist/events/projections.js +0 -421
  759. package/packages/@monomind/shared/dist/events/rvf-event-log.d.ts +0 -82
  760. package/packages/@monomind/shared/dist/events/rvf-event-log.js +0 -340
  761. package/packages/@monomind/shared/dist/events/state-reconstructor.d.ts +0 -101
  762. package/packages/@monomind/shared/dist/events/state-reconstructor.js +0 -263
  763. package/packages/@monomind/shared/dist/events.d.ts +0 -80
  764. package/packages/@monomind/shared/dist/events.js +0 -249
  765. package/packages/@monomind/shared/dist/hooks/example-usage.d.ts +0 -42
  766. package/packages/@monomind/shared/dist/hooks/example-usage.js +0 -351
  767. package/packages/@monomind/shared/dist/hooks/executor.d.ts +0 -100
  768. package/packages/@monomind/shared/dist/hooks/executor.js +0 -264
  769. package/packages/@monomind/shared/dist/hooks/hooks.test.d.ts +0 -9
  770. package/packages/@monomind/shared/dist/hooks/hooks.test.js +0 -322
  771. package/packages/@monomind/shared/dist/hooks/index.d.ts +0 -52
  772. package/packages/@monomind/shared/dist/hooks/index.js +0 -51
  773. package/packages/@monomind/shared/dist/hooks/registry.d.ts +0 -133
  774. package/packages/@monomind/shared/dist/hooks/registry.js +0 -277
  775. package/packages/@monomind/shared/dist/hooks/safety/bash-safety.d.ts +0 -105
  776. package/packages/@monomind/shared/dist/hooks/safety/bash-safety.js +0 -481
  777. package/packages/@monomind/shared/dist/hooks/safety/file-organization.d.ts +0 -144
  778. package/packages/@monomind/shared/dist/hooks/safety/file-organization.js +0 -328
  779. package/packages/@monomind/shared/dist/hooks/safety/git-commit.d.ts +0 -158
  780. package/packages/@monomind/shared/dist/hooks/safety/git-commit.js +0 -450
  781. package/packages/@monomind/shared/dist/hooks/safety/index.d.ts +0 -17
  782. package/packages/@monomind/shared/dist/hooks/safety/index.js +0 -17
  783. package/packages/@monomind/shared/dist/hooks/session-hooks.d.ts +0 -234
  784. package/packages/@monomind/shared/dist/hooks/session-hooks.js +0 -334
  785. package/packages/@monomind/shared/dist/hooks/task-hooks.d.ts +0 -163
  786. package/packages/@monomind/shared/dist/hooks/task-hooks.js +0 -326
  787. package/packages/@monomind/shared/dist/hooks/types.d.ts +0 -267
  788. package/packages/@monomind/shared/dist/hooks/types.js +0 -62
  789. package/packages/@monomind/shared/dist/hooks/verify-exports.test.d.ts +0 -9
  790. package/packages/@monomind/shared/dist/hooks/verify-exports.test.js +0 -93
  791. package/packages/@monomind/shared/dist/index.d.ts +0 -46
  792. package/packages/@monomind/shared/dist/index.js +0 -77
  793. package/packages/@monomind/shared/dist/mcp/connection-pool.d.ts +0 -98
  794. package/packages/@monomind/shared/dist/mcp/connection-pool.js +0 -364
  795. package/packages/@monomind/shared/dist/mcp/index.d.ts +0 -69
  796. package/packages/@monomind/shared/dist/mcp/index.js +0 -84
  797. package/packages/@monomind/shared/dist/mcp/server.d.ts +0 -166
  798. package/packages/@monomind/shared/dist/mcp/server.js +0 -593
  799. package/packages/@monomind/shared/dist/mcp/session-manager.d.ts +0 -136
  800. package/packages/@monomind/shared/dist/mcp/session-manager.js +0 -335
  801. package/packages/@monomind/shared/dist/mcp/tool-registry.d.ts +0 -178
  802. package/packages/@monomind/shared/dist/mcp/tool-registry.js +0 -439
  803. package/packages/@monomind/shared/dist/mcp/transport/http.d.ts +0 -104
  804. package/packages/@monomind/shared/dist/mcp/transport/http.js +0 -476
  805. package/packages/@monomind/shared/dist/mcp/transport/index.d.ts +0 -102
  806. package/packages/@monomind/shared/dist/mcp/transport/index.js +0 -238
  807. package/packages/@monomind/shared/dist/mcp/transport/stdio.d.ts +0 -104
  808. package/packages/@monomind/shared/dist/mcp/transport/stdio.js +0 -263
  809. package/packages/@monomind/shared/dist/mcp/transport/websocket.d.ts +0 -133
  810. package/packages/@monomind/shared/dist/mcp/transport/websocket.js +0 -396
  811. package/packages/@monomind/shared/dist/mcp/types.d.ts +0 -438
  812. package/packages/@monomind/shared/dist/mcp/types.js +0 -54
  813. package/packages/@monomind/shared/dist/plugin-interface.d.ts +0 -544
  814. package/packages/@monomind/shared/dist/plugin-interface.js +0 -23
  815. package/packages/@monomind/shared/dist/plugin-loader.d.ts +0 -139
  816. package/packages/@monomind/shared/dist/plugin-loader.js +0 -434
  817. package/packages/@monomind/shared/dist/plugin-registry.d.ts +0 -183
  818. package/packages/@monomind/shared/dist/plugin-registry.js +0 -457
  819. package/packages/@monomind/shared/dist/plugins/index.d.ts +0 -10
  820. package/packages/@monomind/shared/dist/plugins/index.js +0 -10
  821. package/packages/@monomind/shared/dist/plugins/official/hive-mind-plugin.d.ts +0 -106
  822. package/packages/@monomind/shared/dist/plugins/official/hive-mind-plugin.js +0 -241
  823. package/packages/@monomind/shared/dist/plugins/official/index.d.ts +0 -10
  824. package/packages/@monomind/shared/dist/plugins/official/index.js +0 -10
  825. package/packages/@monomind/shared/dist/plugins/official/maestro-plugin.d.ts +0 -121
  826. package/packages/@monomind/shared/dist/plugins/official/maestro-plugin.js +0 -355
  827. package/packages/@monomind/shared/dist/plugins/types.d.ts +0 -93
  828. package/packages/@monomind/shared/dist/plugins/types.js +0 -9
  829. package/packages/@monomind/shared/dist/reducers.d.ts +0 -33
  830. package/packages/@monomind/shared/dist/reducers.js +0 -89
  831. package/packages/@monomind/shared/dist/resilience/bulkhead.d.ts +0 -105
  832. package/packages/@monomind/shared/dist/resilience/bulkhead.js +0 -206
  833. package/packages/@monomind/shared/dist/resilience/circuit-breaker.d.ts +0 -132
  834. package/packages/@monomind/shared/dist/resilience/circuit-breaker.js +0 -233
  835. package/packages/@monomind/shared/dist/resilience/index.d.ts +0 -19
  836. package/packages/@monomind/shared/dist/resilience/index.js +0 -19
  837. package/packages/@monomind/shared/dist/resilience/rate-limiter.d.ts +0 -168
  838. package/packages/@monomind/shared/dist/resilience/rate-limiter.js +0 -314
  839. package/packages/@monomind/shared/dist/resilience/retry.d.ts +0 -91
  840. package/packages/@monomind/shared/dist/resilience/retry.js +0 -159
  841. package/packages/@monomind/shared/dist/retry-policy.d.ts +0 -14
  842. package/packages/@monomind/shared/dist/retry-policy.js +0 -23
  843. package/packages/@monomind/shared/dist/retry-runner.d.ts +0 -21
  844. package/packages/@monomind/shared/dist/retry-runner.js +0 -57
  845. package/packages/@monomind/shared/dist/schema-validator.d.ts +0 -46
  846. package/packages/@monomind/shared/dist/schema-validator.js +0 -133
  847. package/packages/@monomind/shared/dist/scratchpad.d.ts +0 -23
  848. package/packages/@monomind/shared/dist/scratchpad.js +0 -32
  849. package/packages/@monomind/shared/dist/security/index.d.ts +0 -10
  850. package/packages/@monomind/shared/dist/security/index.js +0 -12
  851. package/packages/@monomind/shared/dist/security/input-validation.d.ts +0 -73
  852. package/packages/@monomind/shared/dist/security/input-validation.js +0 -201
  853. package/packages/@monomind/shared/dist/security/secure-random.d.ts +0 -92
  854. package/packages/@monomind/shared/dist/security/secure-random.js +0 -142
  855. package/packages/@monomind/shared/dist/services/index.d.ts +0 -7
  856. package/packages/@monomind/shared/dist/services/index.js +0 -7
  857. package/packages/@monomind/shared/dist/services/progress.service.d.ts +0 -124
  858. package/packages/@monomind/shared/dist/services/progress.service.js +0 -402
  859. package/packages/@monomind/shared/dist/state-manager.d.ts +0 -34
  860. package/packages/@monomind/shared/dist/state-manager.js +0 -73
  861. package/packages/@monomind/shared/dist/state-validator.d.ts +0 -20
  862. package/packages/@monomind/shared/dist/state-validator.js +0 -49
  863. package/packages/@monomind/shared/dist/swarm-state.d.ts +0 -52
  864. package/packages/@monomind/shared/dist/swarm-state.js +0 -18
  865. package/packages/@monomind/shared/dist/testing/fixture-builder.d.ts +0 -14
  866. package/packages/@monomind/shared/dist/testing/fixture-builder.js +0 -32
  867. package/packages/@monomind/shared/dist/testing/index.d.ts +0 -2
  868. package/packages/@monomind/shared/dist/testing/index.js +0 -2
  869. package/packages/@monomind/shared/dist/testing/test-model.d.ts +0 -29
  870. package/packages/@monomind/shared/dist/testing/test-model.js +0 -53
  871. package/packages/@monomind/shared/dist/types/agent-registry.d.ts +0 -62
  872. package/packages/@monomind/shared/dist/types/agent-registry.js +0 -8
  873. package/packages/@monomind/shared/dist/types/agent-version.d.ts +0 -49
  874. package/packages/@monomind/shared/dist/types/agent-version.js +0 -7
  875. package/packages/@monomind/shared/dist/types/agent.types.d.ts +0 -137
  876. package/packages/@monomind/shared/dist/types/agent.types.js +0 -6
  877. package/packages/@monomind/shared/dist/types/benchmark.d.ts +0 -39
  878. package/packages/@monomind/shared/dist/types/benchmark.js +0 -6
  879. package/packages/@monomind/shared/dist/types/communication-flow.d.ts +0 -25
  880. package/packages/@monomind/shared/dist/types/communication-flow.js +0 -7
  881. package/packages/@monomind/shared/dist/types/consensus-audit.d.ts +0 -40
  882. package/packages/@monomind/shared/dist/types/consensus-audit.js +0 -7
  883. package/packages/@monomind/shared/dist/types/dlq.d.ts +0 -40
  884. package/packages/@monomind/shared/dist/types/dlq.js +0 -7
  885. package/packages/@monomind/shared/dist/types/eval.d.ts +0 -59
  886. package/packages/@monomind/shared/dist/types/eval.js +0 -6
  887. package/packages/@monomind/shared/dist/types/index.d.ts +0 -19
  888. package/packages/@monomind/shared/dist/types/index.js +0 -33
  889. package/packages/@monomind/shared/dist/types/mcp.types.d.ts +0 -266
  890. package/packages/@monomind/shared/dist/types/mcp.types.js +0 -7
  891. package/packages/@monomind/shared/dist/types/memory.types.d.ts +0 -236
  892. package/packages/@monomind/shared/dist/types/memory.types.js +0 -7
  893. package/packages/@monomind/shared/dist/types/retry.d.ts +0 -72
  894. package/packages/@monomind/shared/dist/types/retry.js +0 -40
  895. package/packages/@monomind/shared/dist/types/specialization.d.ts +0 -27
  896. package/packages/@monomind/shared/dist/types/specialization.js +0 -8
  897. package/packages/@monomind/shared/dist/types/swarm.types.d.ts +0 -186
  898. package/packages/@monomind/shared/dist/types/swarm.types.js +0 -65
  899. package/packages/@monomind/shared/dist/types/task.types.d.ts +0 -178
  900. package/packages/@monomind/shared/dist/types/task.types.js +0 -32
  901. package/packages/@monomind/shared/dist/types/termination.d.ts +0 -29
  902. package/packages/@monomind/shared/dist/types/termination.js +0 -14
  903. package/packages/@monomind/shared/dist/types/tool-version.d.ts +0 -41
  904. package/packages/@monomind/shared/dist/types/tool-version.js +0 -8
  905. package/packages/@monomind/shared/dist/types/trigger.d.ts +0 -40
  906. package/packages/@monomind/shared/dist/types/trigger.js +0 -8
  907. package/packages/@monomind/shared/dist/types.d.ts +0 -197
  908. package/packages/@monomind/shared/dist/types.js +0 -21
  909. package/packages/@monomind/shared/dist/utils/secure-logger.d.ts +0 -69
  910. package/packages/@monomind/shared/dist/utils/secure-logger.js +0 -208
  911. package/packages/@monomind/shared/package.json +0 -42
  912. package/packages/README.md +0 -513
@@ -1,1331 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Monomind V1 Statusline Generator (Optimized)
4
- * Displays real-time v1 implementation progress and system status
5
- *
6
- * Usage: node statusline.cjs [--json] [--compact]
7
- *
8
- * Performance notes:
9
- * - Single git execSync call (combines branch + status + upstream)
10
- * - No recursive file reading (only stat/readdir, never read test contents)
11
- * - No ps aux calls (uses process.memoryUsage() + file-based metrics)
12
- * - Strict 2s timeout on all execSync calls
13
- * - Shared settings cache across functions
14
- */
15
-
16
- /* eslint-disable @typescript-eslint/no-var-requires */
17
- const fs = require('fs');
18
- const path = require('path');
19
- const { execSync } = require('child_process');
20
- const os = require('os');
21
-
22
- // Configuration
23
- const CONFIG = {
24
- maxAgents: 15,
25
- };
26
-
27
- const CWD = process.env.CLAUDE_PROJECT_DIR || process.cwd();
28
-
29
- // Read monomind version — check global install first, then CWD package.json
30
- function getVersion() {
31
- // 1. Walk up from script location to find monomind package.json
32
- const scriptDir = path.dirname(__filename);
33
- const walkCandidates = [
34
- path.join(scriptDir, '..', '..', 'package.json'),
35
- path.join(scriptDir, '..', '..', '..', 'package.json'),
36
- path.join(scriptDir, '..', '..', '..', '..', 'package.json'),
37
- ];
38
- for (const p of walkCandidates) {
39
- try {
40
- const pkg = JSON.parse(fs.readFileSync(p, 'utf-8'));
41
- if (pkg.version && (pkg.name === 'monomind' || pkg.name === '@monomind/cli' || (pkg.name || '').startsWith('@monomind'))) {
42
- return `v${pkg.version}`;
43
- }
44
- } catch { /* ignore */ }
45
- }
46
- // 2. Fallback: npm global prefix
47
- try {
48
- const prefix = execSync('npm config get prefix', { encoding: 'utf-8', timeout: 2000 }).trim();
49
- const pkg = JSON.parse(fs.readFileSync(path.join(prefix, 'lib', 'node_modules', 'monomind', 'package.json'), 'utf-8'));
50
- if (pkg.version) return `v${pkg.version}`;
51
- } catch { /* ignore */ }
52
- return 'v1.0.6';
53
- }
54
- const VERSION = getVersion();
55
-
56
- // ANSI colors
57
- const c = {
58
- reset: '\x1b[0m',
59
- bold: '\x1b[1m',
60
- dim: '\x1b[2m',
61
- red: '\x1b[0;31m',
62
- green: '\x1b[0;32m',
63
- yellow: '\x1b[0;33m',
64
- blue: '\x1b[0;34m',
65
- purple: '\x1b[0;35m',
66
- cyan: '\x1b[0;36m',
67
- brightRed: '\x1b[1;31m',
68
- brightGreen: '\x1b[1;32m',
69
- brightYellow: '\x1b[1;33m',
70
- brightBlue: '\x1b[1;34m',
71
- brightPurple: '\x1b[1;35m',
72
- brightCyan: '\x1b[1;36m',
73
- brightWhite: '\x1b[1;37m',
74
- };
75
-
76
- // Safe execSync with strict timeout (returns empty string on failure)
77
- function safeExec(cmd, timeoutMs = 2000) {
78
- try {
79
- return execSync(cmd, {
80
- encoding: 'utf-8',
81
- timeout: timeoutMs,
82
- stdio: ['pipe', 'pipe', 'pipe'],
83
- }).trim();
84
- } catch {
85
- return '';
86
- }
87
- }
88
-
89
- // Safe JSON file reader (returns null on failure)
90
- function readJSON(filePath) {
91
- try {
92
- if (fs.existsSync(filePath)) {
93
- return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
94
- }
95
- } catch { /* ignore */ }
96
- return null;
97
- }
98
-
99
- // Safe file stat (returns null on failure)
100
- function safeStat(filePath) {
101
- try {
102
- return fs.statSync(filePath);
103
- } catch { /* ignore */ }
104
- return null;
105
- }
106
-
107
- // Project identifier — github owner/repo from git remote, else folder name
108
- function getProjectName() {
109
- try {
110
- const remote = safeExec('git remote get-url origin 2>/dev/null', 2000).trim();
111
- if (remote) {
112
- const m = remote.match(/[/:]([\w.-]+)\/([\w.-]+?)(?:\.git)?$/);
113
- if (m) return `${m[1]}/${m[2]}`;
114
- }
115
- } catch { /* ignore */ }
116
- return path.basename(CWD);
117
- }
118
-
119
- // Shared settings cache — read once, used by multiple functions
120
- let _settingsCache = undefined;
121
- function getSettings() {
122
- if (_settingsCache !== undefined) return _settingsCache;
123
- _settingsCache = readJSON(path.join(CWD, '.claude', 'settings.json'))
124
- || readJSON(path.join(CWD, '.claude', 'settings.local.json'))
125
- || null;
126
- return _settingsCache;
127
- }
128
-
129
- // ─── Data Collection (all pure-Node.js or single-exec) ──────────
130
-
131
- // Get all git info in ONE shell call
132
- function getGitInfo() {
133
- const result = {
134
- name: 'user', gitBranch: '', modified: 0, untracked: 0,
135
- staged: 0, ahead: 0, behind: 0,
136
- };
137
-
138
- // Single shell: get user.name, branch, porcelain status, and upstream diff
139
- const script = [
140
- 'git config user.name 2>/dev/null || echo user',
141
- 'echo "---SEP---"',
142
- 'git branch --show-current 2>/dev/null',
143
- 'echo "---SEP---"',
144
- 'git status --porcelain 2>/dev/null',
145
- 'echo "---SEP---"',
146
- 'git rev-list --left-right --count HEAD...@{upstream} 2>/dev/null || echo "0 0"',
147
- ].join('; ');
148
-
149
- const raw = safeExec(`sh -c '${script}'`, 3000);
150
- if (!raw) return result;
151
-
152
- const parts = raw.split('---SEP---').map(s => s.trim());
153
- if (parts.length >= 4) {
154
- result.name = parts[0] || 'user';
155
- result.gitBranch = parts[1] || '';
156
-
157
- // Parse porcelain status
158
- if (parts[2]) {
159
- for (const line of parts[2].split('\n')) {
160
- if (!line || line.length < 2) continue;
161
- const x = line[0], y = line[1];
162
- if (x === '?' && y === '?') { result.untracked++; continue; }
163
- if (x !== ' ' && x !== '?') result.staged++;
164
- if (y !== ' ' && y !== '?') result.modified++;
165
- }
166
- }
167
-
168
- // Parse ahead/behind
169
- const ab = (parts[3] || '0 0').split(/\s+/);
170
- result.ahead = parseInt(ab[0]) || 0;
171
- result.behind = parseInt(ab[1]) || 0;
172
- }
173
-
174
- return result;
175
- }
176
-
177
- // Normalise a model ID string to a short display name
178
- function modelLabel(id) {
179
- if (id.includes('opus')) return 'Opus 4.6';
180
- if (id.includes('sonnet')) return 'Sonnet 4.6';
181
- if (id.includes('haiku')) return 'Haiku 4.5';
182
- return id.split('-').slice(1, 3).join(' ');
183
- }
184
-
185
- // Read the last assistant model from the most recent session JSONL.
186
- // Claude Code writes each assistant turn to ~/.claude/projects/<escaped-cwd>/<uuid>.jsonl
187
- // with a "message.model" field — this is the most accurate live source and
188
- // correctly reflects /model session overrides.
189
- function getModelFromSessionJSONL() {
190
- try {
191
- // Escape CWD the same way Claude Code does: replace '/' with '-'
192
- const escaped = CWD.replace(/\//g, '-');
193
- const projectsDir = path.join(os.homedir(), '.claude', 'projects', escaped);
194
- if (!fs.existsSync(projectsDir)) return null;
195
-
196
- // Most recently modified JSONL = current (or latest) session
197
- const files = fs.readdirSync(projectsDir)
198
- .filter(f => f.endsWith('.jsonl'))
199
- .map(f => ({ f, mt: (() => { try { return fs.statSync(path.join(projectsDir, f)).mtimeMs; } catch { return 0; } })() }))
200
- .sort((a, b) => b.mt - a.mt);
201
- if (files.length === 0) return null;
202
-
203
- const sessionFile = path.join(projectsDir, files[0].f);
204
- const raw = fs.readFileSync(sessionFile, 'utf-8');
205
- const lines = raw.split('\n').filter(Boolean);
206
-
207
- // Scan from the end to find the most recent assistant model
208
- for (let i = lines.length - 1; i >= 0; i--) {
209
- try {
210
- const entry = JSON.parse(lines[i]);
211
- const model = entry?.message?.model || entry?.model;
212
- if (model && typeof model === 'string' && model.startsWith('claude')) {
213
- return model;
214
- }
215
- } catch { /* skip malformed line */ }
216
- }
217
- } catch { /* ignore */ }
218
- return null;
219
- }
220
-
221
- // Detect model name from Claude config (pure file reads, no exec)
222
- function getModelName() {
223
- // PRIMARY: scan the live session JSONL — reflects /model overrides in real time
224
- const sessionModel = getModelFromSessionJSONL();
225
- if (sessionModel) return modelLabel(sessionModel);
226
-
227
- // SECONDARY: ~/.claude.json lastModelUsage for this exact project path
228
- // (longest-prefix match to avoid short paths like /Users matching first)
229
- try {
230
- const claudeConfig = readJSON(path.join(os.homedir(), '.claude.json'));
231
- if (claudeConfig?.projects) {
232
- let bestMatch = null;
233
- let bestLen = -1;
234
- for (const [projectPath, projectConfig] of Object.entries(claudeConfig.projects)) {
235
- if (CWD === projectPath || CWD.startsWith(projectPath + '/')) {
236
- if (projectPath.length > bestLen) {
237
- bestLen = projectPath.length;
238
- bestMatch = projectConfig;
239
- }
240
- }
241
- }
242
- if (bestMatch?.lastModelUsage) {
243
- const usage = bestMatch.lastModelUsage;
244
- const ids = Object.keys(usage);
245
- if (ids.length > 0) {
246
- let bestId = ids[ids.length - 1];
247
- let bestTokens = -1;
248
- for (const id of ids) {
249
- const e = usage[id] || {};
250
- const tokens = (e.inputTokens || 0) + (e.outputTokens || 0);
251
- if (tokens > bestTokens) { bestTokens = tokens; bestId = id; }
252
- }
253
- return modelLabel(bestId);
254
- }
255
- }
256
- }
257
- } catch { /* ignore */ }
258
-
259
- // TERTIARY: settings.json model field (configured default, not live session).
260
- const settings = getSettings();
261
- if (settings?.model) return modelLabel(settings.model);
262
-
263
- // QUATERNARY: read ANTHROPIC_MODEL or CLAUDE_MODEL env var (set by the CLI at launch)
264
- const envModel = process.env.ANTHROPIC_MODEL || process.env.CLAUDE_MODEL || process.env.MODEL;
265
- if (envModel && envModel.startsWith('claude')) return modelLabel(envModel);
266
-
267
- // QUINARY: current model from the model ID in the env injected by Claude Code itself
268
- const claudeModel = process.env.CLAUDE_CODE_MODEL;
269
- if (claudeModel) return modelLabel(claudeModel);
270
-
271
- return 'Sonnet 4.6'; // known current default rather than the generic "Claude Code"
272
- }
273
-
274
- // Get learning stats from memory database (pure stat calls)
275
- function getLearningStats() {
276
- const memoryPaths = [
277
- path.join(CWD, '.swarm', 'memory.db'),
278
- path.join(CWD, '.monomind', 'memory.db'),
279
- path.join(CWD, '.claude', 'memory.db'),
280
- path.join(CWD, 'data', 'memory.db'),
281
- path.join(CWD, '.agentdb', 'memory.db'),
282
- ];
283
-
284
- for (const dbPath of memoryPaths) {
285
- const stat = safeStat(dbPath);
286
- if (stat) {
287
- const sizeKB = stat.size / 1024;
288
- const patterns = Math.floor(sizeKB / 2);
289
- return {
290
- patterns,
291
- sessions: Math.max(1, Math.floor(patterns / 10)),
292
- };
293
- }
294
- }
295
-
296
- // Check session files count
297
- let sessions = 0;
298
- try {
299
- const sessDir = path.join(CWD, '.claude', 'sessions');
300
- if (fs.existsSync(sessDir)) {
301
- sessions = fs.readdirSync(sessDir).filter(f => f.endsWith('.json')).length;
302
- }
303
- } catch { /* ignore */ }
304
-
305
- return { patterns: 0, sessions };
306
- }
307
-
308
- // progress from metrics files (pure file reads)
309
- function getv1Progress() {
310
- const learning = getLearningStats();
311
- const totalDomains = 5;
312
-
313
- const dddData = readJSON(path.join(CWD, '.monomind', 'metrics', 'ddd-progress.json'));
314
- let dddProgress = dddData?.progress || 0;
315
- let domainsCompleted = Math.min(5, Math.floor(dddProgress / 20));
316
-
317
- if (dddProgress === 0 && learning.patterns > 0) {
318
- if (learning.patterns >= 500) domainsCompleted = 5;
319
- else if (learning.patterns >= 200) domainsCompleted = 4;
320
- else if (learning.patterns >= 100) domainsCompleted = 3;
321
- else if (learning.patterns >= 50) domainsCompleted = 2;
322
- else if (learning.patterns >= 10) domainsCompleted = 1;
323
- dddProgress = Math.floor((domainsCompleted / totalDomains) * 100);
324
- }
325
-
326
- return {
327
- domainsCompleted, totalDomains, dddProgress,
328
- patternsLearned: learning.patterns,
329
- sessionsCompleted: learning.sessions,
330
- };
331
- }
332
-
333
- // Security status (pure file reads)
334
- function getSecurityStatus() {
335
- const auditData = readJSON(path.join(CWD, '.monomind', 'security', 'audit-status.json'));
336
- if (auditData) {
337
- const auditDate = auditData.lastAudit || auditData.lastScan;
338
- if (!auditDate) {
339
- // No audit has ever run — show as pending, not stale
340
- return { status: 'PENDING', cvesFixed: 0, totalCves: 0 };
341
- }
342
- const auditAge = Date.now() - new Date(auditDate).getTime();
343
- const isStale = auditAge > 7 * 24 * 60 * 60 * 1000;
344
- return {
345
- status: isStale ? 'STALE' : (auditData.status || 'PENDING'),
346
- cvesFixed: auditData.cvesFixed || 0,
347
- totalCves: auditData.totalCves || 0,
348
- };
349
- }
350
-
351
- let scanCount = 0;
352
- try {
353
- const scanDir = path.join(CWD, '.claude', 'security-scans');
354
- if (fs.existsSync(scanDir)) {
355
- scanCount = fs.readdirSync(scanDir).filter(f => f.endsWith('.json')).length;
356
- }
357
- } catch { /* ignore */ }
358
-
359
- return {
360
- status: scanCount > 0 ? 'SCANNED' : 'NONE',
361
- cvesFixed: 0,
362
- totalCves: 0,
363
- };
364
- }
365
-
366
- // Swarm status (pure file reads, NO ps aux)
367
- function getSwarmStatus() {
368
- const staleThresholdMs = 5 * 60 * 1000;
369
- const agentRegTtlMs = 30 * 60 * 1000; // registration files expire after 30 min
370
- const now = Date.now();
371
-
372
- // PRIMARY: count live registration files written by SubagentStart hook
373
- // Each file = one active sub-agent. Stale files (>30 min) are ignored.
374
- const regDir = path.join(CWD, '.monomind', 'agents', 'registrations');
375
- if (fs.existsSync(regDir)) {
376
- try {
377
- const files = fs.readdirSync(regDir).filter(f => f.endsWith('.json'));
378
- const liveCount = files.filter(f => {
379
- try {
380
- return (now - fs.statSync(path.join(regDir, f)).mtimeMs) < agentRegTtlMs;
381
- } catch { return false; }
382
- }).length;
383
- if (liveCount > 0) {
384
- return {
385
- activeAgents: liveCount,
386
- maxAgents: CONFIG.maxAgents,
387
- coordinationActive: true,
388
- lastActive: liveCount,
389
- };
390
- }
391
- } catch { /* fall through */ }
392
- }
393
-
394
- // SECONDARY: swarm-state.json written by MCP swarm_init — trust if fresh
395
- const swarmStatePath = path.join(CWD, '.monomind', 'swarm', 'swarm-state.json');
396
- const swarmState = readJSON(swarmStatePath);
397
- if (swarmState) {
398
- const updatedAt = swarmState.updatedAt || swarmState.startedAt;
399
- const age = updatedAt ? now - new Date(updatedAt).getTime() : Infinity;
400
- if (age < staleThresholdMs) {
401
- const sc = swarmState.agents?.length || swarmState.agentCount || 0;
402
- return {
403
- activeAgents: sc,
404
- maxAgents: swarmState.maxAgents || CONFIG.maxAgents,
405
- coordinationActive: true,
406
- lastActive: sc,
407
- };
408
- }
409
- }
410
-
411
- // TERTIARY: swarm-activity.json refreshed by post-task hook
412
- const activityData = readJSON(path.join(CWD, '.monomind', 'metrics', 'swarm-activity.json'));
413
- if (activityData?.swarm) {
414
- const updatedAt = activityData.timestamp || activityData.swarm.timestamp;
415
- const age = updatedAt ? now - new Date(updatedAt).getTime() : Infinity;
416
- if (age < staleThresholdMs) {
417
- return {
418
- activeAgents: activityData.swarm.agent_count || 0,
419
- maxAgents: CONFIG.maxAgents,
420
- coordinationActive: activityData.swarm.coordination_active || activityData.swarm.active || false,
421
- lastActive: activityData.swarm.lastActive || 0,
422
- };
423
- }
424
- // Only show lastActive if data is recent enough (< 1 hour) and plausible (≤ maxAgents)
425
- const displayTtlMs = 60 * 60 * 1000;
426
- const lastActive = (age < displayTtlMs)
427
- ? Math.min(activityData.swarm.lastActive || 0, CONFIG.maxAgents)
428
- : 0;
429
- return {
430
- activeAgents: 0,
431
- maxAgents: CONFIG.maxAgents,
432
- coordinationActive: false,
433
- lastActive,
434
- };
435
- }
436
-
437
- return { activeAgents: 0, maxAgents: CONFIG.maxAgents, coordinationActive: false, lastActive: 0 };
438
- }
439
-
440
- // System metrics (uses process.memoryUsage() — no shell spawn)
441
- function getSystemMetrics() {
442
- const memoryMB = Math.floor(process.memoryUsage().heapUsed / 1024 / 1024);
443
- const learning = getLearningStats();
444
- const agentdb = getAgentDBStats();
445
-
446
- // Intelligence from learning.json
447
- const learningData = readJSON(path.join(CWD, '.monomind', 'metrics', 'learning.json'));
448
- let intelligencePct = 0;
449
- let contextPct = 0;
450
-
451
- if (learningData?.intelligence?.score !== undefined) {
452
- intelligencePct = Math.min(100, Math.floor(learningData.intelligence.score));
453
- } else {
454
- // Use actual vector/entry counts — 2000 entries = 100%
455
- const fromPatterns = learning.patterns > 0 ? Math.min(100, Math.floor(learning.patterns / 20)) : 0;
456
- const fromVectors = agentdb.vectorCount > 0 ? Math.min(100, Math.floor(agentdb.vectorCount / 20)) : 0;
457
- intelligencePct = Math.max(fromPatterns, fromVectors);
458
- }
459
-
460
- // Maturity fallback (pure fs checks, no git exec)
461
- if (intelligencePct === 0) {
462
- let score = 0;
463
- if (fs.existsSync(path.join(CWD, '.claude'))) score += 15;
464
- const srcDirs = ['src', 'lib', 'app', 'packages', 'v1'];
465
- for (const d of srcDirs) { if (fs.existsSync(path.join(CWD, d))) { score += 15; break; } }
466
- const testDirs = ['tests', 'test', '__tests__', 'spec'];
467
- for (const d of testDirs) { if (fs.existsSync(path.join(CWD, d))) { score += 10; break; } }
468
- const cfgFiles = ['package.json', 'tsconfig.json', 'pyproject.toml', 'Cargo.toml', 'go.mod'];
469
- for (const f of cfgFiles) { if (fs.existsSync(path.join(CWD, f))) { score += 5; break; } }
470
- intelligencePct = Math.min(100, score);
471
- }
472
-
473
- if (learningData?.sessions?.total !== undefined) {
474
- contextPct = Math.min(100, learningData.sessions.total * 5);
475
- } else {
476
- contextPct = Math.min(100, Math.floor(learning.sessions * 5));
477
- }
478
-
479
- // Sub-agents from file metrics (no ps aux)
480
- let subAgents = 0;
481
- const activityData = readJSON(path.join(CWD, '.monomind', 'metrics', 'swarm-activity.json'));
482
- if (activityData?.processes?.estimated_agents) {
483
- subAgents = activityData.processes.estimated_agents;
484
- }
485
-
486
- return { memoryMB, contextPct, intelligencePct, subAgents };
487
- }
488
-
489
- // ADR status (count files only — don't read contents)
490
- function getADRStatus() {
491
- // Count actual ADR files first — compliance JSON may be stale
492
- const adrPaths = [
493
- path.join(CWD, 'packages', 'implementation', 'adrs'),
494
- path.join(CWD, 'docs', 'adrs'),
495
- path.join(CWD, '.monomind', 'adrs'),
496
- ];
497
-
498
- for (const adrPath of adrPaths) {
499
- try {
500
- if (fs.existsSync(adrPath)) {
501
- const files = fs.readdirSync(adrPath).filter(f =>
502
- f.endsWith('.md') && (f.startsWith('ADR-') || f.startsWith('adr-') || /^\d{4}-/.test(f))
503
- );
504
- // Report actual count — don't guess compliance without reading files
505
- return { count: files.length, implemented: files.length, compliance: 0 };
506
- }
507
- } catch { /* ignore */ }
508
- }
509
-
510
- return { count: 0, implemented: 0, compliance: 0 };
511
- }
512
-
513
- // Hooks status (shared settings cache)
514
- function getHooksStatus() {
515
- let enabled = 0;
516
- let total = 0;
517
- const settings = getSettings();
518
-
519
- if (settings?.hooks) {
520
- for (const category of Object.keys(settings.hooks)) {
521
- const matchers = settings.hooks[category];
522
- if (!Array.isArray(matchers)) continue;
523
- for (const matcher of matchers) {
524
- const hooks = matcher?.hooks;
525
- if (Array.isArray(hooks)) {
526
- total += hooks.length;
527
- enabled += hooks.length;
528
- }
529
- }
530
- }
531
- }
532
-
533
- try {
534
- const hooksDir = path.join(CWD, '.claude', 'hooks');
535
- if (fs.existsSync(hooksDir)) {
536
- const hookFiles = fs.readdirSync(hooksDir).filter(f => f.endsWith('.js') || f.endsWith('.sh')).length;
537
- total = Math.max(total, hookFiles);
538
- enabled = Math.max(enabled, hookFiles);
539
- }
540
- } catch { /* ignore */ }
541
-
542
- return { enabled, total };
543
- }
544
-
545
- // Active agent — reads last routing result persisted by hook-handler
546
- function getActiveAgent() {
547
- const routeFile = path.join(CWD, '.monomind', 'last-route.json');
548
- try {
549
- if (!fs.existsSync(routeFile)) return null;
550
- const data = JSON.parse(fs.readFileSync(routeFile, 'utf-8'));
551
- if (!data || !data.agent) return null;
552
-
553
- // Stale after 30 minutes (session likely changed)
554
- const age = Date.now() - new Date(data.updatedAt || 0).getTime();
555
- if (age > 30 * 60 * 1000) return null;
556
-
557
- // Prefer display name if set (from load-agent), else format the slug
558
- const displayName = data.name || data.agent
559
- .replace(/-/g, ' ')
560
- .replace(/\b\w/g, c => c.toUpperCase());
561
-
562
- return {
563
- slug: data.agent,
564
- name: displayName,
565
- category: data.category || null,
566
- confidence: data.confidence || 0,
567
- activated: data.activated || false, // true = manually loaded extras agent
568
- extrasMatches: data.extrasMatches || [],
569
- };
570
- } catch { return null; }
571
- }
572
-
573
- // AgentDB stats — count real entries, not file-size heuristics
574
- function getAgentDBStats() {
575
- let vectorCount = 0;
576
- let dbSizeKB = 0;
577
- let namespaces = 0;
578
- let hasHnsw = false;
579
-
580
- // Count all memory entries across sources (sum, not max)
581
- // 0. Palace drawers
582
- const drawersPath = path.join(CWD, '.monomind', 'palace', 'drawers.jsonl');
583
- const drawersStat = safeStat(drawersPath);
584
- if (drawersStat) {
585
- dbSizeKB += drawersStat.size / 1024;
586
- try {
587
- vectorCount += fs.readFileSync(drawersPath, 'utf-8').split('\n').filter(Boolean).length;
588
- } catch { /* ignore */ }
589
- }
590
-
591
- // 1. Palace closets
592
- const closetsPath = path.join(CWD, '.monomind', 'palace', 'closets.jsonl');
593
- const closetsStat = safeStat(closetsPath);
594
- if (closetsStat) {
595
- dbSizeKB += closetsStat.size / 1024;
596
- try {
597
- vectorCount += fs.readFileSync(closetsPath, 'utf-8').split('\n').filter(Boolean).length;
598
- } catch { /* ignore */ }
599
- }
600
-
601
- // 2. Knowledge chunks
602
- const chunksPath = path.join(CWD, '.monomind', 'knowledge', 'chunks.jsonl');
603
- const chunksStat = safeStat(chunksPath);
604
- if (chunksStat) {
605
- dbSizeKB += chunksStat.size / 1024;
606
- try {
607
- vectorCount += fs.readFileSync(chunksPath, 'utf-8').split('\n').filter(Boolean).length;
608
- } catch { /* ignore */ }
609
- }
610
-
611
- // 3. Auto-memory store (intelligence layer)
612
- const storePath = path.join(CWD, '.monomind', 'data', 'auto-memory-store.json');
613
- const storeStat = safeStat(storePath);
614
- if (storeStat) {
615
- dbSizeKB += storeStat.size / 1024;
616
- try {
617
- const store = JSON.parse(fs.readFileSync(storePath, 'utf-8'));
618
- vectorCount += Array.isArray(store) ? store.length : (store?.entries?.length || 0);
619
- } catch { /* ignore */ }
620
- }
621
-
622
- // 4. Ranked context
623
- const rankedPath = path.join(CWD, '.monomind', 'data', 'ranked-context.json');
624
- try {
625
- const ranked = readJSON(rankedPath);
626
- if (ranked?.entries?.length) vectorCount += ranked.entries.length;
627
- } catch { /* ignore */ }
628
-
629
- // 5. DB file sizes
630
- const dbFiles = [
631
- path.join(CWD, 'data', 'memory.db'),
632
- path.join(CWD, '.monomind', 'memory.db'),
633
- path.join(CWD, '.swarm', 'memory.db'),
634
- ];
635
- for (const f of dbFiles) {
636
- const stat = safeStat(f);
637
- if (stat) { dbSizeKB += stat.size / 1024; namespaces++; }
638
- }
639
-
640
- // 6. HNSW index
641
- const hnswPaths = [
642
- path.join(CWD, '.swarm', 'hnsw.index'),
643
- path.join(CWD, '.monomind', 'hnsw.index'),
644
- ];
645
- for (const p of hnswPaths) {
646
- if (safeStat(p)) { hasHnsw = true; break; }
647
- }
648
- if (!hasHnsw) {
649
- const memPkgPaths = [
650
- path.join(CWD, 'packages', '@monomind', 'memory', 'dist'),
651
- path.join(CWD, 'node_modules', '@monomind', 'memory'),
652
- ];
653
- for (const p of memPkgPaths) {
654
- if (fs.existsSync(p)) { hasHnsw = true; break; }
655
- }
656
- }
657
-
658
- return { vectorCount, dbSizeKB: Math.floor(dbSizeKB), namespaces, hasHnsw };
659
- }
660
-
661
- // Graphify knowledge graph stats
662
- function getGraphifyStats() {
663
- const statsPath = path.join(CWD, '.monomind', 'graph', 'stats.json');
664
- const graphPath = path.join(CWD, '.monomind', 'graph', 'graph.json');
665
- try {
666
- const s = readJSON(statsPath);
667
- if (s && s.nodes !== undefined) return { nodes: s.nodes, edges: s.edges || 0, exists: true };
668
- } catch { /* ignore */ }
669
- try {
670
- const stat = safeStat(graphPath);
671
- if (stat && stat.size < 10 * 1024 * 1024) {
672
- const g = JSON.parse(fs.readFileSync(graphPath, 'utf-8'));
673
- const nodes = Array.isArray(g.nodes) ? g.nodes.length : 0;
674
- const edges = (Array.isArray(g.edges) ? g.edges : (Array.isArray(g.links) ? g.links : [])).length;
675
- return { nodes, edges, exists: true };
676
- }
677
- } catch { /* ignore */ }
678
- return { nodes: 0, edges: 0, exists: false };
679
- }
680
-
681
- // Memory Palace stats — drawers.jsonl + kg.json (the real persistent memory)
682
- function getMemoryPalaceStats() {
683
- const palaceDir = path.join(CWD, '.monomind', 'palace');
684
- let drawers = 0, triples = 0, palaceSizeKB = 0;
685
-
686
- try {
687
- const drawersPath = path.join(palaceDir, 'drawers.jsonl');
688
- if (fs.existsSync(drawersPath)) {
689
- const stat = safeStat(drawersPath);
690
- if (stat) palaceSizeKB += stat.size / 1024;
691
- drawers = fs.readFileSync(drawersPath, 'utf-8').split('\n').filter(Boolean).length;
692
- }
693
- } catch { /* ignore */ }
694
-
695
- try {
696
- const kgPath = path.join(palaceDir, 'kg.json');
697
- const kg = readJSON(kgPath);
698
- if (kg?.triples) {
699
- triples = kg.triples.length;
700
- const kgStat = safeStat(kgPath);
701
- if (kgStat) palaceSizeKB += kgStat.size / 1024;
702
- }
703
- } catch { /* ignore */ }
704
-
705
- return { drawers, triples, palaceSizeKB: Math.floor(palaceSizeKB) };
706
- }
707
-
708
- // Auto-memory file stats — reads ~/.claude/projects/<slug>/memory/*.md
709
- function getAutoMemoryStats() {
710
- const homeDir = os.homedir();
711
- const slug = path.resolve(CWD).replace(/\//g, '-');
712
- const memDir = path.join(homeDir, '.claude', 'projects', slug, 'memory');
713
- let files = [];
714
- try {
715
- files = fs.readdirSync(memDir).filter(f => f.endsWith('.md') && f !== 'MEMORY.md');
716
- } catch { /* dir may not exist */ }
717
-
718
- const byType = {};
719
- for (const fname of files) {
720
- let type = 'project';
721
- try {
722
- const raw = fs.readFileSync(path.join(memDir, fname), 'utf-8').replace(/\r\n/g, '\n');
723
- const m = raw.match(/^---\n[\s\S]*?type:\s*(\S+)/);
724
- if (m) type = m[1].trim();
725
- } catch { /* ignore */ }
726
- byType[type] = (byType[type] || 0) + 1;
727
- }
728
- return { count: files.length, byType };
729
- }
730
-
731
- // Token summary — reads cache written by session-restore hook.
732
- // Valid for the entire UTC day it was written; expires at midnight UTC.
733
- function getTokenStats() {
734
- const cachePath = path.join(CWD, '.monomind', 'metrics', 'token-summary.json');
735
- const data = readJSON(cachePath);
736
- if (!data) return null;
737
- // Reject only if cache is from a different UTC day (midnight boundary)
738
- const cachedDay = (data.cachedAt || '').slice(0, 10); // "2026-04-15"
739
- const todayUTC = new Date().toISOString().slice(0, 10);
740
- if (cachedDay && cachedDay !== todayUTC) return null;
741
- return {
742
- todayCost: data.todayCost || 0,
743
- todayCalls: data.todayCalls || 0,
744
- monthCost: data.monthCost || 0,
745
- monthCalls: data.monthCalls || 0,
746
- };
747
- }
748
-
749
- // Test stats (count files only — NO reading file contents)
750
- function getTestStats() {
751
- let testFiles = 0;
752
-
753
- function countTestFiles(dir, depth = 0) {
754
- if (depth > 6) return;
755
- try {
756
- if (!fs.existsSync(dir)) return;
757
- const entries = fs.readdirSync(dir, { withFileTypes: true });
758
- for (const entry of entries) {
759
- if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
760
- countTestFiles(path.join(dir, entry.name), depth + 1);
761
- } else if (entry.isFile()) {
762
- const n = entry.name;
763
- if (n.includes('.test.') || n.includes('.spec.') || n.includes('_test.') || n.includes('_spec.')) {
764
- testFiles++;
765
- }
766
- }
767
- }
768
- } catch { /* ignore */ }
769
- }
770
-
771
- // Scan all source directories
772
- for (const d of ['tests', 'test', '__tests__', 'src', 'v1']) {
773
- countTestFiles(path.join(CWD, d));
774
- }
775
-
776
- // Estimate ~4 test cases per file (avoids reading every file)
777
- return { testFiles, testCases: testFiles * 4 };
778
- }
779
-
780
- // Integration status (shared settings + file checks)
781
- function getIntegrationStatus() {
782
- const mcpServers = { total: 0, enabled: 0 };
783
- const settings = getSettings();
784
-
785
- if (settings?.mcpServers && typeof settings.mcpServers === 'object') {
786
- const servers = Object.keys(settings.mcpServers);
787
- mcpServers.total = servers.length;
788
- mcpServers.enabled = settings.enabledMcpjsonServers
789
- ? settings.enabledMcpjsonServers.filter(s => servers.includes(s)).length
790
- : servers.length;
791
- }
792
-
793
- // Fallback: .mcp.json
794
- if (mcpServers.total === 0) {
795
- const mcpConfig = readJSON(path.join(CWD, '.mcp.json'))
796
- || readJSON(path.join(os.homedir(), '.claude', 'mcp.json'));
797
- if (mcpConfig?.mcpServers) {
798
- const s = Object.keys(mcpConfig.mcpServers);
799
- mcpServers.total = s.length;
800
- mcpServers.enabled = s.length;
801
- }
802
- }
803
-
804
- const hasDatabase = ['.swarm/memory.db', '.monomind/memory.db', 'data/memory.db']
805
- .some(p => fs.existsSync(path.join(CWD, p)));
806
- const hasApi = !!(process.env.ANTHROPIC_API_KEY || process.env.OPENAI_API_KEY);
807
-
808
- return { mcpServers, hasDatabase, hasApi };
809
- }
810
-
811
- // Session stats (pure file reads)
812
- function getSessionStats() {
813
- for (const p of ['.monomind/session.json', '.claude/session.json']) {
814
- const data = readJSON(path.join(CWD, p));
815
- if (data?.startTime) {
816
- const diffMs = Date.now() - new Date(data.startTime).getTime();
817
- const mins = Math.floor(diffMs / 60000);
818
- const duration = mins < 60 ? `${mins}m` : `${Math.floor(mins / 60)}h${mins % 60}m`;
819
- return { duration };
820
- }
821
- }
822
- return { duration: '' };
823
- }
824
-
825
- // ─── Extended 256-color palette ─────────────────────────────────
826
- const x = {
827
- // Backgrounds (used sparingly for labels)
828
- bgPurple: '\x1b[48;5;55m',
829
- bgTeal: '\x1b[48;5;23m',
830
- bgReset: '\x1b[49m',
831
- // Foregrounds
832
- purple: '\x1b[38;5;141m', // soft lavender-purple (brand)
833
- violet: '\x1b[38;5;99m', // deeper purple
834
- teal: '\x1b[38;5;51m', // bright teal
835
- mint: '\x1b[38;5;120m', // soft green
836
- gold: '\x1b[38;5;220m', // warm gold
837
- orange: '\x1b[38;5;208m', // alert orange
838
- coral: '\x1b[38;5;203m', // error red-pink
839
- sky: '\x1b[38;5;117m', // soft blue
840
- rose: '\x1b[38;5;218m', // warm pink
841
- slate: '\x1b[38;5;245m', // neutral grey
842
- white: '\x1b[38;5;255m', // bright white
843
- green: '\x1b[38;5;82m', // vivid green
844
- red: '\x1b[38;5;196m', // vivid red
845
- yellow: '\x1b[38;5;226m', // vivid yellow
846
- // Shared
847
- bold: '\x1b[1m',
848
- dim: '\x1b[2m',
849
- reset: '\x1b[0m',
850
- };
851
-
852
- // ── Helpers ──────────────────────────────────────────────────────
853
-
854
- // Block progress bar: ▰▰▰▱▱ (5 blocks)
855
- function blockBar(current, total, width = 5) {
856
- const filled = Math.min(width, Math.round((current / Math.max(total, 1)) * width));
857
- return '\u25B0'.repeat(filled) + `${x.slate}\u25B1${x.reset}`.repeat(width - filled);
858
- }
859
-
860
- // Health dot: ● colored by status
861
- function dot(ok) {
862
- if (ok === 'good') return `${x.green}●${x.reset}`;
863
- if (ok === 'warn') return `${x.gold}●${x.reset}`;
864
- if (ok === 'error') return `${x.coral}●${x.reset}`;
865
- return `${x.slate}●${x.reset}`; // 'none'
866
- }
867
-
868
- // Pill badge: [ LABEL ] with background
869
- function badge(label, color) {
870
- return `${color}[${label}]${x.reset}`;
871
- }
872
-
873
- // Divider character
874
- const DIV = `${x.slate}│${x.reset}`;
875
- const SEP = `${x.slate}──────────────────────────────────────────────────────${x.reset}`;
876
-
877
- // Pct → color
878
- function pctColor(pct) {
879
- if (pct >= 75) return x.green;
880
- if (pct >= 40) return x.gold;
881
- if (pct > 0) return x.orange;
882
- return x.slate;
883
- }
884
-
885
- // Security status → label + color
886
- function secBadge(status) {
887
- if (status === 'CLEAN') return { label: '✔ CLEAN', col: x.green };
888
- if (status === 'STALE') return { label: '⟳ STALE', col: x.gold };
889
- if (status === 'IN_PROGRESS') return { label: '⟳ RUNNING', col: x.sky };
890
- if (status === 'SCANNED') return { label: '✔ SCANNED', col: x.mint };
891
- if (status === 'PENDING') return { label: '⏸ PENDING', col: x.gold };
892
- return { label: '✖ NONE', col: x.slate };
893
- }
894
-
895
- // ── Knowledge & trigger stats (Tasks 28 + 32) ────────────────────
896
- function getKnowledgeStats() {
897
- const chunksPath = path.join(CWD, '.monomind', 'knowledge', 'chunks.jsonl');
898
- const skillsPath = path.join(CWD, '.monomind', 'skills.jsonl');
899
- let chunks = 0, skills = 0;
900
- try {
901
- if (fs.existsSync(chunksPath)) {
902
- chunks = fs.readFileSync(chunksPath, 'utf-8').split('\n').filter(Boolean).length;
903
- }
904
- } catch { /* ignore */ }
905
- try {
906
- if (fs.existsSync(skillsPath)) {
907
- skills = fs.readFileSync(skillsPath, 'utf-8').split('\n').filter(Boolean).length;
908
- }
909
- } catch { /* ignore */ }
910
- return { chunks, skills };
911
- }
912
-
913
- function getTriggerStats() {
914
- const indexPath = path.join(CWD, '.monomind', 'trigger-index.json');
915
- try {
916
- if (!fs.existsSync(indexPath)) return { triggers: 0, agents: 0 };
917
- const raw = JSON.parse(fs.readFileSync(indexPath, 'utf-8'));
918
- const idx = raw.index || raw;
919
- const triggers = Object.keys(idx).length;
920
- const agents = Object.values(idx).flat().length;
921
- return { triggers, agents };
922
- } catch { return { triggers: 0, agents: 0 }; }
923
- }
924
-
925
- function getSIBudget() {
926
- const SI_LIMIT = 1500;
927
- const siPath = path.join(CWD, '.agents', 'shared_instructions.md');
928
- try {
929
- if (!fs.existsSync(siPath)) return null;
930
- const len = fs.readFileSync(siPath, 'utf-8').length;
931
- return { len, pct: Math.round((len / SI_LIMIT) * 100), limit: SI_LIMIT };
932
- } catch { return null; }
933
- }
934
-
935
- // Control server status (Neural Control Room web UI)
936
- function getControlStatus() {
937
- const statusPath = path.join(CWD, '.monomind', 'control.json');
938
- try {
939
- if (!fs.existsSync(statusPath)) return { running: false, port: null };
940
- const data = JSON.parse(fs.readFileSync(statusPath, 'utf-8'));
941
- if (!data || !data.pid) return { running: false, port: null };
942
- try {
943
- process.kill(data.pid, 0);
944
- return { running: true, port: data.port || 4242, url: data.url };
945
- } catch {
946
- return { running: false, port: null };
947
- }
948
- } catch { return { running: false, port: null }; }
949
- }
950
-
951
- // ── Single-line statusline (compact) ─────────────────────────────
952
- function generateStatusline() {
953
- const git = getGitInfo();
954
- const swarm = getSwarmStatus();
955
- const system = getSystemMetrics();
956
- const hooks = getHooksStatus();
957
- const knowledge = getKnowledgeStats();
958
- const triggers = getTriggerStats();
959
- const palace = getMemoryPalaceStats();
960
- const tokens = getTokenStats();
961
- const parts = [];
962
-
963
- // Brand + project + swarm dot
964
- const swarmDot = swarm.coordinationActive ? `${x.green}●${x.reset}` : `${x.slate}○${x.reset}`;
965
- const projName = getProjectName();
966
- const cwdBase = path.basename(CWD);
967
- parts.push(`${x.bold}${x.purple}▊ MonoMind${x.reset} ${x.teal}${projName}${x.reset} ${swarmDot} ${x.dim}◎ ${cwdBase}${x.reset}`);
968
-
969
- // Git branch + changes (compact)
970
- if (git.gitBranch) {
971
- let b = `${x.sky}⎇ ${x.bold}${git.gitBranch}${x.reset}`;
972
- if (git.staged > 0) b += ` ${x.green}+${git.staged}${x.reset}`;
973
- if (git.modified > 0) b += ` ${x.gold}~${git.modified}${x.reset}`;
974
- if (git.ahead > 0) b += ` ${x.green}↑${git.ahead}${x.reset}`;
975
- if (git.behind > 0) b += ` ${x.coral}↓${git.behind}${x.reset}`;
976
- parts.push(b);
977
- }
978
-
979
- // Model
980
- parts.push(`${x.violet}${getModelName()}${x.reset}`);
981
-
982
- // Active agent
983
- const activeAgent = getActiveAgent();
984
- if (activeAgent) {
985
- const isExtras = activeAgent.slug === 'extras' || activeAgent.name === 'Extras';
986
- if (isExtras && activeAgent.extrasMatches && activeAgent.extrasMatches.length > 0) {
987
- // Show first specialist name in compact mode
988
- const first = activeAgent.extrasMatches[0];
989
- parts.push(`${x.sky}👤 ${x.bold}${first.name}${x.reset}`);
990
- } else if (!isExtras) {
991
- const col = activeAgent.activated ? x.green : x.sky;
992
- const icon = activeAgent.activated ? '●' : '';
993
- parts.push(icon
994
- ? `${col}${icon} ${x.bold}${activeAgent.name}${x.reset}`
995
- : `${col}👤 ${x.bold}${activeAgent.name}${x.reset}`);
996
- }
997
- // else: suppress extras with no matches
998
- }
999
-
1000
- // Intelligence
1001
- const ic = pctColor(system.intelligencePct);
1002
- parts.push(`${ic}💡 ${system.intelligencePct}%${x.reset}`);
1003
-
1004
- // Auto-memory files
1005
- const autoMemCompact = getAutoMemoryStats();
1006
- if (autoMemCompact.count > 0) {
1007
- const typeOrder = ['handoff', 'user', 'feedback', 'project', 'reference'];
1008
- const typeColors = { user: x.sky, feedback: x.gold, project: x.teal, reference: x.violet, handoff: x.coral };
1009
- const typeParts = typeOrder
1010
- .filter(t => autoMemCompact.byType[t] > 0)
1011
- .map(t => `${typeColors[t] || x.slate}${autoMemCompact.byType[t]}${t.slice(0,1)}${x.reset}`);
1012
- const typeSuffix = typeParts.length > 0 ? ` ${typeParts.join(' ')}` : '';
1013
- parts.push(`${x.purple}🧠 ${autoMemCompact.count}m${x.reset}${typeSuffix}`);
1014
- }
1015
-
1016
- // Knowledge chunks — show when populated
1017
- if (knowledge.chunks > 0) {
1018
- parts.push(`${x.teal}📚 ${knowledge.chunks}k${x.reset}`);
1019
- }
1020
-
1021
- // Graphify code graph
1022
- const gfCompact = getGraphifyStats();
1023
- if (gfCompact.exists) {
1024
- parts.push(`${x.sky}🔗 ${gfCompact.nodes}n ${gfCompact.edges}e${x.reset}`);
1025
- }
1026
-
1027
- // Triggers — show when populated
1028
- if (triggers.triggers > 0) {
1029
- parts.push(`${x.mint}🎯 ${triggers.triggers}t${x.reset}`);
1030
- }
1031
-
1032
- // Swarm agents — show active count, or dim recent count when idle
1033
- if (swarm.activeAgents > 0) {
1034
- parts.push(`${x.gold}🐝 ${swarm.activeAgents}/${swarm.maxAgents}${x.reset}`);
1035
- } else if ((swarm.lastActive || 0) > 0) {
1036
- parts.push(`${x.slate}🐝 ${swarm.lastActive}✓${x.reset}`);
1037
- }
1038
-
1039
- // Hooks
1040
- if (hooks.enabled > 0) {
1041
- parts.push(`${x.mint}⚡ ${hooks.enabled}h${x.reset}`);
1042
- }
1043
-
1044
- // Token cost today (from cache)
1045
- if (tokens && tokens.todayCost > 0) {
1046
- const todayFmt = tokens.todayCost >= 100 ? `$${tokens.todayCost.toFixed(2)}` : tokens.todayCost >= 1 ? `$${tokens.todayCost.toFixed(3)}` : `$${tokens.todayCost.toFixed(4)}`;
1047
- parts.push(`${x.gold}💰 ${todayFmt}${x.reset}`);
1048
- }
1049
-
1050
- // Control server (Neural Control Room)
1051
- const ctrl = getControlStatus();
1052
- if (ctrl.running) {
1053
- parts.push(`${x.teal}🎛️ :${ctrl.port}${x.reset}`);
1054
- }
1055
-
1056
- return parts.join(` ${DIV} `);
1057
- }
1058
-
1059
- // ── Multi-line dashboard (full mode) ─────────────────────────────
1060
- function generateDashboard() {
1061
- const git = getGitInfo();
1062
- const modelName = getModelName();
1063
- const progress = getv1Progress();
1064
- const security = getSecurityStatus();
1065
- const swarm = getSwarmStatus();
1066
- const system = getSystemMetrics();
1067
- // adrs removed — internal dev metric
1068
- const hooks = getHooksStatus();
1069
- const agentdb = getAgentDBStats();
1070
- const tests = getTestStats();
1071
- const session = getSessionStats();
1072
- const integration = getIntegrationStatus();
1073
- const knowledge = getKnowledgeStats();
1074
- const triggers = getTriggerStats();
1075
- const si = getSIBudget();
1076
- const palace = getMemoryPalaceStats();
1077
- const autoMem = getAutoMemoryStats();
1078
- const tokens = getTokenStats();
1079
- const sec = secBadge(security.status);
1080
- const activeAgent = getActiveAgent();
1081
- const lines = [];
1082
-
1083
- // ── Header: brand + git + model + session ────────────────────
1084
- const swarmDot = swarm.coordinationActive ? `${x.green}● LIVE${x.reset}` : `${x.slate}○ IDLE${x.reset}`;
1085
- const projName = getProjectName();
1086
- const cwdName = path.basename(CWD);
1087
- let hdr = `${x.bold}${x.purple}▊ MonoMind${x.reset} ${x.dim}${VERSION}${x.reset} ${swarmDot} ${x.teal}${x.bold}${projName}${x.reset} ${DIV} ${x.dim}◎ ${cwdName}${x.reset} ${DIV} ${x.violet}⬡ ${git.name}${x.reset}`;
1088
-
1089
- if (git.gitBranch) {
1090
- hdr += ` ${DIV} ${x.sky}⎇ ${x.bold}${git.gitBranch}${x.reset}`;
1091
- if (git.staged > 0) hdr += ` ${x.green}+${git.staged}${x.reset}`;
1092
- if (git.modified > 0) hdr += ` ${x.gold}~${git.modified} mod${x.reset}`;
1093
- if (git.untracked > 0) hdr += ` ${x.slate}?${git.untracked}${x.reset}`;
1094
- if (git.ahead > 0) hdr += ` ${x.green}↑${git.ahead}${x.reset}`;
1095
- if (git.behind > 0) hdr += ` ${x.coral}↓${git.behind}${x.reset}`;
1096
- }
1097
-
1098
- hdr += ` ${DIV} 🤖 ${x.violet}${x.bold}${modelName}${x.reset}`;
1099
- if (session.duration) hdr += ` ${x.dim}⏱ ${session.duration}${x.reset}`;
1100
-
1101
- // Control server (Neural Control Room)
1102
- const ctrl = getControlStatus();
1103
- if (ctrl.running) {
1104
- hdr += ` ${DIV} ${x.teal}${x.bold}🎛️ CTRL${x.reset}${x.teal} :${ctrl.port}${x.reset}`;
1105
- }
1106
-
1107
- if (tokens) {
1108
- const todayFmt = tokens.todayCost >= 100 ? `$${tokens.todayCost.toFixed(2)}` : tokens.todayCost >= 1 ? `$${tokens.todayCost.toFixed(3)}` : `$${tokens.todayCost.toFixed(4)}`;
1109
- hdr += ` ${DIV} ${x.gold}💰 ${x.bold}${todayFmt}${x.reset}${x.slate} today · ${tokens.todayCalls} calls${x.reset}`;
1110
- }
1111
-
1112
- lines.push(hdr);
1113
- lines.push(SEP);
1114
-
1115
- // ── Row 1: Knowledge & Graphify ──────────────────────────────
1116
- const knowStr = knowledge.chunks > 0
1117
- ? `${x.teal}📚 ${x.bold}${knowledge.chunks}${x.reset}${x.slate} chunks${x.reset}`
1118
- : `${x.slate}📚 no chunks${x.reset}`;
1119
-
1120
- const skillStr = knowledge.skills > 0
1121
- ? ` ${x.mint}✦ ${knowledge.skills} skills${x.reset}`
1122
- : '';
1123
-
1124
- const patStr = progress.patternsLearned > 0
1125
- ? `${x.gold}${progress.patternsLearned >= 1000 ? (progress.patternsLearned / 1000).toFixed(1) + 'k' : progress.patternsLearned} patterns${x.reset}`
1126
- : `${x.slate}0 patterns${x.reset}`;
1127
-
1128
- const gf = getGraphifyStats();
1129
- const gfStr = gf.exists
1130
- ? `${x.sky}🔗 ${x.bold}${gf.nodes}${x.reset}${x.slate} nodes · ${x.reset}${x.sky}${x.bold}${gf.edges}${x.reset}${x.slate} edges${x.reset}`
1131
- : `${x.slate}🔗 no graph${x.reset}`;
1132
-
1133
- lines.push(
1134
- `${x.purple}💡 INTEL${x.reset} ` +
1135
- `${knowStr}${skillStr} ${DIV} ` +
1136
- `${patStr} ${DIV} ` +
1137
- gfStr
1138
- );
1139
- lines.push(SEP);
1140
-
1141
- // ── Row 2: Agents & Triggers ──────────────────────────────────
1142
- const agentCol = swarm.activeAgents > 0 ? x.green : x.slate;
1143
- const hookCol = hooks.enabled > 0 ? x.mint : x.slate;
1144
-
1145
- // Triggers (Task 32)
1146
- const trigStr = triggers.triggers > 0
1147
- ? `${x.mint}🎯 ${x.bold}${triggers.triggers}${x.reset}${x.slate} triggers · ${triggers.agents} agents${x.reset}`
1148
- : `${x.slate}🎯 no triggers${x.reset}`;
1149
-
1150
- // Active agent badge
1151
- let agentBadge;
1152
- if (activeAgent) {
1153
- const isExtras = activeAgent.slug === 'extras' || activeAgent.name === 'Extras';
1154
- if (isExtras && activeAgent.extrasMatches && activeAgent.extrasMatches.length > 0) {
1155
- // Show specific specialist names instead of generic "Extras"
1156
- const specialists = activeAgent.extrasMatches.slice(0, 3);
1157
- const badgeParts = specialists.map(s => `${x.sky}👤 ${x.bold}${s.name}${x.reset}`);
1158
- agentBadge = badgeParts.join(`${x.slate} ${x.reset}`);
1159
- } else if (isExtras) {
1160
- // "extras" with no specific matches — suppress
1161
- agentBadge = `${x.slate}👤 no agent routed${x.reset}`;
1162
- } else {
1163
- const col = activeAgent.activated ? x.green : x.sky;
1164
- const mark = activeAgent.activated ? '● ACTIVE' : '';
1165
- const conf = activeAgent.activated ? '' : ` ${x.slate}${(activeAgent.confidence * 100).toFixed(0)}%${x.reset}`;
1166
- const cat = activeAgent.category ? ` ${x.slate}[${activeAgent.category}]${x.reset}` : '';
1167
- agentBadge = mark
1168
- ? `${col}${x.bold}${mark}${x.reset} ${col}👤 ${x.bold}${activeAgent.name}${x.reset}${cat}${conf}`
1169
- : `${col}👤 ${x.bold}${activeAgent.name}${x.reset}${cat}${conf}`;
1170
- }
1171
- } else {
1172
- agentBadge = `${x.slate}👤 no agent routed${x.reset}`;
1173
- }
1174
-
1175
- // Swarm line: show active count, or "N ✓ idle" when recently used, or "idle" when never used
1176
- const swarmCountStr = swarm.activeAgents > 0
1177
- ? `${agentCol}${x.bold}${swarm.activeAgents}${x.reset}${x.slate}/${x.reset}${x.white}${swarm.maxAgents}${x.reset} agents`
1178
- : (swarm.lastActive || 0) > 0
1179
- ? `${x.slate}${swarm.lastActive}${x.reset}${x.slate}/${swarm.maxAgents} (${x.reset}${x.green}✓ done${x.slate})${x.reset}`
1180
- : `${x.slate}idle${x.reset} `;
1181
- lines.push(
1182
- `${x.gold}🐝 SWARM${x.reset} ` +
1183
- `${swarmCountStr} ` +
1184
- `${hookCol}⚡ ${hooks.enabled}/${hooks.total} hooks${x.reset} ${DIV} ` +
1185
- `${trigStr} ${DIV} ` +
1186
- agentBadge
1187
- );
1188
- lines.push(SEP);
1189
-
1190
- // ── Row 3: Security ──────────────────────────────────────────
1191
- const cveStatus = security.totalCves === 0
1192
- ? (security.status === 'NONE' ? `${x.slate}not scanned${x.reset}` : `${x.green}✔ clean${x.reset}`)
1193
- : `${x.coral}${security.cvesFixed}/${security.totalCves} fixed${x.reset}`;
1194
-
1195
- lines.push(
1196
- `${x.purple}🛡️ SECURITY${x.reset} ` +
1197
- `${sec.col}${sec.label}${x.reset} ${DIV} ` +
1198
- `CVE ${cveStatus}`
1199
- );
1200
- lines.push(SEP);
1201
-
1202
- // ── Row 4: Memory & Tests ─────────────────────────────────────
1203
- const testCol = tests.testFiles > 0 ? x.green : x.slate;
1204
- const memCol = system.memoryMB > 200 ? x.orange : x.sky;
1205
-
1206
- // Auto-memory files display
1207
- const memFileCol = autoMem.count > 0 ? x.purple : x.slate;
1208
- const memFileStr = autoMem.count > 0
1209
- ? `${memFileCol}${x.bold}${autoMem.count}${x.reset}${x.slate} memories${x.reset}`
1210
- : `${x.slate}no memories${x.reset}`;
1211
- const memTypeOrder = ['handoff', 'user', 'feedback', 'project', 'reference'];
1212
- const typeColors = { user: x.sky, feedback: x.gold, project: x.teal, reference: x.violet, handoff: x.coral };
1213
- const typeParts = memTypeOrder
1214
- .filter(t => autoMem.byType[t] > 0)
1215
- .map(t => `${typeColors[t] || x.slate}${autoMem.byType[t]}${t.slice(0,1)}${x.reset}`);
1216
- const kgStr = typeParts.length > 0 ? ` ${typeParts.join(' ')}` : '';
1217
-
1218
- // Total memory size (palace + agentdb)
1219
- const totalSizeKB = agentdb.dbSizeKB + palace.palaceSizeKB;
1220
- const sizeDisp = totalSizeKB >= 1024
1221
- ? `${(totalSizeKB / 1024).toFixed(1)} MB` : `${totalSizeKB} KB`;
1222
-
1223
- // HNSW tag only meaningful if vectors exist
1224
- const vecTotal = agentdb.vectorCount;
1225
- const hnswTag = agentdb.hasHnsw ? ` ${x.green}⚡ HNSW${x.reset}` : '';
1226
-
1227
- const chips = [];
1228
- if (integration.mcpServers.total > 0) {
1229
- const mc = integration.mcpServers.enabled === integration.mcpServers.total ? x.green
1230
- : integration.mcpServers.enabled > 0 ? x.gold : x.coral;
1231
- chips.push(`${mc}MCP ${integration.mcpServers.enabled}/${integration.mcpServers.total}${x.reset}`);
1232
- }
1233
- if (integration.hasDatabase) chips.push(`${x.green}DB ✔${x.reset}`);
1234
- if (integration.hasApi) chips.push(`${x.green}API ✔${x.reset}`);
1235
- const integStr = chips.length ? chips.join(' ') : `${x.slate}none${x.reset}`;
1236
-
1237
- lines.push(
1238
- `${x.teal}🗄️ MEMORY${x.reset} ` +
1239
- `${memFileStr}${kgStr}${hnswTag} ${DIV} ` +
1240
- `${x.white}${sizeDisp}${x.reset} ${DIV} ` +
1241
- `${testCol}🧪 ${tests.testFiles} test files${x.reset} ${DIV} ` +
1242
- integStr
1243
- );
1244
- lines.push(SEP);
1245
-
1246
- // ── Row 5: Context budget ─────────────────────────────────────
1247
- // SI budget (Task 23 monitor)
1248
- let siStr;
1249
- if (si) {
1250
- const siCol = si.pct > 100 ? x.coral : si.pct > 80 ? x.gold : x.green;
1251
- siStr = `${siCol}📄 SI ${si.pct}% budget${x.reset} ${x.dim}(${si.len}/${si.limit} chars)${x.reset}`;
1252
- } else {
1253
- siStr = `${x.slate}📄 no shared instructions${x.reset}`;
1254
- }
1255
-
1256
- let monthStr = '';
1257
- if (tokens) {
1258
- const mFmt = tokens.monthCost >= 100 ? `$${tokens.monthCost.toFixed(2)}` : tokens.monthCost >= 1 ? `$${tokens.monthCost.toFixed(3)}` : `$${tokens.monthCost.toFixed(4)}`;
1259
- monthStr = ` ${DIV} ${x.gold}📈 ${x.bold}${mFmt}${x.reset}${x.slate} month · ${tokens.monthCalls} calls${x.reset}`;
1260
- }
1261
- lines.push(
1262
- `${x.slate}📋 CONTEXT${x.reset} ` +
1263
- `${siStr} ${DIV} ` +
1264
- `${x.dim}💾 ${system.memoryMB} MB RAM${x.reset}` +
1265
- monthStr
1266
- );
1267
-
1268
- return lines.join('\n');
1269
- }
1270
-
1271
- // ── JSON output ──────────────────────────────────────────────────
1272
- function generateJSON() {
1273
- const git = getGitInfo();
1274
- return {
1275
- user: { name: git.name, gitBranch: git.gitBranch, modelName: getModelName() },
1276
- domains: getv1Progress(),
1277
- security: getSecurityStatus(),
1278
- swarm: getSwarmStatus(),
1279
- system: getSystemMetrics(),
1280
- adrs: getADRStatus(),
1281
- hooks: getHooksStatus(),
1282
- agentdb: getAgentDBStats(),
1283
- palace: getMemoryPalaceStats(),
1284
- tokens: getTokenStats(),
1285
- tests: getTestStats(),
1286
- git: { modified: git.modified, untracked: git.untracked, staged: git.staged, ahead: git.ahead, behind: git.behind },
1287
- lastUpdated: new Date().toISOString(),
1288
- };
1289
- }
1290
-
1291
- // ─── Mode state file ─────────────────────────────────────────────
1292
- const MODE_FILE = path.join(CWD, '.monomind', 'statusline-mode.txt');
1293
-
1294
- function readMode() {
1295
- try {
1296
- if (fs.existsSync(MODE_FILE)) {
1297
- return fs.readFileSync(MODE_FILE, 'utf-8').trim();
1298
- }
1299
- } catch { /* ignore */ }
1300
- return 'full'; // default
1301
- }
1302
-
1303
- // ─── Main ───────────────────────────────────────────────────────
1304
- if (process.argv.includes('--json')) {
1305
- console.log(JSON.stringify(generateJSON(), null, 2));
1306
- } else if (process.argv.includes('--compact')) {
1307
- console.log(JSON.stringify(generateJSON()));
1308
- } else if (process.argv.includes('--single-line')) {
1309
- console.log(generateStatusline());
1310
- } else if (process.argv.includes('--toggle')) {
1311
- // Toggle mode and print the new view
1312
- const current = readMode();
1313
- const next = current === 'compact' ? 'full' : 'compact';
1314
- try {
1315
- fs.mkdirSync(path.dirname(MODE_FILE), { recursive: true });
1316
- fs.writeFileSync(MODE_FILE, next, 'utf-8');
1317
- } catch { /* ignore */ }
1318
- if (next === 'compact') {
1319
- console.log(generateStatusline());
1320
- } else {
1321
- console.log(generateDashboard());
1322
- }
1323
- } else {
1324
- // Default: respect mode state file
1325
- const mode = readMode();
1326
- if (mode === 'compact') {
1327
- console.log(generateStatusline());
1328
- } else {
1329
- console.log(generateDashboard());
1330
- }
1331
- }