claude-flow-novice 1.3.6 → 1.5.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 (345) hide show
  1. package/.claude/agents/analysis/code-analyzer.md +3 -20
  2. package/.claude/agents/analysis/code-review/analyze-code-quality.md +1 -1
  3. package/.claude/agents/analyst.md +208 -550
  4. package/.claude/agents/architect.md +136 -469
  5. package/.claude/agents/architecture/system-architect.md +20 -1
  6. package/.claude/agents/architecture/system-design/arch-system-design.md +1 -1
  7. package/.claude/agents/base-template-generator.md +24 -1
  8. package/.claude/agents/coder.md +87 -303
  9. package/.claude/agents/consensus/byzantine-coordinator.md +4 -21
  10. package/.claude/agents/consensus/consensus-builder.md +3 -20
  11. package/.claude/agents/consensus/crdt-synchronizer.md +4 -21
  12. package/.claude/agents/consensus/gossip-coordinator.md +4 -21
  13. package/.claude/agents/consensus/performance-benchmarker.md +4 -21
  14. package/.claude/agents/consensus/quorum-manager.md +4 -21
  15. package/.claude/agents/consensus/raft-manager.md +4 -21
  16. package/.claude/agents/consensus/security-manager.md +4 -21
  17. package/.claude/agents/coordinator.md +22 -11
  18. package/.claude/agents/data/ml/data-ml-model.md +2 -2
  19. package/.claude/agents/development/backend/dev-backend-api.md +2 -2
  20. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +2 -2
  21. package/.claude/agents/devops/devops-engineer.md +134 -402
  22. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +2 -2
  23. package/.claude/agents/github/code-review-swarm.md +1 -1
  24. package/.claude/agents/github/github-specialist.md +856 -0
  25. package/.claude/agents/github/pr-manager.md +1 -1
  26. package/.claude/agents/github/release-manager.md +1 -1
  27. package/.claude/agents/neural/neural-pattern-agent.md +762 -0
  28. package/.claude/agents/optimization/benchmark-suite.md +1 -1
  29. package/.claude/agents/optimization/perf-analyzer.md +1 -1
  30. package/.claude/agents/optimization/performance-monitor.md +1 -1
  31. package/.claude/agents/planner.md +135 -0
  32. package/.claude/agents/researcher.md +22 -9
  33. package/.claude/agents/reviewer.md +291 -0
  34. package/.claude/agents/security/security-specialist.md +1 -1
  35. package/.claude/agents/sparc/architecture.md +1 -1
  36. package/.claude/agents/sparc/pseudocode.md +1 -1
  37. package/.claude/agents/sparc/refinement.md +1 -1
  38. package/.claude/agents/sparc/specification.md +1 -1
  39. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +2 -2
  40. package/.claude/agents/tester.md +21 -11
  41. package/.claude/agents/testing/unit/tdd-london-swarm.md +1 -1
  42. package/.claude/agents/testing/validation/production-validator.md +1 -1
  43. package/.claude/commands/claude-soul.js +1 -1
  44. package/.claude/hooks.json +12 -15
  45. package/{.claude → .claude-flow-novice/.claude}/agents/MIGRATION_SUMMARY.md +1 -1
  46. package/.claude-flow-novice/.claude/agents/analysis/code-analyzer.md +192 -0
  47. package/.claude-flow-novice/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  48. package/.claude-flow-novice/.claude/agents/analyst.md +300 -0
  49. package/.claude-flow-novice/.claude/agents/architect.md +557 -0
  50. package/.claude-flow-novice/.claude/agents/architecture/system-architect.md +630 -0
  51. package/.claude-flow-novice/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  52. package/.claude-flow-novice/.claude/agents/base-template-generator.md +65 -0
  53. package/.claude-flow-novice/.claude/agents/coder.md +180 -0
  54. package/.claude-flow-novice/.claude/agents/consensus/byzantine-coordinator.md +46 -0
  55. package/.claude-flow-novice/.claude/agents/consensus/consensus-builder.md +225 -0
  56. package/.claude-flow-novice/.claude/agents/consensus/crdt-synchronizer.md +980 -0
  57. package/.claude-flow-novice/.claude/agents/consensus/gossip-coordinator.md +46 -0
  58. package/.claude-flow-novice/.claude/agents/consensus/performance-benchmarker.md +834 -0
  59. package/.claude-flow-novice/.claude/agents/consensus/quorum-manager.md +806 -0
  60. package/.claude-flow-novice/.claude/agents/consensus/raft-manager.md +46 -0
  61. package/.claude-flow-novice/.claude/agents/consensus/security-manager.md +605 -0
  62. package/.claude-flow-novice/.claude/agents/coordinator.md +842 -0
  63. package/.claude-flow-novice/.claude/agents/data/ml/data-ml-model.md +193 -0
  64. package/.claude-flow-novice/.claude/agents/development/backend/dev-backend-api.md +142 -0
  65. package/.claude-flow-novice/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  66. package/.claude-flow-novice/.claude/agents/devops/devops-engineer.md +638 -0
  67. package/.claude-flow-novice/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  68. package/.claude-flow-novice/.claude/agents/github/code-review-swarm.md +538 -0
  69. package/.claude-flow-novice/.claude/agents/github/github-modes.md +173 -0
  70. package/.claude-flow-novice/.claude/agents/github/github-specialist.md +856 -0
  71. package/.claude-flow-novice/.claude/agents/github/issue-tracker.md +319 -0
  72. package/.claude-flow-novice/.claude/agents/github/multi-repo-swarm.md +553 -0
  73. package/.claude-flow-novice/.claude/agents/github/pr-manager.md +191 -0
  74. package/.claude-flow-novice/.claude/agents/github/project-board-sync.md +509 -0
  75. package/.claude-flow-novice/.claude/agents/github/release-manager.md +367 -0
  76. package/.claude-flow-novice/.claude/agents/github/release-swarm.md +583 -0
  77. package/.claude-flow-novice/.claude/agents/github/repo-architect.md +398 -0
  78. package/.claude-flow-novice/.claude/agents/github/swarm-issue.md +573 -0
  79. package/.claude-flow-novice/.claude/agents/github/swarm-pr.md +428 -0
  80. package/.claude-flow-novice/.claude/agents/github/sync-coordinator.md +452 -0
  81. package/.claude-flow-novice/.claude/agents/github/workflow-automation.md +635 -0
  82. package/.claude-flow-novice/.claude/agents/goal/goal-planner.md +73 -0
  83. package/.claude-flow-novice/.claude/agents/neural/neural-pattern-agent.md +762 -0
  84. package/.claude-flow-novice/.claude/agents/neural/safla-neural.md +74 -0
  85. package/.claude-flow-novice/.claude/agents/optimization/benchmark-suite.md +665 -0
  86. package/.claude-flow-novice/.claude/agents/optimization/load-balancer.md +431 -0
  87. package/.claude-flow-novice/.claude/agents/optimization/perf-analyzer.md +725 -0
  88. package/.claude-flow-novice/.claude/agents/optimization/performance-monitor.md +672 -0
  89. package/.claude-flow-novice/.claude/agents/optimization/resource-allocator.md +674 -0
  90. package/.claude-flow-novice/.claude/agents/optimization/topology-optimizer.md +808 -0
  91. package/.claude-flow-novice/.claude/agents/planner.md +135 -0
  92. package/.claude-flow-novice/.claude/agents/researcher.md +185 -0
  93. package/.claude-flow-novice/.claude/agents/reviewer.md +291 -0
  94. package/.claude-flow-novice/.claude/agents/security/security-specialist.md +978 -0
  95. package/.claude-flow-novice/.claude/agents/sparc/architecture.md +472 -0
  96. package/.claude-flow-novice/.claude/agents/sparc/pseudocode.md +318 -0
  97. package/.claude-flow-novice/.claude/agents/sparc/refinement.md +525 -0
  98. package/.claude-flow-novice/.claude/agents/sparc/specification.md +276 -0
  99. package/.claude-flow-novice/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  100. package/.claude-flow-novice/.claude/agents/sublinear/consciousness-evolution-agent.md +499 -0
  101. package/.claude-flow-novice/.claude/agents/sublinear/matrix-solver-agent.md +113 -0
  102. package/.claude-flow-novice/.claude/agents/sublinear/nanosecond-scheduler-agent.md +644 -0
  103. package/.claude-flow-novice/.claude/agents/sublinear/pagerank-agent.md +699 -0
  104. package/.claude-flow-novice/.claude/agents/sublinear/phi-calculator-agent.md +749 -0
  105. package/.claude-flow-novice/.claude/agents/sublinear/psycho-symbolic-agent.md +543 -0
  106. package/.claude-flow-novice/.claude/agents/sublinear/sublinear.md +816 -0
  107. package/.claude-flow-novice/.claude/agents/sublinear/temporal-advantage-agent.md +360 -0
  108. package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator-enhanced.md +746 -0
  109. package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  110. package/.claude-flow-novice/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  111. package/.claude-flow-novice/.claude/agents/swarm/mesh-coordinator.md +435 -0
  112. package/.claude-flow-novice/.claude/agents/templates/automation-smart-agent.md +205 -0
  113. package/.claude-flow-novice/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  114. package/.claude-flow-novice/.claude/agents/templates/github-pr-manager.md +177 -0
  115. package/.claude-flow-novice/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  116. package/.claude-flow-novice/.claude/agents/templates/memory-coordinator.md +187 -0
  117. package/.claude-flow-novice/.claude/agents/templates/migration-plan.md +746 -0
  118. package/.claude-flow-novice/.claude/agents/templates/orchestrator-task.md +139 -0
  119. package/.claude-flow-novice/.claude/agents/templates/performance-analyzer.md +199 -0
  120. package/.claude-flow-novice/.claude/agents/templates/sparc-coordinator.md +183 -0
  121. package/.claude-flow-novice/.claude/agents/tester.md +663 -0
  122. package/.claude-flow-novice/.claude/agents/testing/e2e/playwright-agent.md +249 -0
  123. package/.claude-flow-novice/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  124. package/.claude-flow-novice/.claude/agents/testing/validation/production-validator.md +395 -0
  125. package/.claude-flow-novice/dist/index.js +12 -24
  126. package/.claude-flow-novice/dist/index.js.map +1 -0
  127. package/.claude-flow-novice/dist/src/agents/agent-manager.js +123 -69
  128. package/.claude-flow-novice/dist/src/agents/agent-manager.js.map +1 -1
  129. package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js +7 -7
  130. package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js.map +1 -1
  131. package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js +485 -0
  132. package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js.map +1 -0
  133. package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js +630 -0
  134. package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js.map +1 -0
  135. package/.claude-flow-novice/dist/src/cli/commands/agent.js +1 -1
  136. package/.claude-flow-novice/dist/src/cli/commands/agent.js.map +1 -1
  137. package/.claude-flow-novice/dist/src/cli/commands/config-integration.js +6 -6
  138. package/.claude-flow-novice/dist/src/cli/commands/enterprise.js +18 -18
  139. package/.claude-flow-novice/dist/src/cli/commands/enterprise.js.map +1 -1
  140. package/.claude-flow-novice/dist/src/cli/commands/goal-init.js +4 -4
  141. package/.claude-flow-novice/dist/src/cli/commands/help-new.js +23 -23
  142. package/.claude-flow-novice/dist/src/cli/commands/help-new.js.map +1 -1
  143. package/.claude-flow-novice/dist/src/cli/commands/help.js +74 -74
  144. package/.claude-flow-novice/dist/src/cli/commands/help.js.map +1 -1
  145. package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js +2 -2
  146. package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js.map +1 -1
  147. package/.claude-flow-novice/dist/src/cli/commands/hive.js +4 -4
  148. package/.claude-flow-novice/dist/src/cli/commands/index.js +103 -132
  149. package/.claude-flow-novice/dist/src/cli/commands/index.js.map +1 -1
  150. package/.claude-flow-novice/dist/src/cli/commands/mcp.js +1 -1
  151. package/.claude-flow-novice/dist/src/cli/commands/migrate.js +4 -4
  152. package/.claude-flow-novice/dist/src/cli/commands/migrate.js.map +1 -1
  153. package/.claude-flow-novice/dist/src/cli/commands/monitor.js +1 -1
  154. package/.claude-flow-novice/dist/src/cli/commands/neural-init.js +4 -4
  155. package/.claude-flow-novice/dist/src/cli/commands/ruv-swarm.js +8 -8
  156. package/.claude-flow-novice/dist/src/cli/commands/sparc.js +12 -12
  157. package/.claude-flow-novice/dist/src/cli/commands/sparc.js.map +1 -1
  158. package/.claude-flow-novice/dist/src/cli/commands/start/start-command.js +3 -3
  159. package/.claude-flow-novice/dist/src/cli/commands/status.js +1 -1
  160. package/.claude-flow-novice/dist/src/cli/commands/swarm.js +7 -7
  161. package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
  162. package/.claude-flow-novice/dist/src/cli/commands/verification.js +18 -18
  163. package/.claude-flow-novice/dist/src/cli/completion.js +54 -54
  164. package/.claude-flow-novice/dist/src/cli/completion.js.map +1 -1
  165. package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js +11 -11
  166. package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js.map +1 -1
  167. package/.claude-flow-novice/dist/src/cli/consolidated/core/CommandHandlers.js +31 -31
  168. package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js +39 -39
  169. package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js.map +1 -1
  170. package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js +25 -25
  171. package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js.map +1 -1
  172. package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js +8 -8
  173. package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js.map +1 -1
  174. package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js +6 -6
  175. package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js.map +1 -1
  176. package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js +7 -7
  177. package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js.map +1 -1
  178. package/.claude-flow-novice/dist/src/cli/index-remote.js +10 -10
  179. package/.claude-flow-novice/dist/src/cli/index.js +1 -1
  180. package/.claude-flow-novice/dist/src/cli/init/directory-structure.js +8 -8
  181. package/.claude-flow-novice/dist/src/cli/init/index.js +3 -3
  182. package/.claude-flow-novice/dist/src/cli/init/sparc-environment.js +67 -67
  183. package/.claude-flow-novice/dist/src/cli/init/swarm-commands.js +18 -18
  184. package/.claude-flow-novice/dist/src/cli/node-repl.js +2 -2
  185. package/.claude-flow-novice/dist/src/cli/repl.js +1 -1
  186. package/.claude-flow-novice/dist/src/cli/simple-cli.js +68 -68
  187. package/.claude-flow-novice/dist/src/cli/simple-cli.js.map +1 -1
  188. package/.claude-flow-novice/dist/src/cli/simple-commands/session-start-soul.js +271 -0
  189. package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js +7 -7
  190. package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js.map +1 -1
  191. package/.claude-flow-novice/dist/src/cli/ui/fallback-handler.js +7 -7
  192. package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js +816 -0
  193. package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js.map +1 -0
  194. package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js +812 -0
  195. package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js.map +1 -0
  196. package/.claude-flow-novice/dist/src/communication/optimized-serialization.js +369 -0
  197. package/.claude-flow-novice/dist/src/communication/optimized-serialization.js.map +1 -0
  198. package/.claude-flow-novice/dist/src/communication/performance-optimizations.js +526 -0
  199. package/.claude-flow-novice/dist/src/communication/performance-optimizations.js.map +1 -0
  200. package/.claude-flow-novice/dist/src/communication/performance-validator.js +532 -0
  201. package/.claude-flow-novice/dist/src/communication/performance-validator.js.map +1 -0
  202. package/.claude-flow-novice/dist/src/communication/priority-message-queue.js +525 -0
  203. package/.claude-flow-novice/dist/src/communication/priority-message-queue.js.map +1 -0
  204. package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js +218 -0
  205. package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js.map +1 -0
  206. package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js +521 -0
  207. package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js.map +1 -0
  208. package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js +563 -0
  209. package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js.map +1 -0
  210. package/.claude-flow-novice/dist/src/communication/websocket-cluster.js +344 -0
  211. package/.claude-flow-novice/dist/src/communication/websocket-cluster.js.map +1 -0
  212. package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js +369 -0
  213. package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js.map +1 -0
  214. package/.claude-flow-novice/dist/src/config/config-manager.js +1 -1
  215. package/.claude-flow-novice/dist/src/config/config-manager.js.map +1 -1
  216. package/.claude-flow-novice/dist/src/config/core/intelligent-configuration-manager.js +1 -1
  217. package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js +6 -6
  218. package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js.map +1 -1
  219. package/.claude-flow-novice/dist/src/config/migration/config-migration.js +1 -1
  220. package/.claude-flow-novice/dist/src/config/ruv-swarm-integration.js +1 -1
  221. package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js +1 -1
  222. package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js.map +1 -1
  223. package/.claude-flow-novice/dist/src/config/web-portal-config.js +0 -9
  224. package/.claude-flow-novice/dist/src/config/web-portal-config.js.map +1 -1
  225. package/.claude-flow-novice/dist/src/config/zero-config-setup.js +18 -18
  226. package/.claude-flow-novice/dist/src/config/zero-config-setup.js.map +1 -1
  227. package/.claude-flow-novice/dist/src/core/logger.js +33 -10
  228. package/.claude-flow-novice/dist/src/core/logger.js.map +1 -1
  229. package/.claude-flow-novice/dist/src/migration/index.js +1 -1
  230. package/.claude-flow-novice/dist/src/migration/index.js.map +1 -1
  231. package/.claude-flow-novice/dist/src/migration/migration-runner.js +4 -4
  232. package/.claude-flow-novice/dist/src/migration/migration-runner.js.map +1 -1
  233. package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js +430 -0
  234. package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js.map +1 -0
  235. package/.claude-flow-novice/dist/src/slash-commands/claude-soul.js +248 -365
  236. package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +1 -1
  237. package/.claude-flow-novice/dist/src/swarm/claude-code-interface.js +1 -1
  238. package/.claude-flow-novice/dist/src/swarm/claude-flow-executor.js +1 -1
  239. package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js +471 -0
  240. package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js.map +1 -0
  241. package/.claude-flow-novice/dist/src/swarm/hive-mind-integration.js +1 -1
  242. package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js +543 -0
  243. package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js.map +1 -0
  244. package/.claude-flow-novice/dist/src/swarm/optimizations/connection-pool.js +1 -1
  245. package/.claude-flow-novice/dist/src/swarm/optimizations/optimized-executor.js +1 -1
  246. package/.claude-flow-novice/dist/src/swarm/types.js.map +1 -1
  247. package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js +709 -0
  248. package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js.map +1 -0
  249. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js +612 -0
  250. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js.map +1 -0
  251. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js +679 -0
  252. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js.map +1 -0
  253. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js +654 -0
  254. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js.map +1 -0
  255. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js +402 -0
  256. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js.map +1 -0
  257. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js +459 -0
  258. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js.map +1 -0
  259. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js +513 -0
  260. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js.map +1 -0
  261. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js +19 -0
  262. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js.map +1 -0
  263. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js +568 -0
  264. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js.map +1 -0
  265. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js +418 -0
  266. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js.map +1 -0
  267. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js +530 -0
  268. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js.map +1 -0
  269. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js +250 -0
  270. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js.map +1 -0
  271. package/.claude-flow-novice/dist/src/task/index.js +7 -7
  272. package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js +420 -0
  273. package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js.map +1 -0
  274. package/.claude-flow-novice/dist/src/validation/production-validator.js +1435 -0
  275. package/.claude-flow-novice/dist/src/validation/production-validator.js.map +1 -0
  276. package/.claude-flow-novice/dist/src/verification/cli-integration.js +3 -3
  277. package/.claude-flow-novice/dist/src/verification/hooks.js +1 -1
  278. package/CHANGELOG.md +13 -0
  279. package/CLAUDE.md +1029 -68
  280. package/README.md +0 -1
  281. package/config/build/babel.config.cjs +19 -11
  282. package/config/typescript/tsconfig.json +1 -1
  283. package/examples/claude-api-error-handling.ts +2 -2
  284. package/examples/frontend-testing-demo.ts +470 -0
  285. package/examples/litellm/config/config.yaml +1 -1
  286. package/package.json +13 -7
  287. package/scripts/build/unified-builder.sh +6 -6
  288. package/scripts/build/validate-agents.js +238 -0
  289. package/scripts/run-production-validation.ts +590 -0
  290. package/scripts/test/test-coordination-features.ts +2 -2
  291. package/scripts/validate-stage3-performance.ts +377 -0
  292. package/src/cli/simple-commands/hooks.js +1 -0
  293. package/src/cli/simple-commands/init/agent-copier.js +0 -2
  294. package/src/cli/simple-commands/init/index.js +5 -97
  295. package/src/cli/simple-commands/init/templates/CLAUDE.md +162 -1158
  296. package/src/cli/simple-commands/init/templates/claude-md.js +38 -157
  297. package/src/swarm-fullstack/integrations/communication-bridge.ts +931 -0
  298. package/src/swarm-fullstack/testing/api-contract-validator.ts +909 -0
  299. package/src/swarm-fullstack/testing/backend-test-orchestrator.ts +791 -0
  300. package/src/swarm-fullstack/testing/frontend-test-orchestrator.ts +853 -0
  301. package/src/swarm-fullstack/testing/visual-regression.ts +507 -0
  302. package/src/swarm-fullstack/workflows/convergence-detector.ts +736 -0
  303. package/src/swarm-fullstack/workflows/fix-coordinator.ts +677 -0
  304. package/src/swarm-fullstack/workflows/index.ts +75 -0
  305. package/src/swarm-fullstack/workflows/iterative-build-test.ts +829 -0
  306. package/src/swarm-fullstack/workflows/regression-test-manager.ts +590 -0
  307. package/src/swarm-fullstack/workflows/test-result-analyzer.ts +739 -0
  308. package/src/swarm-fullstack/workflows/workflow-metrics.ts +399 -0
  309. package/wiki/command-reference/README.md +1 -2
  310. package/wiki/command-reference/mcp-tools/README.md +1 -1
  311. package/wiki/getting-started/claude-code-mcp/README.md +1 -2
  312. package/wiki/getting-started/installation/README.md +2 -10
  313. package/.claude/commands/flow-nexus/app-store.md +0 -124
  314. package/.claude/commands/flow-nexus/challenges.md +0 -120
  315. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  316. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  317. package/.claude/commands/flow-nexus/payments.md +0 -116
  318. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  319. package/.claude/commands/flow-nexus/swarm.md +0 -87
  320. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  321. package/.claude/commands/flow-nexus/workflow.md +0 -115
  322. package/.claude-flow-novice/dist/cli/index.js +0 -45
  323. package/.claude-flow-novice/dist/core/index.js +0 -22
  324. package/.claude-flow-novice/dist/mcp/mcp-server-novice.js +0 -595
  325. package/.claude-flow-novice/dist/mcp/mcp-server-sdk.js +0 -649
  326. package/.claude-flow-novice/dist/mcp/mcp-server-with-slash-commands.js +0 -776
  327. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/claude-md.js +0 -1101
  328. package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +0 -265
  329. /package/{.claude → .claude-flow-novice/.claude}/agents/README.md +0 -0
  330. /package/{.claude → .claude-flow-novice/.claude}/agents/backend-dev.json +0 -0
  331. /package/{.claude → .claude-flow-novice/.claude}/agents/code-analyzer.json +0 -0
  332. /package/{.claude → .claude-flow-novice/.claude}/agents/coder.json +0 -0
  333. /package/{.claude → .claude-flow-novice/.claude}/agents/consensus/README.md +0 -0
  334. /package/{.claude → .claude-flow-novice/.claude}/agents/core/coder.md +0 -0
  335. /package/{.claude → .claude-flow-novice/.claude}/agents/core/planner.md +0 -0
  336. /package/{.claude → .claude-flow-novice/.claude}/agents/core/researcher.md +0 -0
  337. /package/{.claude → .claude-flow-novice/.claude}/agents/core/reviewer.md +0 -0
  338. /package/{.claude → .claude-flow-novice/.claude}/agents/core/tester.md +0 -0
  339. /package/{.claude → .claude-flow-novice/.claude}/agents/optimization/README.md +0 -0
  340. /package/{.claude → .claude-flow-novice/.claude}/agents/planner.json +0 -0
  341. /package/{.claude → .claude-flow-novice/.claude}/agents/researcher.json +0 -0
  342. /package/{.claude → .claude-flow-novice/.claude}/agents/reviewer.json +0 -0
  343. /package/{.claude → .claude-flow-novice/.claude}/agents/swarm/README.md +0 -0
  344. /package/{.claude → .claude-flow-novice/.claude}/agents/system-architect.json +0 -0
  345. /package/{.claude → .claude-flow-novice/.claude}/agents/tester.json +0 -0
@@ -0,0 +1,507 @@
1
+ /**
2
+ * Visual Regression Testing System
3
+ * Screenshot comparison and baseline management for UI consistency
4
+ */
5
+
6
+ import { EventEmitter } from 'events';
7
+ import { ILogger } from '../../core/logger.js';
8
+ import * as path from 'path';
9
+ import * as fs from 'fs/promises';
10
+
11
+ export interface VisualTestConfig {
12
+ baselineDir: string;
13
+ currentDir: string;
14
+ diffDir: string;
15
+ threshold: number; // 0-1, where 1 is exact match
16
+ updateBaselines: boolean;
17
+ browsers: string[];
18
+ viewports: Array<{ width: number; height: number; name: string }>;
19
+ ignoreRegions?: Array<{ x: number; y: number; width: number; height: number }>;
20
+ }
21
+
22
+ export interface ScreenshotOptions {
23
+ component: string;
24
+ url?: string;
25
+ selector?: string;
26
+ browser: string;
27
+ viewport: { width: number; height: number; name: string };
28
+ waitFor?: number;
29
+ animations?: 'disabled' | 'allow';
30
+ fullPage?: boolean;
31
+ }
32
+
33
+ export interface VisualComparisonResult {
34
+ component: string;
35
+ browser: string;
36
+ viewport: string;
37
+ baseline: string;
38
+ current: string;
39
+ diff?: string;
40
+ similarity: number;
41
+ diffPixels: number;
42
+ totalPixels: number;
43
+ passed: boolean;
44
+ threshold: number;
45
+ timestamp: string;
46
+ }
47
+
48
+ export interface BaselineMetadata {
49
+ component: string;
50
+ browser: string;
51
+ viewport: string;
52
+ createdAt: string;
53
+ updatedAt: string;
54
+ hash: string;
55
+ size: { width: number; height: number };
56
+ }
57
+
58
+ export class VisualRegressionSystem extends EventEmitter {
59
+ private config: VisualTestConfig;
60
+ private baselineMetadata = new Map<string, BaselineMetadata>();
61
+ private comparisonResults: VisualComparisonResult[] = [];
62
+
63
+ constructor(
64
+ config: Partial<VisualTestConfig>,
65
+ private logger: ILogger,
66
+ ) {
67
+ super();
68
+
69
+ this.config = {
70
+ baselineDir: path.join(process.cwd(), 'tests/visual/baselines'),
71
+ currentDir: path.join(process.cwd(), 'tests/visual/current'),
72
+ diffDir: path.join(process.cwd(), 'tests/visual/diffs'),
73
+ threshold: 0.99,
74
+ updateBaselines: false,
75
+ browsers: ['chromium'],
76
+ viewports: [
77
+ { width: 1920, height: 1080, name: 'desktop' },
78
+ { width: 768, height: 1024, name: 'tablet' },
79
+ { width: 375, height: 667, name: 'mobile' },
80
+ ],
81
+ ...config,
82
+ };
83
+
84
+ this.initializeDirectories();
85
+ this.loadBaselineMetadata();
86
+ }
87
+
88
+ /**
89
+ * Capture screenshot for visual testing
90
+ */
91
+ async captureScreenshot(options: ScreenshotOptions): Promise<string> {
92
+ try {
93
+ this.logger.info('Capturing screenshot', {
94
+ component: options.component,
95
+ browser: options.browser,
96
+ viewport: options.viewport.name,
97
+ });
98
+
99
+ const filename = this.generateFilename(options);
100
+ const filepath = path.join(this.config.currentDir, filename);
101
+
102
+ // Ensure directory exists
103
+ await fs.mkdir(path.dirname(filepath), { recursive: true });
104
+
105
+ // Simulate screenshot capture (would use Playwright/Puppeteer in real implementation)
106
+ const screenshot = await this.performScreenshotCapture(options);
107
+ await fs.writeFile(filepath, screenshot);
108
+
109
+ this.emit('screenshot-captured', {
110
+ component: options.component,
111
+ filepath,
112
+ size: screenshot.length,
113
+ });
114
+
115
+ return filepath;
116
+ } catch (error) {
117
+ this.logger.error('Screenshot capture failed', { error, options });
118
+ throw error;
119
+ }
120
+ }
121
+
122
+ /**
123
+ * Compare screenshot with baseline
124
+ */
125
+ async compareWithBaseline(screenshotPath: string, options: ScreenshotOptions): Promise<VisualComparisonResult> {
126
+ try {
127
+ const filename = path.basename(screenshotPath);
128
+ const baselinePath = path.join(this.config.baselineDir, filename);
129
+
130
+ // Check if baseline exists
131
+ const baselineExists = await this.fileExists(baselinePath);
132
+
133
+ if (!baselineExists) {
134
+ if (this.config.updateBaselines) {
135
+ // Create new baseline
136
+ await this.createBaseline(screenshotPath, options);
137
+ return this.createPassingResult(options, screenshotPath, baselinePath, 'Baseline created');
138
+ } else {
139
+ throw new Error(`Baseline not found: ${baselinePath}`);
140
+ }
141
+ }
142
+
143
+ // Perform comparison
144
+ const comparison = await this.performComparison(screenshotPath, baselinePath);
145
+
146
+ // Generate diff image if needed
147
+ let diffPath: string | undefined;
148
+ if (comparison.similarity < this.config.threshold) {
149
+ diffPath = await this.generateDiffImage(screenshotPath, baselinePath, options);
150
+ }
151
+
152
+ const result: VisualComparisonResult = {
153
+ component: options.component,
154
+ browser: options.browser,
155
+ viewport: options.viewport.name,
156
+ baseline: baselinePath,
157
+ current: screenshotPath,
158
+ diff: diffPath,
159
+ similarity: comparison.similarity,
160
+ diffPixels: comparison.diffPixels,
161
+ totalPixels: comparison.totalPixels,
162
+ passed: comparison.similarity >= this.config.threshold,
163
+ threshold: this.config.threshold,
164
+ timestamp: new Date().toISOString(),
165
+ };
166
+
167
+ this.comparisonResults.push(result);
168
+
169
+ this.emit('comparison-completed', result);
170
+
171
+ // Update baseline if configured and test passed
172
+ if (this.config.updateBaselines && result.passed) {
173
+ await this.updateBaseline(screenshotPath, options);
174
+ }
175
+
176
+ return result;
177
+ } catch (error) {
178
+ this.logger.error('Visual comparison failed', { error, options });
179
+ throw error;
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Test component across all configured browsers and viewports
185
+ */
186
+ async testComponent(component: string, url?: string, selector?: string): Promise<VisualComparisonResult[]> {
187
+ const results: VisualComparisonResult[] = [];
188
+
189
+ for (const browser of this.config.browsers) {
190
+ for (const viewport of this.config.viewports) {
191
+ try {
192
+ const options: ScreenshotOptions = {
193
+ component,
194
+ url,
195
+ selector,
196
+ browser,
197
+ viewport,
198
+ animations: 'disabled',
199
+ fullPage: false,
200
+ };
201
+
202
+ const screenshotPath = await this.captureScreenshot(options);
203
+ const result = await this.compareWithBaseline(screenshotPath, options);
204
+ results.push(result);
205
+ } catch (error) {
206
+ this.logger.error('Component test failed', {
207
+ error,
208
+ component,
209
+ browser,
210
+ viewport: viewport.name,
211
+ });
212
+ }
213
+ }
214
+ }
215
+
216
+ return results;
217
+ }
218
+
219
+ /**
220
+ * Test multiple components in batch
221
+ */
222
+ async testComponents(components: Array<{ name: string; url?: string; selector?: string }>): Promise<Map<string, VisualComparisonResult[]>> {
223
+ const resultMap = new Map<string, VisualComparisonResult[]>();
224
+
225
+ for (const component of components) {
226
+ try {
227
+ const results = await this.testComponent(component.name, component.url, component.selector);
228
+ resultMap.set(component.name, results);
229
+ } catch (error) {
230
+ this.logger.error('Component batch test failed', { error, component: component.name });
231
+ }
232
+ }
233
+
234
+ return resultMap;
235
+ }
236
+
237
+ /**
238
+ * Get all comparison results
239
+ */
240
+ getResults(): VisualComparisonResult[] {
241
+ return this.comparisonResults;
242
+ }
243
+
244
+ /**
245
+ * Get failed comparisons
246
+ */
247
+ getFailures(): VisualComparisonResult[] {
248
+ return this.comparisonResults.filter((r) => !r.passed);
249
+ }
250
+
251
+ /**
252
+ * Get summary statistics
253
+ */
254
+ getSummary(): {
255
+ total: number;
256
+ passed: number;
257
+ failed: number;
258
+ averageSimilarity: number;
259
+ totalDiffPixels: number;
260
+ } {
261
+ const total = this.comparisonResults.length;
262
+ const passed = this.comparisonResults.filter((r) => r.passed).length;
263
+ const failed = total - passed;
264
+ const averageSimilarity =
265
+ this.comparisonResults.reduce((sum, r) => sum + r.similarity, 0) / total || 0;
266
+ const totalDiffPixels = this.comparisonResults.reduce((sum, r) => sum + r.diffPixels, 0);
267
+
268
+ return {
269
+ total,
270
+ passed,
271
+ failed,
272
+ averageSimilarity,
273
+ totalDiffPixels,
274
+ };
275
+ }
276
+
277
+ /**
278
+ * Update baselines for all current screenshots
279
+ */
280
+ async updateAllBaselines(): Promise<void> {
281
+ try {
282
+ this.logger.info('Updating all baselines');
283
+
284
+ const currentFiles = await this.listFiles(this.config.currentDir);
285
+
286
+ for (const file of currentFiles) {
287
+ const sourcePath = path.join(this.config.currentDir, file);
288
+ const targetPath = path.join(this.config.baselineDir, file);
289
+
290
+ await fs.copyFile(sourcePath, targetPath);
291
+
292
+ // Update metadata
293
+ const metadata: BaselineMetadata = {
294
+ component: this.extractComponentName(file),
295
+ browser: this.extractBrowser(file),
296
+ viewport: this.extractViewport(file),
297
+ createdAt: new Date().toISOString(),
298
+ updatedAt: new Date().toISOString(),
299
+ hash: await this.calculateFileHash(sourcePath),
300
+ size: await this.getImageSize(sourcePath),
301
+ };
302
+
303
+ this.baselineMetadata.set(file, metadata);
304
+ }
305
+
306
+ await this.saveBaselineMetadata();
307
+
308
+ this.emit('baselines-updated', { count: currentFiles.length });
309
+ } catch (error) {
310
+ this.logger.error('Baseline update failed', { error });
311
+ throw error;
312
+ }
313
+ }
314
+
315
+ /**
316
+ * Clean up old test artifacts
317
+ */
318
+ async cleanup(keepDays: number = 7): Promise<void> {
319
+ try {
320
+ const cutoffDate = new Date();
321
+ cutoffDate.setDate(cutoffDate.getDate() - keepDays);
322
+
323
+ await this.cleanDirectory(this.config.currentDir, cutoffDate);
324
+ await this.cleanDirectory(this.config.diffDir, cutoffDate);
325
+
326
+ this.logger.info('Visual test cleanup completed', { keepDays });
327
+ } catch (error) {
328
+ this.logger.error('Cleanup failed', { error });
329
+ }
330
+ }
331
+
332
+ // Private helper methods
333
+
334
+ private async initializeDirectories(): Promise<void> {
335
+ await fs.mkdir(this.config.baselineDir, { recursive: true });
336
+ await fs.mkdir(this.config.currentDir, { recursive: true });
337
+ await fs.mkdir(this.config.diffDir, { recursive: true });
338
+ }
339
+
340
+ private async loadBaselineMetadata(): Promise<void> {
341
+ try {
342
+ const metadataPath = path.join(this.config.baselineDir, 'metadata.json');
343
+ const data = await fs.readFile(metadataPath, 'utf-8');
344
+ const metadata = JSON.parse(data);
345
+
346
+ for (const [key, value] of Object.entries(metadata)) {
347
+ this.baselineMetadata.set(key, value as BaselineMetadata);
348
+ }
349
+ } catch (error) {
350
+ // Metadata file doesn't exist yet
351
+ this.logger.debug('No baseline metadata found, starting fresh');
352
+ }
353
+ }
354
+
355
+ private async saveBaselineMetadata(): Promise<void> {
356
+ const metadataPath = path.join(this.config.baselineDir, 'metadata.json');
357
+ const metadata = Object.fromEntries(this.baselineMetadata);
358
+ await fs.writeFile(metadataPath, JSON.stringify(metadata, null, 2));
359
+ }
360
+
361
+ private generateFilename(options: ScreenshotOptions): string {
362
+ const timestamp = Date.now();
363
+ return `${options.component}__${options.browser}__${options.viewport.name}__${timestamp}.png`;
364
+ }
365
+
366
+ private async performScreenshotCapture(options: ScreenshotOptions): Promise<Buffer> {
367
+ // Placeholder: Would integrate with Playwright/Puppeteer
368
+ // For now, return a mock buffer
369
+ return Buffer.from('mock-screenshot-data');
370
+ }
371
+
372
+ private async performComparison(
373
+ currentPath: string,
374
+ baselinePath: string,
375
+ ): Promise<{ similarity: number; diffPixels: number; totalPixels: number }> {
376
+ // Placeholder: Would use pixelmatch or similar library
377
+ // For now, return mock comparison
378
+ return {
379
+ similarity: 0.995,
380
+ diffPixels: 100,
381
+ totalPixels: 1920 * 1080,
382
+ };
383
+ }
384
+
385
+ private async generateDiffImage(
386
+ currentPath: string,
387
+ baselinePath: string,
388
+ options: ScreenshotOptions,
389
+ ): Promise<string> {
390
+ const filename = this.generateFilename(options).replace('.png', '-diff.png');
391
+ const diffPath = path.join(this.config.diffDir, filename);
392
+
393
+ // Placeholder: Would generate actual diff image
394
+ await fs.writeFile(diffPath, Buffer.from('mock-diff-image'));
395
+
396
+ return diffPath;
397
+ }
398
+
399
+ private async createBaseline(screenshotPath: string, options: ScreenshotOptions): Promise<void> {
400
+ const filename = path.basename(screenshotPath);
401
+ const baselinePath = path.join(this.config.baselineDir, filename);
402
+
403
+ await fs.copyFile(screenshotPath, baselinePath);
404
+
405
+ const metadata: BaselineMetadata = {
406
+ component: options.component,
407
+ browser: options.browser,
408
+ viewport: options.viewport.name,
409
+ createdAt: new Date().toISOString(),
410
+ updatedAt: new Date().toISOString(),
411
+ hash: await this.calculateFileHash(screenshotPath),
412
+ size: options.viewport,
413
+ };
414
+
415
+ this.baselineMetadata.set(filename, metadata);
416
+ await this.saveBaselineMetadata();
417
+
418
+ this.logger.info('Baseline created', { component: options.component, filename });
419
+ }
420
+
421
+ private async updateBaseline(screenshotPath: string, options: ScreenshotOptions): Promise<void> {
422
+ const filename = path.basename(screenshotPath);
423
+ const baselinePath = path.join(this.config.baselineDir, filename);
424
+
425
+ await fs.copyFile(screenshotPath, baselinePath);
426
+
427
+ const metadata = this.baselineMetadata.get(filename);
428
+ if (metadata) {
429
+ metadata.updatedAt = new Date().toISOString();
430
+ metadata.hash = await this.calculateFileHash(screenshotPath);
431
+ await this.saveBaselineMetadata();
432
+ }
433
+ }
434
+
435
+ private createPassingResult(
436
+ options: ScreenshotOptions,
437
+ current: string,
438
+ baseline: string,
439
+ reason: string,
440
+ ): VisualComparisonResult {
441
+ return {
442
+ component: options.component,
443
+ browser: options.browser,
444
+ viewport: options.viewport.name,
445
+ baseline,
446
+ current,
447
+ similarity: 1,
448
+ diffPixels: 0,
449
+ totalPixels: options.viewport.width * options.viewport.height,
450
+ passed: true,
451
+ threshold: this.config.threshold,
452
+ timestamp: new Date().toISOString(),
453
+ };
454
+ }
455
+
456
+ private async fileExists(filepath: string): Promise<boolean> {
457
+ try {
458
+ await fs.access(filepath);
459
+ return true;
460
+ } catch {
461
+ return false;
462
+ }
463
+ }
464
+
465
+ private async listFiles(dir: string): Promise<string[]> {
466
+ try {
467
+ return await fs.readdir(dir);
468
+ } catch {
469
+ return [];
470
+ }
471
+ }
472
+
473
+ private async cleanDirectory(dir: string, cutoffDate: Date): Promise<void> {
474
+ const files = await this.listFiles(dir);
475
+
476
+ for (const file of files) {
477
+ const filepath = path.join(dir, file);
478
+ const stats = await fs.stat(filepath);
479
+
480
+ if (stats.mtime < cutoffDate) {
481
+ await fs.unlink(filepath);
482
+ }
483
+ }
484
+ }
485
+
486
+ private async calculateFileHash(filepath: string): Promise<string> {
487
+ // Placeholder: Would use crypto to calculate actual hash
488
+ return `hash-${Date.now()}`;
489
+ }
490
+
491
+ private async getImageSize(filepath: string): Promise<{ width: number; height: number }> {
492
+ // Placeholder: Would use image library to get actual size
493
+ return { width: 1920, height: 1080 };
494
+ }
495
+
496
+ private extractComponentName(filename: string): string {
497
+ return filename.split('__')[0] || 'unknown';
498
+ }
499
+
500
+ private extractBrowser(filename: string): string {
501
+ return filename.split('__')[1] || 'unknown';
502
+ }
503
+
504
+ private extractViewport(filename: string): string {
505
+ return filename.split('__')[2] || 'unknown';
506
+ }
507
+ }