@aigentic/claude-flow 3.7.0-alpha.69

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 (807) 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/arch-system-design.md +157 -0
  6. package/.claude/agents/architecture/system-design/arch-system-design.md +36 -0
  7. package/.claude/agents/base-template-generator.md +41 -0
  8. package/.claude/agents/browser/browser-agent.yaml +182 -0
  9. package/.claude/agents/consensus/byzantine-coordinator.md +43 -0
  10. package/.claude/agents/consensus/crdt-synchronizer.md +977 -0
  11. package/.claude/agents/consensus/gossip-coordinator.md +43 -0
  12. package/.claude/agents/consensus/performance-benchmarker.md +831 -0
  13. package/.claude/agents/consensus/quorum-manager.md +803 -0
  14. package/.claude/agents/consensus/raft-manager.md +43 -0
  15. package/.claude/agents/consensus/security-manager.md +602 -0
  16. package/.claude/agents/core/coder.md +255 -0
  17. package/.claude/agents/core/planner.md +152 -0
  18. package/.claude/agents/core/researcher.md +174 -0
  19. package/.claude/agents/core/reviewer.md +309 -0
  20. package/.claude/agents/core/tester.md +300 -0
  21. package/.claude/agents/custom/test-long-runner.md +43 -0
  22. package/.claude/agents/data/data-ml-model.md +445 -0
  23. package/.claude/agents/data/ml/data-ml-model.md +76 -0
  24. package/.claude/agents/database-specialist.md +9 -0
  25. package/.claude/agents/development/backend/dev-backend-api.md +29 -0
  26. package/.claude/agents/development/dev-backend-api.md +178 -0
  27. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +52 -0
  28. package/.claude/agents/devops/ops-cicd-github.md +165 -0
  29. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +63 -0
  30. package/.claude/agents/documentation/docs-api-openapi.md +355 -0
  31. package/.claude/agents/dual-mode/codex-coordinator.md +206 -0
  32. package/.claude/agents/dual-mode/codex-worker.md +190 -0
  33. package/.claude/agents/dual-mode/dual-orchestrator.md +253 -0
  34. package/.claude/agents/flow-nexus/app-store.md +88 -0
  35. package/.claude/agents/flow-nexus/authentication.md +69 -0
  36. package/.claude/agents/flow-nexus/challenges.md +81 -0
  37. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  38. package/.claude/agents/flow-nexus/payments.md +83 -0
  39. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  40. package/.claude/agents/flow-nexus/swarm.md +76 -0
  41. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  42. package/.claude/agents/flow-nexus/workflow.md +84 -0
  43. package/.claude/agents/github/code-review-swarm.md +521 -0
  44. package/.claude/agents/github/github-modes.md +154 -0
  45. package/.claude/agents/github/issue-tracker.md +299 -0
  46. package/.claude/agents/github/multi-repo-swarm.md +525 -0
  47. package/.claude/agents/github/pr-manager.md +163 -0
  48. package/.claude/agents/github/project-board-sync.md +478 -0
  49. package/.claude/agents/github/release-manager.md +336 -0
  50. package/.claude/agents/github/release-swarm.md +551 -0
  51. package/.claude/agents/github/repo-architect.md +365 -0
  52. package/.claude/agents/github/swarm-issue.md +548 -0
  53. package/.claude/agents/github/swarm-pr.md +399 -0
  54. package/.claude/agents/github/sync-coordinator.md +423 -0
  55. package/.claude/agents/github/workflow-automation.md +605 -0
  56. package/.claude/agents/goal/agent.md +817 -0
  57. package/.claude/agents/goal/code-goal-planner.md +445 -0
  58. package/.claude/agents/goal/goal-planner.md +168 -0
  59. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -0
  60. package/.claude/agents/hive-mind/queen-coordinator.md +202 -0
  61. package/.claude/agents/hive-mind/scout-explorer.md +241 -0
  62. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -0
  63. package/.claude/agents/hive-mind/worker-specialist.md +216 -0
  64. package/.claude/agents/neural/safla-neural.md +74 -0
  65. package/.claude/agents/optimization/benchmark-suite.md +663 -0
  66. package/.claude/agents/optimization/load-balancer.md +429 -0
  67. package/.claude/agents/optimization/performance-monitor.md +670 -0
  68. package/.claude/agents/optimization/resource-allocator.md +672 -0
  69. package/.claude/agents/optimization/topology-optimizer.md +806 -0
  70. package/.claude/agents/payments/agentic-payments.md +126 -0
  71. package/.claude/agents/project-coordinator.md +8 -0
  72. package/.claude/agents/python-specialist.md +9 -0
  73. package/.claude/agents/reasoning/agent.md +817 -0
  74. package/.claude/agents/reasoning/goal-planner.md +73 -0
  75. package/.claude/agents/security-auditor.md +9 -0
  76. package/.claude/agents/sona/sona-learning-optimizer.md +65 -0
  77. package/.claude/agents/sparc/architecture.md +453 -0
  78. package/.claude/agents/sparc/pseudocode.md +299 -0
  79. package/.claude/agents/sparc/refinement.md +504 -0
  80. package/.claude/agents/sparc/specification.md +258 -0
  81. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +88 -0
  82. package/.claude/agents/specialized/spec-mobile-react-native.md +227 -0
  83. package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
  84. package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
  85. package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
  86. package/.claude/agents/sublinear/performance-optimizer.md +368 -0
  87. package/.claude/agents/sublinear/trading-predictor.md +246 -0
  88. package/.claude/agents/swarm/adaptive-coordinator.md +364 -0
  89. package/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  90. package/.claude/agents/swarm/mesh-coordinator.md +363 -0
  91. package/.claude/agents/templates/automation-smart-agent.md +185 -0
  92. package/.claude/agents/templates/base-template-generator.md +289 -0
  93. package/.claude/agents/templates/coordinator-swarm-init.md +83 -0
  94. package/.claude/agents/templates/github-pr-manager.md +155 -0
  95. package/.claude/agents/templates/implementer-sparc-coder.md +243 -0
  96. package/.claude/agents/templates/memory-coordinator.md +163 -0
  97. package/.claude/agents/templates/migration-plan.md +724 -0
  98. package/.claude/agents/templates/orchestrator-task.md +120 -0
  99. package/.claude/agents/templates/performance-analyzer.md +179 -0
  100. package/.claude/agents/templates/sparc-coordinator.md +163 -0
  101. package/.claude/agents/testing/production-validator.md +373 -0
  102. package/.claude/agents/testing/tdd-london-swarm.md +222 -0
  103. package/.claude/agents/testing/unit/tdd-london-swarm.md +222 -0
  104. package/.claude/agents/testing/validation/production-validator.md +373 -0
  105. package/.claude/agents/typescript-specialist.md +9 -0
  106. package/.claude/agents/v3/adr-architect.md +184 -0
  107. package/.claude/agents/v3/aidefence-guardian.md +282 -0
  108. package/.claude/agents/v3/claims-authorizer.md +208 -0
  109. package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -0
  110. package/.claude/agents/v3/database-specialist.md +9 -0
  111. package/.claude/agents/v3/ddd-domain-expert.md +220 -0
  112. package/.claude/agents/v3/injection-analyst.md +236 -0
  113. package/.claude/agents/v3/memory-specialist.md +995 -0
  114. package/.claude/agents/v3/performance-engineer.md +1233 -0
  115. package/.claude/agents/v3/pii-detector.md +151 -0
  116. package/.claude/agents/v3/project-coordinator.md +8 -0
  117. package/.claude/agents/v3/python-specialist.md +9 -0
  118. package/.claude/agents/v3/reasoningbank-learner.md +213 -0
  119. package/.claude/agents/v3/security-architect-aidefence.md +410 -0
  120. package/.claude/agents/v3/security-architect.md +867 -0
  121. package/.claude/agents/v3/security-auditor.md +771 -0
  122. package/.claude/agents/v3/sparc-orchestrator.md +182 -0
  123. package/.claude/agents/v3/swarm-memory-manager.md +157 -0
  124. package/.claude/agents/v3/test-architect.md +9 -0
  125. package/.claude/agents/v3/typescript-specialist.md +9 -0
  126. package/.claude/agents/v3/v3-integration-architect.md +312 -0
  127. package/.claude/agents/v3/v3-memory-specialist.md +281 -0
  128. package/.claude/agents/v3/v3-performance-engineer.md +363 -0
  129. package/.claude/agents/v3/v3-queen-coordinator.md +63 -0
  130. package/.claude/agents/v3/v3-security-architect.md +140 -0
  131. package/.claude/checkpoints/1767754460.json +8 -0
  132. package/.claude/commands/agents/README.md +10 -0
  133. package/.claude/commands/agents/agent-capabilities.md +21 -0
  134. package/.claude/commands/agents/agent-coordination.md +28 -0
  135. package/.claude/commands/agents/agent-spawning.md +28 -0
  136. package/.claude/commands/agents/agent-types.md +26 -0
  137. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  138. package/.claude/commands/analysis/README.md +9 -0
  139. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  140. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  141. package/.claude/commands/analysis/performance-report.md +25 -0
  142. package/.claude/commands/analysis/token-efficiency.md +45 -0
  143. package/.claude/commands/analysis/token-usage.md +25 -0
  144. package/.claude/commands/automation/README.md +9 -0
  145. package/.claude/commands/automation/auto-agent.md +122 -0
  146. package/.claude/commands/automation/self-healing.md +106 -0
  147. package/.claude/commands/automation/session-memory.md +90 -0
  148. package/.claude/commands/automation/smart-agents.md +73 -0
  149. package/.claude/commands/automation/smart-spawn.md +25 -0
  150. package/.claude/commands/automation/workflow-select.md +25 -0
  151. package/.claude/commands/claude-flow-help.md +103 -0
  152. package/.claude/commands/claude-flow-memory.md +107 -0
  153. package/.claude/commands/claude-flow-swarm.md +205 -0
  154. package/.claude/commands/coordination/README.md +9 -0
  155. package/.claude/commands/coordination/agent-spawn.md +25 -0
  156. package/.claude/commands/coordination/init.md +44 -0
  157. package/.claude/commands/coordination/orchestrate.md +43 -0
  158. package/.claude/commands/coordination/spawn.md +45 -0
  159. package/.claude/commands/coordination/swarm-init.md +85 -0
  160. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  161. package/.claude/commands/flow-nexus/app-store.md +124 -0
  162. package/.claude/commands/flow-nexus/challenges.md +120 -0
  163. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  164. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  165. package/.claude/commands/flow-nexus/payments.md +116 -0
  166. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  167. package/.claude/commands/flow-nexus/swarm.md +87 -0
  168. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  169. package/.claude/commands/flow-nexus/workflow.md +115 -0
  170. package/.claude/commands/github/README.md +11 -0
  171. package/.claude/commands/github/code-review-swarm.md +514 -0
  172. package/.claude/commands/github/code-review.md +25 -0
  173. package/.claude/commands/github/github-modes.md +147 -0
  174. package/.claude/commands/github/github-swarm.md +121 -0
  175. package/.claude/commands/github/issue-tracker.md +292 -0
  176. package/.claude/commands/github/issue-triage.md +25 -0
  177. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  178. package/.claude/commands/github/pr-enhance.md +26 -0
  179. package/.claude/commands/github/pr-manager.md +170 -0
  180. package/.claude/commands/github/project-board-sync.md +471 -0
  181. package/.claude/commands/github/release-manager.md +338 -0
  182. package/.claude/commands/github/release-swarm.md +544 -0
  183. package/.claude/commands/github/repo-analyze.md +25 -0
  184. package/.claude/commands/github/repo-architect.md +367 -0
  185. package/.claude/commands/github/swarm-issue.md +482 -0
  186. package/.claude/commands/github/swarm-pr.md +285 -0
  187. package/.claude/commands/github/sync-coordinator.md +301 -0
  188. package/.claude/commands/github/workflow-automation.md +442 -0
  189. package/.claude/commands/hive-mind/README.md +17 -0
  190. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  191. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  192. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  193. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  194. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  195. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  196. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  197. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  198. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  199. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  200. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  201. package/.claude/commands/hooks/README.md +11 -0
  202. package/.claude/commands/hooks/overview.md +58 -0
  203. package/.claude/commands/hooks/post-edit.md +117 -0
  204. package/.claude/commands/hooks/post-task.md +112 -0
  205. package/.claude/commands/hooks/pre-edit.md +113 -0
  206. package/.claude/commands/hooks/pre-task.md +111 -0
  207. package/.claude/commands/hooks/session-end.md +118 -0
  208. package/.claude/commands/hooks/setup.md +103 -0
  209. package/.claude/commands/memory/README.md +9 -0
  210. package/.claude/commands/memory/memory-persist.md +25 -0
  211. package/.claude/commands/memory/memory-search.md +25 -0
  212. package/.claude/commands/memory/memory-usage.md +25 -0
  213. package/.claude/commands/memory/neural.md +47 -0
  214. package/.claude/commands/monitoring/README.md +9 -0
  215. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  216. package/.claude/commands/monitoring/agents.md +44 -0
  217. package/.claude/commands/monitoring/real-time-view.md +25 -0
  218. package/.claude/commands/monitoring/status.md +46 -0
  219. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  220. package/.claude/commands/optimization/README.md +9 -0
  221. package/.claude/commands/optimization/auto-topology.md +62 -0
  222. package/.claude/commands/optimization/cache-manage.md +25 -0
  223. package/.claude/commands/optimization/parallel-execute.md +25 -0
  224. package/.claude/commands/optimization/parallel-execution.md +50 -0
  225. package/.claude/commands/optimization/topology-optimize.md +25 -0
  226. package/.claude/commands/pair/README.md +261 -0
  227. package/.claude/commands/pair/commands.md +546 -0
  228. package/.claude/commands/pair/config.md +510 -0
  229. package/.claude/commands/pair/examples.md +512 -0
  230. package/.claude/commands/pair/modes.md +348 -0
  231. package/.claude/commands/pair/session.md +407 -0
  232. package/.claude/commands/pair/start.md +209 -0
  233. package/.claude/commands/sparc/analyzer.md +52 -0
  234. package/.claude/commands/sparc/architect.md +53 -0
  235. package/.claude/commands/sparc/ask.md +97 -0
  236. package/.claude/commands/sparc/batch-executor.md +54 -0
  237. package/.claude/commands/sparc/code.md +89 -0
  238. package/.claude/commands/sparc/coder.md +54 -0
  239. package/.claude/commands/sparc/debug.md +83 -0
  240. package/.claude/commands/sparc/debugger.md +54 -0
  241. package/.claude/commands/sparc/designer.md +53 -0
  242. package/.claude/commands/sparc/devops.md +109 -0
  243. package/.claude/commands/sparc/docs-writer.md +80 -0
  244. package/.claude/commands/sparc/documenter.md +54 -0
  245. package/.claude/commands/sparc/innovator.md +54 -0
  246. package/.claude/commands/sparc/integration.md +83 -0
  247. package/.claude/commands/sparc/mcp.md +117 -0
  248. package/.claude/commands/sparc/memory-manager.md +54 -0
  249. package/.claude/commands/sparc/optimizer.md +54 -0
  250. package/.claude/commands/sparc/orchestrator.md +132 -0
  251. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  252. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  253. package/.claude/commands/sparc/researcher.md +54 -0
  254. package/.claude/commands/sparc/reviewer.md +54 -0
  255. package/.claude/commands/sparc/security-review.md +80 -0
  256. package/.claude/commands/sparc/sparc-modes.md +174 -0
  257. package/.claude/commands/sparc/sparc.md +111 -0
  258. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  259. package/.claude/commands/sparc/supabase-admin.md +348 -0
  260. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  261. package/.claude/commands/sparc/tdd.md +54 -0
  262. package/.claude/commands/sparc/tester.md +54 -0
  263. package/.claude/commands/sparc/tutorial.md +79 -0
  264. package/.claude/commands/sparc/workflow-manager.md +54 -0
  265. package/.claude/commands/sparc.md +166 -0
  266. package/.claude/commands/stream-chain/pipeline.md +121 -0
  267. package/.claude/commands/stream-chain/run.md +70 -0
  268. package/.claude/commands/swarm/README.md +15 -0
  269. package/.claude/commands/swarm/analysis.md +95 -0
  270. package/.claude/commands/swarm/development.md +96 -0
  271. package/.claude/commands/swarm/examples.md +168 -0
  272. package/.claude/commands/swarm/maintenance.md +102 -0
  273. package/.claude/commands/swarm/optimization.md +117 -0
  274. package/.claude/commands/swarm/research.md +136 -0
  275. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  276. package/.claude/commands/swarm/swarm-background.md +8 -0
  277. package/.claude/commands/swarm/swarm-init.md +19 -0
  278. package/.claude/commands/swarm/swarm-modes.md +8 -0
  279. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  280. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  281. package/.claude/commands/swarm/swarm-status.md +8 -0
  282. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  283. package/.claude/commands/swarm/swarm.md +27 -0
  284. package/.claude/commands/swarm/testing.md +131 -0
  285. package/.claude/commands/training/README.md +9 -0
  286. package/.claude/commands/training/model-update.md +25 -0
  287. package/.claude/commands/training/neural-patterns.md +74 -0
  288. package/.claude/commands/training/neural-train.md +25 -0
  289. package/.claude/commands/training/pattern-learn.md +25 -0
  290. package/.claude/commands/training/specialization.md +63 -0
  291. package/.claude/commands/truth/start.md +143 -0
  292. package/.claude/commands/verify/check.md +50 -0
  293. package/.claude/commands/verify/start.md +128 -0
  294. package/.claude/commands/workflows/README.md +9 -0
  295. package/.claude/commands/workflows/development.md +78 -0
  296. package/.claude/commands/workflows/research.md +63 -0
  297. package/.claude/commands/workflows/workflow-create.md +25 -0
  298. package/.claude/commands/workflows/workflow-execute.md +25 -0
  299. package/.claude/commands/workflows/workflow-export.md +25 -0
  300. package/.claude/config/v3-dependency-optimization.json +266 -0
  301. package/.claude/config/v3-performance-targets.json +251 -0
  302. package/.claude/helpers/README.md +97 -0
  303. package/.claude/helpers/adr-compliance.sh +186 -0
  304. package/.claude/helpers/aggressive-microcompact.mjs +36 -0
  305. package/.claude/helpers/auto-commit.sh +178 -0
  306. package/.claude/helpers/auto-memory-hook.mjs +564 -0
  307. package/.claude/helpers/checkpoint-manager.sh +251 -0
  308. package/.claude/helpers/context-persistence-hook.mjs +1979 -0
  309. package/.claude/helpers/daemon-manager.sh +252 -0
  310. package/.claude/helpers/ddd-tracker.sh +144 -0
  311. package/.claude/helpers/github-safe.js +106 -0
  312. package/.claude/helpers/github-setup.sh +28 -0
  313. package/.claude/helpers/guidance-hook.sh +13 -0
  314. package/.claude/helpers/guidance-hooks.sh +102 -0
  315. package/.claude/helpers/health-monitor.sh +108 -0
  316. package/.claude/helpers/hook-handler.cjs +269 -0
  317. package/.claude/helpers/intelligence.cjs +230 -0
  318. package/.claude/helpers/learning-hooks.sh +329 -0
  319. package/.claude/helpers/learning-optimizer.sh +127 -0
  320. package/.claude/helpers/learning-service.mjs +1144 -0
  321. package/.claude/helpers/memory.cjs +84 -0
  322. package/.claude/helpers/memory.js +83 -0
  323. package/.claude/helpers/metrics-db.mjs +488 -0
  324. package/.claude/helpers/patch-aggressive-prune.mjs +184 -0
  325. package/.claude/helpers/pattern-consolidator.sh +86 -0
  326. package/.claude/helpers/perf-worker.sh +160 -0
  327. package/.claude/helpers/post-commit +16 -0
  328. package/.claude/helpers/pre-commit +26 -0
  329. package/.claude/helpers/quick-start.sh +19 -0
  330. package/.claude/helpers/router.cjs +62 -0
  331. package/.claude/helpers/router.js +66 -0
  332. package/.claude/helpers/security-scanner.sh +127 -0
  333. package/.claude/helpers/session.cjs +125 -0
  334. package/.claude/helpers/session.js +135 -0
  335. package/.claude/helpers/setup-mcp.sh +18 -0
  336. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
  337. package/.claude/helpers/statusline-hook.sh +21 -0
  338. package/.claude/helpers/statusline.cjs +878 -0
  339. package/.claude/helpers/statusline.js +352 -0
  340. package/.claude/helpers/swarm-comms.sh +353 -0
  341. package/.claude/helpers/swarm-hooks.sh +761 -0
  342. package/.claude/helpers/swarm-monitor.sh +211 -0
  343. package/.claude/helpers/sync-v3-metrics.sh +245 -0
  344. package/.claude/helpers/update-v3-progress.sh +166 -0
  345. package/.claude/helpers/v3-quick-status.sh +58 -0
  346. package/.claude/helpers/v3.sh +111 -0
  347. package/.claude/helpers/validate-v3-config.sh +216 -0
  348. package/.claude/helpers/worker-manager.sh +170 -0
  349. package/.claude/mcp.json +13 -0
  350. package/.claude/scheduled_tasks.lock +1 -0
  351. package/.claude/settings.json +285 -0
  352. package/.claude/settings.json.bak +526 -0
  353. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  354. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  355. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  356. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  357. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  358. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  359. package/.claude/skills/browser/SKILL.md +204 -0
  360. package/.claude/skills/dual-mode/README.md +71 -0
  361. package/.claude/skills/dual-mode/dual-collect.md +103 -0
  362. package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
  363. package/.claude/skills/dual-mode/dual-spawn.md +81 -0
  364. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -0
  365. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -0
  366. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -0
  367. package/.claude/skills/github-code-review/SKILL.md +1125 -0
  368. package/.claude/skills/github-multi-repo/SKILL.md +862 -0
  369. package/.claude/skills/github-project-management/SKILL.md +1263 -0
  370. package/.claude/skills/github-release-management/SKILL.md +1064 -0
  371. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -0
  372. package/.claude/skills/hive-mind-advanced/SKILL.md +709 -0
  373. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  374. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  375. package/.claude/skills/performance-analysis/SKILL.md +560 -0
  376. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  377. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  378. package/.claude/skills/skill-builder/SKILL.md +910 -0
  379. package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
  380. package/.claude/skills/stream-chain/SKILL.md +560 -0
  381. package/.claude/skills/swarm-advanced/SKILL.md +970 -0
  382. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  383. package/.claude/skills/v3-cli-modernization/SKILL.md +872 -0
  384. package/.claude/skills/v3-core-implementation/SKILL.md +797 -0
  385. package/.claude/skills/v3-ddd-architecture/SKILL.md +442 -0
  386. package/.claude/skills/v3-integration-deep/SKILL.md +241 -0
  387. package/.claude/skills/v3-mcp-optimization/SKILL.md +777 -0
  388. package/.claude/skills/v3-memory-unification/SKILL.md +174 -0
  389. package/.claude/skills/v3-performance-optimization/SKILL.md +390 -0
  390. package/.claude/skills/v3-security-overhaul/SKILL.md +82 -0
  391. package/.claude/skills/v3-swarm-coordination/SKILL.md +340 -0
  392. package/.claude/skills/verification-quality/SKILL.md +691 -0
  393. package/.claude/skills/worker-benchmarks/SKILL.md +129 -0
  394. package/.claude/skills/worker-integration/SKILL.md +147 -0
  395. package/.claude/statusline-command.sh +176 -0
  396. package/.claude/statusline.mjs +109 -0
  397. package/.claude/statusline.sh +431 -0
  398. package/.claude-plugin/README.md +720 -0
  399. package/.claude-plugin/docs/INSTALLATION.md +261 -0
  400. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -0
  401. package/.claude-plugin/docs/QUICKSTART.md +361 -0
  402. package/.claude-plugin/docs/STRUCTURE.md +128 -0
  403. package/.claude-plugin/hooks/hooks.json +75 -0
  404. package/.claude-plugin/marketplace.json +170 -0
  405. package/.claude-plugin/plugin.json +71 -0
  406. package/.claude-plugin/scripts/install.sh +234 -0
  407. package/.claude-plugin/scripts/ruflo-hook.sh +33 -0
  408. package/.claude-plugin/scripts/uninstall.sh +36 -0
  409. package/.claude-plugin/scripts/verify.sh +108 -0
  410. package/LICENSE +21 -0
  411. package/README.md +410 -0
  412. package/bin/cli.js +11 -0
  413. package/bin/npx-repair.js +7 -0
  414. package/bin/npx-safe-launch.js +9 -0
  415. package/package.json +159 -0
  416. package/v3/@claude-flow/cli/README.md +410 -0
  417. package/v3/@claude-flow/cli/bin/cli.js +233 -0
  418. package/v3/@claude-flow/cli/bin/mcp-server.js +224 -0
  419. package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -0
  420. package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.d.ts +91 -0
  421. package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.js +425 -0
  422. package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  423. package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.js +292 -0
  424. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.d.ts +44 -0
  425. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.js +329 -0
  426. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  427. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.js +370 -0
  428. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.d.ts +111 -0
  429. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.js +393 -0
  430. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.d.ts +69 -0
  431. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.js +237 -0
  432. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.d.ts +123 -0
  433. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.js +347 -0
  434. package/v3/@claude-flow/cli/dist/src/autopilot-state.d.ts +77 -0
  435. package/v3/@claude-flow/cli/dist/src/autopilot-state.js +271 -0
  436. package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  437. package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.js +404 -0
  438. package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.d.ts +14 -0
  439. package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.js +333 -0
  440. package/v3/@claude-flow/cli/dist/src/commands/agent.d.ts +8 -0
  441. package/v3/@claude-flow/cli/dist/src/commands/agent.js +927 -0
  442. package/v3/@claude-flow/cli/dist/src/commands/analyze.d.ts +19 -0
  443. package/v3/@claude-flow/cli/dist/src/commands/analyze.js +2048 -0
  444. package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.d.ts +9 -0
  445. package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.js +215 -0
  446. package/v3/@claude-flow/cli/dist/src/commands/appliance.d.ts +8 -0
  447. package/v3/@claude-flow/cli/dist/src/commands/appliance.js +404 -0
  448. package/v3/@claude-flow/cli/dist/src/commands/autopilot.d.ts +15 -0
  449. package/v3/@claude-flow/cli/dist/src/commands/autopilot.js +362 -0
  450. package/v3/@claude-flow/cli/dist/src/commands/benchmark.d.ts +10 -0
  451. package/v3/@claude-flow/cli/dist/src/commands/benchmark.js +460 -0
  452. package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +10 -0
  453. package/v3/@claude-flow/cli/dist/src/commands/claims.js +620 -0
  454. package/v3/@claude-flow/cli/dist/src/commands/cleanup.d.ts +13 -0
  455. package/v3/@claude-flow/cli/dist/src/commands/cleanup.js +250 -0
  456. package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +10 -0
  457. package/v3/@claude-flow/cli/dist/src/commands/completions.js +539 -0
  458. package/v3/@claude-flow/cli/dist/src/commands/config.d.ts +8 -0
  459. package/v3/@claude-flow/cli/dist/src/commands/config.js +430 -0
  460. package/v3/@claude-flow/cli/dist/src/commands/daemon.d.ts +28 -0
  461. package/v3/@claude-flow/cli/dist/src/commands/daemon.js +1093 -0
  462. package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +10 -0
  463. package/v3/@claude-flow/cli/dist/src/commands/deployment.js +672 -0
  464. package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +10 -0
  465. package/v3/@claude-flow/cli/dist/src/commands/doctor.js +885 -0
  466. package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +18 -0
  467. package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +1623 -0
  468. package/v3/@claude-flow/cli/dist/src/commands/guidance.d.ts +8 -0
  469. package/v3/@claude-flow/cli/dist/src/commands/guidance.js +556 -0
  470. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.d.ts +11 -0
  471. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +1297 -0
  472. package/v3/@claude-flow/cli/dist/src/commands/hooks.d.ts +8 -0
  473. package/v3/@claude-flow/cli/dist/src/commands/hooks.js +4499 -0
  474. package/v3/@claude-flow/cli/dist/src/commands/index.d.ts +118 -0
  475. package/v3/@claude-flow/cli/dist/src/commands/index.js +344 -0
  476. package/v3/@claude-flow/cli/dist/src/commands/init.d.ts +8 -0
  477. package/v3/@claude-flow/cli/dist/src/commands/init.js +997 -0
  478. package/v3/@claude-flow/cli/dist/src/commands/issues.d.ts +21 -0
  479. package/v3/@claude-flow/cli/dist/src/commands/issues.js +567 -0
  480. package/v3/@claude-flow/cli/dist/src/commands/mcp.d.ts +11 -0
  481. package/v3/@claude-flow/cli/dist/src/commands/mcp.js +718 -0
  482. package/v3/@claude-flow/cli/dist/src/commands/memory.d.ts +8 -0
  483. package/v3/@claude-flow/cli/dist/src/commands/memory.js +1456 -0
  484. package/v3/@claude-flow/cli/dist/src/commands/migrate.d.ts +8 -0
  485. package/v3/@claude-flow/cli/dist/src/commands/migrate.js +742 -0
  486. package/v3/@claude-flow/cli/dist/src/commands/neural.d.ts +10 -0
  487. package/v3/@claude-flow/cli/dist/src/commands/neural.js +1531 -0
  488. package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +10 -0
  489. package/v3/@claude-flow/cli/dist/src/commands/performance.js +583 -0
  490. package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +11 -0
  491. package/v3/@claude-flow/cli/dist/src/commands/plugins.js +826 -0
  492. package/v3/@claude-flow/cli/dist/src/commands/process.d.ts +10 -0
  493. package/v3/@claude-flow/cli/dist/src/commands/process.js +694 -0
  494. package/v3/@claude-flow/cli/dist/src/commands/progress.d.ts +11 -0
  495. package/v3/@claude-flow/cli/dist/src/commands/progress.js +259 -0
  496. package/v3/@claude-flow/cli/dist/src/commands/providers.d.ts +10 -0
  497. package/v3/@claude-flow/cli/dist/src/commands/providers.js +502 -0
  498. package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +16 -0
  499. package/v3/@claude-flow/cli/dist/src/commands/route.js +813 -0
  500. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.d.ts +11 -0
  501. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +747 -0
  502. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  503. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +490 -0
  504. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +18 -0
  505. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +373 -0
  506. package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +29 -0
  507. package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +129 -0
  508. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.d.ts +11 -0
  509. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +467 -0
  510. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.d.ts +11 -0
  511. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +498 -0
  512. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.d.ts +11 -0
  513. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +505 -0
  514. package/v3/@claude-flow/cli/dist/src/commands/ruvector/pg-utils.d.ts +14 -0
  515. package/v3/@claude-flow/cli/dist/src/commands/ruvector/pg-utils.js +41 -0
  516. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +18 -0
  517. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +765 -0
  518. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.d.ts +11 -0
  519. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +479 -0
  520. package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +10 -0
  521. package/v3/@claude-flow/cli/dist/src/commands/security.js +920 -0
  522. package/v3/@claude-flow/cli/dist/src/commands/session.d.ts +8 -0
  523. package/v3/@claude-flow/cli/dist/src/commands/session.js +757 -0
  524. package/v3/@claude-flow/cli/dist/src/commands/start.d.ts +8 -0
  525. package/v3/@claude-flow/cli/dist/src/commands/start.js +418 -0
  526. package/v3/@claude-flow/cli/dist/src/commands/status.d.ts +8 -0
  527. package/v3/@claude-flow/cli/dist/src/commands/status.js +591 -0
  528. package/v3/@claude-flow/cli/dist/src/commands/swarm.d.ts +8 -0
  529. package/v3/@claude-flow/cli/dist/src/commands/swarm.js +887 -0
  530. package/v3/@claude-flow/cli/dist/src/commands/task.d.ts +8 -0
  531. package/v3/@claude-flow/cli/dist/src/commands/task.js +675 -0
  532. package/v3/@claude-flow/cli/dist/src/commands/transfer-store.d.ts +13 -0
  533. package/v3/@claude-flow/cli/dist/src/commands/transfer-store.js +428 -0
  534. package/v3/@claude-flow/cli/dist/src/commands/update.d.ts +8 -0
  535. package/v3/@claude-flow/cli/dist/src/commands/update.js +276 -0
  536. package/v3/@claude-flow/cli/dist/src/commands/verify.d.ts +19 -0
  537. package/v3/@claude-flow/cli/dist/src/commands/verify.js +261 -0
  538. package/v3/@claude-flow/cli/dist/src/commands/workflow.d.ts +8 -0
  539. package/v3/@claude-flow/cli/dist/src/commands/workflow.js +617 -0
  540. package/v3/@claude-flow/cli/dist/src/config-adapter.d.ts +15 -0
  541. package/v3/@claude-flow/cli/dist/src/config-adapter.js +186 -0
  542. package/v3/@claude-flow/cli/dist/src/encryption/vault.d.ts +94 -0
  543. package/v3/@claude-flow/cli/dist/src/encryption/vault.js +172 -0
  544. package/v3/@claude-flow/cli/dist/src/fs-secure.d.ts +67 -0
  545. package/v3/@claude-flow/cli/dist/src/fs-secure.js +74 -0
  546. package/v3/@claude-flow/cli/dist/src/index.d.ts +81 -0
  547. package/v3/@claude-flow/cli/dist/src/index.js +538 -0
  548. package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  549. package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.js +264 -0
  550. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +16 -0
  551. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +363 -0
  552. package/v3/@claude-flow/cli/dist/src/init/executor.d.ts +41 -0
  553. package/v3/@claude-flow/cli/dist/src/init/executor.js +1904 -0
  554. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.d.ts +60 -0
  555. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +1185 -0
  556. package/v3/@claude-flow/cli/dist/src/init/index.d.ts +13 -0
  557. package/v3/@claude-flow/cli/dist/src/init/index.js +15 -0
  558. package/v3/@claude-flow/cli/dist/src/init/mcp-generator.d.ts +26 -0
  559. package/v3/@claude-flow/cli/dist/src/init/mcp-generator.js +116 -0
  560. package/v3/@claude-flow/cli/dist/src/init/settings-generator.d.ts +14 -0
  561. package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +456 -0
  562. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.d.ts +28 -0
  563. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +937 -0
  564. package/v3/@claude-flow/cli/dist/src/init/types.d.ts +308 -0
  565. package/v3/@claude-flow/cli/dist/src/init/types.js +263 -0
  566. package/v3/@claude-flow/cli/dist/src/log-filters.d.ts +22 -0
  567. package/v3/@claude-flow/cli/dist/src/log-filters.js +36 -0
  568. package/v3/@claude-flow/cli/dist/src/mcp-client.d.ts +92 -0
  569. package/v3/@claude-flow/cli/dist/src/mcp-client.js +287 -0
  570. package/v3/@claude-flow/cli/dist/src/mcp-server.d.ts +163 -0
  571. package/v3/@claude-flow/cli/dist/src/mcp-server.js +732 -0
  572. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-execute-core.d.ts +92 -0
  573. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-execute-core.js +328 -0
  574. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  575. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.js +716 -0
  576. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.d.ts +33 -0
  577. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +867 -0
  578. package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  579. package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.js +346 -0
  580. package/v3/@claude-flow/cli/dist/src/mcp-tools/auto-install.d.ts +83 -0
  581. package/v3/@claude-flow/cli/dist/src/mcp-tools/auto-install.js +131 -0
  582. package/v3/@claude-flow/cli/dist/src/mcp-tools/autopilot-tools.d.ts +12 -0
  583. package/v3/@claude-flow/cli/dist/src/mcp-tools/autopilot-tools.js +231 -0
  584. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-session-tools.d.ts +23 -0
  585. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-session-tools.js +324 -0
  586. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.d.ts +13 -0
  587. package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.js +757 -0
  588. package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  589. package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.js +863 -0
  590. package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.d.ts +8 -0
  591. package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.js +411 -0
  592. package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  593. package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.js +729 -0
  594. package/v3/@claude-flow/cli/dist/src/mcp-tools/daa-tools.d.ts +13 -0
  595. package/v3/@claude-flow/cli/dist/src/mcp-tools/daa-tools.js +534 -0
  596. package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  597. package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js +904 -0
  598. package/v3/@claude-flow/cli/dist/src/mcp-tools/github-tools.d.ts +9 -0
  599. package/v3/@claude-flow/cli/dist/src/mcp-tools/github-tools.js +659 -0
  600. package/v3/@claude-flow/cli/dist/src/mcp-tools/guidance-tools.d.ts +15 -0
  601. package/v3/@claude-flow/cli/dist/src/mcp-tools/guidance-tools.js +639 -0
  602. package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  603. package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.js +953 -0
  604. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +46 -0
  605. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +3939 -0
  606. package/v3/@claude-flow/cli/dist/src/mcp-tools/index.d.ts +27 -0
  607. package/v3/@claude-flow/cli/dist/src/mcp-tools/index.js +26 -0
  608. package/v3/@claude-flow/cli/dist/src/mcp-tools/managed-agent-tools.d.ts +22 -0
  609. package/v3/@claude-flow/cli/dist/src/mcp-tools/managed-agent-tools.js +357 -0
  610. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  611. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +1240 -0
  612. package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.d.ts +16 -0
  613. package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.js +793 -0
  614. package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  615. package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.js +675 -0
  616. package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  617. package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.js +348 -0
  618. package/v3/@claude-flow/cli/dist/src/mcp-tools/request-tracker.d.ts +17 -0
  619. package/v3/@claude-flow/cli/dist/src/mcp-tools/request-tracker.js +27 -0
  620. package/v3/@claude-flow/cli/dist/src/mcp-tools/ruvllm-tools.d.ts +9 -0
  621. package/v3/@claude-flow/cli/dist/src/mcp-tools/ruvllm-tools.js +339 -0
  622. package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +18 -0
  623. package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +556 -0
  624. package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.d.ts +8 -0
  625. package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js +517 -0
  626. package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.d.ts +9 -0
  627. package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.js +388 -0
  628. package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.d.ts +13 -0
  629. package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.js +674 -0
  630. package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.d.ts +8 -0
  631. package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.js +487 -0
  632. package/v3/@claude-flow/cli/dist/src/mcp-tools/terminal-tools.d.ts +8 -0
  633. package/v3/@claude-flow/cli/dist/src/mcp-tools/terminal-tools.js +306 -0
  634. package/v3/@claude-flow/cli/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
  635. package/v3/@claude-flow/cli/dist/src/mcp-tools/transfer-tools.js +447 -0
  636. package/v3/@claude-flow/cli/dist/src/mcp-tools/types.d.ts +8 -0
  637. package/v3/@claude-flow/cli/dist/src/mcp-tools/types.js +8 -0
  638. package/v3/@claude-flow/cli/dist/src/mcp-tools/validate-input.d.ts +9 -0
  639. package/v3/@claude-flow/cli/dist/src/mcp-tools/validate-input.js +9 -0
  640. package/v3/@claude-flow/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
  641. package/v3/@claude-flow/cli/dist/src/mcp-tools/wasm-agent-tools.js +291 -0
  642. package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  643. package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js +884 -0
  644. package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.d.ts +295 -0
  645. package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.js +601 -0
  646. package/v3/@claude-flow/cli/dist/src/memory/intelligence.d.ts +357 -0
  647. package/v3/@claude-flow/cli/dist/src/memory/intelligence.js +1200 -0
  648. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +492 -0
  649. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +2101 -0
  650. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +420 -0
  651. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2376 -0
  652. package/v3/@claude-flow/cli/dist/src/memory/neural-package-bridge.d.ts +48 -0
  653. package/v3/@claude-flow/cli/dist/src/memory/neural-package-bridge.js +87 -0
  654. package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.d.ts +60 -0
  655. package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.js +242 -0
  656. package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.d.ts +267 -0
  657. package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.js +779 -0
  658. package/v3/@claude-flow/cli/dist/src/output.d.ts +9 -0
  659. package/v3/@claude-flow/cli/dist/src/output.js +9 -0
  660. package/v3/@claude-flow/cli/dist/src/parser.d.ts +69 -0
  661. package/v3/@claude-flow/cli/dist/src/parser.js +473 -0
  662. package/v3/@claude-flow/cli/dist/src/plugins/manager.d.ts +133 -0
  663. package/v3/@claude-flow/cli/dist/src/plugins/manager.js +402 -0
  664. package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.d.ts +91 -0
  665. package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.js +1202 -0
  666. package/v3/@claude-flow/cli/dist/src/plugins/store/index.d.ts +76 -0
  667. package/v3/@claude-flow/cli/dist/src/plugins/store/index.js +141 -0
  668. package/v3/@claude-flow/cli/dist/src/plugins/store/search.d.ts +46 -0
  669. package/v3/@claude-flow/cli/dist/src/plugins/store/search.js +230 -0
  670. package/v3/@claude-flow/cli/dist/src/plugins/store/types.d.ts +274 -0
  671. package/v3/@claude-flow/cli/dist/src/plugins/store/types.js +7 -0
  672. package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  673. package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  674. package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  675. package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.js +188 -0
  676. package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  677. package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.js +206 -0
  678. package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.d.ts +101 -0
  679. package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.js +241 -0
  680. package/v3/@claude-flow/cli/dist/src/production/error-handler.d.ts +92 -0
  681. package/v3/@claude-flow/cli/dist/src/production/error-handler.js +299 -0
  682. package/v3/@claude-flow/cli/dist/src/production/index.d.ts +23 -0
  683. package/v3/@claude-flow/cli/dist/src/production/index.js +18 -0
  684. package/v3/@claude-flow/cli/dist/src/production/monitoring.d.ts +161 -0
  685. package/v3/@claude-flow/cli/dist/src/production/monitoring.js +356 -0
  686. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.d.ts +80 -0
  687. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.js +201 -0
  688. package/v3/@claude-flow/cli/dist/src/production/retry.d.ts +48 -0
  689. package/v3/@claude-flow/cli/dist/src/production/retry.js +179 -0
  690. package/v3/@claude-flow/cli/dist/src/prompt.d.ts +44 -0
  691. package/v3/@claude-flow/cli/dist/src/prompt.js +501 -0
  692. package/v3/@claude-flow/cli/dist/src/runtime/headless.d.ts +60 -0
  693. package/v3/@claude-flow/cli/dist/src/runtime/headless.js +284 -0
  694. package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.d.ts +193 -0
  695. package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js +354 -0
  696. package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  697. package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.js +277 -0
  698. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.d.ts +160 -0
  699. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.js +531 -0
  700. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.d.ts +33 -0
  701. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.js +157 -0
  702. package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.d.ts +175 -0
  703. package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.js +699 -0
  704. package/v3/@claude-flow/cli/dist/src/ruvector/diskann-backend.d.ts +78 -0
  705. package/v3/@claude-flow/cli/dist/src/ruvector/diskann-backend.js +310 -0
  706. package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  707. package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.js +529 -0
  708. package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  709. package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.js +929 -0
  710. package/v3/@claude-flow/cli/dist/src/ruvector/graph-backend.d.ts +79 -0
  711. package/v3/@claude-flow/cli/dist/src/ruvector/graph-backend.js +220 -0
  712. package/v3/@claude-flow/cli/dist/src/ruvector/index.d.ts +38 -0
  713. package/v3/@claude-flow/cli/dist/src/ruvector/index.js +82 -0
  714. package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.d.ts +240 -0
  715. package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.js +550 -0
  716. package/v3/@claude-flow/cli/dist/src/ruvector/model-router.d.ts +241 -0
  717. package/v3/@claude-flow/cli/dist/src/ruvector/model-router.js +608 -0
  718. package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.d.ts +211 -0
  719. package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.js +681 -0
  720. package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  721. package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.js +367 -0
  722. package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.d.ts +77 -0
  723. package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.js +178 -0
  724. package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +73 -0
  725. package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +264 -0
  726. package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  727. package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +95 -0
  728. package/v3/@claude-flow/cli/dist/src/services/claim-service.d.ts +204 -0
  729. package/v3/@claude-flow/cli/dist/src/services/claim-service.js +818 -0
  730. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.d.ts +37 -0
  731. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +233 -0
  732. package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  733. package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.js +583 -0
  734. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.d.ts +310 -0
  735. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +1058 -0
  736. package/v3/@claude-flow/cli/dist/src/services/index.d.ts +13 -0
  737. package/v3/@claude-flow/cli/dist/src/services/index.js +11 -0
  738. package/v3/@claude-flow/cli/dist/src/services/registry-api.d.ts +58 -0
  739. package/v3/@claude-flow/cli/dist/src/services/registry-api.js +146 -0
  740. package/v3/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +222 -0
  741. package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +688 -0
  742. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +323 -0
  743. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +1323 -0
  744. package/v3/@claude-flow/cli/dist/src/services/worker-queue.d.ts +194 -0
  745. package/v3/@claude-flow/cli/dist/src/services/worker-queue.js +513 -0
  746. package/v3/@claude-flow/cli/dist/src/suggest.d.ts +53 -0
  747. package/v3/@claude-flow/cli/dist/src/suggest.js +200 -0
  748. package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.d.ts +25 -0
  749. package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.js +175 -0
  750. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  751. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +205 -0
  752. package/v3/@claude-flow/cli/dist/src/transfer/export.d.ts +25 -0
  753. package/v3/@claude-flow/cli/dist/src/transfer/export.js +113 -0
  754. package/v3/@claude-flow/cli/dist/src/transfer/index.d.ts +12 -0
  755. package/v3/@claude-flow/cli/dist/src/transfer/index.js +31 -0
  756. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.d.ts +109 -0
  757. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.js +307 -0
  758. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.d.ts +95 -0
  759. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.js +413 -0
  760. package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.d.ts +72 -0
  761. package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.js +373 -0
  762. package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.d.ts +49 -0
  763. package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.js +183 -0
  764. package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.d.ts +82 -0
  765. package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.js +272 -0
  766. package/v3/@claude-flow/cli/dist/src/transfer/storage/index.d.ts +6 -0
  767. package/v3/@claude-flow/cli/dist/src/transfer/storage/index.js +6 -0
  768. package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.d.ts +84 -0
  769. package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.js +382 -0
  770. package/v3/@claude-flow/cli/dist/src/transfer/store/download.d.ts +70 -0
  771. package/v3/@claude-flow/cli/dist/src/transfer/store/download.js +334 -0
  772. package/v3/@claude-flow/cli/dist/src/transfer/store/index.d.ts +84 -0
  773. package/v3/@claude-flow/cli/dist/src/transfer/store/index.js +153 -0
  774. package/v3/@claude-flow/cli/dist/src/transfer/store/publish.d.ts +76 -0
  775. package/v3/@claude-flow/cli/dist/src/transfer/store/publish.js +294 -0
  776. package/v3/@claude-flow/cli/dist/src/transfer/store/registry.d.ts +58 -0
  777. package/v3/@claude-flow/cli/dist/src/transfer/store/registry.js +285 -0
  778. package/v3/@claude-flow/cli/dist/src/transfer/store/search.d.ts +54 -0
  779. package/v3/@claude-flow/cli/dist/src/transfer/store/search.js +232 -0
  780. package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  781. package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.js +190 -0
  782. package/v3/@claude-flow/cli/dist/src/transfer/store/types.d.ts +193 -0
  783. package/v3/@claude-flow/cli/dist/src/transfer/store/types.js +6 -0
  784. package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.d.ts +6 -0
  785. package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.js +105 -0
  786. package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.d.ts +7 -0
  787. package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.js +214 -0
  788. package/v3/@claude-flow/cli/dist/src/transfer/types.d.ts +245 -0
  789. package/v3/@claude-flow/cli/dist/src/transfer/types.js +6 -0
  790. package/v3/@claude-flow/cli/dist/src/types.d.ts +13 -0
  791. package/v3/@claude-flow/cli/dist/src/types.js +13 -0
  792. package/v3/@claude-flow/cli/dist/src/update/checker.d.ts +34 -0
  793. package/v3/@claude-flow/cli/dist/src/update/checker.js +191 -0
  794. package/v3/@claude-flow/cli/dist/src/update/executor.d.ts +33 -0
  795. package/v3/@claude-flow/cli/dist/src/update/executor.js +217 -0
  796. package/v3/@claude-flow/cli/dist/src/update/index.d.ts +33 -0
  797. package/v3/@claude-flow/cli/dist/src/update/index.js +64 -0
  798. package/v3/@claude-flow/cli/dist/src/update/rate-limiter.d.ts +20 -0
  799. package/v3/@claude-flow/cli/dist/src/update/rate-limiter.js +96 -0
  800. package/v3/@claude-flow/cli/dist/src/update/validator.d.ts +17 -0
  801. package/v3/@claude-flow/cli/dist/src/update/validator.js +123 -0
  802. package/v3/@claude-flow/cli/package.json +133 -0
  803. package/v3/@claude-flow/guidance/README.md +1195 -0
  804. package/v3/@claude-flow/guidance/package.json +198 -0
  805. package/v3/@claude-flow/shared/README.md +323 -0
  806. package/v3/@claude-flow/shared/package.json +43 -0
  807. package/v3/README.md +493 -0
@@ -0,0 +1,937 @@
1
+ /**
2
+ * Statusline Configuration Generator (Optimized)
3
+ * Creates fast, reliable statusline for V3 progress display
4
+ *
5
+ * Performance:
6
+ * - Single combined git execSync call (not 8+ separate ones)
7
+ * - process.memoryUsage() instead of ps aux
8
+ * - No recursive test file content reading
9
+ * - Shared settings cache
10
+ * - Strict 2s timeouts on all shell calls
11
+ */
12
+ /**
13
+ * Generate optimized statusline script
14
+ * Output format:
15
+ * ▊ RuFlo V3.6 ● user │ ⎇ branch │ Opus 4.7
16
+ * ─────────────────────────────────────────────────────
17
+ * 🏗️ DDD Domains [●●○○○] 2/5 ⚡ HNSW 150x
18
+ * 🤖 Swarm ◉ [ 5/15] 👥 2 🪝 10/17 🟢 CVE 3/3 💾 4MB 🧠 63%
19
+ * 🔧 Architecture ADRs ●71% │ DDD ● 13% │ Security ●CLEAN
20
+ * 📊 AgentDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
21
+ */
22
+ export function generateStatuslineScript(options) {
23
+ const maxAgents = options.runtime.maxAgents;
24
+ return `#!/usr/bin/env node
25
+ /**
26
+ * RuFlo V3 Statusline Generator (Optimized)
27
+ * Displays real-time V3 implementation progress and system status
28
+ *
29
+ * Usage: node statusline.cjs [--json] [--compact]
30
+ *
31
+ * Performance notes:
32
+ * - Single git execSync call (combines branch + status + upstream)
33
+ * - No recursive file reading (only stat/readdir, never read test contents)
34
+ * - No ps aux calls (uses process.memoryUsage() + file-based metrics)
35
+ * - Strict 2s timeout on all execSync calls
36
+ * - Shared settings cache across functions
37
+ */
38
+
39
+ /* eslint-disable @typescript-eslint/no-var-requires */
40
+ const fs = require('fs');
41
+ const path = require('path');
42
+ const { execSync } = require('child_process');
43
+ const os = require('os');
44
+
45
+ // Configuration
46
+ const CONFIG = {
47
+ maxAgents: ${maxAgents},
48
+ };
49
+
50
+ const CWD = process.cwd();
51
+
52
+ // ANSI colors
53
+ const c = {
54
+ reset: '\\x1b[0m',
55
+ bold: '\\x1b[1m',
56
+ dim: '\\x1b[2m',
57
+ red: '\\x1b[0;31m',
58
+ green: '\\x1b[0;32m',
59
+ yellow: '\\x1b[0;33m',
60
+ blue: '\\x1b[0;34m',
61
+ purple: '\\x1b[0;35m',
62
+ cyan: '\\x1b[0;36m',
63
+ brightRed: '\\x1b[1;31m',
64
+ brightGreen: '\\x1b[1;32m',
65
+ brightYellow: '\\x1b[1;33m',
66
+ brightBlue: '\\x1b[1;34m',
67
+ brightPurple: '\\x1b[1;35m',
68
+ brightCyan: '\\x1b[1;36m',
69
+ brightWhite: '\\x1b[1;37m',
70
+ };
71
+
72
+ // Safe execSync with strict timeout (returns empty string on failure)
73
+ function safeExec(cmd, timeoutMs = 2000) {
74
+ try {
75
+ return execSync(cmd, {
76
+ encoding: 'utf-8',
77
+ timeout: timeoutMs,
78
+ stdio: ['pipe', 'pipe', 'pipe'],
79
+ }).trim();
80
+ } catch {
81
+ return '';
82
+ }
83
+ }
84
+
85
+ // Safe JSON file reader (returns null on failure)
86
+ function readJSON(filePath) {
87
+ try {
88
+ if (fs.existsSync(filePath)) {
89
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
90
+ }
91
+ } catch { /* ignore */ }
92
+ return null;
93
+ }
94
+
95
+ // Safe file stat (returns null on failure)
96
+ function safeStat(filePath) {
97
+ try {
98
+ return fs.statSync(filePath);
99
+ } catch { /* ignore */ }
100
+ return null;
101
+ }
102
+
103
+ // Shared settings cache — read once, used by multiple functions
104
+ let _settingsCache = undefined;
105
+ function getSettings() {
106
+ if (_settingsCache !== undefined) return _settingsCache;
107
+ _settingsCache = readJSON(path.join(CWD, '.claude', 'settings.json'))
108
+ || readJSON(path.join(CWD, '.claude', 'settings.local.json'))
109
+ || null;
110
+ return _settingsCache;
111
+ }
112
+
113
+ // ─── Data Collection (all pure-Node.js or single-exec) ──────────
114
+
115
+ // Get all git info in ONE shell call
116
+ function getGitInfo() {
117
+ const result = {
118
+ name: 'user', gitBranch: '', modified: 0, untracked: 0,
119
+ staged: 0, ahead: 0, behind: 0,
120
+ };
121
+
122
+ // Single shell: get user.name, branch, porcelain status, and upstream diff
123
+ const script = [
124
+ 'git config user.name 2>/dev/null || echo user',
125
+ 'echo "---SEP---"',
126
+ 'git branch --show-current 2>/dev/null',
127
+ 'echo "---SEP---"',
128
+ 'git status --porcelain 2>/dev/null',
129
+ 'echo "---SEP---"',
130
+ 'git rev-list --left-right --count HEAD...@{upstream} 2>/dev/null || echo "0 0"',
131
+ ].join('; ');
132
+
133
+ const raw = safeExec("sh -c '" + script + "'", 3000);
134
+ if (!raw) return result;
135
+
136
+ const parts = raw.split('---SEP---').map(s => s.trim());
137
+ if (parts.length >= 4) {
138
+ result.name = parts[0] || 'user';
139
+ result.gitBranch = parts[1] || '';
140
+
141
+ // Parse porcelain status
142
+ if (parts[2]) {
143
+ for (const line of parts[2].split('\\n')) {
144
+ if (!line || line.length < 2) continue;
145
+ const x = line[0], y = line[1];
146
+ if (x === '?' && y === '?') { result.untracked++; continue; }
147
+ if (x !== ' ' && x !== '?') result.staged++;
148
+ if (y !== ' ' && y !== '?') result.modified++;
149
+ }
150
+ }
151
+
152
+ // Parse ahead/behind
153
+ const ab = (parts[3] || '0 0').split(/\\s+/);
154
+ result.ahead = parseInt(ab[0]) || 0;
155
+ result.behind = parseInt(ab[1]) || 0;
156
+ }
157
+
158
+ return result;
159
+ }
160
+
161
+ // Detect model name from Claude config (pure file reads, no exec)
162
+ function getModelName() {
163
+ try {
164
+ const claudeConfig = readJSON(path.join(os.homedir(), '.claude.json'));
165
+ if (claudeConfig && claudeConfig.projects) {
166
+ for (const [projectPath, projectConfig] of Object.entries(claudeConfig.projects)) {
167
+ if (CWD === projectPath || CWD.startsWith(projectPath + '/')) {
168
+ const usage = projectConfig.lastModelUsage;
169
+ if (usage) {
170
+ const ids = Object.keys(usage);
171
+ if (ids.length > 0) {
172
+ let modelId = ids[ids.length - 1];
173
+ let latest = 0;
174
+ for (const id of ids) {
175
+ const ts = usage[id] && usage[id].lastUsedAt ? new Date(usage[id].lastUsedAt).getTime() : 0;
176
+ if (ts > latest) { latest = ts; modelId = id; }
177
+ }
178
+ if (modelId.includes('opus')) return 'Opus 4.7';
179
+ if (modelId.includes('sonnet')) return 'Sonnet 4.6';
180
+ if (modelId.includes('haiku')) return 'Haiku 4.5';
181
+ return modelId.split('-').slice(1, 3).join(' ');
182
+ }
183
+ }
184
+ break;
185
+ }
186
+ }
187
+ }
188
+ } catch { /* ignore */ }
189
+
190
+ // Fallback: settings.json model field
191
+ const settings = getSettings();
192
+ if (settings && settings.model) {
193
+ const m = settings.model;
194
+ if (m.includes('opus')) return 'Opus 4.7';
195
+ if (m.includes('sonnet')) return 'Sonnet 4.6';
196
+ if (m.includes('haiku')) return 'Haiku 4.5';
197
+ }
198
+ return 'Claude Code';
199
+ }
200
+
201
+ // Get learning stats from real data sources (no heuristics)
202
+ function getLearningStats() {
203
+ let patterns = 0;
204
+ let sessions = 0;
205
+
206
+ // 1. Count real patterns from intelligence pattern store
207
+ const patternStorePath = path.join(CWD, '.claude-flow', 'data', 'patterns.json');
208
+ try {
209
+ if (fs.existsSync(patternStorePath)) {
210
+ const data = JSON.parse(fs.readFileSync(patternStorePath, 'utf-8'));
211
+ if (Array.isArray(data)) patterns = data.length;
212
+ else if (data && data.patterns) patterns = Array.isArray(data.patterns) ? data.patterns.length : Object.keys(data.patterns).length;
213
+ }
214
+ } catch { /* ignore */ }
215
+
216
+ // 2. Count patterns from auto-memory-store (real entries, not file size)
217
+ if (patterns === 0) {
218
+ const autoStorePath = path.join(CWD, '.claude-flow', 'data', 'auto-memory-store.json');
219
+ try {
220
+ if (fs.existsSync(autoStorePath)) {
221
+ const data = JSON.parse(fs.readFileSync(autoStorePath, 'utf-8'));
222
+ if (Array.isArray(data)) patterns = data.length;
223
+ else if (data && data.entries) patterns = data.entries.length;
224
+ }
225
+ } catch { /* ignore */ }
226
+ }
227
+
228
+ // 3. Count patterns from memory.db using row count (sqlite header bytes 28-31).
229
+ //
230
+ // ruflo#1989: when encryption at rest is enabled, memory.db is no
231
+ // longer a SQLite database -- it is an RFE1-magicked ciphertext blob.
232
+ // The original code blindly read bytes 28-31 as a page count and
233
+ // rendered 3.3B patterns (uint32 of random ciphertext). That
234
+ // cascaded into fake DDD 5/5 / 100% indicators downstream.
235
+ //
236
+ // Guard with the SQLite magic ("SQLite format 3\\0", 16 bytes at
237
+ // offset 0). Also clamp implausible page counts (>1M pages ~= 4GB)
238
+ // to avoid reporting nonsense even on plaintext SQLite.
239
+ if (patterns === 0) {
240
+ const SQLITE_MAGIC = Buffer.from('SQLite format 3\\0', 'binary');
241
+ const memoryPaths = [
242
+ path.join(CWD, '.claude-flow', 'memory.db'),
243
+ path.join(CWD, 'data', 'memory.db'),
244
+ path.join(CWD, '.swarm', 'memory.db'),
245
+ ];
246
+ for (const dbPath of memoryPaths) {
247
+ try {
248
+ if (!fs.existsSync(dbPath)) continue;
249
+ const fd = fs.openSync(dbPath, 'r');
250
+ const head = Buffer.alloc(16);
251
+ fs.readSync(fd, head, 0, 16, 0);
252
+ if (!head.equals(SQLITE_MAGIC)) {
253
+ // Not plaintext SQLite (likely RFE1 encrypted, an empty
254
+ // file, or some other format). Skip — let the daemon or
255
+ // patterns.json fallback report the real number.
256
+ fs.closeSync(fd);
257
+ continue;
258
+ }
259
+ const buf = Buffer.alloc(4);
260
+ fs.readSync(fd, buf, 0, 4, 28);
261
+ fs.closeSync(fd);
262
+ const pageCount = buf.readUInt32BE(0);
263
+ // Sanity: reject implausible counts (> 1M pages ≈ 4 GB DB).
264
+ if (pageCount > 1_000_000) continue;
265
+ // Each page typically holds ~10-50 rows; use page count as
266
+ // conservative estimate. Report 0 if only schema pages (< 3).
267
+ patterns = pageCount > 2 ? pageCount - 2 : 0;
268
+ break;
269
+ } catch { /* ignore */ }
270
+ }
271
+ }
272
+
273
+ // 4. Count real session files
274
+ try {
275
+ const sessDir = path.join(CWD, '.claude', 'sessions');
276
+ if (fs.existsSync(sessDir)) {
277
+ sessions = fs.readdirSync(sessDir).filter(f => f.endsWith('.json')).length;
278
+ }
279
+ } catch { /* ignore */ }
280
+
281
+ // 5. Count session files from claude-flow
282
+ if (sessions === 0) {
283
+ try {
284
+ const cfSessDir = path.join(CWD, '.claude-flow', 'sessions');
285
+ if (fs.existsSync(cfSessDir)) {
286
+ sessions = fs.readdirSync(cfSessDir).filter(f => f.endsWith('.json')).length;
287
+ }
288
+ } catch { /* ignore */ }
289
+ }
290
+
291
+ return { patterns, sessions };
292
+ }
293
+
294
+ // V3 progress from metrics files (pure file reads)
295
+ function getV3Progress() {
296
+ const learning = getLearningStats();
297
+ const totalDomains = 5;
298
+
299
+ const dddData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'ddd-progress.json'));
300
+ let dddProgress = dddData ? (dddData.progress || 0) : 0;
301
+ let domainsCompleted = Math.min(5, Math.floor(dddProgress / 20));
302
+
303
+ // Only derive DDD progress from real ddd-progress.json or real pattern data
304
+ // Don't inflate domains from pattern count — 0 means no DDD work tracked.
305
+ // ruflo#1989: defensively clamp learning.patterns even though
306
+ // getLearningStats already guards against the RFE1-encrypted case --
307
+ // if any future regression in the upstream reader returns a wild
308
+ // value, we do not want to silently inflate DDD to 5/5 / 100%.
309
+ const realPatterns = Number.isFinite(learning.patterns) && learning.patterns >= 0 && learning.patterns < 1_000_000
310
+ ? learning.patterns
311
+ : 0;
312
+ if (dddProgress === 0 && realPatterns > 0) {
313
+ // Conservative: only count domains if we have substantial real pattern data
314
+ // Each domain requires ~100 real stored patterns to claim completion
315
+ domainsCompleted = Math.min(5, Math.floor(realPatterns / 100));
316
+ dddProgress = Math.floor((domainsCompleted / totalDomains) * 100);
317
+ }
318
+
319
+ return {
320
+ domainsCompleted, totalDomains, dddProgress,
321
+ patternsLearned: realPatterns,
322
+ sessionsCompleted: learning.sessions,
323
+ };
324
+ }
325
+
326
+ // Security status (pure file reads)
327
+ function getSecurityStatus() {
328
+ const auditData = readJSON(path.join(CWD, '.claude-flow', 'security', 'audit-status.json'));
329
+ if (auditData) {
330
+ const auditDate = auditData.lastAudit || auditData.lastScan;
331
+ if (!auditDate) {
332
+ return { status: 'PENDING', cvesFixed: 0, totalCves: 0 };
333
+ }
334
+ const auditAge = Date.now() - new Date(auditDate).getTime();
335
+ const isStale = auditAge > 7 * 24 * 60 * 60 * 1000;
336
+ return {
337
+ status: isStale ? 'STALE' : (auditData.status || 'PENDING'),
338
+ cvesFixed: auditData.cvesFixed || 0,
339
+ totalCves: auditData.totalCves || 0,
340
+ };
341
+ }
342
+
343
+ let scanCount = 0;
344
+ try {
345
+ const scanDir = path.join(CWD, '.claude', 'security-scans');
346
+ if (fs.existsSync(scanDir)) {
347
+ scanCount = fs.readdirSync(scanDir).filter(f => f.endsWith('.json')).length;
348
+ }
349
+ } catch { /* ignore */ }
350
+
351
+ return {
352
+ status: scanCount > 0 ? 'SCANNED' : 'NONE',
353
+ cvesFixed: 0,
354
+ totalCves: 0,
355
+ };
356
+ }
357
+
358
+ // Swarm status (pure file reads, NO ps aux)
359
+ function getSwarmStatus() {
360
+ const staleThresholdMs = 5 * 60 * 1000;
361
+ const now = Date.now();
362
+
363
+ const swarmStatePath = path.join(CWD, '.claude-flow', 'swarm', 'swarm-state.json');
364
+ const swarmState = readJSON(swarmStatePath);
365
+ if (swarmState) {
366
+ const updatedAt = swarmState.updatedAt || swarmState.startedAt;
367
+ const age = updatedAt ? now - new Date(updatedAt).getTime() : Infinity;
368
+ if (age < staleThresholdMs) {
369
+ return {
370
+ activeAgents: (swarmState.agents && swarmState.agents.length) || swarmState.agentCount || 0,
371
+ maxAgents: swarmState.maxAgents || CONFIG.maxAgents,
372
+ coordinationActive: true,
373
+ };
374
+ }
375
+ }
376
+
377
+ const activityData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'swarm-activity.json'));
378
+ if (activityData && activityData.swarm) {
379
+ const updatedAt = activityData.timestamp || (activityData.swarm && activityData.swarm.timestamp);
380
+ const age = updatedAt ? now - new Date(updatedAt).getTime() : Infinity;
381
+ if (age < staleThresholdMs) {
382
+ return {
383
+ activeAgents: activityData.swarm.agent_count || 0,
384
+ maxAgents: CONFIG.maxAgents,
385
+ coordinationActive: activityData.swarm.coordination_active || activityData.swarm.active || false,
386
+ };
387
+ }
388
+ }
389
+
390
+ return { activeAgents: 0, maxAgents: CONFIG.maxAgents, coordinationActive: false };
391
+ }
392
+
393
+ // System metrics (uses process.memoryUsage() — no shell spawn)
394
+ function getSystemMetrics() {
395
+ const memoryMB = Math.floor(process.memoryUsage().heapUsed / 1024 / 1024);
396
+ const learning = getLearningStats();
397
+ const agentdb = getAgentDBStats();
398
+
399
+ // Intelligence from learning.json
400
+ const learningData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'learning.json'));
401
+ let intelligencePct = 0;
402
+ let contextPct = 0;
403
+
404
+ if (learningData && learningData.intelligence && learningData.intelligence.score !== undefined) {
405
+ intelligencePct = Math.min(100, Math.floor(learningData.intelligence.score));
406
+ } else {
407
+ // Use real data only — patterns from actual store, vectors from actual DB.
408
+ // ruflo#1989: clamp patterns to a sane upper bound. A multi-billion
409
+ // pattern count from a buggy reader would saturate intelligencePct
410
+ // to 100% and silently lie about progress.
411
+ const realPatterns = Number.isFinite(learning.patterns) && learning.patterns >= 0 && learning.patterns < 1_000_000
412
+ ? learning.patterns
413
+ : 0;
414
+ const fromPatterns = realPatterns > 0 ? Math.min(100, Math.floor(realPatterns / 20)) : 0;
415
+ const fromVectors = agentdb.vectorCount > 0 ? Math.min(100, Math.floor(agentdb.vectorCount / 20)) : 0;
416
+ intelligencePct = Math.max(fromPatterns, fromVectors);
417
+ }
418
+ // No fake fallback — 0% means no real learning data exists
419
+
420
+ if (learningData && learningData.sessions && learningData.sessions.total !== undefined) {
421
+ contextPct = Math.min(100, learningData.sessions.total * 5);
422
+ } else {
423
+ // Real session count only — no heuristic derivation from patterns
424
+ contextPct = learning.sessions > 0 ? Math.min(100, learning.sessions * 5) : 0;
425
+ }
426
+
427
+ // Sub-agents from file metrics (no ps aux)
428
+ let subAgents = 0;
429
+ const activityData = readJSON(path.join(CWD, '.claude-flow', 'metrics', 'swarm-activity.json'));
430
+ if (activityData && activityData.processes && activityData.processes.estimated_agents) {
431
+ subAgents = activityData.processes.estimated_agents;
432
+ }
433
+
434
+ return { memoryMB, contextPct, intelligencePct, subAgents };
435
+ }
436
+
437
+ // ADR status (count files only — don't read contents)
438
+ function getADRStatus() {
439
+ // Count actual ADR files first — compliance JSON may be stale
440
+ const adrPaths = [
441
+ path.join(CWD, 'v3', 'implementation', 'adrs'),
442
+ path.join(CWD, 'docs', 'adrs'),
443
+ path.join(CWD, '.claude-flow', 'adrs'),
444
+ ];
445
+
446
+ for (const adrPath of adrPaths) {
447
+ try {
448
+ if (fs.existsSync(adrPath)) {
449
+ const files = fs.readdirSync(adrPath).filter(f =>
450
+ f.endsWith('.md') && (f.startsWith('ADR-') || f.startsWith('adr-') || /^\\d{4}-/.test(f))
451
+ );
452
+ return { count: files.length, implemented: files.length, compliance: 0 };
453
+ }
454
+ } catch { /* ignore */ }
455
+ }
456
+
457
+ return { count: 0, implemented: 0, compliance: 0 };
458
+ }
459
+
460
+ // Hooks status (shared settings cache)
461
+ function getHooksStatus() {
462
+ let enabled = 0;
463
+ let total = 0;
464
+ const settings = getSettings();
465
+
466
+ if (settings && settings.hooks) {
467
+ for (const category of Object.keys(settings.hooks)) {
468
+ const matchers = settings.hooks[category];
469
+ if (!Array.isArray(matchers)) continue;
470
+ for (const matcher of matchers) {
471
+ const hooks = matcher && matcher.hooks;
472
+ if (Array.isArray(hooks)) {
473
+ total += hooks.length;
474
+ enabled += hooks.length;
475
+ }
476
+ }
477
+ }
478
+ }
479
+
480
+ try {
481
+ const hooksDir = path.join(CWD, '.claude', 'hooks');
482
+ if (fs.existsSync(hooksDir)) {
483
+ const hookFiles = fs.readdirSync(hooksDir).filter(f => f.endsWith('.js') || f.endsWith('.sh')).length;
484
+ total = Math.max(total, hookFiles);
485
+ enabled = Math.max(enabled, hookFiles);
486
+ }
487
+ } catch { /* ignore */ }
488
+
489
+ return { enabled, total };
490
+ }
491
+
492
+ // AgentDB stats — count real entries from all data stores
493
+ function getAgentDBStats() {
494
+ let vectorCount = 0;
495
+ let dbSizeKB = 0;
496
+ let namespaces = 0;
497
+ let hasHnsw = false;
498
+
499
+ // 1. Count real entries from auto-memory-store.json
500
+ const storePath = path.join(CWD, '.claude-flow', 'data', 'auto-memory-store.json');
501
+ const storeStat = safeStat(storePath);
502
+ if (storeStat) {
503
+ dbSizeKB += storeStat.size / 1024;
504
+ try {
505
+ const store = JSON.parse(fs.readFileSync(storePath, 'utf-8'));
506
+ if (Array.isArray(store)) vectorCount += store.length;
507
+ else if (store && store.entries) vectorCount += store.entries.length;
508
+ } catch { /* fall back */ }
509
+ }
510
+
511
+ // 2. Count entries from hooks memory store (.claude-flow/memory/store.json)
512
+ const hooksStorePath = path.join(CWD, '.claude-flow', 'memory', 'store.json');
513
+ const hooksStoreStat = safeStat(hooksStorePath);
514
+ if (hooksStoreStat) {
515
+ dbSizeKB += hooksStoreStat.size / 1024;
516
+ try {
517
+ const store = JSON.parse(fs.readFileSync(hooksStorePath, 'utf-8'));
518
+ if (store && store.entries) {
519
+ const entryCount = Object.keys(store.entries).length;
520
+ vectorCount = Math.max(vectorCount, entryCount);
521
+ if (entryCount > 0) namespaces++;
522
+ }
523
+ } catch { /* fall back */ }
524
+ }
525
+
526
+ // 3. Count entries from ranked-context.json
527
+ try {
528
+ const ranked = readJSON(path.join(CWD, '.claude-flow', 'data', 'ranked-context.json'));
529
+ if (ranked && ranked.entries && ranked.entries.length > vectorCount) vectorCount = ranked.entries.length;
530
+ } catch { /* ignore */ }
531
+
532
+ // 3. Add DB file sizes
533
+ const dbFiles = [
534
+ path.join(CWD, 'data', 'memory.db'),
535
+ path.join(CWD, '.claude-flow', 'memory.db'),
536
+ path.join(CWD, '.swarm', 'memory.db'),
537
+ ];
538
+ for (const f of dbFiles) {
539
+ const stat = safeStat(f);
540
+ if (stat) {
541
+ dbSizeKB += stat.size / 1024;
542
+ namespaces++;
543
+ }
544
+ }
545
+
546
+ // 4. Graph data size
547
+ const graphStat = safeStat(path.join(CWD, 'data', 'memory.graph'));
548
+ if (graphStat) dbSizeKB += graphStat.size / 1024;
549
+
550
+ // 5. HNSW index or memory package
551
+ const hnswPaths = [
552
+ path.join(CWD, '.swarm', 'hnsw.index'),
553
+ path.join(CWD, '.claude-flow', 'hnsw.index'),
554
+ ];
555
+ for (const p of hnswPaths) {
556
+ if (safeStat(p)) { hasHnsw = true; break; }
557
+ }
558
+ if (!hasHnsw) {
559
+ const memPkgPaths = [
560
+ path.join(CWD, 'v3', '@claude-flow', 'memory', 'dist'),
561
+ path.join(CWD, 'node_modules', '@claude-flow', 'memory'),
562
+ ];
563
+ for (const p of memPkgPaths) {
564
+ if (fs.existsSync(p)) { hasHnsw = true; break; }
565
+ }
566
+ }
567
+
568
+ return { vectorCount, dbSizeKB: Math.floor(dbSizeKB), namespaces, hasHnsw };
569
+ }
570
+
571
+ // Test stats (count files only — NO reading file contents)
572
+ function getTestStats() {
573
+ let testFiles = 0;
574
+
575
+ function countTestFiles(dir, depth) {
576
+ if (depth === undefined) depth = 0;
577
+ if (depth > 6) return;
578
+ try {
579
+ if (!fs.existsSync(dir)) return;
580
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
581
+ for (const entry of entries) {
582
+ if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
583
+ countTestFiles(path.join(dir, entry.name), depth + 1);
584
+ } else if (entry.isFile()) {
585
+ const n = entry.name;
586
+ if (n.includes('.test.') || n.includes('.spec.') || n.includes('_test.') || n.includes('_spec.')) {
587
+ testFiles++;
588
+ }
589
+ }
590
+ }
591
+ } catch { /* ignore */ }
592
+ }
593
+
594
+ var testDirNames = ['tests', 'test', '__tests__', 'src', 'v3'];
595
+ for (var i = 0; i < testDirNames.length; i++) {
596
+ countTestFiles(path.join(CWD, testDirNames[i]));
597
+ }
598
+
599
+ return { testFiles, testCases: testFiles * 4 };
600
+ }
601
+
602
+ // Integration status (shared settings + file checks)
603
+ function getIntegrationStatus() {
604
+ const mcpServers = { total: 0, enabled: 0 };
605
+ const settings = getSettings();
606
+
607
+ if (settings && settings.mcpServers && typeof settings.mcpServers === 'object') {
608
+ const servers = Object.keys(settings.mcpServers);
609
+ mcpServers.total = servers.length;
610
+ mcpServers.enabled = settings.enabledMcpjsonServers
611
+ ? settings.enabledMcpjsonServers.filter(s => servers.includes(s)).length
612
+ : servers.length;
613
+ }
614
+
615
+ if (mcpServers.total === 0) {
616
+ const mcpConfig = readJSON(path.join(CWD, '.mcp.json'))
617
+ || readJSON(path.join(os.homedir(), '.claude', 'mcp.json'));
618
+ if (mcpConfig && mcpConfig.mcpServers) {
619
+ const s = Object.keys(mcpConfig.mcpServers);
620
+ mcpServers.total = s.length;
621
+ mcpServers.enabled = s.length;
622
+ }
623
+ }
624
+
625
+ const hasDatabase = ['.swarm/memory.db', '.claude-flow/memory.db', 'data/memory.db']
626
+ .some(p => fs.existsSync(path.join(CWD, p)));
627
+ const hasApi = !!(process.env.ANTHROPIC_API_KEY || process.env.OPENAI_API_KEY);
628
+
629
+ return { mcpServers, hasDatabase, hasApi };
630
+ }
631
+
632
+ // Session stats (pure file reads)
633
+ function getSessionStats() {
634
+ var sessionPaths = ['.claude-flow/session.json', '.claude/session.json'];
635
+ for (var i = 0; i < sessionPaths.length; i++) {
636
+ const data = readJSON(path.join(CWD, sessionPaths[i]));
637
+ if (data && data.startTime) {
638
+ const diffMs = Date.now() - new Date(data.startTime).getTime();
639
+ const mins = Math.floor(diffMs / 60000);
640
+ const duration = mins < 60 ? mins + 'm' : Math.floor(mins / 60) + 'h' + (mins % 60) + 'm';
641
+ return { duration: duration };
642
+ }
643
+ }
644
+ return { duration: '' };
645
+ }
646
+
647
+ // ─── Rendering ──────────────────────────────────────────────────
648
+
649
+ function progressBar(current, total) {
650
+ const width = 5;
651
+ const filled = Math.round((current / total) * width);
652
+ return '[' + '\\u25CF'.repeat(filled) + '\\u25CB'.repeat(width - filled) + ']';
653
+ }
654
+
655
+ function generateStatusline() {
656
+ const git = getGitInfo();
657
+ // Prefer model name from Claude Code stdin data, fallback to file-based detection
658
+ const modelName = getModelFromStdin() || getModelName();
659
+ const ctxInfo = getContextFromStdin();
660
+ const costInfo = getCostFromStdin();
661
+ const progress = getV3Progress();
662
+ const security = getSecurityStatus();
663
+ const swarm = getSwarmStatus();
664
+ const system = getSystemMetrics();
665
+ const adrs = getADRStatus();
666
+ const hooks = getHooksStatus();
667
+ const agentdb = getAgentDBStats();
668
+ const tests = getTestStats();
669
+ const session = getSessionStats();
670
+ const integration = getIntegrationStatus();
671
+ const lines = [];
672
+
673
+ // Header — read version from the FIRST package.json we find, preferring
674
+ // the plugin install at ~/.claude/plugins/marketplaces/ruflo/package.json.
675
+ // The previous list only checked project-local node_modules, so plugin
676
+ // users saw the hard-coded fallback (V3.5) even on newer alphas (#1951).
677
+ let pkgVersion = '3.6';
678
+ try {
679
+ const home = require('os').homedir();
680
+ const pkgPaths = [
681
+ // 1. The plugin's own root (installed via /plugin install).
682
+ path.join(home, '.claude', 'plugins', 'marketplaces', 'ruflo', 'package.json'),
683
+ // 2. Project-local @claude-flow/cli — npm-style install.
684
+ path.join(CWD, 'node_modules', '@claude-flow', 'cli', 'package.json'),
685
+ // 3. Project-local ruflo umbrella.
686
+ path.join(CWD, 'node_modules', 'ruflo', 'package.json'),
687
+ // 4. Source-checkout location (when developing in this repo).
688
+ path.join(CWD, 'v3', '@claude-flow', 'cli', 'package.json'),
689
+ ];
690
+ for (const p of pkgPaths) {
691
+ if (!fs.existsSync(p)) continue;
692
+ try {
693
+ const pkg = JSON.parse(fs.readFileSync(p, 'utf-8'));
694
+ if (pkg && typeof pkg.version === 'string' && pkg.version.length > 0) {
695
+ pkgVersion = pkg.version;
696
+ break;
697
+ }
698
+ } catch { /* malformed package.json — try next */ }
699
+ }
700
+ } catch { /* fall through to the hardcoded default */ }
701
+ let header = c.bold + c.brightPurple + '\\u258A RuFlo V' + pkgVersion + ' ' + c.reset;
702
+ header += (swarm.coordinationActive ? c.brightCyan : c.dim) + '\\u25CF ' + c.brightCyan + git.name + c.reset;
703
+ if (git.gitBranch) {
704
+ header += ' ' + c.dim + '\\u2502' + c.reset + ' ' + c.brightBlue + '\\u23C7 ' + git.gitBranch + c.reset;
705
+ const changes = git.modified + git.staged + git.untracked;
706
+ if (changes > 0) {
707
+ let ind = '';
708
+ if (git.staged > 0) ind += c.brightGreen + '+' + git.staged + c.reset;
709
+ if (git.modified > 0) ind += c.brightYellow + '~' + git.modified + c.reset;
710
+ if (git.untracked > 0) ind += c.dim + '?' + git.untracked + c.reset;
711
+ header += ' ' + ind;
712
+ }
713
+ if (git.ahead > 0) header += ' ' + c.brightGreen + '\\u2191' + git.ahead + c.reset;
714
+ if (git.behind > 0) header += ' ' + c.brightRed + '\\u2193' + git.behind + c.reset;
715
+ }
716
+ header += ' ' + c.dim + '\\u2502' + c.reset + ' ' + c.purple + modelName + c.reset;
717
+ // Show session duration from Claude Code stdin if available, else from local files
718
+ const duration = costInfo ? costInfo.duration : session.duration;
719
+ if (duration) header += ' ' + c.dim + '\\u2502' + c.reset + ' ' + c.cyan + '\\u23F1 ' + duration + c.reset;
720
+ // Show context usage from Claude Code stdin if available
721
+ if (ctxInfo && ctxInfo.usedPct > 0) {
722
+ const ctxColor = ctxInfo.usedPct >= 90 ? c.brightRed : ctxInfo.usedPct >= 70 ? c.brightYellow : c.brightGreen;
723
+ header += ' ' + c.dim + '\\u2502' + c.reset + ' ' + ctxColor + '\\u25CF ' + ctxInfo.usedPct + '% ctx' + c.reset;
724
+ }
725
+ // Show cost from Claude Code stdin if available
726
+ if (costInfo && costInfo.costUsd > 0) {
727
+ header += ' ' + c.dim + '\\u2502' + c.reset + ' ' + c.brightYellow + '$' + costInfo.costUsd.toFixed(2) + c.reset;
728
+ }
729
+ lines.push(header);
730
+
731
+ // Separator
732
+ lines.push(c.dim + '\\u2500'.repeat(53) + c.reset);
733
+
734
+ // Line 1: DDD Domains
735
+ const domainsColor = progress.domainsCompleted >= 3 ? c.brightGreen : progress.domainsCompleted > 0 ? c.yellow : c.red;
736
+ let perfIndicator;
737
+ if (agentdb.hasHnsw && agentdb.vectorCount > 0) {
738
+ const speedup = agentdb.vectorCount > 10000 ? '12500x' : agentdb.vectorCount > 1000 ? '150x' : '10x';
739
+ perfIndicator = c.brightGreen + '\\u26A1 HNSW ' + speedup + c.reset;
740
+ } else if (progress.patternsLearned > 0) {
741
+ const pk = progress.patternsLearned >= 1000 ? (progress.patternsLearned / 1000).toFixed(1) + 'k' : String(progress.patternsLearned);
742
+ perfIndicator = c.brightYellow + '\\uD83D\\uDCDA ' + pk + ' patterns' + c.reset;
743
+ } else {
744
+ perfIndicator = c.dim + '\\u26A1 target: 150x-12500x' + c.reset;
745
+ }
746
+ lines.push(
747
+ c.brightCyan + '\\uD83C\\uDFD7\\uFE0F DDD Domains' + c.reset + ' ' + progressBar(progress.domainsCompleted, progress.totalDomains) + ' ' +
748
+ domainsColor + progress.domainsCompleted + c.reset + '/' + c.brightWhite + progress.totalDomains + c.reset + ' ' + perfIndicator
749
+ );
750
+
751
+ // Line 2: Swarm + Hooks + CVE + Memory + Intelligence
752
+ const swarmInd = swarm.coordinationActive ? c.brightGreen + '\\u25C9' + c.reset : c.dim + '\\u25CB' + c.reset;
753
+ const agentsColor = swarm.activeAgents > 0 ? c.brightGreen : c.red;
754
+ const secIcon = security.status === 'CLEAN' ? '\\uD83D\\uDFE2' : (security.status === 'IN_PROGRESS' || security.status === 'STALE') ? '\\uD83D\\uDFE1' : (security.status === 'NONE' ? '\\u26AA' : '\\uD83D\\uDD34');
755
+ const secColor = security.status === 'CLEAN' ? c.brightGreen : (security.status === 'IN_PROGRESS' || security.status === 'STALE') ? c.brightYellow : (security.status === 'NONE' ? c.dim : c.brightRed);
756
+ const hooksColor = hooks.enabled > 0 ? c.brightGreen : c.dim;
757
+ const intellColor = system.intelligencePct >= 80 ? c.brightGreen : system.intelligencePct >= 40 ? c.brightYellow : c.dim;
758
+
759
+ lines.push(
760
+ c.brightYellow + '\\uD83E\\uDD16 Swarm' + c.reset + ' ' + swarmInd + ' [' + agentsColor + String(swarm.activeAgents).padStart(2) + c.reset + '/' + c.brightWhite + swarm.maxAgents + c.reset + '] ' +
761
+ c.brightPurple + '\\uD83D\\uDC65 ' + system.subAgents + c.reset + ' ' +
762
+ c.brightBlue + '\\uD83E\\uDE9D ' + hooksColor + hooks.enabled + c.reset + '/' + c.brightWhite + hooks.total + c.reset + ' ' +
763
+ secIcon + ' ' + secColor + 'CVE ' + security.cvesFixed + c.reset + '/' + c.brightWhite + security.totalCves + c.reset + ' ' +
764
+ c.brightCyan + '\\uD83D\\uDCBE ' + system.memoryMB + 'MB' + c.reset + ' ' +
765
+ intellColor + '\\uD83E\\uDDE0 ' + String(system.intelligencePct).padStart(3) + '%' + c.reset
766
+ );
767
+
768
+ // Line 3: Architecture
769
+ const dddColor = progress.dddProgress >= 50 ? c.brightGreen : progress.dddProgress > 0 ? c.yellow : c.red;
770
+ const adrColor = adrs.count > 0 ? (adrs.implemented === adrs.count ? c.brightGreen : c.yellow) : c.dim;
771
+ const adrDisplay = adrs.compliance > 0 ? adrColor + '\\u25CF' + adrs.compliance + '%' + c.reset : adrColor + '\\u25CF' + adrs.implemented + '/' + adrs.count + c.reset;
772
+
773
+ lines.push(
774
+ c.brightPurple + '\\uD83D\\uDD27 Architecture' + c.reset + ' ' +
775
+ c.cyan + 'ADRs' + c.reset + ' ' + adrDisplay + ' ' + c.dim + '\\u2502' + c.reset + ' ' +
776
+ c.cyan + 'DDD' + c.reset + ' ' + dddColor + '\\u25CF' + String(progress.dddProgress).padStart(3) + '%' + c.reset + ' ' + c.dim + '\\u2502' + c.reset + ' ' +
777
+ c.cyan + 'Security' + c.reset + ' ' + secColor + '\\u25CF' + security.status + c.reset
778
+ );
779
+
780
+ // Line 4: AgentDB, Tests, Integration
781
+ const hnswInd = agentdb.hasHnsw ? c.brightGreen + '\\u26A1' + c.reset : '';
782
+ const sizeDisp = agentdb.dbSizeKB >= 1024 ? (agentdb.dbSizeKB / 1024).toFixed(1) + 'MB' : agentdb.dbSizeKB + 'KB';
783
+ const vectorColor = agentdb.vectorCount > 0 ? c.brightGreen : c.dim;
784
+ const testColor = tests.testFiles > 0 ? c.brightGreen : c.dim;
785
+
786
+ let integStr = '';
787
+ if (integration.mcpServers.total > 0) {
788
+ const mcpCol = integration.mcpServers.enabled === integration.mcpServers.total ? c.brightGreen :
789
+ integration.mcpServers.enabled > 0 ? c.brightYellow : c.red;
790
+ integStr += c.cyan + 'MCP' + c.reset + ' ' + mcpCol + '\\u25CF' + integration.mcpServers.enabled + '/' + integration.mcpServers.total + c.reset;
791
+ }
792
+ if (integration.hasDatabase) integStr += (integStr ? ' ' : '') + c.brightGreen + '\\u25C6' + c.reset + 'DB';
793
+ if (integration.hasApi) integStr += (integStr ? ' ' : '') + c.brightGreen + '\\u25C6' + c.reset + 'API';
794
+ if (!integStr) integStr = c.dim + '\\u25CF none' + c.reset;
795
+
796
+ lines.push(
797
+ c.brightCyan + '\\uD83D\\uDCCA AgentDB' + c.reset + ' ' +
798
+ c.cyan + 'Vectors' + c.reset + ' ' + vectorColor + '\\u25CF' + agentdb.vectorCount + hnswInd + c.reset + ' ' + c.dim + '\\u2502' + c.reset + ' ' +
799
+ c.cyan + 'Size' + c.reset + ' ' + c.brightWhite + sizeDisp + c.reset + ' ' + c.dim + '\\u2502' + c.reset + ' ' +
800
+ c.cyan + 'Tests' + c.reset + ' ' + testColor + '\\u25CF' + tests.testFiles + c.reset + ' ' + c.dim + '(~' + tests.testCases + ' cases)' + c.reset + ' ' + c.dim + '\\u2502' + c.reset + ' ' +
801
+ integStr
802
+ );
803
+
804
+ return lines.join('\\n');
805
+ }
806
+
807
+ // JSON output
808
+ function generateJSON() {
809
+ const git = getGitInfo();
810
+ return {
811
+ user: { name: git.name, gitBranch: git.gitBranch, modelName: getModelName() },
812
+ v3Progress: getV3Progress(),
813
+ security: getSecurityStatus(),
814
+ swarm: getSwarmStatus(),
815
+ system: getSystemMetrics(),
816
+ adrs: getADRStatus(),
817
+ hooks: getHooksStatus(),
818
+ agentdb: getAgentDBStats(),
819
+ tests: getTestStats(),
820
+ git: { modified: git.modified, untracked: git.untracked, staged: git.staged, ahead: git.ahead, behind: git.behind },
821
+ lastUpdated: new Date().toISOString(),
822
+ };
823
+ }
824
+
825
+ // ─── Stdin reader (Claude Code pipes session JSON) ──────────────
826
+
827
+ // Claude Code sends session JSON via stdin (model, context, cost, etc.)
828
+ // Read it synchronously so the script works both:
829
+ // 1. When invoked by Claude Code (stdin has JSON)
830
+ // 2. When invoked manually from terminal (stdin is empty/tty)
831
+ let _stdinData = null;
832
+ function getStdinData() {
833
+ if (_stdinData !== undefined && _stdinData !== null) return _stdinData;
834
+ try {
835
+ // Check if stdin is a TTY (manual run) — skip reading
836
+ if (process.stdin.isTTY) { _stdinData = null; return null; }
837
+ // Read stdin synchronously via fd 0
838
+ const chunks = [];
839
+ const buf = Buffer.alloc(4096);
840
+ let bytesRead;
841
+ try {
842
+ while ((bytesRead = fs.readSync(0, buf, 0, buf.length, null)) > 0) {
843
+ chunks.push(buf.slice(0, bytesRead));
844
+ }
845
+ } catch { /* EOF or read error */ }
846
+ const raw = Buffer.concat(chunks).toString('utf-8').trim();
847
+ if (raw && raw.startsWith('{')) {
848
+ _stdinData = JSON.parse(raw);
849
+ } else {
850
+ _stdinData = null;
851
+ }
852
+ } catch {
853
+ _stdinData = null;
854
+ }
855
+ return _stdinData;
856
+ }
857
+
858
+ // Override model detection to prefer stdin data from Claude Code
859
+ function getModelFromStdin() {
860
+ const data = getStdinData();
861
+ if (data && data.model && data.model.display_name) return data.model.display_name;
862
+ return null;
863
+ }
864
+
865
+ // Get context window info from Claude Code session
866
+ function getContextFromStdin() {
867
+ const data = getStdinData();
868
+ if (data && data.context_window) {
869
+ return {
870
+ usedPct: Math.floor(data.context_window.used_percentage || 0),
871
+ remainingPct: Math.floor(data.context_window.remaining_percentage || 100),
872
+ };
873
+ }
874
+ return null;
875
+ }
876
+
877
+ // Get cost info from Claude Code session
878
+ function getCostFromStdin() {
879
+ const data = getStdinData();
880
+ if (data && data.cost) {
881
+ const durationMs = data.cost.total_duration_ms || 0;
882
+ const mins = Math.floor(durationMs / 60000);
883
+ const secs = Math.floor((durationMs % 60000) / 1000);
884
+ return {
885
+ costUsd: data.cost.total_cost_usd || 0,
886
+ duration: mins > 0 ? mins + 'm' + secs + 's' : secs + 's',
887
+ linesAdded: data.cost.total_lines_added || 0,
888
+ linesRemoved: data.cost.total_lines_removed || 0,
889
+ };
890
+ }
891
+ return null;
892
+ }
893
+
894
+ // ─── Main ───────────────────────────────────────────────────────
895
+ if (process.argv.includes('--json')) {
896
+ console.log(JSON.stringify(generateJSON(), null, 2));
897
+ } else if (process.argv.includes('--compact')) {
898
+ console.log(JSON.stringify(generateJSON()));
899
+ } else {
900
+ console.log(generateStatusline());
901
+ }
902
+ `;
903
+ }
904
+ /**
905
+ * Generate statusline hook for shell integration
906
+ */
907
+ export function generateStatuslineHook(options) {
908
+ if (!options.statusline.enabled) {
909
+ return '#!/bin/bash\n# Statusline disabled\n';
910
+ }
911
+ return `#!/bin/bash
912
+ # RuFlo V3 Statusline Hook
913
+ # Source this in your .bashrc/.zshrc for terminal statusline
914
+
915
+ # Function to get statusline
916
+ claude_flow_statusline() {
917
+ local statusline_script="\${CLAUDE_FLOW_DIR:-.claude}/helpers/statusline.cjs"
918
+ if [ -f "$statusline_script" ]; then
919
+ node "$statusline_script" 2>/dev/null || echo ""
920
+ fi
921
+ }
922
+
923
+ # Bash: Add to PS1
924
+ # export PS1='$(claude_flow_statusline) \\n\\$ '
925
+
926
+ # Zsh: Add to RPROMPT
927
+ # export RPROMPT='$(claude_flow_statusline)'
928
+
929
+ # Claude Code: Add to .claude/settings.json
930
+ # "statusLine": {
931
+ # "type": "command",
932
+ # "command": "node .claude/helpers/statusline.cjs 2>/dev/null"
933
+ # "when": "test -f .claude/helpers/statusline.cjs"
934
+ # }
935
+ `;
936
+ }
937
+ //# sourceMappingURL=statusline-generator.js.map