claude-flow-novice 1.3.6 → 1.5.1

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 (347) 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/commands/fullstack.md +134 -0
  45. package/.claude/commands/index.js +4 -0
  46. package/.claude/hooks.json +12 -15
  47. package/{.claude → .claude-flow-novice/.claude}/agents/MIGRATION_SUMMARY.md +1 -1
  48. package/.claude-flow-novice/.claude/agents/analysis/code-analyzer.md +192 -0
  49. package/.claude-flow-novice/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  50. package/.claude-flow-novice/.claude/agents/analyst.md +300 -0
  51. package/.claude-flow-novice/.claude/agents/architect.md +557 -0
  52. package/.claude-flow-novice/.claude/agents/architecture/system-architect.md +630 -0
  53. package/.claude-flow-novice/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  54. package/.claude-flow-novice/.claude/agents/base-template-generator.md +65 -0
  55. package/.claude-flow-novice/.claude/agents/coder.md +180 -0
  56. package/.claude-flow-novice/.claude/agents/consensus/byzantine-coordinator.md +46 -0
  57. package/.claude-flow-novice/.claude/agents/consensus/consensus-builder.md +225 -0
  58. package/.claude-flow-novice/.claude/agents/consensus/crdt-synchronizer.md +980 -0
  59. package/.claude-flow-novice/.claude/agents/consensus/gossip-coordinator.md +46 -0
  60. package/.claude-flow-novice/.claude/agents/consensus/performance-benchmarker.md +834 -0
  61. package/.claude-flow-novice/.claude/agents/consensus/quorum-manager.md +806 -0
  62. package/.claude-flow-novice/.claude/agents/consensus/raft-manager.md +46 -0
  63. package/.claude-flow-novice/.claude/agents/consensus/security-manager.md +605 -0
  64. package/.claude-flow-novice/.claude/agents/coordinator.md +842 -0
  65. package/.claude-flow-novice/.claude/agents/data/ml/data-ml-model.md +193 -0
  66. package/.claude-flow-novice/.claude/agents/development/backend/dev-backend-api.md +142 -0
  67. package/.claude-flow-novice/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  68. package/.claude-flow-novice/.claude/agents/devops/devops-engineer.md +638 -0
  69. package/.claude-flow-novice/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  70. package/.claude-flow-novice/.claude/agents/github/code-review-swarm.md +538 -0
  71. package/.claude-flow-novice/.claude/agents/github/github-modes.md +173 -0
  72. package/.claude-flow-novice/.claude/agents/github/github-specialist.md +856 -0
  73. package/.claude-flow-novice/.claude/agents/github/issue-tracker.md +319 -0
  74. package/.claude-flow-novice/.claude/agents/github/multi-repo-swarm.md +553 -0
  75. package/.claude-flow-novice/.claude/agents/github/pr-manager.md +191 -0
  76. package/.claude-flow-novice/.claude/agents/github/project-board-sync.md +509 -0
  77. package/.claude-flow-novice/.claude/agents/github/release-manager.md +367 -0
  78. package/.claude-flow-novice/.claude/agents/github/release-swarm.md +583 -0
  79. package/.claude-flow-novice/.claude/agents/github/repo-architect.md +398 -0
  80. package/.claude-flow-novice/.claude/agents/github/swarm-issue.md +573 -0
  81. package/.claude-flow-novice/.claude/agents/github/swarm-pr.md +428 -0
  82. package/.claude-flow-novice/.claude/agents/github/sync-coordinator.md +452 -0
  83. package/.claude-flow-novice/.claude/agents/github/workflow-automation.md +635 -0
  84. package/.claude-flow-novice/.claude/agents/goal/goal-planner.md +73 -0
  85. package/.claude-flow-novice/.claude/agents/neural/neural-pattern-agent.md +762 -0
  86. package/.claude-flow-novice/.claude/agents/neural/safla-neural.md +74 -0
  87. package/.claude-flow-novice/.claude/agents/optimization/benchmark-suite.md +665 -0
  88. package/.claude-flow-novice/.claude/agents/optimization/load-balancer.md +431 -0
  89. package/.claude-flow-novice/.claude/agents/optimization/perf-analyzer.md +725 -0
  90. package/.claude-flow-novice/.claude/agents/optimization/performance-monitor.md +672 -0
  91. package/.claude-flow-novice/.claude/agents/optimization/resource-allocator.md +674 -0
  92. package/.claude-flow-novice/.claude/agents/optimization/topology-optimizer.md +808 -0
  93. package/.claude-flow-novice/.claude/agents/planner.md +135 -0
  94. package/.claude-flow-novice/.claude/agents/researcher.md +185 -0
  95. package/.claude-flow-novice/.claude/agents/reviewer.md +291 -0
  96. package/.claude-flow-novice/.claude/agents/security/security-specialist.md +978 -0
  97. package/.claude-flow-novice/.claude/agents/sparc/architecture.md +472 -0
  98. package/.claude-flow-novice/.claude/agents/sparc/pseudocode.md +318 -0
  99. package/.claude-flow-novice/.claude/agents/sparc/refinement.md +525 -0
  100. package/.claude-flow-novice/.claude/agents/sparc/specification.md +276 -0
  101. package/.claude-flow-novice/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  102. package/.claude-flow-novice/.claude/agents/sublinear/consciousness-evolution-agent.md +499 -0
  103. package/.claude-flow-novice/.claude/agents/sublinear/matrix-solver-agent.md +113 -0
  104. package/.claude-flow-novice/.claude/agents/sublinear/nanosecond-scheduler-agent.md +644 -0
  105. package/.claude-flow-novice/.claude/agents/sublinear/pagerank-agent.md +699 -0
  106. package/.claude-flow-novice/.claude/agents/sublinear/phi-calculator-agent.md +749 -0
  107. package/.claude-flow-novice/.claude/agents/sublinear/psycho-symbolic-agent.md +543 -0
  108. package/.claude-flow-novice/.claude/agents/sublinear/sublinear.md +816 -0
  109. package/.claude-flow-novice/.claude/agents/sublinear/temporal-advantage-agent.md +360 -0
  110. package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator-enhanced.md +746 -0
  111. package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  112. package/.claude-flow-novice/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  113. package/.claude-flow-novice/.claude/agents/swarm/mesh-coordinator.md +435 -0
  114. package/.claude-flow-novice/.claude/agents/templates/automation-smart-agent.md +205 -0
  115. package/.claude-flow-novice/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  116. package/.claude-flow-novice/.claude/agents/templates/github-pr-manager.md +177 -0
  117. package/.claude-flow-novice/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  118. package/.claude-flow-novice/.claude/agents/templates/memory-coordinator.md +187 -0
  119. package/.claude-flow-novice/.claude/agents/templates/migration-plan.md +746 -0
  120. package/.claude-flow-novice/.claude/agents/templates/orchestrator-task.md +139 -0
  121. package/.claude-flow-novice/.claude/agents/templates/performance-analyzer.md +199 -0
  122. package/.claude-flow-novice/.claude/agents/templates/sparc-coordinator.md +183 -0
  123. package/.claude-flow-novice/.claude/agents/tester.md +663 -0
  124. package/.claude-flow-novice/.claude/agents/testing/e2e/playwright-agent.md +249 -0
  125. package/.claude-flow-novice/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  126. package/.claude-flow-novice/.claude/agents/testing/validation/production-validator.md +395 -0
  127. package/.claude-flow-novice/dist/index.js +12 -24
  128. package/.claude-flow-novice/dist/index.js.map +1 -0
  129. package/.claude-flow-novice/dist/src/agents/agent-manager.js +123 -69
  130. package/.claude-flow-novice/dist/src/agents/agent-manager.js.map +1 -1
  131. package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js +7 -7
  132. package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js.map +1 -1
  133. package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js +485 -0
  134. package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js.map +1 -0
  135. package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js +630 -0
  136. package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js.map +1 -0
  137. package/.claude-flow-novice/dist/src/cli/commands/agent.js +1 -1
  138. package/.claude-flow-novice/dist/src/cli/commands/agent.js.map +1 -1
  139. package/.claude-flow-novice/dist/src/cli/commands/config-integration.js +6 -6
  140. package/.claude-flow-novice/dist/src/cli/commands/enterprise.js +18 -18
  141. package/.claude-flow-novice/dist/src/cli/commands/enterprise.js.map +1 -1
  142. package/.claude-flow-novice/dist/src/cli/commands/goal-init.js +4 -4
  143. package/.claude-flow-novice/dist/src/cli/commands/help-new.js +23 -23
  144. package/.claude-flow-novice/dist/src/cli/commands/help-new.js.map +1 -1
  145. package/.claude-flow-novice/dist/src/cli/commands/help.js +74 -74
  146. package/.claude-flow-novice/dist/src/cli/commands/help.js.map +1 -1
  147. package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js +2 -2
  148. package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js.map +1 -1
  149. package/.claude-flow-novice/dist/src/cli/commands/hive.js +4 -4
  150. package/.claude-flow-novice/dist/src/cli/commands/index.js +103 -132
  151. package/.claude-flow-novice/dist/src/cli/commands/index.js.map +1 -1
  152. package/.claude-flow-novice/dist/src/cli/commands/mcp.js +1 -1
  153. package/.claude-flow-novice/dist/src/cli/commands/migrate.js +4 -4
  154. package/.claude-flow-novice/dist/src/cli/commands/migrate.js.map +1 -1
  155. package/.claude-flow-novice/dist/src/cli/commands/monitor.js +1 -1
  156. package/.claude-flow-novice/dist/src/cli/commands/neural-init.js +4 -4
  157. package/.claude-flow-novice/dist/src/cli/commands/ruv-swarm.js +8 -8
  158. package/.claude-flow-novice/dist/src/cli/commands/sparc.js +12 -12
  159. package/.claude-flow-novice/dist/src/cli/commands/sparc.js.map +1 -1
  160. package/.claude-flow-novice/dist/src/cli/commands/start/start-command.js +3 -3
  161. package/.claude-flow-novice/dist/src/cli/commands/status.js +1 -1
  162. package/.claude-flow-novice/dist/src/cli/commands/swarm.js +7 -7
  163. package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
  164. package/.claude-flow-novice/dist/src/cli/commands/verification.js +18 -18
  165. package/.claude-flow-novice/dist/src/cli/completion.js +54 -54
  166. package/.claude-flow-novice/dist/src/cli/completion.js.map +1 -1
  167. package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js +11 -11
  168. package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js.map +1 -1
  169. package/.claude-flow-novice/dist/src/cli/consolidated/core/CommandHandlers.js +31 -31
  170. package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js +39 -39
  171. package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js.map +1 -1
  172. package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js +25 -25
  173. package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js.map +1 -1
  174. package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js +8 -8
  175. package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js.map +1 -1
  176. package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js +6 -6
  177. package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js.map +1 -1
  178. package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js +7 -7
  179. package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js.map +1 -1
  180. package/.claude-flow-novice/dist/src/cli/index-remote.js +10 -10
  181. package/.claude-flow-novice/dist/src/cli/index.js +1 -1
  182. package/.claude-flow-novice/dist/src/cli/init/directory-structure.js +8 -8
  183. package/.claude-flow-novice/dist/src/cli/init/index.js +3 -3
  184. package/.claude-flow-novice/dist/src/cli/init/sparc-environment.js +67 -67
  185. package/.claude-flow-novice/dist/src/cli/init/swarm-commands.js +18 -18
  186. package/.claude-flow-novice/dist/src/cli/node-repl.js +2 -2
  187. package/.claude-flow-novice/dist/src/cli/repl.js +1 -1
  188. package/.claude-flow-novice/dist/src/cli/simple-cli.js +68 -68
  189. package/.claude-flow-novice/dist/src/cli/simple-cli.js.map +1 -1
  190. package/.claude-flow-novice/dist/src/cli/simple-commands/session-start-soul.js +271 -0
  191. package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js +7 -7
  192. package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js.map +1 -1
  193. package/.claude-flow-novice/dist/src/cli/ui/fallback-handler.js +7 -7
  194. package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js +816 -0
  195. package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js.map +1 -0
  196. package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js +812 -0
  197. package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js.map +1 -0
  198. package/.claude-flow-novice/dist/src/communication/optimized-serialization.js +369 -0
  199. package/.claude-flow-novice/dist/src/communication/optimized-serialization.js.map +1 -0
  200. package/.claude-flow-novice/dist/src/communication/performance-optimizations.js +526 -0
  201. package/.claude-flow-novice/dist/src/communication/performance-optimizations.js.map +1 -0
  202. package/.claude-flow-novice/dist/src/communication/performance-validator.js +532 -0
  203. package/.claude-flow-novice/dist/src/communication/performance-validator.js.map +1 -0
  204. package/.claude-flow-novice/dist/src/communication/priority-message-queue.js +525 -0
  205. package/.claude-flow-novice/dist/src/communication/priority-message-queue.js.map +1 -0
  206. package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js +218 -0
  207. package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js.map +1 -0
  208. package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js +521 -0
  209. package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js.map +1 -0
  210. package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js +563 -0
  211. package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js.map +1 -0
  212. package/.claude-flow-novice/dist/src/communication/websocket-cluster.js +344 -0
  213. package/.claude-flow-novice/dist/src/communication/websocket-cluster.js.map +1 -0
  214. package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js +369 -0
  215. package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js.map +1 -0
  216. package/.claude-flow-novice/dist/src/config/config-manager.js +1 -1
  217. package/.claude-flow-novice/dist/src/config/config-manager.js.map +1 -1
  218. package/.claude-flow-novice/dist/src/config/core/intelligent-configuration-manager.js +1 -1
  219. package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js +6 -6
  220. package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js.map +1 -1
  221. package/.claude-flow-novice/dist/src/config/migration/config-migration.js +1 -1
  222. package/.claude-flow-novice/dist/src/config/ruv-swarm-integration.js +1 -1
  223. package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js +1 -1
  224. package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js.map +1 -1
  225. package/.claude-flow-novice/dist/src/config/web-portal-config.js +0 -9
  226. package/.claude-flow-novice/dist/src/config/web-portal-config.js.map +1 -1
  227. package/.claude-flow-novice/dist/src/config/zero-config-setup.js +18 -18
  228. package/.claude-flow-novice/dist/src/config/zero-config-setup.js.map +1 -1
  229. package/.claude-flow-novice/dist/src/core/logger.js +33 -10
  230. package/.claude-flow-novice/dist/src/core/logger.js.map +1 -1
  231. package/.claude-flow-novice/dist/src/migration/index.js +1 -1
  232. package/.claude-flow-novice/dist/src/migration/index.js.map +1 -1
  233. package/.claude-flow-novice/dist/src/migration/migration-runner.js +4 -4
  234. package/.claude-flow-novice/dist/src/migration/migration-runner.js.map +1 -1
  235. package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js +430 -0
  236. package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js.map +1 -0
  237. package/.claude-flow-novice/dist/src/slash-commands/claude-soul.js +248 -365
  238. package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +1 -1
  239. package/.claude-flow-novice/dist/src/swarm/claude-code-interface.js +1 -1
  240. package/.claude-flow-novice/dist/src/swarm/claude-flow-executor.js +1 -1
  241. package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js +471 -0
  242. package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js.map +1 -0
  243. package/.claude-flow-novice/dist/src/swarm/hive-mind-integration.js +1 -1
  244. package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js +543 -0
  245. package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js.map +1 -0
  246. package/.claude-flow-novice/dist/src/swarm/optimizations/connection-pool.js +1 -1
  247. package/.claude-flow-novice/dist/src/swarm/optimizations/optimized-executor.js +1 -1
  248. package/.claude-flow-novice/dist/src/swarm/types.js.map +1 -1
  249. package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js +709 -0
  250. package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js.map +1 -0
  251. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js +612 -0
  252. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js.map +1 -0
  253. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js +679 -0
  254. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js.map +1 -0
  255. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js +654 -0
  256. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js.map +1 -0
  257. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js +402 -0
  258. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js.map +1 -0
  259. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js +459 -0
  260. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js.map +1 -0
  261. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js +513 -0
  262. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js.map +1 -0
  263. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js +19 -0
  264. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js.map +1 -0
  265. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js +568 -0
  266. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js.map +1 -0
  267. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js +418 -0
  268. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js.map +1 -0
  269. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js +530 -0
  270. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js.map +1 -0
  271. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js +250 -0
  272. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js.map +1 -0
  273. package/.claude-flow-novice/dist/src/task/index.js +7 -7
  274. package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js +420 -0
  275. package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js.map +1 -0
  276. package/.claude-flow-novice/dist/src/validation/production-validator.js +1435 -0
  277. package/.claude-flow-novice/dist/src/validation/production-validator.js.map +1 -0
  278. package/.claude-flow-novice/dist/src/verification/cli-integration.js +3 -3
  279. package/.claude-flow-novice/dist/src/verification/hooks.js +1 -1
  280. package/CHANGELOG.md +26 -0
  281. package/CLAUDE.md +1967 -68
  282. package/README.md +0 -1
  283. package/config/build/babel.config.cjs +19 -11
  284. package/config/typescript/tsconfig.json +1 -1
  285. package/examples/claude-api-error-handling.ts +2 -2
  286. package/examples/frontend-testing-demo.ts +470 -0
  287. package/examples/litellm/config/config.yaml +1 -1
  288. package/package.json +13 -7
  289. package/scripts/build/unified-builder.sh +6 -6
  290. package/scripts/build/validate-agents.js +238 -0
  291. package/scripts/run-production-validation.ts +590 -0
  292. package/scripts/test/test-coordination-features.ts +2 -2
  293. package/scripts/validate-stage3-performance.ts +377 -0
  294. package/src/cli/simple-commands/hooks.js +1 -0
  295. package/src/cli/simple-commands/init/agent-copier.js +0 -2
  296. package/src/cli/simple-commands/init/index.js +5 -97
  297. package/src/cli/simple-commands/init/templates/CLAUDE.md +163 -1158
  298. package/src/cli/simple-commands/init/templates/claude-md.js +38 -157
  299. package/src/swarm-fullstack/integrations/communication-bridge.ts +931 -0
  300. package/src/swarm-fullstack/testing/api-contract-validator.ts +909 -0
  301. package/src/swarm-fullstack/testing/backend-test-orchestrator.ts +791 -0
  302. package/src/swarm-fullstack/testing/frontend-test-orchestrator.ts +853 -0
  303. package/src/swarm-fullstack/testing/visual-regression.ts +507 -0
  304. package/src/swarm-fullstack/workflows/convergence-detector.ts +736 -0
  305. package/src/swarm-fullstack/workflows/fix-coordinator.ts +677 -0
  306. package/src/swarm-fullstack/workflows/index.ts +75 -0
  307. package/src/swarm-fullstack/workflows/iterative-build-test.ts +829 -0
  308. package/src/swarm-fullstack/workflows/regression-test-manager.ts +590 -0
  309. package/src/swarm-fullstack/workflows/test-result-analyzer.ts +739 -0
  310. package/src/swarm-fullstack/workflows/workflow-metrics.ts +399 -0
  311. package/wiki/command-reference/README.md +1 -2
  312. package/wiki/command-reference/mcp-tools/README.md +1 -1
  313. package/wiki/getting-started/claude-code-mcp/README.md +1 -2
  314. package/wiki/getting-started/installation/README.md +2 -10
  315. package/.claude/commands/flow-nexus/app-store.md +0 -124
  316. package/.claude/commands/flow-nexus/challenges.md +0 -120
  317. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  318. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  319. package/.claude/commands/flow-nexus/payments.md +0 -116
  320. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  321. package/.claude/commands/flow-nexus/swarm.md +0 -87
  322. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  323. package/.claude/commands/flow-nexus/workflow.md +0 -115
  324. package/.claude-flow-novice/dist/cli/index.js +0 -45
  325. package/.claude-flow-novice/dist/core/index.js +0 -22
  326. package/.claude-flow-novice/dist/mcp/mcp-server-novice.js +0 -595
  327. package/.claude-flow-novice/dist/mcp/mcp-server-sdk.js +0 -649
  328. package/.claude-flow-novice/dist/mcp/mcp-server-with-slash-commands.js +0 -776
  329. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/claude-md.js +0 -1101
  330. package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +0 -265
  331. /package/{.claude → .claude-flow-novice/.claude}/agents/README.md +0 -0
  332. /package/{.claude → .claude-flow-novice/.claude}/agents/backend-dev.json +0 -0
  333. /package/{.claude → .claude-flow-novice/.claude}/agents/code-analyzer.json +0 -0
  334. /package/{.claude → .claude-flow-novice/.claude}/agents/coder.json +0 -0
  335. /package/{.claude → .claude-flow-novice/.claude}/agents/consensus/README.md +0 -0
  336. /package/{.claude → .claude-flow-novice/.claude}/agents/core/coder.md +0 -0
  337. /package/{.claude → .claude-flow-novice/.claude}/agents/core/planner.md +0 -0
  338. /package/{.claude → .claude-flow-novice/.claude}/agents/core/researcher.md +0 -0
  339. /package/{.claude → .claude-flow-novice/.claude}/agents/core/reviewer.md +0 -0
  340. /package/{.claude → .claude-flow-novice/.claude}/agents/core/tester.md +0 -0
  341. /package/{.claude → .claude-flow-novice/.claude}/agents/optimization/README.md +0 -0
  342. /package/{.claude → .claude-flow-novice/.claude}/agents/planner.json +0 -0
  343. /package/{.claude → .claude-flow-novice/.claude}/agents/researcher.json +0 -0
  344. /package/{.claude → .claude-flow-novice/.claude}/agents/reviewer.json +0 -0
  345. /package/{.claude → .claude-flow-novice/.claude}/agents/swarm/README.md +0 -0
  346. /package/{.claude → .claude-flow-novice/.claude}/agents/system-architect.json +0 -0
  347. /package/{.claude → .claude-flow-novice/.claude}/agents/tester.json +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/swarm-fullstack/testing/backend-test-orchestrator.ts"],"names":["EventEmitter","BackendTestOrchestrator","config","testSuites","Map","testResults","dbContexts","runningTests","Set","logger","database","isolationMode","connectionPoolSize","testDbPrefix","cleanupStrategy","api","baseUrl","timeout","retries","validateSchemas","captureRequests","performance","enabled","thresholds","p50","p95","p99","throughput","duration","concurrency","coverage","threshold","includeIntegration","collectFrom","timeouts","unit","integration","e2e","initializeTestSuites","executeTestWorkflow","swarmId","plan","info","testTypes","results","includes","unitResult","executeUnitTests","set","success","hasCriticalFailures","error","integrationResult","executeIntegrationTests","apiResult","executeAPITests","perfResult","executePerformanceTests","generateTestReport","cleanupTestResources","suiteId","add","emit","type","startTime","Date","now","result","tests","total","passed","failed","skipped","lines","branches","functions","statements","undefined","errors","warnings","push","errorResult","test","message","stack","severity","category","delete","dbContext","createDatabaseTestContext","loadTestFixtures","cleanupDatabaseContext","validatePerformanceThresholds","generatePerformanceWarnings","dbName","context","connectionId","isolated","fixtures","cleanup","transaction","id","debug","email","name","userId","title","content","reverse","some","suites","files","dependencies","estimatedDuration","priority","parallel","forEach","suite","report","timestamp","toISOString","summary","calculateTestSummary","Array","from","values","recommendations","generateRecommendations","allResults","totalTests","reduce","sum","r","every","length","get","resultKeys","keys","filter","key","startsWith","getTestResults","getStatus","size","totalResults","activeContexts"],"mappings":"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"}
@@ -0,0 +1,654 @@
1
+ /**
2
+ * Frontend Test Orchestrator
3
+ * Comprehensive testing system for fullstack swarm frontend components
4
+ * Integrates Jest, React Testing Library, Playwright, and Visual Regression
5
+ */ import { EventEmitter } from 'events';
6
+ export class FrontendTestOrchestrator extends EventEmitter {
7
+ logger;
8
+ config;
9
+ activeSuites = new Map();
10
+ testResults = new Map();
11
+ executionQueue = [];
12
+ running = false;
13
+ constructor(config, logger){
14
+ super(), this.logger = logger;
15
+ this.config = {
16
+ unit: {
17
+ enabled: true,
18
+ framework: 'jest',
19
+ timeout: 30000,
20
+ coverage: {
21
+ enabled: true,
22
+ threshold: {
23
+ statements: 80,
24
+ branches: 75,
25
+ functions: 80,
26
+ lines: 80
27
+ }
28
+ }
29
+ },
30
+ integration: {
31
+ enabled: true,
32
+ timeout: 60000,
33
+ mockStrategy: 'partial'
34
+ },
35
+ e2e: {
36
+ enabled: true,
37
+ framework: 'playwright',
38
+ browsers: [
39
+ 'chromium'
40
+ ],
41
+ headless: true,
42
+ timeout: 120000,
43
+ retries: 2
44
+ },
45
+ visualRegression: {
46
+ enabled: true,
47
+ threshold: 0.99,
48
+ updateBaselines: false
49
+ },
50
+ accessibility: {
51
+ enabled: true,
52
+ standards: [
53
+ 'wcag2aa'
54
+ ],
55
+ autoFix: false
56
+ },
57
+ performance: {
58
+ enabled: true,
59
+ metrics: [
60
+ 'lcp',
61
+ 'fid',
62
+ 'cls',
63
+ 'ttfb',
64
+ 'fcp'
65
+ ],
66
+ thresholds: {
67
+ lcp: 2500,
68
+ fid: 100,
69
+ cls: 0.1,
70
+ ttfb: 600,
71
+ fcp: 1800
72
+ }
73
+ },
74
+ ...config
75
+ };
76
+ this.logger.info('Frontend Test Orchestrator initialized', {
77
+ config: this.config
78
+ });
79
+ }
80
+ /**
81
+ * Execute complete test plan for a swarm
82
+ */ async executeTestPlan(plan) {
83
+ try {
84
+ this.logger.info('Starting test execution plan', {
85
+ swarmId: plan.swarmId,
86
+ feature: plan.feature,
87
+ totalSuites: plan.suites.length
88
+ });
89
+ this.emit('test-plan-started', {
90
+ plan
91
+ });
92
+ // Prioritize and queue test suites
93
+ const prioritizedSuites = this.prioritizeSuites(plan.suites);
94
+ this.executionQueue = prioritizedSuites;
95
+ // Execute tests based on parallelization strategy
96
+ const results = plan.parallelization.enabled ? await this.executeParallel(prioritizedSuites, plan) : await this.executeSequential(prioritizedSuites, plan);
97
+ this.emit('test-plan-completed', {
98
+ swarmId: plan.swarmId,
99
+ results,
100
+ summary: this.generateSummary(results)
101
+ });
102
+ // Broadcast results to reporting channels
103
+ await this.broadcastResults(plan, results);
104
+ return results;
105
+ } catch (error) {
106
+ this.logger.error('Test plan execution failed', {
107
+ error,
108
+ plan
109
+ });
110
+ throw error;
111
+ }
112
+ }
113
+ /**
114
+ * Execute unit tests
115
+ */ async executeUnitTests(suite) {
116
+ if (!this.config.unit.enabled) {
117
+ return this.createSkippedResult(suite, 'Unit tests disabled');
118
+ }
119
+ this.logger.info('Executing unit tests', {
120
+ suite: suite.name
121
+ });
122
+ const startTime = Date.now();
123
+ try {
124
+ // Execute Jest tests with RTL
125
+ const result = await this.runJestTests({
126
+ testFiles: suite.files,
127
+ coverage: this.config.unit.coverage.enabled,
128
+ timeout: this.config.unit.timeout
129
+ });
130
+ const testResult = {
131
+ suiteId: suite.id,
132
+ suiteName: suite.name,
133
+ type: 'unit',
134
+ status: result.success ? 'passed' : 'failed',
135
+ duration: Date.now() - startTime,
136
+ timestamp: new Date().toISOString(),
137
+ tests: {
138
+ total: result.numTotalTests,
139
+ passed: result.numPassedTests,
140
+ failed: result.numFailedTests,
141
+ skipped: result.numPendingTests
142
+ },
143
+ coverage: result.coverage,
144
+ failures: result.testResults?.filter((t)=>t.status === 'failed').map((t)=>({
145
+ testName: t.fullName,
146
+ error: t.failureMessages[0] || 'Unknown error',
147
+ stack: t.failureMessages.join('\n')
148
+ }))
149
+ };
150
+ this.testResults.set(suite.id, testResult);
151
+ this.emit('unit-tests-completed', {
152
+ suite,
153
+ result: testResult
154
+ });
155
+ return testResult;
156
+ } catch (error) {
157
+ this.logger.error('Unit test execution failed', {
158
+ error,
159
+ suite
160
+ });
161
+ return this.createErrorResult(suite, error);
162
+ }
163
+ }
164
+ /**
165
+ * Execute integration tests
166
+ */ async executeIntegrationTests(suite) {
167
+ if (!this.config.integration.enabled) {
168
+ return this.createSkippedResult(suite, 'Integration tests disabled');
169
+ }
170
+ this.logger.info('Executing integration tests', {
171
+ suite: suite.name
172
+ });
173
+ const startTime = Date.now();
174
+ try {
175
+ // Setup test environment with mocking strategy
176
+ await this.setupIntegrationEnvironment(this.config.integration.mockStrategy);
177
+ // Execute integration test suite
178
+ const result = await this.runJestTests({
179
+ testFiles: suite.files,
180
+ coverage: false,
181
+ timeout: this.config.integration.timeout,
182
+ testEnvironment: 'jsdom'
183
+ });
184
+ const testResult = {
185
+ suiteId: suite.id,
186
+ suiteName: suite.name,
187
+ type: 'integration',
188
+ status: result.success ? 'passed' : 'failed',
189
+ duration: Date.now() - startTime,
190
+ timestamp: new Date().toISOString(),
191
+ tests: {
192
+ total: result.numTotalTests,
193
+ passed: result.numPassedTests,
194
+ failed: result.numFailedTests,
195
+ skipped: result.numPendingTests
196
+ },
197
+ failures: result.testResults?.filter((t)=>t.status === 'failed').map((t)=>({
198
+ testName: t.fullName,
199
+ error: t.failureMessages[0] || 'Unknown error',
200
+ stack: t.failureMessages.join('\n')
201
+ }))
202
+ };
203
+ this.testResults.set(suite.id, testResult);
204
+ this.emit('integration-tests-completed', {
205
+ suite,
206
+ result: testResult
207
+ });
208
+ return testResult;
209
+ } catch (error) {
210
+ this.logger.error('Integration test execution failed', {
211
+ error,
212
+ suite
213
+ });
214
+ return this.createErrorResult(suite, error);
215
+ } finally{
216
+ await this.teardownIntegrationEnvironment();
217
+ }
218
+ }
219
+ /**
220
+ * Execute E2E tests with Playwright
221
+ */ async executeE2ETests(suite) {
222
+ if (!this.config.e2e.enabled) {
223
+ return this.createSkippedResult(suite, 'E2E tests disabled');
224
+ }
225
+ this.logger.info('Executing E2E tests', {
226
+ suite: suite.name
227
+ });
228
+ const startTime = Date.now();
229
+ try {
230
+ const results = await Promise.all(this.config.e2e.browsers.map(async (browser)=>{
231
+ return await this.runPlaywrightTests({
232
+ testFiles: suite.files,
233
+ browser,
234
+ headless: this.config.e2e.headless,
235
+ timeout: this.config.e2e.timeout,
236
+ retries: this.config.e2e.retries
237
+ });
238
+ }));
239
+ // Aggregate results from all browsers
240
+ const aggregated = this.aggregateBrowserResults(results);
241
+ const testResult = {
242
+ suiteId: suite.id,
243
+ suiteName: suite.name,
244
+ type: 'e2e',
245
+ status: aggregated.allPassed ? 'passed' : 'failed',
246
+ duration: Date.now() - startTime,
247
+ timestamp: new Date().toISOString(),
248
+ tests: aggregated.tests,
249
+ failures: aggregated.failures
250
+ };
251
+ this.testResults.set(suite.id, testResult);
252
+ this.emit('e2e-tests-completed', {
253
+ suite,
254
+ result: testResult
255
+ });
256
+ return testResult;
257
+ } catch (error) {
258
+ this.logger.error('E2E test execution failed', {
259
+ error,
260
+ suite
261
+ });
262
+ return this.createErrorResult(suite, error);
263
+ }
264
+ }
265
+ /**
266
+ * Execute visual regression tests
267
+ */ async executeVisualRegressionTests(suite) {
268
+ if (!this.config.visualRegression.enabled) {
269
+ return this.createSkippedResult(suite, 'Visual regression tests disabled');
270
+ }
271
+ this.logger.info('Executing visual regression tests', {
272
+ suite: suite.name
273
+ });
274
+ const startTime = Date.now();
275
+ try {
276
+ const screenshots = await this.captureScreenshots(suite);
277
+ const comparisons = await this.compareWithBaselines(screenshots);
278
+ const failures = comparisons.filter((c)=>!c.passed);
279
+ const status = failures.length === 0 ? 'passed' : 'failed';
280
+ const testResult = {
281
+ suiteId: suite.id,
282
+ suiteName: suite.name,
283
+ type: 'visual',
284
+ status,
285
+ duration: Date.now() - startTime,
286
+ timestamp: new Date().toISOString(),
287
+ tests: {
288
+ total: comparisons.length,
289
+ passed: comparisons.filter((c)=>c.passed).length,
290
+ failed: failures.length,
291
+ skipped: 0
292
+ },
293
+ failures: failures.map((f)=>({
294
+ testName: f.baseline,
295
+ error: `Visual difference detected: ${(1 - f.similarity) * 100}% different`,
296
+ stack: `Baseline: ${f.baseline}\nCurrent: ${f.current}\nDiff: ${f.diff}`
297
+ }))
298
+ };
299
+ this.testResults.set(suite.id, testResult);
300
+ this.emit('visual-regression-tests-completed', {
301
+ suite,
302
+ result: testResult
303
+ });
304
+ return testResult;
305
+ } catch (error) {
306
+ this.logger.error('Visual regression test execution failed', {
307
+ error,
308
+ suite
309
+ });
310
+ return this.createErrorResult(suite, error);
311
+ }
312
+ }
313
+ /**
314
+ * Execute accessibility tests
315
+ */ async executeAccessibilityTests(suite) {
316
+ if (!this.config.accessibility.enabled) {
317
+ return this.createSkippedResult(suite, 'Accessibility tests disabled');
318
+ }
319
+ this.logger.info('Executing accessibility tests', {
320
+ suite: suite.name
321
+ });
322
+ const startTime = Date.now();
323
+ try {
324
+ const report = await this.runAccessibilityAudit({
325
+ urls: suite.files,
326
+ standards: this.config.accessibility.standards
327
+ });
328
+ const status = report.violations.length === 0 ? 'passed' : 'failed';
329
+ const testResult = {
330
+ suiteId: suite.id,
331
+ suiteName: suite.name,
332
+ type: 'accessibility',
333
+ status,
334
+ duration: Date.now() - startTime,
335
+ timestamp: new Date().toISOString(),
336
+ tests: {
337
+ total: report.passes + report.violations.length,
338
+ passed: report.passes,
339
+ failed: report.violations.length,
340
+ skipped: report.incomplete
341
+ },
342
+ accessibility: report,
343
+ failures: report.violations.map((v)=>({
344
+ testName: v.id,
345
+ error: v.description,
346
+ stack: `Impact: ${v.impact}\nHelp: ${v.help}\nURL: ${v.helpUrl}`
347
+ }))
348
+ };
349
+ this.testResults.set(suite.id, testResult);
350
+ this.emit('accessibility-tests-completed', {
351
+ suite,
352
+ result: testResult
353
+ });
354
+ return testResult;
355
+ } catch (error) {
356
+ this.logger.error('Accessibility test execution failed', {
357
+ error,
358
+ suite
359
+ });
360
+ return this.createErrorResult(suite, error);
361
+ }
362
+ }
363
+ /**
364
+ * Get real-time test progress
365
+ */ getTestProgress() {
366
+ const completed = this.testResults.size;
367
+ const running = this.activeSuites.size;
368
+ const queued = this.executionQueue.length;
369
+ const total = completed + running + queued;
370
+ return {
371
+ total,
372
+ completed,
373
+ running,
374
+ queued,
375
+ status: this.running ? 'running' : completed === total ? 'completed' : 'idle'
376
+ };
377
+ }
378
+ /**
379
+ * Get aggregated test results
380
+ */ getTestSummary() {
381
+ const results = Array.from(this.testResults.values());
382
+ return {
383
+ totalSuites: results.length,
384
+ passed: results.filter((r)=>r.status === 'passed').length,
385
+ failed: results.filter((r)=>r.status === 'failed').length,
386
+ skipped: results.filter((r)=>r.status === 'skipped').length,
387
+ coverage: this.aggregateCoverage(results),
388
+ duration: results.reduce((sum, r)=>sum + r.duration, 0)
389
+ };
390
+ }
391
+ // Private helper methods
392
+ prioritizeSuites(suites) {
393
+ return suites.sort((a, b)=>{
394
+ // Prioritize by: priority > type (unit > integration > e2e) > dependencies
395
+ if (a.priority !== b.priority) return b.priority - a.priority;
396
+ const typeOrder = {
397
+ unit: 0,
398
+ integration: 1,
399
+ e2e: 2,
400
+ visual: 3,
401
+ accessibility: 3,
402
+ performance: 4
403
+ };
404
+ const aOrder = typeOrder[a.type] || 5;
405
+ const bOrder = typeOrder[b.type] || 5;
406
+ if (aOrder !== bOrder) return aOrder - bOrder;
407
+ return a.dependencies.length - b.dependencies.length;
408
+ });
409
+ }
410
+ async executeParallel(suites, plan) {
411
+ const results = new Map();
412
+ const maxConcurrent = plan.parallelization.maxConcurrent;
413
+ const batches = this.createBatches(suites, maxConcurrent);
414
+ for (const batch of batches){
415
+ const batchResults = await Promise.all(batch.map((suite)=>this.executeSuite(suite, plan.retryPolicy)));
416
+ batchResults.forEach((result, index)=>{
417
+ results.set(batch[index].id, result);
418
+ });
419
+ }
420
+ return results;
421
+ }
422
+ async executeSequential(suites, plan) {
423
+ const results = new Map();
424
+ for (const suite of suites){
425
+ const result = await this.executeSuite(suite, plan.retryPolicy);
426
+ results.set(suite.id, result);
427
+ }
428
+ return results;
429
+ }
430
+ async executeSuite(suite, retryPolicy) {
431
+ this.activeSuites.set(suite.id, suite);
432
+ let attempts = 0;
433
+ let lastError;
434
+ while(attempts <= (retryPolicy.enabled ? retryPolicy.maxRetries : 0)){
435
+ try {
436
+ let result;
437
+ switch(suite.type){
438
+ case 'unit':
439
+ result = await this.executeUnitTests(suite);
440
+ break;
441
+ case 'integration':
442
+ result = await this.executeIntegrationTests(suite);
443
+ break;
444
+ case 'e2e':
445
+ result = await this.executeE2ETests(suite);
446
+ break;
447
+ case 'visual':
448
+ result = await this.executeVisualRegressionTests(suite);
449
+ break;
450
+ case 'accessibility':
451
+ result = await this.executeAccessibilityTests(suite);
452
+ break;
453
+ default:
454
+ throw new Error(`Unknown suite type: ${suite.type}`);
455
+ }
456
+ this.activeSuites.delete(suite.id);
457
+ return result;
458
+ } catch (error) {
459
+ lastError = error;
460
+ attempts++;
461
+ if (attempts <= retryPolicy.maxRetries) {
462
+ this.logger.warn('Test suite failed, retrying', {
463
+ suite: suite.name,
464
+ attempt: attempts,
465
+ maxRetries: retryPolicy.maxRetries
466
+ });
467
+ await this.sleep(retryPolicy.retryDelay);
468
+ }
469
+ }
470
+ }
471
+ this.activeSuites.delete(suite.id);
472
+ return this.createErrorResult(suite, lastError);
473
+ }
474
+ createBatches(items, batchSize) {
475
+ const batches = [];
476
+ for(let i = 0; i < items.length; i += batchSize){
477
+ batches.push(items.slice(i, i + batchSize));
478
+ }
479
+ return batches;
480
+ }
481
+ createSkippedResult(suite, reason) {
482
+ return {
483
+ suiteId: suite.id,
484
+ suiteName: suite.name,
485
+ type: suite.type,
486
+ status: 'skipped',
487
+ duration: 0,
488
+ timestamp: new Date().toISOString(),
489
+ tests: {
490
+ total: 0,
491
+ passed: 0,
492
+ failed: 0,
493
+ skipped: 0
494
+ },
495
+ failures: [
496
+ {
497
+ testName: 'Suite Skipped',
498
+ error: reason,
499
+ stack: ''
500
+ }
501
+ ]
502
+ };
503
+ }
504
+ createErrorResult(suite, error) {
505
+ return {
506
+ suiteId: suite.id,
507
+ suiteName: suite.name,
508
+ type: suite.type,
509
+ status: 'error',
510
+ duration: 0,
511
+ timestamp: new Date().toISOString(),
512
+ tests: {
513
+ total: 0,
514
+ passed: 0,
515
+ failed: 1,
516
+ skipped: 0
517
+ },
518
+ failures: [
519
+ {
520
+ testName: 'Suite Execution',
521
+ error: error.message || 'Unknown error',
522
+ stack: error.stack || ''
523
+ }
524
+ ]
525
+ };
526
+ }
527
+ aggregateCoverage(results) {
528
+ const coverageResults = results.filter((r)=>r.coverage);
529
+ if (coverageResults.length === 0) return undefined;
530
+ const total = coverageResults.length;
531
+ return {
532
+ statements: coverageResults.reduce((sum, r)=>sum + (r.coverage?.statements || 0), 0) / total,
533
+ branches: coverageResults.reduce((sum, r)=>sum + (r.coverage?.branches || 0), 0) / total,
534
+ functions: coverageResults.reduce((sum, r)=>sum + (r.coverage?.functions || 0), 0) / total,
535
+ lines: coverageResults.reduce((sum, r)=>sum + (r.coverage?.lines || 0), 0) / total
536
+ };
537
+ }
538
+ generateSummary(results) {
539
+ const values = Array.from(results.values());
540
+ return {
541
+ total: values.length,
542
+ passed: values.filter((r)=>r.status === 'passed').length,
543
+ failed: values.filter((r)=>r.status === 'failed').length,
544
+ skipped: values.filter((r)=>r.status === 'skipped').length,
545
+ duration: values.reduce((sum, r)=>sum + r.duration, 0)
546
+ };
547
+ }
548
+ async broadcastResults(plan, results) {
549
+ const summary = this.generateSummary(results);
550
+ const message = {
551
+ id: `test-results-${Date.now()}`,
552
+ swarmId: plan.swarmId,
553
+ agentId: 'frontend-test-orchestrator',
554
+ agentType: 'qa-engineer',
555
+ messageType: 'test-result',
556
+ content: JSON.stringify({
557
+ feature: plan.feature,
558
+ summary,
559
+ results: Array.from(results.values())
560
+ }),
561
+ timestamp: new Date().toISOString(),
562
+ priority: 'high',
563
+ layer: 'testing'
564
+ };
565
+ this.emit('test-results-ready', message);
566
+ }
567
+ // Placeholder methods for actual test execution (would integrate with real frameworks)
568
+ async runJestTests(options) {
569
+ // Integration point for Jest
570
+ this.logger.info('Running Jest tests', options);
571
+ return {
572
+ success: true,
573
+ numTotalTests: 10,
574
+ numPassedTests: 9,
575
+ numFailedTests: 1,
576
+ numPendingTests: 0,
577
+ coverage: {
578
+ statements: 85,
579
+ branches: 80,
580
+ functions: 90,
581
+ lines: 85
582
+ },
583
+ testResults: []
584
+ };
585
+ }
586
+ async runPlaywrightTests(options) {
587
+ // Integration point for Playwright
588
+ this.logger.info('Running Playwright tests', options);
589
+ return {
590
+ browser: options.browser,
591
+ success: true,
592
+ tests: {
593
+ total: 5,
594
+ passed: 5,
595
+ failed: 0,
596
+ skipped: 0
597
+ },
598
+ failures: []
599
+ };
600
+ }
601
+ aggregateBrowserResults(results) {
602
+ return {
603
+ allPassed: results.every((r)=>r.success),
604
+ tests: {
605
+ total: results.reduce((sum, r)=>sum + r.tests.total, 0),
606
+ passed: results.reduce((sum, r)=>sum + r.tests.passed, 0),
607
+ failed: results.reduce((sum, r)=>sum + r.tests.failed, 0),
608
+ skipped: results.reduce((sum, r)=>sum + r.tests.skipped, 0)
609
+ },
610
+ failures: results.flatMap((r)=>r.failures)
611
+ };
612
+ }
613
+ async setupIntegrationEnvironment(strategy) {
614
+ this.logger.info('Setting up integration environment', {
615
+ strategy
616
+ });
617
+ }
618
+ async teardownIntegrationEnvironment() {
619
+ this.logger.info('Tearing down integration environment');
620
+ }
621
+ async captureScreenshots(suite) {
622
+ this.logger.info('Capturing screenshots', {
623
+ suite: suite.name
624
+ });
625
+ return suite.files.map((f)=>`screenshots/${f}.png`);
626
+ }
627
+ async compareWithBaselines(screenshots) {
628
+ this.logger.info('Comparing screenshots with baselines');
629
+ return screenshots.map((s)=>({
630
+ baseline: `baselines/${s}`,
631
+ current: s,
632
+ diff: `diffs/${s}`,
633
+ similarity: 0.99,
634
+ diffPixels: 100,
635
+ totalPixels: 1000000,
636
+ passed: true
637
+ }));
638
+ }
639
+ async runAccessibilityAudit(options) {
640
+ this.logger.info('Running accessibility audit', options);
641
+ return {
642
+ violations: [],
643
+ passes: 20,
644
+ incomplete: 0,
645
+ inapplicable: 5,
646
+ score: 100
647
+ };
648
+ }
649
+ sleep(ms) {
650
+ return new Promise((resolve)=>setTimeout(resolve, ms));
651
+ }
652
+ }
653
+
654
+ //# sourceMappingURL=frontend-test-orchestrator.js.map