claude-flow-novice 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1334) hide show
  1. package/.claude/agents/MIGRATION_SUMMARY.md +222 -0
  2. package/.claude/agents/README.md +89 -0
  3. package/.claude/agents/analysis/code-analyzer.md +209 -0
  4. package/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  6. package/.claude/agents/base-template-generator.md +42 -0
  7. package/.claude/agents/consensus/README.md +253 -0
  8. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  9. package/.claude/agents/consensus/consensus-builder.md +242 -0
  10. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  11. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  12. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  13. package/.claude/agents/consensus/quorum-manager.md +823 -0
  14. package/.claude/agents/consensus/raft-manager.md +63 -0
  15. package/.claude/agents/consensus/security-manager.md +622 -0
  16. package/.claude/agents/core/coder.md +211 -0
  17. package/.claude/agents/core/planner.md +116 -0
  18. package/.claude/agents/core/researcher.md +136 -0
  19. package/.claude/agents/core/reviewer.md +272 -0
  20. package/.claude/agents/core/tester.md +266 -0
  21. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  22. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  23. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  24. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  25. package/.claude/agents/flow-nexus/app-store.md +88 -0
  26. package/.claude/agents/flow-nexus/authentication.md +69 -0
  27. package/.claude/agents/flow-nexus/challenges.md +81 -0
  28. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  29. package/.claude/agents/flow-nexus/payments.md +83 -0
  30. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  31. package/.claude/agents/flow-nexus/swarm.md +76 -0
  32. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  33. package/.claude/agents/flow-nexus/workflow.md +84 -0
  34. package/.claude/agents/github/code-review-swarm.md +538 -0
  35. package/.claude/agents/github/github-modes.md +173 -0
  36. package/.claude/agents/github/issue-tracker.md +319 -0
  37. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  38. package/.claude/agents/github/pr-manager.md +191 -0
  39. package/.claude/agents/github/project-board-sync.md +509 -0
  40. package/.claude/agents/github/release-manager.md +367 -0
  41. package/.claude/agents/github/release-swarm.md +583 -0
  42. package/.claude/agents/github/repo-architect.md +398 -0
  43. package/.claude/agents/github/swarm-issue.md +573 -0
  44. package/.claude/agents/github/swarm-pr.md +428 -0
  45. package/.claude/agents/github/sync-coordinator.md +452 -0
  46. package/.claude/agents/github/workflow-automation.md +635 -0
  47. package/.claude/agents/goal/goal-planner.md +73 -0
  48. package/.claude/agents/neural/safla-neural.md +74 -0
  49. package/.claude/agents/optimization/README.md +250 -0
  50. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  51. package/.claude/agents/optimization/load-balancer.md +431 -0
  52. package/.claude/agents/optimization/performance-monitor.md +672 -0
  53. package/.claude/agents/optimization/resource-allocator.md +674 -0
  54. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  55. package/.claude/agents/sparc/architecture.md +472 -0
  56. package/.claude/agents/sparc/pseudocode.md +318 -0
  57. package/.claude/agents/sparc/refinement.md +525 -0
  58. package/.claude/agents/sparc/specification.md +276 -0
  59. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  60. package/.claude/agents/sublinear/consciousness-evolution-agent.md +499 -0
  61. package/.claude/agents/sublinear/matrix-solver-agent.md +113 -0
  62. package/.claude/agents/sublinear/nanosecond-scheduler-agent.md +644 -0
  63. package/.claude/agents/sublinear/pagerank-agent.md +699 -0
  64. package/.claude/agents/sublinear/phi-calculator-agent.md +749 -0
  65. package/.claude/agents/sublinear/psycho-symbolic-agent.md +543 -0
  66. package/.claude/agents/sublinear/sublinear.md +816 -0
  67. package/.claude/agents/sublinear/temporal-advantage-agent.md +360 -0
  68. package/.claude/agents/swarm/README.md +190 -0
  69. package/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  70. package/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  71. package/.claude/agents/swarm/mesh-coordinator.md +435 -0
  72. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  73. package/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  74. package/.claude/agents/templates/github-pr-manager.md +177 -0
  75. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  76. package/.claude/agents/templates/memory-coordinator.md +187 -0
  77. package/.claude/agents/templates/migration-plan.md +746 -0
  78. package/.claude/agents/templates/orchestrator-task.md +139 -0
  79. package/.claude/agents/templates/performance-analyzer.md +199 -0
  80. package/.claude/agents/templates/sparc-coordinator.md +183 -0
  81. package/.claude/agents/testing/e2e/playwright-agent.md +249 -0
  82. package/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  83. package/.claude/agents/testing/validation/production-validator.md +395 -0
  84. package/.claude/commands/agents/README.md +10 -0
  85. package/.claude/commands/agents/agent-capabilities.md +21 -0
  86. package/.claude/commands/agents/agent-coordination.md +28 -0
  87. package/.claude/commands/agents/agent-spawning.md +28 -0
  88. package/.claude/commands/agents/agent-types.md +26 -0
  89. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  90. package/.claude/commands/analysis/README.md +9 -0
  91. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  92. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  93. package/.claude/commands/analysis/performance-report.md +25 -0
  94. package/.claude/commands/analysis/token-efficiency.md +45 -0
  95. package/.claude/commands/analysis/token-usage.md +25 -0
  96. package/.claude/commands/automation/README.md +9 -0
  97. package/.claude/commands/automation/auto-agent.md +122 -0
  98. package/.claude/commands/automation/self-healing.md +106 -0
  99. package/.claude/commands/automation/session-memory.md +90 -0
  100. package/.claude/commands/automation/smart-agents.md +73 -0
  101. package/.claude/commands/automation/smart-spawn.md +25 -0
  102. package/.claude/commands/automation/workflow-select.md +25 -0
  103. package/.claude/commands/coordination/README.md +9 -0
  104. package/.claude/commands/coordination/agent-spawn.md +25 -0
  105. package/.claude/commands/coordination/init.md +44 -0
  106. package/.claude/commands/coordination/orchestrate.md +43 -0
  107. package/.claude/commands/coordination/spawn.md +45 -0
  108. package/.claude/commands/coordination/swarm-init.md +85 -0
  109. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  110. package/.claude/commands/flow-nexus/app-store.md +124 -0
  111. package/.claude/commands/flow-nexus/challenges.md +120 -0
  112. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  113. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  114. package/.claude/commands/flow-nexus/payments.md +116 -0
  115. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  116. package/.claude/commands/flow-nexus/swarm.md +87 -0
  117. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  118. package/.claude/commands/flow-nexus/workflow.md +115 -0
  119. package/.claude/commands/github/README.md +11 -0
  120. package/.claude/commands/github/code-review-swarm.md +514 -0
  121. package/.claude/commands/github/code-review.md +25 -0
  122. package/.claude/commands/github/github-modes.md +147 -0
  123. package/.claude/commands/github/github-swarm.md +121 -0
  124. package/.claude/commands/github/issue-tracker.md +292 -0
  125. package/.claude/commands/github/issue-triage.md +25 -0
  126. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  127. package/.claude/commands/github/pr-enhance.md +26 -0
  128. package/.claude/commands/github/pr-manager.md +170 -0
  129. package/.claude/commands/github/project-board-sync.md +471 -0
  130. package/.claude/commands/github/release-manager.md +338 -0
  131. package/.claude/commands/github/release-swarm.md +544 -0
  132. package/.claude/commands/github/repo-analyze.md +25 -0
  133. package/.claude/commands/github/repo-architect.md +367 -0
  134. package/.claude/commands/github/swarm-issue.md +482 -0
  135. package/.claude/commands/github/swarm-pr.md +285 -0
  136. package/.claude/commands/github/sync-coordinator.md +301 -0
  137. package/.claude/commands/github/workflow-automation.md +442 -0
  138. package/.claude/commands/hive-mind/README.md +17 -0
  139. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  140. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  141. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  142. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  143. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  144. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  145. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  146. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  147. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  148. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  149. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  150. package/.claude/commands/hooks/README.md +11 -0
  151. package/.claude/commands/hooks/overview.md +58 -0
  152. package/.claude/commands/hooks/post-edit.md +117 -0
  153. package/.claude/commands/hooks/post-task.md +112 -0
  154. package/.claude/commands/hooks/pre-edit.md +113 -0
  155. package/.claude/commands/hooks/pre-task.md +111 -0
  156. package/.claude/commands/hooks/session-end.md +118 -0
  157. package/.claude/commands/hooks/setup.md +103 -0
  158. package/.claude/commands/memory/README.md +9 -0
  159. package/.claude/commands/memory/memory-persist.md +25 -0
  160. package/.claude/commands/memory/memory-search.md +25 -0
  161. package/.claude/commands/memory/memory-usage.md +25 -0
  162. package/.claude/commands/memory/neural.md +47 -0
  163. package/.claude/commands/memory/usage.md +46 -0
  164. package/.claude/commands/monitoring/README.md +9 -0
  165. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  166. package/.claude/commands/monitoring/agents.md +44 -0
  167. package/.claude/commands/monitoring/real-time-view.md +25 -0
  168. package/.claude/commands/monitoring/status.md +46 -0
  169. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  170. package/.claude/commands/optimization/README.md +9 -0
  171. package/.claude/commands/optimization/auto-topology.md +62 -0
  172. package/.claude/commands/optimization/cache-manage.md +25 -0
  173. package/.claude/commands/optimization/parallel-execute.md +25 -0
  174. package/.claude/commands/optimization/parallel-execution.md +50 -0
  175. package/.claude/commands/optimization/topology-optimize.md +25 -0
  176. package/.claude/commands/pair/README.md +261 -0
  177. package/.claude/commands/pair/commands.md +546 -0
  178. package/.claude/commands/pair/config.md +510 -0
  179. package/.claude/commands/pair/examples.md +512 -0
  180. package/.claude/commands/pair/modes.md +348 -0
  181. package/.claude/commands/pair/session.md +407 -0
  182. package/.claude/commands/pair/start.md +209 -0
  183. package/.claude/commands/sparc/analyzer.md +52 -0
  184. package/.claude/commands/sparc/architect.md +53 -0
  185. package/.claude/commands/sparc/batch-executor.md +54 -0
  186. package/.claude/commands/sparc/coder.md +54 -0
  187. package/.claude/commands/sparc/debugger.md +54 -0
  188. package/.claude/commands/sparc/designer.md +53 -0
  189. package/.claude/commands/sparc/documenter.md +54 -0
  190. package/.claude/commands/sparc/innovator.md +54 -0
  191. package/.claude/commands/sparc/memory-manager.md +54 -0
  192. package/.claude/commands/sparc/optimizer.md +54 -0
  193. package/.claude/commands/sparc/orchestrator.md +132 -0
  194. package/.claude/commands/sparc/researcher.md +54 -0
  195. package/.claude/commands/sparc/reviewer.md +54 -0
  196. package/.claude/commands/sparc/sparc-modes.md +174 -0
  197. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  198. package/.claude/commands/sparc/tdd.md +54 -0
  199. package/.claude/commands/sparc/tester.md +54 -0
  200. package/.claude/commands/sparc/workflow-manager.md +54 -0
  201. package/.claude/commands/stream-chain/pipeline.md +121 -0
  202. package/.claude/commands/stream-chain/run.md +70 -0
  203. package/.claude/commands/swarm/README.md +15 -0
  204. package/.claude/commands/swarm/analysis.md +95 -0
  205. package/.claude/commands/swarm/development.md +96 -0
  206. package/.claude/commands/swarm/examples.md +168 -0
  207. package/.claude/commands/swarm/maintenance.md +102 -0
  208. package/.claude/commands/swarm/optimization.md +117 -0
  209. package/.claude/commands/swarm/research.md +136 -0
  210. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  211. package/.claude/commands/swarm/swarm-background.md +8 -0
  212. package/.claude/commands/swarm/swarm-init.md +19 -0
  213. package/.claude/commands/swarm/swarm-modes.md +8 -0
  214. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  215. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  216. package/.claude/commands/swarm/swarm-status.md +8 -0
  217. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  218. package/.claude/commands/swarm/swarm.md +27 -0
  219. package/.claude/commands/swarm/testing.md +131 -0
  220. package/.claude/commands/testing/playwright-e2e.md +288 -0
  221. package/.claude/commands/training/README.md +9 -0
  222. package/.claude/commands/training/model-update.md +25 -0
  223. package/.claude/commands/training/neural-patterns.md +74 -0
  224. package/.claude/commands/training/neural-train.md +25 -0
  225. package/.claude/commands/training/pattern-learn.md +25 -0
  226. package/.claude/commands/training/specialization.md +63 -0
  227. package/.claude/commands/truth/start.md +143 -0
  228. package/.claude/commands/verify/check.md +50 -0
  229. package/.claude/commands/verify/start.md +128 -0
  230. package/.claude/commands/workflows/README.md +9 -0
  231. package/.claude/commands/workflows/development.md +78 -0
  232. package/.claude/commands/workflows/research.md +63 -0
  233. package/.claude/commands/workflows/workflow-create.md +25 -0
  234. package/.claude/commands/workflows/workflow-execute.md +25 -0
  235. package/.claude/commands/workflows/workflow-export.md +25 -0
  236. package/.claude/helpers/checkpoint-manager.sh +251 -0
  237. package/.claude/helpers/github-safe.js +106 -0
  238. package/.claude/helpers/github-setup.sh +28 -0
  239. package/.claude/helpers/quick-start.sh +19 -0
  240. package/.claude/helpers/setup-mcp.sh +18 -0
  241. package/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
  242. package/.claude/settings.json +112 -0
  243. package/.claude/settings.local.json +10 -0
  244. package/CHANGELOG.md +1517 -0
  245. package/LICENSE +21 -0
  246. package/README.md +338 -0
  247. package/dist/src/adapters/cliffy-node.js +70 -0
  248. package/dist/src/adapters/cliffy-node.js.map +1 -0
  249. package/dist/src/agents/agent-loader.js +208 -0
  250. package/dist/src/agents/agent-loader.js.map +1 -0
  251. package/dist/src/agents/agent-manager.js +1786 -0
  252. package/dist/src/agents/agent-manager.js.map +1 -0
  253. package/dist/src/agents/agent-registry.js +356 -0
  254. package/dist/src/agents/agent-registry.js.map +1 -0
  255. package/dist/src/agents/agent-validator.js +273 -0
  256. package/dist/src/agents/agent-validator.js.map +1 -0
  257. package/dist/src/agents/github/agent-factory.js +553 -0
  258. package/dist/src/agents/github/agent-factory.js.map +1 -0
  259. package/dist/src/agents/github/compatibility/legacy-agent-mappings.js +307 -0
  260. package/dist/src/agents/github/compatibility/legacy-agent-mappings.js.map +1 -0
  261. package/dist/src/agents/github/compatibility/legacy-agent-proxy.js +334 -0
  262. package/dist/src/agents/github/compatibility/legacy-agent-proxy.js.map +1 -0
  263. package/dist/src/agents/github/core/github-collaboration-manager.js +796 -0
  264. package/dist/src/agents/github/core/github-collaboration-manager.js.map +1 -0
  265. package/dist/src/agents/github/core/github-integration-manager.js +546 -0
  266. package/dist/src/agents/github/core/github-integration-manager.js.map +1 -0
  267. package/dist/src/agents/github/core/github-release-coordinator.js +718 -0
  268. package/dist/src/agents/github/core/github-release-coordinator.js.map +1 -0
  269. package/dist/src/agents/github/index.js +68 -0
  270. package/dist/src/agents/github/index.js.map +1 -0
  271. package/dist/src/agents/github/types/index.js +6 -0
  272. package/dist/src/agents/github/types/index.js.map +1 -0
  273. package/dist/src/agents/github/utils/error-handling.js +496 -0
  274. package/dist/src/agents/github/utils/error-handling.js.map +1 -0
  275. package/dist/src/agents/github/utils/github-client.js +158 -0
  276. package/dist/src/agents/github/utils/github-client.js.map +1 -0
  277. package/dist/src/agents/github/utils/hook-integration.js +450 -0
  278. package/dist/src/agents/github/utils/hook-integration.js.map +1 -0
  279. package/dist/src/agents/github/utils/performance-optimizer.js +501 -0
  280. package/dist/src/agents/github/utils/performance-optimizer.js.map +1 -0
  281. package/dist/src/agents/hierarchical-coordinator.js +775 -0
  282. package/dist/src/agents/hierarchical-coordinator.js.map +1 -0
  283. package/dist/src/agents/lifecycle-manager.js +613 -0
  284. package/dist/src/agents/lifecycle-manager.js.map +1 -0
  285. package/dist/src/agents/mesh-coordinator.js +580 -0
  286. package/dist/src/agents/mesh-coordinator.js.map +1 -0
  287. package/dist/src/agents/simple-agent.js +89 -0
  288. package/dist/src/agents/simple-agent.js.map +1 -0
  289. package/dist/src/agents/task-agent-integration.js +240 -0
  290. package/dist/src/agents/task-agent-integration.js.map +1 -0
  291. package/dist/src/api/auth-service.js +474 -0
  292. package/dist/src/api/auth-service.js.map +1 -0
  293. package/dist/src/api/claude-api-errors.js +171 -0
  294. package/dist/src/api/claude-api-errors.js.map +1 -0
  295. package/dist/src/api/claude-client-enhanced.js +473 -0
  296. package/dist/src/api/claude-client-enhanced.js.map +1 -0
  297. package/dist/src/api/claude-client.js +527 -0
  298. package/dist/src/api/claude-client.js.map +1 -0
  299. package/dist/src/api/database-service.js +666 -0
  300. package/dist/src/api/database-service.js.map +1 -0
  301. package/dist/src/api/swarm-api.js +585 -0
  302. package/dist/src/api/swarm-api.js.map +1 -0
  303. package/dist/src/automation/test-pipeline/E2ETestGenerator.js +448 -0
  304. package/dist/src/automation/test-pipeline/E2ETestGenerator.js.map +1 -0
  305. package/dist/src/automation/test-pipeline/PerformanceMonitor.js +572 -0
  306. package/dist/src/automation/test-pipeline/PerformanceMonitor.js.map +1 -0
  307. package/dist/src/automation/test-pipeline/PipelineValidator.js +654 -0
  308. package/dist/src/automation/test-pipeline/PipelineValidator.js.map +1 -0
  309. package/dist/src/automation/test-pipeline/RegressionTestManager.js +545 -0
  310. package/dist/src/automation/test-pipeline/RegressionTestManager.js.map +1 -0
  311. package/dist/src/automation/test-pipeline/SwarmTestCoordinator.js +450 -0
  312. package/dist/src/automation/test-pipeline/SwarmTestCoordinator.js.map +1 -0
  313. package/dist/src/automation/test-pipeline/TestDataManager.js +708 -0
  314. package/dist/src/automation/test-pipeline/TestDataManager.js.map +1 -0
  315. package/dist/src/automation/test-pipeline/TestReportingSystem.js +527 -0
  316. package/dist/src/automation/test-pipeline/TestReportingSystem.js.map +1 -0
  317. package/dist/src/automation/test-pipeline/utils/chrome-mcp-integration.js +353 -0
  318. package/dist/src/automation/test-pipeline/utils/chrome-mcp-integration.js.map +1 -0
  319. package/dist/src/automation/test-pipeline/utils/swarm-coordinator.js +448 -0
  320. package/dist/src/automation/test-pipeline/utils/swarm-coordinator.js.map +1 -0
  321. package/dist/src/ci-cd/deployment-orchestrator.js +477 -0
  322. package/dist/src/ci-cd/deployment-orchestrator.js.map +1 -0
  323. package/dist/src/ci-cd/github-actions-templates.js +972 -0
  324. package/dist/src/ci-cd/github-actions-templates.js.map +1 -0
  325. package/dist/src/ci-cd/performance/PerformanceGate.js +383 -0
  326. package/dist/src/ci-cd/performance/PerformanceGate.js.map +1 -0
  327. package/dist/src/cli/agents/analyst.js +788 -0
  328. package/dist/src/cli/agents/analyst.js.map +1 -0
  329. package/dist/src/cli/agents/architect.js +846 -0
  330. package/dist/src/cli/agents/architect.js.map +1 -0
  331. package/dist/src/cli/agents/base-agent.js +437 -0
  332. package/dist/src/cli/agents/base-agent.js.map +1 -0
  333. package/dist/src/cli/agents/capabilities.js +701 -0
  334. package/dist/src/cli/agents/capabilities.js.map +1 -0
  335. package/dist/src/cli/agents/coder.js +936 -0
  336. package/dist/src/cli/agents/coder.js.map +1 -0
  337. package/dist/src/cli/agents/coordinator.js +489 -0
  338. package/dist/src/cli/agents/coordinator.js.map +1 -0
  339. package/dist/src/cli/agents/hive-agents.js +708 -0
  340. package/dist/src/cli/agents/hive-agents.js.map +1 -0
  341. package/dist/src/cli/agents/index.js +299 -0
  342. package/dist/src/cli/agents/index.js.map +1 -0
  343. package/dist/src/cli/agents/researcher.js +388 -0
  344. package/dist/src/cli/agents/researcher.js.map +1 -0
  345. package/dist/src/cli/agents/tester.js +634 -0
  346. package/dist/src/cli/agents/tester.js.map +1 -0
  347. package/dist/src/cli/cli-core.js +264 -0
  348. package/dist/src/cli/cli-core.js.map +1 -0
  349. package/dist/src/cli/commands/advanced-memory-commands.js +834 -0
  350. package/dist/src/cli/commands/advanced-memory-commands.js.map +1 -0
  351. package/dist/src/cli/commands/agent-simple.js +346 -0
  352. package/dist/src/cli/commands/agent-simple.js.map +1 -0
  353. package/dist/src/cli/commands/agent.js +368 -0
  354. package/dist/src/cli/commands/agent.js.map +1 -0
  355. package/dist/src/cli/commands/claude-api.js +237 -0
  356. package/dist/src/cli/commands/claude-api.js.map +1 -0
  357. package/dist/src/cli/commands/claude.js +132 -0
  358. package/dist/src/cli/commands/claude.js.map +1 -0
  359. package/dist/src/cli/commands/config-integration.js +395 -0
  360. package/dist/src/cli/commands/config-integration.js.map +1 -0
  361. package/dist/src/cli/commands/config.js +67 -0
  362. package/dist/src/cli/commands/config.js.map +1 -0
  363. package/dist/src/cli/commands/enterprise.js +1523 -0
  364. package/dist/src/cli/commands/enterprise.js.map +1 -0
  365. package/dist/src/cli/commands/goal-init.js +262 -0
  366. package/dist/src/cli/commands/goal-init.js.map +1 -0
  367. package/dist/src/cli/commands/help-new.js +276 -0
  368. package/dist/src/cli/commands/help-new.js.map +1 -0
  369. package/dist/src/cli/commands/help.js +1055 -0
  370. package/dist/src/cli/commands/help.js.map +1 -0
  371. package/dist/src/cli/commands/hive-mind/index.js +20 -0
  372. package/dist/src/cli/commands/hive-mind/index.js.map +1 -0
  373. package/dist/src/cli/commands/hive-mind/init.js +58 -0
  374. package/dist/src/cli/commands/hive-mind/init.js.map +1 -0
  375. package/dist/src/cli/commands/hive-mind/optimize-memory.js +362 -0
  376. package/dist/src/cli/commands/hive-mind/optimize-memory.js.map +1 -0
  377. package/dist/src/cli/commands/hive-mind/pause.js +73 -0
  378. package/dist/src/cli/commands/hive-mind/pause.js.map +1 -0
  379. package/dist/src/cli/commands/hive-mind/ps.js +104 -0
  380. package/dist/src/cli/commands/hive-mind/ps.js.map +1 -0
  381. package/dist/src/cli/commands/hive-mind/resume.js +56 -0
  382. package/dist/src/cli/commands/hive-mind/resume.js.map +1 -0
  383. package/dist/src/cli/commands/hive-mind/spawn.js +242 -0
  384. package/dist/src/cli/commands/hive-mind/spawn.js.map +1 -0
  385. package/dist/src/cli/commands/hive-mind/status.js +250 -0
  386. package/dist/src/cli/commands/hive-mind/status.js.map +1 -0
  387. package/dist/src/cli/commands/hive-mind/stop.js +116 -0
  388. package/dist/src/cli/commands/hive-mind/stop.js.map +1 -0
  389. package/dist/src/cli/commands/hive-mind/task.js +302 -0
  390. package/dist/src/cli/commands/hive-mind/task.js.map +1 -0
  391. package/dist/src/cli/commands/hive-mind/wizard.js +705 -0
  392. package/dist/src/cli/commands/hive-mind/wizard.js.map +1 -0
  393. package/dist/src/cli/commands/hive.js +506 -0
  394. package/dist/src/cli/commands/hive.js.map +1 -0
  395. package/dist/src/cli/commands/hook-types.js +5 -0
  396. package/dist/src/cli/commands/hook-types.js.map +1 -0
  397. package/dist/src/cli/commands/hook-validator.js +177 -0
  398. package/dist/src/cli/commands/hook-validator.js.map +1 -0
  399. package/dist/src/cli/commands/hook.js +303 -0
  400. package/dist/src/cli/commands/hook.js.map +1 -0
  401. package/dist/src/cli/commands/index.js +2745 -0
  402. package/dist/src/cli/commands/index.js.map +1 -0
  403. package/dist/src/cli/commands/maestro.js +242 -0
  404. package/dist/src/cli/commands/maestro.js.map +1 -0
  405. package/dist/src/cli/commands/mcp.js +148 -0
  406. package/dist/src/cli/commands/mcp.js.map +1 -0
  407. package/dist/src/cli/commands/memory.js +193 -0
  408. package/dist/src/cli/commands/memory.js.map +1 -0
  409. package/dist/src/cli/commands/migrate.js +107 -0
  410. package/dist/src/cli/commands/migrate.js.map +1 -0
  411. package/dist/src/cli/commands/monitor.js +574 -0
  412. package/dist/src/cli/commands/monitor.js.map +1 -0
  413. package/dist/src/cli/commands/neural-init.js +211 -0
  414. package/dist/src/cli/commands/neural-init.js.map +1 -0
  415. package/dist/src/cli/commands/ruv-swarm.js +555 -0
  416. package/dist/src/cli/commands/ruv-swarm.js.map +1 -0
  417. package/dist/src/cli/commands/session.js +517 -0
  418. package/dist/src/cli/commands/session.js.map +1 -0
  419. package/dist/src/cli/commands/sparc.js +486 -0
  420. package/dist/src/cli/commands/sparc.js.map +1 -0
  421. package/dist/src/cli/commands/start/event-emitter.js +35 -0
  422. package/dist/src/cli/commands/start/event-emitter.js.map +1 -0
  423. package/dist/src/cli/commands/start/index.js +9 -0
  424. package/dist/src/cli/commands/start/index.js.map +1 -0
  425. package/dist/src/cli/commands/start/process-manager.js +294 -0
  426. package/dist/src/cli/commands/start/process-manager.js.map +1 -0
  427. package/dist/src/cli/commands/start/process-ui-simple.js +322 -0
  428. package/dist/src/cli/commands/start/process-ui-simple.js.map +1 -0
  429. package/dist/src/cli/commands/start/process-ui.js +5 -0
  430. package/dist/src/cli/commands/start/process-ui.js.map +1 -0
  431. package/dist/src/cli/commands/start/start-command.js +463 -0
  432. package/dist/src/cli/commands/start/start-command.js.map +1 -0
  433. package/dist/src/cli/commands/start/system-monitor.js +268 -0
  434. package/dist/src/cli/commands/start/system-monitor.js.map +1 -0
  435. package/dist/src/cli/commands/start/types.js +22 -0
  436. package/dist/src/cli/commands/start/types.js.map +1 -0
  437. package/dist/src/cli/commands/start.js +6 -0
  438. package/dist/src/cli/commands/start.js.map +1 -0
  439. package/dist/src/cli/commands/status.js +328 -0
  440. package/dist/src/cli/commands/status.js.map +1 -0
  441. package/dist/src/cli/commands/swarm-spawn.js +56 -0
  442. package/dist/src/cli/commands/swarm-spawn.js.map +1 -0
  443. package/dist/src/cli/commands/swarm.js +567 -0
  444. package/dist/src/cli/commands/swarm.js.map +1 -0
  445. package/dist/src/cli/commands/task.js +44 -0
  446. package/dist/src/cli/commands/task.js.map +1 -0
  447. package/dist/src/cli/commands/validate-integration.js +122 -0
  448. package/dist/src/cli/commands/validate-integration.js.map +1 -0
  449. package/dist/src/cli/commands/verification.js +351 -0
  450. package/dist/src/cli/commands/verification.js.map +1 -0
  451. package/dist/src/cli/commands/workflow.js +615 -0
  452. package/dist/src/cli/commands/workflow.js.map +1 -0
  453. package/dist/src/cli/completion.js +578 -0
  454. package/dist/src/cli/completion.js.map +1 -0
  455. package/dist/src/cli/consolidated/ConsolidatedCLI.js +379 -0
  456. package/dist/src/cli/consolidated/ConsolidatedCLI.js.map +1 -0
  457. package/dist/src/cli/consolidated/core/CommandHandlers.js +833 -0
  458. package/dist/src/cli/consolidated/core/CommandHandlers.js.map +1 -0
  459. package/dist/src/cli/consolidated/core/TierManager.js +291 -0
  460. package/dist/src/cli/consolidated/core/TierManager.js.map +1 -0
  461. package/dist/src/cli/consolidated/help/InteractiveHelp.js +714 -0
  462. package/dist/src/cli/consolidated/help/InteractiveHelp.js.map +1 -0
  463. package/dist/src/cli/consolidated/index.js +62 -0
  464. package/dist/src/cli/consolidated/index.js.map +1 -0
  465. package/dist/src/cli/consolidated/intelligence/IntelligenceEngine.js +457 -0
  466. package/dist/src/cli/consolidated/intelligence/IntelligenceEngine.js.map +1 -0
  467. package/dist/src/cli/consolidated/routing/CommandRouter.js +526 -0
  468. package/dist/src/cli/consolidated/routing/CommandRouter.js.map +1 -0
  469. package/dist/src/cli/consolidated/utils/IntelligentDefaults.js +729 -0
  470. package/dist/src/cli/consolidated/utils/IntelligentDefaults.js.map +1 -0
  471. package/dist/src/cli/consolidated/utils/PerformanceOptimizer.js +416 -0
  472. package/dist/src/cli/consolidated/utils/PerformanceOptimizer.js.map +1 -0
  473. package/dist/src/cli/formatter.js +284 -0
  474. package/dist/src/cli/formatter.js.map +1 -0
  475. package/dist/src/cli/help-formatter.js +111 -0
  476. package/dist/src/cli/help-formatter.js.map +1 -0
  477. package/dist/src/cli/index-remote.js +125 -0
  478. package/dist/src/cli/index-remote.js.map +1 -0
  479. package/dist/src/cli/index.js +159 -0
  480. package/dist/src/cli/index.js.map +1 -0
  481. package/dist/src/cli/init/batch-tools.js +388 -0
  482. package/dist/src/cli/init/batch-tools.js.map +1 -0
  483. package/dist/src/cli/init/claude-config.js +401 -0
  484. package/dist/src/cli/init/claude-config.js.map +1 -0
  485. package/dist/src/cli/init/directory-structure.js +146 -0
  486. package/dist/src/cli/init/directory-structure.js.map +1 -0
  487. package/dist/src/cli/init/index.js +52 -0
  488. package/dist/src/cli/init/index.js.map +1 -0
  489. package/dist/src/cli/init/sparc-environment.js +543 -0
  490. package/dist/src/cli/init/sparc-environment.js.map +1 -0
  491. package/dist/src/cli/init/swarm-commands.js +796 -0
  492. package/dist/src/cli/init/swarm-commands.js.map +1 -0
  493. package/dist/src/cli/init/utils.js +15 -0
  494. package/dist/src/cli/init/utils.js.map +1 -0
  495. package/dist/src/cli/maestro-cli-bridge.js +426 -0
  496. package/dist/src/cli/maestro-cli-bridge.js.map +1 -0
  497. package/dist/src/cli/main.js +26 -0
  498. package/dist/src/cli/main.js.map +1 -0
  499. package/dist/src/cli/node-repl.js +652 -0
  500. package/dist/src/cli/node-repl.js.map +1 -0
  501. package/dist/src/cli/repl.js +1078 -0
  502. package/dist/src/cli/repl.js.map +1 -0
  503. package/dist/src/cli/simple-cli.js +3026 -0
  504. package/dist/src/cli/simple-cli.js.map +1 -0
  505. package/dist/src/cli/simple-mcp.js +87 -0
  506. package/dist/src/cli/simple-mcp.js.map +1 -0
  507. package/dist/src/cli/simple-orchestrator.js +857 -0
  508. package/dist/src/cli/simple-orchestrator.js.map +1 -0
  509. package/dist/src/cli/ui/compatible-ui.js +322 -0
  510. package/dist/src/cli/ui/compatible-ui.js.map +1 -0
  511. package/dist/src/cli/ui/fallback-handler.js +156 -0
  512. package/dist/src/cli/ui/fallback-handler.js.map +1 -0
  513. package/dist/src/cli/ui/index.js +32 -0
  514. package/dist/src/cli/ui/index.js.map +1 -0
  515. package/dist/src/cli/utils/environment-detector.js +228 -0
  516. package/dist/src/cli/utils/environment-detector.js.map +1 -0
  517. package/dist/src/cli/utils/prompt-defaults.js +234 -0
  518. package/dist/src/cli/utils/prompt-defaults.js.map +1 -0
  519. package/dist/src/cli/validation-helper.js +66 -0
  520. package/dist/src/cli/validation-helper.js.map +1 -0
  521. package/dist/src/communication/message-bus.js +1007 -0
  522. package/dist/src/communication/message-bus.js.map +1 -0
  523. package/dist/src/communication/reliable-communication-manager.js +374 -0
  524. package/dist/src/communication/reliable-communication-manager.js.map +1 -0
  525. package/dist/src/config/ai/decision-tree-generator.js +763 -0
  526. package/dist/src/config/ai/decision-tree-generator.js.map +1 -0
  527. package/dist/src/config/ai/project-detection-engine.js +1081 -0
  528. package/dist/src/config/ai/project-detection-engine.js.map +1 -0
  529. package/dist/src/config/config-manager.js +1285 -0
  530. package/dist/src/config/config-manager.js.map +1 -0
  531. package/dist/src/config/consent-manager.js +433 -0
  532. package/dist/src/config/consent-manager.js.map +1 -0
  533. package/dist/src/config/core/intelligent-configuration-manager.js +674 -0
  534. package/dist/src/config/core/intelligent-configuration-manager.js.map +1 -0
  535. package/dist/src/config/index.js +110 -0
  536. package/dist/src/config/index.js.map +1 -0
  537. package/dist/src/config/integration/hooks-integration.js +548 -0
  538. package/dist/src/config/integration/hooks-integration.js.map +1 -0
  539. package/dist/src/config/migration/config-migration.js +285 -0
  540. package/dist/src/config/migration/config-migration.js.map +1 -0
  541. package/dist/src/config/migration/version-migration-engine.js +984 -0
  542. package/dist/src/config/migration/version-migration-engine.js.map +1 -0
  543. package/dist/src/config/migration-manager.js +529 -0
  544. package/dist/src/config/migration-manager.js.map +1 -0
  545. package/dist/src/config/ruv-swarm-config.js +332 -0
  546. package/dist/src/config/ruv-swarm-config.js.map +1 -0
  547. package/dist/src/config/ruv-swarm-integration.js +285 -0
  548. package/dist/src/config/ruv-swarm-integration.js.map +1 -0
  549. package/dist/src/config/storage/multi-tier-storage.js +626 -0
  550. package/dist/src/config/storage/multi-tier-storage.js.map +1 -0
  551. package/dist/src/config/test-migration-fixer.js +332 -0
  552. package/dist/src/config/test-migration-fixer.js.map +1 -0
  553. package/dist/src/config/ui/progressive-disclosure-engine.js +876 -0
  554. package/dist/src/config/ui/progressive-disclosure-engine.js.map +1 -0
  555. package/dist/src/config/utils/config-export-import.js +454 -0
  556. package/dist/src/config/utils/config-export-import.js.map +1 -0
  557. package/dist/src/config/utils/zero-config-setup.js +238 -0
  558. package/dist/src/config/utils/zero-config-setup.js.map +1 -0
  559. package/dist/src/config/validation/config-validator.js +462 -0
  560. package/dist/src/config/validation/config-validator.js.map +1 -0
  561. package/dist/src/config/web-portal-config.js +343 -0
  562. package/dist/src/config/web-portal-config.js.map +1 -0
  563. package/dist/src/config/zero-config-setup.js +294 -0
  564. package/dist/src/config/zero-config-setup.js.map +1 -0
  565. package/dist/src/constants/agent-types.js +51 -0
  566. package/dist/src/constants/agent-types.js.map +1 -0
  567. package/dist/src/coordination/advanced-scheduler.js +370 -0
  568. package/dist/src/coordination/advanced-scheduler.js.map +1 -0
  569. package/dist/src/coordination/advanced-task-executor.js +481 -0
  570. package/dist/src/coordination/advanced-task-executor.js.map +1 -0
  571. package/dist/src/coordination/background-executor.js +366 -0
  572. package/dist/src/coordination/background-executor.js.map +1 -0
  573. package/dist/src/coordination/circuit-breaker.js +286 -0
  574. package/dist/src/coordination/circuit-breaker.js.map +1 -0
  575. package/dist/src/coordination/conflict-resolution.js +348 -0
  576. package/dist/src/coordination/conflict-resolution.js.map +1 -0
  577. package/dist/src/coordination/dependency-graph.js +398 -0
  578. package/dist/src/coordination/dependency-graph.js.map +1 -0
  579. package/dist/src/coordination/hive-orchestrator.js +309 -0
  580. package/dist/src/coordination/hive-orchestrator.js.map +1 -0
  581. package/dist/src/coordination/hive-protocol.js +363 -0
  582. package/dist/src/coordination/hive-protocol.js.map +1 -0
  583. package/dist/src/coordination/index.js +21 -0
  584. package/dist/src/coordination/index.js.map +1 -0
  585. package/dist/src/coordination/load-balancer.js +737 -0
  586. package/dist/src/coordination/load-balancer.js.map +1 -0
  587. package/dist/src/coordination/manager.js +360 -0
  588. package/dist/src/coordination/manager.js.map +1 -0
  589. package/dist/src/coordination/messaging.js +221 -0
  590. package/dist/src/coordination/messaging.js.map +1 -0
  591. package/dist/src/coordination/metrics.js +415 -0
  592. package/dist/src/coordination/metrics.js.map +1 -0
  593. package/dist/src/coordination/resources.js +276 -0
  594. package/dist/src/coordination/resources.js.map +1 -0
  595. package/dist/src/coordination/scheduler.js +322 -0
  596. package/dist/src/coordination/scheduler.js.map +1 -0
  597. package/dist/src/coordination/swarm-coordinator.js +585 -0
  598. package/dist/src/coordination/swarm-coordinator.js.map +1 -0
  599. package/dist/src/coordination/swarm-monitor.js +359 -0
  600. package/dist/src/coordination/swarm-monitor.js.map +1 -0
  601. package/dist/src/coordination/work-stealing.js +164 -0
  602. package/dist/src/coordination/work-stealing.js.map +1 -0
  603. package/dist/src/core/agent-manager.js +80 -0
  604. package/dist/src/core/agent-manager.js.map +1 -0
  605. package/dist/src/core/config.js +1221 -0
  606. package/dist/src/core/config.js.map +1 -0
  607. package/dist/src/core/event-bus.js +136 -0
  608. package/dist/src/core/event-bus.js.map +1 -0
  609. package/dist/src/core/index.js +6 -0
  610. package/dist/src/core/index.js.map +1 -0
  611. package/dist/src/core/json-persistence.js +112 -0
  612. package/dist/src/core/json-persistence.js.map +1 -0
  613. package/dist/src/core/logger.js +245 -0
  614. package/dist/src/core/logger.js.map +1 -0
  615. package/dist/src/core/orchestrator-fixed.js +236 -0
  616. package/dist/src/core/orchestrator-fixed.js.map +1 -0
  617. package/dist/src/core/orchestrator.js +1136 -0
  618. package/dist/src/core/orchestrator.js.map +1 -0
  619. package/dist/src/core/persistence.js +185 -0
  620. package/dist/src/core/persistence.js.map +1 -0
  621. package/dist/src/core/project-manager.js +80 -0
  622. package/dist/src/core/project-manager.js.map +1 -0
  623. package/dist/src/core/version.js +35 -0
  624. package/dist/src/core/version.js.map +1 -0
  625. package/dist/src/crdt/types.js +509 -0
  626. package/dist/src/crdt/types.js.map +1 -0
  627. package/dist/src/enterprise/analytics-manager.js +1133 -0
  628. package/dist/src/enterprise/analytics-manager.js.map +1 -0
  629. package/dist/src/enterprise/audit-manager.js +1112 -0
  630. package/dist/src/enterprise/audit-manager.js.map +1 -0
  631. package/dist/src/enterprise/cloud-manager.js +886 -0
  632. package/dist/src/enterprise/cloud-manager.js.map +1 -0
  633. package/dist/src/enterprise/deployment-manager.js +963 -0
  634. package/dist/src/enterprise/deployment-manager.js.map +1 -0
  635. package/dist/src/enterprise/index.js +8 -0
  636. package/dist/src/enterprise/index.js.map +1 -0
  637. package/dist/src/enterprise/project-manager.js +577 -0
  638. package/dist/src/enterprise/project-manager.js.map +1 -0
  639. package/dist/src/enterprise/security-manager.js +987 -0
  640. package/dist/src/enterprise/security-manager.js.map +1 -0
  641. package/dist/src/feature-flags/cli/Phase4CLI.js +463 -0
  642. package/dist/src/feature-flags/cli/Phase4CLI.js.map +1 -0
  643. package/dist/src/feature-flags/core/FeatureFlagManager.js +324 -0
  644. package/dist/src/feature-flags/core/FeatureFlagManager.js.map +1 -0
  645. package/dist/src/feature-flags/index.js +237 -0
  646. package/dist/src/feature-flags/index.js.map +1 -0
  647. package/dist/src/feature-flags/monitoring/RolloutMonitor.js +275 -0
  648. package/dist/src/feature-flags/monitoring/RolloutMonitor.js.map +1 -0
  649. package/dist/src/feature-flags/rollout/RolloutController.js +301 -0
  650. package/dist/src/feature-flags/rollout/RolloutController.js.map +1 -0
  651. package/dist/src/feature-flags/validation/HookInterceptor.js +310 -0
  652. package/dist/src/feature-flags/validation/HookInterceptor.js.map +1 -0
  653. package/dist/src/feature-flags/validation/TruthBasedValidator.js +263 -0
  654. package/dist/src/feature-flags/validation/TruthBasedValidator.js.map +1 -0
  655. package/dist/src/hive-mind/core/Agent.js +569 -0
  656. package/dist/src/hive-mind/core/Agent.js.map +1 -0
  657. package/dist/src/hive-mind/core/Communication.js +411 -0
  658. package/dist/src/hive-mind/core/Communication.js.map +1 -0
  659. package/dist/src/hive-mind/core/DatabaseManager.js +599 -0
  660. package/dist/src/hive-mind/core/DatabaseManager.js.map +1 -0
  661. package/dist/src/hive-mind/core/HiveMind.js +575 -0
  662. package/dist/src/hive-mind/core/HiveMind.js.map +1 -0
  663. package/dist/src/hive-mind/core/Memory.js +1159 -0
  664. package/dist/src/hive-mind/core/Memory.js.map +1 -0
  665. package/dist/src/hive-mind/core/MemoryMonitor.js +525 -0
  666. package/dist/src/hive-mind/core/MemoryMonitor.js.map +1 -0
  667. package/dist/src/hive-mind/core/Queen.js +753 -0
  668. package/dist/src/hive-mind/core/Queen.js.map +1 -0
  669. package/dist/src/hive-mind/index.js +21 -0
  670. package/dist/src/hive-mind/index.js.map +1 -0
  671. package/dist/src/hive-mind/integration/ConsensusEngine.js +460 -0
  672. package/dist/src/hive-mind/integration/ConsensusEngine.js.map +1 -0
  673. package/dist/src/hive-mind/integration/MCPToolWrapper.js +243 -0
  674. package/dist/src/hive-mind/integration/MCPToolWrapper.js.map +1 -0
  675. package/dist/src/hive-mind/integration/SwarmOrchestrator.js +812 -0
  676. package/dist/src/hive-mind/integration/SwarmOrchestrator.js.map +1 -0
  677. package/dist/src/hive-mind/types.js +9 -0
  678. package/dist/src/hive-mind/types.js.map +1 -0
  679. package/dist/src/hooks/index.js +197 -0
  680. package/dist/src/hooks/index.js.map +1 -0
  681. package/dist/src/index.js +11 -0
  682. package/dist/src/index.js.map +1 -0
  683. package/dist/src/integration/mock-components.js +362 -0
  684. package/dist/src/integration/mock-components.js.map +1 -0
  685. package/dist/src/integration/system-integration.js +428 -0
  686. package/dist/src/integration/system-integration.js.map +1 -0
  687. package/dist/src/integration/types.js +5 -0
  688. package/dist/src/integration/types.js.map +1 -0
  689. package/dist/src/lifecycle/communication-protocols.js +568 -0
  690. package/dist/src/lifecycle/communication-protocols.js.map +1 -0
  691. package/dist/src/lifecycle/dependency-tracker.js +799 -0
  692. package/dist/src/lifecycle/dependency-tracker.js.map +1 -0
  693. package/dist/src/lifecycle/memory-schema.js +622 -0
  694. package/dist/src/lifecycle/memory-schema.js.map +1 -0
  695. package/dist/src/maestro/maestro-swarm-coordinator.js +504 -0
  696. package/dist/src/maestro/maestro-swarm-coordinator.js.map +1 -0
  697. package/dist/src/maestro/maestro-types.js +3 -0
  698. package/dist/src/maestro/maestro-types.js.map +1 -0
  699. package/dist/src/maestro/tests/native-hive-mind-integration.test.js +382 -0
  700. package/dist/src/maestro/tests/native-hive-mind-integration.test.js.map +1 -0
  701. package/dist/src/mcp/auth.js +347 -0
  702. package/dist/src/mcp/auth.js.map +1 -0
  703. package/dist/src/mcp/claude-code-wrapper.js +717 -0
  704. package/dist/src/mcp/claude-code-wrapper.js.map +1 -0
  705. package/dist/src/mcp/claude-flow-tools.js +1365 -0
  706. package/dist/src/mcp/claude-flow-tools.js.map +1 -0
  707. package/dist/src/mcp/client.js +201 -0
  708. package/dist/src/mcp/client.js.map +1 -0
  709. package/dist/src/mcp/index.js +192 -0
  710. package/dist/src/mcp/index.js.map +1 -0
  711. package/dist/src/mcp/integrate-wrapper.js +85 -0
  712. package/dist/src/mcp/integrate-wrapper.js.map +1 -0
  713. package/dist/src/mcp/lifecycle-manager.js +348 -0
  714. package/dist/src/mcp/lifecycle-manager.js.map +1 -0
  715. package/dist/src/mcp/load-balancer.js +386 -0
  716. package/dist/src/mcp/load-balancer.js.map +1 -0
  717. package/dist/src/mcp/orchestration-integration.js +800 -0
  718. package/dist/src/mcp/orchestration-integration.js.map +1 -0
  719. package/dist/src/mcp/performance-monitor.js +489 -0
  720. package/dist/src/mcp/performance-monitor.js.map +1 -0
  721. package/dist/src/mcp/protocol-manager.js +376 -0
  722. package/dist/src/mcp/protocol-manager.js.map +1 -0
  723. package/dist/src/mcp/recovery/connection-health-monitor.js +240 -0
  724. package/dist/src/mcp/recovery/connection-health-monitor.js.map +1 -0
  725. package/dist/src/mcp/recovery/connection-state-manager.js +309 -0
  726. package/dist/src/mcp/recovery/connection-state-manager.js.map +1 -0
  727. package/dist/src/mcp/recovery/fallback-coordinator.js +288 -0
  728. package/dist/src/mcp/recovery/fallback-coordinator.js.map +1 -0
  729. package/dist/src/mcp/recovery/index.js +10 -0
  730. package/dist/src/mcp/recovery/index.js.map +1 -0
  731. package/dist/src/mcp/recovery/reconnection-manager.js +219 -0
  732. package/dist/src/mcp/recovery/reconnection-manager.js.map +1 -0
  733. package/dist/src/mcp/recovery/recovery-manager.js +262 -0
  734. package/dist/src/mcp/recovery/recovery-manager.js.map +1 -0
  735. package/dist/src/mcp/router.js +220 -0
  736. package/dist/src/mcp/router.js.map +1 -0
  737. package/dist/src/mcp/ruv-swarm-tools.js +671 -0
  738. package/dist/src/mcp/ruv-swarm-tools.js.map +1 -0
  739. package/dist/src/mcp/server-with-wrapper.js +32 -0
  740. package/dist/src/mcp/server-with-wrapper.js.map +1 -0
  741. package/dist/src/mcp/server-wrapper-mode.js +26 -0
  742. package/dist/src/mcp/server-wrapper-mode.js.map +1 -0
  743. package/dist/src/mcp/server.js +539 -0
  744. package/dist/src/mcp/server.js.map +1 -0
  745. package/dist/src/mcp/session-manager.js +338 -0
  746. package/dist/src/mcp/session-manager.js.map +1 -0
  747. package/dist/src/mcp/sparc-modes.js +455 -0
  748. package/dist/src/mcp/sparc-modes.js.map +1 -0
  749. package/dist/src/mcp/swarm-tools.js +903 -0
  750. package/dist/src/mcp/swarm-tools.js.map +1 -0
  751. package/dist/src/mcp/tests/mcp-integration.test.js +493 -0
  752. package/dist/src/mcp/tests/mcp-integration.test.js.map +1 -0
  753. package/dist/src/mcp/tools.js +426 -0
  754. package/dist/src/mcp/tools.js.map +1 -0
  755. package/dist/src/mcp/transports/base.js +5 -0
  756. package/dist/src/mcp/transports/base.js.map +1 -0
  757. package/dist/src/mcp/transports/http.js +414 -0
  758. package/dist/src/mcp/transports/http.js.map +1 -0
  759. package/dist/src/mcp/transports/stdio.js +217 -0
  760. package/dist/src/mcp/transports/stdio.js.map +1 -0
  761. package/dist/src/memory/advanced-memory-manager.js +1522 -0
  762. package/dist/src/memory/advanced-memory-manager.js.map +1 -0
  763. package/dist/src/memory/backends/base.js +5 -0
  764. package/dist/src/memory/backends/base.js.map +1 -0
  765. package/dist/src/memory/backends/markdown.js +235 -0
  766. package/dist/src/memory/backends/markdown.js.map +1 -0
  767. package/dist/src/memory/backends/sqlite.js +295 -0
  768. package/dist/src/memory/backends/sqlite.js.map +1 -0
  769. package/dist/src/memory/cache.js +177 -0
  770. package/dist/src/memory/cache.js.map +1 -0
  771. package/dist/src/memory/distributed-memory.js +745 -0
  772. package/dist/src/memory/distributed-memory.js.map +1 -0
  773. package/dist/src/memory/indexer.js +184 -0
  774. package/dist/src/memory/indexer.js.map +1 -0
  775. package/dist/src/memory/manager.js +457 -0
  776. package/dist/src/memory/manager.js.map +1 -0
  777. package/dist/src/memory/sqlite-enhanced-backend.js +529 -0
  778. package/dist/src/memory/sqlite-enhanced-backend.js.map +1 -0
  779. package/dist/src/memory/swarm-memory.js +446 -0
  780. package/dist/src/memory/swarm-memory.js.map +1 -0
  781. package/dist/src/migration/index.js +94 -0
  782. package/dist/src/migration/index.js.map +1 -0
  783. package/dist/src/migration/logger.js +110 -0
  784. package/dist/src/migration/logger.js.map +1 -0
  785. package/dist/src/migration/migration-analyzer.js +255 -0
  786. package/dist/src/migration/migration-analyzer.js.map +1 -0
  787. package/dist/src/migration/migration-runner.js +511 -0
  788. package/dist/src/migration/migration-runner.js.map +1 -0
  789. package/dist/src/migration/migration-validator.js +272 -0
  790. package/dist/src/migration/migration-validator.js.map +1 -0
  791. package/dist/src/migration/progress-reporter.js +139 -0
  792. package/dist/src/migration/progress-reporter.js.map +1 -0
  793. package/dist/src/migration/rollback-manager.js +310 -0
  794. package/dist/src/migration/rollback-manager.js.map +1 -0
  795. package/dist/src/migration/tests/migration-system.test.js +9 -0
  796. package/dist/src/migration/tests/migration-system.test.js.map +1 -0
  797. package/dist/src/migration/types.js +5 -0
  798. package/dist/src/migration/types.js.map +1 -0
  799. package/dist/src/monitoring/diagnostics.js +532 -0
  800. package/dist/src/monitoring/diagnostics.js.map +1 -0
  801. package/dist/src/monitoring/health-check.js +355 -0
  802. package/dist/src/monitoring/health-check.js.map +1 -0
  803. package/dist/src/monitoring/phase4/analytics/consensus-tracker.js +764 -0
  804. package/dist/src/monitoring/phase4/analytics/consensus-tracker.js.map +1 -0
  805. package/dist/src/monitoring/phase4/analytics/performance-assessor.js +859 -0
  806. package/dist/src/monitoring/phase4/analytics/performance-assessor.js.map +1 -0
  807. package/dist/src/monitoring/phase4/analytics/truth-score-analyzer.js +667 -0
  808. package/dist/src/monitoring/phase4/analytics/truth-score-analyzer.js.map +1 -0
  809. package/dist/src/monitoring/phase4/dashboard/monitoring-dashboard.js +1008 -0
  810. package/dist/src/monitoring/phase4/dashboard/monitoring-dashboard.js.map +1 -0
  811. package/dist/src/monitoring/phase4/rollout-decision-engine.js +849 -0
  812. package/dist/src/monitoring/phase4/rollout-decision-engine.js.map +1 -0
  813. package/dist/src/monitoring/real-time-feedback-system.js +688 -0
  814. package/dist/src/monitoring/real-time-feedback-system.js.map +1 -0
  815. package/dist/src/monitoring/real-time-monitor.js +981 -0
  816. package/dist/src/monitoring/real-time-monitor.js.map +1 -0
  817. package/dist/src/monitoring/regression/RegressionDetector.js +525 -0
  818. package/dist/src/monitoring/regression/RegressionDetector.js.map +1 -0
  819. package/dist/src/neural/NeuralDomainMapper.js +1137 -0
  820. package/dist/src/neural/NeuralDomainMapper.js.map +1 -0
  821. package/dist/src/neural/index.js +418 -0
  822. package/dist/src/neural/index.js.map +1 -0
  823. package/dist/src/neural/integration.js +590 -0
  824. package/dist/src/neural/integration.js.map +1 -0
  825. package/dist/src/providers/anthropic-provider.js +245 -0
  826. package/dist/src/providers/anthropic-provider.js.map +1 -0
  827. package/dist/src/providers/base-provider.js +389 -0
  828. package/dist/src/providers/base-provider.js.map +1 -0
  829. package/dist/src/providers/cohere-provider.js +405 -0
  830. package/dist/src/providers/cohere-provider.js.map +1 -0
  831. package/dist/src/providers/google-provider.js +376 -0
  832. package/dist/src/providers/google-provider.js.map +1 -0
  833. package/dist/src/providers/index.js +18 -0
  834. package/dist/src/providers/index.js.map +1 -0
  835. package/dist/src/providers/ollama-provider.js +400 -0
  836. package/dist/src/providers/ollama-provider.js.map +1 -0
  837. package/dist/src/providers/openai-provider.js +364 -0
  838. package/dist/src/providers/openai-provider.js.map +1 -0
  839. package/dist/src/providers/provider-manager.js +487 -0
  840. package/dist/src/providers/provider-manager.js.map +1 -0
  841. package/dist/src/providers/types.js +55 -0
  842. package/dist/src/providers/types.js.map +1 -0
  843. package/dist/src/providers/utils.js +343 -0
  844. package/dist/src/providers/utils.js.map +1 -0
  845. package/dist/src/quality-gates/automated-review-system.js +645 -0
  846. package/dist/src/quality-gates/automated-review-system.js.map +1 -0
  847. package/dist/src/resources/resource-manager.js +1275 -0
  848. package/dist/src/resources/resource-manager.js.map +1 -0
  849. package/dist/src/rollback/recovery-manager.js +1065 -0
  850. package/dist/src/rollback/recovery-manager.js.map +1 -0
  851. package/dist/src/services/agent-manager.js +308 -0
  852. package/dist/src/services/agent-manager.js.map +1 -0
  853. package/dist/src/services/agentic-flow-hooks/hook-manager.js +506 -0
  854. package/dist/src/services/agentic-flow-hooks/hook-manager.js.map +1 -0
  855. package/dist/src/services/agentic-flow-hooks/index.js +322 -0
  856. package/dist/src/services/agentic-flow-hooks/index.js.map +1 -0
  857. package/dist/src/services/agentic-flow-hooks/llm-hooks.js +445 -0
  858. package/dist/src/services/agentic-flow-hooks/llm-hooks.js.map +1 -0
  859. package/dist/src/services/agentic-flow-hooks/memory-hooks.js +558 -0
  860. package/dist/src/services/agentic-flow-hooks/memory-hooks.js.map +1 -0
  861. package/dist/src/services/agentic-flow-hooks/neural-hooks.js +595 -0
  862. package/dist/src/services/agentic-flow-hooks/neural-hooks.js.map +1 -0
  863. package/dist/src/services/agentic-flow-hooks/performance-hooks.js +640 -0
  864. package/dist/src/services/agentic-flow-hooks/performance-hooks.js.map +1 -0
  865. package/dist/src/services/agentic-flow-hooks/types.js +8 -0
  866. package/dist/src/services/agentic-flow-hooks/types.js.map +1 -0
  867. package/dist/src/services/agentic-flow-hooks/workflow-hooks.js +746 -0
  868. package/dist/src/services/agentic-flow-hooks/workflow-hooks.js.map +1 -0
  869. package/dist/src/services/performance-metrics-collector.js +529 -0
  870. package/dist/src/services/performance-metrics-collector.js.map +1 -0
  871. package/dist/src/services/swarm-coordinator.js +431 -0
  872. package/dist/src/services/swarm-coordinator.js.map +1 -0
  873. package/dist/src/services/swarm-memory-manager.js +513 -0
  874. package/dist/src/services/swarm-memory-manager.js.map +1 -0
  875. package/dist/src/services/swarm-relaunch-manager.js +408 -0
  876. package/dist/src/services/swarm-relaunch-manager.js.map +1 -0
  877. package/dist/src/services/task-handoff-service.js +361 -0
  878. package/dist/src/services/task-handoff-service.js.map +1 -0
  879. package/dist/src/swarm/__tests__/integration.test.js +229 -0
  880. package/dist/src/swarm/__tests__/integration.test.js.map +1 -0
  881. package/dist/src/swarm/__tests__/prompt-copier.test.js +346 -0
  882. package/dist/src/swarm/__tests__/prompt-copier.test.js.map +1 -0
  883. package/dist/src/swarm/advanced-orchestrator.js +1093 -0
  884. package/dist/src/swarm/advanced-orchestrator.js.map +1 -0
  885. package/dist/src/swarm/claude-code-interface.js +959 -0
  886. package/dist/src/swarm/claude-code-interface.js.map +1 -0
  887. package/dist/src/swarm/claude-flow-executor.js +218 -0
  888. package/dist/src/swarm/claude-flow-executor.js.map +1 -0
  889. package/dist/src/swarm/coordinator.js +3001 -0
  890. package/dist/src/swarm/coordinator.js.map +1 -0
  891. package/dist/src/swarm/direct-executor.js +1169 -0
  892. package/dist/src/swarm/direct-executor.js.map +1 -0
  893. package/dist/src/swarm/executor-v2.js +312 -0
  894. package/dist/src/swarm/executor-v2.js.map +1 -0
  895. package/dist/src/swarm/executor.js +813 -0
  896. package/dist/src/swarm/executor.js.map +1 -0
  897. package/dist/src/swarm/hive-mind-integration.js +700 -0
  898. package/dist/src/swarm/hive-mind-integration.js.map +1 -0
  899. package/dist/src/swarm/index.js +43 -0
  900. package/dist/src/swarm/index.js.map +1 -0
  901. package/dist/src/swarm/json-output-aggregator.js +269 -0
  902. package/dist/src/swarm/json-output-aggregator.js.map +1 -0
  903. package/dist/src/swarm/mcp-integration-wrapper.js +623 -0
  904. package/dist/src/swarm/mcp-integration-wrapper.js.map +1 -0
  905. package/dist/src/swarm/memory.js +1119 -0
  906. package/dist/src/swarm/memory.js.map +1 -0
  907. package/dist/src/swarm/optimizations/__tests__/optimization.test.js +350 -0
  908. package/dist/src/swarm/optimizations/__tests__/optimization.test.js.map +1 -0
  909. package/dist/src/swarm/optimizations/async-file-manager.js +273 -0
  910. package/dist/src/swarm/optimizations/async-file-manager.js.map +1 -0
  911. package/dist/src/swarm/optimizations/circular-buffer.js +148 -0
  912. package/dist/src/swarm/optimizations/circular-buffer.js.map +1 -0
  913. package/dist/src/swarm/optimizations/connection-pool.js +239 -0
  914. package/dist/src/swarm/optimizations/connection-pool.js.map +1 -0
  915. package/dist/src/swarm/optimizations/index.js +30 -0
  916. package/dist/src/swarm/optimizations/index.js.map +1 -0
  917. package/dist/src/swarm/optimizations/optimized-executor.js +318 -0
  918. package/dist/src/swarm/optimizations/optimized-executor.js.map +1 -0
  919. package/dist/src/swarm/optimizations/ttl-map.js +223 -0
  920. package/dist/src/swarm/optimizations/ttl-map.js.map +1 -0
  921. package/dist/src/swarm/prompt-cli.js +202 -0
  922. package/dist/src/swarm/prompt-cli.js.map +1 -0
  923. package/dist/src/swarm/prompt-copier-enhanced.js +193 -0
  924. package/dist/src/swarm/prompt-copier-enhanced.js.map +1 -0
  925. package/dist/src/swarm/prompt-copier.js +376 -0
  926. package/dist/src/swarm/prompt-copier.js.map +1 -0
  927. package/dist/src/swarm/prompt-manager.js +287 -0
  928. package/dist/src/swarm/prompt-manager.js.map +1 -0
  929. package/dist/src/swarm/prompt-utils.js +299 -0
  930. package/dist/src/swarm/prompt-utils.js.map +1 -0
  931. package/dist/src/swarm/result-aggregator.js +713 -0
  932. package/dist/src/swarm/result-aggregator.js.map +1 -0
  933. package/dist/src/swarm/sparc-executor.js +1557 -0
  934. package/dist/src/swarm/sparc-executor.js.map +1 -0
  935. package/dist/src/swarm/strategies/auto.js +751 -0
  936. package/dist/src/swarm/strategies/auto.js.map +1 -0
  937. package/dist/src/swarm/strategies/base.js +117 -0
  938. package/dist/src/swarm/strategies/base.js.map +1 -0
  939. package/dist/src/swarm/strategies/research.js +911 -0
  940. package/dist/src/swarm/strategies/research.js.map +1 -0
  941. package/dist/src/swarm/strategies/strategy-metrics-patch.js +4 -0
  942. package/dist/src/swarm/strategies/strategy-metrics-patch.js.map +1 -0
  943. package/dist/src/swarm/types.js +54 -0
  944. package/dist/src/swarm/types.js.map +1 -0
  945. package/dist/src/swarm/workers/copy-worker.js +58 -0
  946. package/dist/src/swarm/workers/copy-worker.js.map +1 -0
  947. package/dist/src/swarm-fullstack/adapters/chrome-mcp-adapter.js +412 -0
  948. package/dist/src/swarm-fullstack/adapters/chrome-mcp-adapter.js.map +1 -0
  949. package/dist/src/swarm-fullstack/adapters/shadcn-mcp-adapter.js +560 -0
  950. package/dist/src/swarm-fullstack/adapters/shadcn-mcp-adapter.js.map +1 -0
  951. package/dist/src/swarm-fullstack/cli/fullstack-cli.js +582 -0
  952. package/dist/src/swarm-fullstack/cli/fullstack-cli.js.map +1 -0
  953. package/dist/src/swarm-fullstack/config/fullstack-config.js +369 -0
  954. package/dist/src/swarm-fullstack/config/fullstack-config.js.map +1 -0
  955. package/dist/src/swarm-fullstack/core/dynamic-agent-spawner.js +687 -0
  956. package/dist/src/swarm-fullstack/core/dynamic-agent-spawner.js.map +1 -0
  957. package/dist/src/swarm-fullstack/core/enhanced-swarm-message-router.js +589 -0
  958. package/dist/src/swarm-fullstack/core/enhanced-swarm-message-router.js.map +1 -0
  959. package/dist/src/swarm-fullstack/core/fullstack-orchestrator.js +538 -0
  960. package/dist/src/swarm-fullstack/core/fullstack-orchestrator.js.map +1 -0
  961. package/dist/src/swarm-fullstack/types/index.js +8 -0
  962. package/dist/src/swarm-fullstack/types/index.js.map +1 -0
  963. package/dist/src/task/commands.js +130 -0
  964. package/dist/src/task/commands.js.map +1 -0
  965. package/dist/src/task/coordination.js +737 -0
  966. package/dist/src/task/coordination.js.map +1 -0
  967. package/dist/src/task/engine.js +490 -0
  968. package/dist/src/task/engine.js.map +1 -0
  969. package/dist/src/task/index.js +269 -0
  970. package/dist/src/task/index.js.map +1 -0
  971. package/dist/src/task/types.js +5 -0
  972. package/dist/src/task/types.js.map +1 -0
  973. package/dist/src/terminal/adapters/base.js +5 -0
  974. package/dist/src/terminal/adapters/base.js.map +1 -0
  975. package/dist/src/terminal/adapters/native.js +473 -0
  976. package/dist/src/terminal/adapters/native.js.map +1 -0
  977. package/dist/src/terminal/adapters/vscode.js +285 -0
  978. package/dist/src/terminal/adapters/vscode.js.map +1 -0
  979. package/dist/src/terminal/manager.js +237 -0
  980. package/dist/src/terminal/manager.js.map +1 -0
  981. package/dist/src/terminal/pool.js +209 -0
  982. package/dist/src/terminal/pool.js.map +1 -0
  983. package/dist/src/terminal/session.js +211 -0
  984. package/dist/src/terminal/session.js.map +1 -0
  985. package/dist/src/terminal/vscode-bridge.js +186 -0
  986. package/dist/src/terminal/vscode-bridge.js.map +1 -0
  987. package/dist/src/testing/performance/PerformanceTestRunner.js +401 -0
  988. package/dist/src/testing/performance/PerformanceTestRunner.js.map +1 -0
  989. package/dist/src/testing-integration/chrome-mcp-integration.js +556 -0
  990. package/dist/src/testing-integration/chrome-mcp-integration.js.map +1 -0
  991. package/dist/src/testing-integration/continuous-test-runner.js +509 -0
  992. package/dist/src/testing-integration/continuous-test-runner.js.map +1 -0
  993. package/dist/src/tests/validation-consistency.test.js +52 -0
  994. package/dist/src/tests/validation-consistency.test.js.map +1 -0
  995. package/dist/src/topology/adaptive-coordinator.js +691 -0
  996. package/dist/src/topology/adaptive-coordinator.js.map +1 -0
  997. package/dist/src/topology/communication-bridge.js +551 -0
  998. package/dist/src/topology/communication-bridge.js.map +1 -0
  999. package/dist/src/topology/enhanced-hierarchical-coordinator.js +1732 -0
  1000. package/dist/src/topology/enhanced-hierarchical-coordinator.js.map +1 -0
  1001. package/dist/src/topology/enhanced-mesh-coordinator.js +1271 -0
  1002. package/dist/src/topology/enhanced-mesh-coordinator.js.map +1 -0
  1003. package/dist/src/topology/topology-manager.js +797 -0
  1004. package/dist/src/topology/topology-manager.js.map +1 -0
  1005. package/dist/src/topology/types.js +8 -0
  1006. package/dist/src/topology/types.js.map +1 -0
  1007. package/dist/src/types/agent-lifecycle-types.js +172 -0
  1008. package/dist/src/types/agent-lifecycle-types.js.map +1 -0
  1009. package/dist/src/types/agent-types.js +11 -0
  1010. package/dist/src/types/agent-types.js.map +1 -0
  1011. package/dist/src/types/cliffy.d.js +9 -0
  1012. package/dist/src/types/cliffy.d.js.map +1 -0
  1013. package/dist/src/types/global.d.js +5 -0
  1014. package/dist/src/types/global.d.js.map +1 -0
  1015. package/dist/src/types/index.js +16 -0
  1016. package/dist/src/types/index.js.map +1 -0
  1017. package/dist/src/types/mcp.d.js +3 -0
  1018. package/dist/src/types/mcp.d.js.map +1 -0
  1019. package/dist/src/types/vscode.d.js +4 -0
  1020. package/dist/src/types/vscode.d.js.map +1 -0
  1021. package/dist/src/ui/hive-dashboard.js +284 -0
  1022. package/dist/src/ui/hive-dashboard.js.map +1 -0
  1023. package/dist/src/utils/error-handler.js +27 -0
  1024. package/dist/src/utils/error-handler.js.map +1 -0
  1025. package/dist/src/utils/errors.js +195 -0
  1026. package/dist/src/utils/errors.js.map +1 -0
  1027. package/dist/src/utils/formatters.js +66 -0
  1028. package/dist/src/utils/formatters.js.map +1 -0
  1029. package/dist/src/utils/helpers.js +451 -0
  1030. package/dist/src/utils/helpers.js.map +1 -0
  1031. package/dist/src/utils/paths.js +43 -0
  1032. package/dist/src/utils/paths.js.map +1 -0
  1033. package/dist/src/utils/type-guards.js +119 -0
  1034. package/dist/src/utils/type-guards.js.map +1 -0
  1035. package/dist/src/utils/types.js +38 -0
  1036. package/dist/src/utils/types.js.map +1 -0
  1037. package/dist/src/verification/agent-scorer.js +633 -0
  1038. package/dist/src/verification/agent-scorer.js.map +1 -0
  1039. package/dist/src/verification/alert-manager.js +1126 -0
  1040. package/dist/src/verification/alert-manager.js.map +1 -0
  1041. package/dist/src/verification/api/types/index.js +6 -0
  1042. package/dist/src/verification/api/types/index.js.map +1 -0
  1043. package/dist/src/verification/checkpoint-manager.js +519 -0
  1044. package/dist/src/verification/checkpoint-manager.js.map +1 -0
  1045. package/dist/src/verification/cli-integration.js +500 -0
  1046. package/dist/src/verification/cli-integration.js.map +1 -0
  1047. package/dist/src/verification/conflict-resolver.js +534 -0
  1048. package/dist/src/verification/conflict-resolver.js.map +1 -0
  1049. package/dist/src/verification/crdt-coordinator.js +506 -0
  1050. package/dist/src/verification/crdt-coordinator.js.map +1 -0
  1051. package/dist/src/verification/dashboard-exporter.js +876 -0
  1052. package/dist/src/verification/dashboard-exporter.js.map +1 -0
  1053. package/dist/src/verification/demo.js +320 -0
  1054. package/dist/src/verification/demo.js.map +1 -0
  1055. package/dist/src/verification/examples.js +508 -0
  1056. package/dist/src/verification/examples.js.map +1 -0
  1057. package/dist/src/verification/hooks.js +961 -0
  1058. package/dist/src/verification/hooks.js.map +1 -0
  1059. package/dist/src/verification/index.js +73 -0
  1060. package/dist/src/verification/index.js.map +1 -0
  1061. package/dist/src/verification/interfaces.js +7 -0
  1062. package/dist/src/verification/interfaces.js.map +1 -0
  1063. package/dist/src/verification/memory-manager.js +510 -0
  1064. package/dist/src/verification/memory-manager.js.map +1 -0
  1065. package/dist/src/verification/middleware.js +579 -0
  1066. package/dist/src/verification/middleware.js.map +1 -0
  1067. package/dist/src/verification/rollback-engine.js +511 -0
  1068. package/dist/src/verification/rollback-engine.js.map +1 -0
  1069. package/dist/src/verification/rollback.js +1710 -0
  1070. package/dist/src/verification/rollback.js.map +1 -0
  1071. package/dist/src/verification/security-bypass-test.js +704 -0
  1072. package/dist/src/verification/security-bypass-test.js.map +1 -0
  1073. package/dist/src/verification/security.js +1125 -0
  1074. package/dist/src/verification/security.js.map +1 -0
  1075. package/dist/src/verification/simple-hooks.js +189 -0
  1076. package/dist/src/verification/simple-hooks.js.map +1 -0
  1077. package/dist/src/verification/system-tracker.js +657 -0
  1078. package/dist/src/verification/system-tracker.js.map +1 -0
  1079. package/dist/src/verification/telemetry.js +922 -0
  1080. package/dist/src/verification/telemetry.js.map +1 -0
  1081. package/dist/src/verification/test-verification.js +43 -0
  1082. package/dist/src/verification/test-verification.js.map +1 -0
  1083. package/dist/src/verification/tests/e2e/verification-pipeline.test.js +1027 -0
  1084. package/dist/src/verification/tests/e2e/verification-pipeline.test.js.map +1 -0
  1085. package/dist/src/verification/tests/integration/cross-agent-communication.test.js +638 -0
  1086. package/dist/src/verification/tests/integration/cross-agent-communication.test.js.map +1 -0
  1087. package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js +1029 -0
  1088. package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js.map +1 -0
  1089. package/dist/src/verification/tests/performance/verification-overhead.test.js +587 -0
  1090. package/dist/src/verification/tests/performance/verification-overhead.test.js.map +1 -0
  1091. package/dist/src/verification/tests/unit/truth-scoring.test.js +579 -0
  1092. package/dist/src/verification/tests/unit/truth-scoring.test.js.map +1 -0
  1093. package/dist/src/verification/tests.js +611 -0
  1094. package/dist/src/verification/tests.js.map +1 -0
  1095. package/dist/src/verification/truth-scorer.js +584 -0
  1096. package/dist/src/verification/truth-scorer.js.map +1 -0
  1097. package/dist/src/verification/types.js +56 -0
  1098. package/dist/src/verification/types.js.map +1 -0
  1099. package/dist/src/verification/verification-pipeline.js +884 -0
  1100. package/dist/src/verification/verification-pipeline.js.map +1 -0
  1101. package/dist/src/web/messaging/agent-status-tracker.js +447 -0
  1102. package/dist/src/web/messaging/agent-status-tracker.js.map +1 -0
  1103. package/dist/src/web/messaging/human-intervention-system.js +298 -0
  1104. package/dist/src/web/messaging/human-intervention-system.js.map +1 -0
  1105. package/dist/src/web/messaging/message-filter.js +289 -0
  1106. package/dist/src/web/messaging/message-filter.js.map +1 -0
  1107. package/dist/src/web/messaging/swarm-message-router.js +320 -0
  1108. package/dist/src/web/messaging/swarm-message-router.js.map +1 -0
  1109. package/dist/src/web/messaging/transparency-logger.js +415 -0
  1110. package/dist/src/web/messaging/transparency-logger.js.map +1 -0
  1111. package/dist/src/web/portal-server.js +440 -0
  1112. package/dist/src/web/portal-server.js.map +1 -0
  1113. package/dist/src/web/server.js +311 -0
  1114. package/dist/src/web/server.js.map +1 -0
  1115. package/dist/src/web/websocket/websocket-manager.js +509 -0
  1116. package/dist/src/web/websocket/websocket-manager.js.map +1 -0
  1117. package/dist/src/workflows/feature-lifecycle-manager.js +386 -0
  1118. package/dist/src/workflows/feature-lifecycle-manager.js.map +1 -0
  1119. package/dist/src/workflows/fullstack-coordination-manager.js +801 -0
  1120. package/dist/src/workflows/fullstack-coordination-manager.js.map +1 -0
  1121. package/dist/src/workflows/iterative-development-orchestrator.js +1128 -0
  1122. package/dist/src/workflows/iterative-development-orchestrator.js.map +1 -0
  1123. package/dist/src/workflows/progressive-rollout-manager.js +710 -0
  1124. package/dist/src/workflows/progressive-rollout-manager.js.map +1 -0
  1125. package/package.json +264 -0
  1126. package/scripts/README.md +339 -0
  1127. package/scripts/post-install-claude-md.js +50 -0
  1128. package/src/commands/dependency-recommendations.js +551 -0
  1129. package/src/commands/suggest-improvements.js +492 -0
  1130. package/src/commands/suggest-templates.js +916 -0
  1131. package/src/npx/claude-md-protection.js +169 -0
  1132. package/wiki/INDEX.md +264 -0
  1133. package/wiki/NAVIGATION.md +270 -0
  1134. package/wiki/README.md +101 -0
  1135. package/wiki/accessibility/README.md +103 -0
  1136. package/wiki/accessibility/assistive-tech/screen-reader-support.md +912 -0
  1137. package/wiki/accessibility/automation/agent-testing-automation.md +880 -0
  1138. package/wiki/accessibility/guidelines/wcag-compliance.md +278 -0
  1139. package/wiki/accessibility/i18n/internationalization-strategies.md +1022 -0
  1140. package/wiki/accessibility/motor-accessibility/keyboard-navigation.md +1182 -0
  1141. package/wiki/accessibility/patterns/inclusive-design-patterns.md +715 -0
  1142. package/wiki/accessibility/testing/automated-testing.md +665 -0
  1143. package/wiki/accessibility/visual-design/color-contrast.md +926 -0
  1144. package/wiki/accessibility/workflows/accessibility-first-development.md +916 -0
  1145. package/wiki/accessibility/workflows/inclusive-design-review.md +835 -0
  1146. package/wiki/api-reference/README.md +565 -0
  1147. package/wiki/api-reference/agent-management-api.md +931 -0
  1148. package/wiki/api-reference/cli-api.md +630 -0
  1149. package/wiki/api-reference/configuration-api.md +1355 -0
  1150. package/wiki/api-reference/examples-code-samples.md +2241 -0
  1151. package/wiki/api-reference/hooks-coordination-api.md +1406 -0
  1152. package/wiki/api-reference/mcp-tool-specifications.md +944 -0
  1153. package/wiki/api-reference/plugin-development.md +1695 -0
  1154. package/wiki/api-reference/technical-architecture.md +1729 -0
  1155. package/wiki/command-reference/README.md +305 -0
  1156. package/wiki/command-reference/agent-commands.md +571 -0
  1157. package/wiki/command-reference/cli-commands.md +516 -0
  1158. package/wiki/command-reference/command-syntax.md +676 -0
  1159. package/wiki/command-reference/expert/README.md +616 -0
  1160. package/wiki/command-reference/expert-tier.md +791 -0
  1161. package/wiki/command-reference/intermediate/README.md +628 -0
  1162. package/wiki/command-reference/intermediate-tier.md +1024 -0
  1163. package/wiki/command-reference/mcp-integration.md +412 -0
  1164. package/wiki/command-reference/mcp-tools/README.md +1743 -0
  1165. package/wiki/command-reference/mcp-tools/dual-access-workflows.md +911 -0
  1166. package/wiki/command-reference/mcp-tools/index.md +201 -0
  1167. package/wiki/command-reference/mcp-tools/integration-patterns.md +830 -0
  1168. package/wiki/command-reference/mcp-tools/quick-reference.md +383 -0
  1169. package/wiki/command-reference/mcp-tools/session-management.md +1183 -0
  1170. package/wiki/command-reference/mcp-tools/task-tool-integration.md +827 -0
  1171. package/wiki/command-reference/novice/README.md +661 -0
  1172. package/wiki/command-reference/novice-tier.md +1142 -0
  1173. package/wiki/command-reference/progression-guide.md +772 -0
  1174. package/wiki/command-reference/troubleshooting.md +803 -0
  1175. package/wiki/command-reference/workflows.md +752 -0
  1176. package/wiki/community/README.md +328 -0
  1177. package/wiki/community/contributing/README.md +623 -0
  1178. package/wiki/community/contributing/code-of-conduct.md +388 -0
  1179. package/wiki/community/contributing/collaboration-workflows.md +1 -0
  1180. package/wiki/community/contributing/issue-reporting.md +1 -0
  1181. package/wiki/community/contributing/onboarding-guide.md +1 -0
  1182. package/wiki/community/contributing/recognition-system.md +1 -0
  1183. package/wiki/community/discussions/README.md +54 -0
  1184. package/wiki/community/learning-resources.md +476 -0
  1185. package/wiki/community/showcase/README.md +1 -0
  1186. package/wiki/core-concepts/README.md +656 -0
  1187. package/wiki/core-concepts/agent-feedback-hooks/README.md +298 -0
  1188. package/wiki/core-concepts/agents/README.md +392 -0
  1189. package/wiki/core-concepts/agents/agent-creation-guide.md +431 -0
  1190. package/wiki/core-concepts/agents.md +301 -0
  1191. package/wiki/core-concepts/architecture.md +227 -0
  1192. package/wiki/core-concepts/hooks-lifecycle/README.md +543 -0
  1193. package/wiki/core-concepts/integration.md +507 -0
  1194. package/wiki/core-concepts/memory-system/README.md +521 -0
  1195. package/wiki/core-concepts/performance.md +463 -0
  1196. package/wiki/core-concepts/sparc-methodology/README.md +465 -0
  1197. package/wiki/core-concepts/sparc-workflow.md +407 -0
  1198. package/wiki/core-concepts/swarm-coordination/README.md +525 -0
  1199. package/wiki/core-concepts/swarm-coordination.md +453 -0
  1200. package/wiki/cost-optimization/enterprise-cost-management.md +1356 -0
  1201. package/wiki/deployment/enterprise-deployment-patterns.md +1739 -0
  1202. package/wiki/enterprise-architecture/enterprise-architecture-overview.md +348 -0
  1203. package/wiki/enterprise-architecture/enterprise-scaling-patterns.md +1184 -0
  1204. package/wiki/examples/README.md +288 -0
  1205. package/wiki/examples/automation/cicd-pipeline/README.md +1265 -0
  1206. package/wiki/examples/basic/hello-world/README.md +434 -0
  1207. package/wiki/examples/basic-projects/README.md +427 -0
  1208. package/wiki/examples/enterprise-integration/README.md +602 -0
  1209. package/wiki/examples/integration-patterns.md +825 -0
  1210. package/wiki/examples/legacy-migration/README.md +656 -0
  1211. package/wiki/examples/multi-cloud/README.md +1071 -0
  1212. package/wiki/examples/performance-benchmarks.md +729 -0
  1213. package/wiki/examples/performance-optimization/README.md +1214 -0
  1214. package/wiki/examples/projects/rest-api/README.md +845 -0
  1215. package/wiki/examples/real-time-collaboration/README.md +1092 -0
  1216. package/wiki/examples/scenarios/ecommerce/README.md +1273 -0
  1217. package/wiki/examples/swarm-patterns.md +1026 -0
  1218. package/wiki/examples/templates/download-system.md +993 -0
  1219. package/wiki/examples/templates/javascript/README.md +487 -0
  1220. package/wiki/examples/templates/javascript/package.json +119 -0
  1221. package/wiki/examples/troubleshooting/README.md +1317 -0
  1222. package/wiki/examples/utilities/patterns/README.md +1347 -0
  1223. package/wiki/examples/videos/01-setup.md +403 -0
  1224. package/wiki/examples/workflow-automation/README.md +1023 -0
  1225. package/wiki/getting-started/README.md +398 -0
  1226. package/wiki/getting-started/benefits.md +451 -0
  1227. package/wiki/getting-started/claude-code-mcp/README.md +319 -0
  1228. package/wiki/getting-started/claude-code-mcp/setup.md +431 -0
  1229. package/wiki/getting-started/claude-code-mcp/usage-examples.md +501 -0
  1230. package/wiki/getting-started/cli-access/README.md +300 -0
  1231. package/wiki/getting-started/cli-access/first-commands.md +319 -0
  1232. package/wiki/getting-started/installation/README.md +469 -0
  1233. package/wiki/getting-started/installation/troubleshooting.md +617 -0
  1234. package/wiki/getting-started/learning-path.md +494 -0
  1235. package/wiki/getting-started/learning-plan-generator.md +434 -0
  1236. package/wiki/getting-started/quick-start/README.md +255 -0
  1237. package/wiki/getting-started/quick-start/cli-tutorial.md +680 -0
  1238. package/wiki/getting-started/quick-start/mcp-tutorial.md +544 -0
  1239. package/wiki/governance/multi-project-coordination.md +820 -0
  1240. package/wiki/languages/README.md +349 -0
  1241. package/wiki/languages/go/README.md +124 -0
  1242. package/wiki/languages/go/examples/README.md +1066 -0
  1243. package/wiki/languages/go/frameworks/README.md +708 -0
  1244. package/wiki/languages/go/integration/README.md +748 -0
  1245. package/wiki/languages/go/microservices/README.md +1185 -0
  1246. package/wiki/languages/go/performance/README.md +1310 -0
  1247. package/wiki/languages/go/setup/README.md +397 -0
  1248. package/wiki/languages/go/systems/README.md +1116 -0
  1249. package/wiki/languages/go/testing/README.md +999 -0
  1250. package/wiki/languages/java/README.md +217 -0
  1251. package/wiki/languages/java/claude-flow-integration.md +1220 -0
  1252. package/wiki/languages/java/enterprise-java.md +1247 -0
  1253. package/wiki/languages/java/examples.md +1712 -0
  1254. package/wiki/languages/java/microservices.md +1600 -0
  1255. package/wiki/languages/java/performance.md +1122 -0
  1256. package/wiki/languages/java/project-setup.md +504 -0
  1257. package/wiki/languages/java/spring-boot.md +756 -0
  1258. package/wiki/languages/java/testing.md +1323 -0
  1259. package/wiki/languages/javascript/README.md +575 -0
  1260. package/wiki/languages/javascript/api/README.md +1445 -0
  1261. package/wiki/languages/javascript/backend/README.md +748 -0
  1262. package/wiki/languages/javascript/frontend/README.md +1048 -0
  1263. package/wiki/languages/javascript/integration.md +1107 -0
  1264. package/wiki/languages/javascript/setup/README.md +438 -0
  1265. package/wiki/languages/javascript/testing/README.md +1775 -0
  1266. package/wiki/languages/python/README.md +1002 -0
  1267. package/wiki/languages/python/data-science/README.md +1317 -0
  1268. package/wiki/languages/python/examples/README.md +911 -0
  1269. package/wiki/languages/python/integration.md +1515 -0
  1270. package/wiki/languages/python/mcp-integration.md +843 -0
  1271. package/wiki/languages/python/setup/README.md +622 -0
  1272. package/wiki/languages/python/testing/README.md +1680 -0
  1273. package/wiki/languages/python/web-development/README.md +974 -0
  1274. package/wiki/languages/rust/README.md +936 -0
  1275. package/wiki/languages/rust/examples/cli-mcp-workflows.md +850 -0
  1276. package/wiki/languages/rust/examples/rest-api.md +1927 -0
  1277. package/wiki/languages/rust/setup/cargo-integration.md +780 -0
  1278. package/wiki/languages/rust/testing/quality-validation.md +1098 -0
  1279. package/wiki/languages/rust/web-development/axum.md +1497 -0
  1280. package/wiki/languages/rust/workflows/systems-programming.md +1189 -0
  1281. package/wiki/languages/typescript/README.md +581 -0
  1282. package/wiki/languages/typescript/automation.md +1070 -0
  1283. package/wiki/languages/typescript/coordination.md +971 -0
  1284. package/wiki/languages/typescript/enterprise.md +1368 -0
  1285. package/wiki/languages/typescript/frameworks.md +970 -0
  1286. package/wiki/languages/typescript/migration.md +1384 -0
  1287. package/wiki/languages/typescript/patterns.md +694 -0
  1288. package/wiki/languages/typescript/performance.md +1195 -0
  1289. package/wiki/languages/typescript/setup.md +516 -0
  1290. package/wiki/languages/typescript/workflows.md +481 -0
  1291. package/wiki/monitoring/enterprise-observability.md +1141 -0
  1292. package/wiki/security/enterprise-security-framework.md +1174 -0
  1293. package/wiki/team-coordination/team-scaling-strategies.md +1486 -0
  1294. package/wiki/troubleshooting/README.md +654 -0
  1295. package/wiki/troubleshooting/common-issues/README.md +659 -0
  1296. package/wiki/troubleshooting/common-issues.md +458 -0
  1297. package/wiki/troubleshooting/error-resolution.md +763 -0
  1298. package/wiki/troubleshooting/performance-optimization.md +540 -0
  1299. package/wiki/tutorials/README.md +607 -0
  1300. package/wiki/tutorials/advanced/01-multi-agent-orchestration-patterns.md +585 -0
  1301. package/wiki/tutorials/advanced/02-enterprise-architecture-development.md +661 -0
  1302. package/wiki/tutorials/advanced/03-advanced-sparc-methodology.md +595 -0
  1303. package/wiki/tutorials/advanced/04-performance-optimization-workflows.md +613 -0
  1304. package/wiki/tutorials/advanced/05-custom-agent-development.md +681 -0
  1305. package/wiki/tutorials/advanced/06-legacy-system-integration.md +574 -0
  1306. package/wiki/tutorials/advanced/07-production-deployment-monitoring.md +684 -0
  1307. package/wiki/tutorials/advanced/08-enterprise-scenarios.md +700 -0
  1308. package/wiki/tutorials/advanced/README.md +577 -0
  1309. package/wiki/tutorials/advanced/performance-optimization.md +476 -0
  1310. package/wiki/tutorials/advanced/swarm-orchestration.md +627 -0
  1311. package/wiki/tutorials/beginner/01-first-project.md +532 -0
  1312. package/wiki/tutorials/beginner/02-basic-workflows.md +523 -0
  1313. package/wiki/tutorials/beginner/03-simple-automation.md +641 -0
  1314. package/wiki/tutorials/beginner/04-quality-testing.md +984 -0
  1315. package/wiki/tutorials/beginner/README.md +388 -0
  1316. package/wiki/tutorials/exercises/ecommerce-platform.md +1370 -0
  1317. package/wiki/tutorials/intermediate/01-multi-agent-teams.md +961 -0
  1318. package/wiki/tutorials/intermediate/README.md +452 -0
  1319. package/wiki/tutorials/intermediate/optimization.md +402 -0
  1320. package/wiki/tutorials/skill-assessment.md +522 -0
  1321. package/wiki/tutorials/skill-competency-matrix.md +548 -0
  1322. package/wiki/tutorials/troubleshooting/command-cheatsheet.md +425 -0
  1323. package/wiki/tutorials/troubleshooting/setup-issues.md +717 -0
  1324. package/wiki/video-tutorials/README.md +202 -0
  1325. package/wiki/video-tutorials/accessibility/README.md +1349 -0
  1326. package/wiki/video-tutorials/community/README.md +1366 -0
  1327. package/wiki/video-tutorials/content-organization/README.md +1295 -0
  1328. package/wiki/video-tutorials/distribution/README.md +1093 -0
  1329. package/wiki/video-tutorials/editing/README.md +751 -0
  1330. package/wiki/video-tutorials/interactive/README.md +1151 -0
  1331. package/wiki/video-tutorials/multi-language/README.md +1384 -0
  1332. package/wiki/video-tutorials/planning/README.md +461 -0
  1333. package/wiki/video-tutorials/recording/README.md +619 -0
  1334. package/wiki/video-tutorials/technical-specs/README.md +1018 -0
@@ -0,0 +1,1775 @@
1
+ # Testing & Automation with Claude-Flow
2
+
3
+ Comprehensive guide to testing JavaScript applications using Claude-Flow agent coordination for automated testing strategies.
4
+
5
+ ## šŸš€ Testing Workflow Overview
6
+
7
+ ### 1. Initialize Testing Environment
8
+
9
+ ```bash
10
+ # Generate comprehensive testing setup with agent
11
+ npx claude-flow sparc run tester "Complete testing environment with Jest, React Testing Library, and E2E testing"
12
+
13
+ # Alternative: TDD workflow
14
+ npx claude-flow sparc tdd "User authentication feature with test-driven development"
15
+ ```
16
+
17
+ ### 2. Agent-Driven Testing
18
+
19
+ ```bash
20
+ # Parallel testing development
21
+ npx claude-flow sparc batch "tester,reviewer,perf-analyzer" "Comprehensive testing strategy implementation"
22
+
23
+ # Sequential testing pipeline
24
+ npx claude-flow sparc run tester "Unit tests for components and utilities"
25
+ npx claude-flow sparc run tester "Integration tests for API endpoints"
26
+ npx claude-flow sparc run tester "End-to-end tests for user workflows"
27
+ ```
28
+
29
+ ## šŸ— Testing Architecture
30
+
31
+ ### 1. Testing Strategy Structure
32
+
33
+ **Agent-Generated Testing Structure**:
34
+ ```
35
+ testing/
36
+ ā”œā”€ā”€ __tests__/ # Test files
37
+ │ ā”œā”€ā”€ unit/ # Unit tests
38
+ │ │ ā”œā”€ā”€ components/ # Component tests
39
+ │ │ ā”œā”€ā”€ hooks/ # Hook tests
40
+ │ │ ā”œā”€ā”€ utils/ # Utility tests
41
+ │ │ └── services/ # Service tests
42
+ │ ā”œā”€ā”€ integration/ # Integration tests
43
+ │ │ ā”œā”€ā”€ api/ # API integration tests
44
+ │ │ ā”œā”€ā”€ database/ # Database tests
45
+ │ │ └── auth/ # Authentication tests
46
+ │ ā”œā”€ā”€ e2e/ # End-to-end tests
47
+ │ │ ā”œā”€ā”€ user-flows/ # User journey tests
48
+ │ │ ā”œā”€ā”€ admin-flows/ # Admin workflow tests
49
+ │ │ └── api-flows/ # API workflow tests
50
+ │ └── performance/ # Performance tests
51
+ │ ā”œā”€ā”€ load/ # Load testing
52
+ │ └── stress/ # Stress testing
53
+ ā”œā”€ā”€ fixtures/ # Test data
54
+ │ ā”œā”€ā”€ users.json
55
+ │ ā”œā”€ā”€ products.json
56
+ │ └── orders.json
57
+ ā”œā”€ā”€ mocks/ # Mock implementations
58
+ │ ā”œā”€ā”€ api/ # API mocks
59
+ │ ā”œā”€ā”€ services/ # Service mocks
60
+ │ └── components/ # Component mocks
61
+ ā”œā”€ā”€ utils/ # Testing utilities
62
+ │ ā”œā”€ā”€ test-helpers.ts
63
+ │ ā”œā”€ā”€ mock-factories.ts
64
+ │ └── setup.ts
65
+ ā”œā”€ā”€ config/ # Test configuration
66
+ │ ā”œā”€ā”€ jest.config.js
67
+ │ ā”œā”€ā”€ playwright.config.ts
68
+ │ └── k6.config.js
69
+ └── reports/ # Test reports
70
+ ā”œā”€ā”€ coverage/
71
+ ā”œā”€ā”€ performance/
72
+ └── e2e/
73
+ ```
74
+
75
+ ### 2. Generate Testing Environment with Agent
76
+
77
+ ```bash
78
+ # Complete testing environment generation
79
+ npx claude-flow sparc run tester "Comprehensive testing setup with:
80
+ - Jest configuration for unit and integration tests
81
+ - React Testing Library for component testing
82
+ - Playwright for end-to-end testing
83
+ - K6 for performance testing
84
+ - MSW for API mocking
85
+ - Test utilities and helpers
86
+ - CI/CD integration
87
+ - Coverage reporting"
88
+ ```
89
+
90
+ ## 🧪 Unit Testing
91
+
92
+ ### 1. Component Testing
93
+
94
+ **tests/unit/components/Button.test.tsx** (Agent-generated):
95
+ ```typescript
96
+ import React from 'react';
97
+ import { render, screen, fireEvent, waitFor } from '@testing-library/react';
98
+ import userEvent from '@testing-library/user-event';
99
+ import { Button } from '@/components/ui/Button';
100
+
101
+ // Mock implementations
102
+ const mockOnClick = jest.fn();
103
+
104
+ describe('Button Component', () => {
105
+ beforeEach(() => {
106
+ jest.clearAllMocks();
107
+ });
108
+
109
+ describe('Rendering', () => {
110
+ it('renders with default props', () => {
111
+ render(<Button>Click me</Button>);
112
+
113
+ const button = screen.getByRole('button', { name: /click me/i });
114
+ expect(button).toBeInTheDocument();
115
+ expect(button).toHaveClass('bg-primary');
116
+ });
117
+
118
+ it('renders with custom variant', () => {
119
+ render(<Button variant="destructive">Delete</Button>);
120
+
121
+ const button = screen.getByRole('button');
122
+ expect(button).toHaveClass('bg-destructive');
123
+ });
124
+
125
+ it('renders with custom size', () => {
126
+ render(<Button size="lg">Large button</Button>);
127
+
128
+ const button = screen.getByRole('button');
129
+ expect(button).toHaveClass('h-11');
130
+ });
131
+
132
+ it('renders with custom className', () => {
133
+ render(<Button className="custom-class">Custom</Button>);
134
+
135
+ const button = screen.getByRole('button');
136
+ expect(button).toHaveClass('custom-class');
137
+ });
138
+ });
139
+
140
+ describe('Interaction', () => {
141
+ it('calls onClick when clicked', async () => {
142
+ const user = userEvent.setup();
143
+ render(<Button onClick={mockOnClick}>Click me</Button>);
144
+
145
+ const button = screen.getByRole('button');
146
+ await user.click(button);
147
+
148
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
149
+ });
150
+
151
+ it('does not call onClick when disabled', async () => {
152
+ const user = userEvent.setup();
153
+ render(<Button onClick={mockOnClick} disabled>Disabled</Button>);
154
+
155
+ const button = screen.getByRole('button');
156
+ await user.click(button);
157
+
158
+ expect(mockOnClick).not.toHaveBeenCalled();
159
+ expect(button).toBeDisabled();
160
+ });
161
+
162
+ it('handles keyboard navigation', async () => {
163
+ const user = userEvent.setup();
164
+ render(<Button onClick={mockOnClick}>Press me</Button>);
165
+
166
+ const button = screen.getByRole('button');
167
+ button.focus();
168
+ await user.keyboard('{Enter}');
169
+
170
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
171
+ });
172
+ });
173
+
174
+ describe('Loading State', () => {
175
+ it('shows loading spinner when loading', () => {
176
+ render(<Button loading>Loading</Button>);
177
+
178
+ const button = screen.getByRole('button');
179
+ const spinner = screen.getByRole('status', { hidden: true });
180
+
181
+ expect(button).toBeDisabled();
182
+ expect(spinner).toBeInTheDocument();
183
+ });
184
+
185
+ it('disables button when loading', () => {
186
+ render(<Button loading onClick={mockOnClick}>Loading</Button>);
187
+
188
+ const button = screen.getByRole('button');
189
+ fireEvent.click(button);
190
+
191
+ expect(button).toBeDisabled();
192
+ expect(mockOnClick).not.toHaveBeenCalled();
193
+ });
194
+ });
195
+
196
+ describe('Accessibility', () => {
197
+ it('has correct ARIA attributes', () => {
198
+ render(<Button aria-label="Custom label">Button</Button>);
199
+
200
+ const button = screen.getByRole('button');
201
+ expect(button).toHaveAttribute('aria-label', 'Custom label');
202
+ });
203
+
204
+ it('supports ref forwarding', () => {
205
+ const ref = React.createRef<HTMLButtonElement>();
206
+ render(<Button ref={ref}>Button</Button>);
207
+
208
+ expect(ref.current).toBeInstanceOf(HTMLButtonElement);
209
+ });
210
+
211
+ it('maintains focus styles', () => {
212
+ render(<Button>Focus me</Button>);
213
+
214
+ const button = screen.getByRole('button');
215
+ button.focus();
216
+
217
+ expect(button).toHaveFocus();
218
+ });
219
+ });
220
+
221
+ describe('Edge Cases', () => {
222
+ it('handles extremely long text', () => {
223
+ const longText = 'A'.repeat(1000);
224
+ render(<Button>{longText}</Button>);
225
+
226
+ const button = screen.getByRole('button');
227
+ expect(button).toBeInTheDocument();
228
+ });
229
+
230
+ it('handles special characters', () => {
231
+ render(<Button>{'<>&"\\''}</Button>);
232
+
233
+ const button = screen.getByRole('button');
234
+ expect(button).toHaveTextContent('<>&"\\\'');
235
+ });
236
+ });
237
+ });
238
+ ```
239
+
240
+ ### 2. Hook Testing
241
+
242
+ **tests/unit/hooks/useApi.test.ts** (Agent-generated):
243
+ ```typescript
244
+ import { renderHook, waitFor } from '@testing-library/react';
245
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
246
+ import { useApi, useApiMutation } from '@/hooks/useApi';
247
+ import { apiClient } from '@/services/apiClient';
248
+
249
+ // Mock the API client
250
+ jest.mock('@/services/apiClient', () => ({
251
+ apiClient: {
252
+ get: jest.fn(),
253
+ post: jest.fn(),
254
+ put: jest.fn(),
255
+ delete: jest.fn(),
256
+ },
257
+ }));
258
+
259
+ const mockedApiClient = apiClient as jest.Mocked<typeof apiClient>;
260
+
261
+ // Create a test wrapper
262
+ const createWrapper = () => {
263
+ const queryClient = new QueryClient({
264
+ defaultOptions: {
265
+ queries: { retry: false, cacheTime: 0 },
266
+ mutations: { retry: false },
267
+ },
268
+ });
269
+
270
+ return ({ children }: { children: React.ReactNode }) => (
271
+ <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
272
+ );
273
+ };
274
+
275
+ describe('useApi Hook', () => {
276
+ beforeEach(() => {
277
+ jest.clearAllMocks();
278
+ });
279
+
280
+ describe('Successful Data Fetching', () => {
281
+ it('fetches and returns data successfully', async () => {
282
+ const mockData = { id: 1, name: 'Test User', email: 'test@example.com' };
283
+ mockedApiClient.get.mockResolvedValueOnce({ data: mockData });
284
+
285
+ const { result } = renderHook(
286
+ () => useApi('user', '/users/1'),
287
+ { wrapper: createWrapper() }
288
+ );
289
+
290
+ expect(result.current.isLoading).toBe(true);
291
+
292
+ await waitFor(() => {
293
+ expect(result.current.isSuccess).toBe(true);
294
+ });
295
+
296
+ expect(result.current.data).toEqual(mockData);
297
+ expect(result.current.error).toBeNull();
298
+ expect(mockedApiClient.get).toHaveBeenCalledWith('/users/1');
299
+ });
300
+
301
+ it('handles empty response data', async () => {
302
+ mockedApiClient.get.mockResolvedValueOnce({ data: null });
303
+
304
+ const { result } = renderHook(
305
+ () => useApi('empty', '/empty'),
306
+ { wrapper: createWrapper() }
307
+ );
308
+
309
+ await waitFor(() => {
310
+ expect(result.current.isSuccess).toBe(true);
311
+ });
312
+
313
+ expect(result.current.data).toBeNull();
314
+ });
315
+ });
316
+
317
+ describe('Error Handling', () => {
318
+ it('handles API errors correctly', async () => {
319
+ const mockError = new Error('API Error');
320
+ mockedApiClient.get.mockRejectedValueOnce(mockError);
321
+
322
+ const { result } = renderHook(
323
+ () => useApi('error', '/error'),
324
+ { wrapper: createWrapper() }
325
+ );
326
+
327
+ await waitFor(() => {
328
+ expect(result.current.isError).toBe(true);
329
+ });
330
+
331
+ expect(result.current.error).toEqual(mockError);
332
+ expect(result.current.data).toBeUndefined();
333
+ });
334
+
335
+ it('handles network errors', async () => {
336
+ const networkError = new Error('Network Error');
337
+ networkError.name = 'NetworkError';
338
+ mockedApiClient.get.mockRejectedValueOnce(networkError);
339
+
340
+ const { result } = renderHook(
341
+ () => useApi('network-error', '/network-error'),
342
+ { wrapper: createWrapper() }
343
+ );
344
+
345
+ await waitFor(() => {
346
+ expect(result.current.isError).toBe(true);
347
+ });
348
+
349
+ expect(result.current.error).toEqual(networkError);
350
+ });
351
+ });
352
+
353
+ describe('Configuration Options', () => {
354
+ it('respects enabled option', async () => {
355
+ const { result } = renderHook(
356
+ () => useApi('disabled', '/disabled', { enabled: false }),
357
+ { wrapper: createWrapper() }
358
+ );
359
+
360
+ expect(result.current.isLoading).toBe(false);
361
+ expect(result.current.isFetching).toBe(false);
362
+ expect(mockedApiClient.get).not.toHaveBeenCalled();
363
+ });
364
+
365
+ it('respects stale time option', async () => {
366
+ const mockData = { id: 1, name: 'Test' };
367
+ mockedApiClient.get.mockResolvedValue({ data: mockData });
368
+
369
+ const { result, rerender } = renderHook(
370
+ () => useApi('stale', '/stale', { staleTime: 10000 }),
371
+ { wrapper: createWrapper() }
372
+ );
373
+
374
+ await waitFor(() => {
375
+ expect(result.current.isSuccess).toBe(true);
376
+ });
377
+
378
+ // Rerender should not trigger new fetch due to stale time
379
+ rerender();
380
+ expect(mockedApiClient.get).toHaveBeenCalledTimes(1);
381
+ });
382
+ });
383
+ });
384
+
385
+ describe('useApiMutation Hook', () => {
386
+ beforeEach(() => {
387
+ jest.clearAllMocks();
388
+ });
389
+
390
+ describe('Successful Mutations', () => {
391
+ it('executes mutation successfully', async () => {
392
+ const mockData = { id: 1, name: 'Created User' };
393
+ const mutationFn = jest.fn().mockResolvedValue(mockData);
394
+ const onSuccess = jest.fn();
395
+
396
+ const { result } = renderHook(
397
+ () => useApiMutation(mutationFn, { onSuccess }),
398
+ { wrapper: createWrapper() }
399
+ );
400
+
401
+ const variables = { name: 'Test User', email: 'test@example.com' };
402
+ result.current.mutate(variables);
403
+
404
+ await waitFor(() => {
405
+ expect(result.current.isSuccess).toBe(true);
406
+ });
407
+
408
+ expect(mutationFn).toHaveBeenCalledWith(variables);
409
+ expect(onSuccess).toHaveBeenCalledWith(mockData);
410
+ expect(result.current.data).toEqual(mockData);
411
+ });
412
+
413
+ it('invalidates queries on success', async () => {
414
+ const queryClient = new QueryClient();
415
+ const invalidateQueriesSpy = jest.spyOn(queryClient, 'invalidateQueries');
416
+
417
+ const mockData = { id: 1, name: 'Updated User' };
418
+ const mutationFn = jest.fn().mockResolvedValue(mockData);
419
+
420
+ const wrapper = ({ children }: { children: React.ReactNode }) => (
421
+ <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
422
+ );
423
+
424
+ const { result } = renderHook(
425
+ () => useApiMutation(mutationFn, { invalidateKeys: ['users'] }),
426
+ { wrapper }
427
+ );
428
+
429
+ result.current.mutate({ id: 1, name: 'Updated User' });
430
+
431
+ await waitFor(() => {
432
+ expect(result.current.isSuccess).toBe(true);
433
+ });
434
+
435
+ expect(invalidateQueriesSpy).toHaveBeenCalledWith({ queryKey: ['users'] });
436
+ });
437
+ });
438
+
439
+ describe('Error Handling', () => {
440
+ it('handles mutation errors', async () => {
441
+ const mockError = new Error('Mutation failed');
442
+ const mutationFn = jest.fn().mockRejectedValue(mockError);
443
+ const onError = jest.fn();
444
+
445
+ const { result } = renderHook(
446
+ () => useApiMutation(mutationFn, { onError }),
447
+ { wrapper: createWrapper() }
448
+ );
449
+
450
+ result.current.mutate({ data: 'test' });
451
+
452
+ await waitFor(() => {
453
+ expect(result.current.isError).toBe(true);
454
+ });
455
+
456
+ expect(onError).toHaveBeenCalledWith(mockError);
457
+ expect(result.current.error).toEqual(mockError);
458
+ });
459
+ });
460
+ });
461
+ ```
462
+
463
+ ```bash
464
+ # Generate comprehensive unit tests with agent
465
+ npx claude-flow sparc run tester "Complete unit testing suite for components, hooks, and utilities"
466
+ ```
467
+
468
+ ## šŸ”— Integration Testing
469
+
470
+ ### 1. API Integration Tests
471
+
472
+ **tests/integration/api/auth.test.ts** (Agent-generated):
473
+ ```typescript
474
+ import request from 'supertest';
475
+ import { app } from '../../../src/app';
476
+ import { User } from '../../../src/models/User.model';
477
+ import { connectTestDB, clearTestDB, closeTestDB } from '../../utils/test-db';
478
+
479
+ describe('Authentication API Integration', () => {
480
+ beforeAll(async () => {
481
+ await connectTestDB();
482
+ });
483
+
484
+ afterAll(async () => {
485
+ await closeTestDB();
486
+ });
487
+
488
+ afterEach(async () => {
489
+ await clearTestDB();
490
+ });
491
+
492
+ describe('POST /api/auth/register', () => {
493
+ const validUserData = {
494
+ name: 'John Doe',
495
+ email: 'john@example.com',
496
+ password: 'password123',
497
+ };
498
+
499
+ it('should register a new user successfully', async () => {
500
+ const response = await request(app)
501
+ .post('/api/auth/register')
502
+ .send(validUserData)
503
+ .expect(201);
504
+
505
+ expect(response.body).toMatchObject({
506
+ success: true,
507
+ data: {
508
+ user: {
509
+ name: validUserData.name,
510
+ email: validUserData.email,
511
+ role: 'user',
512
+ },
513
+ },
514
+ });
515
+
516
+ expect(response.body.token).toBeDefined();
517
+ expect(response.body.data.user.password).toBeUndefined();
518
+
519
+ // Verify user was created in database
520
+ const user = await User.findOne({ email: validUserData.email });
521
+ expect(user).toBeTruthy();
522
+ expect(user?.name).toBe(validUserData.name);
523
+ });
524
+
525
+ it('should hash the password before saving', async () => {
526
+ await request(app)
527
+ .post('/api/auth/register')
528
+ .send(validUserData)
529
+ .expect(201);
530
+
531
+ const user = await User.findOne({ email: validUserData.email }).select('+password');
532
+ expect(user?.password).not.toBe(validUserData.password);
533
+ expect(user?.password.length).toBeGreaterThan(50); // Hashed password length
534
+ });
535
+
536
+ it('should reject duplicate email addresses', async () => {
537
+ // Create first user
538
+ await request(app)
539
+ .post('/api/auth/register')
540
+ .send(validUserData)
541
+ .expect(201);
542
+
543
+ // Attempt to create second user with same email
544
+ const response = await request(app)
545
+ .post('/api/auth/register')
546
+ .send(validUserData)
547
+ .expect(400);
548
+
549
+ expect(response.body.success).toBe(false);
550
+ expect(response.body.message).toContain('already exists');
551
+ });
552
+
553
+ it('should validate required fields', async () => {
554
+ const testCases = [
555
+ { field: 'name', data: { ...validUserData, name: '' } },
556
+ { field: 'email', data: { ...validUserData, email: '' } },
557
+ { field: 'password', data: { ...validUserData, password: '' } },
558
+ ];
559
+
560
+ for (const testCase of testCases) {
561
+ const response = await request(app)
562
+ .post('/api/auth/register')
563
+ .send(testCase.data)
564
+ .expect(400);
565
+
566
+ expect(response.body.success).toBe(false);
567
+ }
568
+ });
569
+
570
+ it('should validate email format', async () => {
571
+ const invalidEmails = ['invalid', 'invalid@', '@invalid.com', 'invalid.com'];
572
+
573
+ for (const email of invalidEmails) {
574
+ const response = await request(app)
575
+ .post('/api/auth/register')
576
+ .send({ ...validUserData, email })
577
+ .expect(400);
578
+
579
+ expect(response.body.success).toBe(false);
580
+ }
581
+ });
582
+
583
+ it('should validate password strength', async () => {
584
+ const weakPasswords = ['123', 'pass', '12345'];
585
+
586
+ for (const password of weakPasswords) {
587
+ const response = await request(app)
588
+ .post('/api/auth/register')
589
+ .send({ ...validUserData, password })
590
+ .expect(400);
591
+
592
+ expect(response.body.success).toBe(false);
593
+ }
594
+ });
595
+ });
596
+
597
+ describe('POST /api/auth/login', () => {
598
+ const userData = {
599
+ name: 'John Doe',
600
+ email: 'john@example.com',
601
+ password: 'password123',
602
+ };
603
+
604
+ beforeEach(async () => {
605
+ // Register user for login tests
606
+ await request(app)
607
+ .post('/api/auth/register')
608
+ .send(userData)
609
+ .expect(201);
610
+ });
611
+
612
+ it('should login with valid credentials', async () => {
613
+ const response = await request(app)
614
+ .post('/api/auth/login')
615
+ .send({
616
+ email: userData.email,
617
+ password: userData.password,
618
+ })
619
+ .expect(200);
620
+
621
+ expect(response.body).toMatchObject({
622
+ success: true,
623
+ data: {
624
+ user: {
625
+ name: userData.name,
626
+ email: userData.email,
627
+ },
628
+ },
629
+ });
630
+
631
+ expect(response.body.token).toBeDefined();
632
+ expect(response.body.data.user.password).toBeUndefined();
633
+ });
634
+
635
+ it('should reject invalid email', async () => {
636
+ const response = await request(app)
637
+ .post('/api/auth/login')
638
+ .send({
639
+ email: 'wrong@example.com',
640
+ password: userData.password,
641
+ })
642
+ .expect(401);
643
+
644
+ expect(response.body.success).toBe(false);
645
+ expect(response.body.message).toContain('Invalid credentials');
646
+ });
647
+
648
+ it('should reject invalid password', async () => {
649
+ const response = await request(app)
650
+ .post('/api/auth/login')
651
+ .send({
652
+ email: userData.email,
653
+ password: 'wrongpassword',
654
+ })
655
+ .expect(401);
656
+
657
+ expect(response.body.success).toBe(false);
658
+ expect(response.body.message).toContain('Invalid credentials');
659
+ });
660
+
661
+ it('should require email and password', async () => {
662
+ const testCases = [
663
+ { email: '', password: userData.password },
664
+ { email: userData.email, password: '' },
665
+ { email: '', password: '' },
666
+ ];
667
+
668
+ for (const testCase of testCases) {
669
+ const response = await request(app)
670
+ .post('/api/auth/login')
671
+ .send(testCase)
672
+ .expect(400);
673
+
674
+ expect(response.body.success).toBe(false);
675
+ }
676
+ });
677
+
678
+ it('should handle case-insensitive email login', async () => {
679
+ const response = await request(app)
680
+ .post('/api/auth/login')
681
+ .send({
682
+ email: userData.email.toUpperCase(),
683
+ password: userData.password,
684
+ })
685
+ .expect(200);
686
+
687
+ expect(response.body.success).toBe(true);
688
+ });
689
+ });
690
+
691
+ describe('GET /api/auth/me', () => {
692
+ let authToken: string;
693
+ const userData = {
694
+ name: 'John Doe',
695
+ email: 'john@example.com',
696
+ password: 'password123',
697
+ };
698
+
699
+ beforeEach(async () => {
700
+ const response = await request(app)
701
+ .post('/api/auth/register')
702
+ .send(userData)
703
+ .expect(201);
704
+
705
+ authToken = response.body.token;
706
+ });
707
+
708
+ it('should return user profile with valid token', async () => {
709
+ const response = await request(app)
710
+ .get('/api/auth/me')
711
+ .set('Authorization', `Bearer ${authToken}`)
712
+ .expect(200);
713
+
714
+ expect(response.body).toMatchObject({
715
+ success: true,
716
+ data: {
717
+ user: {
718
+ name: userData.name,
719
+ email: userData.email,
720
+ },
721
+ },
722
+ });
723
+
724
+ expect(response.body.data.user.password).toBeUndefined();
725
+ });
726
+
727
+ it('should reject requests without token', async () => {
728
+ const response = await request(app)
729
+ .get('/api/auth/me')
730
+ .expect(401);
731
+
732
+ expect(response.body.success).toBe(false);
733
+ expect(response.body.message).toContain('token');
734
+ });
735
+
736
+ it('should reject requests with invalid token', async () => {
737
+ const response = await request(app)
738
+ .get('/api/auth/me')
739
+ .set('Authorization', 'Bearer invalid-token')
740
+ .expect(401);
741
+
742
+ expect(response.body.success).toBe(false);
743
+ });
744
+
745
+ it('should reject requests with malformed authorization header', async () => {
746
+ const testCases = [
747
+ 'invalid-header',
748
+ 'Bearer',
749
+ 'Token ' + authToken,
750
+ authToken,
751
+ ];
752
+
753
+ for (const header of testCases) {
754
+ const response = await request(app)
755
+ .get('/api/auth/me')
756
+ .set('Authorization', header)
757
+ .expect(401);
758
+
759
+ expect(response.body.success).toBe(false);
760
+ }
761
+ });
762
+ });
763
+
764
+ describe('Rate Limiting', () => {
765
+ it('should apply rate limiting to registration endpoint', async () => {
766
+ const requests = Array(6).fill(null).map((_, i) =>
767
+ request(app)
768
+ .post('/api/auth/register')
769
+ .send({
770
+ name: `User ${i}`,
771
+ email: `user${i}@example.com`,
772
+ password: 'password123',
773
+ })
774
+ );
775
+
776
+ const responses = await Promise.all(requests);
777
+
778
+ // First 5 should succeed, 6th should be rate limited
779
+ expect(responses.slice(0, 5).every(res => res.status === 201)).toBe(true);
780
+ expect(responses[5].status).toBe(429);
781
+ });
782
+ });
783
+ });
784
+ ```
785
+
786
+ ### 2. Database Integration Tests
787
+
788
+ **tests/integration/database/user.test.ts** (Agent-generated):
789
+ ```typescript
790
+ import { User, IUser } from '../../../src/models/User.model';
791
+ import { connectTestDB, clearTestDB, closeTestDB } from '../../utils/test-db';
792
+
793
+ describe('User Model Integration', () => {
794
+ beforeAll(async () => {
795
+ await connectTestDB();
796
+ });
797
+
798
+ afterAll(async () => {
799
+ await closeTestDB();
800
+ });
801
+
802
+ afterEach(async () => {
803
+ await clearTestDB();
804
+ });
805
+
806
+ describe('User Creation', () => {
807
+ it('should create a user with valid data', async () => {
808
+ const userData = {
809
+ name: 'John Doe',
810
+ email: 'john@example.com',
811
+ password: 'hashedpassword',
812
+ };
813
+
814
+ const user = new User(userData);
815
+ const savedUser = await user.save();
816
+
817
+ expect(savedUser._id).toBeDefined();
818
+ expect(savedUser.name).toBe(userData.name);
819
+ expect(savedUser.email).toBe(userData.email);
820
+ expect(savedUser.role).toBe('user'); // Default role
821
+ expect(savedUser.isActive).toBe(true); // Default active
822
+ expect(savedUser.createdAt).toBeDefined();
823
+ expect(savedUser.updatedAt).toBeDefined();
824
+ });
825
+
826
+ it('should enforce unique email constraint', async () => {
827
+ const userData = {
828
+ name: 'John Doe',
829
+ email: 'john@example.com',
830
+ password: 'hashedpassword',
831
+ };
832
+
833
+ await User.create(userData);
834
+
835
+ // Attempt to create user with same email
836
+ await expect(User.create(userData)).rejects.toThrow();
837
+ });
838
+
839
+ it('should validate required fields', async () => {
840
+ const testCases = [
841
+ { name: '', email: 'test@example.com', password: 'password' },
842
+ { name: 'Test', email: '', password: 'password' },
843
+ { name: 'Test', email: 'test@example.com', password: '' },
844
+ ];
845
+
846
+ for (const userData of testCases) {
847
+ await expect(User.create(userData)).rejects.toThrow();
848
+ }
849
+ });
850
+
851
+ it('should validate email format', async () => {
852
+ const invalidEmails = ['invalid', 'invalid@', '@invalid.com'];
853
+
854
+ for (const email of invalidEmails) {
855
+ const userData = {
856
+ name: 'Test User',
857
+ email,
858
+ password: 'password123',
859
+ };
860
+
861
+ await expect(User.create(userData)).rejects.toThrow();
862
+ }
863
+ });
864
+
865
+ it('should convert email to lowercase', async () => {
866
+ const userData = {
867
+ name: 'John Doe',
868
+ email: 'JOHN@EXAMPLE.COM',
869
+ password: 'hashedpassword',
870
+ };
871
+
872
+ const user = await User.create(userData);
873
+ expect(user.email).toBe('john@example.com');
874
+ });
875
+ });
876
+
877
+ describe('User Queries', () => {
878
+ beforeEach(async () => {
879
+ const users = [
880
+ {
881
+ name: 'John Doe',
882
+ email: 'john@example.com',
883
+ password: 'hashedpassword',
884
+ role: 'user',
885
+ isActive: true,
886
+ },
887
+ {
888
+ name: 'Jane Smith',
889
+ email: 'jane@example.com',
890
+ password: 'hashedpassword',
891
+ role: 'admin',
892
+ isActive: true,
893
+ },
894
+ {
895
+ name: 'Bob Johnson',
896
+ email: 'bob@example.com',
897
+ password: 'hashedpassword',
898
+ role: 'user',
899
+ isActive: false,
900
+ },
901
+ ];
902
+
903
+ await User.create(users);
904
+ });
905
+
906
+ it('should find users by email', async () => {
907
+ const user = await User.findOne({ email: 'john@example.com' });
908
+ expect(user).toBeTruthy();
909
+ expect(user?.name).toBe('John Doe');
910
+ });
911
+
912
+ it('should find users by role', async () => {
913
+ const adminUsers = await User.find({ role: 'admin' });
914
+ expect(adminUsers).toHaveLength(1);
915
+ expect(adminUsers[0].name).toBe('Jane Smith');
916
+ });
917
+
918
+ it('should find active users', async () => {
919
+ const activeUsers = await User.find({ isActive: true });
920
+ expect(activeUsers).toHaveLength(2);
921
+ });
922
+
923
+ it('should exclude password by default', async () => {
924
+ const user = await User.findOne({ email: 'john@example.com' });
925
+ expect(user?.password).toBeUndefined();
926
+ });
927
+
928
+ it('should include password when explicitly selected', async () => {
929
+ const user = await User.findOne({ email: 'john@example.com' }).select('+password');
930
+ expect(user?.password).toBeDefined();
931
+ });
932
+ });
933
+
934
+ describe('User Updates', () => {
935
+ let userId: string;
936
+
937
+ beforeEach(async () => {
938
+ const user = await User.create({
939
+ name: 'John Doe',
940
+ email: 'john@example.com',
941
+ password: 'hashedpassword',
942
+ });
943
+ userId = user._id.toString();
944
+ });
945
+
946
+ it('should update user fields', async () => {
947
+ const updateData = { name: 'John Smith' };
948
+ const updatedUser = await User.findByIdAndUpdate(
949
+ userId,
950
+ updateData,
951
+ { new: true }
952
+ );
953
+
954
+ expect(updatedUser?.name).toBe('John Smith');
955
+ expect(updatedUser?.email).toBe('john@example.com'); // Unchanged
956
+ });
957
+
958
+ it('should update timestamps on modification', async () => {
959
+ const originalUser = await User.findById(userId);
960
+ const originalUpdatedAt = originalUser?.updatedAt;
961
+
962
+ // Wait a moment to ensure timestamp difference
963
+ await new Promise(resolve => setTimeout(resolve, 10));
964
+
965
+ await User.findByIdAndUpdate(userId, { name: 'Updated Name' });
966
+ const updatedUser = await User.findById(userId);
967
+
968
+ expect(updatedUser?.updatedAt.getTime()).toBeGreaterThan(
969
+ originalUpdatedAt?.getTime() || 0
970
+ );
971
+ });
972
+
973
+ it('should validate updates', async () => {
974
+ await expect(
975
+ User.findByIdAndUpdate(
976
+ userId,
977
+ { email: 'invalid-email' },
978
+ { runValidators: true }
979
+ )
980
+ ).rejects.toThrow();
981
+ });
982
+ });
983
+
984
+ describe('User Indexes', () => {
985
+ it('should have index on email field', async () => {
986
+ const indexes = await User.collection.getIndexes();
987
+ const emailIndex = Object.keys(indexes).find(key =>
988
+ key.includes('email')
989
+ );
990
+ expect(emailIndex).toBeDefined();
991
+ });
992
+
993
+ it('should have index on isActive field', async () => {
994
+ const indexes = await User.collection.getIndexes();
995
+ const isActiveIndex = Object.keys(indexes).find(key =>
996
+ key.includes('isActive')
997
+ );
998
+ expect(isActiveIndex).toBeDefined();
999
+ });
1000
+ });
1001
+ });
1002
+ ```
1003
+
1004
+ ```bash
1005
+ # Generate integration tests with agent
1006
+ npx claude-flow sparc run tester "Comprehensive integration testing for API endpoints and database operations"
1007
+ ```
1008
+
1009
+ ## 🌐 End-to-End Testing
1010
+
1011
+ ### 1. E2E Test Setup with Playwright
1012
+
1013
+ **tests/e2e/setup/global-setup.ts** (Agent-generated):
1014
+ ```typescript
1015
+ import { chromium, FullConfig } from '@playwright/test';
1016
+ import { connectTestDB, seedTestDB } from '../utils/test-db';
1017
+
1018
+ async function globalSetup(config: FullConfig) {
1019
+ // Setup test database
1020
+ await connectTestDB();
1021
+ await seedTestDB();
1022
+
1023
+ // Create browser instance for authentication
1024
+ const browser = await chromium.launch();
1025
+ const context = await browser.newContext();
1026
+ const page = await context.newPage();
1027
+
1028
+ // Login as admin and save auth state
1029
+ await page.goto('http://localhost:3000/login');
1030
+ await page.fill('[data-testid="email"]', 'admin@example.com');
1031
+ await page.fill('[data-testid="password"]', 'admin123');
1032
+ await page.click('[data-testid="login-button"]');
1033
+ await page.waitForURL('**/dashboard');
1034
+
1035
+ // Save admin auth state
1036
+ await context.storageState({ path: 'tests/e2e/auth/admin-auth.json' });
1037
+
1038
+ // Login as regular user and save auth state
1039
+ await page.goto('http://localhost:3000/logout');
1040
+ await page.goto('http://localhost:3000/login');
1041
+ await page.fill('[data-testid="email"]', 'user@example.com');
1042
+ await page.fill('[data-testid="password"]', 'user123');
1043
+ await page.click('[data-testid="login-button"]');
1044
+ await page.waitForURL('**/dashboard');
1045
+
1046
+ // Save user auth state
1047
+ await context.storageState({ path: 'tests/e2e/auth/user-auth.json' });
1048
+
1049
+ await browser.close();
1050
+ }
1051
+
1052
+ export default globalSetup;
1053
+ ```
1054
+
1055
+ ### 2. User Journey Tests
1056
+
1057
+ **tests/e2e/user-flows/authentication.spec.ts** (Agent-generated):
1058
+ ```typescript
1059
+ import { test, expect } from '@playwright/test';
1060
+
1061
+ test.describe('Authentication Flow', () => {
1062
+ test.beforeEach(async ({ page }) => {
1063
+ await page.goto('/');
1064
+ });
1065
+
1066
+ test('should allow user to register and login', async ({ page }) => {
1067
+ const timestamp = Date.now();
1068
+ const email = `test${timestamp}@example.com`;
1069
+ const password = 'testpassword123';
1070
+ const name = 'Test User';
1071
+
1072
+ // Navigate to registration
1073
+ await page.click('[data-testid="register-link"]');
1074
+ await expect(page).toHaveURL('/register');
1075
+
1076
+ // Fill registration form
1077
+ await page.fill('[data-testid="name"]', name);
1078
+ await page.fill('[data-testid="email"]', email);
1079
+ await page.fill('[data-testid="password"]', password);
1080
+ await page.fill('[data-testid="confirm-password"]', password);
1081
+
1082
+ // Submit registration
1083
+ await page.click('[data-testid="register-button"]');
1084
+
1085
+ // Should redirect to dashboard after successful registration
1086
+ await expect(page).toHaveURL('/dashboard');
1087
+ await expect(page.locator('[data-testid="user-name"]')).toContainText(name);
1088
+
1089
+ // Logout
1090
+ await page.click('[data-testid="user-menu"]');
1091
+ await page.click('[data-testid="logout-button"]');
1092
+ await expect(page).toHaveURL('/');
1093
+
1094
+ // Login with the same credentials
1095
+ await page.click('[data-testid="login-link"]');
1096
+ await page.fill('[data-testid="email"]', email);
1097
+ await page.fill('[data-testid="password"]', password);
1098
+ await page.click('[data-testid="login-button"]');
1099
+
1100
+ // Should be redirected to dashboard
1101
+ await expect(page).toHaveURL('/dashboard');
1102
+ await expect(page.locator('[data-testid="user-name"]')).toContainText(name);
1103
+ });
1104
+
1105
+ test('should show validation errors for invalid registration', async ({ page }) => {
1106
+ await page.click('[data-testid="register-link"]');
1107
+
1108
+ // Submit empty form
1109
+ await page.click('[data-testid="register-button"]');
1110
+
1111
+ // Check for validation errors
1112
+ await expect(page.locator('[data-testid="name-error"]')).toBeVisible();
1113
+ await expect(page.locator('[data-testid="email-error"]')).toBeVisible();
1114
+ await expect(page.locator('[data-testid="password-error"]')).toBeVisible();
1115
+
1116
+ // Test invalid email format
1117
+ await page.fill('[data-testid="email"]', 'invalid-email');
1118
+ await page.blur('[data-testid="email"]');
1119
+ await expect(page.locator('[data-testid="email-error"]')).toContainText('valid email');
1120
+
1121
+ // Test password mismatch
1122
+ await page.fill('[data-testid="password"]', 'password123');
1123
+ await page.fill('[data-testid="confirm-password"]', 'different');
1124
+ await page.blur('[data-testid="confirm-password"]');
1125
+ await expect(page.locator('[data-testid="confirm-password-error"]')).toContainText('match');
1126
+ });
1127
+
1128
+ test('should show error for invalid login credentials', async ({ page }) => {
1129
+ await page.click('[data-testid="login-link"]');
1130
+
1131
+ // Try to login with invalid credentials
1132
+ await page.fill('[data-testid="email"]', 'invalid@example.com');
1133
+ await page.fill('[data-testid="password"]', 'wrongpassword');
1134
+ await page.click('[data-testid="login-button"]');
1135
+
1136
+ // Should show error message
1137
+ await expect(page.locator('[data-testid="error-message"]')).toContainText('Invalid credentials');
1138
+ await expect(page).toHaveURL('/login');
1139
+ });
1140
+
1141
+ test('should handle forgot password flow', async ({ page }) => {
1142
+ await page.click('[data-testid="login-link"]');
1143
+ await page.click('[data-testid="forgot-password-link"]');
1144
+ await expect(page).toHaveURL('/forgot-password');
1145
+
1146
+ // Fill email for password reset
1147
+ await page.fill('[data-testid="email"]', 'user@example.com');
1148
+ await page.click('[data-testid="reset-button"]');
1149
+
1150
+ // Should show success message
1151
+ await expect(page.locator('[data-testid="success-message"]')).toContainText('reset link sent');
1152
+ });
1153
+
1154
+ test('should persist authentication across page refreshes', async ({ page }) => {
1155
+ // Login
1156
+ await page.click('[data-testid="login-link"]');
1157
+ await page.fill('[data-testid="email"]', 'user@example.com');
1158
+ await page.fill('[data-testid="password"]', 'user123');
1159
+ await page.click('[data-testid="login-button"]');
1160
+ await expect(page).toHaveURL('/dashboard');
1161
+
1162
+ // Refresh page
1163
+ await page.reload();
1164
+
1165
+ // Should still be authenticated
1166
+ await expect(page).toHaveURL('/dashboard');
1167
+ await expect(page.locator('[data-testid="user-name"]')).toBeVisible();
1168
+ });
1169
+ });
1170
+ ```
1171
+
1172
+ ### 3. E2E Product Management Tests
1173
+
1174
+ **tests/e2e/admin-flows/product-management.spec.ts** (Agent-generated):
1175
+ ```typescript
1176
+ import { test, expect } from '@playwright/test';
1177
+
1178
+ test.describe('Product Management', () => {
1179
+ test.use({ storageState: 'tests/e2e/auth/admin-auth.json' });
1180
+
1181
+ test('should create, edit, and delete products', async ({ page }) => {
1182
+ await page.goto('/admin/products');
1183
+
1184
+ // Create new product
1185
+ await page.click('[data-testid="add-product-button"]');
1186
+ await expect(page).toHaveURL('/admin/products/new');
1187
+
1188
+ const productName = `Test Product ${Date.now()}`;
1189
+ await page.fill('[data-testid="product-name"]', productName);
1190
+ await page.fill('[data-testid="product-description"]', 'Test product description');
1191
+ await page.fill('[data-testid="product-price"]', '29.99');
1192
+ await page.selectOption('[data-testid="product-category"]', 'electronics');
1193
+ await page.check('[data-testid="product-in-stock"]');
1194
+
1195
+ // Upload product image
1196
+ await page.setInputFiles(
1197
+ '[data-testid="product-image"]',
1198
+ 'tests/e2e/fixtures/test-image.jpg'
1199
+ );
1200
+
1201
+ // Save product
1202
+ await page.click('[data-testid="save-product-button"]');
1203
+ await expect(page).toHaveURL('/admin/products');
1204
+
1205
+ // Verify product appears in list
1206
+ await expect(page.locator('[data-testid="product-list"]')).toContainText(productName);
1207
+
1208
+ // Edit product
1209
+ await page.click(`[data-testid="edit-product-${productName}"]`);
1210
+ const updatedName = `${productName} Updated`;
1211
+ await page.fill('[data-testid="product-name"]', updatedName);
1212
+ await page.click('[data-testid="save-product-button"]');
1213
+
1214
+ // Verify updated name appears
1215
+ await expect(page.locator('[data-testid="product-list"]')).toContainText(updatedName);
1216
+
1217
+ // Delete product
1218
+ await page.click(`[data-testid="delete-product-${updatedName}"]`);
1219
+ await page.click('[data-testid="confirm-delete"]');
1220
+
1221
+ // Verify product is removed
1222
+ await expect(page.locator('[data-testid="product-list"]')).not.toContainText(updatedName);
1223
+ });
1224
+
1225
+ test('should search and filter products', async ({ page }) => {
1226
+ await page.goto('/admin/products');
1227
+
1228
+ // Search for products
1229
+ await page.fill('[data-testid="search-input"]', 'iPhone');
1230
+ await page.press('[data-testid="search-input"]', 'Enter');
1231
+
1232
+ // Verify search results
1233
+ const productItems = page.locator('[data-testid="product-item"]');
1234
+ await expect(productItems).toHaveCountGreaterThan(0);
1235
+
1236
+ // Filter by category
1237
+ await page.selectOption('[data-testid="category-filter"]', 'electronics');
1238
+ await expect(productItems).toHaveCountGreaterThan(0);
1239
+
1240
+ // Filter by stock status
1241
+ await page.selectOption('[data-testid="stock-filter"]', 'in-stock');
1242
+ await expect(productItems).toHaveCountGreaterThan(0);
1243
+
1244
+ // Clear filters
1245
+ await page.click('[data-testid="clear-filters"]');
1246
+ await expect(productItems).toHaveCountGreaterThan(0);
1247
+ });
1248
+
1249
+ test('should bulk manage products', async ({ page }) => {
1250
+ await page.goto('/admin/products');
1251
+
1252
+ // Select multiple products
1253
+ await page.check('[data-testid="select-all-products"]');
1254
+
1255
+ // Verify bulk actions are enabled
1256
+ await expect(page.locator('[data-testid="bulk-actions"]')).toBeVisible();
1257
+
1258
+ // Bulk update status
1259
+ await page.selectOption('[data-testid="bulk-action-select"]', 'update-stock');
1260
+ await page.click('[data-testid="execute-bulk-action"]');
1261
+
1262
+ // Fill bulk update form
1263
+ await page.check('[data-testid="bulk-in-stock"]');
1264
+ await page.click('[data-testid="confirm-bulk-update"]');
1265
+
1266
+ // Verify success message
1267
+ await expect(page.locator('[data-testid="success-message"]')).toContainText('updated successfully');
1268
+ });
1269
+
1270
+ test('should handle product image upload and preview', async ({ page }) => {
1271
+ await page.goto('/admin/products/new');
1272
+
1273
+ // Upload image
1274
+ await page.setInputFiles(
1275
+ '[data-testid="product-image"]',
1276
+ 'tests/e2e/fixtures/test-image.jpg'
1277
+ );
1278
+
1279
+ // Verify image preview appears
1280
+ await expect(page.locator('[data-testid="image-preview"]')).toBeVisible();
1281
+
1282
+ // Remove image
1283
+ await page.click('[data-testid="remove-image"]');
1284
+ await expect(page.locator('[data-testid="image-preview"]')).not.toBeVisible();
1285
+ });
1286
+
1287
+ test('should validate product form inputs', async ({ page }) => {
1288
+ await page.goto('/admin/products/new');
1289
+
1290
+ // Submit empty form
1291
+ await page.click('[data-testid="save-product-button"]');
1292
+
1293
+ // Check validation errors
1294
+ await expect(page.locator('[data-testid="name-error"]')).toContainText('required');
1295
+ await expect(page.locator('[data-testid="price-error"]')).toContainText('required');
1296
+ await expect(page.locator('[data-testid="category-error"]')).toContainText('required');
1297
+
1298
+ // Test invalid price
1299
+ await page.fill('[data-testid="product-price"]', 'invalid');
1300
+ await page.blur('[data-testid="product-price"]');
1301
+ await expect(page.locator('[data-testid="price-error"]')).toContainText('valid number');
1302
+
1303
+ // Test negative price
1304
+ await page.fill('[data-testid="product-price"]', '-10');
1305
+ await page.blur('[data-testid="product-price"]');
1306
+ await expect(page.locator('[data-testid="price-error"]')).toContainText('positive');
1307
+ });
1308
+ });
1309
+ ```
1310
+
1311
+ ```bash
1312
+ # Generate E2E tests with agent
1313
+ npx claude-flow sparc run tester "Comprehensive end-to-end testing with Playwright for user journeys and admin workflows"
1314
+ ```
1315
+
1316
+ ## ⚔ Performance Testing
1317
+
1318
+ ### 1. Load Testing with K6
1319
+
1320
+ **tests/performance/load/api-load.test.js** (Agent-generated):
1321
+ ```javascript
1322
+ import http from 'k6/http';
1323
+ import { check, sleep, group } from 'k6';
1324
+ import { Rate, Counter, Trend } from 'k6/metrics';
1325
+
1326
+ // Custom metrics
1327
+ const errorRate = new Rate('errors');
1328
+ const apiCalls = new Counter('api_calls');
1329
+ const responseTime = new Trend('response_time');
1330
+
1331
+ // Test configuration
1332
+ export const options = {
1333
+ stages: [
1334
+ { duration: '2m', target: 10 }, // Ramp up
1335
+ { duration: '5m', target: 100 }, // Stay at 100 users
1336
+ { duration: '2m', target: 200 }, // Ramp up to 200 users
1337
+ { duration: '5m', target: 200 }, // Stay at 200 users
1338
+ { duration: '2m', target: 0 }, // Ramp down
1339
+ ],
1340
+ thresholds: {
1341
+ http_req_duration: ['p(95)<500', 'p(99)<1000'], // 95% under 500ms, 99% under 1s
1342
+ http_req_failed: ['rate<0.05'], // Error rate under 5%
1343
+ errors: ['rate<0.1'], // Custom error rate under 10%
1344
+ api_calls: ['count>10000'], // Minimum API calls
1345
+ },
1346
+ };
1347
+
1348
+ const BASE_URL = __ENV.API_URL || 'http://localhost:3001/api';
1349
+ let authToken = '';
1350
+
1351
+ export function setup() {
1352
+ // Login to get auth token
1353
+ const loginRes = http.post(`${BASE_URL}/auth/login`, {
1354
+ email: 'test@example.com',
1355
+ password: 'password123',
1356
+ });
1357
+
1358
+ if (loginRes.status === 200) {
1359
+ authToken = JSON.parse(loginRes.body).token;
1360
+ }
1361
+
1362
+ return { authToken };
1363
+ }
1364
+
1365
+ export default function (data) {
1366
+ const token = data.authToken;
1367
+
1368
+ group('API Load Test', () => {
1369
+ // Test product listing
1370
+ group('Product Listing', () => {
1371
+ const res = http.get(`${BASE_URL}/products?page=1&limit=20`);
1372
+ apiCalls.add(1);
1373
+ responseTime.add(res.timings.duration);
1374
+
1375
+ const success = check(res, {
1376
+ 'products list status is 200': (r) => r.status === 200,
1377
+ 'products list has data': (r) => {
1378
+ try {
1379
+ const body = JSON.parse(r.body);
1380
+ return body.data && body.data.length > 0;
1381
+ } catch {
1382
+ return false;
1383
+ }
1384
+ },
1385
+ 'response time < 500ms': (r) => r.timings.duration < 500,
1386
+ });
1387
+
1388
+ errorRate.add(!success);
1389
+ });
1390
+
1391
+ // Test product search
1392
+ group('Product Search', () => {
1393
+ const searchTerms = ['phone', 'laptop', 'book', 'electronics'];
1394
+ const term = searchTerms[Math.floor(Math.random() * searchTerms.length)];
1395
+
1396
+ const res = http.get(`${BASE_URL}/products/search?q=${term}`);
1397
+ apiCalls.add(1);
1398
+ responseTime.add(res.timings.duration);
1399
+
1400
+ const success = check(res, {
1401
+ 'search status is 200': (r) => r.status === 200,
1402
+ 'search response is valid': (r) => {
1403
+ try {
1404
+ const body = JSON.parse(r.body);
1405
+ return body.success !== undefined;
1406
+ } catch {
1407
+ return false;
1408
+ }
1409
+ },
1410
+ 'response time < 300ms': (r) => r.timings.duration < 300,
1411
+ });
1412
+
1413
+ errorRate.add(!success);
1414
+ });
1415
+
1416
+ // Test authenticated endpoints
1417
+ if (token) {
1418
+ group('Authenticated Requests', () => {
1419
+ const headers = { Authorization: `Bearer ${token}` };
1420
+
1421
+ const res = http.get(`${BASE_URL}/auth/me`, { headers });
1422
+ apiCalls.add(1);
1423
+ responseTime.add(res.timings.duration);
1424
+
1425
+ const success = check(res, {
1426
+ 'auth check status is 200': (r) => r.status === 200,
1427
+ 'user data is returned': (r) => {
1428
+ try {
1429
+ const body = JSON.parse(r.body);
1430
+ return body.data && body.data.user;
1431
+ } catch {
1432
+ return false;
1433
+ }
1434
+ },
1435
+ 'response time < 200ms': (r) => r.timings.duration < 200,
1436
+ });
1437
+
1438
+ errorRate.add(!success);
1439
+ });
1440
+ }
1441
+
1442
+ // Test database-heavy operations
1443
+ group('Database Operations', () => {
1444
+ const categoryRes = http.get(`${BASE_URL}/products?category=electronics&limit=50`);
1445
+ apiCalls.add(1);
1446
+ responseTime.add(categoryRes.timings.duration);
1447
+
1448
+ const success = check(categoryRes, {
1449
+ 'category filter status is 200': (r) => r.status === 200,
1450
+ 'category filter works': (r) => {
1451
+ try {
1452
+ const body = JSON.parse(r.body);
1453
+ return body.data && Array.isArray(body.data);
1454
+ } catch {
1455
+ return false;
1456
+ }
1457
+ },
1458
+ 'response time < 400ms': (r) => r.timings.duration < 400,
1459
+ });
1460
+
1461
+ errorRate.add(!success);
1462
+ });
1463
+ });
1464
+
1465
+ sleep(Math.random() * 2 + 1); // Random sleep between 1-3 seconds
1466
+ }
1467
+
1468
+ export function teardown(data) {
1469
+ // Cleanup operations if needed
1470
+ console.log('Load test completed');
1471
+ }
1472
+
1473
+ export function handleSummary(data) {
1474
+ const avgResponseTime = data.metrics.response_time.avg;
1475
+ const p95ResponseTime = data.metrics['http_req_duration{p=95}'].value;
1476
+ const errorRate = data.metrics.errors.rate;
1477
+ const totalRequests = data.metrics.api_calls.count;
1478
+
1479
+ return {
1480
+ 'load-test-summary.json': JSON.stringify(data, null, 2),
1481
+ stdout: `
1482
+ ╔══════════════════════════════════════════════════════════════╗
1483
+ ā•‘ LOAD TEST RESULTS ā•‘
1484
+ ╠══════════════════════════════════════════════════════════════╣
1485
+ ā•‘ Total API Calls: ${String(totalRequests).padStart(10)} requests ā•‘
1486
+ ā•‘ Average Response Time: ${String(avgResponseTime.toFixed(2)).padStart(10)}ms ā•‘
1487
+ ā•‘ 95th Percentile: ${String(p95ResponseTime.toFixed(2)).padStart(10)}ms ā•‘
1488
+ ā•‘ Error Rate: ${String((errorRate * 100).toFixed(2)).padStart(10)}% ā•‘
1489
+ ā•‘ ā•‘
1490
+ ā•‘ Status: ${errorRate < 0.05 ? 'PASSED āœ…' : 'FAILED āŒ'} ā•‘
1491
+ ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•
1492
+ `,
1493
+ };
1494
+ }
1495
+ ```
1496
+
1497
+ ### 2. Frontend Performance Testing
1498
+
1499
+ **tests/performance/frontend/lighthouse.test.js** (Agent-generated):
1500
+ ```javascript
1501
+ const lighthouse = require('lighthouse');
1502
+ const chromeLauncher = require('chrome-launcher');
1503
+ const fs = require('fs');
1504
+ const path = require('path');
1505
+
1506
+ const performanceConfig = {
1507
+ extends: 'lighthouse:default',
1508
+ settings: {
1509
+ onlyAudits: [
1510
+ 'first-contentful-paint',
1511
+ 'largest-contentful-paint',
1512
+ 'cumulative-layout-shift',
1513
+ 'total-blocking-time',
1514
+ 'speed-index',
1515
+ ],
1516
+ },
1517
+ };
1518
+
1519
+ async function runLighthouseTest(url, options = {}) {
1520
+ const chrome = await chromeLauncher.launch({ chromeFlags: ['--headless'] });
1521
+
1522
+ try {
1523
+ const result = await lighthouse(url, {
1524
+ port: chrome.port,
1525
+ disableDeviceEmulation: false,
1526
+ ...options,
1527
+ }, performanceConfig);
1528
+
1529
+ return result.lhr;
1530
+ } finally {
1531
+ await chrome.kill();
1532
+ }
1533
+ }
1534
+
1535
+ async function runPerformanceTests() {
1536
+ const baseUrl = process.env.APP_URL || 'http://localhost:3000';
1537
+
1538
+ const testPages = [
1539
+ { name: 'Homepage', url: `${baseUrl}/` },
1540
+ { name: 'Products', url: `${baseUrl}/products` },
1541
+ { name: 'Product Detail', url: `${baseUrl}/products/1` },
1542
+ { name: 'Login', url: `${baseUrl}/login` },
1543
+ { name: 'Dashboard', url: `${baseUrl}/dashboard` },
1544
+ ];
1545
+
1546
+ const results = [];
1547
+
1548
+ for (const page of testPages) {
1549
+ console.log(`Testing ${page.name}...`);
1550
+
1551
+ try {
1552
+ const result = await runLighthouseTest(page.url);
1553
+
1554
+ const metrics = {
1555
+ name: page.name,
1556
+ url: page.url,
1557
+ timestamp: new Date().toISOString(),
1558
+ scores: {
1559
+ performance: result.categories.performance.score * 100,
1560
+ },
1561
+ metrics: {
1562
+ firstContentfulPaint: result.audits['first-contentful-paint'].numericValue,
1563
+ largestContentfulPaint: result.audits['largest-contentful-paint'].numericValue,
1564
+ cumulativeLayoutShift: result.audits['cumulative-layout-shift'].numericValue,
1565
+ totalBlockingTime: result.audits['total-blocking-time'].numericValue,
1566
+ speedIndex: result.audits['speed-index'].numericValue,
1567
+ },
1568
+ thresholds: {
1569
+ performance: 90,
1570
+ firstContentfulPaint: 1500,
1571
+ largestContentfulPaint: 2500,
1572
+ cumulativeLayoutShift: 0.1,
1573
+ totalBlockingTime: 200,
1574
+ speedIndex: 1300,
1575
+ },
1576
+ };
1577
+
1578
+ // Check if metrics meet thresholds
1579
+ metrics.passed = {
1580
+ performance: metrics.scores.performance >= metrics.thresholds.performance,
1581
+ firstContentfulPaint: metrics.metrics.firstContentfulPaint <= metrics.thresholds.firstContentfulPaint,
1582
+ largestContentfulPaint: metrics.metrics.largestContentfulPaint <= metrics.thresholds.largestContentfulPaint,
1583
+ cumulativeLayoutShift: metrics.metrics.cumulativeLayoutShift <= metrics.thresholds.cumulativeLayoutShift,
1584
+ totalBlockingTime: metrics.metrics.totalBlockingTime <= metrics.thresholds.totalBlockingTime,
1585
+ speedIndex: metrics.metrics.speedIndex <= metrics.thresholds.speedIndex,
1586
+ };
1587
+
1588
+ metrics.allPassed = Object.values(metrics.passed).every(passed => passed);
1589
+
1590
+ results.push(metrics);
1591
+
1592
+ console.log(`āœ… ${page.name} completed`);
1593
+ } catch (error) {
1594
+ console.error(`āŒ Error testing ${page.name}:`, error.message);
1595
+ results.push({
1596
+ name: page.name,
1597
+ url: page.url,
1598
+ error: error.message,
1599
+ allPassed: false,
1600
+ });
1601
+ }
1602
+ }
1603
+
1604
+ // Generate report
1605
+ const report = {
1606
+ timestamp: new Date().toISOString(),
1607
+ summary: {
1608
+ totalPages: results.length,
1609
+ passedPages: results.filter(r => r.allPassed).length,
1610
+ failedPages: results.filter(r => !r.allPassed).length,
1611
+ },
1612
+ results,
1613
+ };
1614
+
1615
+ // Save report
1616
+ const reportsDir = path.join(__dirname, '../../reports/performance');
1617
+ if (!fs.existsSync(reportsDir)) {
1618
+ fs.mkdirSync(reportsDir, { recursive: true });
1619
+ }
1620
+
1621
+ const reportPath = path.join(reportsDir, `lighthouse-${Date.now()}.json`);
1622
+ fs.writeFileSync(reportPath, JSON.stringify(report, null, 2));
1623
+
1624
+ // Print summary
1625
+ console.log('\nšŸ“Š Performance Test Summary:');
1626
+ console.log(`Total Pages: ${report.summary.totalPages}`);
1627
+ console.log(`Passed: ${report.summary.passedPages}`);
1628
+ console.log(`Failed: ${report.summary.failedPages}`);
1629
+ console.log(`Report saved: ${reportPath}`);
1630
+
1631
+ // Exit with error code if any tests failed
1632
+ if (report.summary.failedPages > 0) {
1633
+ process.exit(1);
1634
+ }
1635
+ }
1636
+
1637
+ // Run tests if called directly
1638
+ if (require.main === module) {
1639
+ runPerformanceTests().catch(console.error);
1640
+ }
1641
+
1642
+ module.exports = { runLighthouseTest, runPerformanceTests };
1643
+ ```
1644
+
1645
+ ```bash
1646
+ # Generate performance testing with agent
1647
+ npx claude-flow sparc run perf-analyzer "Comprehensive performance testing with Lighthouse and K6"
1648
+ ```
1649
+
1650
+ ## šŸ”„ MCP Integration for Testing
1651
+
1652
+ ### Initialize Testing Swarm
1653
+
1654
+ ```javascript
1655
+ // Setup swarm for comprehensive testing
1656
+ await mcp__claude_flow__swarm_init({
1657
+ topology: "star",
1658
+ maxAgents: 8,
1659
+ strategy: "balanced"
1660
+ });
1661
+
1662
+ // Spawn testing agents
1663
+ await mcp__claude_flow__agent_spawn({
1664
+ type: "tester",
1665
+ capabilities: ["unit-testing", "integration-testing", "e2e-testing"]
1666
+ });
1667
+
1668
+ await mcp__claude_flow__agent_spawn({
1669
+ type: "perf-analyzer",
1670
+ capabilities: ["load-testing", "performance-monitoring", "lighthouse"]
1671
+ });
1672
+
1673
+ await mcp__claude_flow__agent_spawn({
1674
+ type: "reviewer",
1675
+ capabilities: ["test-review", "coverage-analysis", "quality-gates"]
1676
+ });
1677
+ ```
1678
+
1679
+ ### Orchestrate Testing Workflow
1680
+
1681
+ ```javascript
1682
+ // Orchestrate comprehensive testing
1683
+ await mcp__claude_flow__task_orchestrate({
1684
+ task: "Implement comprehensive testing strategy with unit, integration, E2E, and performance tests",
1685
+ strategy: "sequential",
1686
+ priority: "high",
1687
+ maxAgents: 6
1688
+ });
1689
+
1690
+ // Monitor testing progress
1691
+ const status = await mcp__claude_flow__task_status({
1692
+ taskId: "testing-task-id",
1693
+ detailed: true
1694
+ });
1695
+ ```
1696
+
1697
+ ## šŸ“Š Test Reporting & Coverage
1698
+
1699
+ ### 1. Coverage Configuration
1700
+
1701
+ **jest.config.js** (Agent-generated):
1702
+ ```javascript
1703
+ module.exports = {
1704
+ preset: 'ts-jest',
1705
+ testEnvironment: 'jsdom',
1706
+ setupFilesAfterEnv: ['<rootDir>/tests/utils/setup.ts'],
1707
+ collectCoverageFrom: [
1708
+ 'src/**/*.{ts,tsx}',
1709
+ '!src/**/*.d.ts',
1710
+ '!src/main.tsx',
1711
+ '!src/vite-env.d.ts',
1712
+ '!src/**/*.stories.{ts,tsx}',
1713
+ '!src/**/*.test.{ts,tsx}',
1714
+ ],
1715
+ coverageThreshold: {
1716
+ global: {
1717
+ branches: 80,
1718
+ functions: 80,
1719
+ lines: 80,
1720
+ statements: 80,
1721
+ },
1722
+ './src/components/': {
1723
+ branches: 90,
1724
+ functions: 90,
1725
+ lines: 90,
1726
+ statements: 90,
1727
+ },
1728
+ './src/hooks/': {
1729
+ branches: 85,
1730
+ functions: 85,
1731
+ lines: 85,
1732
+ statements: 85,
1733
+ },
1734
+ },
1735
+ coverageReporters: ['text', 'lcov', 'html', 'json-summary'],
1736
+ testMatch: [
1737
+ '<rootDir>/tests/**/*.test.{ts,tsx}',
1738
+ '<rootDir>/src/**/*.test.{ts,tsx}',
1739
+ ],
1740
+ moduleNameMapping: {
1741
+ '^@/(.*)$': '<rootDir>/src/$1',
1742
+ },
1743
+ transform: {
1744
+ '^.+\\.(ts|tsx)$': 'ts-jest',
1745
+ },
1746
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
1747
+ };
1748
+ ```
1749
+
1750
+ ### 2. Test Reporting Dashboard
1751
+
1752
+ ```bash
1753
+ # Generate test reporting dashboard with agent
1754
+ npx claude-flow sparc run tester "Test reporting dashboard with coverage metrics and trend analysis"
1755
+ ```
1756
+
1757
+ ## šŸš€ CI/CD Integration
1758
+
1759
+ ### 1. GitHub Actions Testing Workflow
1760
+
1761
+ ```bash
1762
+ # Generate CI/CD testing pipeline with agent
1763
+ npx claude-flow sparc run cicd-engineer "GitHub Actions workflow for automated testing pipeline"
1764
+ ```
1765
+
1766
+ ### 2. Test Automation Scripts
1767
+
1768
+ ```bash
1769
+ # Generate test automation scripts with agent
1770
+ npx claude-flow sparc run tester "Test automation scripts for local development and CI/CD"
1771
+ ```
1772
+
1773
+ ---
1774
+
1775
+ This completes the comprehensive JavaScript documentation covering project setup, backend development, frontend development, API development, and testing automation with Claude-Flow agent coordination. Each section includes practical examples, best practices, and real-world scenarios for modern JavaScript development.