@monoes/monomindcli 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1409) hide show
  1. package/.claude/agents/academic/academic-anthropologist.md +126 -0
  2. package/.claude/agents/academic/academic-geographer.md +128 -0
  3. package/.claude/agents/academic/academic-historian.md +124 -0
  4. package/.claude/agents/academic/academic-narratologist.md +119 -0
  5. package/.claude/agents/academic/academic-psychologist.md +119 -0
  6. package/.claude/agents/analysis/analyze-code-quality.md +58 -0
  7. package/.claude/agents/analysis/code-analyzer.md +189 -0
  8. package/.claude/agents/analysis/code-review/analyze-code-quality.md +58 -0
  9. package/.claude/agents/architecture/system-design/arch-system-design.md +54 -0
  10. package/.claude/agents/consensus/crdt-synchronizer.md +977 -0
  11. package/.claude/agents/consensus/performance-benchmarker.md +831 -0
  12. package/.claude/agents/consensus/quorum-manager.md +803 -0
  13. package/.claude/agents/consensus/security-manager.md +602 -0
  14. package/.claude/agents/core/coder.md +262 -0
  15. package/.claude/agents/core/planner.md +170 -0
  16. package/.claude/agents/core/researcher.md +192 -0
  17. package/.claude/agents/core/reviewer.md +327 -0
  18. package/.claude/agents/core/tester.md +318 -0
  19. package/.claude/agents/data/ml/data-ml-model.md +76 -0
  20. package/.claude/agents/design/design-brand-guardian.md +323 -0
  21. package/.claude/agents/design/design-image-prompt-engineer.md +237 -0
  22. package/.claude/agents/design/design-inclusive-visuals-specialist.md +72 -0
  23. package/.claude/agents/design/design-ui-designer.md +384 -0
  24. package/.claude/agents/design/design-ux-architect.md +470 -0
  25. package/.claude/agents/design/design-ux-researcher.md +330 -0
  26. package/.claude/agents/design/design-visual-storyteller.md +150 -0
  27. package/.claude/agents/design/design-whimsy-injector.md +439 -0
  28. package/.claude/agents/development/dev-backend-api.md +178 -0
  29. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +52 -0
  30. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +63 -0
  31. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +212 -0
  32. package/.claude/agents/engineering/engineering-ai-engineer.md +165 -0
  33. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +108 -0
  34. package/.claude/agents/engineering/engineering-backend-architect.md +254 -0
  35. package/.claude/agents/engineering/engineering-code-reviewer.md +95 -0
  36. package/.claude/agents/engineering/engineering-data-engineer.md +307 -0
  37. package/.claude/agents/engineering/engineering-database-optimizer.md +200 -0
  38. package/.claude/agents/engineering/engineering-devops-automator.md +430 -0
  39. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +174 -0
  40. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +607 -0
  41. package/.claude/agents/engineering/engineering-frontend-developer.md +249 -0
  42. package/.claude/agents/engineering/engineering-git-workflow-master.md +108 -0
  43. package/.claude/agents/engineering/engineering-incident-response-commander.md +482 -0
  44. package/.claude/agents/engineering/engineering-mobile-app-builder.md +499 -0
  45. package/.claude/agents/engineering/engineering-rapid-prototyper.md +463 -0
  46. package/.claude/agents/engineering/engineering-security-engineer.md +303 -0
  47. package/.claude/agents/engineering/engineering-senior-developer.md +195 -0
  48. package/.claude/agents/engineering/engineering-software-architect.md +100 -0
  49. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +528 -0
  50. package/.claude/agents/engineering/engineering-sre.md +114 -0
  51. package/.claude/agents/engineering/engineering-technical-writer.md +412 -0
  52. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +540 -0
  53. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +351 -0
  54. package/.claude/agents/game-development/blender/blender-addon-engineer.md +235 -0
  55. package/.claude/agents/game-development/game-audio-engineer.md +265 -0
  56. package/.claude/agents/game-development/game-designer.md +168 -0
  57. package/.claude/agents/game-development/godot/godot-gameplay-scripter.md +335 -0
  58. package/.claude/agents/game-development/godot/godot-multiplayer-engineer.md +298 -0
  59. package/.claude/agents/game-development/godot/godot-shader-developer.md +267 -0
  60. package/.claude/agents/game-development/level-designer.md +209 -0
  61. package/.claude/agents/game-development/narrative-designer.md +244 -0
  62. package/.claude/agents/game-development/roblox-studio/roblox-avatar-creator.md +298 -0
  63. package/.claude/agents/game-development/roblox-studio/roblox-experience-designer.md +306 -0
  64. package/.claude/agents/game-development/roblox-studio/roblox-systems-scripter.md +326 -0
  65. package/.claude/agents/game-development/technical-artist.md +230 -0
  66. package/.claude/agents/game-development/unity/unity-architect.md +272 -0
  67. package/.claude/agents/game-development/unity/unity-editor-tool-developer.md +311 -0
  68. package/.claude/agents/game-development/unity/unity-multiplayer-engineer.md +322 -0
  69. package/.claude/agents/game-development/unity/unity-shader-graph-artist.md +270 -0
  70. package/.claude/agents/game-development/unreal-engine/unreal-multiplayer-architect.md +314 -0
  71. package/.claude/agents/game-development/unreal-engine/unreal-systems-engineer.md +311 -0
  72. package/.claude/agents/game-development/unreal-engine/unreal-technical-artist.md +257 -0
  73. package/.claude/agents/game-development/unreal-engine/unreal-world-builder.md +274 -0
  74. package/.claude/agents/github/code-review-swarm.md +557 -0
  75. package/.claude/agents/github/github-modes.md +154 -0
  76. package/.claude/agents/github/issue-tracker.md +299 -0
  77. package/.claude/agents/github/multi-repo-swarm.md +525 -0
  78. package/.claude/agents/github/pr-manager.md +163 -0
  79. package/.claude/agents/github/project-board-sync.md +478 -0
  80. package/.claude/agents/github/release-manager.md +352 -0
  81. package/.claude/agents/github/release-swarm.md +597 -0
  82. package/.claude/agents/github/repo-architect.md +378 -0
  83. package/.claude/agents/github/swarm-issue.md +548 -0
  84. package/.claude/agents/github/swarm-pr.md +427 -0
  85. package/.claude/agents/github/sync-coordinator.md +423 -0
  86. package/.claude/agents/github/workflow-automation.md +640 -0
  87. package/.claude/agents/goal/agent.md +804 -0
  88. package/.claude/agents/goal/code-goal-planner.md +445 -0
  89. package/.claude/agents/goal/goal-planner.md +168 -0
  90. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -0
  91. package/.claude/agents/hive-mind/queen-coordinator.md +202 -0
  92. package/.claude/agents/hive-mind/scout-explorer.md +241 -0
  93. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -0
  94. package/.claude/agents/hive-mind/worker-specialist.md +216 -0
  95. package/.claude/agents/marketing/marketing-ai-citation-strategist.md +171 -0
  96. package/.claude/agents/marketing/marketing-app-store-optimizer.md +322 -0
  97. package/.claude/agents/marketing/marketing-baidu-seo-specialist.md +227 -0
  98. package/.claude/agents/marketing/marketing-bilibili-content-strategist.md +200 -0
  99. package/.claude/agents/marketing/marketing-book-co-author.md +111 -0
  100. package/.claude/agents/marketing/marketing-carousel-growth-engine.md +200 -0
  101. package/.claude/agents/marketing/marketing-china-ecommerce-operator.md +284 -0
  102. package/.claude/agents/marketing/marketing-content-creator.md +54 -0
  103. package/.claude/agents/marketing/marketing-cross-border-ecommerce.md +260 -0
  104. package/.claude/agents/marketing/marketing-douyin-strategist.md +150 -0
  105. package/.claude/agents/marketing/marketing-growth-hacker.md +54 -0
  106. package/.claude/agents/marketing/marketing-instagram-curator.md +114 -0
  107. package/.claude/agents/marketing/marketing-kuaishou-strategist.md +224 -0
  108. package/.claude/agents/marketing/marketing-linkedin-content-creator.md +215 -0
  109. package/.claude/agents/marketing/marketing-livestream-commerce-coach.md +306 -0
  110. package/.claude/agents/marketing/marketing-podcast-strategist.md +278 -0
  111. package/.claude/agents/marketing/marketing-private-domain-operator.md +309 -0
  112. package/.claude/agents/marketing/marketing-reddit-community-builder.md +124 -0
  113. package/.claude/agents/marketing/marketing-seo-specialist.md +279 -0
  114. package/.claude/agents/marketing/marketing-short-video-editing-coach.md +413 -0
  115. package/.claude/agents/marketing/marketing-social-media-strategist.md +125 -0
  116. package/.claude/agents/marketing/marketing-tiktok-strategist.md +126 -0
  117. package/.claude/agents/marketing/marketing-twitter-engager.md +127 -0
  118. package/.claude/agents/marketing/marketing-wechat-official-account.md +146 -0
  119. package/.claude/agents/marketing/marketing-weibo-strategist.md +241 -0
  120. package/.claude/agents/marketing/marketing-xiaohongshu-specialist.md +139 -0
  121. package/.claude/agents/marketing/marketing-zhihu-strategist.md +163 -0
  122. package/.claude/agents/neural/safla-neural.md +74 -0
  123. package/.claude/agents/optimization/benchmark-suite.md +663 -0
  124. package/.claude/agents/optimization/load-balancer.md +429 -0
  125. package/.claude/agents/optimization/performance-monitor.md +670 -0
  126. package/.claude/agents/optimization/resource-allocator.md +672 -0
  127. package/.claude/agents/optimization/topology-optimizer.md +806 -0
  128. package/.claude/agents/paid-media/paid-media-auditor.md +71 -0
  129. package/.claude/agents/paid-media/paid-media-creative-strategist.md +71 -0
  130. package/.claude/agents/paid-media/paid-media-paid-social-strategist.md +71 -0
  131. package/.claude/agents/paid-media/paid-media-ppc-strategist.md +71 -0
  132. package/.claude/agents/paid-media/paid-media-programmatic-buyer.md +71 -0
  133. package/.claude/agents/paid-media/paid-media-search-query-analyst.md +71 -0
  134. package/.claude/agents/paid-media/paid-media-tracking-specialist.md +71 -0
  135. package/.claude/agents/payments/agentic-payments.md +126 -0
  136. package/.claude/agents/product/product-behavioral-nudge-engine.md +81 -0
  137. package/.claude/agents/product/product-feedback-synthesizer.md +119 -0
  138. package/.claude/agents/product/product-manager.md +469 -0
  139. package/.claude/agents/product/product-sprint-prioritizer.md +154 -0
  140. package/.claude/agents/product/product-trend-researcher.md +159 -0
  141. package/.claude/agents/project-management/project-management-experiment-tracker.md +199 -0
  142. package/.claude/agents/project-management/project-management-jira-workflow-steward.md +231 -0
  143. package/.claude/agents/project-management/project-management-project-shepherd.md +195 -0
  144. package/.claude/agents/project-management/project-management-studio-operations.md +201 -0
  145. package/.claude/agents/project-management/project-management-studio-producer.md +204 -0
  146. package/.claude/agents/project-management/project-manager-senior.md +136 -0
  147. package/.claude/agents/reasoning/agent.md +804 -0
  148. package/.claude/agents/reasoning/goal-planner.md +73 -0
  149. package/.claude/agents/sales/sales-account-strategist.md +228 -0
  150. package/.claude/agents/sales/sales-coach.md +272 -0
  151. package/.claude/agents/sales/sales-deal-strategist.md +181 -0
  152. package/.claude/agents/sales/sales-discovery-coach.md +226 -0
  153. package/.claude/agents/sales/sales-engineer.md +183 -0
  154. package/.claude/agents/sales/sales-outbound-strategist.md +202 -0
  155. package/.claude/agents/sales/sales-pipeline-analyst.md +268 -0
  156. package/.claude/agents/sales/sales-proposal-strategist.md +218 -0
  157. package/.claude/agents/schemas/architecture-output.json +43 -0
  158. package/.claude/agents/schemas/code-review-output.json +28 -0
  159. package/.claude/agents/schemas/generic-task-input.json +12 -0
  160. package/.claude/agents/schemas/implementation-output.json +18 -0
  161. package/.claude/agents/schemas/research-output.json +31 -0
  162. package/.claude/agents/schemas/security-audit-output.json +29 -0
  163. package/.claude/agents/schemas/test-report-output.json +29 -0
  164. package/.claude/agents/sona/sona-learning-optimizer.md +65 -0
  165. package/.claude/agents/sparc/architecture.md +453 -0
  166. package/.claude/agents/sparc/pseudocode.md +299 -0
  167. package/.claude/agents/sparc/refinement.md +504 -0
  168. package/.claude/agents/sparc/specification.md +258 -0
  169. package/.claude/agents/spatial-computing/macos-spatial-metal-engineer.md +338 -0
  170. package/.claude/agents/spatial-computing/terminal-integration-specialist.md +71 -0
  171. package/.claude/agents/spatial-computing/visionos-spatial-engineer.md +55 -0
  172. package/.claude/agents/specialized/accounts-payable-agent.md +186 -0
  173. package/.claude/agents/specialized/agentic-identity-trust.md +388 -0
  174. package/.claude/agents/specialized/agents-orchestrator.md +368 -0
  175. package/.claude/agents/specialized/automation-governance-architect.md +217 -0
  176. package/.claude/agents/specialized/blockchain-security-auditor.md +497 -0
  177. package/.claude/agents/specialized/compliance-auditor.md +159 -0
  178. package/.claude/agents/specialized/corporate-training-designer.md +193 -0
  179. package/.claude/agents/specialized/data-consolidation-agent.md +61 -0
  180. package/.claude/agents/specialized/government-digital-presales-consultant.md +364 -0
  181. package/.claude/agents/specialized/healthcare-marketing-compliance.md +396 -0
  182. package/.claude/agents/specialized/identity-graph-operator.md +261 -0
  183. package/.claude/agents/specialized/lsp-index-engineer.md +315 -0
  184. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +89 -0
  185. package/.claude/agents/specialized/recruitment-specialist.md +510 -0
  186. package/.claude/agents/specialized/report-distribution-agent.md +66 -0
  187. package/.claude/agents/specialized/sales-data-extraction-agent.md +68 -0
  188. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +89 -0
  189. package/.claude/agents/specialized/specialized-developer-advocate.md +318 -0
  190. package/.claude/agents/specialized/specialized-document-generator.md +56 -0
  191. package/.claude/agents/specialized/specialized-french-consulting-market.md +193 -0
  192. package/.claude/agents/specialized/specialized-korean-business-navigator.md +217 -0
  193. package/.claude/agents/specialized/specialized-mcp-builder.md +64 -0
  194. package/.claude/agents/specialized/specialized-model-qa.md +489 -0
  195. package/.claude/agents/specialized/specialized-salesforce-architect.md +181 -0
  196. package/.claude/agents/specialized/specialized-workflow-architect.md +598 -0
  197. package/.claude/agents/specialized/study-abroad-advisor.md +283 -0
  198. package/.claude/agents/specialized/supply-chain-strategist.md +583 -0
  199. package/.claude/agents/specialized/zk-steward.md +212 -0
  200. package/.claude/agents/sublinear/consensus-coordinator.md +333 -0
  201. package/.claude/agents/sublinear/matrix-optimizer.md +180 -0
  202. package/.claude/agents/sublinear/pagerank-analyzer.md +295 -0
  203. package/.claude/agents/sublinear/performance-optimizer.md +363 -0
  204. package/.claude/agents/sublinear/trading-predictor.md +242 -0
  205. package/.claude/agents/support/support-analytics-reporter.md +366 -0
  206. package/.claude/agents/support/support-executive-summary-generator.md +213 -0
  207. package/.claude/agents/support/support-finance-tracker.md +443 -0
  208. package/.claude/agents/support/support-infrastructure-maintainer.md +619 -0
  209. package/.claude/agents/support/support-legal-compliance-checker.md +589 -0
  210. package/.claude/agents/support/support-support-responder.md +586 -0
  211. package/.claude/agents/swarm/adaptive-coordinator.md +364 -0
  212. package/.claude/agents/swarm/hierarchical-coordinator.md +318 -0
  213. package/.claude/agents/swarm/mesh-coordinator.md +363 -0
  214. package/.claude/agents/templates/automation-smart-agent.md +185 -0
  215. package/.claude/agents/templates/coordinator-swarm-init.md +83 -0
  216. package/.claude/agents/templates/github-pr-manager.md +155 -0
  217. package/.claude/agents/templates/implementer-sparc-coder.md +231 -0
  218. package/.claude/agents/templates/memory-coordinator.md +163 -0
  219. package/.claude/agents/templates/migration-plan.md +724 -0
  220. package/.claude/agents/templates/orchestrator-task.md +120 -0
  221. package/.claude/agents/templates/performance-analyzer.md +179 -0
  222. package/.claude/agents/templates/sparc-coordinator.md +163 -0
  223. package/.claude/agents/testing/production-validator.md +374 -0
  224. package/.claude/agents/testing/tdd-london-swarm.md +241 -0
  225. package/.claude/agents/testing/testing-accessibility-auditor.md +322 -0
  226. package/.claude/agents/testing/testing-api-tester.md +307 -0
  227. package/.claude/agents/testing/testing-evidence-collector.md +211 -0
  228. package/.claude/agents/testing/testing-performance-benchmarker.md +269 -0
  229. package/.claude/agents/testing/testing-reality-checker.md +237 -0
  230. package/.claude/agents/testing/testing-test-results-analyzer.md +306 -0
  231. package/.claude/agents/testing/testing-tool-evaluator.md +395 -0
  232. package/.claude/agents/testing/testing-workflow-optimizer.md +451 -0
  233. package/.claude/agents/v3/integration-architect.md +338 -0
  234. package/.claude/agents/v3/memory-specialist.md +298 -0
  235. package/.claude/agents/v3/performance-engineer.md +387 -0
  236. package/.claude/agents/v3/queen-coordinator.md +67 -0
  237. package/.claude/agents/v3/security-architect.md +154 -0
  238. package/.claude/commands/agents/README.md +10 -0
  239. package/.claude/commands/agents/agent-capabilities.md +21 -0
  240. package/.claude/commands/agents/agent-coordination.md +28 -0
  241. package/.claude/commands/agents/agent-spawning.md +28 -0
  242. package/.claude/commands/agents/agent-types.md +26 -0
  243. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  244. package/.claude/commands/analysis/README.md +9 -0
  245. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  246. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  247. package/.claude/commands/analysis/performance-report.md +25 -0
  248. package/.claude/commands/analysis/token-efficiency.md +45 -0
  249. package/.claude/commands/analysis/token-usage.md +25 -0
  250. package/.claude/commands/automation/README.md +9 -0
  251. package/.claude/commands/automation/auto-agent.md +122 -0
  252. package/.claude/commands/automation/self-healing.md +106 -0
  253. package/.claude/commands/automation/session-memory.md +90 -0
  254. package/.claude/commands/automation/smart-agents.md +73 -0
  255. package/.claude/commands/automation/smart-spawn.md +25 -0
  256. package/.claude/commands/automation/workflow-select.md +25 -0
  257. package/.claude/commands/browse.md +27 -0
  258. package/.claude/commands/coordination/README.md +9 -0
  259. package/.claude/commands/coordination/agent-spawn.md +25 -0
  260. package/.claude/commands/coordination/init.md +44 -0
  261. package/.claude/commands/coordination/orchestrate.md +43 -0
  262. package/.claude/commands/coordination/spawn.md +45 -0
  263. package/.claude/commands/coordination/swarm-init.md +85 -0
  264. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  265. package/.claude/commands/github/README.md +11 -0
  266. package/.claude/commands/github/code-review-swarm.md +550 -0
  267. package/.claude/commands/github/code-review.md +25 -0
  268. package/.claude/commands/github/github-modes.md +147 -0
  269. package/.claude/commands/github/github-swarm.md +121 -0
  270. package/.claude/commands/github/issue-tracker.md +292 -0
  271. package/.claude/commands/github/issue-triage.md +25 -0
  272. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  273. package/.claude/commands/github/pr-enhance.md +26 -0
  274. package/.claude/commands/github/pr-manager.md +170 -0
  275. package/.claude/commands/github/project-board-sync.md +471 -0
  276. package/.claude/commands/github/release-manager.md +355 -0
  277. package/.claude/commands/github/release-swarm.md +590 -0
  278. package/.claude/commands/github/repo-analyze.md +25 -0
  279. package/.claude/commands/github/repo-architect.md +381 -0
  280. package/.claude/commands/github/swarm-issue.md +482 -0
  281. package/.claude/commands/github/swarm-pr.md +310 -0
  282. package/.claude/commands/github/sync-coordinator.md +301 -0
  283. package/.claude/commands/github/workflow-automation.md +468 -0
  284. package/.claude/commands/hive-mind/README.md +17 -0
  285. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  286. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  287. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  288. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  289. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  290. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  291. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  292. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  293. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  294. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  295. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  296. package/.claude/commands/hooks/README.md +11 -0
  297. package/.claude/commands/hooks/overview.md +58 -0
  298. package/.claude/commands/hooks/post-edit.md +117 -0
  299. package/.claude/commands/hooks/post-task.md +112 -0
  300. package/.claude/commands/hooks/pre-edit.md +113 -0
  301. package/.claude/commands/hooks/pre-task.md +111 -0
  302. package/.claude/commands/hooks/session-end.md +118 -0
  303. package/.claude/commands/hooks/setup.md +103 -0
  304. package/.claude/commands/list-agents.md +17 -0
  305. package/.claude/commands/mastermind.md +121 -0
  306. package/.claude/commands/memory/README.md +9 -0
  307. package/.claude/commands/memory/memory-persist.md +25 -0
  308. package/.claude/commands/memory/memory-search.md +25 -0
  309. package/.claude/commands/memory/memory-usage.md +25 -0
  310. package/.claude/commands/memory/neural.md +47 -0
  311. package/.claude/commands/metrics.md +11 -0
  312. package/.claude/commands/monitoring/README.md +9 -0
  313. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  314. package/.claude/commands/monitoring/agents.md +44 -0
  315. package/.claude/commands/monitoring/real-time-view.md +25 -0
  316. package/.claude/commands/monitoring/status.md +46 -0
  317. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  318. package/.claude/commands/monobrain-help.md +103 -0
  319. package/.claude/commands/monobrain-memory.md +107 -0
  320. package/.claude/commands/monobrain-swarm.md +205 -0
  321. package/.claude/commands/monomind-do.md +276 -0
  322. package/.claude/commands/monomind-idea.md +269 -0
  323. package/.claude/commands/monomind-repeat.md +95 -0
  324. package/.claude/commands/optimization/README.md +9 -0
  325. package/.claude/commands/optimization/auto-topology.md +62 -0
  326. package/.claude/commands/optimization/cache-manage.md +25 -0
  327. package/.claude/commands/optimization/parallel-execution.md +50 -0
  328. package/.claude/commands/optimization/topology-optimize.md +25 -0
  329. package/.claude/commands/pair/README.md +261 -0
  330. package/.claude/commands/pair/commands.md +546 -0
  331. package/.claude/commands/pair/config.md +510 -0
  332. package/.claude/commands/pair/examples.md +512 -0
  333. package/.claude/commands/pair/modes.md +348 -0
  334. package/.claude/commands/pair/session.md +407 -0
  335. package/.claude/commands/pair/start.md +209 -0
  336. package/.claude/commands/sparc/analyzer.md +52 -0
  337. package/.claude/commands/sparc/architect.md +53 -0
  338. package/.claude/commands/sparc/ask.md +97 -0
  339. package/.claude/commands/sparc/batch-executor.md +54 -0
  340. package/.claude/commands/sparc/code.md +89 -0
  341. package/.claude/commands/sparc/coder.md +54 -0
  342. package/.claude/commands/sparc/debug.md +83 -0
  343. package/.claude/commands/sparc/debugger.md +54 -0
  344. package/.claude/commands/sparc/designer.md +53 -0
  345. package/.claude/commands/sparc/devops.md +109 -0
  346. package/.claude/commands/sparc/docs-writer.md +80 -0
  347. package/.claude/commands/sparc/documenter.md +54 -0
  348. package/.claude/commands/sparc/innovator.md +54 -0
  349. package/.claude/commands/sparc/integration.md +83 -0
  350. package/.claude/commands/sparc/mcp.md +117 -0
  351. package/.claude/commands/sparc/memory-manager.md +54 -0
  352. package/.claude/commands/sparc/optimizer.md +54 -0
  353. package/.claude/commands/sparc/orchestrator.md +132 -0
  354. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  355. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  356. package/.claude/commands/sparc/researcher.md +54 -0
  357. package/.claude/commands/sparc/reviewer.md +54 -0
  358. package/.claude/commands/sparc/security-review.md +80 -0
  359. package/.claude/commands/sparc/sparc-modes.md +174 -0
  360. package/.claude/commands/sparc/sparc.md +111 -0
  361. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  362. package/.claude/commands/sparc/supabase-admin.md +348 -0
  363. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  364. package/.claude/commands/sparc/tdd.md +54 -0
  365. package/.claude/commands/sparc/tester.md +54 -0
  366. package/.claude/commands/sparc/tutorial.md +79 -0
  367. package/.claude/commands/sparc/workflow-manager.md +54 -0
  368. package/.claude/commands/sparc.md +166 -0
  369. package/.claude/commands/stream-chain/pipeline.md +121 -0
  370. package/.claude/commands/stream-chain/run.md +70 -0
  371. package/.claude/commands/swarm/README.md +15 -0
  372. package/.claude/commands/swarm/analysis.md +95 -0
  373. package/.claude/commands/swarm/development.md +96 -0
  374. package/.claude/commands/swarm/examples.md +168 -0
  375. package/.claude/commands/swarm/maintenance.md +102 -0
  376. package/.claude/commands/swarm/optimization.md +117 -0
  377. package/.claude/commands/swarm/research.md +136 -0
  378. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  379. package/.claude/commands/swarm/swarm-background.md +8 -0
  380. package/.claude/commands/swarm/swarm-modes.md +8 -0
  381. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  382. package/.claude/commands/swarm/swarm-status.md +8 -0
  383. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  384. package/.claude/commands/swarm/swarm.md +27 -0
  385. package/.claude/commands/swarm/testing.md +131 -0
  386. package/.claude/commands/tokens.md +13 -0
  387. package/.claude/commands/training/README.md +9 -0
  388. package/.claude/commands/training/model-update.md +25 -0
  389. package/.claude/commands/training/neural-patterns.md +74 -0
  390. package/.claude/commands/training/neural-train.md +25 -0
  391. package/.claude/commands/training/pattern-learn.md +25 -0
  392. package/.claude/commands/training/specialization.md +63 -0
  393. package/.claude/commands/truth/start.md +143 -0
  394. package/.claude/commands/ts.md +9 -0
  395. package/.claude/commands/use-agent.md +67 -0
  396. package/.claude/commands/verify/check.md +50 -0
  397. package/.claude/commands/verify/start.md +128 -0
  398. package/.claude/commands/workflows/README.md +9 -0
  399. package/.claude/commands/workflows/development.md +78 -0
  400. package/.claude/commands/workflows/research.md +63 -0
  401. package/.claude/commands/workflows/workflow-create.md +25 -0
  402. package/.claude/commands/workflows/workflow-execute.md +25 -0
  403. package/.claude/commands/workflows/workflow-export.md +25 -0
  404. package/.claude/helpers/README.md +105 -0
  405. package/.claude/helpers/auto-memory-hook.mjs +369 -0
  406. package/.claude/helpers/context-persistence-hook.mjs +1988 -0
  407. package/.claude/helpers/extras-registry.json +3028 -0
  408. package/.claude/helpers/graphify-freshen.cjs +109 -0
  409. package/.claude/helpers/hook-handler.cjs +1446 -0
  410. package/.claude/helpers/intelligence.cjs +227 -0
  411. package/.claude/helpers/learning-service.mjs +1144 -0
  412. package/.claude/helpers/memory-palace.cjs +401 -0
  413. package/.claude/helpers/memory.cjs +84 -0
  414. package/.claude/helpers/metrics-db.mjs +488 -0
  415. package/.claude/helpers/router.cjs +306 -0
  416. package/.claude/helpers/session.cjs +125 -0
  417. package/.claude/helpers/skill-registry.json +961 -0
  418. package/.claude/helpers/statusline.cjs +1276 -0
  419. package/.claude/helpers/swarm-hooks.sh +761 -0
  420. package/.claude/helpers/toggle-statusline.cjs +58 -0
  421. package/.claude/helpers/token-tracker.cjs +934 -0
  422. package/.claude/skills/agent-browser-testing/SKILL.md +312 -0
  423. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  424. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  425. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  426. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  427. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  428. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  429. package/.claude/skills/github-code-review/SKILL.md +1148 -0
  430. package/.claude/skills/github-multi-repo/SKILL.md +916 -0
  431. package/.claude/skills/github-project-management/SKILL.md +1250 -0
  432. package/.claude/skills/github-release-management/SKILL.md +1124 -0
  433. package/.claude/skills/github-workflow-automation/SKILL.md +1111 -0
  434. package/.claude/skills/hive-mind-advanced/SKILL.md +709 -0
  435. package/.claude/skills/hooks-automation/SKILL.md +1200 -0
  436. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  437. package/.claude/skills/performance-analysis/SKILL.md +560 -0
  438. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  439. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  440. package/.claude/skills/skill-builder/SKILL.md +910 -0
  441. package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
  442. package/.claude/skills/specialagent/SKILL.md +208 -0
  443. package/.claude/skills/stream-chain/SKILL.md +560 -0
  444. package/.claude/skills/swarm-advanced/SKILL.md +970 -0
  445. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  446. package/.claude/skills/v3-cli-modernization/SKILL.md +941 -0
  447. package/.claude/skills/v3-core-implementation/SKILL.md +867 -0
  448. package/.claude/skills/v3-ddd-architecture/SKILL.md +451 -0
  449. package/.claude/skills/v3-integration-deep/SKILL.md +258 -0
  450. package/.claude/skills/v3-mcp-optimization/SKILL.md +816 -0
  451. package/.claude/skills/v3-memory-unification/SKILL.md +180 -0
  452. package/.claude/skills/v3-performance-optimization/SKILL.md +408 -0
  453. package/.claude/skills/v3-security-overhaul/SKILL.md +91 -0
  454. package/.claude/skills/v3-swarm-coordination/SKILL.md +433 -0
  455. package/.claude/skills/verification-quality/SKILL.md +674 -0
  456. package/README.md +687 -0
  457. package/bin/cli.js +156 -0
  458. package/bin/mcp-server.js +189 -0
  459. package/bin/preinstall.cjs +2 -0
  460. package/dist/src/agents/halt-signal.d.ts +25 -0
  461. package/dist/src/agents/halt-signal.d.ts.map +1 -0
  462. package/dist/src/agents/halt-signal.js +50 -0
  463. package/dist/src/agents/halt-signal.js.map +1 -0
  464. package/dist/src/agents/index.d.ts +18 -0
  465. package/dist/src/agents/index.d.ts.map +1 -0
  466. package/dist/src/agents/index.js +13 -0
  467. package/dist/src/agents/index.js.map +1 -0
  468. package/dist/src/agents/managed-agent.d.ts +41 -0
  469. package/dist/src/agents/managed-agent.d.ts.map +1 -0
  470. package/dist/src/agents/managed-agent.js +66 -0
  471. package/dist/src/agents/managed-agent.js.map +1 -0
  472. package/dist/src/agents/prompt-experiment.d.ts +22 -0
  473. package/dist/src/agents/prompt-experiment.d.ts.map +1 -0
  474. package/dist/src/agents/prompt-experiment.js +49 -0
  475. package/dist/src/agents/prompt-experiment.js.map +1 -0
  476. package/dist/src/agents/prompt-version-manager.d.ts +19 -0
  477. package/dist/src/agents/prompt-version-manager.d.ts.map +1 -0
  478. package/dist/src/agents/prompt-version-manager.js +58 -0
  479. package/dist/src/agents/prompt-version-manager.js.map +1 -0
  480. package/dist/src/agents/registry-builder.d.ts +36 -0
  481. package/dist/src/agents/registry-builder.d.ts.map +1 -0
  482. package/dist/src/agents/registry-builder.js +200 -0
  483. package/dist/src/agents/registry-builder.js.map +1 -0
  484. package/dist/src/agents/registry-query.d.ts +71 -0
  485. package/dist/src/agents/registry-query.d.ts.map +1 -0
  486. package/dist/src/agents/registry-query.js +125 -0
  487. package/dist/src/agents/registry-query.js.map +1 -0
  488. package/dist/src/agents/score-decay.d.ts +19 -0
  489. package/dist/src/agents/score-decay.d.ts.map +1 -0
  490. package/dist/src/agents/score-decay.js +22 -0
  491. package/dist/src/agents/score-decay.js.map +1 -0
  492. package/dist/src/agents/shared-instructions-loader.d.ts +13 -0
  493. package/dist/src/agents/shared-instructions-loader.d.ts.map +1 -0
  494. package/dist/src/agents/shared-instructions-loader.js +40 -0
  495. package/dist/src/agents/shared-instructions-loader.js.map +1 -0
  496. package/dist/src/agents/specialization-scorer.d.ts +54 -0
  497. package/dist/src/agents/specialization-scorer.d.ts.map +1 -0
  498. package/dist/src/agents/specialization-scorer.js +204 -0
  499. package/dist/src/agents/specialization-scorer.js.map +1 -0
  500. package/dist/src/agents/termination-watcher.d.ts +30 -0
  501. package/dist/src/agents/termination-watcher.d.ts.map +1 -0
  502. package/dist/src/agents/termination-watcher.js +84 -0
  503. package/dist/src/agents/termination-watcher.js.map +1 -0
  504. package/dist/src/agents/trigger-index.d.ts +20 -0
  505. package/dist/src/agents/trigger-index.d.ts.map +1 -0
  506. package/dist/src/agents/trigger-index.js +38 -0
  507. package/dist/src/agents/trigger-index.js.map +1 -0
  508. package/dist/src/agents/trigger-scanner.d.ts +62 -0
  509. package/dist/src/agents/trigger-scanner.d.ts.map +1 -0
  510. package/dist/src/agents/trigger-scanner.js +260 -0
  511. package/dist/src/agents/trigger-scanner.js.map +1 -0
  512. package/dist/src/agents/version-diff.d.ts +18 -0
  513. package/dist/src/agents/version-diff.d.ts.map +1 -0
  514. package/dist/src/agents/version-diff.js +64 -0
  515. package/dist/src/agents/version-diff.js.map +1 -0
  516. package/dist/src/agents/version-store.d.ts +61 -0
  517. package/dist/src/agents/version-store.d.ts.map +1 -0
  518. package/dist/src/agents/version-store.js +212 -0
  519. package/dist/src/agents/version-store.js.map +1 -0
  520. package/dist/src/autopilot-state.d.ts +77 -0
  521. package/dist/src/autopilot-state.d.ts.map +1 -0
  522. package/dist/src/autopilot-state.js +279 -0
  523. package/dist/src/autopilot-state.js.map +1 -0
  524. package/dist/src/benchmarks/benchmark-runner.d.ts +82 -0
  525. package/dist/src/benchmarks/benchmark-runner.d.ts.map +1 -0
  526. package/dist/src/benchmarks/benchmark-runner.js +261 -0
  527. package/dist/src/benchmarks/benchmark-runner.js.map +1 -0
  528. package/dist/src/benchmarks/metric-evaluators.d.ts +35 -0
  529. package/dist/src/benchmarks/metric-evaluators.d.ts.map +1 -0
  530. package/dist/src/benchmarks/metric-evaluators.js +91 -0
  531. package/dist/src/benchmarks/metric-evaluators.js.map +1 -0
  532. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  533. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  534. package/dist/src/benchmarks/pretrain/index.js +404 -0
  535. package/dist/src/benchmarks/pretrain/index.js.map +1 -0
  536. package/dist/src/commands/agent-wasm.d.ts +14 -0
  537. package/dist/src/commands/agent-wasm.d.ts.map +1 -0
  538. package/dist/src/commands/agent-wasm.js +333 -0
  539. package/dist/src/commands/agent-wasm.js.map +1 -0
  540. package/dist/src/commands/agent.d.ts +8 -0
  541. package/dist/src/commands/agent.d.ts.map +1 -0
  542. package/dist/src/commands/agent.js +941 -0
  543. package/dist/src/commands/agent.js.map +1 -0
  544. package/dist/src/commands/analyze.d.ts +19 -0
  545. package/dist/src/commands/analyze.d.ts.map +1 -0
  546. package/dist/src/commands/analyze.js +2048 -0
  547. package/dist/src/commands/analyze.js.map +1 -0
  548. package/dist/src/commands/appliance-advanced.d.ts +9 -0
  549. package/dist/src/commands/appliance-advanced.d.ts.map +1 -0
  550. package/dist/src/commands/appliance-advanced.js +215 -0
  551. package/dist/src/commands/appliance-advanced.js.map +1 -0
  552. package/dist/src/commands/appliance.d.ts +8 -0
  553. package/dist/src/commands/appliance.d.ts.map +1 -0
  554. package/dist/src/commands/appliance.js +406 -0
  555. package/dist/src/commands/appliance.js.map +1 -0
  556. package/dist/src/commands/autopilot.d.ts +15 -0
  557. package/dist/src/commands/autopilot.d.ts.map +1 -0
  558. package/dist/src/commands/autopilot.js +362 -0
  559. package/dist/src/commands/autopilot.js.map +1 -0
  560. package/dist/src/commands/benchmark.d.ts +10 -0
  561. package/dist/src/commands/benchmark.d.ts.map +1 -0
  562. package/dist/src/commands/benchmark.js +460 -0
  563. package/dist/src/commands/benchmark.js.map +1 -0
  564. package/dist/src/commands/claims.d.ts +10 -0
  565. package/dist/src/commands/claims.d.ts.map +1 -0
  566. package/dist/src/commands/claims.js +624 -0
  567. package/dist/src/commands/claims.js.map +1 -0
  568. package/dist/src/commands/cleanup.d.ts +13 -0
  569. package/dist/src/commands/cleanup.d.ts.map +1 -0
  570. package/dist/src/commands/cleanup.js +218 -0
  571. package/dist/src/commands/cleanup.js.map +1 -0
  572. package/dist/src/commands/completions.d.ts +10 -0
  573. package/dist/src/commands/completions.d.ts.map +1 -0
  574. package/dist/src/commands/completions.js +539 -0
  575. package/dist/src/commands/completions.js.map +1 -0
  576. package/dist/src/commands/config.d.ts +8 -0
  577. package/dist/src/commands/config.d.ts.map +1 -0
  578. package/dist/src/commands/config.js +428 -0
  579. package/dist/src/commands/config.js.map +1 -0
  580. package/dist/src/commands/daemon.d.ts +8 -0
  581. package/dist/src/commands/daemon.d.ts.map +1 -0
  582. package/dist/src/commands/daemon.js +669 -0
  583. package/dist/src/commands/daemon.js.map +1 -0
  584. package/dist/src/commands/deployment.d.ts +10 -0
  585. package/dist/src/commands/deployment.d.ts.map +1 -0
  586. package/dist/src/commands/deployment.js +672 -0
  587. package/dist/src/commands/deployment.js.map +1 -0
  588. package/dist/src/commands/doctor.d.ts +10 -0
  589. package/dist/src/commands/doctor.d.ts.map +1 -0
  590. package/dist/src/commands/doctor.js +619 -0
  591. package/dist/src/commands/doctor.js.map +1 -0
  592. package/dist/src/commands/embeddings.d.ts +18 -0
  593. package/dist/src/commands/embeddings.d.ts.map +1 -0
  594. package/dist/src/commands/embeddings.js +1576 -0
  595. package/dist/src/commands/embeddings.js.map +1 -0
  596. package/dist/src/commands/guidance.d.ts +8 -0
  597. package/dist/src/commands/guidance.d.ts.map +1 -0
  598. package/dist/src/commands/guidance.js +560 -0
  599. package/dist/src/commands/guidance.js.map +1 -0
  600. package/dist/src/commands/hive-mind.d.ts +11 -0
  601. package/dist/src/commands/hive-mind.d.ts.map +1 -0
  602. package/dist/src/commands/hive-mind.js +1237 -0
  603. package/dist/src/commands/hive-mind.js.map +1 -0
  604. package/dist/src/commands/hooks.d.ts +8 -0
  605. package/dist/src/commands/hooks.d.ts.map +1 -0
  606. package/dist/src/commands/hooks.js +4442 -0
  607. package/dist/src/commands/hooks.js.map +1 -0
  608. package/dist/src/commands/index.d.ts +117 -0
  609. package/dist/src/commands/index.d.ts.map +1 -0
  610. package/dist/src/commands/index.js +391 -0
  611. package/dist/src/commands/index.js.map +1 -0
  612. package/dist/src/commands/init.d.ts +8 -0
  613. package/dist/src/commands/init.d.ts.map +1 -0
  614. package/dist/src/commands/init.js +817 -0
  615. package/dist/src/commands/init.js.map +1 -0
  616. package/dist/src/commands/issues.d.ts +21 -0
  617. package/dist/src/commands/issues.d.ts.map +1 -0
  618. package/dist/src/commands/issues.js +567 -0
  619. package/dist/src/commands/issues.js.map +1 -0
  620. package/dist/src/commands/mcp.d.ts +11 -0
  621. package/dist/src/commands/mcp.d.ts.map +1 -0
  622. package/dist/src/commands/mcp.js +718 -0
  623. package/dist/src/commands/mcp.js.map +1 -0
  624. package/dist/src/commands/memory.d.ts +8 -0
  625. package/dist/src/commands/memory.d.ts.map +1 -0
  626. package/dist/src/commands/memory.js +1565 -0
  627. package/dist/src/commands/memory.js.map +1 -0
  628. package/dist/src/commands/migrate.d.ts +8 -0
  629. package/dist/src/commands/migrate.d.ts.map +1 -0
  630. package/dist/src/commands/migrate.js +742 -0
  631. package/dist/src/commands/migrate.js.map +1 -0
  632. package/dist/src/commands/neural.d.ts +10 -0
  633. package/dist/src/commands/neural.d.ts.map +1 -0
  634. package/dist/src/commands/neural.js +1454 -0
  635. package/dist/src/commands/neural.js.map +1 -0
  636. package/dist/src/commands/performance.d.ts +10 -0
  637. package/dist/src/commands/performance.d.ts.map +1 -0
  638. package/dist/src/commands/performance.js +579 -0
  639. package/dist/src/commands/performance.js.map +1 -0
  640. package/dist/src/commands/plugins.d.ts +11 -0
  641. package/dist/src/commands/plugins.d.ts.map +1 -0
  642. package/dist/src/commands/plugins.js +820 -0
  643. package/dist/src/commands/plugins.js.map +1 -0
  644. package/dist/src/commands/process.d.ts +10 -0
  645. package/dist/src/commands/process.d.ts.map +1 -0
  646. package/dist/src/commands/process.js +695 -0
  647. package/dist/src/commands/process.js.map +1 -0
  648. package/dist/src/commands/progress.d.ts +11 -0
  649. package/dist/src/commands/progress.d.ts.map +1 -0
  650. package/dist/src/commands/progress.js +259 -0
  651. package/dist/src/commands/progress.js.map +1 -0
  652. package/dist/src/commands/providers.d.ts +10 -0
  653. package/dist/src/commands/providers.d.ts.map +1 -0
  654. package/dist/src/commands/providers.js +359 -0
  655. package/dist/src/commands/providers.js.map +1 -0
  656. package/dist/src/commands/replay.d.ts +8 -0
  657. package/dist/src/commands/replay.d.ts.map +1 -0
  658. package/dist/src/commands/replay.js +60 -0
  659. package/dist/src/commands/replay.js.map +1 -0
  660. package/dist/src/commands/route.d.ts +16 -0
  661. package/dist/src/commands/route.d.ts.map +1 -0
  662. package/dist/src/commands/route.js +907 -0
  663. package/dist/src/commands/route.js.map +1 -0
  664. package/dist/src/commands/ruvector/backup.d.ts +11 -0
  665. package/dist/src/commands/ruvector/backup.d.ts.map +1 -0
  666. package/dist/src/commands/ruvector/backup.js +746 -0
  667. package/dist/src/commands/ruvector/backup.js.map +1 -0
  668. package/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  669. package/dist/src/commands/ruvector/benchmark.d.ts.map +1 -0
  670. package/dist/src/commands/ruvector/benchmark.js +489 -0
  671. package/dist/src/commands/ruvector/benchmark.js.map +1 -0
  672. package/dist/src/commands/ruvector/import.d.ts +18 -0
  673. package/dist/src/commands/ruvector/import.d.ts.map +1 -0
  674. package/dist/src/commands/ruvector/import.js +349 -0
  675. package/dist/src/commands/ruvector/import.js.map +1 -0
  676. package/dist/src/commands/ruvector/index.d.ts +29 -0
  677. package/dist/src/commands/ruvector/index.d.ts.map +1 -0
  678. package/dist/src/commands/ruvector/index.js +129 -0
  679. package/dist/src/commands/ruvector/index.js.map +1 -0
  680. package/dist/src/commands/ruvector/init.d.ts +11 -0
  681. package/dist/src/commands/ruvector/init.d.ts.map +1 -0
  682. package/dist/src/commands/ruvector/init.js +466 -0
  683. package/dist/src/commands/ruvector/init.js.map +1 -0
  684. package/dist/src/commands/ruvector/migrate.d.ts +11 -0
  685. package/dist/src/commands/ruvector/migrate.d.ts.map +1 -0
  686. package/dist/src/commands/ruvector/migrate.js +497 -0
  687. package/dist/src/commands/ruvector/migrate.js.map +1 -0
  688. package/dist/src/commands/ruvector/optimize.d.ts +11 -0
  689. package/dist/src/commands/ruvector/optimize.d.ts.map +1 -0
  690. package/dist/src/commands/ruvector/optimize.js +504 -0
  691. package/dist/src/commands/ruvector/optimize.js.map +1 -0
  692. package/dist/src/commands/ruvector/setup.d.ts +18 -0
  693. package/dist/src/commands/ruvector/setup.d.ts.map +1 -0
  694. package/dist/src/commands/ruvector/setup.js +765 -0
  695. package/dist/src/commands/ruvector/setup.js.map +1 -0
  696. package/dist/src/commands/ruvector/status.d.ts +11 -0
  697. package/dist/src/commands/ruvector/status.d.ts.map +1 -0
  698. package/dist/src/commands/ruvector/status.js +478 -0
  699. package/dist/src/commands/ruvector/status.js.map +1 -0
  700. package/dist/src/commands/security.d.ts +10 -0
  701. package/dist/src/commands/security.d.ts.map +1 -0
  702. package/dist/src/commands/security.js +794 -0
  703. package/dist/src/commands/security.js.map +1 -0
  704. package/dist/src/commands/session.d.ts +8 -0
  705. package/dist/src/commands/session.d.ts.map +1 -0
  706. package/dist/src/commands/session.js +750 -0
  707. package/dist/src/commands/session.js.map +1 -0
  708. package/dist/src/commands/start.d.ts +8 -0
  709. package/dist/src/commands/start.d.ts.map +1 -0
  710. package/dist/src/commands/start.js +418 -0
  711. package/dist/src/commands/start.js.map +1 -0
  712. package/dist/src/commands/status.d.ts +8 -0
  713. package/dist/src/commands/status.d.ts.map +1 -0
  714. package/dist/src/commands/status.js +591 -0
  715. package/dist/src/commands/status.js.map +1 -0
  716. package/dist/src/commands/swarm.d.ts +8 -0
  717. package/dist/src/commands/swarm.d.ts.map +1 -0
  718. package/dist/src/commands/swarm.js +801 -0
  719. package/dist/src/commands/swarm.js.map +1 -0
  720. package/dist/src/commands/task.d.ts +8 -0
  721. package/dist/src/commands/task.d.ts.map +1 -0
  722. package/dist/src/commands/task.js +671 -0
  723. package/dist/src/commands/task.js.map +1 -0
  724. package/dist/src/commands/tokens.d.ts +8 -0
  725. package/dist/src/commands/tokens.d.ts.map +1 -0
  726. package/dist/src/commands/tokens.js +107 -0
  727. package/dist/src/commands/tokens.js.map +1 -0
  728. package/dist/src/commands/transfer-store.d.ts +13 -0
  729. package/dist/src/commands/transfer-store.d.ts.map +1 -0
  730. package/dist/src/commands/transfer-store.js +428 -0
  731. package/dist/src/commands/transfer-store.js.map +1 -0
  732. package/dist/src/commands/ui.js +68 -0
  733. package/dist/src/commands/update.d.ts +8 -0
  734. package/dist/src/commands/update.d.ts.map +1 -0
  735. package/dist/src/commands/update.js +276 -0
  736. package/dist/src/commands/update.js.map +1 -0
  737. package/dist/src/commands/workflow.d.ts +8 -0
  738. package/dist/src/commands/workflow.d.ts.map +1 -0
  739. package/dist/src/commands/workflow.js +617 -0
  740. package/dist/src/commands/workflow.js.map +1 -0
  741. package/dist/src/config-adapter.d.ts +15 -0
  742. package/dist/src/config-adapter.d.ts.map +1 -0
  743. package/dist/src/config-adapter.js +186 -0
  744. package/dist/src/config-adapter.js.map +1 -0
  745. package/dist/src/consensus/audit-writer.d.ts +50 -0
  746. package/dist/src/consensus/audit-writer.d.ts.map +1 -0
  747. package/dist/src/consensus/audit-writer.js +109 -0
  748. package/dist/src/consensus/audit-writer.js.map +1 -0
  749. package/dist/src/consensus/index.d.ts +7 -0
  750. package/dist/src/consensus/index.d.ts.map +1 -0
  751. package/dist/src/consensus/index.js +6 -0
  752. package/dist/src/consensus/index.js.map +1 -0
  753. package/dist/src/consensus/vote-signer.d.ts +39 -0
  754. package/dist/src/consensus/vote-signer.d.ts.map +1 -0
  755. package/dist/src/consensus/vote-signer.js +63 -0
  756. package/dist/src/consensus/vote-signer.js.map +1 -0
  757. package/dist/src/context/context-provider.d.ts +44 -0
  758. package/dist/src/context/context-provider.d.ts.map +1 -0
  759. package/dist/src/context/context-provider.js +25 -0
  760. package/dist/src/context/context-provider.js.map +1 -0
  761. package/dist/src/context/git-state-provider.d.ts +12 -0
  762. package/dist/src/context/git-state-provider.d.ts.map +1 -0
  763. package/dist/src/context/git-state-provider.js +34 -0
  764. package/dist/src/context/git-state-provider.js.map +1 -0
  765. package/dist/src/context/index.d.ts +12 -0
  766. package/dist/src/context/index.d.ts.map +1 -0
  767. package/dist/src/context/index.js +12 -0
  768. package/dist/src/context/index.js.map +1 -0
  769. package/dist/src/context/project-conventions-provider.d.ts +15 -0
  770. package/dist/src/context/project-conventions-provider.d.ts.map +1 -0
  771. package/dist/src/context/project-conventions-provider.js +19 -0
  772. package/dist/src/context/project-conventions-provider.js.map +1 -0
  773. package/dist/src/context/prompt-assembler.d.ts +26 -0
  774. package/dist/src/context/prompt-assembler.d.ts.map +1 -0
  775. package/dist/src/context/prompt-assembler.js +93 -0
  776. package/dist/src/context/prompt-assembler.js.map +1 -0
  777. package/dist/src/context/task-history-provider.d.ts +24 -0
  778. package/dist/src/context/task-history-provider.d.ts.map +1 -0
  779. package/dist/src/context/task-history-provider.js +32 -0
  780. package/dist/src/context/task-history-provider.js.map +1 -0
  781. package/dist/src/context/user-preferences-provider.d.ts +14 -0
  782. package/dist/src/context/user-preferences-provider.d.ts.map +1 -0
  783. package/dist/src/context/user-preferences-provider.js +27 -0
  784. package/dist/src/context/user-preferences-provider.js.map +1 -0
  785. package/dist/src/dlq/dlq-reader.d.ts +29 -0
  786. package/dist/src/dlq/dlq-reader.d.ts.map +1 -0
  787. package/dist/src/dlq/dlq-reader.js +64 -0
  788. package/dist/src/dlq/dlq-reader.js.map +1 -0
  789. package/dist/src/dlq/dlq-replayer.d.ts +20 -0
  790. package/dist/src/dlq/dlq-replayer.d.ts.map +1 -0
  791. package/dist/src/dlq/dlq-replayer.js +56 -0
  792. package/dist/src/dlq/dlq-replayer.js.map +1 -0
  793. package/dist/src/dlq/dlq-writer.d.ts +24 -0
  794. package/dist/src/dlq/dlq-writer.d.ts.map +1 -0
  795. package/dist/src/dlq/dlq-writer.js +43 -0
  796. package/dist/src/dlq/dlq-writer.js.map +1 -0
  797. package/dist/src/dlq/index.d.ts +10 -0
  798. package/dist/src/dlq/index.d.ts.map +1 -0
  799. package/dist/src/dlq/index.js +7 -0
  800. package/dist/src/dlq/index.js.map +1 -0
  801. package/dist/src/eval/dataset-manager.d.ts +33 -0
  802. package/dist/src/eval/dataset-manager.d.ts.map +1 -0
  803. package/dist/src/eval/dataset-manager.js +97 -0
  804. package/dist/src/eval/dataset-manager.js.map +1 -0
  805. package/dist/src/eval/dataset-runner.d.ts +23 -0
  806. package/dist/src/eval/dataset-runner.d.ts.map +1 -0
  807. package/dist/src/eval/dataset-runner.js +59 -0
  808. package/dist/src/eval/dataset-runner.js.map +1 -0
  809. package/dist/src/eval/index.d.ts +10 -0
  810. package/dist/src/eval/index.d.ts.map +1 -0
  811. package/dist/src/eval/index.js +7 -0
  812. package/dist/src/eval/index.js.map +1 -0
  813. package/dist/src/eval/trace-collector.d.ts +40 -0
  814. package/dist/src/eval/trace-collector.d.ts.map +1 -0
  815. package/dist/src/eval/trace-collector.js +82 -0
  816. package/dist/src/eval/trace-collector.js.map +1 -0
  817. package/dist/src/graph/enrich.mjs +362 -0
  818. package/dist/src/index.d.ts +82 -0
  819. package/dist/src/index.d.ts.map +1 -0
  820. package/dist/src/index.js +578 -0
  821. package/dist/src/index.js.map +1 -0
  822. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  823. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  824. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  825. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -0
  826. package/dist/src/init/claudemd-generator.d.ts +25 -0
  827. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  828. package/dist/src/init/claudemd-generator.js +522 -0
  829. package/dist/src/init/claudemd-generator.js.map +1 -0
  830. package/dist/src/init/executor.d.ts +38 -0
  831. package/dist/src/init/executor.d.ts.map +1 -0
  832. package/dist/src/init/executor.js +1919 -0
  833. package/dist/src/init/executor.js.map +1 -0
  834. package/dist/src/init/helpers-generator.d.ts +60 -0
  835. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  836. package/dist/src/init/helpers-generator.js +1222 -0
  837. package/dist/src/init/helpers-generator.js.map +1 -0
  838. package/dist/src/init/index.d.ts +13 -0
  839. package/dist/src/init/index.d.ts.map +1 -0
  840. package/dist/src/init/index.js +15 -0
  841. package/dist/src/init/index.js.map +1 -0
  842. package/dist/src/init/mcp-generator.d.ts +26 -0
  843. package/dist/src/init/mcp-generator.d.ts.map +1 -0
  844. package/dist/src/init/mcp-generator.js +99 -0
  845. package/dist/src/init/mcp-generator.js.map +1 -0
  846. package/dist/src/init/settings-generator.d.ts +14 -0
  847. package/dist/src/init/settings-generator.d.ts.map +1 -0
  848. package/dist/src/init/settings-generator.js +392 -0
  849. package/dist/src/init/settings-generator.js.map +1 -0
  850. package/dist/src/init/statusline-generator.d.ts +25 -0
  851. package/dist/src/init/statusline-generator.d.ts.map +1 -0
  852. package/dist/src/init/statusline-generator.js +1157 -0
  853. package/dist/src/init/statusline-generator.js.map +1 -0
  854. package/dist/src/init/types.d.ts +291 -0
  855. package/dist/src/init/types.d.ts.map +1 -0
  856. package/dist/src/init/types.js +258 -0
  857. package/dist/src/init/types.js.map +1 -0
  858. package/dist/src/interactive/interrupt.d.ts +22 -0
  859. package/dist/src/interactive/interrupt.d.ts.map +1 -0
  860. package/dist/src/interactive/interrupt.js +66 -0
  861. package/dist/src/interactive/interrupt.js.map +1 -0
  862. package/dist/src/mcp/deprecation-injector.d.ts +25 -0
  863. package/dist/src/mcp/deprecation-injector.d.ts.map +1 -0
  864. package/dist/src/mcp/deprecation-injector.js +48 -0
  865. package/dist/src/mcp/deprecation-injector.js.map +1 -0
  866. package/dist/src/mcp/tool-registry.d.ts +61 -0
  867. package/dist/src/mcp/tool-registry.d.ts.map +1 -0
  868. package/dist/src/mcp/tool-registry.js +212 -0
  869. package/dist/src/mcp/tool-registry.js.map +1 -0
  870. package/dist/src/mcp-client.d.ts +92 -0
  871. package/dist/src/mcp-client.d.ts.map +1 -0
  872. package/dist/src/mcp-client.js +261 -0
  873. package/dist/src/mcp-client.js.map +1 -0
  874. package/dist/src/mcp-server.d.ts +163 -0
  875. package/dist/src/mcp-server.d.ts.map +1 -0
  876. package/dist/src/mcp-server.js +682 -0
  877. package/dist/src/mcp-server.js.map +1 -0
  878. package/dist/src/mcp-tools/a2a-tools.d.ts +14 -0
  879. package/dist/src/mcp-tools/a2a-tools.d.ts.map +1 -0
  880. package/dist/src/mcp-tools/a2a-tools.js +244 -0
  881. package/dist/src/mcp-tools/a2a-tools.js.map +1 -0
  882. package/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  883. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -0
  884. package/dist/src/mcp-tools/agent-tools.js +564 -0
  885. package/dist/src/mcp-tools/agent-tools.js.map +1 -0
  886. package/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  887. package/dist/src/mcp-tools/agentdb-tools.d.ts.map +1 -0
  888. package/dist/src/mcp-tools/agentdb-tools.js +569 -0
  889. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -0
  890. package/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  891. package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -0
  892. package/dist/src/mcp-tools/analyze-tools.js +317 -0
  893. package/dist/src/mcp-tools/analyze-tools.js.map +1 -0
  894. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  895. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  896. package/dist/src/mcp-tools/auto-install.js +131 -0
  897. package/dist/src/mcp-tools/auto-install.js.map +1 -0
  898. package/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  899. package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -0
  900. package/dist/src/mcp-tools/autopilot-tools.js +227 -0
  901. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -0
  902. package/dist/src/mcp-tools/browser-tools.d.ts +13 -0
  903. package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -0
  904. package/dist/src/mcp-tools/browser-tools.js +550 -0
  905. package/dist/src/mcp-tools/browser-tools.js.map +1 -0
  906. package/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  907. package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -0
  908. package/dist/src/mcp-tools/claims-tools.js +747 -0
  909. package/dist/src/mcp-tools/claims-tools.js.map +1 -0
  910. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  911. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -0
  912. package/dist/src/mcp-tools/config-tools.js +353 -0
  913. package/dist/src/mcp-tools/config-tools.js.map +1 -0
  914. package/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  915. package/dist/src/mcp-tools/coordination-tools.d.ts.map +1 -0
  916. package/dist/src/mcp-tools/coordination-tools.js +673 -0
  917. package/dist/src/mcp-tools/coordination-tools.js.map +1 -0
  918. package/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  919. package/dist/src/mcp-tools/daa-tools.d.ts.map +1 -0
  920. package/dist/src/mcp-tools/daa-tools.js +473 -0
  921. package/dist/src/mcp-tools/daa-tools.js.map +1 -0
  922. package/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  923. package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -0
  924. package/dist/src/mcp-tools/embeddings-tools.js +782 -0
  925. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -0
  926. package/dist/src/mcp-tools/github-tools.d.ts +9 -0
  927. package/dist/src/mcp-tools/github-tools.d.ts.map +1 -0
  928. package/dist/src/mcp-tools/github-tools.js +472 -0
  929. package/dist/src/mcp-tools/github-tools.js.map +1 -0
  930. package/dist/src/mcp-tools/graphify-tools.d.ts +73 -0
  931. package/dist/src/mcp-tools/graphify-tools.d.ts.map +1 -0
  932. package/dist/src/mcp-tools/graphify-tools.js +1235 -0
  933. package/dist/src/mcp-tools/graphify-tools.js.map +1 -0
  934. package/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  935. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -0
  936. package/dist/src/mcp-tools/guidance-tools.js +618 -0
  937. package/dist/src/mcp-tools/guidance-tools.js.map +1 -0
  938. package/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  939. package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +1 -0
  940. package/dist/src/mcp-tools/hive-mind-tools.js +877 -0
  941. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -0
  942. package/dist/src/mcp-tools/hooks-tools.d.ts +44 -0
  943. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -0
  944. package/dist/src/mcp-tools/hooks-tools.js +3397 -0
  945. package/dist/src/mcp-tools/hooks-tools.js.map +1 -0
  946. package/dist/src/mcp-tools/index.d.ts +38 -0
  947. package/dist/src/mcp-tools/index.d.ts.map +1 -0
  948. package/dist/src/mcp-tools/index.js +40 -0
  949. package/dist/src/mcp-tools/index.js.map +1 -0
  950. package/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  951. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -0
  952. package/dist/src/mcp-tools/memory-tools.js +514 -0
  953. package/dist/src/mcp-tools/memory-tools.js.map +1 -0
  954. package/dist/src/mcp-tools/neural-tools.d.ts +16 -0
  955. package/dist/src/mcp-tools/neural-tools.d.ts.map +1 -0
  956. package/dist/src/mcp-tools/neural-tools.js +634 -0
  957. package/dist/src/mcp-tools/neural-tools.js.map +1 -0
  958. package/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  959. package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -0
  960. package/dist/src/mcp-tools/performance-tools.js +643 -0
  961. package/dist/src/mcp-tools/performance-tools.js.map +1 -0
  962. package/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  963. package/dist/src/mcp-tools/progress-tools.d.ts.map +1 -0
  964. package/dist/src/mcp-tools/progress-tools.js +348 -0
  965. package/dist/src/mcp-tools/progress-tools.js.map +1 -0
  966. package/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  967. package/dist/src/mcp-tools/request-tracker.d.ts.map +1 -0
  968. package/dist/src/mcp-tools/request-tracker.js +27 -0
  969. package/dist/src/mcp-tools/request-tracker.js.map +1 -0
  970. package/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  971. package/dist/src/mcp-tools/ruvllm-tools.d.ts.map +1 -0
  972. package/dist/src/mcp-tools/ruvllm-tools.js +284 -0
  973. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -0
  974. package/dist/src/mcp-tools/security-tools.d.ts +18 -0
  975. package/dist/src/mcp-tools/security-tools.d.ts.map +1 -0
  976. package/dist/src/mcp-tools/security-tools.js +434 -0
  977. package/dist/src/mcp-tools/security-tools.js.map +1 -0
  978. package/dist/src/mcp-tools/session-tools.d.ts +8 -0
  979. package/dist/src/mcp-tools/session-tools.d.ts.map +1 -0
  980. package/dist/src/mcp-tools/session-tools.js +338 -0
  981. package/dist/src/mcp-tools/session-tools.js.map +1 -0
  982. package/dist/src/mcp-tools/swarm-tools.d.ts +9 -0
  983. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -0
  984. package/dist/src/mcp-tools/swarm-tools.js +289 -0
  985. package/dist/src/mcp-tools/swarm-tools.js.map +1 -0
  986. package/dist/src/mcp-tools/system-tools.d.ts +13 -0
  987. package/dist/src/mcp-tools/system-tools.d.ts.map +1 -0
  988. package/dist/src/mcp-tools/system-tools.js +551 -0
  989. package/dist/src/mcp-tools/system-tools.js.map +1 -0
  990. package/dist/src/mcp-tools/task-tools.d.ts +8 -0
  991. package/dist/src/mcp-tools/task-tools.d.ts.map +1 -0
  992. package/dist/src/mcp-tools/task-tools.js +406 -0
  993. package/dist/src/mcp-tools/task-tools.js.map +1 -0
  994. package/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  995. package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -0
  996. package/dist/src/mcp-tools/terminal-tools.js +260 -0
  997. package/dist/src/mcp-tools/terminal-tools.js.map +1 -0
  998. package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  999. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -0
  1000. package/dist/src/mcp-tools/transfer-tools.js +396 -0
  1001. package/dist/src/mcp-tools/transfer-tools.js.map +1 -0
  1002. package/dist/src/mcp-tools/types.d.ts +37 -0
  1003. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  1004. package/dist/src/mcp-tools/types.js +14 -0
  1005. package/dist/src/mcp-tools/types.js.map +1 -0
  1006. package/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
  1007. package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +1 -0
  1008. package/dist/src/mcp-tools/wasm-agent-tools.js +230 -0
  1009. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -0
  1010. package/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  1011. package/dist/src/mcp-tools/workflow-tools.d.ts.map +1 -0
  1012. package/dist/src/mcp-tools/workflow-tools.js +562 -0
  1013. package/dist/src/mcp-tools/workflow-tools.js.map +1 -0
  1014. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  1015. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  1016. package/dist/src/memory/ewc-consolidation.js +601 -0
  1017. package/dist/src/memory/ewc-consolidation.js.map +1 -0
  1018. package/dist/src/memory/intelligence.d.ts +338 -0
  1019. package/dist/src/memory/intelligence.d.ts.map +1 -0
  1020. package/dist/src/memory/intelligence.js +1023 -0
  1021. package/dist/src/memory/intelligence.js.map +1 -0
  1022. package/dist/src/memory/memory-bridge.d.ts +409 -0
  1023. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  1024. package/dist/src/memory/memory-bridge.js +1561 -0
  1025. package/dist/src/memory/memory-bridge.js.map +1 -0
  1026. package/dist/src/memory/memory-initializer.d.ts +414 -0
  1027. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  1028. package/dist/src/memory/memory-initializer.js +2222 -0
  1029. package/dist/src/memory/memory-initializer.js.map +1 -0
  1030. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  1031. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  1032. package/dist/src/memory/sona-optimizer.js +633 -0
  1033. package/dist/src/memory/sona-optimizer.js.map +1 -0
  1034. package/dist/src/model/complexity-scorer.d.ts +21 -0
  1035. package/dist/src/model/complexity-scorer.d.ts.map +1 -0
  1036. package/dist/src/model/complexity-scorer.js +106 -0
  1037. package/dist/src/model/complexity-scorer.js.map +1 -0
  1038. package/dist/src/model/index.d.ts +4 -0
  1039. package/dist/src/model/index.d.ts.map +1 -0
  1040. package/dist/src/model/index.js +4 -0
  1041. package/dist/src/model/index.js.map +1 -0
  1042. package/dist/src/model/model-settings.d.ts +22 -0
  1043. package/dist/src/model/model-settings.d.ts.map +1 -0
  1044. package/dist/src/model/model-settings.js +33 -0
  1045. package/dist/src/model/model-settings.js.map +1 -0
  1046. package/dist/src/model/model-tier-resolver.d.ts +24 -0
  1047. package/dist/src/model/model-tier-resolver.d.ts.map +1 -0
  1048. package/dist/src/model/model-tier-resolver.js +65 -0
  1049. package/dist/src/model/model-tier-resolver.js.map +1 -0
  1050. package/dist/src/orchestration/index.d.ts +7 -0
  1051. package/dist/src/orchestration/index.d.ts.map +1 -0
  1052. package/dist/src/orchestration/index.js +6 -0
  1053. package/dist/src/orchestration/index.js.map +1 -0
  1054. package/dist/src/orchestration/mode-dispatcher.d.ts +11 -0
  1055. package/dist/src/orchestration/mode-dispatcher.d.ts.map +1 -0
  1056. package/dist/src/orchestration/mode-dispatcher.js +31 -0
  1057. package/dist/src/orchestration/mode-dispatcher.js.map +1 -0
  1058. package/dist/src/orchestration/routing-modes.d.ts +68 -0
  1059. package/dist/src/orchestration/routing-modes.d.ts.map +1 -0
  1060. package/dist/src/orchestration/routing-modes.js +150 -0
  1061. package/dist/src/orchestration/routing-modes.js.map +1 -0
  1062. package/dist/src/output.d.ts +133 -0
  1063. package/dist/src/output.d.ts.map +1 -0
  1064. package/dist/src/output.js +514 -0
  1065. package/dist/src/output.js.map +1 -0
  1066. package/dist/src/parser.d.ts +51 -0
  1067. package/dist/src/parser.d.ts.map +1 -0
  1068. package/dist/src/parser.js +425 -0
  1069. package/dist/src/parser.js.map +1 -0
  1070. package/dist/src/plugins/manager.d.ts +133 -0
  1071. package/dist/src/plugins/manager.d.ts.map +1 -0
  1072. package/dist/src/plugins/manager.js +400 -0
  1073. package/dist/src/plugins/manager.js.map +1 -0
  1074. package/dist/src/plugins/store/discovery.d.ts +88 -0
  1075. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  1076. package/dist/src/plugins/store/discovery.js +841 -0
  1077. package/dist/src/plugins/store/discovery.js.map +1 -0
  1078. package/dist/src/plugins/store/index.d.ts +76 -0
  1079. package/dist/src/plugins/store/index.d.ts.map +1 -0
  1080. package/dist/src/plugins/store/index.js +141 -0
  1081. package/dist/src/plugins/store/index.js.map +1 -0
  1082. package/dist/src/plugins/store/search.d.ts +46 -0
  1083. package/dist/src/plugins/store/search.d.ts.map +1 -0
  1084. package/dist/src/plugins/store/search.js +230 -0
  1085. package/dist/src/plugins/store/search.js.map +1 -0
  1086. package/dist/src/plugins/store/types.d.ts +274 -0
  1087. package/dist/src/plugins/store/types.d.ts.map +1 -0
  1088. package/dist/src/plugins/store/types.js +7 -0
  1089. package/dist/src/plugins/store/types.js.map +1 -0
  1090. package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  1091. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +1 -0
  1092. package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  1093. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -0
  1094. package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  1095. package/dist/src/plugins/tests/standalone-test.d.ts.map +1 -0
  1096. package/dist/src/plugins/tests/standalone-test.js +188 -0
  1097. package/dist/src/plugins/tests/standalone-test.js.map +1 -0
  1098. package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  1099. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +1 -0
  1100. package/dist/src/plugins/tests/test-plugin-store.js +206 -0
  1101. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -0
  1102. package/dist/src/production/circuit-breaker.d.ts +101 -0
  1103. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  1104. package/dist/src/production/circuit-breaker.js +241 -0
  1105. package/dist/src/production/circuit-breaker.js.map +1 -0
  1106. package/dist/src/production/error-handler.d.ts +92 -0
  1107. package/dist/src/production/error-handler.d.ts.map +1 -0
  1108. package/dist/src/production/error-handler.js +299 -0
  1109. package/dist/src/production/error-handler.js.map +1 -0
  1110. package/dist/src/production/index.d.ts +23 -0
  1111. package/dist/src/production/index.d.ts.map +1 -0
  1112. package/dist/src/production/index.js +18 -0
  1113. package/dist/src/production/index.js.map +1 -0
  1114. package/dist/src/production/monitoring.d.ts +161 -0
  1115. package/dist/src/production/monitoring.d.ts.map +1 -0
  1116. package/dist/src/production/monitoring.js +356 -0
  1117. package/dist/src/production/monitoring.js.map +1 -0
  1118. package/dist/src/production/rate-limiter.d.ts +80 -0
  1119. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  1120. package/dist/src/production/rate-limiter.js +201 -0
  1121. package/dist/src/production/rate-limiter.js.map +1 -0
  1122. package/dist/src/production/retry.d.ts +48 -0
  1123. package/dist/src/production/retry.d.ts.map +1 -0
  1124. package/dist/src/production/retry.js +179 -0
  1125. package/dist/src/production/retry.js.map +1 -0
  1126. package/dist/src/prompt.d.ts +44 -0
  1127. package/dist/src/prompt.d.ts.map +1 -0
  1128. package/dist/src/prompt.js +501 -0
  1129. package/dist/src/prompt.js.map +1 -0
  1130. package/dist/src/runtime/headless.d.ts +60 -0
  1131. package/dist/src/runtime/headless.d.ts.map +1 -0
  1132. package/dist/src/runtime/headless.js +284 -0
  1133. package/dist/src/runtime/headless.js.map +1 -0
  1134. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  1135. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  1136. package/dist/src/ruvector/agent-wasm.js +316 -0
  1137. package/dist/src/ruvector/agent-wasm.js.map +1 -0
  1138. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  1139. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  1140. package/dist/src/ruvector/ast-analyzer.js +277 -0
  1141. package/dist/src/ruvector/ast-analyzer.js.map +1 -0
  1142. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  1143. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  1144. package/dist/src/ruvector/coverage-router.js +529 -0
  1145. package/dist/src/ruvector/coverage-router.js.map +1 -0
  1146. package/dist/src/ruvector/coverage-tools.d.ts +33 -0
  1147. package/dist/src/ruvector/coverage-tools.d.ts.map +1 -0
  1148. package/dist/src/ruvector/coverage-tools.js +157 -0
  1149. package/dist/src/ruvector/coverage-tools.js.map +1 -0
  1150. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  1151. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  1152. package/dist/src/ruvector/diff-classifier.js +698 -0
  1153. package/dist/src/ruvector/diff-classifier.js.map +1 -0
  1154. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  1155. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  1156. package/dist/src/ruvector/enhanced-model-router.js +529 -0
  1157. package/dist/src/ruvector/enhanced-model-router.js.map +1 -0
  1158. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  1159. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  1160. package/dist/src/ruvector/flash-attention.js +643 -0
  1161. package/dist/src/ruvector/flash-attention.js.map +1 -0
  1162. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  1163. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  1164. package/dist/src/ruvector/graph-analyzer.js +929 -0
  1165. package/dist/src/ruvector/graph-analyzer.js.map +1 -0
  1166. package/dist/src/ruvector/index.d.ts +40 -0
  1167. package/dist/src/ruvector/index.d.ts.map +1 -0
  1168. package/dist/src/ruvector/index.js +76 -0
  1169. package/dist/src/ruvector/index.js.map +1 -0
  1170. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  1171. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  1172. package/dist/src/ruvector/lora-adapter.js +455 -0
  1173. package/dist/src/ruvector/lora-adapter.js.map +1 -0
  1174. package/dist/src/ruvector/model-router.d.ts +220 -0
  1175. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  1176. package/dist/src/ruvector/model-router.js +488 -0
  1177. package/dist/src/ruvector/model-router.js.map +1 -0
  1178. package/dist/src/ruvector/moe-router.d.ts +206 -0
  1179. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  1180. package/dist/src/ruvector/moe-router.js +626 -0
  1181. package/dist/src/ruvector/moe-router.js.map +1 -0
  1182. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  1183. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  1184. package/dist/src/ruvector/q-learning-router.js +681 -0
  1185. package/dist/src/ruvector/q-learning-router.js.map +1 -0
  1186. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  1187. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  1188. package/dist/src/ruvector/ruvllm-wasm.js +363 -0
  1189. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -0
  1190. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  1191. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  1192. package/dist/src/ruvector/semantic-router.js +178 -0
  1193. package/dist/src/ruvector/semantic-router.js.map +1 -0
  1194. package/dist/src/ruvector/vector-db.d.ts +69 -0
  1195. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  1196. package/dist/src/ruvector/vector-db.js +243 -0
  1197. package/dist/src/ruvector/vector-db.js.map +1 -0
  1198. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  1199. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  1200. package/dist/src/services/agentic-flow-bridge.js +95 -0
  1201. package/dist/src/services/agentic-flow-bridge.js.map +1 -0
  1202. package/dist/src/services/claim-service.d.ts +204 -0
  1203. package/dist/src/services/claim-service.d.ts.map +1 -0
  1204. package/dist/src/services/claim-service.js +818 -0
  1205. package/dist/src/services/claim-service.js.map +1 -0
  1206. package/dist/src/services/config-file-manager.d.ts +37 -0
  1207. package/dist/src/services/config-file-manager.d.ts.map +1 -0
  1208. package/dist/src/services/config-file-manager.js +224 -0
  1209. package/dist/src/services/config-file-manager.js.map +1 -0
  1210. package/dist/src/services/container-worker-pool.d.ts +197 -0
  1211. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  1212. package/dist/src/services/container-worker-pool.js +583 -0
  1213. package/dist/src/services/container-worker-pool.js.map +1 -0
  1214. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  1215. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  1216. package/dist/src/services/headless-worker-executor.js +1024 -0
  1217. package/dist/src/services/headless-worker-executor.js.map +1 -0
  1218. package/dist/src/services/index.d.ts +13 -0
  1219. package/dist/src/services/index.d.ts.map +1 -0
  1220. package/dist/src/services/index.js +11 -0
  1221. package/dist/src/services/index.js.map +1 -0
  1222. package/dist/src/services/registry-api.d.ts +58 -0
  1223. package/dist/src/services/registry-api.d.ts.map +1 -0
  1224. package/dist/src/services/registry-api.js +146 -0
  1225. package/dist/src/services/registry-api.js.map +1 -0
  1226. package/dist/src/services/ruvector-training.d.ts +222 -0
  1227. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  1228. package/dist/src/services/ruvector-training.js +688 -0
  1229. package/dist/src/services/ruvector-training.js.map +1 -0
  1230. package/dist/src/services/worker-daemon.d.ts +245 -0
  1231. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  1232. package/dist/src/services/worker-daemon.js +999 -0
  1233. package/dist/src/services/worker-daemon.js.map +1 -0
  1234. package/dist/src/services/worker-queue.d.ts +194 -0
  1235. package/dist/src/services/worker-queue.d.ts.map +1 -0
  1236. package/dist/src/services/worker-queue.js +513 -0
  1237. package/dist/src/services/worker-queue.js.map +1 -0
  1238. package/dist/src/suggest.d.ts +53 -0
  1239. package/dist/src/suggest.d.ts.map +1 -0
  1240. package/dist/src/suggest.js +200 -0
  1241. package/dist/src/suggest.js.map +1 -0
  1242. package/dist/src/swarm/communication-graph.d.ts +25 -0
  1243. package/dist/src/swarm/communication-graph.d.ts.map +1 -0
  1244. package/dist/src/swarm/communication-graph.js +77 -0
  1245. package/dist/src/swarm/communication-graph.js.map +1 -0
  1246. package/dist/src/swarm/flow-enforcer.d.ts +29 -0
  1247. package/dist/src/swarm/flow-enforcer.d.ts.map +1 -0
  1248. package/dist/src/swarm/flow-enforcer.js +49 -0
  1249. package/dist/src/swarm/flow-enforcer.js.map +1 -0
  1250. package/dist/src/swarm/flow-visualizer.d.ts +16 -0
  1251. package/dist/src/swarm/flow-visualizer.d.ts.map +1 -0
  1252. package/dist/src/swarm/flow-visualizer.js +44 -0
  1253. package/dist/src/swarm/flow-visualizer.js.map +1 -0
  1254. package/dist/src/transfer/anonymization/index.d.ts +25 -0
  1255. package/dist/src/transfer/anonymization/index.d.ts.map +1 -0
  1256. package/dist/src/transfer/anonymization/index.js +175 -0
  1257. package/dist/src/transfer/anonymization/index.js.map +1 -0
  1258. package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  1259. package/dist/src/transfer/deploy-seraphine.d.ts.map +1 -0
  1260. package/dist/src/transfer/deploy-seraphine.js +205 -0
  1261. package/dist/src/transfer/deploy-seraphine.js.map +1 -0
  1262. package/dist/src/transfer/export.d.ts +25 -0
  1263. package/dist/src/transfer/export.d.ts.map +1 -0
  1264. package/dist/src/transfer/export.js +113 -0
  1265. package/dist/src/transfer/export.js.map +1 -0
  1266. package/dist/src/transfer/index.d.ts +12 -0
  1267. package/dist/src/transfer/index.d.ts.map +1 -0
  1268. package/dist/src/transfer/index.js +31 -0
  1269. package/dist/src/transfer/index.js.map +1 -0
  1270. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  1271. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  1272. package/dist/src/transfer/ipfs/client.js +307 -0
  1273. package/dist/src/transfer/ipfs/client.js.map +1 -0
  1274. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  1275. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  1276. package/dist/src/transfer/ipfs/upload.js +411 -0
  1277. package/dist/src/transfer/ipfs/upload.js.map +1 -0
  1278. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  1279. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  1280. package/dist/src/transfer/models/seraphine.js +373 -0
  1281. package/dist/src/transfer/models/seraphine.js.map +1 -0
  1282. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  1283. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  1284. package/dist/src/transfer/serialization/cfp.js +183 -0
  1285. package/dist/src/transfer/serialization/cfp.js.map +1 -0
  1286. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  1287. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  1288. package/dist/src/transfer/storage/gcs.js +272 -0
  1289. package/dist/src/transfer/storage/gcs.js.map +1 -0
  1290. package/dist/src/transfer/storage/index.d.ts +6 -0
  1291. package/dist/src/transfer/storage/index.d.ts.map +1 -0
  1292. package/dist/src/transfer/storage/index.js +6 -0
  1293. package/dist/src/transfer/storage/index.js.map +1 -0
  1294. package/dist/src/transfer/store/discovery.d.ts +84 -0
  1295. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  1296. package/dist/src/transfer/store/discovery.js +382 -0
  1297. package/dist/src/transfer/store/discovery.js.map +1 -0
  1298. package/dist/src/transfer/store/download.d.ts +70 -0
  1299. package/dist/src/transfer/store/download.d.ts.map +1 -0
  1300. package/dist/src/transfer/store/download.js +334 -0
  1301. package/dist/src/transfer/store/download.js.map +1 -0
  1302. package/dist/src/transfer/store/index.d.ts +84 -0
  1303. package/dist/src/transfer/store/index.d.ts.map +1 -0
  1304. package/dist/src/transfer/store/index.js +153 -0
  1305. package/dist/src/transfer/store/index.js.map +1 -0
  1306. package/dist/src/transfer/store/publish.d.ts +76 -0
  1307. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  1308. package/dist/src/transfer/store/publish.js +294 -0
  1309. package/dist/src/transfer/store/publish.js.map +1 -0
  1310. package/dist/src/transfer/store/registry.d.ts +58 -0
  1311. package/dist/src/transfer/store/registry.d.ts.map +1 -0
  1312. package/dist/src/transfer/store/registry.js +285 -0
  1313. package/dist/src/transfer/store/registry.js.map +1 -0
  1314. package/dist/src/transfer/store/search.d.ts +54 -0
  1315. package/dist/src/transfer/store/search.d.ts.map +1 -0
  1316. package/dist/src/transfer/store/search.js +232 -0
  1317. package/dist/src/transfer/store/search.js.map +1 -0
  1318. package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  1319. package/dist/src/transfer/store/tests/standalone-test.d.ts.map +1 -0
  1320. package/dist/src/transfer/store/tests/standalone-test.js +190 -0
  1321. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -0
  1322. package/dist/src/transfer/store/types.d.ts +193 -0
  1323. package/dist/src/transfer/store/types.d.ts.map +1 -0
  1324. package/dist/src/transfer/store/types.js +6 -0
  1325. package/dist/src/transfer/store/types.js.map +1 -0
  1326. package/dist/src/transfer/test-seraphine.d.ts +6 -0
  1327. package/dist/src/transfer/test-seraphine.d.ts.map +1 -0
  1328. package/dist/src/transfer/test-seraphine.js +105 -0
  1329. package/dist/src/transfer/test-seraphine.js.map +1 -0
  1330. package/dist/src/transfer/tests/test-store.d.ts +7 -0
  1331. package/dist/src/transfer/tests/test-store.d.ts.map +1 -0
  1332. package/dist/src/transfer/tests/test-store.js +214 -0
  1333. package/dist/src/transfer/tests/test-store.js.map +1 -0
  1334. package/dist/src/transfer/types.d.ts +245 -0
  1335. package/dist/src/transfer/types.d.ts.map +1 -0
  1336. package/dist/src/transfer/types.js +6 -0
  1337. package/dist/src/transfer/types.js.map +1 -0
  1338. package/dist/src/types.d.ts +198 -0
  1339. package/dist/src/types.d.ts.map +1 -0
  1340. package/dist/src/types.js +38 -0
  1341. package/dist/src/types.js.map +1 -0
  1342. package/dist/src/ui/.monomind/data/pending-insights.jsonl +0 -0
  1343. package/dist/src/ui/.monomind/data/ranked-context.json +5 -0
  1344. package/dist/src/ui/.monomind/sessions/current.json +13 -0
  1345. package/dist/src/ui/collector.mjs +517 -0
  1346. package/dist/src/ui/dashboard.html +4409 -0
  1347. package/dist/src/ui/server.mjs +909 -0
  1348. package/dist/src/update/checker.d.ts +34 -0
  1349. package/dist/src/update/checker.d.ts.map +1 -0
  1350. package/dist/src/update/checker.js +185 -0
  1351. package/dist/src/update/checker.js.map +1 -0
  1352. package/dist/src/update/executor.d.ts +32 -0
  1353. package/dist/src/update/executor.d.ts.map +1 -0
  1354. package/dist/src/update/executor.js +181 -0
  1355. package/dist/src/update/executor.js.map +1 -0
  1356. package/dist/src/update/index.d.ts +33 -0
  1357. package/dist/src/update/index.d.ts.map +1 -0
  1358. package/dist/src/update/index.js +64 -0
  1359. package/dist/src/update/index.js.map +1 -0
  1360. package/dist/src/update/rate-limiter.d.ts +20 -0
  1361. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  1362. package/dist/src/update/rate-limiter.js +96 -0
  1363. package/dist/src/update/rate-limiter.js.map +1 -0
  1364. package/dist/src/update/validator.d.ts +17 -0
  1365. package/dist/src/update/validator.d.ts.map +1 -0
  1366. package/dist/src/update/validator.js +118 -0
  1367. package/dist/src/update/validator.js.map +1 -0
  1368. package/dist/src/workflow/condition-evaluator.d.ts +10 -0
  1369. package/dist/src/workflow/condition-evaluator.d.ts.map +1 -0
  1370. package/dist/src/workflow/condition-evaluator.js +48 -0
  1371. package/dist/src/workflow/condition-evaluator.js.map +1 -0
  1372. package/dist/src/workflow/context-resolver.d.ts +12 -0
  1373. package/dist/src/workflow/context-resolver.d.ts.map +1 -0
  1374. package/dist/src/workflow/context-resolver.js +23 -0
  1375. package/dist/src/workflow/context-resolver.js.map +1 -0
  1376. package/dist/src/workflow/dag-builder.d.ts +17 -0
  1377. package/dist/src/workflow/dag-builder.d.ts.map +1 -0
  1378. package/dist/src/workflow/dag-builder.js +113 -0
  1379. package/dist/src/workflow/dag-builder.js.map +1 -0
  1380. package/dist/src/workflow/dag-executor.d.ts +9 -0
  1381. package/dist/src/workflow/dag-executor.d.ts.map +1 -0
  1382. package/dist/src/workflow/dag-executor.js +78 -0
  1383. package/dist/src/workflow/dag-executor.js.map +1 -0
  1384. package/dist/src/workflow/dag-types.d.ts +41 -0
  1385. package/dist/src/workflow/dag-types.d.ts.map +1 -0
  1386. package/dist/src/workflow/dag-types.js +8 -0
  1387. package/dist/src/workflow/dag-types.js.map +1 -0
  1388. package/dist/src/workflow/dsl-parser.d.ts +12 -0
  1389. package/dist/src/workflow/dsl-parser.d.ts.map +1 -0
  1390. package/dist/src/workflow/dsl-parser.js +20 -0
  1391. package/dist/src/workflow/dsl-parser.js.map +1 -0
  1392. package/dist/src/workflow/dsl-schema.d.ts +162 -0
  1393. package/dist/src/workflow/dsl-schema.d.ts.map +1 -0
  1394. package/dist/src/workflow/dsl-schema.js +78 -0
  1395. package/dist/src/workflow/dsl-schema.js.map +1 -0
  1396. package/dist/src/workflow/index.d.ts +13 -0
  1397. package/dist/src/workflow/index.d.ts.map +1 -0
  1398. package/dist/src/workflow/index.js +11 -0
  1399. package/dist/src/workflow/index.js.map +1 -0
  1400. package/dist/src/workflow/template-engine.d.ts +11 -0
  1401. package/dist/src/workflow/template-engine.d.ts.map +1 -0
  1402. package/dist/src/workflow/template-engine.js +33 -0
  1403. package/dist/src/workflow/template-engine.js.map +1 -0
  1404. package/dist/src/workflow/workflow-executor.d.ts +29 -0
  1405. package/dist/src/workflow/workflow-executor.d.ts.map +1 -0
  1406. package/dist/src/workflow/workflow-executor.js +146 -0
  1407. package/dist/src/workflow/workflow-executor.js.map +1 -0
  1408. package/dist/tsconfig.tsbuildinfo +1 -0
  1409. package/package.json +105 -0
@@ -0,0 +1,1446 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Monomind Hook Handler (Cross-Platform)
4
+ * Dispatches hook events to the appropriate helper modules.
5
+ */
6
+
7
+ const path = require('path');
8
+ const fs = require('fs');
9
+
10
+ const helpersDir = __dirname;
11
+ const CWD = process.env.CLAUDE_PROJECT_DIR || process.cwd();
12
+
13
+ function safeRequire(modulePath) {
14
+ try {
15
+ if (fs.existsSync(modulePath)) {
16
+ const origLog = console.log;
17
+ const origError = console.error;
18
+ console.log = () => {};
19
+ console.error = () => {};
20
+ try {
21
+ const mod = require(modulePath);
22
+ return mod;
23
+ } finally {
24
+ console.log = origLog;
25
+ console.error = origError;
26
+ }
27
+ }
28
+ } catch (e) {
29
+ // silently fail
30
+ }
31
+ return null;
32
+ }
33
+
34
+ const router = safeRequire(path.join(helpersDir, 'router.cjs'));
35
+ const session = safeRequire(path.join(helpersDir, 'session.cjs'));
36
+ const memory = safeRequire(path.join(helpersDir, 'memory.cjs'));
37
+ const intelligence = safeRequire(path.join(helpersDir, 'intelligence.cjs'));
38
+
39
+ // Module-level reference to @monomind/hooks — populated at session-restore,
40
+ // then used by pre-task / post-task to bridge into the hook registry (Tasks 26, 39).
41
+ let _hooksModule = null;
42
+
43
+ // ── MicroAgent Trigger Scanner (Task 32) ────────────────────────────────────
44
+ function _triggerExtractYamlValue(raw) {
45
+ var v = raw.trim();
46
+ if (v.startsWith('"') && v.endsWith('"')) {
47
+ // YAML double-quoted: unescape \\ → \ so regex patterns like "\\b" become \b (word boundary)
48
+ v = v.slice(1, -1).replace(/\\\\/g, '\\');
49
+ } else if (v.startsWith("'") && v.endsWith("'")) {
50
+ v = v.slice(1, -1);
51
+ }
52
+ return v;
53
+ }
54
+
55
+ function _triggerFinalize(partial, agentSlug) {
56
+ return { pattern: partial.pattern, mode: partial.mode || 'inject', priority: partial.priority || 0, agentSlug: agentSlug };
57
+ }
58
+
59
+ function _triggerExtractFromFrontmatter(content, agentSlug) {
60
+ var fmMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
61
+ if (!fmMatch) return [];
62
+ var block = fmMatch[1];
63
+ var triggers = [];
64
+ var lines = block.split('\n');
65
+ var inTriggers = false;
66
+ var cur = null;
67
+ for (var i = 0; i < lines.length; i++) {
68
+ var line = lines[i];
69
+ var trimmed = line.trim();
70
+ var indent = line.length - line.trimStart().length;
71
+ if (trimmed === 'triggers:' || trimmed.startsWith('triggers:')) { inTriggers = true; continue; }
72
+ if (inTriggers && indent === 0 && /^[a-zA-Z]/.test(trimmed)) {
73
+ inTriggers = false;
74
+ if (cur && cur.pattern) triggers.push(_triggerFinalize(cur, agentSlug));
75
+ cur = null; continue;
76
+ }
77
+ if (!inTriggers) continue;
78
+ if (trimmed.startsWith('- pattern:')) {
79
+ if (cur && cur.pattern) triggers.push(_triggerFinalize(cur, agentSlug));
80
+ cur = { pattern: _triggerExtractYamlValue(trimmed.replace(/^- pattern:\s*/, '')), agentSlug: agentSlug };
81
+ } else if (cur && trimmed.startsWith('mode:')) {
82
+ var mv = _triggerExtractYamlValue(trimmed.replace(/^mode:\s*/, ''));
83
+ if (mv === 'inject' || mv === 'takeover') cur.mode = mv;
84
+ } else if (cur && trimmed.startsWith('priority:')) {
85
+ var pv = parseInt(trimmed.replace(/^priority:\s*/, ''), 10);
86
+ if (!isNaN(pv)) cur.priority = pv;
87
+ }
88
+ }
89
+ if (cur && cur.pattern) triggers.push(_triggerFinalize(cur, agentSlug));
90
+ return triggers;
91
+ }
92
+
93
+ function _triggerCollectMdFiles(dir) {
94
+ var results = [];
95
+ try {
96
+ var entries = fs.readdirSync(dir);
97
+ for (var i = 0; i < entries.length; i++) {
98
+ var full = path.join(dir, entries[i]);
99
+ try {
100
+ var st = fs.lstatSync(full);
101
+ if (st.isDirectory()) results = results.concat(_triggerCollectMdFiles(full));
102
+ else if (entries[i].endsWith('.md')) results.push(full);
103
+ } catch (e) {}
104
+ }
105
+ } catch (e) {}
106
+ return results;
107
+ }
108
+
109
+ function _triggerBuildIndex(agentDir) {
110
+ var patterns = [];
111
+ var files = _triggerCollectMdFiles(agentDir);
112
+ for (var i = 0; i < files.length; i++) {
113
+ var content;
114
+ try { content = fs.readFileSync(files[i], 'utf-8'); } catch (e) { continue; }
115
+ var slug = files[i].split('/').pop().replace(/\.md$/i, '').toLowerCase().replace(/[^a-z0-9-]/g, '-');
116
+ patterns = patterns.concat(_triggerExtractFromFrontmatter(content, slug));
117
+ }
118
+ return patterns;
119
+ }
120
+
121
+ function scanMicroAgentTriggers(prompt) {
122
+ if (!prompt || typeof prompt !== 'string') return { matches: [], injectAgents: [] };
123
+ var indexPath = path.join(CWD, '.monomind', 'trigger-index.json');
124
+ var agentDir = path.join(CWD, '.claude', 'agents');
125
+ var patterns = [];
126
+ var cacheLoaded = false;
127
+
128
+ // Load cached index if fresh (< 1 hour)
129
+ try {
130
+ if (fs.existsSync(indexPath)) {
131
+ var idx = JSON.parse(fs.readFileSync(indexPath, 'utf-8'));
132
+ var age = Date.now() - new Date(idx.builtAt || 0).getTime();
133
+ if (age < 3600000 && Array.isArray(idx.patterns)) {
134
+ patterns = idx.patterns;
135
+ cacheLoaded = true; // valid even when empty (no triggers defined)
136
+ }
137
+ }
138
+ } catch (e) {}
139
+
140
+ // Rebuild only when cache is missing or stale — not when it's a valid empty result
141
+ if (!cacheLoaded) {
142
+ patterns = _triggerBuildIndex(agentDir);
143
+ try {
144
+ fs.mkdirSync(path.join(CWD, '.monomind'), { recursive: true });
145
+ fs.writeFileSync(indexPath, JSON.stringify({ patterns: patterns, builtAt: new Date().toISOString(), totalAgentsScanned: patterns.length }));
146
+ } catch (e) {}
147
+ }
148
+
149
+ // Sort by descending priority
150
+ patterns.sort(function(a, b) { return (b.priority || 0) - (a.priority || 0); });
151
+
152
+ // Apply patterns
153
+ var matches = [];
154
+ var seen = {};
155
+ for (var i = 0; i < patterns.length; i++) {
156
+ var p = patterns[i];
157
+ if (p.mode !== 'inject' && p.mode !== 'takeover') continue;
158
+ if (seen[p.agentSlug]) continue;
159
+ try {
160
+ var re = new RegExp(p.pattern, 'i');
161
+ var m = re.exec(prompt);
162
+ if (m) {
163
+ seen[p.agentSlug] = true;
164
+ matches.push({ agentSlug: p.agentSlug, mode: p.mode, matchedText: m[0] });
165
+ if (p.mode === 'takeover') {
166
+ return { matches: matches, takeoverAgent: p.agentSlug, injectAgents: [] };
167
+ }
168
+ }
169
+ } catch (e) {}
170
+ }
171
+ return { matches: matches, injectAgents: matches.map(function(m) { return m.agentSlug; }) };
172
+ }
173
+
174
+ // ── Task 28: Knowledge Base — inline CJS search + auto-indexer ─────────────
175
+ //
176
+ // Purpose: give KnowledgeRetriever a real search function and pre-populate
177
+ // the knowledge store with project documents (CLAUDE.md, todo.md, etc.) so
178
+ // retrieveForTask() actually returns useful context on session restore.
179
+ // No compiled deps required — reads/writes JSONL directly.
180
+
181
+ /**
182
+ * Build a simple keyword-overlap search function over chunks.jsonl.
183
+ * Returns results sorted by descending score; compatible with SearchFn signature.
184
+ */
185
+ var _KNOWLEDGE_STOPWORDS = new Set(['the','and','or','but','if','in','on','to','is','it','be','do','of','for','not','at','by','as','we','us','an','a','i']);
186
+
187
+ function _buildKnowledgeSearchFn(knowledgeDir) {
188
+ return async function(query, opts) {
189
+ var chunksFile = path.join(knowledgeDir, 'chunks.jsonl');
190
+ if (!fs.existsSync(chunksFile)) return [];
191
+ var lines;
192
+ try {
193
+ lines = fs.readFileSync(chunksFile, 'utf-8').trim().split('\n').filter(Boolean);
194
+ } catch (e) { return []; }
195
+
196
+ var ns = (opts && opts.namespace) || null;
197
+ var limit = (opts && opts.limit) || 10;
198
+ var minScore = (opts && opts.minScore != null) ? opts.minScore : 0.3;
199
+ var queryTerms = query.toLowerCase().split(/\s+/).filter(function(t) { return t.length >= 2 && !_KNOWLEDGE_STOPWORDS.has(t); });
200
+ if (queryTerms.length === 0) return [];
201
+
202
+ var results = [];
203
+ for (var i = 0; i < lines.length; i++) {
204
+ try {
205
+ var chunk = JSON.parse(lines[i]);
206
+ if (ns && chunk.namespace !== ns) continue;
207
+ var textLower = (chunk.text || '').toLowerCase();
208
+ var matchCount = queryTerms.filter(function(t) { return textLower.includes(t); }).length;
209
+ var score = matchCount / queryTerms.length;
210
+ if (score >= minScore) {
211
+ results.push({ key: chunk.chunkId, value: chunk.text, score: score, metadata: chunk.metadata || {} });
212
+ }
213
+ } catch (e) {}
214
+ }
215
+ results.sort(function(a, b) { return b.score - a.score; });
216
+ return results.slice(0, limit);
217
+ };
218
+ }
219
+
220
+ /**
221
+ * Index project knowledge sources into chunks.jsonl.
222
+ * Skips re-indexing if content hasn't changed (hash-gated).
223
+ * Returns the number of new chunks written.
224
+ */
225
+ function _autoIndexKnowledge(knowledgeDir) {
226
+ var crypto = require('crypto');
227
+ var sources = [
228
+ { filePath: path.join(CWD, 'CLAUDE.md'), label: 'project-instructions' },
229
+ { filePath: path.join(CWD, 'docs/todo.md'), label: 'project-todo' },
230
+ { filePath: path.join(CWD, 'CLAUDE.local.md'), label: 'local-instructions' },
231
+ ];
232
+
233
+ // Compute a combined hash of all source file sizes (fast proxy for content change)
234
+ var hashInput = '';
235
+ for (var i = 0; i < sources.length; i++) {
236
+ try {
237
+ if (fs.existsSync(sources[i].filePath)) {
238
+ var st = fs.statSync(sources[i].filePath);
239
+ hashInput += sources[i].filePath + ':' + st.size + ':' + st.mtimeMs + ';';
240
+ }
241
+ } catch (e) {}
242
+ }
243
+ var contentHash = crypto.createHash('md5').update(hashInput).digest('hex');
244
+
245
+ var chunksFile = path.join(knowledgeDir, 'chunks.jsonl');
246
+ var hashFile = path.join(knowledgeDir, '.index-hash');
247
+ var existingHash = '';
248
+ try { existingHash = fs.readFileSync(hashFile, 'utf-8').trim(); } catch (e) {}
249
+
250
+ // Nothing changed — skip re-index
251
+ var existingChunkCount = 0;
252
+ try { if (fs.existsSync(chunksFile)) { existingChunkCount = fs.readFileSync(chunksFile, 'utf-8').trim().split('\n').filter(Boolean).length; } } catch (e) {}
253
+ if (existingHash === contentHash && existingChunkCount > 0) return 0;
254
+
255
+ // Build new chunks
256
+ var newLines = [];
257
+ for (var si = 0; si < sources.length; si++) {
258
+ var src = sources[si];
259
+ try {
260
+ if (!fs.existsSync(src.filePath)) continue;
261
+ var content = fs.readFileSync(src.filePath, 'utf-8');
262
+ // Split on blank lines or markdown headers (## / ###)
263
+ var sections = content.split(/\n{2,}|\n(?=#{1,3} )/);
264
+ for (var ci = 0; ci < sections.length; ci++) {
265
+ var text = sections[ci].trim();
266
+ if (text.length < 40 || text.length > 3000) continue;
267
+ var chunkId = crypto.createHash('md5').update(src.filePath + ':' + ci).digest('hex').slice(0, 16);
268
+ newLines.push(JSON.stringify({
269
+ chunkId: chunkId,
270
+ namespace: 'knowledge:shared',
271
+ text: text,
272
+ metadata: { filePath: src.filePath, label: src.label, chunkIndex: ci }
273
+ }));
274
+ }
275
+ } catch (e) {}
276
+ }
277
+
278
+ try {
279
+ fs.mkdirSync(knowledgeDir, { recursive: true });
280
+ fs.writeFileSync(chunksFile, newLines.length > 0 ? newLines.join('\n') + '\n' : '', 'utf-8');
281
+ fs.writeFileSync(hashFile, contentHash, 'utf-8');
282
+ } catch (e) {}
283
+ return newLines.length;
284
+ }
285
+
286
+ // ── Intelligence timeout protection (fixes #1530, #1531) ───────────────────
287
+ var INTELLIGENCE_TIMEOUT_MS = 1500;
288
+ function runWithTimeout(fn, label) {
289
+ return new Promise(function(resolve) {
290
+ var settled = false;
291
+ var timer = setTimeout(function() {
292
+ if (!settled) {
293
+ settled = true;
294
+ process.stderr.write("[WARN] " + label + " timed out after " + INTELLIGENCE_TIMEOUT_MS + "ms, skipping\n");
295
+ resolve(null);
296
+ }
297
+ }, INTELLIGENCE_TIMEOUT_MS);
298
+ Promise.resolve().then(fn).then(
299
+ function(result) { if (!settled) { settled = true; clearTimeout(timer); resolve(result); } },
300
+ function() { if (!settled) { settled = true; clearTimeout(timer); resolve(null); } }
301
+ );
302
+ });
303
+ }
304
+
305
+
306
+ const [,, command, ...args] = process.argv;
307
+
308
+ // Read stdin — Claude Code sends hook data as JSON via stdin
309
+ // Uses a timeout to prevent hanging when stdin is in an ambiguous state
310
+ // (not TTY, not a proper pipe) which happens with Claude Code hook invocations.
311
+ async function readStdin() {
312
+ if (process.stdin.isTTY) return '';
313
+ return new Promise((resolve) => {
314
+ let data = '';
315
+ const timer = setTimeout(() => {
316
+ process.stdin.removeAllListeners();
317
+ process.stdin.pause();
318
+ resolve(data);
319
+ }, 500);
320
+ process.stdin.setEncoding('utf8');
321
+ process.stdin.on('data', (chunk) => { data += chunk; });
322
+ process.stdin.on('end', () => { clearTimeout(timer); resolve(data); });
323
+ process.stdin.on('error', () => { clearTimeout(timer); resolve(data); });
324
+ process.stdin.resume();
325
+ });
326
+ }
327
+
328
+ async function main() {
329
+ // Global safety timeout: hooks must NEVER hang (#1530, #1531)
330
+ var safetyTimer = setTimeout(function() {
331
+ process.stderr.write("[WARN] Hook handler global timeout (5s), forcing exit\n");
332
+ process.exit(0);
333
+ }, 5000);
334
+ safetyTimer.unref();
335
+
336
+ let stdinData = '';
337
+ try { stdinData = await readStdin(); } catch (e) { /* ignore stdin errors */ }
338
+
339
+ let hookInput = {};
340
+ if (stdinData.trim()) {
341
+ try {
342
+ const parsed = JSON.parse(stdinData);
343
+ if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)) {
344
+ hookInput = parsed;
345
+ }
346
+ } catch (e) { /* ignore parse errors */ }
347
+ }
348
+
349
+ // Merge stdin data into prompt resolution: prefer stdin fields, then env vars.
350
+ // NEVER fall back to argv args — shell glob expansion of braces in bash output
351
+ // creates junk files (#1342). Use env vars or stdin only.
352
+ // Normalize snake_case/camelCase: Claude Code sends tool_input/tool_name (snake_case)
353
+ var toolInput = hookInput.toolInput || hookInput.tool_input || {};
354
+ var toolName = hookInput.toolName || hookInput.tool_name || '';
355
+
356
+ var prompt = hookInput.prompt || hookInput.command
357
+ || (typeof toolInput === 'string' ? toolInput : (toolInput.command || toolInput.prompt || ''))
358
+ || process.env.PROMPT || process.env.TOOL_INPUT_command || '';
359
+
360
+ // Detect prompts that are predefined single-action commands that don't
361
+ // need agent routing or skill suggestions — invoking those adds token
362
+ // overhead without any benefit.
363
+ function isSimpleCommand(p) {
364
+ if (typeof p !== 'string') return false;
365
+ var s = p.trim();
366
+ // Slash commands: /ts, /list-agents, /commit, /help, /use-agent etc.
367
+ if (/^\/[a-z0-9_-]+(\s|$)/i.test(s)) return true;
368
+ // Short single-word operator tokens (toggle, list, status)
369
+ if (/^(ts|ls|ps|pwd|help|clear|exit|quit|status|toggle|refresh)$/i.test(s)) return true;
370
+ // Already-resolved command messages (Claude Code sends hook with command-name context)
371
+ var cmdName = hookInput.commandName || hookInput.command_name || '';
372
+ if (cmdName && cmdName.length > 0) return true;
373
+ return false;
374
+ }
375
+
376
+ const handlers = {
377
+ 'route': async () => {
378
+ // For slash commands and single-action invocations: skip routing panel output
379
+ // but still write last-route.json so the statusline reflects the current action.
380
+ if (isSimpleCommand(prompt)) {
381
+ try {
382
+ var cmdLabel = (typeof prompt === 'string' && prompt.trim().startsWith('/'))
383
+ ? prompt.trim().split(/\s+/)[0] // e.g. "/ts"
384
+ : (hookInput.commandName || hookInput.command_name || 'command');
385
+ var routeDir = path.join(CWD, '.monomind');
386
+ fs.mkdirSync(routeDir, { recursive: true });
387
+ fs.writeFileSync(
388
+ path.join(routeDir, 'last-route.json'),
389
+ JSON.stringify({
390
+ agent: cmdLabel,
391
+ confidence: 1.0,
392
+ reason: 'predefined command — no routing needed',
393
+ semanticRouting: false,
394
+ updatedAt: new Date().toISOString(),
395
+ }),
396
+ 'utf-8'
397
+ );
398
+ } catch (e) { /* non-fatal */ }
399
+ return;
400
+ }
401
+
402
+ if (intelligence && intelligence.getContext) {
403
+ try {
404
+ const ctx = intelligence.getContext(prompt);
405
+ if (ctx) console.log(ctx);
406
+ } catch (e) { /* non-fatal */ }
407
+ }
408
+ if (router && (router.routeTaskSemantic || router.routeTask)) {
409
+ const routeFn = router.routeTaskSemantic || router.routeTask;
410
+ const result = await Promise.resolve(routeFn(prompt));
411
+ var output = [];
412
+ output.push('[INFO] Routing task: ' + (prompt.substring(0, 80) || '(no prompt)'));
413
+ output.push('');
414
+ output.push('+------------- monomind | Primary Recommendation --------------+');
415
+ output.push('| Agent: ' + (result.agent || 'unknown').substring(0, 54).padEnd(54) + '|');
416
+ output.push('| Confidence: ' + ((result.confidence != null ? (result.confidence * 100).toFixed(1) : '?') + '%').padEnd(49) + '|');
417
+ output.push('| Reason: ' + (result.reason || '').substring(0, 53).padEnd(53) + '|');
418
+ output.push('+--------------------------------------------------------------+');
419
+
420
+ // ── Persist routing result for statusline display ─────────────
421
+ try {
422
+ var routeDir = path.join(CWD, '.monomind');
423
+ fs.mkdirSync(routeDir, { recursive: true });
424
+ // Always use the resolved agent name — never persist "extras"
425
+ var resolvedAgent = result.agent;
426
+ if (!resolvedAgent || resolvedAgent === 'extras') {
427
+ var topExtra = result.extrasMatches && result.extrasMatches[0];
428
+ resolvedAgent = topExtra ? topExtra.name : 'Specialist Agent';
429
+ }
430
+ var routePayload = {
431
+ agent: resolvedAgent,
432
+ agentSlug: result.agentSlug || null,
433
+ confidence: result.confidence,
434
+ reason: result.reason,
435
+ semanticRouting: result.semanticRouting || false,
436
+ updatedAt: new Date().toISOString(),
437
+ };
438
+ if (result.extrasMatches && result.extrasMatches.length > 0) {
439
+ routePayload.extrasMatches = result.extrasMatches.map(function(e) {
440
+ return { name: e.name, slug: e.slug, category: e.category };
441
+ });
442
+ }
443
+ fs.writeFileSync(
444
+ path.join(routeDir, 'last-route.json'),
445
+ JSON.stringify(routePayload),
446
+ 'utf-8'
447
+ );
448
+ } catch (e) { /* non-fatal */ }
449
+
450
+ // ── Dev skill suggestions ──────────────────────────────────────
451
+ var matches = result.skillMatches || [];
452
+ if (matches.length > 0) {
453
+ // Check for high-confidence auto-invoke: if top skill scored >= 3 keyword
454
+ // hits and is the dominant match, auto-invoke instead of just suggesting
455
+ var topMatch = matches[0];
456
+ var autoInvoke = false;
457
+ if (topMatch && topMatch.score >= 3 && matches.length <= 2) {
458
+ autoInvoke = true;
459
+ } else if (topMatch && topMatch.score >= 2 && matches.length === 1 && (result.confidence ?? 0) < 0.7) {
460
+ // Single strong skill match with weak agent routing = skill should take over
461
+ autoInvoke = true;
462
+ }
463
+
464
+ if (autoInvoke) {
465
+ output.push('');
466
+ output.push('+======== SKILL AUTO-ACTIVATED (high confidence match) ========+');
467
+ output.push('| ' + topMatch.invoke.substring(0, 61).padEnd(61) + '|');
468
+ output.push('| INSTRUCTION: Invoke ' + topMatch.invoke.substring(0, 41).padEnd(41) + '|');
469
+ output.push('| BEFORE responding. This skill matched with very high |');
470
+ output.push('| confidence — do not skip it. |');
471
+ output.push('+==============================================================+');
472
+ } else {
473
+ output.push('');
474
+ if ((result.confidence ?? 0) < 0.8) {
475
+ output.push('+----------- Skill Suggestions (pick one if relevant) ---------+');
476
+ output.push('| No strong primary match — here are the best skill candidates |');
477
+ } else {
478
+ output.push('+----------- Matching Skills (invoke via Skill tool) ----------+');
479
+ }
480
+ matches.forEach(function(m, i) {
481
+ var label = (i + 1) + '. ' + m.skill;
482
+ var desc = (m.description || '').substring(0, 30);
483
+ var line = '| ' + label.substring(0, 30).padEnd(30) + desc.padEnd(30) + ' |';
484
+ output.push(line);
485
+ output.push('| invoke: ' + m.invoke.substring(0, 51).padEnd(51) + '|');
486
+ });
487
+ output.push('+--------------------------------------------------------------+');
488
+ if ((result.confidence ?? 0) < 0.8) {
489
+ output.push('| To use a skill: call Skill("skill-name") before responding. |');
490
+ output.push('+--------------------------------------------------------------+');
491
+ }
492
+ }
493
+ }
494
+
495
+ // ── Specific agent panel ──────────────────────────────────────────────────
496
+ var specificAgents = result.specificAgents || [];
497
+ if (specificAgents.length > 0) {
498
+ output.push('');
499
+ var saHdr = '------- Specific Agents (' + specificAgents.length + ' available) ';
500
+ output.push('+' + saHdr + '-'.repeat(Math.max(1, 62 - saHdr.length)) + '+');
501
+ specificAgents.forEach(function(a, i) {
502
+ var label = (i + 1) + '. ' + a.label;
503
+ var note = (a.note || '').substring(0, 26);
504
+ output.push('| ' + label.substring(0, 33).padEnd(33) + note.padEnd(27) + ' |');
505
+ if (a.slug) {
506
+ output.push('| slug: ' + a.slug.substring(0, 52).padEnd(52) + ' |');
507
+ }
508
+ });
509
+ output.push('+--------------------------------------------------------------+');
510
+ output.push('| Use: Task({ subagent_type: "<slug>" }) or /specialagent |');
511
+ output.push('+--------------------------------------------------------------+');
512
+ }
513
+
514
+ // ── Specialist agents (non-dev domain) — only shown when specificAgents panel wasn't shown ──
515
+ var extras = result.extrasMatches || [];
516
+ var specificAgentsShown = (result.specificAgents || []).length > 0;
517
+ if (extras.length > 0 && !specificAgentsShown) {
518
+ output.push('');
519
+ var spHdr = '------- Specialist Agents (' + extras.length + ' matched) ';
520
+ output.push('+' + spHdr + '-'.repeat(Math.max(1, 62 - spHdr.length)) + '+');
521
+ extras.slice(0, 5).forEach(function(e, i) {
522
+ var label = (i + 1) + '. ' + e.name;
523
+ var cat = '[' + e.category + ']';
524
+ output.push('| ' + label.substring(0, 44).padEnd(44) + cat.substring(0, 16).padEnd(16) + ' |');
525
+ output.push('| slug: ' + e.slug.substring(0, 52).padEnd(52) + ' |');
526
+ });
527
+ output.push('+--------------------------------------------------------------+');
528
+ output.push('| Use: Task({ subagent_type: "<slug>" }) or /specialagent |');
529
+ output.push('+--------------------------------------------------------------+');
530
+ }
531
+
532
+ // ── MicroAgent Trigger Scan (Task 32) ──────────────────────────────
533
+ try {
534
+ var triggerResult = scanMicroAgentTriggers(typeof prompt === 'string' ? prompt : '');
535
+ if (triggerResult.matches.length > 0) {
536
+ output.push('');
537
+ if (triggerResult.takeoverAgent) {
538
+ var tAgent = triggerResult.takeoverAgent;
539
+ var tKw = triggerResult.matches[0].matchedText;
540
+ output.push('+============= MicroAgent TAKEOVER Detected ===================+');
541
+ output.push('| Specialist: ' + tAgent.substring(0, 49).padEnd(49) + '|');
542
+ output.push('| Keyword: ' + ('"' + tKw + '"').substring(0, 49).padEnd(49) + '|');
543
+ output.push('| Recommended: use this specialist instead of primary agent. |');
544
+ output.push('+==============================================================+');
545
+ } else {
546
+ output.push('+------- MicroAgent Specialists Triggered ---------------------+');
547
+ triggerResult.matches.forEach(function(m) {
548
+ var slug = m.agentSlug.substring(0, 37).padEnd(37);
549
+ var kw = ('(match: "' + m.matchedText + '")').substring(0, 21).padEnd(21);
550
+ output.push('| + ' + slug + kw + ' |');
551
+ });
552
+ output.push('+--------------------------------------------------------------+');
553
+ }
554
+ // Persist trigger matches alongside route result
555
+ try {
556
+ var routeFile = path.join(CWD, '.monomind', 'last-route.json');
557
+ var existing = JSON.parse(fs.readFileSync(routeFile, 'utf-8'));
558
+ existing.microAgents = { injectAgents: triggerResult.injectAgents || [], takeoverAgent: triggerResult.takeoverAgent || null };
559
+ fs.writeFileSync(routeFile, JSON.stringify(existing), 'utf-8');
560
+ } catch (e) {}
561
+ }
562
+ } catch (e) { /* non-fatal */ }
563
+
564
+ console.log(output.join('\n'));
565
+
566
+ // Swarm mode selection is available on-demand via /mastermind slash command.
567
+ } else {
568
+ console.log('[INFO] Router not available, using default routing');
569
+ }
570
+
571
+ // Task 22: TeamRoutingModes — only log when an explicit swarm config is present
572
+ try {
573
+ var swarmCfgPath = path.join(CWD, '.monomind', 'swarm-config.json');
574
+ if (fs.existsSync(swarmCfgPath)) {
575
+ var topology22 = JSON.parse(fs.readFileSync(swarmCfgPath, 'utf-8')).topology || 'mesh';
576
+ var mode22 = topology22 === 'hierarchical' ? 'route' : 'coordinate';
577
+ console.log('[ROUTING_MODE] topology=' + topology22 + ' → mode=' + mode22);
578
+ }
579
+ } catch (e) { /* non-fatal */ }
580
+ },
581
+
582
+ 'load-agent': () => {
583
+ // Load and print full agent text so Claude can adopt its identity
584
+ const slug = args.join(' ').trim() || (typeof prompt === 'string' ? prompt.trim() : '');
585
+ if (!router || !router.loadExtrasAgent) {
586
+ console.error('[ERROR] Router does not support loadExtrasAgent');
587
+ process.exit(1);
588
+ }
589
+ const agent = router.loadExtrasAgent(slug);
590
+ if (!agent) {
591
+ console.error('[ERROR] Extras agent not found: ' + slug);
592
+ console.error('Run: node .claude/helpers/router.cjs --load-agent <slug> to check available slugs');
593
+ process.exit(1);
594
+ }
595
+ console.log('=== AGENT ACTIVATED: ' + agent.name + ' [' + agent.category + '] ===');
596
+ console.log('');
597
+ console.log(agent.content);
598
+ console.log('');
599
+ console.log('=== END AGENT: ' + agent.name + ' ===');
600
+ console.log('INSTRUCTION: You are now ' + agent.name + '. Adopt the identity, tone, and expertise described above for the remainder of this task.');
601
+
602
+ // Persist active agent for statusline
603
+ try {
604
+ var routeDir = path.join(CWD, '.monomind');
605
+ fs.mkdirSync(routeDir, { recursive: true });
606
+ fs.writeFileSync(
607
+ path.join(routeDir, 'last-route.json'),
608
+ JSON.stringify({
609
+ agent: agent.slug,
610
+ name: agent.name,
611
+ category: agent.category,
612
+ confidence: 1.0,
613
+ reason: 'manually activated via load-agent',
614
+ activated: true,
615
+ updatedAt: new Date().toISOString(),
616
+ }),
617
+ 'utf-8'
618
+ );
619
+ } catch (e) { /* non-fatal */ }
620
+ },
621
+
622
+ 'list-extras': () => {
623
+ if (!router || !router.loadExtrasRegistry) {
624
+ console.error('[ERROR] Extras registry not available');
625
+ process.exit(1);
626
+ }
627
+ const registry = router.loadExtrasRegistry();
628
+ const category = args[0] || '';
629
+ const entries = category
630
+ ? registry.extras.filter(e => e.category === category)
631
+ : registry.extras;
632
+ const byCategory = {};
633
+ for (const e of entries) {
634
+ if (!byCategory[e.category]) byCategory[e.category] = [];
635
+ byCategory[e.category].push(e);
636
+ }
637
+ for (const [cat, agents] of Object.entries(byCategory)) {
638
+ console.log('\n[' + cat.toUpperCase() + ']');
639
+ for (const a of agents) {
640
+ console.log(' ' + a.slug.padEnd(45) + a.name);
641
+ }
642
+ }
643
+ console.log('\nTotal: ' + entries.length + ' extras agents');
644
+ },
645
+
646
+ 'pre-bash': () => {
647
+ var _rawCmd = hookInput.command || prompt;
648
+ var cmd = (typeof _rawCmd === 'string' ? _rawCmd : String(_rawCmd || '')).toLowerCase();
649
+ var dangerous = ['rm -rf /', 'rm -rf/', 'format c:', 'del /s /q c:\\', ':(){:|:&};:'];
650
+ for (var i = 0; i < dangerous.length; i++) {
651
+ if (cmd.includes(dangerous[i])) {
652
+ console.error('[BLOCKED] Dangerous command detected: ' + dangerous[i]);
653
+ process.exit(1);
654
+ }
655
+ }
656
+ console.log('[OK] Command validated');
657
+ },
658
+
659
+ 'post-edit': () => {
660
+ if (session && session.metric) {
661
+ try { session.metric('edits'); } catch (e) { /* no active session */ }
662
+ }
663
+ if (intelligence && intelligence.recordEdit) {
664
+ try {
665
+ var file = hookInput.file_path || toolInput.file_path
666
+ || process.env.TOOL_INPUT_file_path || args[0] || '';
667
+ intelligence.recordEdit(file);
668
+ } catch (e) { /* non-fatal */ }
669
+ }
670
+ // ── Security-Sensitive File Auto-Alert ────────────────────────────────
671
+ // When editing auth, security, crypto, or env-related files, flag it
672
+ try {
673
+ var editFile = (hookInput.file_path || toolInput.file_path
674
+ || process.env.TOOL_INPUT_file_path || args[0] || '').toLowerCase();
675
+ var securityPatterns = /\b(auth|security|crypto|secret|credential|token|password|\.env|permission|acl|rbac|jwt|oauth|session|cookie)\b/;
676
+ if (securityPatterns.test(editFile) || editFile.includes('/security/') || editFile.includes('/auth/')) {
677
+ console.log('[SECURITY_EDIT] Security-sensitive file modified: ' + path.basename(editFile));
678
+ console.log('[SECURITY_EDIT] INSTRUCTION: Consider running a security review. Invoke Skill("code-review:code-review") with security focus, or run: npx monomind security scan --path "' + editFile + '"');
679
+ }
680
+ } catch (e) { /* non-fatal */ }
681
+
682
+ // ── Smart Test/Build Suggestions (PE-001) ───────────────────────────
683
+ try {
684
+ var editFile = (hookInput.file_path || toolInput.file_path
685
+ || process.env.TOOL_INPUT_file_path || args[0] || '');
686
+ var editBase = path.basename(editFile).toLowerCase();
687
+ var editDir = path.dirname(editFile);
688
+ if (/\.(test|spec)\.(ts|js|tsx|jsx)$/.test(editBase)) {
689
+ console.log('[AUTO_SUGGEST] Test file modified — run: npm test -- --testPathPattern="' + path.basename(editFile) + '"');
690
+ } else if (editBase === 'package.json') {
691
+ console.log('[AUTO_SUGGEST] package.json changed — consider running: npm install');
692
+ } else if (editBase === 'tsconfig.json' || editBase === 'tsconfig.base.json') {
693
+ console.log('[AUTO_SUGGEST] TypeScript config changed — consider running: npm run build');
694
+ }
695
+ } catch (e) { /* non-fatal */ }
696
+
697
+ console.log('[OK] Edit recorded');
698
+ },
699
+
700
+ 'session-restore': async () => {
701
+ try {
702
+ if (session) {
703
+ var existing = session.restore && session.restore();
704
+ if (!existing) {
705
+ session.start && session.start();
706
+ }
707
+ } else {
708
+ console.log('[OK] Session restored: session-' + Date.now());
709
+ }
710
+ } catch (e) { console.log('[WARN] Session restore failed: ' + e.message); }
711
+ // Initialize intelligence (with timeout — #1530)
712
+ // Respects monomind.neural.enabled kill switch from settings.json
713
+ var neuralEnabled = true;
714
+ try {
715
+ var settingsPath = path.join(CWD, '.claude', 'settings.json');
716
+ if (fs.existsSync(settingsPath)) {
717
+ var settingsData = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
718
+ if (settingsData.monomind && settingsData.monomind.neural && settingsData.monomind.neural.enabled === false) {
719
+ neuralEnabled = false;
720
+ console.log('[NEURAL] Disabled via monomind.neural.enabled=false');
721
+ }
722
+ }
723
+ } catch (e) { /* non-fatal */ }
724
+ if (neuralEnabled && intelligence && intelligence.init) {
725
+ var initResult = await runWithTimeout(function() { return intelligence.init(); }, 'intelligence.init()');
726
+ if (initResult && initResult.nodes > 0) {
727
+ console.log('[INTELLIGENCE] Loaded ' + initResult.nodes + ' patterns, ' + initResult.edges + ' edges');
728
+ }
729
+ }
730
+ // GAP-001: Bridge hook-handler.cjs to @monomind/hooks compiled packages.
731
+ // Dynamic import() resolves ESM packages even from CJS — failures are silent.
732
+ try {
733
+ var hooksModule = await import('@monomind/hooks');
734
+ if (hooksModule && hooksModule.initDefaultWorkers) {
735
+ await runWithTimeout(function() { return hooksModule.initDefaultWorkers(); }, '@monomind/hooks.initDefaultWorkers()');
736
+ // Store reference so pre-task / post-task can call executeHooks (Tasks 26, 39)
737
+ _hooksModule = hooksModule;
738
+ console.log('[INFO] @monomind/hooks workers initialized');
739
+ }
740
+ } catch (e) { /* @monomind/hooks not compiled yet — skip */ }
741
+
742
+ // ── Context Persistence Auto-Restore ───────────────────────────────────
743
+ // Restore archived conversation context from previous sessions
744
+ try {
745
+ var cpHook = await import('file://' + path.join(__dirname, 'context-persistence-hook.mjs'));
746
+ var restoreFn = (cpHook && cpHook.restore) || (cpHook && cpHook.default && cpHook.default.restore);
747
+ if (restoreFn) {
748
+ var restored = await runWithTimeout(function() { return restoreFn(); }, 'context-persistence.restore()');
749
+ if (restored && restored.turns > 0) {
750
+ console.log('[CONTEXT_RESTORED] ' + restored.turns + ' turns from previous session');
751
+ }
752
+ }
753
+ } catch (e) { /* non-fatal — context-persistence may not be available */ }
754
+
755
+ // Task 28: AgentKnowledgeBase — preload shared knowledge context on session restore.
756
+ // Self-contained: auto-indexes project docs into chunks.jsonl, then keyword-searches
757
+ // them. Works without @monomind/memory being compiled. Falls back to KnowledgeRetriever
758
+ // if the compiled package IS available (richer dedup + formatting).
759
+ try {
760
+ var knowledgeDir = path.join(CWD, '.monomind', 'knowledge');
761
+ var indexed = _autoIndexKnowledge(knowledgeDir);
762
+ if (indexed > 0) {
763
+ console.log('[KNOWLEDGE_INDEXED] ' + indexed + ' chunks written from project sources');
764
+ }
765
+
766
+ var kSearchFn = _buildKnowledgeSearchFn(knowledgeDir);
767
+ var sessionCtx = (hookInput && (hookInput.sessionId || hookInput.session_id))
768
+ ? 'session context: ' + (hookInput.sessionId || hookInput.session_id)
769
+ : 'project context general';
770
+
771
+ // Prefer compiled KnowledgeRetriever for dedup + formatting; inline fallback otherwise
772
+ var memoryMod = null;
773
+ try { memoryMod = await import('@monomind/memory'); } catch (e) {}
774
+
775
+ if (memoryMod && memoryMod.KnowledgeStore && memoryMod.KnowledgeRetriever) {
776
+ var kStore = new memoryMod.KnowledgeStore(knowledgeDir);
777
+ var kRetriever = new memoryMod.KnowledgeRetriever(kSearchFn, kStore);
778
+ var kResult = await kRetriever.retrieveForTask('shared', sessionCtx, 5);
779
+ if (kResult.excerpts.length > 0) {
780
+ console.log('[KNOWLEDGE_PRELOADED] ' + kResult.excerpts.length + ' excerpts (KnowledgeRetriever)');
781
+ }
782
+ } else {
783
+ // Inline fallback — no compiled deps needed
784
+ var directResults = await kSearchFn(sessionCtx, { namespace: 'knowledge:shared', limit: 5, minScore: 0.3 });
785
+ if (directResults.length > 0) {
786
+ console.log('[KNOWLEDGE_PRELOADED] ' + directResults.length + ' excerpts (direct keyword search)');
787
+ }
788
+ }
789
+ } catch (e) { /* non-fatal */ }
790
+
791
+ // Task 23: SharedInstructions — auto-load .agents/shared_instructions.md on session restore
792
+ // Hard limit: 1500 chars (~375 tokens). Content beyond this is truncated and flagged.
793
+ var SI_CHAR_LIMIT = 1500;
794
+ var applySharedInstrLimit = function(content, source) {
795
+ if (content.length > SI_CHAR_LIMIT) {
796
+ console.warn('[SHARED_INSTRUCTIONS_OVERLIMIT] ' + content.length + ' chars exceeds limit of ' + SI_CHAR_LIMIT +
797
+ ' — truncating. Edit ' + source + ' to stay under limit.');
798
+ return content.slice(0, SI_CHAR_LIMIT) + '\n… [truncated — file exceeds ' + SI_CHAR_LIMIT + ' char limit]';
799
+ }
800
+ return content;
801
+ };
802
+ try {
803
+ var siMod = await import('file://' + path.join(CWD, 'packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js'));
804
+ var loader = siMod.sharedInstructionsLoader || (siMod.SharedInstructionsLoader ? new siMod.SharedInstructionsLoader() : null);
805
+ if (loader) {
806
+ var sharedInstr = loader.getSharedInstructions(CWD);
807
+ if (sharedInstr) {
808
+ var sharedInstrSafe = applySharedInstrLimit(sharedInstr, '.agents/shared_instructions.md');
809
+ console.log('[SHARED_INSTRUCTIONS] Loaded ' + sharedInstrSafe.length + ' chars from .agents/shared_instructions.md');
810
+ console.log(sharedInstrSafe);
811
+ }
812
+ }
813
+ } catch (e) {
814
+ // Try direct filesystem fallback
815
+ try {
816
+ var siPath = path.join(CWD, '.agents', 'shared_instructions.md');
817
+ if (fs.existsSync(siPath)) {
818
+ var siContent = fs.readFileSync(siPath, 'utf-8');
819
+ var siContentSafe = applySharedInstrLimit(siContent, siPath);
820
+ console.log('[SHARED_INSTRUCTIONS] Loaded ' + siContentSafe.length + ' chars from .agents/shared_instructions.md');
821
+ console.log(siContentSafe);
822
+ }
823
+ } catch (e2) { /* non-fatal */ }
824
+ }
825
+
826
+ // Memory Palace — inject L0 (identity) + L1 (essential story) into session context
827
+ try {
828
+ var palace = require('./memory-palace.cjs');
829
+ var palaceContext = palace.wakeUp(CWD);
830
+ if (palaceContext) {
831
+ console.log(palaceContext);
832
+ }
833
+ } catch (e) { /* non-fatal — palace not available */ }
834
+
835
+ // ── Periodic Update Check (once per day) ──────────────────────────────
836
+ try {
837
+ var updateCheckFile = path.join(CWD, '.monomind', 'last-update-check.json');
838
+ var shouldCheck = true;
839
+ if (fs.existsSync(updateCheckFile)) {
840
+ var lastCheck = JSON.parse(fs.readFileSync(updateCheckFile, 'utf-8'));
841
+ var hoursSince = (Date.now() - new Date(lastCheck.timestamp).getTime()) / (1000 * 60 * 60);
842
+ if (hoursSince < 24) shouldCheck = false;
843
+ }
844
+ if (shouldCheck) {
845
+ // Non-blocking: write marker immediately, check asynchronously
846
+ fs.mkdirSync(path.join(CWD, '.monomind'), { recursive: true });
847
+ fs.writeFileSync(updateCheckFile, JSON.stringify({ timestamp: new Date().toISOString() }), 'utf-8');
848
+ try {
849
+ var localPkg = path.join(CWD, 'packages/@monomind/cli/package.json');
850
+ if (fs.existsSync(localPkg)) {
851
+ var localVer = JSON.parse(fs.readFileSync(localPkg, 'utf-8')).version;
852
+ if (localVer) {
853
+ // Non-blocking spawn — never holds the event loop during hook execution
854
+ var spawnFn = require('child_process').spawn;
855
+ var child = spawnFn('npm', ['view', '@monomind/cli', 'version'], {
856
+ stdio: ['ignore', 'pipe', 'ignore'],
857
+ shell: false,
858
+ });
859
+ // Required: without an error listener, ENOENT (npm not in PATH) crashes the process
860
+ child.on('error', function() {});
861
+ var out = '';
862
+ child.stdout.on('data', function(d) { out += d; });
863
+ child.on('close', function() {
864
+ var current = out.trim();
865
+ var pendingUpdatePath = path.join(CWD, '.monomind', 'pending-update.json');
866
+ if (current && current !== localVer) {
867
+ // Write result to a sidecar file — picked up on next session-start
868
+ try {
869
+ fs.writeFileSync(
870
+ pendingUpdatePath,
871
+ JSON.stringify({ from: localVer, to: current, checkedAt: new Date().toISOString() }),
872
+ 'utf-8'
873
+ );
874
+ } catch (e2) {}
875
+ } else if (current) {
876
+ // Versions match — clear any stale notification so it doesn't show forever
877
+ try { fs.unlinkSync(pendingUpdatePath); } catch (e2) {}
878
+ }
879
+ });
880
+ child.unref();
881
+ }
882
+ }
883
+ } catch (e) { /* npm not available — skip silently */ }
884
+ }
885
+ // Surface any previously-detected update on every session restore (not just on check day)
886
+ try {
887
+ var pendingUpdate = path.join(CWD, '.monomind', 'pending-update.json');
888
+ if (fs.existsSync(pendingUpdate)) {
889
+ var upd = JSON.parse(fs.readFileSync(pendingUpdate, 'utf-8'));
890
+ if (upd && upd.from && upd.to && upd.from !== upd.to) {
891
+ console.log('[UPDATE_AVAILABLE] @monomind/cli ' + upd.from + ' → ' + upd.to + ' (run: npx monomind update)');
892
+ }
893
+ }
894
+ } catch (e) {}
895
+ } catch (e) { /* non-fatal */ }
896
+
897
+ // ── Daemon Auto-Start Check ────────────────────────────────────────────
898
+ // If daemon is not running, suggest starting it (or auto-start if config says so)
899
+ try {
900
+ var daemonPid = path.join(CWD, '.monomind', 'daemon.pid');
901
+ var daemonRunning = false;
902
+ if (fs.existsSync(daemonPid)) {
903
+ try {
904
+ var pid = parseInt(fs.readFileSync(daemonPid, 'utf-8').trim(), 10);
905
+ process.kill(pid, 0); // throws if process doesn't exist
906
+ daemonRunning = true;
907
+ } catch (e) { /* pid stale */ }
908
+ }
909
+ if (!daemonRunning) {
910
+ // Check config for autoStart preference
911
+ var daemonCfg = {};
912
+ try {
913
+ var cfgPath = path.join(CWD, 'monomind.config.json');
914
+ if (fs.existsSync(cfgPath)) daemonCfg = JSON.parse(fs.readFileSync(cfgPath, 'utf-8')).daemon || {};
915
+ } catch (e) {}
916
+ if (daemonCfg.autoStart) {
917
+ // Auto-start daemon in background
918
+ var spawn = require('child_process').spawn;
919
+ var child = spawn('npx', ['monomind', 'daemon', 'start'], {
920
+ cwd: CWD, detached: true, stdio: 'ignore'
921
+ });
922
+ child.on('error', function() {});
923
+ child.unref();
924
+ console.log('[DAEMON_AUTOSTART] Background daemon started (pid ' + child.pid + ')');
925
+ } else {
926
+ console.log('[DAEMON_STOPPED] Background daemon is not running. To auto-start, set daemon.autoStart=true in monomind.config.json or run: npx monomind daemon start');
927
+ }
928
+ }
929
+ } catch (e) { /* non-fatal */ }
930
+
931
+ // Token Usage — inject daily/monthly cost summary from JSONL session logs
932
+ try {
933
+ var tokenTracker = require('./token-tracker.cjs');
934
+ var tokenSummary = tokenTracker.quickSummary();
935
+ if (tokenSummary) {
936
+ console.log(tokenSummary);
937
+ }
938
+ // Write structured cache for statusline (best-effort, non-blocking)
939
+ try {
940
+ var tokenData = tokenTracker.quickSummaryData();
941
+ if (tokenData) {
942
+ var metricsDir = path.join(CWD, '.monomind', 'metrics');
943
+ if (!fs.existsSync(metricsDir)) fs.mkdirSync(metricsDir, { recursive: true });
944
+ tokenData.cachedAt = new Date().toISOString();
945
+ fs.writeFileSync(path.join(metricsDir, 'token-summary.json'), JSON.stringify(tokenData), 'utf-8');
946
+ }
947
+ } catch (_) { /* ignore cache write failure */ }
948
+ } catch (e) { /* non-fatal — token tracker not available */ }
949
+
950
+ // ── Registry Surfacing (SR-001) ─────────────────────────────────────
951
+ // Show agent registry summary so users know what's available
952
+ try {
953
+ var regPath = path.join(CWD, '.monomind', 'registry.json');
954
+ if (fs.existsSync(regPath)) {
955
+ var reg = JSON.parse(fs.readFileSync(regPath, 'utf-8'));
956
+ var agentCount = (reg.agents || []).length;
957
+ if (agentCount > 0) {
958
+ console.log('[REGISTRY] ' + agentCount + ' agents available in registry');
959
+ }
960
+ }
961
+ } catch (e) { /* non-fatal */ }
962
+
963
+ // ── Worker Queue Resume (SR-003) ────────────────────────────────────
964
+ try {
965
+ var dispatchDir = path.join(CWD, '.monomind', 'worker-dispatch');
966
+ if (fs.existsSync(dispatchDir)) {
967
+ var pendingFiles = fs.readdirSync(dispatchDir).filter(function(f) { return f.startsWith('pending-'); });
968
+ if (pendingFiles.length > 0) {
969
+ console.log('[WORKER_RESUME] ' + pendingFiles.length + ' worker dispatch(es) pending from prior session');
970
+ }
971
+ }
972
+ } catch (e) { /* non-fatal */ }
973
+ },
974
+
975
+ 'session-end': async () => {
976
+ // Consolidate intelligence (with timeout — #1530)
977
+ if (intelligence && intelligence.consolidate) {
978
+ var consResult = await runWithTimeout(function() { return intelligence.consolidate(); }, 'intelligence.consolidate()');
979
+ if (consResult && consResult.entries > 0) {
980
+ var msg = '[INTELLIGENCE] Consolidated: ' + consResult.entries + ' entries, ' + consResult.edges + ' edges';
981
+ if (consResult.newEntries > 0) msg += ', ' + consResult.newEntries + ' new';
982
+ msg += ', PageRank recomputed';
983
+ console.log(msg);
984
+ }
985
+ }
986
+ try {
987
+ if (session && session.end) {
988
+ session.end();
989
+ } else {
990
+ console.log('[OK] Session ended');
991
+ }
992
+ } catch (e) { console.log('[WARN] Session end failed: ' + e.message); }
993
+
994
+ // ── Routing Feedback Loop (SE-001) ────────────────────────────────────
995
+ // Persist routing accuracy feedback so the router improves over sessions
996
+ try {
997
+ var feedbackPath = path.join(CWD, '.monomind', 'routing-feedback.jsonl');
998
+ var lastRoutePath = path.join(CWD, '.monomind', 'last-route.json');
999
+ if (fs.existsSync(lastRoutePath)) {
1000
+ var lastRoute = JSON.parse(fs.readFileSync(lastRoutePath, 'utf-8'));
1001
+ var feedbackEntry = {
1002
+ timestamp: new Date().toISOString(),
1003
+ suggestedAgent: lastRoute.agent,
1004
+ confidence: lastRoute.confidence,
1005
+ sessionId: hookInput.sessionId || hookInput.session_id || '',
1006
+ // If intelligence gave feedback during session, it's recorded here
1007
+ intelligenceFeedback: (intelligence && intelligence.getSessionStats) ? intelligence.getSessionStats() : null,
1008
+ };
1009
+ fs.appendFileSync(feedbackPath, JSON.stringify(feedbackEntry) + '\n', 'utf-8');
1010
+ // Rotate: keep last 1000 lines to prevent unbounded growth
1011
+ try {
1012
+ var raw = fs.readFileSync(feedbackPath, 'utf-8');
1013
+ var lines = raw.split('\n').filter(Boolean);
1014
+ if (lines.length > 1000) {
1015
+ fs.writeFileSync(feedbackPath, lines.slice(-1000).join('\n') + '\n', 'utf-8');
1016
+ }
1017
+ } catch (e2) { /* rotation is best-effort */ }
1018
+ }
1019
+ } catch (e) { /* non-fatal */ }
1020
+
1021
+ // Memory Palace tombstone writes removed — redundant with raw session JSONL
1022
+
1023
+ // ── Learning Service Auto-Consolidation ─────────────────────────────
1024
+ // Consolidate learned patterns from short-term to long-term storage
1025
+ try {
1026
+ var learningService = await import('file://' + path.join(__dirname, 'learning-service.mjs'));
1027
+ if (learningService && learningService.consolidate) {
1028
+ var lResult = await runWithTimeout(function() { return learningService.consolidate(); }, 'learning.consolidate()');
1029
+ if (lResult && lResult.promoted > 0) {
1030
+ console.log('[LEARNING] Consolidated: ' + lResult.promoted + ' patterns promoted to long-term');
1031
+ }
1032
+ } else if (learningService && learningService.default && learningService.default.consolidate) {
1033
+ var lResult2 = await runWithTimeout(function() { return learningService.default.consolidate(); }, 'learning.consolidate()');
1034
+ if (lResult2 && lResult2.promoted > 0) {
1035
+ console.log('[LEARNING] Consolidated: ' + lResult2.promoted + ' patterns promoted to long-term');
1036
+ }
1037
+ }
1038
+ } catch (e) { /* non-fatal — learning-service may need better-sqlite3 */ }
1039
+
1040
+ // ── Context Persistence Auto-Archive ─────────────────────────────────
1041
+ // Archive conversation context so it survives compaction and new sessions
1042
+ try {
1043
+ var cpHook = await import('file://' + path.join(__dirname, 'context-persistence-hook.mjs'));
1044
+ if (cpHook && cpHook.archive) {
1045
+ await runWithTimeout(function() { return cpHook.archive(); }, 'context-persistence.archive()');
1046
+ console.log('[CONTEXT_PERSIST] Session transcript archived');
1047
+ } else if (cpHook && cpHook.default && cpHook.default.archive) {
1048
+ await runWithTimeout(function() { return cpHook.default.archive(); }, 'context-persistence.archive()');
1049
+ console.log('[CONTEXT_PERSIST] Session transcript archived');
1050
+ }
1051
+ } catch (e) { /* non-fatal — context-persistence may not export archive() */ }
1052
+
1053
+ // ── Worker Queue Cleanup ─────────────────────────────────────────────
1054
+ // Process and clean up any pending worker dispatch files
1055
+ try {
1056
+ var dispatchDir = path.join(CWD, '.monomind', 'worker-dispatch');
1057
+ if (fs.existsSync(dispatchDir)) {
1058
+ var pending = fs.readdirSync(dispatchDir).filter(function(f) { return f.startsWith('pending-'); });
1059
+ if (pending.length > 0) {
1060
+ console.log('[WORKER_CLEANUP] ' + pending.length + ' worker dispatch(es) pending from this session');
1061
+ }
1062
+ // Move to processed
1063
+ var processedDir = path.join(dispatchDir, 'processed');
1064
+ fs.mkdirSync(processedDir, { recursive: true });
1065
+ pending.forEach(function(f) {
1066
+ try {
1067
+ fs.renameSync(path.join(dispatchDir, f), path.join(processedDir, f));
1068
+ } catch (e) { /* ignore */ }
1069
+ });
1070
+ // Trim processed/ to last 200 files to prevent unbounded growth
1071
+ try {
1072
+ var processedFiles = fs.readdirSync(processedDir)
1073
+ .filter(function(f) { return f.startsWith('pending-'); })
1074
+ .map(function(f) { var fp = path.join(processedDir, f); var mt = 0; try { mt = fs.statSync(fp).mtimeMs; } catch(e2){} return { f: f, mt: mt }; })
1075
+ .sort(function(a, b) { return a.mt - b.mt; });
1076
+ if (processedFiles.length > 200) {
1077
+ processedFiles.slice(0, processedFiles.length - 200).forEach(function(item) {
1078
+ try { fs.unlinkSync(path.join(processedDir, item.f)); } catch (e2) { /* ignore */ }
1079
+ });
1080
+ }
1081
+ } catch (e2) { /* non-fatal */ }
1082
+ }
1083
+ } catch (e) { /* non-fatal */ }
1084
+ },
1085
+
1086
+ 'pre-task': async () => {
1087
+ if (session && session.metric) {
1088
+ try { session.metric('tasks'); } catch (e) { /* no active session */ }
1089
+ }
1090
+
1091
+ // ── Task 27: PerRunModelTier — inline complexity scoring ───────────────
1092
+ var taskStr = typeof prompt === 'string' ? prompt : '';
1093
+ if (taskStr) {
1094
+ var score = 50;
1095
+ var lower = taskStr.toLowerCase();
1096
+ var words = taskStr.trim().split(/\s+/).length;
1097
+ if (words < 20) score -= 20;
1098
+ if (words > 100) score += 20;
1099
+ if (words > 200) score += 10;
1100
+ var highKw = ['architecture','distributed','security audit','cve','consensus','fault-tolerant','migrate','refactor across','orchestrat','design system','database schema','performance optim','threat model','encryption','zero-knowledge'];
1101
+ var lowKwRe = /\b(format|list|rename|sort|typo|lint|log|comment|print|echo|delete unused|remove import)\b/i;
1102
+ if (highKw.some(function(k) { return lower.includes(k); })) score += 10;
1103
+ if (lowKwRe.test(lower)) score -= 10;
1104
+ if (/(?:step\s*\d|first[\s,].*then[\s,]|phase\s*\d)/i.test(taskStr)) score += 10;
1105
+ if (/```[\s\S]*?```/.test(taskStr) || /\b[\w.-]+\/[\w./-]+\b/.test(taskStr)) score += 5;
1106
+ score = Math.max(0, Math.min(100, score));
1107
+ var tier = score < 30 ? 'haiku' : score > 70 ? 'opus' : 'sonnet';
1108
+ console.log('[TASK_MODEL_RECOMMENDATION] Use model="' + tier + '" (complexity=' + score + ')');
1109
+ }
1110
+ // Task 06: AutoRetry — signal retry policy only if coordinator path is active
1111
+ if (hookInput.swarmCoordinator || hookInput.coordinator || hookInput.useRetry) {
1112
+ console.log('[AUTO_RETRY_ENABLED] maxAttempts=3 strategy=exponential-backoff backoffMs=1000');
1113
+ }
1114
+
1115
+ if (router && prompt) {
1116
+ var routeFn = router.routeTaskSemantic || router.routeTask;
1117
+ var result = await Promise.resolve(routeFn(prompt));
1118
+ console.log('[INFO] Task routed to: ' + result.agent + ' (confidence: ' + result.confidence + ')');
1119
+ } else {
1120
+ console.log('[OK] Task started');
1121
+ }
1122
+
1123
+ // Task 24: PromptVersioning — resolve prompt variant before agent spawn
1124
+ try {
1125
+ var memMod = await import('@monomind/memory');
1126
+ if (memMod && memMod.PromptVersionStore) {
1127
+ var pvStore = new memMod.PromptVersionStore(path.join(CWD, '.monomind', 'prompt-versions'));
1128
+ var pvMod = await import('file://' + path.join(CWD, 'packages/@monomind/cli/dist/src/agents/prompt-experiment.js'));
1129
+ if (pvMod && pvMod.PromptExperimentRouter) {
1130
+ var pvRouter = new pvMod.PromptExperimentRouter(pvStore);
1131
+ var agentSlug24 = hookInput.agentSlug || hookInput.agentType || hookInput.agent_type || 'unknown';
1132
+ if (agentSlug24 !== 'unknown') {
1133
+ var resolved = pvRouter.resolvePromptForSpawn(agentSlug24);
1134
+ if (resolved.version) {
1135
+ console.log('[PROMPT_VERSION] ' + agentSlug24 + ' v' + resolved.version + (resolved.isCandidate ? ' (experiment candidate)' : ''));
1136
+ }
1137
+ }
1138
+ }
1139
+ }
1140
+ } catch (e) { /* not available or no experiment */ }
1141
+
1142
+ // Bridge to @monomind/hooks registry — fires Tasks 26 (PromptAssembler) and any other PreTask hooks
1143
+ if (_hooksModule && _hooksModule.executeHooks && _hooksModule.HookEvent) {
1144
+ try {
1145
+ await _hooksModule.executeHooks(_hooksModule.HookEvent.PreTask, {
1146
+ task: typeof prompt === 'string' ? { description: prompt, id: hookInput.taskId || '' } : null,
1147
+ sessionId: hookInput.sessionId || hookInput.session_id || 'default',
1148
+ }, { continueOnError: true, timeout: 2000 });
1149
+ } catch (e) { /* non-fatal */ }
1150
+ }
1151
+ },
1152
+
1153
+ 'post-task': async () => {
1154
+ var taskSuccess = hookInput.success !== false && hookInput.status !== 'failed';
1155
+ if (intelligence && intelligence.feedback) {
1156
+ try {
1157
+ intelligence.feedback(true);
1158
+ } catch (e) { /* non-fatal */ }
1159
+ }
1160
+ // Each TeammateIdle/TaskCompleted = one agent done → remove oldest registration (FIFO)
1161
+ const regDir = path.join(CWD, '.monomind', 'agents', 'registrations');
1162
+ try {
1163
+ if (fs.existsSync(regDir)) {
1164
+ const files = fs.readdirSync(regDir).filter(f => f.endsWith('.json'));
1165
+ if (files.length > 0) {
1166
+ // Sort by mtime ascending (oldest first) and remove the oldest one
1167
+ const sorted = files
1168
+ .map(f => ({ f, mtime: (() => { try { return fs.statSync(path.join(regDir, f)).mtimeMs; } catch { return 0; } })() }))
1169
+ .sort((a, b) => a.mtime - b.mtime);
1170
+ try { fs.unlinkSync(path.join(regDir, sorted[0].f)); } catch { /* ignore */ }
1171
+ }
1172
+ // Also purge any stragglers older than 30 min
1173
+ const now = Date.now();
1174
+ for (const f of fs.readdirSync(regDir).filter(f => f.endsWith('.json'))) {
1175
+ try { if (now - fs.statSync(path.join(regDir, f)).mtimeMs > 30 * 60 * 1000) fs.unlinkSync(path.join(regDir, f)); } catch { /* ignore */ }
1176
+ }
1177
+ const remaining = fs.readdirSync(regDir).filter(f => f.endsWith('.json')).length;
1178
+ const _actPath = path.join(CWD, '.monomind', 'metrics', 'swarm-activity.json');
1179
+ let _prevLastActive = 0;
1180
+ try { _prevLastActive = (JSON.parse(fs.readFileSync(_actPath, 'utf-8'))?.swarm?.lastActive) || 0; } catch { /* ignore */ }
1181
+ fs.writeFileSync(_actPath, JSON.stringify({
1182
+ timestamp: new Date().toISOString(),
1183
+ swarm: {
1184
+ active: remaining > 0,
1185
+ agent_count: remaining,
1186
+ coordination_active: remaining > 0,
1187
+ lastActive: Math.max(remaining, _prevLastActive), // preserve peak across completion
1188
+ },
1189
+ }));
1190
+ }
1191
+ } catch (e) { /* non-fatal */ }
1192
+ // Bridge to @monomind/hooks registry — fires Tasks 39 (SpecializationScorer) and any other PostTask hooks
1193
+ if (_hooksModule && _hooksModule.executeHooks && _hooksModule.HookEvent) {
1194
+ try {
1195
+ await _hooksModule.executeHooks(_hooksModule.HookEvent.PostTask, {
1196
+ task: {
1197
+ id: hookInput.taskId || hookInput.task_id || '',
1198
+ status: taskSuccess ? 'completed' : 'failed',
1199
+ agentSlug: hookInput.agentSlug || hookInput.agent_slug || 'unknown',
1200
+ type: hookInput.taskType || hookInput.task_type || 'general',
1201
+ },
1202
+ success: taskSuccess,
1203
+ latencyMs: hookInput.latencyMs || hookInput.latency_ms || 0,
1204
+ qualityScore: hookInput.qualityScore || hookInput.quality_score,
1205
+ }, { continueOnError: true, timeout: 2000 });
1206
+ } catch (e) { /* non-fatal */ }
1207
+ }
1208
+ // Task 35: TerminationConditions — detect halted swarms via halt-signal
1209
+ try {
1210
+ var haltMod = await import('file://' + path.join(CWD, 'packages/@monomind/cli/dist/src/agents/halt-signal.js'));
1211
+ if (haltMod && haltMod.isHalted) {
1212
+ var swarmId35 = hookInput.swarmId || hookInput.swarm_id || 'default';
1213
+ if (haltMod.isHalted(swarmId35)) {
1214
+ console.warn('[HALT_DETECTED] Swarm ' + swarmId35 + ' has an active halt signal — agents should stop');
1215
+ }
1216
+ }
1217
+ } catch (e) {
1218
+ // Try direct file check
1219
+ try {
1220
+ var haltFile = path.join(CWD, 'data', 'halt-signals.jsonl');
1221
+ if (fs.existsSync(haltFile)) {
1222
+ var haltLines = fs.readFileSync(haltFile, 'utf-8').trim().split('\n').filter(Boolean);
1223
+ if (haltLines.length > 0) {
1224
+ console.warn('[HALT_DETECTED] ' + haltLines.length + ' halt signal(s) present');
1225
+ }
1226
+ }
1227
+ } catch (e2) { /* non-fatal */ }
1228
+ }
1229
+
1230
+ // Task 37: DeadLetterQueue — enqueue failed tasks when retries exhausted
1231
+ try {
1232
+ if (!taskSuccess) {
1233
+ var dlqMod = await import('file://' + path.join(CWD, 'packages/@monomind/cli/dist/src/dlq/dlq-writer.js'));
1234
+ if (dlqMod && dlqMod.DLQWriter) {
1235
+ var dlqDir = path.join(CWD, '.monomind', 'dlq');
1236
+ var dlqWriter = new dlqMod.DLQWriter(dlqDir);
1237
+ dlqWriter.enqueue({
1238
+ toolName: 'post-task',
1239
+ originalPayload: { taskId: hookInput.taskId || '', agentSlug: hookInput.agentSlug || 'unknown' },
1240
+ deliveryAttempts: [{ attempt: 1, timestamp: new Date().toISOString(), error: hookInput.error || 'task failed' }],
1241
+ agentId: hookInput.agentSlug || hookInput.agent_slug,
1242
+ swarmId: hookInput.swarmId || hookInput.swarm_id,
1243
+ });
1244
+ console.log('[DLQ_ENQUEUED] Failed task ' + (hookInput.taskId || 'unknown') + ' sent to dead-letter queue');
1245
+ }
1246
+ }
1247
+ } catch (e) { /* non-fatal */ }
1248
+
1249
+ // Memory Palace task drawer writes removed — use auto-memory files for task context
1250
+
1251
+ // ── Worker Auto-Dispatch ──────────────────────────────────────────────
1252
+ // Auto-dispatch background workers based on task outcome
1253
+ try {
1254
+ var taskDesc = (typeof prompt === 'string' ? prompt : hookInput.description || '').toLowerCase();
1255
+ var workersToDispatch = [];
1256
+
1257
+ // Always consolidate memory after any task
1258
+ workersToDispatch.push('consolidate');
1259
+
1260
+ // Security-related task → dispatch audit worker
1261
+ if (/\b(security|auth|vuln|cve|threat|token|permission|crypto)\b/.test(taskDesc)) {
1262
+ workersToDispatch.push('audit');
1263
+ }
1264
+ // Performance-related → dispatch benchmark worker
1265
+ if (/\b(performance|optimiz|benchmark|latency|throughput)\b/.test(taskDesc)) {
1266
+ workersToDispatch.push('benchmark');
1267
+ }
1268
+ // Code changes → dispatch testgaps worker
1269
+ if (/\b(implement|feature|refactor|fix|build|add|create|modify)\b/.test(taskDesc)) {
1270
+ workersToDispatch.push('testgaps');
1271
+ }
1272
+ // Any significant task → dispatch map worker for codebase indexing
1273
+ if (taskDesc.length > 50) {
1274
+ workersToDispatch.push('map');
1275
+ }
1276
+
1277
+ // Dispatch via @monomind/hooks if available, otherwise write dispatch file
1278
+ if (workersToDispatch.length > 0) {
1279
+ var dispatchDir = path.join(CWD, '.monomind', 'worker-dispatch');
1280
+ fs.mkdirSync(dispatchDir, { recursive: true });
1281
+ var dispatchPayload = {
1282
+ workers: workersToDispatch,
1283
+ trigger: 'post-task',
1284
+ taskDesc: taskDesc.substring(0, 100),
1285
+ success: taskSuccess,
1286
+ timestamp: new Date().toISOString(),
1287
+ };
1288
+ fs.writeFileSync(
1289
+ path.join(dispatchDir, 'pending-' + Date.now() + '-' + Math.random().toString(36).slice(2, 7) + '.json'),
1290
+ JSON.stringify(dispatchPayload), 'utf-8'
1291
+ );
1292
+ console.log('[WORKER_DISPATCH] Queued: ' + workersToDispatch.join(', '));
1293
+ }
1294
+ } catch (e) { /* non-fatal */ }
1295
+
1296
+ // ── ADR Auto-Generation ────────────────────────────────────────────────
1297
+ // When adr.autoGenerate is true and task involved architect-level work,
1298
+ // create an ADR stub in the configured directory
1299
+ try {
1300
+ var settingsPath = path.join(CWD, '.claude', 'settings.json');
1301
+ var adrCfg = {};
1302
+ if (fs.existsSync(settingsPath)) {
1303
+ var s = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
1304
+ adrCfg = (s.monomind && s.monomind.adr) || {};
1305
+ }
1306
+ if (adrCfg.autoGenerate) {
1307
+ var taskAgent = hookInput.agentSlug || hookInput.agent_slug || '';
1308
+ var taskDescAdr = (typeof prompt === 'string' ? prompt : hookInput.description || '').toLowerCase();
1309
+ var isArchitectLevel = ['architect', 'system-architect', 'software-architect'].includes(taskAgent)
1310
+ || /\b(architecture|design decision|adr|trade-?off|migration strategy)\b/.test(taskDescAdr);
1311
+ if (isArchitectLevel && taskDescAdr.length > 30) {
1312
+ var adrDir = path.join(CWD, adrCfg.directory || 'docs/adr');
1313
+ fs.mkdirSync(adrDir, { recursive: true });
1314
+ var adrNum = (fs.readdirSync(adrDir).filter(function(f) { return f.endsWith('.md'); }).length + 1)
1315
+ .toString().padStart(4, '0');
1316
+ var adrTitle = taskDescAdr.substring(0, 60).replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
1317
+ var adrFile = path.join(adrDir, 'ADR-' + adrNum + '-' + adrTitle + '.md');
1318
+ if (!fs.existsSync(adrFile)) {
1319
+ var adrContent = '# ADR-' + adrNum + ': ' + (typeof prompt === 'string' ? prompt.substring(0, 80) : adrTitle) + '\n\n'
1320
+ + '**Date:** ' + new Date().toISOString().slice(0, 10) + '\n'
1321
+ + '**Status:** Accepted\n'
1322
+ + '**Agent:** ' + (taskAgent || 'unknown') + '\n\n'
1323
+ + '## Context\n\nAuto-generated from task completion.\n\n'
1324
+ + '## Decision\n\n_Fill in the decision made._\n\n'
1325
+ + '## Consequences\n\n_Fill in the consequences._\n';
1326
+ fs.writeFileSync(adrFile, adrContent, 'utf-8');
1327
+ console.log('[ADR_GENERATED] ' + path.basename(adrFile));
1328
+ }
1329
+ }
1330
+ }
1331
+ } catch (e) { /* non-fatal */ }
1332
+
1333
+ console.log('[OK] Task completed');
1334
+ },
1335
+
1336
+ 'compact-manual': async () => {
1337
+ // Consolidate intelligence before compaction so patterns survive
1338
+ if (intelligence && intelligence.consolidate) {
1339
+ try { await runWithTimeout(function() { return intelligence.consolidate(); }, 'intelligence.consolidate()'); } catch (e) { /* non-fatal */ }
1340
+ }
1341
+ // Save current routing context for post-compact restore
1342
+ try {
1343
+ var lastRoute = path.join(CWD, '.monomind', 'last-route.json');
1344
+ if (fs.existsSync(lastRoute)) {
1345
+ var route = JSON.parse(fs.readFileSync(lastRoute, 'utf-8'));
1346
+ console.log('[COMPACT_CONTEXT] Last route: ' + route.agent + ' (' + (route.confidence != null ? (route.confidence * 100).toFixed(0) : '?') + '%)');
1347
+ }
1348
+ } catch (e) { /* non-fatal */ }
1349
+ console.log('[COMPACT] Manual compaction — intelligence consolidated, context preserved');
1350
+ },
1351
+
1352
+ 'compact-auto': async () => {
1353
+ // Same consolidation for auto-compact
1354
+ if (intelligence && intelligence.consolidate) {
1355
+ try { await runWithTimeout(function() { return intelligence.consolidate(); }, 'intelligence.consolidate()'); } catch (e) { /* non-fatal */ }
1356
+ }
1357
+ try {
1358
+ var lastRoute = path.join(CWD, '.monomind', 'last-route.json');
1359
+ if (fs.existsSync(lastRoute)) {
1360
+ var route = JSON.parse(fs.readFileSync(lastRoute, 'utf-8'));
1361
+ console.log('[COMPACT_CONTEXT] Last route: ' + route.agent + ' (' + (route.confidence != null ? (route.confidence * 100).toFixed(0) : '?') + '%)');
1362
+ }
1363
+ } catch (e) { /* non-fatal */ }
1364
+ console.log('[COMPACT] Auto compaction — intelligence consolidated, context preserved');
1365
+ console.log('GOLDEN RULE: 1 message = all parallel operations');
1366
+ },
1367
+
1368
+ 'agent-start': () => {
1369
+ // Called by SubagentStart hook — register this agent so the statusline can count it
1370
+ const regDir = path.join(CWD, '.monomind', 'agents', 'registrations');
1371
+ try {
1372
+ fs.mkdirSync(regDir, { recursive: true });
1373
+ const id = Date.now() + '-' + Math.random().toString(36).slice(2, 6);
1374
+ const regFile = path.join(regDir, 'agent-' + id + '.json');
1375
+ fs.writeFileSync(regFile, JSON.stringify({
1376
+ agentId: id,
1377
+ startedAt: new Date().toISOString(),
1378
+ pid: process.pid,
1379
+ }));
1380
+ // Also refresh swarm-activity.json so it's within the 5-min staleness window
1381
+ const activityDir = path.join(CWD, '.monomind', 'metrics');
1382
+ fs.mkdirSync(activityDir, { recursive: true });
1383
+ const activityPath = path.join(activityDir, 'swarm-activity.json');
1384
+ const active = fs.readdirSync(regDir).filter(f => f.endsWith('.json')).length;
1385
+ // Preserve lastActive (peak) across agent lifecycle so statusline shows non-zero after completion
1386
+ let prevLastActive = 0;
1387
+ try { prevLastActive = (JSON.parse(fs.readFileSync(activityPath, 'utf-8'))?.swarm?.lastActive) || 0; } catch { /* ignore */ }
1388
+ fs.writeFileSync(activityPath, JSON.stringify({
1389
+ timestamp: new Date().toISOString(),
1390
+ swarm: {
1391
+ active: active > 0,
1392
+ agent_count: active,
1393
+ coordination_active: active > 0,
1394
+ lastActive: Math.max(active, prevLastActive),
1395
+ },
1396
+ }));
1397
+
1398
+ // Write last-dispatch.json so the route handler can suppress redundant suggestions
1399
+ // on the next turn when the same type of agent is recommended.
1400
+ const agentType = hookInput.subagent_type || hookInput.agentType || hookInput.agent_type || hookInput.agentSlug || 'unknown';
1401
+ const agentDesc = hookInput.description || hookInput.prompt_description || '';
1402
+ fs.writeFileSync(
1403
+ path.join(CWD, '.monomind', 'last-dispatch.json'),
1404
+ JSON.stringify({
1405
+ agentType: agentType,
1406
+ description: agentDesc.substring(0, 120),
1407
+ dispatchedAt: new Date().toISOString(),
1408
+ }),
1409
+ 'utf-8'
1410
+ );
1411
+ } catch (e) { /* non-fatal — never block a subagent from starting */ }
1412
+ console.log('[OK] Agent registered');
1413
+ },
1414
+
1415
+ 'status': () => {
1416
+ console.log('[OK] Status check');
1417
+ },
1418
+
1419
+ 'stats': async () => {
1420
+ if (intelligence && intelligence.stats) {
1421
+ await Promise.resolve(intelligence.stats(args.includes('--json')));
1422
+ } else {
1423
+ console.log('[WARN] Intelligence module not available. Run session-restore first.');
1424
+ }
1425
+ },
1426
+ };
1427
+
1428
+ if (command && handlers[command]) {
1429
+ try {
1430
+ await Promise.resolve(handlers[command]());
1431
+ } catch (e) {
1432
+ console.log('[WARN] Hook ' + command + ' encountered an error: ' + e.message);
1433
+ }
1434
+ } else if (command) {
1435
+ console.log('[OK] Hook: ' + command);
1436
+ } else {
1437
+ console.log('Usage: hook-handler.cjs <route|pre-bash|post-edit|session-restore|session-end|pre-task|post-task|compact-manual|compact-auto|status|stats>');
1438
+ }
1439
+ }
1440
+
1441
+ main().catch(function(e) {
1442
+ console.log('[WARN] Hook handler error: ' + e.message);
1443
+ }).finally(function() {
1444
+ // Ensure clean exit for Claude Code hooks
1445
+ process.exit(0);
1446
+ });