odd-flow 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (730) hide show
  1. package/.claude/agents/MIGRATION_SUMMARY.md +222 -0
  2. package/.claude/agents/analysis/analyze-code-quality.md +58 -0
  3. package/.claude/agents/analysis/code-analyzer.md +189 -0
  4. package/.claude/agents/analysis/code-review/analyze-code-quality.md +58 -0
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +36 -0
  6. package/.claude/agents/base-template-generator.md +41 -0
  7. package/.claude/agents/consensus/byzantine-coordinator.md +43 -0
  8. package/.claude/agents/consensus/crdt-synchronizer.md +977 -0
  9. package/.claude/agents/consensus/gossip-coordinator.md +43 -0
  10. package/.claude/agents/consensus/performance-benchmarker.md +831 -0
  11. package/.claude/agents/consensus/quorum-manager.md +803 -0
  12. package/.claude/agents/consensus/raft-manager.md +43 -0
  13. package/.claude/agents/consensus/security-manager.md +602 -0
  14. package/.claude/agents/core/coder.md +244 -0
  15. package/.claude/agents/core/planner.md +152 -0
  16. package/.claude/agents/core/researcher.md +174 -0
  17. package/.claude/agents/core/reviewer.md +309 -0
  18. package/.claude/agents/core/tester.md +300 -0
  19. package/.claude/agents/custom/test-long-runner.md +43 -0
  20. package/.claude/agents/data/ml/data-ml-model.md +76 -0
  21. package/.claude/agents/database-specialist.md +9 -0
  22. package/.claude/agents/development/backend/dev-backend-api.md +29 -0
  23. package/.claude/agents/development/dev-backend-api.md +178 -0
  24. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +52 -0
  25. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +63 -0
  26. package/.claude/agents/dual-mode/codex-coordinator.md +201 -0
  27. package/.claude/agents/dual-mode/codex-worker.md +183 -0
  28. package/.claude/agents/dual-mode/dual-orchestrator.md +253 -0
  29. package/.claude/agents/flow-nexus/app-store.md +88 -0
  30. package/.claude/agents/flow-nexus/authentication.md +69 -0
  31. package/.claude/agents/flow-nexus/challenges.md +81 -0
  32. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  33. package/.claude/agents/flow-nexus/payments.md +83 -0
  34. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  35. package/.claude/agents/flow-nexus/swarm.md +76 -0
  36. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  37. package/.claude/agents/flow-nexus/workflow.md +84 -0
  38. package/.claude/agents/github/code-review-swarm.md +521 -0
  39. package/.claude/agents/github/github-modes.md +154 -0
  40. package/.claude/agents/github/issue-tracker.md +299 -0
  41. package/.claude/agents/github/multi-repo-swarm.md +525 -0
  42. package/.claude/agents/github/pr-manager.md +163 -0
  43. package/.claude/agents/github/project-board-sync.md +478 -0
  44. package/.claude/agents/github/release-manager.md +336 -0
  45. package/.claude/agents/github/release-swarm.md +551 -0
  46. package/.claude/agents/github/repo-architect.md +365 -0
  47. package/.claude/agents/github/swarm-issue.md +548 -0
  48. package/.claude/agents/github/swarm-pr.md +399 -0
  49. package/.claude/agents/github/sync-coordinator.md +423 -0
  50. package/.claude/agents/github/workflow-automation.md +605 -0
  51. package/.claude/agents/goal/agent.md +817 -0
  52. package/.claude/agents/goal/code-goal-planner.md +445 -0
  53. package/.claude/agents/goal/goal-planner.md +168 -0
  54. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -0
  55. package/.claude/agents/hive-mind/queen-coordinator.md +202 -0
  56. package/.claude/agents/hive-mind/scout-explorer.md +241 -0
  57. package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -0
  58. package/.claude/agents/hive-mind/worker-specialist.md +216 -0
  59. package/.claude/agents/neural/safla-neural.md +74 -0
  60. package/.claude/agents/optimization/benchmark-suite.md +663 -0
  61. package/.claude/agents/optimization/load-balancer.md +429 -0
  62. package/.claude/agents/optimization/performance-monitor.md +670 -0
  63. package/.claude/agents/optimization/resource-allocator.md +672 -0
  64. package/.claude/agents/optimization/topology-optimizer.md +806 -0
  65. package/.claude/agents/payments/agentic-payments.md +126 -0
  66. package/.claude/agents/project-coordinator.md +8 -0
  67. package/.claude/agents/python-specialist.md +9 -0
  68. package/.claude/agents/reasoning/agent.md +817 -0
  69. package/.claude/agents/reasoning/goal-planner.md +73 -0
  70. package/.claude/agents/security-auditor.md +9 -0
  71. package/.claude/agents/sona/sona-learning-optimizer.md +65 -0
  72. package/.claude/agents/sparc/architecture.md +453 -0
  73. package/.claude/agents/sparc/pseudocode.md +299 -0
  74. package/.claude/agents/sparc/refinement.md +504 -0
  75. package/.claude/agents/sparc/specification.md +258 -0
  76. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +88 -0
  77. package/.claude/agents/sublinear/consensus-coordinator.md +338 -0
  78. package/.claude/agents/sublinear/matrix-optimizer.md +185 -0
  79. package/.claude/agents/sublinear/pagerank-analyzer.md +299 -0
  80. package/.claude/agents/sublinear/performance-optimizer.md +368 -0
  81. package/.claude/agents/sublinear/trading-predictor.md +246 -0
  82. package/.claude/agents/swarm/adaptive-coordinator.md +364 -0
  83. package/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  84. package/.claude/agents/swarm/mesh-coordinator.md +363 -0
  85. package/.claude/agents/templates/automation-smart-agent.md +185 -0
  86. package/.claude/agents/templates/coordinator-swarm-init.md +83 -0
  87. package/.claude/agents/templates/github-pr-manager.md +155 -0
  88. package/.claude/agents/templates/implementer-sparc-coder.md +231 -0
  89. package/.claude/agents/templates/memory-coordinator.md +163 -0
  90. package/.claude/agents/templates/migration-plan.md +724 -0
  91. package/.claude/agents/templates/orchestrator-task.md +120 -0
  92. package/.claude/agents/templates/performance-analyzer.md +179 -0
  93. package/.claude/agents/templates/sparc-coordinator.md +163 -0
  94. package/.claude/agents/testing/production-validator.md +373 -0
  95. package/.claude/agents/testing/tdd-london-swarm.md +222 -0
  96. package/.claude/agents/testing/unit/tdd-london-swarm.md +222 -0
  97. package/.claude/agents/testing/validation/production-validator.md +373 -0
  98. package/.claude/agents/typescript-specialist.md +9 -0
  99. package/.claude/agents/v3/database-specialist.md +9 -0
  100. package/.claude/agents/v3/project-coordinator.md +8 -0
  101. package/.claude/agents/v3/python-specialist.md +9 -0
  102. package/.claude/agents/v3/test-architect.md +9 -0
  103. package/.claude/agents/v3/typescript-specialist.md +9 -0
  104. package/.claude/agents/v3/v3-integration-architect.md +312 -0
  105. package/.claude/agents/v3/v3-memory-specialist.md +281 -0
  106. package/.claude/agents/v3/v3-performance-engineer.md +363 -0
  107. package/.claude/agents/v3/v3-queen-coordinator.md +63 -0
  108. package/.claude/agents/v3/v3-security-architect.md +140 -0
  109. package/.claude/checkpoints/1767754460.json +8 -0
  110. package/.claude/commands/agents/README.md +10 -0
  111. package/.claude/commands/agents/agent-capabilities.md +21 -0
  112. package/.claude/commands/agents/agent-coordination.md +28 -0
  113. package/.claude/commands/agents/agent-spawning.md +28 -0
  114. package/.claude/commands/agents/agent-types.md +26 -0
  115. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  116. package/.claude/commands/analysis/README.md +9 -0
  117. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  118. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  119. package/.claude/commands/analysis/performance-report.md +25 -0
  120. package/.claude/commands/analysis/token-efficiency.md +45 -0
  121. package/.claude/commands/analysis/token-usage.md +25 -0
  122. package/.claude/commands/automation/README.md +9 -0
  123. package/.claude/commands/automation/auto-agent.md +122 -0
  124. package/.claude/commands/automation/self-healing.md +106 -0
  125. package/.claude/commands/automation/session-memory.md +90 -0
  126. package/.claude/commands/automation/smart-agents.md +73 -0
  127. package/.claude/commands/automation/smart-spawn.md +25 -0
  128. package/.claude/commands/automation/workflow-select.md +25 -0
  129. package/.claude/commands/claude-flow-help.md +103 -0
  130. package/.claude/commands/claude-flow-memory.md +107 -0
  131. package/.claude/commands/claude-flow-swarm.md +205 -0
  132. package/.claude/commands/coordination/README.md +9 -0
  133. package/.claude/commands/coordination/agent-spawn.md +25 -0
  134. package/.claude/commands/coordination/init.md +44 -0
  135. package/.claude/commands/coordination/orchestrate.md +43 -0
  136. package/.claude/commands/coordination/spawn.md +45 -0
  137. package/.claude/commands/coordination/swarm-init.md +85 -0
  138. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  139. package/.claude/commands/flow-nexus/app-store.md +124 -0
  140. package/.claude/commands/flow-nexus/challenges.md +120 -0
  141. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  142. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  143. package/.claude/commands/flow-nexus/payments.md +116 -0
  144. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  145. package/.claude/commands/flow-nexus/swarm.md +87 -0
  146. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  147. package/.claude/commands/flow-nexus/workflow.md +115 -0
  148. package/.claude/commands/github/README.md +11 -0
  149. package/.claude/commands/github/code-review-swarm.md +514 -0
  150. package/.claude/commands/github/code-review.md +25 -0
  151. package/.claude/commands/github/github-modes.md +147 -0
  152. package/.claude/commands/github/github-swarm.md +121 -0
  153. package/.claude/commands/github/issue-tracker.md +292 -0
  154. package/.claude/commands/github/issue-triage.md +25 -0
  155. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  156. package/.claude/commands/github/pr-enhance.md +26 -0
  157. package/.claude/commands/github/pr-manager.md +170 -0
  158. package/.claude/commands/github/project-board-sync.md +471 -0
  159. package/.claude/commands/github/release-manager.md +338 -0
  160. package/.claude/commands/github/release-swarm.md +544 -0
  161. package/.claude/commands/github/repo-analyze.md +25 -0
  162. package/.claude/commands/github/repo-architect.md +367 -0
  163. package/.claude/commands/github/swarm-issue.md +482 -0
  164. package/.claude/commands/github/swarm-pr.md +285 -0
  165. package/.claude/commands/github/sync-coordinator.md +301 -0
  166. package/.claude/commands/github/workflow-automation.md +442 -0
  167. package/.claude/commands/hive-mind/README.md +17 -0
  168. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  169. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  170. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  171. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  172. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  173. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  174. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  175. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  176. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  177. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  178. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  179. package/.claude/commands/hooks/README.md +11 -0
  180. package/.claude/commands/hooks/overview.md +58 -0
  181. package/.claude/commands/hooks/post-edit.md +117 -0
  182. package/.claude/commands/hooks/post-task.md +112 -0
  183. package/.claude/commands/hooks/pre-edit.md +113 -0
  184. package/.claude/commands/hooks/pre-task.md +111 -0
  185. package/.claude/commands/hooks/session-end.md +118 -0
  186. package/.claude/commands/hooks/setup.md +103 -0
  187. package/.claude/commands/memory/README.md +9 -0
  188. package/.claude/commands/memory/memory-persist.md +25 -0
  189. package/.claude/commands/memory/memory-search.md +25 -0
  190. package/.claude/commands/memory/memory-usage.md +25 -0
  191. package/.claude/commands/memory/neural.md +47 -0
  192. package/.claude/commands/monitoring/README.md +9 -0
  193. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  194. package/.claude/commands/monitoring/agents.md +44 -0
  195. package/.claude/commands/monitoring/real-time-view.md +25 -0
  196. package/.claude/commands/monitoring/status.md +46 -0
  197. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  198. package/.claude/commands/optimization/README.md +9 -0
  199. package/.claude/commands/optimization/auto-topology.md +62 -0
  200. package/.claude/commands/optimization/cache-manage.md +25 -0
  201. package/.claude/commands/optimization/parallel-execute.md +25 -0
  202. package/.claude/commands/optimization/parallel-execution.md +50 -0
  203. package/.claude/commands/optimization/topology-optimize.md +25 -0
  204. package/.claude/commands/pair/README.md +261 -0
  205. package/.claude/commands/pair/commands.md +546 -0
  206. package/.claude/commands/pair/config.md +510 -0
  207. package/.claude/commands/pair/examples.md +512 -0
  208. package/.claude/commands/pair/modes.md +348 -0
  209. package/.claude/commands/pair/session.md +407 -0
  210. package/.claude/commands/pair/start.md +209 -0
  211. package/.claude/commands/sparc/analyzer.md +52 -0
  212. package/.claude/commands/sparc/architect.md +53 -0
  213. package/.claude/commands/sparc/ask.md +97 -0
  214. package/.claude/commands/sparc/batch-executor.md +54 -0
  215. package/.claude/commands/sparc/code.md +89 -0
  216. package/.claude/commands/sparc/coder.md +54 -0
  217. package/.claude/commands/sparc/debug.md +83 -0
  218. package/.claude/commands/sparc/debugger.md +54 -0
  219. package/.claude/commands/sparc/designer.md +53 -0
  220. package/.claude/commands/sparc/devops.md +109 -0
  221. package/.claude/commands/sparc/docs-writer.md +80 -0
  222. package/.claude/commands/sparc/documenter.md +54 -0
  223. package/.claude/commands/sparc/innovator.md +54 -0
  224. package/.claude/commands/sparc/integration.md +83 -0
  225. package/.claude/commands/sparc/mcp.md +117 -0
  226. package/.claude/commands/sparc/memory-manager.md +54 -0
  227. package/.claude/commands/sparc/optimizer.md +54 -0
  228. package/.claude/commands/sparc/orchestrator.md +132 -0
  229. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -0
  230. package/.claude/commands/sparc/refinement-optimization-mode.md +83 -0
  231. package/.claude/commands/sparc/researcher.md +54 -0
  232. package/.claude/commands/sparc/reviewer.md +54 -0
  233. package/.claude/commands/sparc/security-review.md +80 -0
  234. package/.claude/commands/sparc/sparc-modes.md +174 -0
  235. package/.claude/commands/sparc/sparc.md +111 -0
  236. package/.claude/commands/sparc/spec-pseudocode.md +80 -0
  237. package/.claude/commands/sparc/supabase-admin.md +348 -0
  238. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  239. package/.claude/commands/sparc/tdd.md +54 -0
  240. package/.claude/commands/sparc/tester.md +54 -0
  241. package/.claude/commands/sparc/tutorial.md +79 -0
  242. package/.claude/commands/sparc/workflow-manager.md +54 -0
  243. package/.claude/commands/sparc.md +166 -0
  244. package/.claude/commands/stream-chain/pipeline.md +121 -0
  245. package/.claude/commands/stream-chain/run.md +70 -0
  246. package/.claude/commands/swarm/README.md +15 -0
  247. package/.claude/commands/swarm/analysis.md +95 -0
  248. package/.claude/commands/swarm/development.md +96 -0
  249. package/.claude/commands/swarm/examples.md +168 -0
  250. package/.claude/commands/swarm/maintenance.md +102 -0
  251. package/.claude/commands/swarm/optimization.md +117 -0
  252. package/.claude/commands/swarm/research.md +136 -0
  253. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  254. package/.claude/commands/swarm/swarm-background.md +8 -0
  255. package/.claude/commands/swarm/swarm-init.md +19 -0
  256. package/.claude/commands/swarm/swarm-modes.md +8 -0
  257. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  258. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  259. package/.claude/commands/swarm/swarm-status.md +8 -0
  260. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  261. package/.claude/commands/swarm/swarm.md +27 -0
  262. package/.claude/commands/swarm/testing.md +131 -0
  263. package/.claude/commands/training/README.md +9 -0
  264. package/.claude/commands/training/model-update.md +25 -0
  265. package/.claude/commands/training/neural-patterns.md +74 -0
  266. package/.claude/commands/training/neural-train.md +25 -0
  267. package/.claude/commands/training/pattern-learn.md +25 -0
  268. package/.claude/commands/training/specialization.md +63 -0
  269. package/.claude/commands/truth/start.md +143 -0
  270. package/.claude/commands/verify/check.md +50 -0
  271. package/.claude/commands/verify/start.md +128 -0
  272. package/.claude/commands/workflows/README.md +9 -0
  273. package/.claude/commands/workflows/development.md +78 -0
  274. package/.claude/commands/workflows/research.md +63 -0
  275. package/.claude/commands/workflows/workflow-create.md +25 -0
  276. package/.claude/commands/workflows/workflow-execute.md +25 -0
  277. package/.claude/commands/workflows/workflow-export.md +25 -0
  278. package/.claude/config/v3-dependency-optimization.json +266 -0
  279. package/.claude/config/v3-performance-targets.json +251 -0
  280. package/.claude/helpers/README.md +97 -0
  281. package/.claude/helpers/adr-compliance.sh +186 -0
  282. package/.claude/helpers/aggressive-microcompact.mjs +36 -0
  283. package/.claude/helpers/auto-commit.sh +178 -0
  284. package/.claude/helpers/auto-memory-hook.mjs +369 -0
  285. package/.claude/helpers/checkpoint-manager.sh +251 -0
  286. package/.claude/helpers/context-persistence-hook.mjs +1979 -0
  287. package/.claude/helpers/daemon-manager.sh +252 -0
  288. package/.claude/helpers/ddd-tracker.sh +144 -0
  289. package/.claude/helpers/github-safe.js +106 -0
  290. package/.claude/helpers/github-setup.sh +28 -0
  291. package/.claude/helpers/guidance-hook.sh +13 -0
  292. package/.claude/helpers/guidance-hooks.sh +102 -0
  293. package/.claude/helpers/health-monitor.sh +108 -0
  294. package/.claude/helpers/hook-handler.cjs +234 -0
  295. package/.claude/helpers/intelligence.cjs +207 -0
  296. package/.claude/helpers/learning-hooks.sh +329 -0
  297. package/.claude/helpers/learning-optimizer.sh +127 -0
  298. package/.claude/helpers/learning-service.mjs +1144 -0
  299. package/.claude/helpers/memory.cjs +84 -0
  300. package/.claude/helpers/metrics-db.mjs +488 -0
  301. package/.claude/helpers/pattern-consolidator.sh +86 -0
  302. package/.claude/helpers/perf-worker.sh +160 -0
  303. package/.claude/helpers/quick-start.sh +19 -0
  304. package/.claude/helpers/router.cjs +62 -0
  305. package/.claude/helpers/security-scanner.sh +127 -0
  306. package/.claude/helpers/session.cjs +125 -0
  307. package/.claude/helpers/setup-mcp.sh +18 -0
  308. package/.claude/helpers/standard-checkpoint-hooks.sh +189 -0
  309. package/.claude/helpers/statusline.cjs +770 -0
  310. package/.claude/helpers/swarm-comms.sh +353 -0
  311. package/.claude/helpers/swarm-hooks.sh +761 -0
  312. package/.claude/helpers/swarm-monitor.sh +211 -0
  313. package/.claude/helpers/sync-v3-metrics.sh +245 -0
  314. package/.claude/helpers/update-v3-progress.sh +166 -0
  315. package/.claude/helpers/v3-quick-status.sh +58 -0
  316. package/.claude/helpers/v3.sh +111 -0
  317. package/.claude/helpers/validate-v3-config.sh +216 -0
  318. package/.claude/helpers/worker-manager.sh +170 -0
  319. package/.claude/mcp.json +13 -0
  320. package/.claude/settings copy.json +526 -0
  321. package/.claude/settings.json +305 -0
  322. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  323. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  324. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  325. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  326. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  327. package/.claude/skills/agentic-jujutsu/SKILL.md +645 -0
  328. package/.claude/skills/dual-mode/README.md +71 -0
  329. package/.claude/skills/dual-mode/dual-collect.md +103 -0
  330. package/.claude/skills/dual-mode/dual-coordinate.md +85 -0
  331. package/.claude/skills/dual-mode/dual-spawn.md +81 -0
  332. package/.claude/skills/flow-nexus-neural/SKILL.md +727 -0
  333. package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -0
  334. package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -0
  335. package/.claude/skills/github-code-review/SKILL.md +1125 -0
  336. package/.claude/skills/github-multi-repo/SKILL.md +862 -0
  337. package/.claude/skills/github-project-management/SKILL.md +1250 -0
  338. package/.claude/skills/github-release-management/SKILL.md +1064 -0
  339. package/.claude/skills/github-workflow-automation/SKILL.md +1047 -0
  340. package/.claude/skills/hive-mind-advanced/SKILL.md +709 -0
  341. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  342. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  343. package/.claude/skills/performance-analysis/SKILL.md +560 -0
  344. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  345. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  346. package/.claude/skills/skill-builder/SKILL.md +910 -0
  347. package/.claude/skills/sparc-methodology/SKILL.md +1106 -0
  348. package/.claude/skills/stream-chain/SKILL.md +560 -0
  349. package/.claude/skills/swarm-advanced/SKILL.md +970 -0
  350. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  351. package/.claude/skills/v3-cli-modernization/SKILL.md +872 -0
  352. package/.claude/skills/v3-core-implementation/SKILL.md +797 -0
  353. package/.claude/skills/v3-ddd-architecture/SKILL.md +442 -0
  354. package/.claude/skills/v3-integration-deep/SKILL.md +241 -0
  355. package/.claude/skills/v3-mcp-optimization/SKILL.md +777 -0
  356. package/.claude/skills/v3-memory-unification/SKILL.md +174 -0
  357. package/.claude/skills/v3-performance-optimization/SKILL.md +390 -0
  358. package/.claude/skills/v3-security-overhaul/SKILL.md +82 -0
  359. package/.claude/skills/v3-swarm-coordination/SKILL.md +340 -0
  360. package/.claude/skills/verification-quality/SKILL.md +647 -0
  361. package/.claude/skills/worker-benchmarks/SKILL.md +129 -0
  362. package/.claude/skills/worker-integration/SKILL.md +147 -0
  363. package/.claude/statusline-command.sh +176 -0
  364. package/.claude/statusline.mjs +109 -0
  365. package/.claude/statusline.sh +431 -0
  366. package/.claude-plugin/README.md +720 -0
  367. package/.claude-plugin/docs/INSTALLATION.md +261 -0
  368. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -0
  369. package/.claude-plugin/docs/QUICKSTART.md +361 -0
  370. package/.claude-plugin/docs/STRUCTURE.md +128 -0
  371. package/.claude-plugin/hooks/hooks.json +74 -0
  372. package/.claude-plugin/marketplace.json +96 -0
  373. package/.claude-plugin/plugin.json +71 -0
  374. package/.claude-plugin/scripts/install.sh +234 -0
  375. package/.claude-plugin/scripts/uninstall.sh +36 -0
  376. package/.claude-plugin/scripts/verify.sh +108 -0
  377. package/LICENSE +21 -0
  378. package/README.md +7541 -0
  379. package/bin/cli.js +11 -0
  380. package/bin/npx-repair.js +7 -0
  381. package/bin/npx-safe-launch.js +9 -0
  382. package/package.json +84 -0
  383. package/v3/@claude-flow/cli/README.md +192 -0
  384. package/v3/@claude-flow/cli/bin/cli.js +156 -0
  385. package/v3/@claude-flow/cli/bin/mcp-server.js +189 -0
  386. package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -0
  387. package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.d.ts +91 -0
  388. package/v3/@claude-flow/cli/dist/src/appliance/gguf-engine.js +425 -0
  389. package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  390. package/v3/@claude-flow/cli/dist/src/appliance/ruvllm-bridge.js +292 -0
  391. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.d.ts +44 -0
  392. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-builder.js +329 -0
  393. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  394. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-distribution.js +370 -0
  395. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.d.ts +111 -0
  396. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-format.js +393 -0
  397. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.d.ts +69 -0
  398. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-runner.js +237 -0
  399. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.d.ts +123 -0
  400. package/v3/@claude-flow/cli/dist/src/appliance/rvfa-signing.js +347 -0
  401. package/v3/@claude-flow/cli/dist/src/autopilot-state.d.ts +77 -0
  402. package/v3/@claude-flow/cli/dist/src/autopilot-state.js +279 -0
  403. package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  404. package/v3/@claude-flow/cli/dist/src/benchmarks/pretrain/index.js +404 -0
  405. package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.d.ts +14 -0
  406. package/v3/@claude-flow/cli/dist/src/commands/agent-wasm.js +333 -0
  407. package/v3/@claude-flow/cli/dist/src/commands/agent.d.ts +8 -0
  408. package/v3/@claude-flow/cli/dist/src/commands/agent.js +927 -0
  409. package/v3/@claude-flow/cli/dist/src/commands/analyze.d.ts +17 -0
  410. package/v3/@claude-flow/cli/dist/src/commands/analyze.js +1821 -0
  411. package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.d.ts +9 -0
  412. package/v3/@claude-flow/cli/dist/src/commands/appliance-advanced.js +215 -0
  413. package/v3/@claude-flow/cli/dist/src/commands/appliance.d.ts +8 -0
  414. package/v3/@claude-flow/cli/dist/src/commands/appliance.js +406 -0
  415. package/v3/@claude-flow/cli/dist/src/commands/autopilot.d.ts +15 -0
  416. package/v3/@claude-flow/cli/dist/src/commands/autopilot.js +362 -0
  417. package/v3/@claude-flow/cli/dist/src/commands/benchmark.d.ts +10 -0
  418. package/v3/@claude-flow/cli/dist/src/commands/benchmark.js +459 -0
  419. package/v3/@claude-flow/cli/dist/src/commands/claims.d.ts +8 -0
  420. package/v3/@claude-flow/cli/dist/src/commands/claims.js +621 -0
  421. package/v3/@claude-flow/cli/dist/src/commands/cleanup.d.ts +11 -0
  422. package/v3/@claude-flow/cli/dist/src/commands/cleanup.js +216 -0
  423. package/v3/@claude-flow/cli/dist/src/commands/completions.d.ts +8 -0
  424. package/v3/@claude-flow/cli/dist/src/commands/completions.js +537 -0
  425. package/v3/@claude-flow/cli/dist/src/commands/config.d.ts +8 -0
  426. package/v3/@claude-flow/cli/dist/src/commands/config.js +356 -0
  427. package/v3/@claude-flow/cli/dist/src/commands/daemon.d.ts +8 -0
  428. package/v3/@claude-flow/cli/dist/src/commands/daemon.js +669 -0
  429. package/v3/@claude-flow/cli/dist/src/commands/deployment.d.ts +8 -0
  430. package/v3/@claude-flow/cli/dist/src/commands/deployment.js +669 -0
  431. package/v3/@claude-flow/cli/dist/src/commands/doctor.d.ts +8 -0
  432. package/v3/@claude-flow/cli/dist/src/commands/doctor.js +617 -0
  433. package/v3/@claude-flow/cli/dist/src/commands/embeddings.d.ts +16 -0
  434. package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +1573 -0
  435. package/v3/@claude-flow/cli/dist/src/commands/guidance.d.ts +8 -0
  436. package/v3/@claude-flow/cli/dist/src/commands/guidance.js +560 -0
  437. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.d.ts +11 -0
  438. package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +1237 -0
  439. package/v3/@claude-flow/cli/dist/src/commands/hooks.d.ts +8 -0
  440. package/v3/@claude-flow/cli/dist/src/commands/hooks.js +4441 -0
  441. package/v3/@claude-flow/cli/dist/src/commands/index.d.ts +117 -0
  442. package/v3/@claude-flow/cli/dist/src/commands/index.js +384 -0
  443. package/v3/@claude-flow/cli/dist/src/commands/init.d.ts +8 -0
  444. package/v3/@claude-flow/cli/dist/src/commands/init.js +969 -0
  445. package/v3/@claude-flow/cli/dist/src/commands/issues.d.ts +21 -0
  446. package/v3/@claude-flow/cli/dist/src/commands/issues.js +567 -0
  447. package/v3/@claude-flow/cli/dist/src/commands/mcp.d.ts +11 -0
  448. package/v3/@claude-flow/cli/dist/src/commands/mcp.js +718 -0
  449. package/v3/@claude-flow/cli/dist/src/commands/memory.d.ts +8 -0
  450. package/v3/@claude-flow/cli/dist/src/commands/memory.js +1299 -0
  451. package/v3/@claude-flow/cli/dist/src/commands/migrate.d.ts +8 -0
  452. package/v3/@claude-flow/cli/dist/src/commands/migrate.js +742 -0
  453. package/v3/@claude-flow/cli/dist/src/commands/neural.d.ts +8 -0
  454. package/v3/@claude-flow/cli/dist/src/commands/neural.js +1451 -0
  455. package/v3/@claude-flow/cli/dist/src/commands/performance.d.ts +8 -0
  456. package/v3/@claude-flow/cli/dist/src/commands/performance.js +576 -0
  457. package/v3/@claude-flow/cli/dist/src/commands/plugins.d.ts +9 -0
  458. package/v3/@claude-flow/cli/dist/src/commands/plugins.js +817 -0
  459. package/v3/@claude-flow/cli/dist/src/commands/process.d.ts +10 -0
  460. package/v3/@claude-flow/cli/dist/src/commands/process.js +641 -0
  461. package/v3/@claude-flow/cli/dist/src/commands/progress.d.ts +11 -0
  462. package/v3/@claude-flow/cli/dist/src/commands/progress.js +259 -0
  463. package/v3/@claude-flow/cli/dist/src/commands/providers.d.ts +8 -0
  464. package/v3/@claude-flow/cli/dist/src/commands/providers.js +355 -0
  465. package/v3/@claude-flow/cli/dist/src/commands/route.d.ts +14 -0
  466. package/v3/@claude-flow/cli/dist/src/commands/route.js +811 -0
  467. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.d.ts +11 -0
  468. package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +746 -0
  469. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.d.ts +11 -0
  470. package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +480 -0
  471. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.d.ts +16 -0
  472. package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +347 -0
  473. package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.d.ts +27 -0
  474. package/v3/@claude-flow/cli/dist/src/commands/ruvector/index.js +127 -0
  475. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.d.ts +11 -0
  476. package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +431 -0
  477. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.d.ts +11 -0
  478. package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +481 -0
  479. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.d.ts +11 -0
  480. package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +503 -0
  481. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.d.ts +16 -0
  482. package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +763 -0
  483. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.d.ts +11 -0
  484. package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +456 -0
  485. package/v3/@claude-flow/cli/dist/src/commands/security.d.ts +8 -0
  486. package/v3/@claude-flow/cli/dist/src/commands/security.js +614 -0
  487. package/v3/@claude-flow/cli/dist/src/commands/session.d.ts +8 -0
  488. package/v3/@claude-flow/cli/dist/src/commands/session.js +750 -0
  489. package/v3/@claude-flow/cli/dist/src/commands/start.d.ts +8 -0
  490. package/v3/@claude-flow/cli/dist/src/commands/start.js +418 -0
  491. package/v3/@claude-flow/cli/dist/src/commands/status.d.ts +8 -0
  492. package/v3/@claude-flow/cli/dist/src/commands/status.js +591 -0
  493. package/v3/@claude-flow/cli/dist/src/commands/swarm.d.ts +8 -0
  494. package/v3/@claude-flow/cli/dist/src/commands/swarm.js +802 -0
  495. package/v3/@claude-flow/cli/dist/src/commands/task.d.ts +8 -0
  496. package/v3/@claude-flow/cli/dist/src/commands/task.js +671 -0
  497. package/v3/@claude-flow/cli/dist/src/commands/transfer-store.d.ts +13 -0
  498. package/v3/@claude-flow/cli/dist/src/commands/transfer-store.js +428 -0
  499. package/v3/@claude-flow/cli/dist/src/commands/update.d.ts +8 -0
  500. package/v3/@claude-flow/cli/dist/src/commands/update.js +276 -0
  501. package/v3/@claude-flow/cli/dist/src/commands/workflow.d.ts +8 -0
  502. package/v3/@claude-flow/cli/dist/src/commands/workflow.js +617 -0
  503. package/v3/@claude-flow/cli/dist/src/config-adapter.d.ts +15 -0
  504. package/v3/@claude-flow/cli/dist/src/config-adapter.js +186 -0
  505. package/v3/@claude-flow/cli/dist/src/index.d.ts +74 -0
  506. package/v3/@claude-flow/cli/dist/src/index.js +469 -0
  507. package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  508. package/v3/@claude-flow/cli/dist/src/infrastructure/in-memory-repositories.js +264 -0
  509. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +25 -0
  510. package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +486 -0
  511. package/v3/@claude-flow/cli/dist/src/init/executor.d.ts +41 -0
  512. package/v3/@claude-flow/cli/dist/src/init/executor.js +1776 -0
  513. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.d.ts +60 -0
  514. package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +1181 -0
  515. package/v3/@claude-flow/cli/dist/src/init/index.d.ts +13 -0
  516. package/v3/@claude-flow/cli/dist/src/init/index.js +15 -0
  517. package/v3/@claude-flow/cli/dist/src/init/mcp-generator.d.ts +26 -0
  518. package/v3/@claude-flow/cli/dist/src/init/mcp-generator.js +101 -0
  519. package/v3/@claude-flow/cli/dist/src/init/settings-generator.d.ts +14 -0
  520. package/v3/@claude-flow/cli/dist/src/init/settings-generator.js +392 -0
  521. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.d.ts +28 -0
  522. package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +833 -0
  523. package/v3/@claude-flow/cli/dist/src/init/types.d.ts +295 -0
  524. package/v3/@claude-flow/cli/dist/src/init/types.js +263 -0
  525. package/v3/@claude-flow/cli/dist/src/mcp-client.d.ts +92 -0
  526. package/v3/@claude-flow/cli/dist/src/mcp-client.js +227 -0
  527. package/v3/@claude-flow/cli/dist/src/mcp-server.d.ts +163 -0
  528. package/v3/@claude-flow/cli/dist/src/mcp-server.js +654 -0
  529. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.d.ts +9 -0
  530. package/v3/@claude-flow/cli/dist/src/mcp-tools/agent-tools.js +550 -0
  531. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.d.ts +30 -0
  532. package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +557 -0
  533. package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.d.ts +38 -0
  534. package/v3/@claude-flow/cli/dist/src/mcp-tools/analyze-tools.js +317 -0
  535. package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.d.ts +12 -0
  536. package/v3/@claude-flow/cli/dist/src/mcp-tools/claims-tools.js +732 -0
  537. package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.d.ts +8 -0
  538. package/v3/@claude-flow/cli/dist/src/mcp-tools/config-tools.js +357 -0
  539. package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.d.ts +13 -0
  540. package/v3/@claude-flow/cli/dist/src/mcp-tools/coordination-tools.js +665 -0
  541. package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.d.ts +9 -0
  542. package/v3/@claude-flow/cli/dist/src/mcp-tools/embeddings-tools.js +782 -0
  543. package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +8 -0
  544. package/v3/@claude-flow/cli/dist/src/mcp-tools/hive-mind-tools.js +811 -0
  545. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.d.ts +44 -0
  546. package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +3120 -0
  547. package/v3/@claude-flow/cli/dist/src/mcp-tools/index.d.ts +22 -0
  548. package/v3/@claude-flow/cli/dist/src/mcp-tools/index.js +21 -0
  549. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.d.ts +14 -0
  550. package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +512 -0
  551. package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.d.ts +16 -0
  552. package/v3/@claude-flow/cli/dist/src/mcp-tools/neural-tools.js +461 -0
  553. package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.d.ts +16 -0
  554. package/v3/@claude-flow/cli/dist/src/mcp-tools/performance-tools.js +534 -0
  555. package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.d.ts +14 -0
  556. package/v3/@claude-flow/cli/dist/src/mcp-tools/progress-tools.js +348 -0
  557. package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.d.ts +16 -0
  558. package/v3/@claude-flow/cli/dist/src/mcp-tools/security-tools.js +404 -0
  559. package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.d.ts +8 -0
  560. package/v3/@claude-flow/cli/dist/src/mcp-tools/session-tools.js +315 -0
  561. package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.d.ts +9 -0
  562. package/v3/@claude-flow/cli/dist/src/mcp-tools/swarm-tools.js +288 -0
  563. package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.d.ts +13 -0
  564. package/v3/@claude-flow/cli/dist/src/mcp-tools/system-tools.js +408 -0
  565. package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.d.ts +8 -0
  566. package/v3/@claude-flow/cli/dist/src/mcp-tools/task-tools.js +405 -0
  567. package/v3/@claude-flow/cli/dist/src/mcp-tools/types.d.ts +31 -0
  568. package/v3/@claude-flow/cli/dist/src/mcp-tools/types.js +7 -0
  569. package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.d.ts +8 -0
  570. package/v3/@claude-flow/cli/dist/src/mcp-tools/workflow-tools.js +572 -0
  571. package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.d.ts +295 -0
  572. package/v3/@claude-flow/cli/dist/src/memory/ewc-consolidation.js +601 -0
  573. package/v3/@claude-flow/cli/dist/src/memory/intelligence.d.ts +338 -0
  574. package/v3/@claude-flow/cli/dist/src/memory/intelligence.js +1023 -0
  575. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.d.ts +407 -0
  576. package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +1499 -0
  577. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.d.ts +412 -0
  578. package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +2222 -0
  579. package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.d.ts +227 -0
  580. package/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.js +633 -0
  581. package/v3/@claude-flow/cli/dist/src/output.d.ts +133 -0
  582. package/v3/@claude-flow/cli/dist/src/output.js +514 -0
  583. package/v3/@claude-flow/cli/dist/src/parser.d.ts +51 -0
  584. package/v3/@claude-flow/cli/dist/src/parser.js +425 -0
  585. package/v3/@claude-flow/cli/dist/src/plugins/manager.d.ts +133 -0
  586. package/v3/@claude-flow/cli/dist/src/plugins/manager.js +400 -0
  587. package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.d.ts +88 -0
  588. package/v3/@claude-flow/cli/dist/src/plugins/store/discovery.js +1147 -0
  589. package/v3/@claude-flow/cli/dist/src/plugins/store/index.d.ts +76 -0
  590. package/v3/@claude-flow/cli/dist/src/plugins/store/index.js +141 -0
  591. package/v3/@claude-flow/cli/dist/src/plugins/store/search.d.ts +46 -0
  592. package/v3/@claude-flow/cli/dist/src/plugins/store/search.js +230 -0
  593. package/v3/@claude-flow/cli/dist/src/plugins/store/types.d.ts +274 -0
  594. package/v3/@claude-flow/cli/dist/src/plugins/store/types.js +7 -0
  595. package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
  596. package/v3/@claude-flow/cli/dist/src/plugins/tests/demo-plugin-store.js +126 -0
  597. package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.d.ts +12 -0
  598. package/v3/@claude-flow/cli/dist/src/plugins/tests/standalone-test.js +188 -0
  599. package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
  600. package/v3/@claude-flow/cli/dist/src/plugins/tests/test-plugin-store.js +206 -0
  601. package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.d.ts +101 -0
  602. package/v3/@claude-flow/cli/dist/src/production/circuit-breaker.js +241 -0
  603. package/v3/@claude-flow/cli/dist/src/production/error-handler.d.ts +92 -0
  604. package/v3/@claude-flow/cli/dist/src/production/error-handler.js +299 -0
  605. package/v3/@claude-flow/cli/dist/src/production/index.d.ts +23 -0
  606. package/v3/@claude-flow/cli/dist/src/production/index.js +18 -0
  607. package/v3/@claude-flow/cli/dist/src/production/monitoring.d.ts +161 -0
  608. package/v3/@claude-flow/cli/dist/src/production/monitoring.js +356 -0
  609. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.d.ts +80 -0
  610. package/v3/@claude-flow/cli/dist/src/production/rate-limiter.js +201 -0
  611. package/v3/@claude-flow/cli/dist/src/production/retry.d.ts +48 -0
  612. package/v3/@claude-flow/cli/dist/src/production/retry.js +179 -0
  613. package/v3/@claude-flow/cli/dist/src/prompt.d.ts +44 -0
  614. package/v3/@claude-flow/cli/dist/src/prompt.js +501 -0
  615. package/v3/@claude-flow/cli/dist/src/runtime/headless.d.ts +60 -0
  616. package/v3/@claude-flow/cli/dist/src/runtime/headless.js +284 -0
  617. package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.d.ts +182 -0
  618. package/v3/@claude-flow/cli/dist/src/ruvector/agent-wasm.js +316 -0
  619. package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  620. package/v3/@claude-flow/cli/dist/src/ruvector/ast-analyzer.js +277 -0
  621. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.d.ts +160 -0
  622. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-router.js +529 -0
  623. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.d.ts +33 -0
  624. package/v3/@claude-flow/cli/dist/src/ruvector/coverage-tools.js +157 -0
  625. package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.d.ts +175 -0
  626. package/v3/@claude-flow/cli/dist/src/ruvector/diff-classifier.js +698 -0
  627. package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  628. package/v3/@claude-flow/cli/dist/src/ruvector/enhanced-model-router.js +513 -0
  629. package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.d.ts +193 -0
  630. package/v3/@claude-flow/cli/dist/src/ruvector/flash-attention.js +641 -0
  631. package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  632. package/v3/@claude-flow/cli/dist/src/ruvector/graph-analyzer.js +929 -0
  633. package/v3/@claude-flow/cli/dist/src/ruvector/index.d.ts +40 -0
  634. package/v3/@claude-flow/cli/dist/src/ruvector/index.js +76 -0
  635. package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.d.ts +218 -0
  636. package/v3/@claude-flow/cli/dist/src/ruvector/lora-adapter.js +455 -0
  637. package/v3/@claude-flow/cli/dist/src/ruvector/model-router.d.ts +220 -0
  638. package/v3/@claude-flow/cli/dist/src/ruvector/model-router.js +488 -0
  639. package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.d.ts +206 -0
  640. package/v3/@claude-flow/cli/dist/src/ruvector/moe-router.js +626 -0
  641. package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.d.ts +211 -0
  642. package/v3/@claude-flow/cli/dist/src/ruvector/q-learning-router.js +681 -0
  643. package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  644. package/v3/@claude-flow/cli/dist/src/ruvector/ruvllm-wasm.js +363 -0
  645. package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.d.ts +77 -0
  646. package/v3/@claude-flow/cli/dist/src/ruvector/semantic-router.js +178 -0
  647. package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.d.ts +67 -0
  648. package/v3/@claude-flow/cli/dist/src/ruvector/vector-db.js +241 -0
  649. package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  650. package/v3/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +95 -0
  651. package/v3/@claude-flow/cli/dist/src/services/claim-service.d.ts +204 -0
  652. package/v3/@claude-flow/cli/dist/src/services/claim-service.js +818 -0
  653. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.d.ts +37 -0
  654. package/v3/@claude-flow/cli/dist/src/services/config-file-manager.js +224 -0
  655. package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +197 -0
  656. package/v3/@claude-flow/cli/dist/src/services/container-worker-pool.js +583 -0
  657. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.d.ts +304 -0
  658. package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +1024 -0
  659. package/v3/@claude-flow/cli/dist/src/services/index.d.ts +13 -0
  660. package/v3/@claude-flow/cli/dist/src/services/index.js +11 -0
  661. package/v3/@claude-flow/cli/dist/src/services/registry-api.d.ts +58 -0
  662. package/v3/@claude-flow/cli/dist/src/services/registry-api.js +146 -0
  663. package/v3/@claude-flow/cli/dist/src/services/ruvector-training.d.ts +220 -0
  664. package/v3/@claude-flow/cli/dist/src/services/ruvector-training.js +686 -0
  665. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.d.ts +245 -0
  666. package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +960 -0
  667. package/v3/@claude-flow/cli/dist/src/services/worker-queue.d.ts +194 -0
  668. package/v3/@claude-flow/cli/dist/src/services/worker-queue.js +513 -0
  669. package/v3/@claude-flow/cli/dist/src/suggest.d.ts +51 -0
  670. package/v3/@claude-flow/cli/dist/src/suggest.js +198 -0
  671. package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.d.ts +25 -0
  672. package/v3/@claude-flow/cli/dist/src/transfer/anonymization/index.js +175 -0
  673. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.d.ts +13 -0
  674. package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +205 -0
  675. package/v3/@claude-flow/cli/dist/src/transfer/export.d.ts +25 -0
  676. package/v3/@claude-flow/cli/dist/src/transfer/export.js +113 -0
  677. package/v3/@claude-flow/cli/dist/src/transfer/index.d.ts +12 -0
  678. package/v3/@claude-flow/cli/dist/src/transfer/index.js +31 -0
  679. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.d.ts +109 -0
  680. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/client.js +307 -0
  681. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.d.ts +95 -0
  682. package/v3/@claude-flow/cli/dist/src/transfer/ipfs/upload.js +411 -0
  683. package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.d.ts +72 -0
  684. package/v3/@claude-flow/cli/dist/src/transfer/models/seraphine.js +373 -0
  685. package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.d.ts +49 -0
  686. package/v3/@claude-flow/cli/dist/src/transfer/serialization/cfp.js +183 -0
  687. package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.d.ts +82 -0
  688. package/v3/@claude-flow/cli/dist/src/transfer/storage/gcs.js +272 -0
  689. package/v3/@claude-flow/cli/dist/src/transfer/storage/index.d.ts +6 -0
  690. package/v3/@claude-flow/cli/dist/src/transfer/storage/index.js +6 -0
  691. package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.d.ts +84 -0
  692. package/v3/@claude-flow/cli/dist/src/transfer/store/discovery.js +382 -0
  693. package/v3/@claude-flow/cli/dist/src/transfer/store/download.d.ts +70 -0
  694. package/v3/@claude-flow/cli/dist/src/transfer/store/download.js +334 -0
  695. package/v3/@claude-flow/cli/dist/src/transfer/store/index.d.ts +84 -0
  696. package/v3/@claude-flow/cli/dist/src/transfer/store/index.js +153 -0
  697. package/v3/@claude-flow/cli/dist/src/transfer/store/publish.d.ts +76 -0
  698. package/v3/@claude-flow/cli/dist/src/transfer/store/publish.js +294 -0
  699. package/v3/@claude-flow/cli/dist/src/transfer/store/registry.d.ts +58 -0
  700. package/v3/@claude-flow/cli/dist/src/transfer/store/registry.js +285 -0
  701. package/v3/@claude-flow/cli/dist/src/transfer/store/search.d.ts +54 -0
  702. package/v3/@claude-flow/cli/dist/src/transfer/store/search.js +232 -0
  703. package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
  704. package/v3/@claude-flow/cli/dist/src/transfer/store/tests/standalone-test.js +190 -0
  705. package/v3/@claude-flow/cli/dist/src/transfer/store/types.d.ts +193 -0
  706. package/v3/@claude-flow/cli/dist/src/transfer/store/types.js +6 -0
  707. package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.d.ts +6 -0
  708. package/v3/@claude-flow/cli/dist/src/transfer/test-seraphine.js +105 -0
  709. package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.d.ts +7 -0
  710. package/v3/@claude-flow/cli/dist/src/transfer/tests/test-store.js +214 -0
  711. package/v3/@claude-flow/cli/dist/src/transfer/types.d.ts +245 -0
  712. package/v3/@claude-flow/cli/dist/src/transfer/types.js +6 -0
  713. package/v3/@claude-flow/cli/dist/src/types.d.ts +198 -0
  714. package/v3/@claude-flow/cli/dist/src/types.js +38 -0
  715. package/v3/@claude-flow/cli/dist/src/update/checker.d.ts +34 -0
  716. package/v3/@claude-flow/cli/dist/src/update/checker.js +190 -0
  717. package/v3/@claude-flow/cli/dist/src/update/executor.d.ts +32 -0
  718. package/v3/@claude-flow/cli/dist/src/update/executor.js +181 -0
  719. package/v3/@claude-flow/cli/dist/src/update/index.d.ts +33 -0
  720. package/v3/@claude-flow/cli/dist/src/update/index.js +64 -0
  721. package/v3/@claude-flow/cli/dist/src/update/rate-limiter.d.ts +20 -0
  722. package/v3/@claude-flow/cli/dist/src/update/rate-limiter.js +96 -0
  723. package/v3/@claude-flow/cli/dist/src/update/validator.d.ts +17 -0
  724. package/v3/@claude-flow/cli/dist/src/update/validator.js +123 -0
  725. package/v3/@claude-flow/cli/dist/src/utils/path-validation.d.ts +20 -0
  726. package/v3/@claude-flow/cli/dist/src/utils/path-validation.js +80 -0
  727. package/v3/@claude-flow/cli/package.json +75 -0
  728. package/v3/@claude-flow/shared/README.md +323 -0
  729. package/v3/@claude-flow/shared/package.json +42 -0
  730. package/v3/README.md +493 -0
@@ -0,0 +1,1024 @@
1
+ /**
2
+ * Headless Worker Executor
3
+ * Enables workers to invoke Claude Code in headless mode with configurable sandbox profiles.
4
+ *
5
+ * ADR-020: Headless Worker Integration Architecture
6
+ * - Integrates with CLAUDE_CODE_HEADLESS and CLAUDE_CODE_SANDBOX_MODE environment variables
7
+ * - Provides process pool for concurrent execution
8
+ * - Builds context from file glob patterns
9
+ * - Supports prompt templates and output parsing
10
+ * - Implements timeout and graceful error handling
11
+ *
12
+ * Key Features:
13
+ * - Process pool with configurable maxConcurrent
14
+ * - Context building from file glob patterns with caching
15
+ * - Prompt template system with context injection
16
+ * - Output parsing (text, json, markdown)
17
+ * - Timeout handling with graceful termination
18
+ * - Execution logging for debugging
19
+ * - Event emission for monitoring
20
+ */
21
+ import { spawn, execSync } from 'child_process';
22
+ import { EventEmitter } from 'events';
23
+ import { existsSync, readFileSync, readdirSync, mkdirSync, writeFileSync } from 'fs';
24
+ import { join } from 'path';
25
+ // ============================================
26
+ // Constants
27
+ // ============================================
28
+ /**
29
+ * Array of headless worker types for runtime checking
30
+ */
31
+ export const HEADLESS_WORKER_TYPES = [
32
+ 'audit',
33
+ 'optimize',
34
+ 'testgaps',
35
+ 'document',
36
+ 'ultralearn',
37
+ 'refactor',
38
+ 'deepdive',
39
+ 'predict',
40
+ ];
41
+ /**
42
+ * Array of local worker types
43
+ */
44
+ export const LOCAL_WORKER_TYPES = [
45
+ 'map',
46
+ 'consolidate',
47
+ 'benchmark',
48
+ 'preload',
49
+ ];
50
+ /**
51
+ * Model ID mapping
52
+ */
53
+ /**
54
+ * Model ID mapping — use short aliases so they auto-resolve to the latest
55
+ * snapshot. Hardcoded dated IDs (e.g. claude-sonnet-4-5-20250929) go stale
56
+ * when Anthropic retires them, causing 100% worker failure (#1431).
57
+ *
58
+ * Users can override per-worker via the `model` field in daemon-state.json
59
+ * or the ANTHROPIC_MODEL environment variable.
60
+ */
61
+ const MODEL_IDS = {
62
+ sonnet: 'sonnet',
63
+ opus: 'opus',
64
+ haiku: 'haiku',
65
+ };
66
+ /**
67
+ * Default headless worker configurations based on ADR-020
68
+ */
69
+ export const HEADLESS_WORKER_CONFIGS = {
70
+ audit: {
71
+ type: 'audit',
72
+ mode: 'headless',
73
+ intervalMs: 30 * 60 * 1000,
74
+ priority: 'critical',
75
+ description: 'AI-powered security analysis',
76
+ enabled: true,
77
+ headless: {
78
+ promptTemplate: `Analyze this codebase for security vulnerabilities:
79
+ - Check for hardcoded secrets (API keys, passwords)
80
+ - Identify SQL injection risks
81
+ - Find XSS vulnerabilities
82
+ - Check for insecure dependencies
83
+ - Identify authentication/authorization issues
84
+
85
+ Provide a JSON report with:
86
+ {
87
+ "vulnerabilities": [{ "severity": "high|medium|low", "file": "...", "line": N, "description": "..." }],
88
+ "riskScore": 0-100,
89
+ "recommendations": ["..."]
90
+ }`,
91
+ sandbox: 'strict',
92
+ model: 'haiku',
93
+ outputFormat: 'json',
94
+ contextPatterns: ['**/*.ts', '**/*.js', '**/.env*', '**/package.json'],
95
+ timeoutMs: 5 * 60 * 1000,
96
+ },
97
+ },
98
+ optimize: {
99
+ type: 'optimize',
100
+ mode: 'headless',
101
+ intervalMs: 60 * 60 * 1000,
102
+ priority: 'high',
103
+ description: 'AI optimization suggestions',
104
+ enabled: true,
105
+ headless: {
106
+ promptTemplate: `Analyze this codebase for performance optimizations:
107
+ - Identify N+1 query patterns
108
+ - Find unnecessary re-renders in React
109
+ - Suggest caching opportunities
110
+ - Identify memory leaks
111
+ - Find redundant computations
112
+
113
+ Provide actionable suggestions with code examples.`,
114
+ sandbox: 'permissive',
115
+ model: 'sonnet',
116
+ outputFormat: 'markdown',
117
+ contextPatterns: ['src/**/*.ts', 'src/**/*.tsx'],
118
+ timeoutMs: 10 * 60 * 1000,
119
+ },
120
+ },
121
+ testgaps: {
122
+ type: 'testgaps',
123
+ mode: 'headless',
124
+ intervalMs: 60 * 60 * 1000,
125
+ priority: 'normal',
126
+ description: 'AI test gap analysis',
127
+ enabled: true,
128
+ headless: {
129
+ promptTemplate: `Analyze test coverage and identify gaps:
130
+ - Find untested functions and classes
131
+ - Identify edge cases not covered
132
+ - Suggest new test scenarios
133
+ - Check for missing error handling tests
134
+ - Identify integration test gaps
135
+
136
+ For each gap, provide a test skeleton.`,
137
+ sandbox: 'permissive',
138
+ model: 'sonnet',
139
+ outputFormat: 'markdown',
140
+ contextPatterns: ['src/**/*.ts', 'tests/**/*.ts', '__tests__/**/*.ts'],
141
+ timeoutMs: 10 * 60 * 1000,
142
+ },
143
+ },
144
+ document: {
145
+ type: 'document',
146
+ mode: 'headless',
147
+ intervalMs: 120 * 60 * 1000,
148
+ priority: 'low',
149
+ description: 'AI documentation generation',
150
+ enabled: false,
151
+ headless: {
152
+ promptTemplate: `Generate documentation for undocumented code:
153
+ - Add JSDoc comments to functions
154
+ - Create README sections for modules
155
+ - Document API endpoints
156
+ - Add inline comments for complex logic
157
+ - Generate usage examples
158
+
159
+ Focus on public APIs and exported functions.`,
160
+ sandbox: 'permissive',
161
+ model: 'haiku',
162
+ outputFormat: 'markdown',
163
+ contextPatterns: ['src/**/*.ts'],
164
+ timeoutMs: 10 * 60 * 1000,
165
+ },
166
+ },
167
+ ultralearn: {
168
+ type: 'ultralearn',
169
+ mode: 'headless',
170
+ intervalMs: 0, // Manual trigger only
171
+ priority: 'normal',
172
+ description: 'Deep knowledge acquisition',
173
+ enabled: false,
174
+ headless: {
175
+ promptTemplate: `Deeply analyze this codebase to learn:
176
+ - Architectural patterns used
177
+ - Coding conventions
178
+ - Domain-specific terminology
179
+ - Common patterns and idioms
180
+ - Team preferences
181
+
182
+ Provide insights as JSON:
183
+ {
184
+ "architecture": { "patterns": [...], "style": "..." },
185
+ "conventions": { "naming": "...", "formatting": "..." },
186
+ "domains": ["..."],
187
+ "insights": ["..."]
188
+ }`,
189
+ sandbox: 'strict',
190
+ model: 'opus',
191
+ outputFormat: 'json',
192
+ contextPatterns: ['**/*.ts', '**/CLAUDE.md', '**/README.md'],
193
+ timeoutMs: 15 * 60 * 1000,
194
+ },
195
+ },
196
+ refactor: {
197
+ type: 'refactor',
198
+ mode: 'headless',
199
+ intervalMs: 0, // Manual trigger only
200
+ priority: 'normal',
201
+ description: 'AI refactoring suggestions',
202
+ enabled: false,
203
+ headless: {
204
+ promptTemplate: `Suggest refactoring opportunities:
205
+ - Identify code duplication
206
+ - Suggest better abstractions
207
+ - Find opportunities for design patterns
208
+ - Identify overly complex functions
209
+ - Suggest module reorganization
210
+
211
+ Provide before/after code examples.`,
212
+ sandbox: 'permissive',
213
+ model: 'sonnet',
214
+ outputFormat: 'markdown',
215
+ contextPatterns: ['src/**/*.ts'],
216
+ timeoutMs: 10 * 60 * 1000,
217
+ },
218
+ },
219
+ deepdive: {
220
+ type: 'deepdive',
221
+ mode: 'headless',
222
+ intervalMs: 0, // Manual trigger only
223
+ priority: 'normal',
224
+ description: 'Deep code analysis',
225
+ enabled: false,
226
+ headless: {
227
+ promptTemplate: `Perform deep analysis of this codebase:
228
+ - Understand data flow
229
+ - Map dependencies
230
+ - Identify architectural issues
231
+ - Find potential bugs
232
+ - Analyze error handling
233
+
234
+ Provide comprehensive report.`,
235
+ sandbox: 'strict',
236
+ model: 'opus',
237
+ outputFormat: 'markdown',
238
+ contextPatterns: ['src/**/*.ts'],
239
+ timeoutMs: 15 * 60 * 1000,
240
+ },
241
+ },
242
+ predict: {
243
+ type: 'predict',
244
+ mode: 'headless',
245
+ intervalMs: 10 * 60 * 1000,
246
+ priority: 'low',
247
+ description: 'Predictive preloading',
248
+ enabled: false,
249
+ headless: {
250
+ promptTemplate: `Based on recent activity, predict what the developer needs:
251
+ - Files likely to be edited next
252
+ - Tests that should be run
253
+ - Documentation to reference
254
+ - Dependencies to check
255
+
256
+ Provide preload suggestions as JSON:
257
+ {
258
+ "filesToPreload": ["..."],
259
+ "testsToRun": ["..."],
260
+ "docsToReference": ["..."],
261
+ "confidence": 0.0-1.0
262
+ }`,
263
+ sandbox: 'strict',
264
+ model: 'haiku',
265
+ outputFormat: 'json',
266
+ contextPatterns: ['.claude-flow/metrics/*.json'],
267
+ timeoutMs: 2 * 60 * 1000,
268
+ },
269
+ },
270
+ };
271
+ /**
272
+ * Local worker configurations
273
+ */
274
+ export const LOCAL_WORKER_CONFIGS = {
275
+ map: {
276
+ type: 'map',
277
+ mode: 'local',
278
+ intervalMs: 15 * 60 * 1000,
279
+ priority: 'normal',
280
+ description: 'Codebase mapping',
281
+ enabled: true,
282
+ },
283
+ consolidate: {
284
+ type: 'consolidate',
285
+ mode: 'local',
286
+ intervalMs: 30 * 60 * 1000,
287
+ priority: 'low',
288
+ description: 'Memory consolidation',
289
+ enabled: true,
290
+ },
291
+ benchmark: {
292
+ type: 'benchmark',
293
+ mode: 'local',
294
+ intervalMs: 60 * 60 * 1000,
295
+ priority: 'low',
296
+ description: 'Performance benchmarking',
297
+ enabled: false,
298
+ },
299
+ preload: {
300
+ type: 'preload',
301
+ mode: 'local',
302
+ intervalMs: 5 * 60 * 1000,
303
+ priority: 'low',
304
+ description: 'Resource preloading',
305
+ enabled: false,
306
+ },
307
+ };
308
+ /**
309
+ * Combined worker configurations
310
+ */
311
+ export const ALL_WORKER_CONFIGS = [
312
+ ...Object.values(HEADLESS_WORKER_CONFIGS),
313
+ ...Object.values(LOCAL_WORKER_CONFIGS),
314
+ ];
315
+ // ============================================
316
+ // Utility Functions
317
+ // ============================================
318
+ /**
319
+ * Check if a worker type is a headless worker
320
+ */
321
+ export function isHeadlessWorker(type) {
322
+ return HEADLESS_WORKER_TYPES.includes(type);
323
+ }
324
+ /**
325
+ * Check if a worker type is a local worker
326
+ */
327
+ export function isLocalWorker(type) {
328
+ return LOCAL_WORKER_TYPES.includes(type);
329
+ }
330
+ /**
331
+ * Get model ID from model type
332
+ */
333
+ export function getModelId(model) {
334
+ return MODEL_IDS[model];
335
+ }
336
+ /**
337
+ * Get worker configuration by type
338
+ */
339
+ export function getWorkerConfig(type) {
340
+ if (isHeadlessWorker(type)) {
341
+ return HEADLESS_WORKER_CONFIGS[type];
342
+ }
343
+ if (isLocalWorker(type)) {
344
+ return LOCAL_WORKER_CONFIGS[type];
345
+ }
346
+ return undefined;
347
+ }
348
+ // ============================================
349
+ // HeadlessWorkerExecutor Class
350
+ // ============================================
351
+ /**
352
+ * HeadlessWorkerExecutor - Executes workers using Claude Code in headless mode
353
+ *
354
+ * Features:
355
+ * - Process pool with configurable concurrency limit
356
+ * - Pending queue for overflow requests
357
+ * - Context caching with configurable TTL
358
+ * - Execution logging for debugging
359
+ * - Event emission for monitoring
360
+ * - Graceful termination
361
+ */
362
+ export class HeadlessWorkerExecutor extends EventEmitter {
363
+ projectRoot;
364
+ config;
365
+ processPool = new Map();
366
+ pendingQueue = [];
367
+ contextCache = new Map();
368
+ claudeCodeAvailable = null;
369
+ claudeCodeVersion = null;
370
+ constructor(projectRoot, options) {
371
+ super();
372
+ this.projectRoot = projectRoot;
373
+ // Merge with defaults
374
+ this.config = {
375
+ maxConcurrent: options?.maxConcurrent ?? 2,
376
+ defaultTimeoutMs: options?.defaultTimeoutMs ?? 5 * 60 * 1000,
377
+ maxContextFiles: options?.maxContextFiles ?? 20,
378
+ maxCharsPerFile: options?.maxCharsPerFile ?? 5000,
379
+ logDir: options?.logDir ?? join(projectRoot, '.claude-flow', 'logs', 'headless'),
380
+ cacheContext: options?.cacheContext ?? true,
381
+ cacheTtlMs: options?.cacheTtlMs ?? 60000, // 1 minute default
382
+ };
383
+ // Ensure log directory exists
384
+ this.ensureLogDir();
385
+ }
386
+ // ============================================
387
+ // Public API
388
+ // ============================================
389
+ /**
390
+ * Check if Claude Code CLI is available
391
+ */
392
+ async isAvailable() {
393
+ if (this.claudeCodeAvailable !== null) {
394
+ return this.claudeCodeAvailable;
395
+ }
396
+ try {
397
+ const output = execSync('claude --version', {
398
+ encoding: 'utf-8',
399
+ stdio: 'pipe',
400
+ timeout: 5000,
401
+ windowsHide: true, // Prevent phantom console windows on Windows
402
+ });
403
+ this.claudeCodeAvailable = true;
404
+ this.claudeCodeVersion = output.trim();
405
+ this.emit('status', { available: true, version: this.claudeCodeVersion });
406
+ return true;
407
+ }
408
+ catch {
409
+ this.claudeCodeAvailable = false;
410
+ this.emit('status', { available: false });
411
+ return false;
412
+ }
413
+ }
414
+ /**
415
+ * Get Claude Code version
416
+ */
417
+ async getVersion() {
418
+ await this.isAvailable();
419
+ return this.claudeCodeVersion;
420
+ }
421
+ /**
422
+ * Execute a headless worker
423
+ */
424
+ async execute(workerType, configOverrides) {
425
+ const baseConfig = HEADLESS_WORKER_CONFIGS[workerType];
426
+ if (!baseConfig) {
427
+ throw new Error(`Unknown headless worker type: ${workerType}`);
428
+ }
429
+ // Check availability
430
+ const available = await this.isAvailable();
431
+ if (!available) {
432
+ const result = this.createErrorResult(workerType, 'Claude Code CLI not available. Install with: npm install -g @anthropic-ai/claude-code');
433
+ this.emit('error', result);
434
+ return result;
435
+ }
436
+ // Check concurrent limit
437
+ if (this.processPool.size >= this.config.maxConcurrent) {
438
+ // Queue the request
439
+ return new Promise((resolve, reject) => {
440
+ const entry = {
441
+ workerType,
442
+ config: configOverrides,
443
+ resolve,
444
+ reject,
445
+ queuedAt: new Date(),
446
+ };
447
+ this.pendingQueue.push(entry);
448
+ this.emit('queued', {
449
+ workerType,
450
+ queuePosition: this.pendingQueue.length,
451
+ });
452
+ });
453
+ }
454
+ // Execute immediately
455
+ return this.executeInternal(workerType, configOverrides);
456
+ }
457
+ /**
458
+ * Get pool status
459
+ */
460
+ getPoolStatus() {
461
+ const now = Date.now();
462
+ return {
463
+ activeCount: this.processPool.size,
464
+ queueLength: this.pendingQueue.length,
465
+ maxConcurrent: this.config.maxConcurrent,
466
+ activeWorkers: Array.from(this.processPool.values()).map((entry) => ({
467
+ executionId: entry.executionId,
468
+ workerType: entry.workerType,
469
+ startTime: entry.startTime,
470
+ elapsedMs: now - entry.startTime.getTime(),
471
+ })),
472
+ queuedWorkers: this.pendingQueue.map((entry) => ({
473
+ workerType: entry.workerType,
474
+ queuedAt: entry.queuedAt,
475
+ waitingMs: now - entry.queuedAt.getTime(),
476
+ })),
477
+ };
478
+ }
479
+ /**
480
+ * Get number of active executions
481
+ */
482
+ getActiveCount() {
483
+ return this.processPool.size;
484
+ }
485
+ /**
486
+ * Cancel a running execution
487
+ */
488
+ cancel(executionId) {
489
+ const entry = this.processPool.get(executionId);
490
+ if (!entry) {
491
+ return false;
492
+ }
493
+ clearTimeout(entry.timeout);
494
+ entry.process.kill('SIGTERM');
495
+ this.processPool.delete(executionId);
496
+ this.emit('cancelled', { executionId });
497
+ // Process next in queue
498
+ this.processQueue();
499
+ return true;
500
+ }
501
+ /**
502
+ * Cancel all running executions
503
+ */
504
+ cancelAll() {
505
+ let cancelled = 0;
506
+ // Cancel active processes (convert to array to avoid iterator issues)
507
+ const entries = Array.from(this.processPool.entries());
508
+ for (const [executionId, entry] of entries) {
509
+ clearTimeout(entry.timeout);
510
+ entry.process.kill('SIGTERM');
511
+ // SIGKILL fallback after 5s to prevent orphan processes (#1395 Bug 6)
512
+ setTimeout(() => {
513
+ try {
514
+ if (!entry.process.killed)
515
+ entry.process.kill('SIGKILL');
516
+ }
517
+ catch { /* already dead */ }
518
+ }, 5000).unref();
519
+ this.emit('cancelled', { executionId });
520
+ cancelled++;
521
+ }
522
+ this.processPool.clear();
523
+ // Reject pending queue
524
+ for (const entry of this.pendingQueue) {
525
+ entry.reject(new Error('Executor cancelled all executions'));
526
+ }
527
+ this.pendingQueue = [];
528
+ this.emit('allCancelled', { count: cancelled });
529
+ return cancelled;
530
+ }
531
+ /**
532
+ * Clear context cache
533
+ */
534
+ clearContextCache() {
535
+ this.contextCache.clear();
536
+ this.emit('cacheClear', {});
537
+ }
538
+ /**
539
+ * Get worker configuration
540
+ */
541
+ getConfig(workerType) {
542
+ return HEADLESS_WORKER_CONFIGS[workerType];
543
+ }
544
+ /**
545
+ * Get all headless worker types
546
+ */
547
+ getHeadlessWorkerTypes() {
548
+ return [...HEADLESS_WORKER_TYPES];
549
+ }
550
+ /**
551
+ * Get all local worker types
552
+ */
553
+ getLocalWorkerTypes() {
554
+ return [...LOCAL_WORKER_TYPES];
555
+ }
556
+ // ============================================
557
+ // Private Methods
558
+ // ============================================
559
+ /**
560
+ * Ensure log directory exists
561
+ */
562
+ ensureLogDir() {
563
+ try {
564
+ if (!existsSync(this.config.logDir)) {
565
+ mkdirSync(this.config.logDir, { recursive: true });
566
+ }
567
+ }
568
+ catch (error) {
569
+ this.emit('warning', { message: 'Failed to create log directory', error });
570
+ }
571
+ }
572
+ /**
573
+ * Internal execution logic
574
+ */
575
+ async executeInternal(workerType, configOverrides) {
576
+ const baseConfig = HEADLESS_WORKER_CONFIGS[workerType];
577
+ const headless = { ...baseConfig.headless, ...configOverrides };
578
+ const startTime = Date.now();
579
+ const executionId = `${workerType}_${startTime}_${Math.random().toString(36).slice(2, 8)}`;
580
+ this.emit('start', { executionId, workerType, config: headless });
581
+ try {
582
+ // Build context from file patterns
583
+ const context = await this.buildContext(headless.contextPatterns || []);
584
+ // Build the full prompt
585
+ const fullPrompt = this.buildPrompt(headless.promptTemplate, context);
586
+ // Log prompt for debugging
587
+ this.logExecution(executionId, 'prompt', fullPrompt);
588
+ // Execute Claude Code headlessly
589
+ const result = await this.executeClaudeCode(fullPrompt, {
590
+ sandbox: headless.sandbox,
591
+ model: headless.model || 'sonnet',
592
+ timeoutMs: headless.timeoutMs || this.config.defaultTimeoutMs,
593
+ executionId,
594
+ workerType,
595
+ });
596
+ // Parse output based on format
597
+ let parsedOutput;
598
+ if (headless.outputFormat === 'json' && result.output) {
599
+ parsedOutput = this.parseJsonOutput(result.output);
600
+ }
601
+ else if (headless.outputFormat === 'markdown' && result.output) {
602
+ parsedOutput = this.parseMarkdownOutput(result.output);
603
+ }
604
+ const executionResult = {
605
+ success: result.success,
606
+ output: result.output,
607
+ parsedOutput,
608
+ durationMs: Date.now() - startTime,
609
+ tokensUsed: result.tokensUsed,
610
+ model: headless.model || 'sonnet',
611
+ sandboxMode: headless.sandbox,
612
+ workerType,
613
+ timestamp: new Date(),
614
+ executionId,
615
+ error: result.error,
616
+ };
617
+ // Log result
618
+ this.logExecution(executionId, 'result', JSON.stringify(executionResult, null, 2));
619
+ this.emit('complete', executionResult);
620
+ return executionResult;
621
+ }
622
+ catch (error) {
623
+ const errorMessage = error instanceof Error ? error.message : String(error);
624
+ const executionResult = this.createErrorResult(workerType, errorMessage);
625
+ executionResult.executionId = executionId;
626
+ executionResult.durationMs = Date.now() - startTime;
627
+ this.logExecution(executionId, 'error', errorMessage);
628
+ this.emit('error', executionResult);
629
+ return executionResult;
630
+ }
631
+ finally {
632
+ // Process next in queue
633
+ this.processQueue();
634
+ }
635
+ }
636
+ /**
637
+ * Process the pending queue
638
+ */
639
+ processQueue() {
640
+ while (this.pendingQueue.length > 0 &&
641
+ this.processPool.size < this.config.maxConcurrent) {
642
+ const next = this.pendingQueue.shift();
643
+ if (!next)
644
+ break;
645
+ this.executeInternal(next.workerType, next.config)
646
+ .then(next.resolve)
647
+ .catch(next.reject);
648
+ }
649
+ }
650
+ /**
651
+ * Build context from file patterns
652
+ */
653
+ async buildContext(patterns) {
654
+ if (patterns.length === 0)
655
+ return '';
656
+ // Check cache
657
+ const cacheKey = patterns.sort().join('|');
658
+ if (this.config.cacheContext) {
659
+ const cached = this.contextCache.get(cacheKey);
660
+ if (cached && Date.now() - cached.timestamp < this.config.cacheTtlMs) {
661
+ return cached.content;
662
+ }
663
+ }
664
+ // Collect files matching patterns
665
+ const files = [];
666
+ for (const pattern of patterns) {
667
+ const matches = this.simpleGlob(pattern);
668
+ files.push(...matches);
669
+ }
670
+ // Deduplicate and limit
671
+ const uniqueFiles = Array.from(new Set(files)).slice(0, this.config.maxContextFiles);
672
+ // Build context
673
+ const contextParts = [];
674
+ for (const file of uniqueFiles) {
675
+ try {
676
+ const fullPath = join(this.projectRoot, file);
677
+ if (!existsSync(fullPath))
678
+ continue;
679
+ const content = readFileSync(fullPath, 'utf-8');
680
+ const truncated = content.slice(0, this.config.maxCharsPerFile);
681
+ const wasTruncated = content.length > this.config.maxCharsPerFile;
682
+ contextParts.push(`--- ${file}${wasTruncated ? ' (truncated)' : ''} ---\n${truncated}`);
683
+ }
684
+ catch {
685
+ // Skip unreadable files
686
+ }
687
+ }
688
+ const contextContent = contextParts.join('\n\n');
689
+ // Cache the result
690
+ if (this.config.cacheContext) {
691
+ this.contextCache.set(cacheKey, {
692
+ content: contextContent,
693
+ timestamp: Date.now(),
694
+ patterns,
695
+ });
696
+ }
697
+ return contextContent;
698
+ }
699
+ /**
700
+ * Simple glob implementation for file matching
701
+ */
702
+ simpleGlob(pattern) {
703
+ const results = [];
704
+ // Handle simple patterns (no wildcards)
705
+ if (!pattern.includes('*')) {
706
+ const fullPath = join(this.projectRoot, pattern);
707
+ if (existsSync(fullPath)) {
708
+ results.push(pattern);
709
+ }
710
+ return results;
711
+ }
712
+ // Parse pattern parts
713
+ const parts = pattern.split('/');
714
+ const scanDir = (dir, remainingParts) => {
715
+ if (remainingParts.length === 0)
716
+ return;
717
+ if (results.length >= 100)
718
+ return; // Limit results
719
+ try {
720
+ const fullDir = join(this.projectRoot, dir);
721
+ if (!existsSync(fullDir))
722
+ return;
723
+ const entries = readdirSync(fullDir, { withFileTypes: true });
724
+ const currentPart = remainingParts[0];
725
+ const isLastPart = remainingParts.length === 1;
726
+ for (const entry of entries) {
727
+ // Skip common non-code directories
728
+ if (entry.name === 'node_modules' ||
729
+ entry.name === '.git' ||
730
+ entry.name === 'dist' ||
731
+ entry.name === 'build' ||
732
+ entry.name === 'coverage' ||
733
+ entry.name === '.next' ||
734
+ entry.name === '.cache') {
735
+ continue;
736
+ }
737
+ const entryPath = dir ? `${dir}/${entry.name}` : entry.name;
738
+ if (currentPart === '**') {
739
+ // Recursive glob
740
+ if (entry.isDirectory()) {
741
+ scanDir(entryPath, remainingParts); // Continue with **
742
+ scanDir(entryPath, remainingParts.slice(1)); // Try next part
743
+ }
744
+ else if (entry.isFile() && remainingParts.length > 1) {
745
+ // Check if file matches next pattern part
746
+ const nextPart = remainingParts[1];
747
+ if (this.matchesPattern(entry.name, nextPart)) {
748
+ results.push(entryPath);
749
+ }
750
+ }
751
+ }
752
+ else if (this.matchesPattern(entry.name, currentPart)) {
753
+ if (isLastPart && entry.isFile()) {
754
+ results.push(entryPath);
755
+ }
756
+ else if (!isLastPart && entry.isDirectory()) {
757
+ scanDir(entryPath, remainingParts.slice(1));
758
+ }
759
+ }
760
+ }
761
+ }
762
+ catch {
763
+ // Skip unreadable directories
764
+ }
765
+ };
766
+ scanDir('', parts);
767
+ return results;
768
+ }
769
+ /**
770
+ * Match filename against a simple pattern
771
+ */
772
+ matchesPattern(name, pattern) {
773
+ if (pattern === '*')
774
+ return true;
775
+ if (pattern === '**')
776
+ return true;
777
+ // Handle *.ext patterns
778
+ if (pattern.startsWith('*.')) {
779
+ return name.endsWith(pattern.slice(1));
780
+ }
781
+ // Handle prefix* patterns
782
+ if (pattern.endsWith('*')) {
783
+ return name.startsWith(pattern.slice(0, -1));
784
+ }
785
+ // Handle *suffix patterns
786
+ if (pattern.startsWith('*')) {
787
+ return name.endsWith(pattern.slice(1));
788
+ }
789
+ // Exact match
790
+ return name === pattern;
791
+ }
792
+ /**
793
+ * Build full prompt with context
794
+ */
795
+ buildPrompt(template, context) {
796
+ if (!context) {
797
+ return `${template}
798
+
799
+ ## Instructions
800
+
801
+ Analyze the codebase and provide your response following the format specified in the task.`;
802
+ }
803
+ return `${template}
804
+
805
+ ## Codebase Context
806
+
807
+ ${context}
808
+
809
+ ## Instructions
810
+
811
+ Analyze the above codebase context and provide your response following the format specified in the task.`;
812
+ }
813
+ /**
814
+ * Execute Claude Code in headless mode
815
+ */
816
+ executeClaudeCode(prompt, options) {
817
+ return new Promise((resolve) => {
818
+ const env = {
819
+ ...process.env,
820
+ CLAUDE_CODE_HEADLESS: 'true',
821
+ CLAUDE_CODE_SANDBOX_MODE: options.sandbox,
822
+ // Fix #1395 Bug 2: Workers fail inside active Claude Code session.
823
+ // Claude Code detects nested sessions and exits immediately.
824
+ // Setting CLAUDE_ENTRYPOINT=worker bypasses the nested-session check,
825
+ // and unsetting CLAUDE_SESSION_ID prevents parent session detection.
826
+ CLAUDE_ENTRYPOINT: 'worker',
827
+ };
828
+ // Remove parent session markers so the child doesn't detect a "nested" session
829
+ delete env.CLAUDE_SESSION_ID;
830
+ delete env.CLAUDE_PARENT_SESSION_ID;
831
+ // Set model
832
+ // Resolve model: user env override > config override > default alias
833
+ env.ANTHROPIC_MODEL = process.env.ANTHROPIC_MODEL || MODEL_IDS[options.model];
834
+ // Spawn claude CLI process
835
+ const child = spawn('claude', ['--print', prompt], {
836
+ cwd: this.projectRoot,
837
+ env,
838
+ stdio: ['ignore', 'pipe', 'pipe'], // 'ignore' closes stdin at spawn — fixes #1395 where claude --print blocks on EOF
839
+ windowsHide: true, // Prevent phantom console windows on Windows
840
+ });
841
+ // Setup timeout
842
+ const timeoutHandle = setTimeout(() => {
843
+ if (this.processPool.has(options.executionId)) {
844
+ child.kill('SIGTERM');
845
+ // Give it a moment to terminate gracefully
846
+ setTimeout(() => {
847
+ if (!child.killed) {
848
+ child.kill('SIGKILL');
849
+ }
850
+ }, 5000);
851
+ }
852
+ }, options.timeoutMs);
853
+ // Track in process pool
854
+ const poolEntry = {
855
+ process: child,
856
+ executionId: options.executionId,
857
+ workerType: options.workerType,
858
+ startTime: new Date(),
859
+ timeout: timeoutHandle,
860
+ };
861
+ this.processPool.set(options.executionId, poolEntry);
862
+ let stdout = '';
863
+ let stderr = '';
864
+ let resolved = false;
865
+ const cleanup = () => {
866
+ clearTimeout(timeoutHandle);
867
+ this.processPool.delete(options.executionId);
868
+ };
869
+ child.stdout?.on('data', (data) => {
870
+ const chunk = data.toString();
871
+ stdout += chunk;
872
+ this.emit('output', {
873
+ executionId: options.executionId,
874
+ type: 'stdout',
875
+ data: chunk,
876
+ });
877
+ });
878
+ child.stderr?.on('data', (data) => {
879
+ const chunk = data.toString();
880
+ stderr += chunk;
881
+ this.emit('output', {
882
+ executionId: options.executionId,
883
+ type: 'stderr',
884
+ data: chunk,
885
+ });
886
+ });
887
+ child.on('close', (code) => {
888
+ if (resolved)
889
+ return;
890
+ resolved = true;
891
+ cleanup();
892
+ resolve({
893
+ success: code === 0,
894
+ output: stdout || stderr,
895
+ error: code !== 0 ? stderr || `Process exited with code ${code}` : undefined,
896
+ });
897
+ });
898
+ child.on('error', (error) => {
899
+ if (resolved)
900
+ return;
901
+ resolved = true;
902
+ cleanup();
903
+ resolve({
904
+ success: false,
905
+ output: '',
906
+ error: error.message,
907
+ });
908
+ });
909
+ // Handle timeout
910
+ setTimeout(() => {
911
+ if (resolved)
912
+ return;
913
+ if (!this.processPool.has(options.executionId))
914
+ return;
915
+ resolved = true;
916
+ child.kill('SIGTERM');
917
+ cleanup();
918
+ resolve({
919
+ success: false,
920
+ output: stdout || stderr,
921
+ error: `Execution timed out after ${options.timeoutMs}ms`,
922
+ });
923
+ }, options.timeoutMs + 100); // Slightly after the kill timeout
924
+ });
925
+ }
926
+ /**
927
+ * Parse JSON output from Claude Code
928
+ */
929
+ parseJsonOutput(output) {
930
+ try {
931
+ // Try to find JSON in code blocks first
932
+ const codeBlockMatch = output.match(/```(?:json)?\s*([\s\S]*?)```/);
933
+ if (codeBlockMatch) {
934
+ return JSON.parse(codeBlockMatch[1].trim());
935
+ }
936
+ // Try to find any JSON object
937
+ const jsonMatch = output.match(/\{[\s\S]*\}/);
938
+ if (jsonMatch) {
939
+ return JSON.parse(jsonMatch[0]);
940
+ }
941
+ // Try direct parse
942
+ return JSON.parse(output.trim());
943
+ }
944
+ catch {
945
+ return {
946
+ parseError: true,
947
+ rawOutput: output,
948
+ };
949
+ }
950
+ }
951
+ /**
952
+ * Parse markdown output into sections
953
+ */
954
+ parseMarkdownOutput(output) {
955
+ const sections = [];
956
+ const codeBlocks = [];
957
+ // Extract code blocks first
958
+ const codeBlockRegex = /```(\w*)\n([\s\S]*?)```/g;
959
+ let codeMatch;
960
+ while ((codeMatch = codeBlockRegex.exec(output)) !== null) {
961
+ codeBlocks.push({
962
+ language: codeMatch[1] || 'text',
963
+ code: codeMatch[2].trim(),
964
+ });
965
+ }
966
+ // Parse sections
967
+ const lines = output.split('\n');
968
+ let currentSection = null;
969
+ for (const line of lines) {
970
+ const headerMatch = line.match(/^(#{1,6})\s+(.+)$/);
971
+ if (headerMatch) {
972
+ if (currentSection) {
973
+ sections.push(currentSection);
974
+ }
975
+ currentSection = {
976
+ title: headerMatch[2].trim(),
977
+ content: '',
978
+ level: headerMatch[1].length,
979
+ };
980
+ }
981
+ else if (currentSection) {
982
+ currentSection.content += line + '\n';
983
+ }
984
+ }
985
+ if (currentSection) {
986
+ currentSection.content = currentSection.content.trim();
987
+ sections.push(currentSection);
988
+ }
989
+ return { sections, codeBlocks };
990
+ }
991
+ /**
992
+ * Create an error result
993
+ */
994
+ createErrorResult(workerType, error) {
995
+ return {
996
+ success: false,
997
+ output: '',
998
+ durationMs: 0,
999
+ model: 'unknown',
1000
+ sandboxMode: 'strict',
1001
+ workerType,
1002
+ timestamp: new Date(),
1003
+ executionId: `error_${Date.now()}`,
1004
+ error,
1005
+ };
1006
+ }
1007
+ /**
1008
+ * Log execution details for debugging
1009
+ */
1010
+ logExecution(executionId, type, content) {
1011
+ try {
1012
+ const timestamp = new Date().toISOString();
1013
+ const logFile = join(this.config.logDir, `${executionId}_${type}.log`);
1014
+ const logContent = `[${timestamp}] ${type.toUpperCase()}\n${'='.repeat(60)}\n${content}\n`;
1015
+ writeFileSync(logFile, logContent);
1016
+ }
1017
+ catch {
1018
+ // Ignore log write errors
1019
+ }
1020
+ }
1021
+ }
1022
+ // Export default
1023
+ export default HeadlessWorkerExecutor;
1024
+ //# sourceMappingURL=headless-worker-executor.js.map