odd-flow 1.0.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 (730) hide show
  1. package/.claude/agents/MIGRATION_SUMMARY.md +222 -0
  2. package/.claude/agents/analysis/analyze-code-quality.md +58 -0
  3. package/.claude/agents/analysis/code-analyzer.md +189 -0
  4. package/.claude/agents/analysis/code-review/analyze-code-quality.md +58 -0
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +36 -0
  6. package/.claude/agents/base-template-generator.md +41 -0
  7. package/.claude/agents/consensus/byzantine-coordinator.md +43 -0
  8. package/.claude/agents/consensus/crdt-synchronizer.md +977 -0
  9. package/.claude/agents/consensus/gossip-coordinator.md +43 -0
  10. package/.claude/agents/consensus/performance-benchmarker.md +831 -0
  11. package/.claude/agents/consensus/quorum-manager.md +803 -0
  12. package/.claude/agents/consensus/raft-manager.md +43 -0
  13. package/.claude/agents/consensus/security-manager.md +602 -0
  14. package/.claude/agents/core/coder.md +244 -0
  15. package/.claude/agents/core/planner.md +152 -0
  16. package/.claude/agents/core/researcher.md +174 -0
  17. package/.claude/agents/core/reviewer.md +309 -0
  18. package/.claude/agents/core/tester.md +300 -0
  19. package/.claude/agents/custom/test-long-runner.md +43 -0
  20. package/.claude/agents/data/ml/data-ml-model.md +76 -0
  21. package/.claude/agents/database-specialist.md +9 -0
  22. package/.claude/agents/development/backend/dev-backend-api.md +29 -0
  23. package/.claude/agents/development/dev-backend-api.md +178 -0
  24. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +52 -0
  25. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +63 -0
  26. package/.claude/agents/dual-mode/codex-coordinator.md +201 -0
  27. package/.claude/agents/dual-mode/codex-worker.md +183 -0
  28. package/.claude/agents/dual-mode/dual-orchestrator.md +253 -0
  29. package/.claude/agents/flow-nexus/app-store.md +88 -0
  30. package/.claude/agents/flow-nexus/authentication.md +69 -0
  31. package/.claude/agents/flow-nexus/challenges.md +81 -0
  32. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  33. package/.claude/agents/flow-nexus/payments.md +83 -0
  34. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  35. package/.claude/agents/flow-nexus/swarm.md +76 -0
  36. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  37. package/.claude/agents/flow-nexus/workflow.md +84 -0
  38. package/.claude/agents/github/code-review-swarm.md +521 -0
  39. package/.claude/agents/github/github-modes.md +154 -0
  40. package/.claude/agents/github/issue-tracker.md +299 -0
  41. package/.claude/agents/github/multi-repo-swarm.md +525 -0
  42. package/.claude/agents/github/pr-manager.md +163 -0
  43. package/.claude/agents/github/project-board-sync.md +478 -0
  44. package/.claude/agents/github/release-manager.md +336 -0
  45. package/.claude/agents/github/release-swarm.md +551 -0
  46. package/.claude/agents/github/repo-architect.md +365 -0
  47. package/.claude/agents/github/swarm-issue.md +548 -0
  48. package/.claude/agents/github/swarm-pr.md +399 -0
  49. package/.claude/agents/github/sync-coordinator.md +423 -0
  50. package/.claude/agents/github/workflow-automation.md +605 -0
  51. package/.claude/agents/goal/agent.md +817 -0
  52. package/.claude/agents/goal/code-goal-planner.md +445 -0
  53. package/.claude/agents/goal/goal-planner.md +168 -0
  54. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -0
  55. package/.claude/agents/hive-mind/queen-coordinator.md +202 -0
  56. package/.claude/agents/hive-mind/scout-explorer.md +241 -0
  57. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -0
  58. package/.claude/agents/hive-mind/worker-specialist.md +216 -0
  59. package/.claude/agents/neural/safla-neural.md +74 -0
  60. package/.claude/agents/optimization/benchmark-suite.md +663 -0
  61. package/.claude/agents/optimization/load-balancer.md +429 -0
  62. package/.claude/agents/optimization/performance-monitor.md +670 -0
  63. package/.claude/agents/optimization/resource-allocator.md +672 -0
  64. package/.claude/agents/optimization/topology-optimizer.md +806 -0
  65. package/.claude/agents/payments/agentic-payments.md +126 -0
  66. package/.claude/agents/project-coordinator.md +8 -0
  67. package/.claude/agents/python-specialist.md +9 -0
  68. package/.claude/agents/reasoning/agent.md +817 -0
  69. package/.claude/agents/reasoning/goal-planner.md +73 -0
  70. package/.claude/agents/security-auditor.md +9 -0
  71. package/.claude/agents/sona/sona-learning-optimizer.md +65 -0
  72. package/.claude/agents/sparc/architecture.md +453 -0
  73. package/.claude/agents/sparc/pseudocode.md +299 -0
  74. package/.claude/agents/sparc/refinement.md +504 -0
  75. package/.claude/agents/sparc/specification.md +258 -0
  76. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +88 -0
  77. package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
  78. package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
  79. package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
  80. package/.claude/agents/sublinear/performance-optimizer.md +368 -0
  81. package/.claude/agents/sublinear/trading-predictor.md +246 -0
  82. package/.claude/agents/swarm/adaptive-coordinator.md +364 -0
  83. package/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  84. package/.claude/agents/swarm/mesh-coordinator.md +363 -0
  85. package/.claude/agents/templates/automation-smart-agent.md +185 -0
  86. package/.claude/agents/templates/coordinator-swarm-init.md +83 -0
  87. package/.claude/agents/templates/github-pr-manager.md +155 -0
  88. package/.claude/agents/templates/implementer-sparc-coder.md +231 -0
  89. package/.claude/agents/templates/memory-coordinator.md +163 -0
  90. package/.claude/agents/templates/migration-plan.md +724 -0
  91. package/.claude/agents/templates/orchestrator-task.md +120 -0
  92. package/.claude/agents/templates/performance-analyzer.md +179 -0
  93. package/.claude/agents/templates/sparc-coordinator.md +163 -0
  94. package/.claude/agents/testing/production-validator.md +373 -0
  95. package/.claude/agents/testing/tdd-london-swarm.md +222 -0
  96. package/.claude/agents/testing/unit/tdd-london-swarm.md +222 -0
  97. package/.claude/agents/testing/validation/production-validator.md +373 -0
  98. package/.claude/agents/typescript-specialist.md +9 -0
  99. package/.claude/agents/v3/database-specialist.md +9 -0
  100. package/.claude/agents/v3/project-coordinator.md +8 -0
  101. package/.claude/agents/v3/python-specialist.md +9 -0
  102. package/.claude/agents/v3/test-architect.md +9 -0
  103. package/.claude/agents/v3/typescript-specialist.md +9 -0
  104. package/.claude/agents/v3/v3-integration-architect.md +312 -0
  105. package/.claude/agents/v3/v3-memory-specialist.md +281 -0
  106. package/.claude/agents/v3/v3-performance-engineer.md +363 -0
  107. package/.claude/agents/v3/v3-queen-coordinator.md +63 -0
  108. package/.claude/agents/v3/v3-security-architect.md +140 -0
  109. package/.claude/checkpoints/1767754460.json +8 -0
  110. package/.claude/commands/agents/README.md +10 -0
  111. package/.claude/commands/agents/agent-capabilities.md +21 -0
  112. package/.claude/commands/agents/agent-coordination.md +28 -0
  113. package/.claude/commands/agents/agent-spawning.md +28 -0
  114. package/.claude/commands/agents/agent-types.md +26 -0
  115. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  116. package/.claude/commands/analysis/README.md +9 -0
  117. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  118. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  119. package/.claude/commands/analysis/performance-report.md +25 -0
  120. package/.claude/commands/analysis/token-efficiency.md +45 -0
  121. package/.claude/commands/analysis/token-usage.md +25 -0
  122. package/.claude/commands/automation/README.md +9 -0
  123. package/.claude/commands/automation/auto-agent.md +122 -0
  124. package/.claude/commands/automation/self-healing.md +106 -0
  125. package/.claude/commands/automation/session-memory.md +90 -0
  126. package/.claude/commands/automation/smart-agents.md +73 -0
  127. package/.claude/commands/automation/smart-spawn.md +25 -0
  128. package/.claude/commands/automation/workflow-select.md +25 -0
  129. package/.claude/commands/claude-flow-help.md +103 -0
  130. package/.claude/commands/claude-flow-memory.md +107 -0
  131. package/.claude/commands/claude-flow-swarm.md +205 -0
  132. package/.claude/commands/coordination/README.md +9 -0
  133. package/.claude/commands/coordination/agent-spawn.md +25 -0
  134. package/.claude/commands/coordination/init.md +44 -0
  135. package/.claude/commands/coordination/orchestrate.md +43 -0
  136. package/.claude/commands/coordination/spawn.md +45 -0
  137. package/.claude/commands/coordination/swarm-init.md +85 -0
  138. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  139. package/.claude/commands/flow-nexus/app-store.md +124 -0
  140. package/.claude/commands/flow-nexus/challenges.md +120 -0
  141. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  142. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  143. package/.claude/commands/flow-nexus/payments.md +116 -0
  144. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  145. package/.claude/commands/flow-nexus/swarm.md +87 -0
  146. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  147. package/.claude/commands/flow-nexus/workflow.md +115 -0
  148. package/.claude/commands/github/README.md +11 -0
  149. package/.claude/commands/github/code-review-swarm.md +514 -0
  150. package/.claude/commands/github/code-review.md +25 -0
  151. package/.claude/commands/github/github-modes.md +147 -0
  152. package/.claude/commands/github/github-swarm.md +121 -0
  153. package/.claude/commands/github/issue-tracker.md +292 -0
  154. package/.claude/commands/github/issue-triage.md +25 -0
  155. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  156. package/.claude/commands/github/pr-enhance.md +26 -0
  157. package/.claude/commands/github/pr-manager.md +170 -0
  158. package/.claude/commands/github/project-board-sync.md +471 -0
  159. package/.claude/commands/github/release-manager.md +338 -0
  160. package/.claude/commands/github/release-swarm.md +544 -0
  161. package/.claude/commands/github/repo-analyze.md +25 -0
  162. package/.claude/commands/github/repo-architect.md +367 -0
  163. package/.claude/commands/github/swarm-issue.md +482 -0
  164. package/.claude/commands/github/swarm-pr.md +285 -0
  165. package/.claude/commands/github/sync-coordinator.md +301 -0
  166. package/.claude/commands/github/workflow-automation.md +442 -0
  167. package/.claude/commands/hive-mind/README.md +17 -0
  168. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  169. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  170. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  171. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  172. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  173. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  174. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  175. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  176. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  177. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  178. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  179. package/.claude/commands/hooks/README.md +11 -0
  180. package/.claude/commands/hooks/overview.md +58 -0
  181. package/.claude/commands/hooks/post-edit.md +117 -0
  182. package/.claude/commands/hooks/post-task.md +112 -0
  183. package/.claude/commands/hooks/pre-edit.md +113 -0
  184. package/.claude/commands/hooks/pre-task.md +111 -0
  185. package/.claude/commands/hooks/session-end.md +118 -0
  186. package/.claude/commands/hooks/setup.md +103 -0
  187. package/.claude/commands/memory/README.md +9 -0
  188. package/.claude/commands/memory/memory-persist.md +25 -0
  189. package/.claude/commands/memory/memory-search.md +25 -0
  190. package/.claude/commands/memory/memory-usage.md +25 -0
  191. package/.claude/commands/memory/neural.md +47 -0
  192. package/.claude/commands/monitoring/README.md +9 -0
  193. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  194. package/.claude/commands/monitoring/agents.md +44 -0
  195. package/.claude/commands/monitoring/real-time-view.md +25 -0
  196. package/.claude/commands/monitoring/status.md +46 -0
  197. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  198. package/.claude/commands/optimization/README.md +9 -0
  199. package/.claude/commands/optimization/auto-topology.md +62 -0
  200. package/.claude/commands/optimization/cache-manage.md +25 -0
  201. package/.claude/commands/optimization/parallel-execute.md +25 -0
  202. package/.claude/commands/optimization/parallel-execution.md +50 -0
  203. package/.claude/commands/optimization/topology-optimize.md +25 -0
  204. package/.claude/commands/pair/README.md +261 -0
  205. package/.claude/commands/pair/commands.md +546 -0
  206. package/.claude/commands/pair/config.md +510 -0
  207. package/.claude/commands/pair/examples.md +512 -0
  208. package/.claude/commands/pair/modes.md +348 -0
  209. package/.claude/commands/pair/session.md +407 -0
  210. package/.claude/commands/pair/start.md +209 -0
  211. package/.claude/commands/sparc/analyzer.md +52 -0
  212. package/.claude/commands/sparc/architect.md +53 -0
  213. package/.claude/commands/sparc/ask.md +97 -0
  214. package/.claude/commands/sparc/batch-executor.md +54 -0
  215. package/.claude/commands/sparc/code.md +89 -0
  216. package/.claude/commands/sparc/coder.md +54 -0
  217. package/.claude/commands/sparc/debug.md +83 -0
  218. package/.claude/commands/sparc/debugger.md +54 -0
  219. package/.claude/commands/sparc/designer.md +53 -0
  220. package/.claude/commands/sparc/devops.md +109 -0
  221. package/.claude/commands/sparc/docs-writer.md +80 -0
  222. package/.claude/commands/sparc/documenter.md +54 -0
  223. package/.claude/commands/sparc/innovator.md +54 -0
  224. package/.claude/commands/sparc/integration.md +83 -0
  225. package/.claude/commands/sparc/mcp.md +117 -0
  226. package/.claude/commands/sparc/memory-manager.md +54 -0
  227. package/.claude/commands/sparc/optimizer.md +54 -0
  228. package/.claude/commands/sparc/orchestrator.md +132 -0
  229. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  230. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  231. package/.claude/commands/sparc/researcher.md +54 -0
  232. package/.claude/commands/sparc/reviewer.md +54 -0
  233. package/.claude/commands/sparc/security-review.md +80 -0
  234. package/.claude/commands/sparc/sparc-modes.md +174 -0
  235. package/.claude/commands/sparc/sparc.md +111 -0
  236. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  237. package/.claude/commands/sparc/supabase-admin.md +348 -0
  238. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  239. package/.claude/commands/sparc/tdd.md +54 -0
  240. package/.claude/commands/sparc/tester.md +54 -0
  241. package/.claude/commands/sparc/tutorial.md +79 -0
  242. package/.claude/commands/sparc/workflow-manager.md +54 -0
  243. package/.claude/commands/sparc.md +166 -0
  244. package/.claude/commands/stream-chain/pipeline.md +121 -0
  245. package/.claude/commands/stream-chain/run.md +70 -0
  246. package/.claude/commands/swarm/README.md +15 -0
  247. package/.claude/commands/swarm/analysis.md +95 -0
  248. package/.claude/commands/swarm/development.md +96 -0
  249. package/.claude/commands/swarm/examples.md +168 -0
  250. package/.claude/commands/swarm/maintenance.md +102 -0
  251. package/.claude/commands/swarm/optimization.md +117 -0
  252. package/.claude/commands/swarm/research.md +136 -0
  253. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  254. package/.claude/commands/swarm/swarm-background.md +8 -0
  255. package/.claude/commands/swarm/swarm-init.md +19 -0
  256. package/.claude/commands/swarm/swarm-modes.md +8 -0
  257. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  258. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  259. package/.claude/commands/swarm/swarm-status.md +8 -0
  260. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  261. package/.claude/commands/swarm/swarm.md +27 -0
  262. package/.claude/commands/swarm/testing.md +131 -0
  263. package/.claude/commands/training/README.md +9 -0
  264. package/.claude/commands/training/model-update.md +25 -0
  265. package/.claude/commands/training/neural-patterns.md +74 -0
  266. package/.claude/commands/training/neural-train.md +25 -0
  267. package/.claude/commands/training/pattern-learn.md +25 -0
  268. package/.claude/commands/training/specialization.md +63 -0
  269. package/.claude/commands/truth/start.md +143 -0
  270. package/.claude/commands/verify/check.md +50 -0
  271. package/.claude/commands/verify/start.md +128 -0
  272. package/.claude/commands/workflows/README.md +9 -0
  273. package/.claude/commands/workflows/development.md +78 -0
  274. package/.claude/commands/workflows/research.md +63 -0
  275. package/.claude/commands/workflows/workflow-create.md +25 -0
  276. package/.claude/commands/workflows/workflow-execute.md +25 -0
  277. package/.claude/commands/workflows/workflow-export.md +25 -0
  278. package/.claude/config/v3-dependency-optimization.json +266 -0
  279. package/.claude/config/v3-performance-targets.json +251 -0
  280. package/.claude/helpers/README.md +97 -0
  281. package/.claude/helpers/adr-compliance.sh +186 -0
  282. package/.claude/helpers/aggressive-microcompact.mjs +36 -0
  283. package/.claude/helpers/auto-commit.sh +178 -0
  284. package/.claude/helpers/auto-memory-hook.mjs +369 -0
  285. package/.claude/helpers/checkpoint-manager.sh +251 -0
  286. package/.claude/helpers/context-persistence-hook.mjs +1979 -0
  287. package/.claude/helpers/daemon-manager.sh +252 -0
  288. package/.claude/helpers/ddd-tracker.sh +144 -0
  289. package/.claude/helpers/github-safe.js +106 -0
  290. package/.claude/helpers/github-setup.sh +28 -0
  291. package/.claude/helpers/guidance-hook.sh +13 -0
  292. package/.claude/helpers/guidance-hooks.sh +102 -0
  293. package/.claude/helpers/health-monitor.sh +108 -0
  294. package/.claude/helpers/hook-handler.cjs +234 -0
  295. package/.claude/helpers/intelligence.cjs +207 -0
  296. package/.claude/helpers/learning-hooks.sh +329 -0
  297. package/.claude/helpers/learning-optimizer.sh +127 -0
  298. package/.claude/helpers/learning-service.mjs +1144 -0
  299. package/.claude/helpers/memory.cjs +84 -0
  300. package/.claude/helpers/metrics-db.mjs +488 -0
  301. package/.claude/helpers/pattern-consolidator.sh +86 -0
  302. package/.claude/helpers/perf-worker.sh +160 -0
  303. package/.claude/helpers/quick-start.sh +19 -0
  304. package/.claude/helpers/router.cjs +62 -0
  305. package/.claude/helpers/security-scanner.sh +127 -0
  306. package/.claude/helpers/session.cjs +125 -0
  307. package/.claude/helpers/setup-mcp.sh +18 -0
  308. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
  309. package/.claude/helpers/statusline.cjs +770 -0
  310. package/.claude/helpers/swarm-comms.sh +353 -0
  311. package/.claude/helpers/swarm-hooks.sh +761 -0
  312. package/.claude/helpers/swarm-monitor.sh +211 -0
  313. package/.claude/helpers/sync-v3-metrics.sh +245 -0
  314. package/.claude/helpers/update-v3-progress.sh +166 -0
  315. package/.claude/helpers/v3-quick-status.sh +58 -0
  316. package/.claude/helpers/v3.sh +111 -0
  317. package/.claude/helpers/validate-v3-config.sh +216 -0
  318. package/.claude/helpers/worker-manager.sh +170 -0
  319. package/.claude/mcp.json +13 -0
  320. package/.claude/settings copy.json +526 -0
  321. package/.claude/settings.json +305 -0
  322. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  323. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  324. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  325. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  326. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  327. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  328. package/.claude/skills/dual-mode/README.md +71 -0
  329. package/.claude/skills/dual-mode/dual-collect.md +103 -0
  330. package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
  331. package/.claude/skills/dual-mode/dual-spawn.md +81 -0
  332. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -0
  333. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -0
  334. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -0
  335. package/.claude/skills/github-code-review/SKILL.md +1125 -0
  336. package/.claude/skills/github-multi-repo/SKILL.md +862 -0
  337. package/.claude/skills/github-project-management/SKILL.md +1250 -0
  338. package/.claude/skills/github-release-management/SKILL.md +1064 -0
  339. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -0
  340. package/.claude/skills/hive-mind-advanced/SKILL.md +709 -0
  341. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  342. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  343. package/.claude/skills/performance-analysis/SKILL.md +560 -0
  344. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  345. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  346. package/.claude/skills/skill-builder/SKILL.md +910 -0
  347. package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
  348. package/.claude/skills/stream-chain/SKILL.md +560 -0
  349. package/.claude/skills/swarm-advanced/SKILL.md +970 -0
  350. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  351. package/.claude/skills/v3-cli-modernization/SKILL.md +872 -0
  352. package/.claude/skills/v3-core-implementation/SKILL.md +797 -0
  353. package/.claude/skills/v3-ddd-architecture/SKILL.md +442 -0
  354. package/.claude/skills/v3-integration-deep/SKILL.md +241 -0
  355. package/.claude/skills/v3-mcp-optimization/SKILL.md +777 -0
  356. package/.claude/skills/v3-memory-unification/SKILL.md +174 -0
  357. package/.claude/skills/v3-performance-optimization/SKILL.md +390 -0
  358. package/.claude/skills/v3-security-overhaul/SKILL.md +82 -0
  359. package/.claude/skills/v3-swarm-coordination/SKILL.md +340 -0
  360. package/.claude/skills/verification-quality/SKILL.md +647 -0
  361. package/.claude/skills/worker-benchmarks/SKILL.md +129 -0
  362. package/.claude/skills/worker-integration/SKILL.md +147 -0
  363. package/.claude/statusline-command.sh +176 -0
  364. package/.claude/statusline.mjs +109 -0
  365. package/.claude/statusline.sh +431 -0
  366. package/.claude-plugin/README.md +720 -0
  367. package/.claude-plugin/docs/INSTALLATION.md +261 -0
  368. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -0
  369. package/.claude-plugin/docs/QUICKSTART.md +361 -0
  370. package/.claude-plugin/docs/STRUCTURE.md +128 -0
  371. package/.claude-plugin/hooks/hooks.json +74 -0
  372. package/.claude-plugin/marketplace.json +96 -0
  373. package/.claude-plugin/plugin.json +71 -0
  374. package/.claude-plugin/scripts/install.sh +234 -0
  375. package/.claude-plugin/scripts/uninstall.sh +36 -0
  376. package/.claude-plugin/scripts/verify.sh +108 -0
  377. package/LICENSE +21 -0
  378. package/README.md +7541 -0
  379. package/bin/cli.js +11 -0
  380. package/bin/npx-repair.js +7 -0
  381. package/bin/npx-safe-launch.js +9 -0
  382. package/package.json +84 -0
  383. package/v3/@claude-flow/cli/README.md +192 -0
  384. package/v3/@claude-flow/cli/bin/cli.js +156 -0
  385. package/v3/@claude-flow/cli/bin/mcp-server.js +189 -0
  386. package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -0
  387. package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.d.ts +91 -0
  388. package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.js +425 -0
  389. package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  390. package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.js +292 -0
  391. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.d.ts +44 -0
  392. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.js +329 -0
  393. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  394. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.js +370 -0
  395. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.d.ts +111 -0
  396. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.js +393 -0
  397. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.d.ts +69 -0
  398. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.js +237 -0
  399. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.d.ts +123 -0
  400. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.js +347 -0
  401. package/v3/@claude-flow/cli/dist/src/autopilot-state.d.ts +77 -0
  402. package/v3/@claude-flow/cli/dist/src/autopilot-state.js +279 -0
  403. package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  404. package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.js +404 -0
  405. package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.d.ts +14 -0
  406. package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.js +333 -0
  407. package/v3/@claude-flow/cli/dist/src/commands/agent.d.ts +8 -0
  408. package/v3/@claude-flow/cli/dist/src/commands/agent.js +927 -0
  409. package/v3/@claude-flow/cli/dist/src/commands/analyze.d.ts +17 -0
  410. package/v3/@claude-flow/cli/dist/src/commands/analyze.js +1821 -0
  411. package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.d.ts +9 -0
  412. package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.js +215 -0
  413. package/v3/@claude-flow/cli/dist/src/commands/appliance.d.ts +8 -0
  414. package/v3/@claude-flow/cli/dist/src/commands/appliance.js +406 -0
  415. package/v3/@claude-flow/cli/dist/src/commands/autopilot.d.ts +15 -0
  416. package/v3/@claude-flow/cli/dist/src/commands/autopilot.js +362 -0
  417. package/v3/@claude-flow/cli/dist/src/commands/benchmark.d.ts +10 -0
  418. package/v3/@claude-flow/cli/dist/src/commands/benchmark.js +459 -0
  419. package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +8 -0
  420. package/v3/@claude-flow/cli/dist/src/commands/claims.js +621 -0
  421. package/v3/@claude-flow/cli/dist/src/commands/cleanup.d.ts +11 -0
  422. package/v3/@claude-flow/cli/dist/src/commands/cleanup.js +216 -0
  423. package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +8 -0
  424. package/v3/@claude-flow/cli/dist/src/commands/completions.js +537 -0
  425. package/v3/@claude-flow/cli/dist/src/commands/config.d.ts +8 -0
  426. package/v3/@claude-flow/cli/dist/src/commands/config.js +356 -0
  427. package/v3/@claude-flow/cli/dist/src/commands/daemon.d.ts +8 -0
  428. package/v3/@claude-flow/cli/dist/src/commands/daemon.js +669 -0
  429. package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +8 -0
  430. package/v3/@claude-flow/cli/dist/src/commands/deployment.js +669 -0
  431. package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +8 -0
  432. package/v3/@claude-flow/cli/dist/src/commands/doctor.js +617 -0
  433. package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +16 -0
  434. package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +1573 -0
  435. package/v3/@claude-flow/cli/dist/src/commands/guidance.d.ts +8 -0
  436. package/v3/@claude-flow/cli/dist/src/commands/guidance.js +560 -0
  437. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.d.ts +11 -0
  438. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +1237 -0
  439. package/v3/@claude-flow/cli/dist/src/commands/hooks.d.ts +8 -0
  440. package/v3/@claude-flow/cli/dist/src/commands/hooks.js +4441 -0
  441. package/v3/@claude-flow/cli/dist/src/commands/index.d.ts +117 -0
  442. package/v3/@claude-flow/cli/dist/src/commands/index.js +384 -0
  443. package/v3/@claude-flow/cli/dist/src/commands/init.d.ts +8 -0
  444. package/v3/@claude-flow/cli/dist/src/commands/init.js +969 -0
  445. package/v3/@claude-flow/cli/dist/src/commands/issues.d.ts +21 -0
  446. package/v3/@claude-flow/cli/dist/src/commands/issues.js +567 -0
  447. package/v3/@claude-flow/cli/dist/src/commands/mcp.d.ts +11 -0
  448. package/v3/@claude-flow/cli/dist/src/commands/mcp.js +718 -0
  449. package/v3/@claude-flow/cli/dist/src/commands/memory.d.ts +8 -0
  450. package/v3/@claude-flow/cli/dist/src/commands/memory.js +1299 -0
  451. package/v3/@claude-flow/cli/dist/src/commands/migrate.d.ts +8 -0
  452. package/v3/@claude-flow/cli/dist/src/commands/migrate.js +742 -0
  453. package/v3/@claude-flow/cli/dist/src/commands/neural.d.ts +8 -0
  454. package/v3/@claude-flow/cli/dist/src/commands/neural.js +1451 -0
  455. package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +8 -0
  456. package/v3/@claude-flow/cli/dist/src/commands/performance.js +576 -0
  457. package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +9 -0
  458. package/v3/@claude-flow/cli/dist/src/commands/plugins.js +817 -0
  459. package/v3/@claude-flow/cli/dist/src/commands/process.d.ts +10 -0
  460. package/v3/@claude-flow/cli/dist/src/commands/process.js +641 -0
  461. package/v3/@claude-flow/cli/dist/src/commands/progress.d.ts +11 -0
  462. package/v3/@claude-flow/cli/dist/src/commands/progress.js +259 -0
  463. package/v3/@claude-flow/cli/dist/src/commands/providers.d.ts +8 -0
  464. package/v3/@claude-flow/cli/dist/src/commands/providers.js +355 -0
  465. package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +14 -0
  466. package/v3/@claude-flow/cli/dist/src/commands/route.js +811 -0
  467. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.d.ts +11 -0
  468. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +746 -0
  469. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  470. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +480 -0
  471. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +16 -0
  472. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +347 -0
  473. package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +27 -0
  474. package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +127 -0
  475. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.d.ts +11 -0
  476. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +431 -0
  477. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.d.ts +11 -0
  478. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +481 -0
  479. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.d.ts +11 -0
  480. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +503 -0
  481. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +16 -0
  482. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +763 -0
  483. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.d.ts +11 -0
  484. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +456 -0
  485. package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +8 -0
  486. package/v3/@claude-flow/cli/dist/src/commands/security.js +614 -0
  487. package/v3/@claude-flow/cli/dist/src/commands/session.d.ts +8 -0
  488. package/v3/@claude-flow/cli/dist/src/commands/session.js +750 -0
  489. package/v3/@claude-flow/cli/dist/src/commands/start.d.ts +8 -0
  490. package/v3/@claude-flow/cli/dist/src/commands/start.js +418 -0
  491. package/v3/@claude-flow/cli/dist/src/commands/status.d.ts +8 -0
  492. package/v3/@claude-flow/cli/dist/src/commands/status.js +591 -0
  493. package/v3/@claude-flow/cli/dist/src/commands/swarm.d.ts +8 -0
  494. package/v3/@claude-flow/cli/dist/src/commands/swarm.js +802 -0
  495. package/v3/@claude-flow/cli/dist/src/commands/task.d.ts +8 -0
  496. package/v3/@claude-flow/cli/dist/src/commands/task.js +671 -0
  497. package/v3/@claude-flow/cli/dist/src/commands/transfer-store.d.ts +13 -0
  498. package/v3/@claude-flow/cli/dist/src/commands/transfer-store.js +428 -0
  499. package/v3/@claude-flow/cli/dist/src/commands/update.d.ts +8 -0
  500. package/v3/@claude-flow/cli/dist/src/commands/update.js +276 -0
  501. package/v3/@claude-flow/cli/dist/src/commands/workflow.d.ts +8 -0
  502. package/v3/@claude-flow/cli/dist/src/commands/workflow.js +617 -0
  503. package/v3/@claude-flow/cli/dist/src/config-adapter.d.ts +15 -0
  504. package/v3/@claude-flow/cli/dist/src/config-adapter.js +186 -0
  505. package/v3/@claude-flow/cli/dist/src/index.d.ts +74 -0
  506. package/v3/@claude-flow/cli/dist/src/index.js +469 -0
  507. package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  508. package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.js +264 -0
  509. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +25 -0
  510. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +486 -0
  511. package/v3/@claude-flow/cli/dist/src/init/executor.d.ts +41 -0
  512. package/v3/@claude-flow/cli/dist/src/init/executor.js +1776 -0
  513. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.d.ts +60 -0
  514. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +1181 -0
  515. package/v3/@claude-flow/cli/dist/src/init/index.d.ts +13 -0
  516. package/v3/@claude-flow/cli/dist/src/init/index.js +15 -0
  517. package/v3/@claude-flow/cli/dist/src/init/mcp-generator.d.ts +26 -0
  518. package/v3/@claude-flow/cli/dist/src/init/mcp-generator.js +101 -0
  519. package/v3/@claude-flow/cli/dist/src/init/settings-generator.d.ts +14 -0
  520. package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +392 -0
  521. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.d.ts +28 -0
  522. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +833 -0
  523. package/v3/@claude-flow/cli/dist/src/init/types.d.ts +295 -0
  524. package/v3/@claude-flow/cli/dist/src/init/types.js +263 -0
  525. package/v3/@claude-flow/cli/dist/src/mcp-client.d.ts +92 -0
  526. package/v3/@claude-flow/cli/dist/src/mcp-client.js +227 -0
  527. package/v3/@claude-flow/cli/dist/src/mcp-server.d.ts +163 -0
  528. package/v3/@claude-flow/cli/dist/src/mcp-server.js +654 -0
  529. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  530. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.js +550 -0
  531. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  532. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +557 -0
  533. package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  534. package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.js +317 -0
  535. package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  536. package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.js +732 -0
  537. package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.d.ts +8 -0
  538. package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.js +357 -0
  539. package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  540. package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.js +665 -0
  541. package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  542. package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js +782 -0
  543. package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  544. package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.js +811 -0
  545. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +44 -0
  546. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +3120 -0
  547. package/v3/@claude-flow/cli/dist/src/mcp-tools/index.d.ts +22 -0
  548. package/v3/@claude-flow/cli/dist/src/mcp-tools/index.js +21 -0
  549. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  550. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +512 -0
  551. package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.d.ts +16 -0
  552. package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.js +461 -0
  553. package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  554. package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.js +534 -0
  555. package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  556. package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.js +348 -0
  557. package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +16 -0
  558. package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +404 -0
  559. package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.d.ts +8 -0
  560. package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js +315 -0
  561. package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.d.ts +9 -0
  562. package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.js +288 -0
  563. package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.d.ts +13 -0
  564. package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.js +408 -0
  565. package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.d.ts +8 -0
  566. package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.js +405 -0
  567. package/v3/@claude-flow/cli/dist/src/mcp-tools/types.d.ts +31 -0
  568. package/v3/@claude-flow/cli/dist/src/mcp-tools/types.js +7 -0
  569. package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  570. package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js +572 -0
  571. package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.d.ts +295 -0
  572. package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.js +601 -0
  573. package/v3/@claude-flow/cli/dist/src/memory/intelligence.d.ts +338 -0
  574. package/v3/@claude-flow/cli/dist/src/memory/intelligence.js +1023 -0
  575. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +407 -0
  576. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +1499 -0
  577. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +412 -0
  578. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2222 -0
  579. package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.d.ts +227 -0
  580. package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.js +633 -0
  581. package/v3/@claude-flow/cli/dist/src/output.d.ts +133 -0
  582. package/v3/@claude-flow/cli/dist/src/output.js +514 -0
  583. package/v3/@claude-flow/cli/dist/src/parser.d.ts +51 -0
  584. package/v3/@claude-flow/cli/dist/src/parser.js +425 -0
  585. package/v3/@claude-flow/cli/dist/src/plugins/manager.d.ts +133 -0
  586. package/v3/@claude-flow/cli/dist/src/plugins/manager.js +400 -0
  587. package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.d.ts +88 -0
  588. package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.js +1147 -0
  589. package/v3/@claude-flow/cli/dist/src/plugins/store/index.d.ts +76 -0
  590. package/v3/@claude-flow/cli/dist/src/plugins/store/index.js +141 -0
  591. package/v3/@claude-flow/cli/dist/src/plugins/store/search.d.ts +46 -0
  592. package/v3/@claude-flow/cli/dist/src/plugins/store/search.js +230 -0
  593. package/v3/@claude-flow/cli/dist/src/plugins/store/types.d.ts +274 -0
  594. package/v3/@claude-flow/cli/dist/src/plugins/store/types.js +7 -0
  595. package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  596. package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  597. package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  598. package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.js +188 -0
  599. package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  600. package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.js +206 -0
  601. package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.d.ts +101 -0
  602. package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.js +241 -0
  603. package/v3/@claude-flow/cli/dist/src/production/error-handler.d.ts +92 -0
  604. package/v3/@claude-flow/cli/dist/src/production/error-handler.js +299 -0
  605. package/v3/@claude-flow/cli/dist/src/production/index.d.ts +23 -0
  606. package/v3/@claude-flow/cli/dist/src/production/index.js +18 -0
  607. package/v3/@claude-flow/cli/dist/src/production/monitoring.d.ts +161 -0
  608. package/v3/@claude-flow/cli/dist/src/production/monitoring.js +356 -0
  609. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.d.ts +80 -0
  610. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.js +201 -0
  611. package/v3/@claude-flow/cli/dist/src/production/retry.d.ts +48 -0
  612. package/v3/@claude-flow/cli/dist/src/production/retry.js +179 -0
  613. package/v3/@claude-flow/cli/dist/src/prompt.d.ts +44 -0
  614. package/v3/@claude-flow/cli/dist/src/prompt.js +501 -0
  615. package/v3/@claude-flow/cli/dist/src/runtime/headless.d.ts +60 -0
  616. package/v3/@claude-flow/cli/dist/src/runtime/headless.js +284 -0
  617. package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.d.ts +182 -0
  618. package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js +316 -0
  619. package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  620. package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.js +277 -0
  621. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.d.ts +160 -0
  622. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.js +529 -0
  623. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.d.ts +33 -0
  624. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.js +157 -0
  625. package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.d.ts +175 -0
  626. package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.js +698 -0
  627. package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  628. package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.js +513 -0
  629. package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +193 -0
  630. package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.js +641 -0
  631. package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  632. package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.js +929 -0
  633. package/v3/@claude-flow/cli/dist/src/ruvector/index.d.ts +40 -0
  634. package/v3/@claude-flow/cli/dist/src/ruvector/index.js +76 -0
  635. package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.d.ts +218 -0
  636. package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.js +455 -0
  637. package/v3/@claude-flow/cli/dist/src/ruvector/model-router.d.ts +220 -0
  638. package/v3/@claude-flow/cli/dist/src/ruvector/model-router.js +488 -0
  639. package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.d.ts +206 -0
  640. package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.js +626 -0
  641. package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.d.ts +211 -0
  642. package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.js +681 -0
  643. package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  644. package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.js +363 -0
  645. package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.d.ts +77 -0
  646. package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.js +178 -0
  647. package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +67 -0
  648. package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +241 -0
  649. package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  650. package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +95 -0
  651. package/v3/@claude-flow/cli/dist/src/services/claim-service.d.ts +204 -0
  652. package/v3/@claude-flow/cli/dist/src/services/claim-service.js +818 -0
  653. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.d.ts +37 -0
  654. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +224 -0
  655. package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  656. package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.js +583 -0
  657. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.d.ts +304 -0
  658. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +1024 -0
  659. package/v3/@claude-flow/cli/dist/src/services/index.d.ts +13 -0
  660. package/v3/@claude-flow/cli/dist/src/services/index.js +11 -0
  661. package/v3/@claude-flow/cli/dist/src/services/registry-api.d.ts +58 -0
  662. package/v3/@claude-flow/cli/dist/src/services/registry-api.js +146 -0
  663. package/v3/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +220 -0
  664. package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +686 -0
  665. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +245 -0
  666. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +960 -0
  667. package/v3/@claude-flow/cli/dist/src/services/worker-queue.d.ts +194 -0
  668. package/v3/@claude-flow/cli/dist/src/services/worker-queue.js +513 -0
  669. package/v3/@claude-flow/cli/dist/src/suggest.d.ts +51 -0
  670. package/v3/@claude-flow/cli/dist/src/suggest.js +198 -0
  671. package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.d.ts +25 -0
  672. package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.js +175 -0
  673. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  674. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +205 -0
  675. package/v3/@claude-flow/cli/dist/src/transfer/export.d.ts +25 -0
  676. package/v3/@claude-flow/cli/dist/src/transfer/export.js +113 -0
  677. package/v3/@claude-flow/cli/dist/src/transfer/index.d.ts +12 -0
  678. package/v3/@claude-flow/cli/dist/src/transfer/index.js +31 -0
  679. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.d.ts +109 -0
  680. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.js +307 -0
  681. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.d.ts +95 -0
  682. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.js +411 -0
  683. package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.d.ts +72 -0
  684. package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.js +373 -0
  685. package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.d.ts +49 -0
  686. package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.js +183 -0
  687. package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.d.ts +82 -0
  688. package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.js +272 -0
  689. package/v3/@claude-flow/cli/dist/src/transfer/storage/index.d.ts +6 -0
  690. package/v3/@claude-flow/cli/dist/src/transfer/storage/index.js +6 -0
  691. package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.d.ts +84 -0
  692. package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.js +382 -0
  693. package/v3/@claude-flow/cli/dist/src/transfer/store/download.d.ts +70 -0
  694. package/v3/@claude-flow/cli/dist/src/transfer/store/download.js +334 -0
  695. package/v3/@claude-flow/cli/dist/src/transfer/store/index.d.ts +84 -0
  696. package/v3/@claude-flow/cli/dist/src/transfer/store/index.js +153 -0
  697. package/v3/@claude-flow/cli/dist/src/transfer/store/publish.d.ts +76 -0
  698. package/v3/@claude-flow/cli/dist/src/transfer/store/publish.js +294 -0
  699. package/v3/@claude-flow/cli/dist/src/transfer/store/registry.d.ts +58 -0
  700. package/v3/@claude-flow/cli/dist/src/transfer/store/registry.js +285 -0
  701. package/v3/@claude-flow/cli/dist/src/transfer/store/search.d.ts +54 -0
  702. package/v3/@claude-flow/cli/dist/src/transfer/store/search.js +232 -0
  703. package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  704. package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.js +190 -0
  705. package/v3/@claude-flow/cli/dist/src/transfer/store/types.d.ts +193 -0
  706. package/v3/@claude-flow/cli/dist/src/transfer/store/types.js +6 -0
  707. package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.d.ts +6 -0
  708. package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.js +105 -0
  709. package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.d.ts +7 -0
  710. package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.js +214 -0
  711. package/v3/@claude-flow/cli/dist/src/transfer/types.d.ts +245 -0
  712. package/v3/@claude-flow/cli/dist/src/transfer/types.js +6 -0
  713. package/v3/@claude-flow/cli/dist/src/types.d.ts +198 -0
  714. package/v3/@claude-flow/cli/dist/src/types.js +38 -0
  715. package/v3/@claude-flow/cli/dist/src/update/checker.d.ts +34 -0
  716. package/v3/@claude-flow/cli/dist/src/update/checker.js +190 -0
  717. package/v3/@claude-flow/cli/dist/src/update/executor.d.ts +32 -0
  718. package/v3/@claude-flow/cli/dist/src/update/executor.js +181 -0
  719. package/v3/@claude-flow/cli/dist/src/update/index.d.ts +33 -0
  720. package/v3/@claude-flow/cli/dist/src/update/index.js +64 -0
  721. package/v3/@claude-flow/cli/dist/src/update/rate-limiter.d.ts +20 -0
  722. package/v3/@claude-flow/cli/dist/src/update/rate-limiter.js +96 -0
  723. package/v3/@claude-flow/cli/dist/src/update/validator.d.ts +17 -0
  724. package/v3/@claude-flow/cli/dist/src/update/validator.js +123 -0
  725. package/v3/@claude-flow/cli/dist/src/utils/path-validation.d.ts +20 -0
  726. package/v3/@claude-flow/cli/dist/src/utils/path-validation.js +80 -0
  727. package/v3/@claude-flow/cli/package.json +75 -0
  728. package/v3/@claude-flow/shared/README.md +323 -0
  729. package/v3/@claude-flow/shared/package.json +42 -0
  730. package/v3/README.md +493 -0
@@ -0,0 +1,1776 @@
1
+ /**
2
+ * Init Executor
3
+ * Main execution logic for V3 initialization
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import { fileURLToPath } from 'url';
8
+ import { createRequire } from 'module';
9
+ import { dirname } from 'path';
10
+ // ESM-compatible __dirname
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = dirname(__filename);
13
+ import { detectPlatform, DEFAULT_INIT_OPTIONS } from './types.js';
14
+ import { generateSettingsJson, generateSettings } from './settings-generator.js';
15
+ import { generateMCPJson } from './mcp-generator.js';
16
+ import { generateStatuslineScript } from './statusline-generator.js';
17
+ import { generatePreCommitHook, generatePostCommitHook, generateSessionManager, generateAgentRouter, generateMemoryHelper, generateHookHandler, generateIntelligenceStub, generateAutoMemoryHook, } from './helpers-generator.js';
18
+ import { generateClaudeMd } from './claudemd-generator.js';
19
+ /**
20
+ * Skills to copy based on configuration
21
+ */
22
+ const SKILLS_MAP = {
23
+ core: [
24
+ 'swarm-orchestration',
25
+ 'swarm-advanced',
26
+ 'sparc-methodology',
27
+ 'hooks-automation',
28
+ 'pair-programming',
29
+ 'verification-quality',
30
+ 'stream-chain',
31
+ 'skill-builder',
32
+ ],
33
+ browser: ['browser'], // agent-browser integration
34
+ dualMode: ['dual-mode'], // Claude Code + Codex hybrid execution
35
+ agentdb: [
36
+ 'agentdb-advanced',
37
+ 'agentdb-learning',
38
+ 'agentdb-memory-patterns',
39
+ 'agentdb-optimization',
40
+ 'agentdb-vector-search',
41
+ 'reasoningbank-agentdb',
42
+ 'reasoningbank-intelligence',
43
+ ],
44
+ github: [
45
+ 'github-code-review',
46
+ 'github-multi-repo',
47
+ 'github-project-management',
48
+ 'github-release-management',
49
+ 'github-workflow-automation',
50
+ ],
51
+ flowNexus: [
52
+ 'flow-nexus-neural',
53
+ 'flow-nexus-platform',
54
+ 'flow-nexus-swarm',
55
+ ],
56
+ v3: [
57
+ 'v3-cli-modernization',
58
+ 'v3-core-implementation',
59
+ 'v3-ddd-architecture',
60
+ 'v3-integration-deep',
61
+ 'v3-mcp-optimization',
62
+ 'v3-memory-unification',
63
+ 'v3-performance-optimization',
64
+ 'v3-security-overhaul',
65
+ 'v3-swarm-coordination',
66
+ ],
67
+ };
68
+ /**
69
+ * Commands to copy based on configuration
70
+ */
71
+ const COMMANDS_MAP = {
72
+ core: ['claude-flow-help.md', 'claude-flow-swarm.md', 'claude-flow-memory.md'],
73
+ analysis: ['analysis'],
74
+ automation: ['automation'],
75
+ github: ['github'],
76
+ hooks: ['hooks'],
77
+ monitoring: ['monitoring'],
78
+ optimization: ['optimization'],
79
+ sparc: ['sparc'],
80
+ };
81
+ /**
82
+ * Agents to copy based on configuration
83
+ */
84
+ const AGENTS_MAP = {
85
+ core: ['core'],
86
+ consensus: ['consensus'],
87
+ github: ['github'],
88
+ hiveMind: ['hive-mind'],
89
+ sparc: ['sparc'],
90
+ swarm: ['swarm'],
91
+ browser: ['browser'], // agent-browser integration
92
+ dualMode: ['dual-mode'], // Claude Code + Codex hybrid execution
93
+ // V3-specific agents
94
+ v3: ['v3'],
95
+ optimization: ['optimization'],
96
+ templates: ['templates'],
97
+ testing: ['testing'],
98
+ sublinear: ['sublinear'],
99
+ flowNexus: ['flow-nexus'],
100
+ analysis: ['analysis'],
101
+ architecture: ['architecture'],
102
+ development: ['development'],
103
+ devops: ['devops'],
104
+ documentation: ['documentation'],
105
+ specialized: ['specialized'],
106
+ goal: ['goal'],
107
+ sona: ['sona'],
108
+ payments: ['payments'],
109
+ data: ['data'],
110
+ custom: ['custom'],
111
+ };
112
+ /**
113
+ * Directory structure to create
114
+ */
115
+ const DIRECTORIES = {
116
+ claude: [
117
+ '.claude',
118
+ '.claude/skills',
119
+ '.claude/commands',
120
+ '.claude/agents',
121
+ '.claude/helpers',
122
+ ],
123
+ runtime: [
124
+ '.claude-flow',
125
+ '.claude-flow/data',
126
+ '.claude-flow/logs',
127
+ '.claude-flow/sessions',
128
+ '.claude-flow/hooks',
129
+ '.claude-flow/agents',
130
+ '.claude-flow/workflows',
131
+ ],
132
+ };
133
+ /**
134
+ * Execute initialization
135
+ */
136
+ export async function executeInit(options) {
137
+ // Detect platform
138
+ const platform = detectPlatform();
139
+ const result = {
140
+ success: true,
141
+ platform,
142
+ created: {
143
+ directories: [],
144
+ files: [],
145
+ },
146
+ skipped: [],
147
+ errors: [],
148
+ summary: {
149
+ skillsCount: 0,
150
+ commandsCount: 0,
151
+ agentsCount: 0,
152
+ hooksEnabled: 0,
153
+ },
154
+ };
155
+ const targetDir = options.targetDir;
156
+ try {
157
+ // Create directory structure
158
+ await createDirectories(targetDir, options, result);
159
+ // Generate and write settings.json
160
+ if (options.components.settings) {
161
+ await writeSettings(targetDir, options, result);
162
+ }
163
+ // Generate and write .mcp.json
164
+ if (options.components.mcp) {
165
+ await writeMCPConfig(targetDir, options, result);
166
+ }
167
+ // Copy skills
168
+ if (options.components.skills) {
169
+ await copySkills(targetDir, options, result);
170
+ }
171
+ // Copy commands
172
+ if (options.components.commands) {
173
+ await copyCommands(targetDir, options, result);
174
+ }
175
+ // Copy agents
176
+ if (options.components.agents) {
177
+ await copyAgents(targetDir, options, result);
178
+ }
179
+ // Generate helpers
180
+ if (options.components.helpers) {
181
+ await writeHelpers(targetDir, options, result);
182
+ }
183
+ // Generate statusline
184
+ if (options.components.statusline) {
185
+ await writeStatusline(targetDir, options, result);
186
+ }
187
+ // Generate runtime config
188
+ if (options.components.runtime) {
189
+ await writeRuntimeConfig(targetDir, options, result);
190
+ }
191
+ // Create initial metrics for statusline (prevents "all zeros" display)
192
+ if (options.components.statusline) {
193
+ await writeInitialMetrics(targetDir, options, result);
194
+ }
195
+ // Generate CLAUDE.md
196
+ if (options.components.claudeMd) {
197
+ await writeClaudeMd(targetDir, options, result);
198
+ }
199
+ // Count enabled hooks
200
+ result.summary.hooksEnabled = countEnabledHooks(options);
201
+ }
202
+ catch (error) {
203
+ result.success = false;
204
+ result.errors.push(error instanceof Error ? error.message : String(error));
205
+ }
206
+ return result;
207
+ }
208
+ /**
209
+ * Merge new settings into existing settings.json
210
+ * Preserves user customizations while adding new features like Agent Teams
211
+ * Uses platform-specific commands for Mac, Linux, and Windows
212
+ */
213
+ function mergeSettingsForUpgrade(existing) {
214
+ const merged = { ...existing };
215
+ const platform = detectPlatform();
216
+ const isWindows = platform.os === 'windows';
217
+ // Platform-specific command wrappers
218
+ // Windows: Use PowerShell-compatible commands
219
+ // Mac/Linux: Use bash-compatible commands with 2>/dev/null
220
+ // NOTE: teammateIdleCmd and taskCompletedCmd were removed.
221
+ // TeammateIdle/TaskCompleted are not valid Claude Code hook events and caused warnings.
222
+ // Agent Teams hook config lives in claudeFlow.agentTeams.hooks instead.
223
+ // 1. Merge env vars (preserve existing, add new)
224
+ const existingEnv = existing.env || {};
225
+ merged.env = {
226
+ ...existingEnv,
227
+ CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: '1',
228
+ CLAUDE_FLOW_V3_ENABLED: existingEnv.CLAUDE_FLOW_V3_ENABLED || 'true',
229
+ CLAUDE_FLOW_HOOKS_ENABLED: existingEnv.CLAUDE_FLOW_HOOKS_ENABLED || 'true',
230
+ };
231
+ // 2. Merge hooks (preserve existing, add new Agent Teams + auto-memory hooks)
232
+ const existingHooks = existing.hooks || {};
233
+ merged.hooks = { ...existingHooks };
234
+ // Cross-platform auto-memory hook commands that resolve paths via git root.
235
+ // Uses node -e with git rev-parse so hooks work regardless of CWD (#1259, #1284).
236
+ const gitRootResolver = "var c=require('child_process'),p=require('path'),u=require('url'),r;"
237
+ + "try{r=c.execSync('git rev-parse --show-toplevel',{encoding:'utf8'}).trim()}"
238
+ + 'catch(e){r=process.cwd()}';
239
+ const autoMemoryScript = '.claude/helpers/auto-memory-hook.mjs';
240
+ const autoMemoryImportCmd = `node -e "${gitRootResolver}var f=p.join(r,'${autoMemoryScript}');import(u.pathToFileURL(f).href)" import`;
241
+ const autoMemorySyncCmd = `node -e "${gitRootResolver}var f=p.join(r,'${autoMemoryScript}');import(u.pathToFileURL(f).href)" sync`;
242
+ // Add auto-memory import to SessionStart (if not already present)
243
+ const sessionStartHooks = existingHooks.SessionStart;
244
+ const hasAutoMemoryImport = sessionStartHooks?.some(group => group.hooks?.some(h => h.command?.includes('auto-memory-hook')));
245
+ if (!hasAutoMemoryImport) {
246
+ const startHooks = merged.hooks;
247
+ if (!startHooks.SessionStart) {
248
+ startHooks.SessionStart = [{ hooks: [] }];
249
+ }
250
+ const startGroup = startHooks.SessionStart[0];
251
+ if (!startGroup.hooks)
252
+ startGroup.hooks = [];
253
+ startGroup.hooks.push({
254
+ type: 'command',
255
+ command: autoMemoryImportCmd,
256
+ timeout: 6000,
257
+ continueOnError: true,
258
+ });
259
+ }
260
+ // Add auto-memory sync to SessionEnd (if not already present)
261
+ const sessionEndHooks = existingHooks.SessionEnd;
262
+ const hasAutoMemorySync = sessionEndHooks?.some(group => group.hooks?.some(h => h.command?.includes('auto-memory-hook')));
263
+ if (!hasAutoMemorySync) {
264
+ const endHooks = merged.hooks;
265
+ if (!endHooks.SessionEnd) {
266
+ endHooks.SessionEnd = [{ hooks: [] }];
267
+ }
268
+ const endGroup = endHooks.SessionEnd[0];
269
+ if (!endGroup.hooks)
270
+ endGroup.hooks = [];
271
+ // Insert at beginning so sync runs before other cleanup
272
+ endGroup.hooks.unshift({
273
+ type: 'command',
274
+ command: autoMemorySyncCmd,
275
+ timeout: 8000,
276
+ continueOnError: true,
277
+ });
278
+ }
279
+ // NOTE: TeammateIdle and TaskCompleted are NOT valid Claude Code hook events.
280
+ // They cause warnings when present in settings.json hooks.
281
+ // Remove them if they exist from a previous init.
282
+ delete merged.hooks.TeammateIdle;
283
+ delete merged.hooks.TaskCompleted;
284
+ // Their configuration lives in claudeFlow.agentTeams.hooks instead.
285
+ // 3. Fix statusLine config (remove invalid fields, ensure correct format)
286
+ // Claude Code only supports: type, command, padding
287
+ const existingStatusLine = existing.statusLine;
288
+ if (existingStatusLine) {
289
+ merged.statusLine = {
290
+ type: 'command',
291
+ command: existingStatusLine.command || `node -e "var c=require('child_process'),p=require('path'),r;try{r=c.execSync('git rev-parse --show-toplevel',{encoding:'utf8'}).trim()}catch(e){r=process.cwd()}var s=p.join(r,'.claude/helpers/statusline.cjs');process.argv.splice(1,0,s);require(s)"`,
292
+ // Remove invalid fields: refreshMs, enabled (not supported by Claude Code)
293
+ };
294
+ }
295
+ // 4. Merge claudeFlow settings (preserve existing, add agentTeams + memory)
296
+ const existingClaudeFlow = existing.claudeFlow || {};
297
+ const existingMemory = existingClaudeFlow.memory || {};
298
+ merged.claudeFlow = {
299
+ ...existingClaudeFlow,
300
+ version: existingClaudeFlow.version || '3.0.0',
301
+ enabled: existingClaudeFlow.enabled !== false,
302
+ agentTeams: {
303
+ enabled: true,
304
+ teammateMode: 'auto',
305
+ taskListEnabled: true,
306
+ mailboxEnabled: true,
307
+ coordination: {
308
+ autoAssignOnIdle: true,
309
+ trainPatternsOnComplete: true,
310
+ notifyLeadOnComplete: true,
311
+ sharedMemoryNamespace: 'agent-teams',
312
+ },
313
+ hooks: {
314
+ teammateIdle: { enabled: true, autoAssign: true, checkTaskList: true },
315
+ taskCompleted: { enabled: true, trainPatterns: true, notifyLead: true },
316
+ },
317
+ },
318
+ memory: {
319
+ ...existingMemory,
320
+ learningBridge: existingMemory.learningBridge ?? { enabled: true },
321
+ memoryGraph: existingMemory.memoryGraph ?? { enabled: true },
322
+ agentScopes: existingMemory.agentScopes ?? { enabled: true },
323
+ },
324
+ };
325
+ return merged;
326
+ }
327
+ /**
328
+ * Execute upgrade - updates helpers and creates missing metrics without losing data
329
+ * This is safe for existing users who want the latest statusline fixes
330
+ * @param targetDir - Target directory
331
+ * @param upgradeSettings - If true, merge new settings into existing settings.json
332
+ */
333
+ export async function executeUpgrade(targetDir, upgradeSettings = false) {
334
+ const result = {
335
+ success: true,
336
+ updated: [],
337
+ created: [],
338
+ preserved: [],
339
+ errors: [],
340
+ settingsUpdated: [],
341
+ };
342
+ try {
343
+ // Ensure required directories exist
344
+ const dirs = [
345
+ '.claude/helpers',
346
+ '.claude-flow/metrics',
347
+ '.claude-flow/security',
348
+ '.claude-flow/learning',
349
+ ];
350
+ for (const dir of dirs) {
351
+ const fullPath = path.join(targetDir, dir);
352
+ if (!fs.existsSync(fullPath)) {
353
+ fs.mkdirSync(fullPath, { recursive: true });
354
+ }
355
+ }
356
+ // 0. ALWAYS update critical helpers (force overwrite)
357
+ const sourceHelpersForUpgrade = findSourceHelpersDir();
358
+ if (sourceHelpersForUpgrade) {
359
+ const criticalHelpers = ['auto-memory-hook.mjs', 'hook-handler.cjs', 'intelligence.cjs'];
360
+ for (const helperName of criticalHelpers) {
361
+ const targetPath = path.join(targetDir, '.claude', 'helpers', helperName);
362
+ const sourcePath = path.join(sourceHelpersForUpgrade, helperName);
363
+ if (fs.existsSync(sourcePath)) {
364
+ if (fs.existsSync(targetPath)) {
365
+ result.updated.push(`.claude/helpers/${helperName}`);
366
+ }
367
+ else {
368
+ result.created.push(`.claude/helpers/${helperName}`);
369
+ }
370
+ fs.copyFileSync(sourcePath, targetPath);
371
+ try {
372
+ fs.chmodSync(targetPath, '755');
373
+ }
374
+ catch { }
375
+ }
376
+ }
377
+ }
378
+ else {
379
+ // Source not found (npx with broken paths) — use generated fallbacks
380
+ const generatedCritical = {
381
+ 'hook-handler.cjs': generateHookHandler(),
382
+ 'intelligence.cjs': generateIntelligenceStub(),
383
+ 'auto-memory-hook.mjs': generateAutoMemoryHook(),
384
+ };
385
+ for (const [helperName, content] of Object.entries(generatedCritical)) {
386
+ const targetPath = path.join(targetDir, '.claude', 'helpers', helperName);
387
+ if (fs.existsSync(targetPath)) {
388
+ result.updated.push(`.claude/helpers/${helperName}`);
389
+ }
390
+ else {
391
+ result.created.push(`.claude/helpers/${helperName}`);
392
+ }
393
+ fs.writeFileSync(targetPath, content, 'utf-8');
394
+ try {
395
+ fs.chmodSync(targetPath, '755');
396
+ }
397
+ catch { }
398
+ }
399
+ }
400
+ // 1. ALWAYS update statusline helper (force overwrite)
401
+ const statuslinePath = path.join(targetDir, '.claude', 'helpers', 'statusline.cjs');
402
+ // Use default options with statusline config
403
+ const upgradeOptions = {
404
+ ...DEFAULT_INIT_OPTIONS,
405
+ targetDir,
406
+ force: true,
407
+ statusline: {
408
+ ...DEFAULT_INIT_OPTIONS.statusline,
409
+ refreshInterval: 5000,
410
+ },
411
+ };
412
+ const statuslineContent = generateStatuslineScript(upgradeOptions);
413
+ if (fs.existsSync(statuslinePath)) {
414
+ result.updated.push('.claude/helpers/statusline.cjs');
415
+ }
416
+ else {
417
+ result.created.push('.claude/helpers/statusline.cjs');
418
+ }
419
+ fs.writeFileSync(statuslinePath, statuslineContent, 'utf-8');
420
+ // 2. Create MISSING metrics files only (preserve existing data)
421
+ const metricsDir = path.join(targetDir, '.claude-flow', 'metrics');
422
+ const securityDir = path.join(targetDir, '.claude-flow', 'security');
423
+ // v3-progress.json
424
+ const progressPath = path.join(metricsDir, 'v3-progress.json');
425
+ if (!fs.existsSync(progressPath)) {
426
+ const progress = {
427
+ version: '3.0.0',
428
+ initialized: new Date().toISOString(),
429
+ domains: { completed: 0, total: 5, status: 'INITIALIZING' },
430
+ ddd: { progress: 0, modules: 0, totalFiles: 0, totalLines: 0 },
431
+ swarm: { activeAgents: 0, maxAgents: 15, topology: 'hierarchical-mesh' },
432
+ learning: { status: 'READY', patternsLearned: 0, sessionsCompleted: 0 },
433
+ _note: 'Metrics will update as you use Odd Flow'
434
+ };
435
+ fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
436
+ result.created.push('.claude-flow/metrics/v3-progress.json');
437
+ }
438
+ else {
439
+ result.preserved.push('.claude-flow/metrics/v3-progress.json');
440
+ }
441
+ // swarm-activity.json
442
+ const activityPath = path.join(metricsDir, 'swarm-activity.json');
443
+ if (!fs.existsSync(activityPath)) {
444
+ const activity = {
445
+ timestamp: new Date().toISOString(),
446
+ processes: { agentic_flow: 0, mcp_server: 0, estimated_agents: 0 },
447
+ swarm: { active: false, agent_count: 0, coordination_active: false },
448
+ integration: { agentic_flow_active: false, mcp_active: false },
449
+ _initialized: true
450
+ };
451
+ fs.writeFileSync(activityPath, JSON.stringify(activity, null, 2), 'utf-8');
452
+ result.created.push('.claude-flow/metrics/swarm-activity.json');
453
+ }
454
+ else {
455
+ result.preserved.push('.claude-flow/metrics/swarm-activity.json');
456
+ }
457
+ // learning.json
458
+ const learningPath = path.join(metricsDir, 'learning.json');
459
+ if (!fs.existsSync(learningPath)) {
460
+ const learning = {
461
+ initialized: new Date().toISOString(),
462
+ routing: { accuracy: 0, decisions: 0 },
463
+ patterns: { shortTerm: 0, longTerm: 0, quality: 0 },
464
+ sessions: { total: 0, current: null },
465
+ _note: 'Intelligence grows as you use Odd Flow'
466
+ };
467
+ fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
468
+ result.created.push('.claude-flow/metrics/learning.json');
469
+ }
470
+ else {
471
+ result.preserved.push('.claude-flow/metrics/learning.json');
472
+ }
473
+ // audit-status.json
474
+ const auditPath = path.join(securityDir, 'audit-status.json');
475
+ if (!fs.existsSync(auditPath)) {
476
+ const audit = {
477
+ initialized: new Date().toISOString(),
478
+ status: 'PENDING',
479
+ cvesFixed: 0,
480
+ totalCves: 3,
481
+ lastScan: null,
482
+ _note: 'Run: npx @claude-flow/cli@latest security scan'
483
+ };
484
+ fs.writeFileSync(auditPath, JSON.stringify(audit, null, 2), 'utf-8');
485
+ result.created.push('.claude-flow/security/audit-status.json');
486
+ }
487
+ else {
488
+ result.preserved.push('.claude-flow/security/audit-status.json');
489
+ }
490
+ // 3. Merge settings if requested
491
+ if (upgradeSettings) {
492
+ const settingsPath = path.join(targetDir, '.claude', 'settings.json');
493
+ if (fs.existsSync(settingsPath)) {
494
+ try {
495
+ const existingSettings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
496
+ const mergedSettings = mergeSettingsForUpgrade(existingSettings);
497
+ fs.writeFileSync(settingsPath, JSON.stringify(mergedSettings, null, 2), 'utf-8');
498
+ result.updated.push('.claude/settings.json');
499
+ result.settingsUpdated = [
500
+ 'env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS',
501
+ 'hooks.SessionStart (auto-memory import)',
502
+ 'hooks.SessionEnd (auto-memory sync)',
503
+ 'hooks.TeammateIdle (removed — not a valid Claude Code hook)',
504
+ 'hooks.TaskCompleted (removed — not a valid Claude Code hook)',
505
+ 'claudeFlow.agentTeams',
506
+ 'claudeFlow.memory (learningBridge, memoryGraph, agentScopes)',
507
+ ];
508
+ }
509
+ catch (settingsError) {
510
+ result.errors.push(`Settings merge failed: ${settingsError instanceof Error ? settingsError.message : String(settingsError)}`);
511
+ }
512
+ }
513
+ else {
514
+ // Create new settings.json with defaults
515
+ const defaultSettings = generateSettings(DEFAULT_INIT_OPTIONS);
516
+ fs.writeFileSync(settingsPath, JSON.stringify(defaultSettings, null, 2), 'utf-8');
517
+ result.created.push('.claude/settings.json');
518
+ result.settingsUpdated = ['Created new settings.json with Agent Teams'];
519
+ }
520
+ }
521
+ }
522
+ catch (error) {
523
+ result.success = false;
524
+ result.errors.push(error instanceof Error ? error.message : String(error));
525
+ }
526
+ return result;
527
+ }
528
+ /**
529
+ * Execute upgrade with --add-missing flag
530
+ * Adds any new skills, agents, and commands that don't exist yet
531
+ * @param targetDir - Target directory
532
+ * @param upgradeSettings - If true, merge new settings into existing settings.json
533
+ */
534
+ export async function executeUpgradeWithMissing(targetDir, upgradeSettings = false) {
535
+ // First do the normal upgrade (pass through upgradeSettings)
536
+ const result = await executeUpgrade(targetDir, upgradeSettings);
537
+ if (!result.success) {
538
+ return result;
539
+ }
540
+ // Initialize tracking arrays
541
+ result.addedSkills = [];
542
+ result.addedAgents = [];
543
+ result.addedCommands = [];
544
+ try {
545
+ // Ensure target directories exist
546
+ const skillsDir = path.join(targetDir, '.claude', 'skills');
547
+ const agentsDir = path.join(targetDir, '.claude', 'agents');
548
+ const commandsDir = path.join(targetDir, '.claude', 'commands');
549
+ for (const dir of [skillsDir, agentsDir, commandsDir]) {
550
+ if (!fs.existsSync(dir)) {
551
+ fs.mkdirSync(dir, { recursive: true });
552
+ }
553
+ }
554
+ // Find source directories
555
+ const sourceSkillsDir = findSourceDir('skills');
556
+ const sourceAgentsDir = findSourceDir('agents');
557
+ const sourceCommandsDir = findSourceDir('commands');
558
+ // Debug: Log source directories found
559
+ if (process.env.DEBUG || process.env.CLAUDE_FLOW_DEBUG) {
560
+ console.log('[DEBUG] Source directories:');
561
+ console.log(` Skills: ${sourceSkillsDir || 'NOT FOUND'}`);
562
+ console.log(` Agents: ${sourceAgentsDir || 'NOT FOUND'}`);
563
+ console.log(` Commands: ${sourceCommandsDir || 'NOT FOUND'}`);
564
+ }
565
+ // Add missing skills
566
+ if (sourceSkillsDir) {
567
+ const allSkills = Object.values(SKILLS_MAP).flat();
568
+ const debugMode = process.env.DEBUG || process.env.CLAUDE_FLOW_DEBUG;
569
+ if (debugMode) {
570
+ console.log(`[DEBUG] Checking ${allSkills.length} skills from SKILLS_MAP`);
571
+ }
572
+ for (const skillName of [...new Set(allSkills)]) {
573
+ const sourcePath = path.join(sourceSkillsDir, skillName);
574
+ const targetPath = path.join(skillsDir, skillName);
575
+ const sourceExists = fs.existsSync(sourcePath);
576
+ const targetExists = fs.existsSync(targetPath);
577
+ if (debugMode) {
578
+ console.log(`[DEBUG] Skill '${skillName}': source=${sourceExists}, target=${targetExists}`);
579
+ }
580
+ if (sourceExists && !targetExists) {
581
+ copyDirRecursive(sourcePath, targetPath);
582
+ result.addedSkills.push(skillName);
583
+ result.created.push(`.claude/skills/${skillName}`);
584
+ }
585
+ }
586
+ }
587
+ // Add missing agents
588
+ if (sourceAgentsDir) {
589
+ const allAgents = Object.values(AGENTS_MAP).flat();
590
+ for (const agentCategory of [...new Set(allAgents)]) {
591
+ const sourcePath = path.join(sourceAgentsDir, agentCategory);
592
+ const targetPath = path.join(agentsDir, agentCategory);
593
+ if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
594
+ copyDirRecursive(sourcePath, targetPath);
595
+ result.addedAgents.push(agentCategory);
596
+ result.created.push(`.claude/agents/${agentCategory}`);
597
+ }
598
+ }
599
+ }
600
+ // Add missing commands
601
+ if (sourceCommandsDir) {
602
+ const allCommands = Object.values(COMMANDS_MAP).flat();
603
+ for (const cmdName of [...new Set(allCommands)]) {
604
+ const sourcePath = path.join(sourceCommandsDir, cmdName);
605
+ const targetPath = path.join(commandsDir, cmdName);
606
+ if (fs.existsSync(sourcePath) && !fs.existsSync(targetPath)) {
607
+ if (fs.statSync(sourcePath).isDirectory()) {
608
+ copyDirRecursive(sourcePath, targetPath);
609
+ }
610
+ else {
611
+ fs.copyFileSync(sourcePath, targetPath);
612
+ }
613
+ result.addedCommands.push(cmdName);
614
+ result.created.push(`.claude/commands/${cmdName}`);
615
+ }
616
+ }
617
+ }
618
+ }
619
+ catch (error) {
620
+ result.errors.push(`Add missing failed: ${error instanceof Error ? error.message : String(error)}`);
621
+ }
622
+ return result;
623
+ }
624
+ /**
625
+ * Create directory structure
626
+ */
627
+ async function createDirectories(targetDir, options, result) {
628
+ const dirs = [
629
+ ...DIRECTORIES.claude,
630
+ ...(options.components.runtime ? DIRECTORIES.runtime : []),
631
+ ];
632
+ for (const dir of dirs) {
633
+ const fullPath = path.join(targetDir, dir);
634
+ if (!fs.existsSync(fullPath)) {
635
+ fs.mkdirSync(fullPath, { recursive: true });
636
+ result.created.directories.push(dir);
637
+ }
638
+ }
639
+ }
640
+ /**
641
+ * Write settings.json
642
+ */
643
+ async function writeSettings(targetDir, options, result) {
644
+ const settingsPath = path.join(targetDir, '.claude', 'settings.json');
645
+ const generated = JSON.parse(generateSettingsJson(options));
646
+ if (fs.existsSync(settingsPath) && !options.force) {
647
+ // Merge hooks/env/permissions into existing settings instead of skipping
648
+ try {
649
+ const existing = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
650
+ let merged = false;
651
+ // Merge hooks (the critical missing piece — #1484)
652
+ if (generated.hooks && !existing.hooks) {
653
+ existing.hooks = generated.hooks;
654
+ merged = true;
655
+ }
656
+ // Merge env vars (for CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS etc.)
657
+ if (generated.env) {
658
+ existing.env = { ...(existing.env || {}), ...generated.env };
659
+ merged = true;
660
+ }
661
+ // Merge permissions (add odd-flow allow rules)
662
+ if (generated.permissions?.allow) {
663
+ const existingAllow = existing.permissions?.allow || [];
664
+ const newRules = generated.permissions.allow.filter((r) => !existingAllow.includes(r));
665
+ if (newRules.length > 0) {
666
+ existing.permissions = existing.permissions || {};
667
+ existing.permissions.allow = [...existingAllow, ...newRules];
668
+ merged = true;
669
+ }
670
+ }
671
+ if (merged) {
672
+ fs.writeFileSync(settingsPath, JSON.stringify(existing, null, 2), 'utf-8');
673
+ result.created.files.push('.claude/settings.json (merged hooks)');
674
+ }
675
+ else {
676
+ result.skipped.push('.claude/settings.json');
677
+ }
678
+ }
679
+ catch {
680
+ // Existing file is corrupt — overwrite
681
+ fs.writeFileSync(settingsPath, JSON.stringify(generated, null, 2), 'utf-8');
682
+ result.created.files.push('.claude/settings.json');
683
+ }
684
+ return;
685
+ }
686
+ fs.writeFileSync(settingsPath, JSON.stringify(generated, null, 2), 'utf-8');
687
+ result.created.files.push('.claude/settings.json');
688
+ }
689
+ /**
690
+ * Write .mcp.json
691
+ */
692
+ async function writeMCPConfig(targetDir, options, result) {
693
+ const mcpPath = path.join(targetDir, '.mcp.json');
694
+ if (fs.existsSync(mcpPath) && !options.force) {
695
+ result.skipped.push('.mcp.json');
696
+ return;
697
+ }
698
+ const content = generateMCPJson(options);
699
+ fs.writeFileSync(mcpPath, content, 'utf-8');
700
+ result.created.files.push('.mcp.json');
701
+ }
702
+ /**
703
+ * Copy skills from source
704
+ */
705
+ async function copySkills(targetDir, options, result) {
706
+ const skillsConfig = options.skills;
707
+ const targetSkillsDir = path.join(targetDir, '.claude', 'skills');
708
+ // Determine which skills to copy
709
+ const skillsToCopy = [];
710
+ if (skillsConfig.all) {
711
+ // Copy all available skills
712
+ Object.values(SKILLS_MAP).forEach(skills => skillsToCopy.push(...skills));
713
+ }
714
+ else {
715
+ if (skillsConfig.core)
716
+ skillsToCopy.push(...SKILLS_MAP.core);
717
+ if (skillsConfig.agentdb)
718
+ skillsToCopy.push(...SKILLS_MAP.agentdb);
719
+ if (skillsConfig.github)
720
+ skillsToCopy.push(...SKILLS_MAP.github);
721
+ if (skillsConfig.flowNexus)
722
+ skillsToCopy.push(...SKILLS_MAP.flowNexus);
723
+ if (skillsConfig.browser)
724
+ skillsToCopy.push(...SKILLS_MAP.browser);
725
+ if (skillsConfig.v3)
726
+ skillsToCopy.push(...SKILLS_MAP.v3);
727
+ if (skillsConfig.dualMode)
728
+ skillsToCopy.push(...SKILLS_MAP.dualMode);
729
+ }
730
+ // Find source skills directory
731
+ const sourceSkillsDir = findSourceDir('skills', options.sourceBaseDir);
732
+ if (!sourceSkillsDir) {
733
+ result.errors.push('Could not find source skills directory');
734
+ return;
735
+ }
736
+ // Copy each skill
737
+ for (const skillName of [...new Set(skillsToCopy)]) {
738
+ const sourcePath = path.join(sourceSkillsDir, skillName);
739
+ const targetPath = path.join(targetSkillsDir, skillName);
740
+ if (fs.existsSync(sourcePath)) {
741
+ if (!fs.existsSync(targetPath) || options.force) {
742
+ copyDirRecursive(sourcePath, targetPath);
743
+ result.created.files.push(`.claude/skills/${skillName}`);
744
+ result.summary.skillsCount++;
745
+ }
746
+ else {
747
+ result.skipped.push(`.claude/skills/${skillName}`);
748
+ }
749
+ }
750
+ }
751
+ }
752
+ /**
753
+ * Copy commands from source
754
+ */
755
+ async function copyCommands(targetDir, options, result) {
756
+ const commandsConfig = options.commands;
757
+ const targetCommandsDir = path.join(targetDir, '.claude', 'commands');
758
+ // Determine which commands to copy
759
+ const commandsToCopy = [];
760
+ if (commandsConfig.all) {
761
+ Object.values(COMMANDS_MAP).forEach(cmds => commandsToCopy.push(...cmds));
762
+ }
763
+ else {
764
+ if (commandsConfig.core)
765
+ commandsToCopy.push(...COMMANDS_MAP.core);
766
+ if (commandsConfig.analysis)
767
+ commandsToCopy.push(...COMMANDS_MAP.analysis);
768
+ if (commandsConfig.automation)
769
+ commandsToCopy.push(...COMMANDS_MAP.automation);
770
+ if (commandsConfig.github)
771
+ commandsToCopy.push(...COMMANDS_MAP.github);
772
+ if (commandsConfig.hooks)
773
+ commandsToCopy.push(...COMMANDS_MAP.hooks);
774
+ if (commandsConfig.monitoring)
775
+ commandsToCopy.push(...COMMANDS_MAP.monitoring);
776
+ if (commandsConfig.optimization)
777
+ commandsToCopy.push(...COMMANDS_MAP.optimization);
778
+ if (commandsConfig.sparc)
779
+ commandsToCopy.push(...COMMANDS_MAP.sparc);
780
+ }
781
+ // Find source commands directory
782
+ const sourceCommandsDir = findSourceDir('commands', options.sourceBaseDir);
783
+ if (!sourceCommandsDir) {
784
+ result.errors.push('Could not find source commands directory');
785
+ return;
786
+ }
787
+ // Copy each command/directory
788
+ for (const cmdName of [...new Set(commandsToCopy)]) {
789
+ const sourcePath = path.join(sourceCommandsDir, cmdName);
790
+ const targetPath = path.join(targetCommandsDir, cmdName);
791
+ if (fs.existsSync(sourcePath)) {
792
+ if (!fs.existsSync(targetPath) || options.force) {
793
+ if (fs.statSync(sourcePath).isDirectory()) {
794
+ copyDirRecursive(sourcePath, targetPath);
795
+ }
796
+ else {
797
+ fs.copyFileSync(sourcePath, targetPath);
798
+ }
799
+ result.created.files.push(`.claude/commands/${cmdName}`);
800
+ result.summary.commandsCount++;
801
+ }
802
+ else {
803
+ result.skipped.push(`.claude/commands/${cmdName}`);
804
+ }
805
+ }
806
+ }
807
+ }
808
+ /**
809
+ * Copy agents from source
810
+ */
811
+ async function copyAgents(targetDir, options, result) {
812
+ const agentsConfig = options.agents;
813
+ const targetAgentsDir = path.join(targetDir, '.claude', 'agents');
814
+ // Determine which agents to copy
815
+ const agentsToCopy = [];
816
+ if (agentsConfig.all) {
817
+ Object.values(AGENTS_MAP).forEach(agents => agentsToCopy.push(...agents));
818
+ }
819
+ else {
820
+ if (agentsConfig.core)
821
+ agentsToCopy.push(...AGENTS_MAP.core);
822
+ if (agentsConfig.consensus)
823
+ agentsToCopy.push(...AGENTS_MAP.consensus);
824
+ if (agentsConfig.github)
825
+ agentsToCopy.push(...AGENTS_MAP.github);
826
+ if (agentsConfig.hiveMind)
827
+ agentsToCopy.push(...AGENTS_MAP.hiveMind);
828
+ if (agentsConfig.sparc)
829
+ agentsToCopy.push(...AGENTS_MAP.sparc);
830
+ if (agentsConfig.swarm)
831
+ agentsToCopy.push(...AGENTS_MAP.swarm);
832
+ if (agentsConfig.browser)
833
+ agentsToCopy.push(...AGENTS_MAP.browser);
834
+ // V3-specific agent categories
835
+ if (agentsConfig.v3)
836
+ agentsToCopy.push(...(AGENTS_MAP.v3 || []));
837
+ if (agentsConfig.optimization)
838
+ agentsToCopy.push(...(AGENTS_MAP.optimization || []));
839
+ if (agentsConfig.testing)
840
+ agentsToCopy.push(...(AGENTS_MAP.testing || []));
841
+ // Dual-mode agents (Claude Code + Codex hybrid)
842
+ if (agentsConfig.dualMode)
843
+ agentsToCopy.push(...(AGENTS_MAP.dualMode || []));
844
+ }
845
+ // Find source agents directory
846
+ const sourceAgentsDir = findSourceDir('agents', options.sourceBaseDir);
847
+ if (!sourceAgentsDir) {
848
+ result.errors.push('Could not find source agents directory');
849
+ return;
850
+ }
851
+ // Copy each agent category
852
+ for (const agentCategory of [...new Set(agentsToCopy)]) {
853
+ const sourcePath = path.join(sourceAgentsDir, agentCategory);
854
+ const targetPath = path.join(targetAgentsDir, agentCategory);
855
+ if (fs.existsSync(sourcePath)) {
856
+ if (!fs.existsSync(targetPath) || options.force) {
857
+ copyDirRecursive(sourcePath, targetPath);
858
+ // Count agent files (.md only — .yaml agents were migrated to .md)
859
+ const mdFiles = countFiles(sourcePath, '.md');
860
+ result.summary.agentsCount += mdFiles;
861
+ result.created.files.push(`.claude/agents/${agentCategory}`);
862
+ }
863
+ else {
864
+ result.skipped.push(`.claude/agents/${agentCategory}`);
865
+ }
866
+ }
867
+ }
868
+ }
869
+ /**
870
+ * Find source helpers directory.
871
+ * Validates that the directory contains hook-handler.cjs to avoid
872
+ * returning the target directory or an incomplete source.
873
+ */
874
+ function findSourceHelpersDir(sourceBaseDir) {
875
+ const possiblePaths = [];
876
+ const SENTINEL_FILE = 'hook-handler.cjs'; // Must exist in valid source
877
+ // If explicit source base directory is provided, check it first
878
+ if (sourceBaseDir) {
879
+ possiblePaths.push(path.join(sourceBaseDir, '.claude', 'helpers'));
880
+ }
881
+ // Strategy 1: require.resolve to find package root (most reliable for npx)
882
+ try {
883
+ const esmRequire = createRequire(import.meta.url);
884
+ const pkgJsonPath = esmRequire.resolve('@claude-flow/cli/package.json');
885
+ const pkgRoot = path.dirname(pkgJsonPath);
886
+ possiblePaths.push(path.join(pkgRoot, '.claude', 'helpers'));
887
+ }
888
+ catch {
889
+ // Not installed as a package — skip
890
+ }
891
+ // Strategy 2: __dirname-based (dist/src/init -> package root)
892
+ const packageRoot = path.resolve(__dirname, '..', '..', '..');
893
+ const packageHelpers = path.join(packageRoot, '.claude', 'helpers');
894
+ possiblePaths.push(packageHelpers);
895
+ // Strategy 3: Walk up from __dirname looking for package root
896
+ let currentDir = __dirname;
897
+ for (let i = 0; i < 10; i++) {
898
+ const parentDir = path.dirname(currentDir);
899
+ if (parentDir === currentDir)
900
+ break; // hit filesystem root
901
+ const helpersPath = path.join(parentDir, '.claude', 'helpers');
902
+ possiblePaths.push(helpersPath);
903
+ currentDir = parentDir;
904
+ }
905
+ // Strategy 4: Check cwd-relative paths (for local dev)
906
+ const cwdBased = [
907
+ path.join(process.cwd(), '.claude', 'helpers'),
908
+ path.join(process.cwd(), '..', '.claude', 'helpers'),
909
+ path.join(process.cwd(), '..', '..', '.claude', 'helpers'),
910
+ ];
911
+ possiblePaths.push(...cwdBased);
912
+ // Return first path that exists AND contains the sentinel file
913
+ for (const p of possiblePaths) {
914
+ if (fs.existsSync(p) && fs.existsSync(path.join(p, SENTINEL_FILE))) {
915
+ return p;
916
+ }
917
+ }
918
+ return null;
919
+ }
920
+ /**
921
+ * Write helper scripts
922
+ */
923
+ async function writeHelpers(targetDir, options, result) {
924
+ const helpersDir = path.join(targetDir, '.claude', 'helpers');
925
+ // Find source helpers directory (works for npm package and local dev)
926
+ const sourceHelpersDir = findSourceHelpersDir(options.sourceBaseDir);
927
+ // Try to copy existing helpers from source first
928
+ if (sourceHelpersDir && fs.existsSync(sourceHelpersDir)) {
929
+ const helperFiles = fs.readdirSync(sourceHelpersDir);
930
+ let copiedCount = 0;
931
+ for (const file of helperFiles) {
932
+ const sourcePath = path.join(sourceHelpersDir, file);
933
+ const destPath = path.join(helpersDir, file);
934
+ // Skip directories and only copy files
935
+ if (!fs.statSync(sourcePath).isFile())
936
+ continue;
937
+ if (!fs.existsSync(destPath) || options.force) {
938
+ fs.copyFileSync(sourcePath, destPath);
939
+ // Make shell scripts and mjs files executable
940
+ if (file.endsWith('.sh') || file.endsWith('.mjs')) {
941
+ fs.chmodSync(destPath, '755');
942
+ }
943
+ result.created.files.push(`.claude/helpers/${file}`);
944
+ copiedCount++;
945
+ }
946
+ else {
947
+ result.skipped.push(`.claude/helpers/${file}`);
948
+ }
949
+ }
950
+ if (copiedCount > 0) {
951
+ return; // Skip generating if we copied from source
952
+ }
953
+ }
954
+ // Fall back to generating helpers if source not available
955
+ const helpers = {
956
+ 'pre-commit': generatePreCommitHook(),
957
+ 'post-commit': generatePostCommitHook(),
958
+ 'session.js': generateSessionManager(),
959
+ 'router.js': generateAgentRouter(),
960
+ 'memory.js': generateMemoryHelper(),
961
+ 'hook-handler.cjs': generateHookHandler(),
962
+ 'intelligence.cjs': generateIntelligenceStub(),
963
+ 'auto-memory-hook.mjs': generateAutoMemoryHook(),
964
+ };
965
+ for (const [name, content] of Object.entries(helpers)) {
966
+ const filePath = path.join(helpersDir, name);
967
+ if (!fs.existsSync(filePath) || options.force) {
968
+ fs.writeFileSync(filePath, content, 'utf-8');
969
+ // Make shell scripts executable
970
+ if (!name.endsWith('.js')) {
971
+ fs.chmodSync(filePath, '755');
972
+ }
973
+ result.created.files.push(`.claude/helpers/${name}`);
974
+ }
975
+ else {
976
+ result.skipped.push(`.claude/helpers/${name}`);
977
+ }
978
+ }
979
+ }
980
+ /**
981
+ * Find source .claude directory for statusline files
982
+ */
983
+ function findSourceClaudeDir(sourceBaseDir) {
984
+ const possiblePaths = [];
985
+ // If explicit source base directory is provided, check it first
986
+ if (sourceBaseDir) {
987
+ possiblePaths.push(path.join(sourceBaseDir, '.claude'));
988
+ }
989
+ // IMPORTANT: Check the package's own .claude directory
990
+ // Go up 3 levels: dist/src/init -> dist/src -> dist -> root
991
+ const packageRoot = path.resolve(__dirname, '..', '..', '..');
992
+ const packageClaude = path.join(packageRoot, '.claude');
993
+ if (fs.existsSync(packageClaude)) {
994
+ possiblePaths.unshift(packageClaude); // Add to beginning (highest priority)
995
+ }
996
+ // From dist/src/init -> go up to project root
997
+ let currentDir = __dirname;
998
+ for (let i = 0; i < 10; i++) {
999
+ const parentDir = path.dirname(currentDir);
1000
+ const claudePath = path.join(parentDir, '.claude');
1001
+ if (fs.existsSync(claudePath)) {
1002
+ possiblePaths.push(claudePath);
1003
+ }
1004
+ currentDir = parentDir;
1005
+ }
1006
+ for (const p of possiblePaths) {
1007
+ if (fs.existsSync(p)) {
1008
+ return p;
1009
+ }
1010
+ }
1011
+ return null;
1012
+ }
1013
+ /**
1014
+ * Write statusline configuration
1015
+ */
1016
+ async function writeStatusline(targetDir, options, result) {
1017
+ const claudeDir = path.join(targetDir, '.claude');
1018
+ const helpersDir = path.join(targetDir, '.claude', 'helpers');
1019
+ // Find source .claude directory (works for npm package and local dev)
1020
+ const sourceClaudeDir = findSourceClaudeDir(options.sourceBaseDir);
1021
+ // Try to copy existing advanced statusline files from source
1022
+ const advancedStatuslineFiles = [
1023
+ { src: 'statusline.sh', dest: 'statusline.sh', dir: claudeDir },
1024
+ { src: 'statusline.mjs', dest: 'statusline.mjs', dir: claudeDir },
1025
+ ];
1026
+ if (sourceClaudeDir) {
1027
+ for (const file of advancedStatuslineFiles) {
1028
+ const sourcePath = path.join(sourceClaudeDir, file.src);
1029
+ const destPath = path.join(file.dir, file.dest);
1030
+ if (fs.existsSync(sourcePath)) {
1031
+ if (!fs.existsSync(destPath) || options.force) {
1032
+ fs.copyFileSync(sourcePath, destPath);
1033
+ // Make shell scripts and mjs executable
1034
+ if (file.src.endsWith('.sh') || file.src.endsWith('.mjs')) {
1035
+ fs.chmodSync(destPath, '755');
1036
+ }
1037
+ result.created.files.push(`.claude/${file.dest}`);
1038
+ }
1039
+ else {
1040
+ result.skipped.push(`.claude/${file.dest}`);
1041
+ }
1042
+ }
1043
+ }
1044
+ }
1045
+ // ALWAYS generate statusline.cjs — the generated version includes AgentDB
1046
+ // vectors/size, tests, ADRs, hooks, and integration stats that the
1047
+ // pre-installed static copy in the npm package lacks.
1048
+ // This must overwrite any copy from writeHelpers() which copies the legacy file.
1049
+ const statuslineScript = generateStatuslineScript(options);
1050
+ const statuslinePath = path.join(helpersDir, 'statusline.cjs');
1051
+ fs.writeFileSync(statuslinePath, statuslineScript, 'utf-8');
1052
+ result.created.files.push('.claude/helpers/statusline.cjs');
1053
+ }
1054
+ /**
1055
+ * Write runtime configuration (.claude-flow/)
1056
+ */
1057
+ async function writeRuntimeConfig(targetDir, options, result) {
1058
+ const configPath = path.join(targetDir, '.claude-flow', 'config.yaml');
1059
+ if (fs.existsSync(configPath) && !options.force) {
1060
+ result.skipped.push('.claude-flow/config.yaml');
1061
+ return;
1062
+ }
1063
+ const config = `# Odd Flow Runtime Configuration
1064
+ # Generated: ${new Date().toISOString()}
1065
+
1066
+ version: "3.0.0"
1067
+
1068
+ swarm:
1069
+ topology: ${options.runtime.topology}
1070
+ maxAgents: ${options.runtime.maxAgents}
1071
+ autoScale: true
1072
+ coordinationStrategy: consensus
1073
+
1074
+ memory:
1075
+ backend: ${options.runtime.memoryBackend}
1076
+ enableHNSW: ${options.runtime.enableHNSW}
1077
+ persistPath: .claude-flow/data
1078
+ cacheSize: 100
1079
+ # ADR-049: Self-Learning Memory
1080
+ learningBridge:
1081
+ enabled: ${options.runtime.enableLearningBridge ?? options.runtime.enableNeural}
1082
+ sonaMode: balanced
1083
+ confidenceDecayRate: 0.005
1084
+ accessBoostAmount: 0.03
1085
+ consolidationThreshold: 10
1086
+ memoryGraph:
1087
+ enabled: ${options.runtime.enableMemoryGraph ?? true}
1088
+ pageRankDamping: 0.85
1089
+ maxNodes: 5000
1090
+ similarityThreshold: 0.8
1091
+ agentScopes:
1092
+ enabled: ${options.runtime.enableAgentScopes ?? true}
1093
+ defaultScope: project
1094
+
1095
+ neural:
1096
+ enabled: ${options.runtime.enableNeural}
1097
+ modelPath: .claude-flow/neural
1098
+
1099
+ hooks:
1100
+ enabled: true
1101
+ autoExecute: true
1102
+
1103
+ mcp:
1104
+ autoStart: ${options.mcp.autoStart}
1105
+ port: ${options.mcp.port}
1106
+ `;
1107
+ fs.writeFileSync(configPath, config, 'utf-8');
1108
+ result.created.files.push('.claude-flow/config.yaml');
1109
+ // Write .gitignore
1110
+ const gitignorePath = path.join(targetDir, '.claude-flow', '.gitignore');
1111
+ const gitignore = `# Claude Flow runtime files
1112
+ data/
1113
+ logs/
1114
+ sessions/
1115
+ neural/
1116
+ *.log
1117
+ *.tmp
1118
+ `;
1119
+ if (!fs.existsSync(gitignorePath) || options.force) {
1120
+ fs.writeFileSync(gitignorePath, gitignore, 'utf-8');
1121
+ result.created.files.push('.claude-flow/.gitignore');
1122
+ }
1123
+ // Write CAPABILITIES.md with full system overview
1124
+ await writeCapabilitiesDoc(targetDir, options, result);
1125
+ }
1126
+ /**
1127
+ * Write initial metrics files for statusline
1128
+ * Creates baseline data so statusline shows meaningful state instead of all zeros
1129
+ */
1130
+ async function writeInitialMetrics(targetDir, options, result) {
1131
+ const metricsDir = path.join(targetDir, '.claude-flow', 'metrics');
1132
+ const learningDir = path.join(targetDir, '.claude-flow', 'learning');
1133
+ const securityDir = path.join(targetDir, '.claude-flow', 'security');
1134
+ // Ensure directories exist
1135
+ for (const dir of [metricsDir, learningDir, securityDir]) {
1136
+ if (!fs.existsSync(dir)) {
1137
+ fs.mkdirSync(dir, { recursive: true });
1138
+ }
1139
+ }
1140
+ // Create initial v3-progress.json
1141
+ const progressPath = path.join(metricsDir, 'v3-progress.json');
1142
+ if (!fs.existsSync(progressPath) || options.force) {
1143
+ const progress = {
1144
+ version: '3.0.0',
1145
+ initialized: new Date().toISOString(),
1146
+ domains: {
1147
+ completed: 0,
1148
+ total: 5,
1149
+ status: 'INITIALIZING'
1150
+ },
1151
+ ddd: {
1152
+ progress: 0,
1153
+ modules: 0,
1154
+ totalFiles: 0,
1155
+ totalLines: 0
1156
+ },
1157
+ swarm: {
1158
+ activeAgents: 0,
1159
+ maxAgents: options.runtime.maxAgents,
1160
+ topology: options.runtime.topology
1161
+ },
1162
+ learning: {
1163
+ status: 'READY',
1164
+ patternsLearned: 0,
1165
+ sessionsCompleted: 0
1166
+ },
1167
+ _note: 'Metrics will update as you use Odd Flow. Run: npx odd-flow@latest daemon start'
1168
+ };
1169
+ fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2), 'utf-8');
1170
+ result.created.files.push('.claude-flow/metrics/v3-progress.json');
1171
+ }
1172
+ // Create initial swarm-activity.json
1173
+ const activityPath = path.join(metricsDir, 'swarm-activity.json');
1174
+ if (!fs.existsSync(activityPath) || options.force) {
1175
+ const activity = {
1176
+ timestamp: new Date().toISOString(),
1177
+ processes: {
1178
+ agentic_flow: 0,
1179
+ mcp_server: 0,
1180
+ estimated_agents: 0
1181
+ },
1182
+ swarm: {
1183
+ active: false,
1184
+ agent_count: 0,
1185
+ coordination_active: false
1186
+ },
1187
+ integration: {
1188
+ agentic_flow_active: false,
1189
+ mcp_active: false
1190
+ },
1191
+ _initialized: true
1192
+ };
1193
+ fs.writeFileSync(activityPath, JSON.stringify(activity, null, 2), 'utf-8');
1194
+ result.created.files.push('.claude-flow/metrics/swarm-activity.json');
1195
+ }
1196
+ // Create initial learning.json
1197
+ const learningPath = path.join(metricsDir, 'learning.json');
1198
+ if (!fs.existsSync(learningPath) || options.force) {
1199
+ const learning = {
1200
+ initialized: new Date().toISOString(),
1201
+ routing: {
1202
+ accuracy: 0,
1203
+ decisions: 0
1204
+ },
1205
+ patterns: {
1206
+ shortTerm: 0,
1207
+ longTerm: 0,
1208
+ quality: 0
1209
+ },
1210
+ sessions: {
1211
+ total: 0,
1212
+ current: null
1213
+ },
1214
+ _note: 'Intelligence grows as you use Odd Flow'
1215
+ };
1216
+ fs.writeFileSync(learningPath, JSON.stringify(learning, null, 2), 'utf-8');
1217
+ result.created.files.push('.claude-flow/metrics/learning.json');
1218
+ }
1219
+ // Create initial audit-status.json
1220
+ const auditPath = path.join(securityDir, 'audit-status.json');
1221
+ if (!fs.existsSync(auditPath) || options.force) {
1222
+ const audit = {
1223
+ initialized: new Date().toISOString(),
1224
+ status: 'PENDING',
1225
+ cvesFixed: 0,
1226
+ totalCves: 3,
1227
+ lastScan: null,
1228
+ _note: 'Run: npx @claude-flow/cli@latest security scan'
1229
+ };
1230
+ fs.writeFileSync(auditPath, JSON.stringify(audit, null, 2), 'utf-8');
1231
+ result.created.files.push('.claude-flow/security/audit-status.json');
1232
+ }
1233
+ }
1234
+ /**
1235
+ * Write CAPABILITIES.md - comprehensive overview of all Odd Flow features
1236
+ */
1237
+ async function writeCapabilitiesDoc(targetDir, options, result) {
1238
+ const capabilitiesPath = path.join(targetDir, '.claude-flow', 'CAPABILITIES.md');
1239
+ if (fs.existsSync(capabilitiesPath) && !options.force) {
1240
+ result.skipped.push('.claude-flow/CAPABILITIES.md');
1241
+ return;
1242
+ }
1243
+ const capabilities = `# Odd Flow - Complete Capabilities Reference
1244
+ > Generated: ${new Date().toISOString()}
1245
+ > Full documentation: https://github.com/ruvnet/claude-flow
1246
+
1247
+ ## 📋 Table of Contents
1248
+
1249
+ 1. [Overview](#overview)
1250
+ 2. [Swarm Orchestration](#swarm-orchestration)
1251
+ 3. [Available Agents (60+)](#available-agents)
1252
+ 4. [CLI Commands (26 Commands, 140+ Subcommands)](#cli-commands)
1253
+ 5. [Hooks System (27 Hooks + 12 Workers)](#hooks-system)
1254
+ 6. [Memory & Intelligence (RuVector)](#memory--intelligence)
1255
+ 7. [Hive-Mind Consensus](#hive-mind-consensus)
1256
+ 8. [Performance Targets](#performance-targets)
1257
+ 9. [Integration Ecosystem](#integration-ecosystem)
1258
+
1259
+ ---
1260
+
1261
+ ## Overview
1262
+
1263
+ Odd Flow is a domain-driven design architecture for multi-agent AI coordination with:
1264
+
1265
+ - **15-Agent Swarm Coordination** with hierarchical and mesh topologies
1266
+ - **HNSW Vector Search** - 150x-12,500x faster pattern retrieval
1267
+ - **SONA Neural Learning** - Self-optimizing with <0.05ms adaptation
1268
+ - **Byzantine Fault Tolerance** - Queen-led consensus mechanisms
1269
+ - **MCP Server Integration** - Model Context Protocol support
1270
+
1271
+ ### Current Configuration
1272
+ | Setting | Value |
1273
+ |---------|-------|
1274
+ | Topology | ${options.runtime.topology} |
1275
+ | Max Agents | ${options.runtime.maxAgents} |
1276
+ | Memory Backend | ${options.runtime.memoryBackend} |
1277
+ | HNSW Indexing | ${options.runtime.enableHNSW ? 'Enabled' : 'Disabled'} |
1278
+ | Neural Learning | ${options.runtime.enableNeural ? 'Enabled' : 'Disabled'} |
1279
+ | LearningBridge | ${options.runtime.enableLearningBridge ? 'Enabled (SONA + ReasoningBank)' : 'Disabled'} |
1280
+ | Knowledge Graph | ${options.runtime.enableMemoryGraph ? 'Enabled (PageRank + Communities)' : 'Disabled'} |
1281
+ | Agent Scopes | ${options.runtime.enableAgentScopes ? 'Enabled (project/local/user)' : 'Disabled'} |
1282
+
1283
+ ---
1284
+
1285
+ ## Swarm Orchestration
1286
+
1287
+ ### Topologies
1288
+ | Topology | Description | Best For |
1289
+ |----------|-------------|----------|
1290
+ | \`hierarchical\` | Queen controls workers directly | Anti-drift, tight control |
1291
+ | \`mesh\` | Fully connected peer network | Distributed tasks |
1292
+ | \`hierarchical-mesh\` | V3 hybrid (recommended) | 10+ agents |
1293
+ | \`ring\` | Circular communication | Sequential workflows |
1294
+ | \`star\` | Central coordinator | Simple coordination |
1295
+ | \`adaptive\` | Dynamic based on load | Variable workloads |
1296
+
1297
+ ### Strategies
1298
+ - \`balanced\` - Even distribution across agents
1299
+ - \`specialized\` - Clear roles, no overlap (anti-drift)
1300
+ - \`adaptive\` - Dynamic task routing
1301
+
1302
+ ### Quick Commands
1303
+ \`\`\`bash
1304
+ # Initialize swarm
1305
+ npx @claude-flow/cli@latest swarm init --topology hierarchical --max-agents 8 --strategy specialized
1306
+
1307
+ # Check status
1308
+ npx @claude-flow/cli@latest swarm status
1309
+
1310
+ # Monitor activity
1311
+ npx @claude-flow/cli@latest swarm monitor
1312
+ \`\`\`
1313
+
1314
+ ---
1315
+
1316
+ ## Available Agents
1317
+
1318
+ ### Core Development (5)
1319
+ \`coder\`, \`reviewer\`, \`tester\`, \`planner\`, \`researcher\`
1320
+
1321
+ ### V3 Specialized (4)
1322
+ \`security-architect\`, \`security-auditor\`, \`memory-specialist\`, \`performance-engineer\`
1323
+
1324
+ ### Swarm Coordination (5)
1325
+ \`hierarchical-coordinator\`, \`mesh-coordinator\`, \`adaptive-coordinator\`, \`collective-intelligence-coordinator\`, \`swarm-memory-manager\`
1326
+
1327
+ ### Consensus & Distributed (7)
1328
+ \`byzantine-coordinator\`, \`raft-manager\`, \`gossip-coordinator\`, \`consensus-builder\`, \`crdt-synchronizer\`, \`quorum-manager\`, \`security-manager\`
1329
+
1330
+ ### Performance & Optimization (5)
1331
+ \`perf-analyzer\`, \`performance-benchmarker\`, \`task-orchestrator\`, \`memory-coordinator\`, \`smart-agent\`
1332
+
1333
+ ### GitHub & Repository (9)
1334
+ \`github-modes\`, \`pr-manager\`, \`code-review-swarm\`, \`issue-tracker\`, \`release-manager\`, \`workflow-automation\`, \`project-board-sync\`, \`repo-architect\`, \`multi-repo-swarm\`
1335
+
1336
+ ### SPARC Methodology (6)
1337
+ \`sparc-coord\`, \`sparc-coder\`, \`specification\`, \`pseudocode\`, \`architecture\`, \`refinement\`
1338
+
1339
+ ### Specialized Development (8)
1340
+ \`backend-dev\`, \`mobile-dev\`, \`ml-developer\`, \`cicd-engineer\`, \`api-docs\`, \`system-architect\`, \`code-analyzer\`, \`base-template-generator\`
1341
+
1342
+ ### Testing & Validation (2)
1343
+ \`tdd-london-swarm\`, \`production-validator\`
1344
+
1345
+ ### Agent Routing by Task
1346
+ | Task Type | Recommended Agents | Topology |
1347
+ |-----------|-------------------|----------|
1348
+ | Bug Fix | researcher, coder, tester | mesh |
1349
+ | New Feature | coordinator, architect, coder, tester, reviewer | hierarchical |
1350
+ | Refactoring | architect, coder, reviewer | mesh |
1351
+ | Performance | researcher, perf-engineer, coder | hierarchical |
1352
+ | Security | security-architect, auditor, reviewer | hierarchical |
1353
+ | Docs | researcher, api-docs | mesh |
1354
+
1355
+ ---
1356
+
1357
+ ## CLI Commands
1358
+
1359
+ ### Core Commands (12)
1360
+ | Command | Subcommands | Description |
1361
+ |---------|-------------|-------------|
1362
+ | \`init\` | 4 | Project initialization |
1363
+ | \`agent\` | 8 | Agent lifecycle management |
1364
+ | \`swarm\` | 6 | Multi-agent coordination |
1365
+ | \`memory\` | 11 | AgentDB with HNSW search |
1366
+ | \`mcp\` | 9 | MCP server management |
1367
+ | \`task\` | 6 | Task assignment |
1368
+ | \`session\` | 7 | Session persistence |
1369
+ | \`config\` | 7 | Configuration |
1370
+ | \`status\` | 3 | System monitoring |
1371
+ | \`workflow\` | 6 | Workflow templates |
1372
+ | \`hooks\` | 17 | Self-learning hooks |
1373
+ | \`hive-mind\` | 6 | Consensus coordination |
1374
+
1375
+ ### Advanced Commands (14)
1376
+ | Command | Subcommands | Description |
1377
+ |---------|-------------|-------------|
1378
+ | \`daemon\` | 5 | Background workers |
1379
+ | \`neural\` | 5 | Pattern training |
1380
+ | \`security\` | 6 | Security scanning |
1381
+ | \`performance\` | 5 | Profiling & benchmarks |
1382
+ | \`providers\` | 5 | AI provider config |
1383
+ | \`plugins\` | 5 | Plugin management |
1384
+ | \`deployment\` | 5 | Deploy management |
1385
+ | \`embeddings\` | 4 | Vector embeddings |
1386
+ | \`claims\` | 4 | Authorization |
1387
+ | \`migrate\` | 5 | V2→V3 migration |
1388
+ | \`process\` | 4 | Process management |
1389
+ | \`doctor\` | 1 | Health diagnostics |
1390
+ | \`completions\` | 4 | Shell completions |
1391
+
1392
+ ### Example Commands
1393
+ \`\`\`bash
1394
+ # Initialize
1395
+ npx @claude-flow/cli@latest init --wizard
1396
+
1397
+ # Spawn agent
1398
+ npx @claude-flow/cli@latest agent spawn -t coder --name my-coder
1399
+
1400
+ # Memory operations
1401
+ npx @claude-flow/cli@latest memory store --key "pattern" --value "data" --namespace patterns
1402
+ npx @claude-flow/cli@latest memory search --query "authentication"
1403
+
1404
+ # Diagnostics
1405
+ npx @claude-flow/cli@latest doctor --fix
1406
+ \`\`\`
1407
+
1408
+ ---
1409
+
1410
+ ## Hooks System
1411
+
1412
+ ### 27 Available Hooks
1413
+
1414
+ #### Core Hooks (6)
1415
+ | Hook | Description |
1416
+ |------|-------------|
1417
+ | \`pre-edit\` | Context before file edits |
1418
+ | \`post-edit\` | Record edit outcomes |
1419
+ | \`pre-command\` | Risk assessment |
1420
+ | \`post-command\` | Command metrics |
1421
+ | \`pre-task\` | Task start + agent suggestions |
1422
+ | \`post-task\` | Task completion learning |
1423
+
1424
+ #### Session Hooks (4)
1425
+ | Hook | Description |
1426
+ |------|-------------|
1427
+ | \`session-start\` | Start/restore session |
1428
+ | \`session-end\` | Persist state |
1429
+ | \`session-restore\` | Restore previous |
1430
+ | \`notify\` | Cross-agent notifications |
1431
+
1432
+ #### Intelligence Hooks (5)
1433
+ | Hook | Description |
1434
+ |------|-------------|
1435
+ | \`route\` | Optimal agent routing |
1436
+ | \`explain\` | Routing decisions |
1437
+ | \`pretrain\` | Bootstrap intelligence |
1438
+ | \`build-agents\` | Generate configs |
1439
+ | \`transfer\` | Pattern transfer |
1440
+
1441
+ #### Coverage Hooks (3)
1442
+ | Hook | Description |
1443
+ |------|-------------|
1444
+ | \`coverage-route\` | Coverage-based routing |
1445
+ | \`coverage-suggest\` | Improvement suggestions |
1446
+ | \`coverage-gaps\` | Gap analysis |
1447
+
1448
+ ### 12 Background Workers
1449
+ | Worker | Priority | Purpose |
1450
+ |--------|----------|---------|
1451
+ | \`ultralearn\` | normal | Deep knowledge |
1452
+ | \`optimize\` | high | Performance |
1453
+ | \`consolidate\` | low | Memory consolidation |
1454
+ | \`predict\` | normal | Predictive preload |
1455
+ | \`audit\` | critical | Security |
1456
+ | \`map\` | normal | Codebase mapping |
1457
+ | \`preload\` | low | Resource preload |
1458
+ | \`deepdive\` | normal | Deep analysis |
1459
+ | \`document\` | normal | Auto-docs |
1460
+ | \`refactor\` | normal | Suggestions |
1461
+ | \`benchmark\` | normal | Benchmarking |
1462
+ | \`testgaps\` | normal | Coverage gaps |
1463
+
1464
+ ---
1465
+
1466
+ ## Memory & Intelligence
1467
+
1468
+ ### RuVector Intelligence System
1469
+ - **SONA**: Self-Optimizing Neural Architecture (<0.05ms)
1470
+ - **MoE**: Mixture of Experts routing
1471
+ - **HNSW**: 150x-12,500x faster search
1472
+ - **EWC++**: Prevents catastrophic forgetting
1473
+ - **Flash Attention**: 2.49x-7.47x speedup
1474
+ - **Int8 Quantization**: 3.92x memory reduction
1475
+
1476
+ ### 4-Step Intelligence Pipeline
1477
+ 1. **RETRIEVE** - HNSW pattern search
1478
+ 2. **JUDGE** - Success/failure verdicts
1479
+ 3. **DISTILL** - LoRA learning extraction
1480
+ 4. **CONSOLIDATE** - EWC++ preservation
1481
+
1482
+ ### Self-Learning Memory (ADR-049)
1483
+
1484
+ | Component | Status | Description |
1485
+ |-----------|--------|-------------|
1486
+ | **LearningBridge** | ${options.runtime.enableLearningBridge ? '✅ Enabled' : '⏸ Disabled'} | Connects insights to SONA/ReasoningBank neural pipeline |
1487
+ | **MemoryGraph** | ${options.runtime.enableMemoryGraph ? '✅ Enabled' : '⏸ Disabled'} | PageRank knowledge graph + community detection |
1488
+ | **AgentMemoryScope** | ${options.runtime.enableAgentScopes ? '✅ Enabled' : '⏸ Disabled'} | 3-scope agent memory (project/local/user) |
1489
+
1490
+ **LearningBridge** - Insights trigger learning trajectories. Confidence evolves: +0.03 on access, -0.005/hour decay. Consolidation runs the JUDGE/DISTILL/CONSOLIDATE pipeline.
1491
+
1492
+ **MemoryGraph** - Builds a knowledge graph from entry references. PageRank identifies influential insights. Communities group related knowledge. Graph-aware ranking blends vector + structural scores.
1493
+
1494
+ **AgentMemoryScope** - Maps Claude Code 3-scope directories:
1495
+ - \`project\`: \`<gitRoot>/.claude/agent-memory/<agent>/\`
1496
+ - \`local\`: \`<gitRoot>/.claude/agent-memory-local/<agent>/\`
1497
+ - \`user\`: \`~/.claude/agent-memory/<agent>/\`
1498
+
1499
+ High-confidence insights (>0.8) can transfer between agents.
1500
+
1501
+ ### Memory Commands
1502
+ \`\`\`bash
1503
+ # Store pattern
1504
+ npx @claude-flow/cli@latest memory store --key "name" --value "data" --namespace patterns
1505
+
1506
+ # Semantic search
1507
+ npx @claude-flow/cli@latest memory search --query "authentication"
1508
+
1509
+ # List entries
1510
+ npx @claude-flow/cli@latest memory list --namespace patterns
1511
+
1512
+ # Initialize database
1513
+ npx @claude-flow/cli@latest memory init --force
1514
+ \`\`\`
1515
+
1516
+ ---
1517
+
1518
+ ## Hive-Mind Consensus
1519
+
1520
+ ### Queen Types
1521
+ | Type | Role |
1522
+ |------|------|
1523
+ | Strategic Queen | Long-term planning |
1524
+ | Tactical Queen | Execution coordination |
1525
+ | Adaptive Queen | Dynamic optimization |
1526
+
1527
+ ### Worker Types (8)
1528
+ \`researcher\`, \`coder\`, \`analyst\`, \`tester\`, \`architect\`, \`reviewer\`, \`optimizer\`, \`documenter\`
1529
+
1530
+ ### Consensus Mechanisms
1531
+ | Mechanism | Fault Tolerance | Use Case |
1532
+ |-----------|-----------------|----------|
1533
+ | \`byzantine\` | f < n/3 faulty | Adversarial |
1534
+ | \`raft\` | f < n/2 failed | Leader-based |
1535
+ | \`gossip\` | Eventually consistent | Large scale |
1536
+ | \`crdt\` | Conflict-free | Distributed |
1537
+ | \`quorum\` | Configurable | Flexible |
1538
+
1539
+ ### Hive-Mind Commands
1540
+ \`\`\`bash
1541
+ # Initialize
1542
+ npx @claude-flow/cli@latest hive-mind init --queen-type strategic
1543
+
1544
+ # Status
1545
+ npx @claude-flow/cli@latest hive-mind status
1546
+
1547
+ # Spawn workers
1548
+ npx @claude-flow/cli@latest hive-mind spawn --count 5 --type worker
1549
+
1550
+ # Consensus
1551
+ npx @claude-flow/cli@latest hive-mind consensus --propose "task"
1552
+ \`\`\`
1553
+
1554
+ ---
1555
+
1556
+ ## Performance Targets
1557
+
1558
+ | Metric | Target | Status |
1559
+ |--------|--------|--------|
1560
+ | HNSW Search | 150x-12,500x faster | ✅ Implemented |
1561
+ | Memory Reduction | 50-75% | ✅ Implemented (3.92x) |
1562
+ | SONA Integration | Pattern learning | ✅ Implemented |
1563
+ | Flash Attention | 2.49x-7.47x | 🔄 In Progress |
1564
+ | MCP Response | <100ms | ✅ Achieved |
1565
+ | CLI Startup | <500ms | ✅ Achieved |
1566
+ | SONA Adaptation | <0.05ms | 🔄 In Progress |
1567
+ | Graph Build (1k) | <200ms | ✅ 2.78ms (71.9x headroom) |
1568
+ | PageRank (1k) | <100ms | ✅ 12.21ms (8.2x headroom) |
1569
+ | Insight Recording | <5ms/each | ✅ 0.12ms (41x headroom) |
1570
+ | Consolidation | <500ms | ✅ 0.26ms (1,955x headroom) |
1571
+ | Knowledge Transfer | <100ms | ✅ 1.25ms (80x headroom) |
1572
+
1573
+ ---
1574
+
1575
+ ## Integration Ecosystem
1576
+
1577
+ ### Integrated Packages
1578
+ | Package | Version | Purpose |
1579
+ |---------|---------|---------|
1580
+ | agentic-flow | 3.0.0-alpha.1 | Core coordination + ReasoningBank + Router |
1581
+ | agentdb | 3.0.0-alpha.10 | Vector database + 8 controllers |
1582
+ | @ruvector/attention | 0.1.3 | Flash attention |
1583
+ | @ruvector/sona | 0.1.5 | Neural learning |
1584
+
1585
+ ### Optional Integrations
1586
+ | Package | Command |
1587
+ |---------|---------|
1588
+ | ruv-swarm | \`npx ruv-swarm mcp start\` |
1589
+ | flow-nexus | \`npx flow-nexus@latest mcp start\` |
1590
+ | agentic-jujutsu | \`npx agentic-jujutsu@latest\` |
1591
+
1592
+ ### MCP Server Setup
1593
+ \`\`\`bash
1594
+ # Add Odd Flow MCP
1595
+ claude mcp add odd-flow -- npx -y odd-flow@latest
1596
+
1597
+ # Optional servers
1598
+ claude mcp add ruv-swarm -- npx -y ruv-swarm mcp start
1599
+ claude mcp add flow-nexus -- npx -y flow-nexus@latest mcp start
1600
+ \`\`\`
1601
+
1602
+ ---
1603
+
1604
+ ## Quick Reference
1605
+
1606
+ ### Essential Commands
1607
+ \`\`\`bash
1608
+ # Setup
1609
+ npx odd-flow@latest init --wizard
1610
+ npx odd-flow@latest daemon start
1611
+ npx odd-flow@latest doctor --fix
1612
+
1613
+ # Swarm
1614
+ npx odd-flow@latest swarm init --topology hierarchical --max-agents 8
1615
+ npx odd-flow@latest swarm status
1616
+
1617
+ # Agents
1618
+ npx odd-flow@latest agent spawn -t coder
1619
+ npx odd-flow@latest agent list
1620
+
1621
+ # Memory
1622
+ npx odd-flow@latest memory search --query "patterns"
1623
+
1624
+ # Hooks
1625
+ npx odd-flow@latest hooks pre-task --description "task"
1626
+ npx odd-flow@latest hooks worker dispatch --trigger optimize
1627
+ \`\`\`
1628
+
1629
+ ### File Structure
1630
+ \`\`\`
1631
+ .claude-flow/
1632
+ ├── config.yaml # Runtime configuration
1633
+ ├── CAPABILITIES.md # This file
1634
+ ├── data/ # Memory storage
1635
+ ├── logs/ # Operation logs
1636
+ ├── sessions/ # Session state
1637
+ ├── hooks/ # Custom hooks
1638
+ ├── agents/ # Agent configs
1639
+ └── workflows/ # Workflow templates
1640
+ \`\`\`
1641
+
1642
+ ---
1643
+
1644
+ **Full Documentation**: https://github.com/ruvnet/claude-flow
1645
+ **Issues**: https://github.com/ruvnet/claude-flow/issues
1646
+ `;
1647
+ fs.writeFileSync(capabilitiesPath, capabilities, 'utf-8');
1648
+ result.created.files.push('.claude-flow/CAPABILITIES.md');
1649
+ }
1650
+ /**
1651
+ * Write CLAUDE.md with swarm guidance
1652
+ */
1653
+ async function writeClaudeMd(targetDir, options, result) {
1654
+ const claudeMdPath = path.join(targetDir, 'CLAUDE.md');
1655
+ if (fs.existsSync(claudeMdPath) && !options.force) {
1656
+ result.skipped.push('CLAUDE.md');
1657
+ }
1658
+ else {
1659
+ // Determine template: explicit option > infer from components > 'standard'
1660
+ const inferredTemplate = (!options.components.commands && !options.components.agents) ? 'minimal' : undefined;
1661
+ const content = generateClaudeMd(options, inferredTemplate);
1662
+ fs.writeFileSync(claudeMdPath, content, 'utf-8');
1663
+ result.created.files.push('CLAUDE.md');
1664
+ }
1665
+ // REMOVED: Writing to ~/.claude/CLAUDE.md (finding 5.8)
1666
+ // Init must not modify global Claude Code configuration outside the project directory.
1667
+ }
1668
+ /**
1669
+ * Find source directory for skills/commands/agents
1670
+ */
1671
+ function findSourceDir(type, sourceBaseDir) {
1672
+ // Build list of possible paths to check
1673
+ const possiblePaths = [];
1674
+ // If explicit source base directory is provided, use it first
1675
+ if (sourceBaseDir) {
1676
+ possiblePaths.push(path.join(sourceBaseDir, '.claude', type));
1677
+ }
1678
+ // IMPORTANT: Check the package's own .claude directory first
1679
+ // This is the primary path when running as an npm package
1680
+ // __dirname is typically /path/to/node_modules/@claude-flow/cli/dist/src/init
1681
+ // We need to go up 3 levels to reach the package root (dist/src/init -> dist/src -> dist -> root)
1682
+ const packageRoot = path.resolve(__dirname, '..', '..', '..');
1683
+ const packageDotClaude = path.join(packageRoot, '.claude', type);
1684
+ if (fs.existsSync(packageDotClaude)) {
1685
+ possiblePaths.unshift(packageDotClaude); // Add to beginning (highest priority)
1686
+ }
1687
+ // From dist/src/init -> go up to project root
1688
+ const distPath = __dirname;
1689
+ // Try to find the project root by looking for .claude directory
1690
+ let currentDir = distPath;
1691
+ for (let i = 0; i < 10; i++) {
1692
+ const parentDir = path.dirname(currentDir);
1693
+ const dotClaudePath = path.join(parentDir, '.claude', type);
1694
+ if (fs.existsSync(dotClaudePath)) {
1695
+ possiblePaths.push(dotClaudePath);
1696
+ }
1697
+ currentDir = parentDir;
1698
+ }
1699
+ // Also check relative to process.cwd() for development
1700
+ const cwdBased = [
1701
+ path.join(process.cwd(), '.claude', type),
1702
+ path.join(process.cwd(), '..', '.claude', type),
1703
+ path.join(process.cwd(), '..', '..', '.claude', type),
1704
+ ];
1705
+ possiblePaths.push(...cwdBased);
1706
+ // Check v2 directory for agents
1707
+ if (type === 'agents') {
1708
+ possiblePaths.push(path.join(process.cwd(), 'v2', '.claude', type), path.join(process.cwd(), '..', 'v2', '.claude', type));
1709
+ }
1710
+ // Plugin directory
1711
+ possiblePaths.push(path.join(process.cwd(), 'plugin', type), path.join(process.cwd(), '..', 'plugin', type));
1712
+ for (const p of possiblePaths) {
1713
+ if (fs.existsSync(p)) {
1714
+ return p;
1715
+ }
1716
+ }
1717
+ return null;
1718
+ }
1719
+ /**
1720
+ * Copy directory recursively
1721
+ */
1722
+ function copyDirRecursive(src, dest) {
1723
+ fs.mkdirSync(dest, { recursive: true });
1724
+ const entries = fs.readdirSync(src, { withFileTypes: true });
1725
+ for (const entry of entries) {
1726
+ const srcPath = path.join(src, entry.name);
1727
+ const destPath = path.join(dest, entry.name);
1728
+ if (entry.isDirectory()) {
1729
+ copyDirRecursive(srcPath, destPath);
1730
+ }
1731
+ else {
1732
+ fs.copyFileSync(srcPath, destPath);
1733
+ }
1734
+ }
1735
+ }
1736
+ /**
1737
+ * Count files with extension in directory
1738
+ */
1739
+ function countFiles(dir, ext) {
1740
+ let count = 0;
1741
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
1742
+ for (const entry of entries) {
1743
+ const fullPath = path.join(dir, entry.name);
1744
+ if (entry.isDirectory()) {
1745
+ count += countFiles(fullPath, ext);
1746
+ }
1747
+ else if (entry.name.endsWith(ext)) {
1748
+ count++;
1749
+ }
1750
+ }
1751
+ return count;
1752
+ }
1753
+ /**
1754
+ * Count enabled hooks
1755
+ */
1756
+ function countEnabledHooks(options) {
1757
+ const hooks = options.hooks;
1758
+ let count = 0;
1759
+ if (hooks.preToolUse)
1760
+ count++;
1761
+ if (hooks.postToolUse)
1762
+ count++;
1763
+ if (hooks.userPromptSubmit)
1764
+ count++;
1765
+ if (hooks.sessionStart)
1766
+ count++;
1767
+ if (hooks.stop)
1768
+ count++;
1769
+ if (hooks.preCompact)
1770
+ count++;
1771
+ if (hooks.notification)
1772
+ count++;
1773
+ return count;
1774
+ }
1775
+ export default executeInit;
1776
+ //# sourceMappingURL=executor.js.map