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,1497 @@
1
+ # Axum Web Framework with Claude-Flow
2
+
3
+ This guide demonstrates how to build high-performance web applications using Axum, Rust's modern async web framework, with claude-flow orchestration and real toolchain integration.
4
+
5
+ ## 🚀 Axum Overview
6
+
7
+ Axum is a modern, ergonomic web framework built on top of Tokio and Tower, designed for high-performance async web applications with excellent type safety and developer experience.
8
+
9
+ ### Key Features
10
+ - **Async-first**: Built on tokio for excellent async performance
11
+ - **Type-safe**: Compile-time request/response validation
12
+ - **Modular**: Composable middleware and extractors
13
+ - **High-performance**: Zero-cost abstractions and minimal overhead
14
+ - **Integration**: Seamless integration with the Tower ecosystem
15
+
16
+ ## 🎯 Quick Start: Axum Projects
17
+
18
+ ### 1. REST API with Database
19
+
20
+ ```bash
21
+ # Initialize Axum REST API project
22
+ npx claude-flow sparc run architect "Create REST API with Axum, PostgreSQL, JWT auth, and OpenAPI docs"
23
+
24
+ # This spawns specialized agents:
25
+ Task("Web Architect", "Design Axum API architecture with layered services", "web-architect")
26
+ Task("Database Engineer", "Implement SQLx integration with migrations", "database-engineer")
27
+ Task("Auth Specialist", "Add JWT authentication and authorization", "auth-engineer")
28
+ Task("API Designer", "Create OpenAPI documentation and validation", "api-docs")
29
+ Task("Performance Engineer", "Optimize async request handling", "performance-optimizer")
30
+ ```
31
+
32
+ **Generated Project Structure:**
33
+ ```
34
+ axum-api/
35
+ ├── Cargo.toml
36
+ ├── src/
37
+ │ ├── main.rs
38
+ │ ├── lib.rs
39
+ │ ├── config/
40
+ │ │ ├── mod.rs
41
+ │ │ └── settings.rs
42
+ │ ├── handlers/
43
+ │ │ ├── mod.rs
44
+ │ │ ├── auth.rs
45
+ │ │ ├── users.rs
46
+ │ │ └── health.rs
47
+ │ ├── models/
48
+ │ │ ├── mod.rs
49
+ │ │ ├── user.rs
50
+ │ │ └── auth.rs
51
+ │ ├── services/
52
+ │ │ ├── mod.rs
53
+ │ │ ├── user_service.rs
54
+ │ │ └── auth_service.rs
55
+ │ ├── middleware/
56
+ │ │ ├── mod.rs
57
+ │ │ ├── auth.rs
58
+ │ │ ├── cors.rs
59
+ │ │ └── logging.rs
60
+ │ ├── extractors/
61
+ │ │ ├── mod.rs
62
+ │ │ └── auth.rs
63
+ │ └── error.rs
64
+ ├── migrations/
65
+ ├── tests/
66
+ │ ├── integration/
67
+ │ └── common/
68
+ ├── docs/
69
+ └── docker/
70
+ ```
71
+
72
+ ### 2. GraphQL API Server
73
+
74
+ ```bash
75
+ # Create GraphQL server with Axum
76
+ npx claude-flow sparc run architect "Build GraphQL API server with Axum, async-graphql, and real-time subscriptions"
77
+
78
+ Task("GraphQL Architect", "Design schema and resolvers with async-graphql", "graphql-engineer")
79
+ Task("Subscription Engineer", "Implement WebSocket subscriptions", "websocket-engineer")
80
+ Task("Performance Engineer", "Optimize GraphQL query execution", "performance-optimizer")
81
+ ```
82
+
83
+ ## 🏗️ Core Axum Application Architecture
84
+
85
+ ### 1. Application Setup and Configuration
86
+
87
+ ```rust
88
+ // Generated main.rs by claude-flow agents
89
+ use axum::{
90
+ extract::{Path, Query, State},
91
+ http::{StatusCode, HeaderMap},
92
+ middleware::{self, Next},
93
+ response::{IntoResponse, Json},
94
+ routing::{get, post, put, delete},
95
+ Router,
96
+ };
97
+ use serde::{Deserialize, Serialize};
98
+ use sqlx::PgPool;
99
+ use std::sync::Arc;
100
+ use tower::{ServiceBuilder, limit::ConcurrencyLimitLayer, timeout::TimeoutLayer};
101
+ use tower_http::{
102
+ cors::CorsLayer,
103
+ trace::TraceLayer,
104
+ compression::CompressionLayer,
105
+ request_id::{MakeRequestId, RequestId},
106
+ };
107
+ use tracing::{info, warn, error};
108
+ use uuid::Uuid;
109
+
110
+ // Application state
111
+ #[derive(Clone)]
112
+ pub struct AppState {
113
+ pub db: PgPool,
114
+ pub config: Arc<Config>,
115
+ pub jwt_secret: String,
116
+ }
117
+
118
+ // Configuration management
119
+ #[derive(Debug, Clone)]
120
+ pub struct Config {
121
+ pub database_url: String,
122
+ pub jwt_secret: String,
123
+ pub server_host: String,
124
+ pub server_port: u16,
125
+ pub cors_origins: Vec<String>,
126
+ pub request_timeout: u64,
127
+ pub max_connections: u32,
128
+ }
129
+
130
+ impl Config {
131
+ pub fn from_env() -> Result<Self, config::ConfigError> {
132
+ let settings = config::Config::builder()
133
+ .add_source(config::Environment::with_prefix("APP"))
134
+ .build()?;
135
+
136
+ Ok(Self {
137
+ database_url: settings.get_string("database_url")?,
138
+ jwt_secret: settings.get_string("jwt_secret")?,
139
+ server_host: settings.get_string("server_host").unwrap_or_else(|_| "0.0.0.0".to_string()),
140
+ server_port: settings.get_int("server_port").unwrap_or(8080) as u16,
141
+ cors_origins: settings.get_array("cors_origins")
142
+ .unwrap_or_default()
143
+ .into_iter()
144
+ .map(|v| v.into_string().unwrap())
145
+ .collect(),
146
+ request_timeout: settings.get_int("request_timeout").unwrap_or(30) as u64,
147
+ max_connections: settings.get_int("max_connections").unwrap_or(100) as u32,
148
+ })
149
+ }
150
+ }
151
+
152
+ // Request ID generation for tracing
153
+ #[derive(Clone)]
154
+ struct MakeRequestUuid;
155
+
156
+ impl MakeRequestId for MakeRequestUuid {
157
+ type RequestId = String;
158
+
159
+ fn make_request_id<B>(&mut self, _: &axum::http::Request<B>) -> Self::RequestId {
160
+ Uuid::new_v4().to_string()
161
+ }
162
+ }
163
+
164
+ // Main application factory
165
+ pub fn create_app(state: AppState) -> Router {
166
+ Router::new()
167
+ // API routes
168
+ .nest("/api/v1", api_routes())
169
+ // Health check
170
+ .route("/health", get(health_check))
171
+ // Metrics endpoint
172
+ .route("/metrics", get(metrics_handler))
173
+ // Add application state
174
+ .with_state(state.clone())
175
+ // Add middleware stack
176
+ .layer(
177
+ ServiceBuilder::new()
178
+ // Timeout for all requests
179
+ .layer(TimeoutLayer::new(
180
+ std::time::Duration::from_secs(state.config.request_timeout)
181
+ ))
182
+ // Limit concurrent requests
183
+ .layer(ConcurrencyLimitLayer::new(state.config.max_connections as usize))
184
+ // Compression
185
+ .layer(CompressionLayer::new())
186
+ // CORS
187
+ .layer(create_cors_layer(&state.config.cors_origins))
188
+ // Request tracing
189
+ .layer(TraceLayer::new_for_http())
190
+ // Request ID
191
+ .layer(middleware::from_fn(request_id_middleware))
192
+ // Custom logging
193
+ .layer(middleware::from_fn(logging_middleware))
194
+ )
195
+ }
196
+
197
+ // API routes organization
198
+ fn api_routes() -> Router<AppState> {
199
+ Router::new()
200
+ // Authentication routes
201
+ .nest("/auth", auth_routes())
202
+ // User management routes
203
+ .nest("/users", user_routes())
204
+ // Protected routes with auth middleware
205
+ .nest("/protected", protected_routes())
206
+ }
207
+
208
+ fn auth_routes() -> Router<AppState> {
209
+ Router::new()
210
+ .route("/login", post(login_handler))
211
+ .route("/register", post(register_handler))
212
+ .route("/refresh", post(refresh_token_handler))
213
+ .route("/logout", post(logout_handler))
214
+ }
215
+
216
+ fn user_routes() -> Router<AppState> {
217
+ Router::new()
218
+ .route("/", get(list_users).post(create_user))
219
+ .route("/:id", get(get_user).put(update_user).delete(delete_user))
220
+ .route("/:id/profile", get(get_user_profile).put(update_user_profile))
221
+ .layer(middleware::from_fn_with_state(AppState::clone, auth_middleware))
222
+ }
223
+
224
+ fn protected_routes() -> Router<AppState> {
225
+ Router::new()
226
+ .route("/dashboard", get(dashboard_handler))
227
+ .route("/admin", get(admin_handler))
228
+ .layer(middleware::from_fn_with_state(AppState::clone, auth_middleware))
229
+ .layer(middleware::from_fn_with_state(AppState::clone, role_middleware))
230
+ }
231
+
232
+ // CORS configuration
233
+ fn create_cors_layer(origins: &[String]) -> CorsLayer {
234
+ let mut cors = CorsLayer::new()
235
+ .allow_methods([
236
+ axum::http::Method::GET,
237
+ axum::http::Method::POST,
238
+ axum::http::Method::PUT,
239
+ axum::http::Method::DELETE,
240
+ axum::http::Method::PATCH,
241
+ ])
242
+ .allow_headers([
243
+ axum::http::header::AUTHORIZATION,
244
+ axum::http::header::CONTENT_TYPE,
245
+ axum::http::header::ACCEPT,
246
+ ]);
247
+
248
+ if origins.is_empty() || origins.contains(&"*".to_string()) {
249
+ cors = cors.allow_origin(tower_http::cors::Any);
250
+ } else {
251
+ for origin in origins {
252
+ cors = cors.allow_origin(origin.parse().unwrap());
253
+ }
254
+ }
255
+
256
+ cors
257
+ }
258
+
259
+ #[tokio::main]
260
+ async fn main() -> Result<(), Box<dyn std::error::Error>> {
261
+ // Initialize tracing
262
+ tracing_subscriber::registry()
263
+ .with(tracing_subscriber::EnvFilter::new(
264
+ std::env::var("RUST_LOG").unwrap_or_else(|_| "axum_api=debug,tower_http=debug".into())
265
+ ))
266
+ .with(tracing_subscriber::fmt::layer())
267
+ .init();
268
+
269
+ // Load configuration
270
+ let config = Config::from_env()?;
271
+
272
+ // Connect to database
273
+ let db = PgPool::connect(&config.database_url).await?;
274
+
275
+ // Run migrations
276
+ sqlx::migrate!("./migrations").run(&db).await?;
277
+
278
+ // Create application state
279
+ let state = AppState {
280
+ db: db.clone(),
281
+ config: Arc::new(config.clone()),
282
+ jwt_secret: config.jwt_secret.clone(),
283
+ };
284
+
285
+ // Create the application
286
+ let app = create_app(state);
287
+
288
+ // Create server
289
+ let listener = tokio::net::TcpListener::bind(
290
+ format!("{}:{}", config.server_host, config.server_port)
291
+ ).await?;
292
+
293
+ info!("Server starting on http://{}:{}", config.server_host, config.server_port);
294
+
295
+ // Run the server
296
+ axum::serve(listener, app).await?;
297
+
298
+ Ok(())
299
+ }
300
+ ```
301
+
302
+ ### 2. Advanced Request Handling and Extractors
303
+
304
+ ```rust
305
+ // Custom extractors for type-safe request handling
306
+ use axum::{
307
+ async_trait,
308
+ extract::{FromRequest, FromRequestParts},
309
+ http::{request::Parts, StatusCode},
310
+ response::{IntoResponse, Response},
311
+ Json, RequestPartsExt,
312
+ };
313
+ use serde::de::DeserializeOwned;
314
+ use validator::Validate;
315
+
316
+ // Validated JSON extractor
317
+ pub struct ValidatedJson<T>(pub T);
318
+
319
+ #[async_trait]
320
+ impl<T, S> FromRequest<S> for ValidatedJson<T>
321
+ where
322
+ T: DeserializeOwned + Validate + Send,
323
+ S: Send + Sync,
324
+ {
325
+ type Rejection = Response;
326
+
327
+ async fn from_request(req: axum::http::Request<axum::body::Body>, state: &S) -> Result<Self, Self::Rejection> {
328
+ let Json(value) = Json::<T>::from_request(req, state)
329
+ .await
330
+ .map_err(|err| {
331
+ (StatusCode::BAD_REQUEST, format!("Invalid JSON: {}", err)).into_response()
332
+ })?;
333
+
334
+ value.validate().map_err(|err| {
335
+ (StatusCode::UNPROCESSABLE_ENTITY, format!("Validation error: {}", err)).into_response()
336
+ })?;
337
+
338
+ Ok(ValidatedJson(value))
339
+ }
340
+ }
341
+
342
+ // Authenticated user extractor
343
+ pub struct AuthenticatedUser {
344
+ pub user_id: Uuid,
345
+ pub email: String,
346
+ pub roles: Vec<String>,
347
+ }
348
+
349
+ #[async_trait]
350
+ impl<S> FromRequestParts<S> for AuthenticatedUser
351
+ where
352
+ S: Send + Sync,
353
+ AppState: FromRef<S>,
354
+ {
355
+ type Rejection = AuthError;
356
+
357
+ async fn from_request_parts(parts: &mut Parts, state: &S) -> Result<Self, Self::Rejection> {
358
+ let state = AppState::from_ref(state);
359
+
360
+ let auth_header = parts
361
+ .headers
362
+ .get(axum::http::header::AUTHORIZATION)
363
+ .and_then(|header| header.to_str().ok())
364
+ .ok_or(AuthError::MissingToken)?;
365
+
366
+ let token = auth_header
367
+ .strip_prefix("Bearer ")
368
+ .ok_or(AuthError::InvalidToken)?;
369
+
370
+ let claims = verify_jwt(token, &state.jwt_secret)
371
+ .map_err(|_| AuthError::InvalidToken)?;
372
+
373
+ Ok(AuthenticatedUser {
374
+ user_id: claims.user_id,
375
+ email: claims.email,
376
+ roles: claims.roles,
377
+ })
378
+ }
379
+ }
380
+
381
+ // Pagination extractor
382
+ #[derive(Debug, Deserialize)]
383
+ pub struct PaginationParams {
384
+ pub page: Option<u32>,
385
+ pub limit: Option<u32>,
386
+ }
387
+
388
+ impl Default for PaginationParams {
389
+ fn default() -> Self {
390
+ Self {
391
+ page: Some(1),
392
+ limit: Some(20),
393
+ }
394
+ }
395
+ }
396
+
397
+ impl PaginationParams {
398
+ pub fn offset(&self) -> u32 {
399
+ (self.page.unwrap_or(1).saturating_sub(1)) * self.limit.unwrap_or(20)
400
+ }
401
+
402
+ pub fn limit(&self) -> u32 {
403
+ std::cmp::min(self.limit.unwrap_or(20), 100) // Max 100 items per page
404
+ }
405
+ }
406
+
407
+ // Search parameters extractor
408
+ #[derive(Debug, Deserialize)]
409
+ pub struct SearchParams {
410
+ pub q: Option<String>,
411
+ pub sort: Option<String>,
412
+ pub order: Option<SortOrder>,
413
+ #[serde(flatten)]
414
+ pub pagination: PaginationParams,
415
+ }
416
+
417
+ #[derive(Debug, Deserialize)]
418
+ #[serde(rename_all = "lowercase")]
419
+ pub enum SortOrder {
420
+ Asc,
421
+ Desc,
422
+ }
423
+
424
+ impl Default for SortOrder {
425
+ fn default() -> Self {
426
+ Self::Asc
427
+ }
428
+ }
429
+ ```
430
+
431
+ ### 3. Middleware Implementation
432
+
433
+ ```rust
434
+ // Authentication middleware
435
+ pub async fn auth_middleware(
436
+ State(state): State<AppState>,
437
+ mut req: axum::http::Request<axum::body::Body>,
438
+ next: Next,
439
+ ) -> Result<Response, AuthError> {
440
+ let auth_header = req
441
+ .headers()
442
+ .get(axum::http::header::AUTHORIZATION)
443
+ .and_then(|header| header.to_str().ok())
444
+ .ok_or(AuthError::MissingToken)?;
445
+
446
+ let token = auth_header
447
+ .strip_prefix("Bearer ")
448
+ .ok_or(AuthError::InvalidToken)?;
449
+
450
+ let claims = verify_jwt(token, &state.jwt_secret)
451
+ .map_err(|_| AuthError::InvalidToken)?;
452
+
453
+ // Add user info to request extensions for handlers to use
454
+ req.extensions_mut().insert(claims);
455
+
456
+ Ok(next.run(req).await)
457
+ }
458
+
459
+ // Role-based authorization middleware
460
+ pub async fn role_middleware(
461
+ State(_state): State<AppState>,
462
+ req: axum::http::Request<axum::body::Body>,
463
+ next: Next,
464
+ ) -> Result<Response, AuthError> {
465
+ let claims = req
466
+ .extensions()
467
+ .get::<JwtClaims>()
468
+ .ok_or(AuthError::Unauthorized)?;
469
+
470
+ // Check if user has required role
471
+ if !claims.roles.contains(&"admin".to_string()) {
472
+ return Err(AuthError::Forbidden);
473
+ }
474
+
475
+ Ok(next.run(req).await)
476
+ }
477
+
478
+ // Request ID middleware
479
+ pub async fn request_id_middleware(
480
+ req: axum::http::Request<axum::body::Body>,
481
+ next: Next,
482
+ ) -> Response {
483
+ let request_id = Uuid::new_v4().to_string();
484
+
485
+ // Add request ID to tracing span
486
+ let span = tracing::info_span!("request", request_id = %request_id);
487
+
488
+ async move {
489
+ let mut response = next.run(req).await;
490
+
491
+ // Add request ID to response headers
492
+ response.headers_mut().insert(
493
+ "x-request-id",
494
+ request_id.parse().unwrap(),
495
+ );
496
+
497
+ response
498
+ }
499
+ .instrument(span)
500
+ .await
501
+ }
502
+
503
+ // Logging middleware
504
+ pub async fn logging_middleware(
505
+ req: axum::http::Request<axum::body::Body>,
506
+ next: Next,
507
+ ) -> Response {
508
+ let start = std::time::Instant::now();
509
+ let method = req.method().clone();
510
+ let uri = req.uri().clone();
511
+
512
+ let response = next.run(req).await;
513
+
514
+ let latency = start.elapsed();
515
+ let status = response.status();
516
+
517
+ tracing::info!(
518
+ method = %method,
519
+ uri = %uri,
520
+ status = %status,
521
+ latency = ?latency,
522
+ "Request completed"
523
+ );
524
+
525
+ response
526
+ }
527
+
528
+ // Rate limiting middleware
529
+ use std::collections::HashMap;
530
+ use std::sync::Mutex;
531
+ use std::time::{Duration, Instant};
532
+
533
+ pub struct RateLimiter {
534
+ requests: Mutex<HashMap<String, Vec<Instant>>>,
535
+ max_requests: usize,
536
+ window: Duration,
537
+ }
538
+
539
+ impl RateLimiter {
540
+ pub fn new(max_requests: usize, window: Duration) -> Self {
541
+ Self {
542
+ requests: Mutex::new(HashMap::new()),
543
+ max_requests,
544
+ window,
545
+ }
546
+ }
547
+
548
+ pub fn check_rate_limit(&self, key: &str) -> bool {
549
+ let now = Instant::now();
550
+ let mut requests = self.requests.lock().unwrap();
551
+
552
+ let user_requests = requests.entry(key.to_string()).or_insert_with(Vec::new);
553
+
554
+ // Remove old requests outside the window
555
+ user_requests.retain(|&time| now.duration_since(time) < self.window);
556
+
557
+ if user_requests.len() >= self.max_requests {
558
+ false
559
+ } else {
560
+ user_requests.push(now);
561
+ true
562
+ }
563
+ }
564
+ }
565
+
566
+ pub async fn rate_limit_middleware(
567
+ State(rate_limiter): State<Arc<RateLimiter>>,
568
+ req: axum::http::Request<axum::body::Body>,
569
+ next: Next,
570
+ ) -> Result<Response, StatusCode> {
571
+ // Extract client IP or user ID for rate limiting
572
+ let client_id = req
573
+ .headers()
574
+ .get("x-forwarded-for")
575
+ .and_then(|header| header.to_str().ok())
576
+ .unwrap_or("unknown");
577
+
578
+ if !rate_limiter.check_rate_limit(client_id) {
579
+ return Err(StatusCode::TOO_MANY_REQUESTS);
580
+ }
581
+
582
+ Ok(next.run(req).await)
583
+ }
584
+ ```
585
+
586
+ ## 📦 Database Integration with SQLx
587
+
588
+ ### 1. Database Models and Queries
589
+
590
+ ```rust
591
+ // User model with SQLx integration
592
+ use sqlx::{FromRow, PgPool, query, query_as};
593
+ use serde::{Deserialize, Serialize};
594
+ use uuid::Uuid;
595
+ use chrono::{DateTime, Utc};
596
+
597
+ #[derive(Debug, Clone, Serialize, Deserialize, FromRow)]
598
+ pub struct User {
599
+ pub id: Uuid,
600
+ pub email: String,
601
+ pub username: String,
602
+ pub password_hash: String,
603
+ pub is_active: bool,
604
+ pub created_at: DateTime<Utc>,
605
+ pub updated_at: DateTime<Utc>,
606
+ }
607
+
608
+ #[derive(Debug, Deserialize, Validate)]
609
+ pub struct CreateUserRequest {
610
+ #[validate(email)]
611
+ pub email: String,
612
+
613
+ #[validate(length(min = 3, max = 50))]
614
+ pub username: String,
615
+
616
+ #[validate(length(min = 8))]
617
+ pub password: String,
618
+ }
619
+
620
+ #[derive(Debug, Deserialize, Validate)]
621
+ pub struct UpdateUserRequest {
622
+ #[validate(email)]
623
+ pub email: Option<String>,
624
+
625
+ #[validate(length(min = 3, max = 50))]
626
+ pub username: Option<String>,
627
+ }
628
+
629
+ // User service implementation
630
+ pub struct UserService {
631
+ db: PgPool,
632
+ }
633
+
634
+ impl UserService {
635
+ pub fn new(db: PgPool) -> Self {
636
+ Self { db }
637
+ }
638
+
639
+ pub async fn create_user(&self, request: CreateUserRequest) -> Result<User, DatabaseError> {
640
+ let password_hash = hash_password(&request.password)?;
641
+ let user_id = Uuid::new_v4();
642
+
643
+ let user = query_as!(
644
+ User,
645
+ r#"
646
+ INSERT INTO users (id, email, username, password_hash, is_active, created_at, updated_at)
647
+ VALUES ($1, $2, $3, $4, true, NOW(), NOW())
648
+ RETURNING id, email, username, password_hash, is_active, created_at, updated_at
649
+ "#,
650
+ user_id,
651
+ request.email,
652
+ request.username,
653
+ password_hash
654
+ )
655
+ .fetch_one(&self.db)
656
+ .await?;
657
+
658
+ Ok(user)
659
+ }
660
+
661
+ pub async fn get_user_by_id(&self, user_id: Uuid) -> Result<Option<User>, DatabaseError> {
662
+ let user = query_as!(
663
+ User,
664
+ "SELECT id, email, username, password_hash, is_active, created_at, updated_at FROM users WHERE id = $1",
665
+ user_id
666
+ )
667
+ .fetch_optional(&self.db)
668
+ .await?;
669
+
670
+ Ok(user)
671
+ }
672
+
673
+ pub async fn get_user_by_email(&self, email: &str) -> Result<Option<User>, DatabaseError> {
674
+ let user = query_as!(
675
+ User,
676
+ "SELECT id, email, username, password_hash, is_active, created_at, updated_at FROM users WHERE email = $1",
677
+ email
678
+ )
679
+ .fetch_optional(&self.db)
680
+ .await?;
681
+
682
+ Ok(user)
683
+ }
684
+
685
+ pub async fn list_users(&self, pagination: &PaginationParams, search: &SearchParams) -> Result<Vec<User>, DatabaseError> {
686
+ let mut query_builder = sqlx::QueryBuilder::new(
687
+ "SELECT id, email, username, password_hash, is_active, created_at, updated_at FROM users WHERE 1=1"
688
+ );
689
+
690
+ // Add search filter
691
+ if let Some(search_query) = &search.q {
692
+ query_builder.push(" AND (username ILIKE ");
693
+ query_builder.push_bind(format!("%{}%", search_query));
694
+ query_builder.push(" OR email ILIKE ");
695
+ query_builder.push_bind(format!("%{}%", search_query));
696
+ query_builder.push(")");
697
+ }
698
+
699
+ // Add sorting
700
+ let sort_column = search.sort.as_deref().unwrap_or("created_at");
701
+ let sort_order = match search.order.as_ref().unwrap_or(&SortOrder::Desc) {
702
+ SortOrder::Asc => "ASC",
703
+ SortOrder::Desc => "DESC",
704
+ };
705
+
706
+ query_builder.push(format!(" ORDER BY {} {}", sort_column, sort_order));
707
+
708
+ // Add pagination
709
+ query_builder.push(" LIMIT ");
710
+ query_builder.push_bind(pagination.limit() as i64);
711
+ query_builder.push(" OFFSET ");
712
+ query_builder.push_bind(pagination.offset() as i64);
713
+
714
+ let users = query_builder
715
+ .build_query_as::<User>()
716
+ .fetch_all(&self.db)
717
+ .await?;
718
+
719
+ Ok(users)
720
+ }
721
+
722
+ pub async fn update_user(&self, user_id: Uuid, request: UpdateUserRequest) -> Result<Option<User>, DatabaseError> {
723
+ let mut query_builder = sqlx::QueryBuilder::new("UPDATE users SET updated_at = NOW()");
724
+ let mut has_updates = false;
725
+
726
+ if let Some(email) = &request.email {
727
+ query_builder.push(", email = ");
728
+ query_builder.push_bind(email);
729
+ has_updates = true;
730
+ }
731
+
732
+ if let Some(username) = &request.username {
733
+ query_builder.push(", username = ");
734
+ query_builder.push_bind(username);
735
+ has_updates = true;
736
+ }
737
+
738
+ if !has_updates {
739
+ return self.get_user_by_id(user_id).await;
740
+ }
741
+
742
+ query_builder.push(" WHERE id = ");
743
+ query_builder.push_bind(user_id);
744
+ query_builder.push(" RETURNING id, email, username, password_hash, is_active, created_at, updated_at");
745
+
746
+ let user = query_builder
747
+ .build_query_as::<User>()
748
+ .fetch_optional(&self.db)
749
+ .await?;
750
+
751
+ Ok(user)
752
+ }
753
+
754
+ pub async fn delete_user(&self, user_id: Uuid) -> Result<bool, DatabaseError> {
755
+ let result = query!("DELETE FROM users WHERE id = $1", user_id)
756
+ .execute(&self.db)
757
+ .await?;
758
+
759
+ Ok(result.rows_affected() > 0)
760
+ }
761
+
762
+ pub async fn count_users(&self, search: &SearchParams) -> Result<i64, DatabaseError> {
763
+ let mut query_builder = sqlx::QueryBuilder::new("SELECT COUNT(*) as count FROM users WHERE 1=1");
764
+
765
+ if let Some(search_query) = &search.q {
766
+ query_builder.push(" AND (username ILIKE ");
767
+ query_builder.push_bind(format!("%{}%", search_query));
768
+ query_builder.push(" OR email ILIKE ");
769
+ query_builder.push_bind(format!("%{}%", search_query));
770
+ query_builder.push(")");
771
+ }
772
+
773
+ let count = query_builder
774
+ .build_query_scalar::<i64>()
775
+ .fetch_one(&self.db)
776
+ .await?;
777
+
778
+ Ok(count)
779
+ }
780
+ }
781
+ ```
782
+
783
+ ### 2. Database Migrations
784
+
785
+ ```sql
786
+ -- Generated migration by claude-flow agents
787
+ -- migrations/001_initial_schema.sql
788
+
789
+ -- Users table
790
+ CREATE TABLE users (
791
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
792
+ email VARCHAR(255) UNIQUE NOT NULL,
793
+ username VARCHAR(100) UNIQUE NOT NULL,
794
+ password_hash TEXT NOT NULL,
795
+ is_active BOOLEAN NOT NULL DEFAULT true,
796
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
797
+ updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
798
+ );
799
+
800
+ -- Create indexes for performance
801
+ CREATE INDEX idx_users_email ON users(email);
802
+ CREATE INDEX idx_users_username ON users(username);
803
+ CREATE INDEX idx_users_created_at ON users(created_at);
804
+
805
+ -- User sessions table for JWT token management
806
+ CREATE TABLE user_sessions (
807
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
808
+ user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
809
+ token_hash TEXT NOT NULL,
810
+ expires_at TIMESTAMP WITH TIME ZONE NOT NULL,
811
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
812
+ UNIQUE(token_hash)
813
+ );
814
+
815
+ CREATE INDEX idx_user_sessions_user_id ON user_sessions(user_id);
816
+ CREATE INDEX idx_user_sessions_expires_at ON user_sessions(expires_at);
817
+
818
+ -- User profiles table
819
+ CREATE TABLE user_profiles (
820
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
821
+ user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
822
+ first_name VARCHAR(100),
823
+ last_name VARCHAR(100),
824
+ bio TEXT,
825
+ avatar_url TEXT,
826
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
827
+ updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
828
+ UNIQUE(user_id)
829
+ );
830
+
831
+ -- Roles and permissions
832
+ CREATE TABLE roles (
833
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
834
+ name VARCHAR(50) UNIQUE NOT NULL,
835
+ description TEXT,
836
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
837
+ );
838
+
839
+ CREATE TABLE permissions (
840
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
841
+ name VARCHAR(100) UNIQUE NOT NULL,
842
+ description TEXT,
843
+ resource VARCHAR(100) NOT NULL,
844
+ action VARCHAR(50) NOT NULL,
845
+ created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
846
+ );
847
+
848
+ CREATE TABLE role_permissions (
849
+ role_id UUID NOT NULL REFERENCES roles(id) ON DELETE CASCADE,
850
+ permission_id UUID NOT NULL REFERENCES permissions(id) ON DELETE CASCADE,
851
+ PRIMARY KEY (role_id, permission_id)
852
+ );
853
+
854
+ CREATE TABLE user_roles (
855
+ user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
856
+ role_id UUID NOT NULL REFERENCES roles(id) ON DELETE CASCADE,
857
+ granted_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
858
+ granted_by UUID REFERENCES users(id),
859
+ PRIMARY KEY (user_id, role_id)
860
+ );
861
+
862
+ -- Insert default roles
863
+ INSERT INTO roles (name, description) VALUES
864
+ ('admin', 'Administrator with full access'),
865
+ ('user', 'Regular user with basic permissions'),
866
+ ('moderator', 'Moderator with enhanced permissions');
867
+
868
+ -- Insert basic permissions
869
+ INSERT INTO permissions (name, description, resource, action) VALUES
870
+ ('users.read', 'Read user information', 'users', 'read'),
871
+ ('users.write', 'Create and update users', 'users', 'write'),
872
+ ('users.delete', 'Delete users', 'users', 'delete'),
873
+ ('admin.access', 'Access admin panel', 'admin', 'access');
874
+
875
+ -- Grant permissions to roles
876
+ INSERT INTO role_permissions (role_id, permission_id)
877
+ SELECT r.id, p.id FROM roles r, permissions p
878
+ WHERE r.name = 'admin'; -- Admin gets all permissions
879
+
880
+ INSERT INTO role_permissions (role_id, permission_id)
881
+ SELECT r.id, p.id FROM roles r, permissions p
882
+ WHERE r.name = 'user' AND p.name = 'users.read';
883
+ ```
884
+
885
+ ## 🔐 Authentication and Authorization
886
+
887
+ ### 1. JWT Authentication Implementation
888
+
889
+ ```rust
890
+ // JWT authentication service
891
+ use jsonwebtoken::{decode, encode, DecodingKey, EncodingKey, Header, Validation};
892
+ use serde::{Deserialize, Serialize};
893
+ use chrono::{Duration, Utc};
894
+
895
+ #[derive(Debug, Serialize, Deserialize)]
896
+ pub struct JwtClaims {
897
+ pub sub: String, // subject (user id)
898
+ pub email: String,
899
+ pub roles: Vec<String>,
900
+ pub exp: i64, // expiration time
901
+ pub iat: i64, // issued at
902
+ pub jti: String, // JWT ID for revocation
903
+ }
904
+
905
+ pub struct AuthService {
906
+ encoding_key: EncodingKey,
907
+ decoding_key: DecodingKey,
908
+ db: PgPool,
909
+ }
910
+
911
+ impl AuthService {
912
+ pub fn new(secret: &str, db: PgPool) -> Self {
913
+ Self {
914
+ encoding_key: EncodingKey::from_secret(secret.as_bytes()),
915
+ decoding_key: DecodingKey::from_secret(secret.as_bytes()),
916
+ db,
917
+ }
918
+ }
919
+
920
+ pub async fn authenticate(&self, email: &str, password: &str) -> Result<AuthResponse, AuthError> {
921
+ // Get user from database
922
+ let user = query_as!(
923
+ User,
924
+ "SELECT id, email, username, password_hash, is_active, created_at, updated_at FROM users WHERE email = $1 AND is_active = true",
925
+ email
926
+ )
927
+ .fetch_optional(&self.db)
928
+ .await?
929
+ .ok_or(AuthError::InvalidCredentials)?;
930
+
931
+ // Verify password
932
+ if !verify_password(password, &user.password_hash)? {
933
+ return Err(AuthError::InvalidCredentials);
934
+ }
935
+
936
+ // Get user roles
937
+ let roles = query_scalar!(
938
+ "SELECT r.name FROM roles r
939
+ JOIN user_roles ur ON r.id = ur.role_id
940
+ WHERE ur.user_id = $1",
941
+ user.id
942
+ )
943
+ .fetch_all(&self.db)
944
+ .await?;
945
+
946
+ // Generate JWT token
947
+ let token_id = Uuid::new_v4().to_string();
948
+ let expiry = Utc::now() + Duration::hours(24);
949
+
950
+ let claims = JwtClaims {
951
+ sub: user.id.to_string(),
952
+ email: user.email.clone(),
953
+ roles,
954
+ exp: expiry.timestamp(),
955
+ iat: Utc::now().timestamp(),
956
+ jti: token_id.clone(),
957
+ };
958
+
959
+ let token = encode(&Header::default(), &claims, &self.encoding_key)?;
960
+
961
+ // Store session in database
962
+ let token_hash = hash_token(&token)?;
963
+ query!(
964
+ "INSERT INTO user_sessions (user_id, token_hash, expires_at) VALUES ($1, $2, $3)",
965
+ user.id,
966
+ token_hash,
967
+ expiry
968
+ )
969
+ .execute(&self.db)
970
+ .await?;
971
+
972
+ Ok(AuthResponse {
973
+ access_token: token,
974
+ token_type: "Bearer".to_string(),
975
+ expires_in: 86400, // 24 hours
976
+ user: UserResponse::from(user),
977
+ })
978
+ }
979
+
980
+ pub async fn verify_token(&self, token: &str) -> Result<JwtClaims, AuthError> {
981
+ // Decode and validate JWT
982
+ let token_data = decode::<JwtClaims>(
983
+ token,
984
+ &self.decoding_key,
985
+ &Validation::default(),
986
+ )?;
987
+
988
+ // Check if session exists and is not expired
989
+ let token_hash = hash_token(token)?;
990
+ let session_exists = query_scalar!(
991
+ "SELECT EXISTS(SELECT 1 FROM user_sessions WHERE token_hash = $1 AND expires_at > NOW())",
992
+ token_hash
993
+ )
994
+ .fetch_one(&self.db)
995
+ .await?
996
+ .unwrap_or(false);
997
+
998
+ if !session_exists {
999
+ return Err(AuthError::InvalidToken);
1000
+ }
1001
+
1002
+ Ok(token_data.claims)
1003
+ }
1004
+
1005
+ pub async fn logout(&self, token: &str) -> Result<(), AuthError> {
1006
+ let token_hash = hash_token(token)?;
1007
+
1008
+ query!(
1009
+ "DELETE FROM user_sessions WHERE token_hash = $1",
1010
+ token_hash
1011
+ )
1012
+ .execute(&self.db)
1013
+ .await?;
1014
+
1015
+ Ok(())
1016
+ }
1017
+
1018
+ pub async fn refresh_token(&self, refresh_token: &str) -> Result<AuthResponse, AuthError> {
1019
+ // Verify the refresh token
1020
+ let claims = self.verify_token(refresh_token).await?;
1021
+
1022
+ // Generate new access token
1023
+ let new_token_id = Uuid::new_v4().to_string();
1024
+ let expiry = Utc::now() + Duration::hours(24);
1025
+
1026
+ let new_claims = JwtClaims {
1027
+ sub: claims.sub,
1028
+ email: claims.email,
1029
+ roles: claims.roles,
1030
+ exp: expiry.timestamp(),
1031
+ iat: Utc::now().timestamp(),
1032
+ jti: new_token_id,
1033
+ };
1034
+
1035
+ let new_token = encode(&Header::default(), &new_claims, &self.encoding_key)?;
1036
+
1037
+ // Remove old session and create new one
1038
+ let old_token_hash = hash_token(refresh_token)?;
1039
+ let new_token_hash = hash_token(&new_token)?;
1040
+
1041
+ let user_id: Uuid = claims.sub.parse()?;
1042
+
1043
+ sqlx::query!(
1044
+ "UPDATE user_sessions SET token_hash = $1, expires_at = $2 WHERE token_hash = $3",
1045
+ new_token_hash,
1046
+ expiry,
1047
+ old_token_hash
1048
+ )
1049
+ .execute(&self.db)
1050
+ .await?;
1051
+
1052
+ // Get user info
1053
+ let user = query_as!(
1054
+ User,
1055
+ "SELECT id, email, username, password_hash, is_active, created_at, updated_at FROM users WHERE id = $1",
1056
+ user_id
1057
+ )
1058
+ .fetch_one(&self.db)
1059
+ .await?;
1060
+
1061
+ Ok(AuthResponse {
1062
+ access_token: new_token,
1063
+ token_type: "Bearer".to_string(),
1064
+ expires_in: 86400,
1065
+ user: UserResponse::from(user),
1066
+ })
1067
+ }
1068
+ }
1069
+
1070
+ // Password hashing utilities
1071
+ use argon2::{Argon2, PasswordHash, PasswordHasher, PasswordVerifier};
1072
+ use argon2::password_hash::{rand_core::OsRng, SaltString};
1073
+
1074
+ pub fn hash_password(password: &str) -> Result<String, AuthError> {
1075
+ let salt = SaltString::generate(&mut OsRng);
1076
+ let argon2 = Argon2::default();
1077
+
1078
+ let password_hash = argon2
1079
+ .hash_password(password.as_bytes(), &salt)?
1080
+ .to_string();
1081
+
1082
+ Ok(password_hash)
1083
+ }
1084
+
1085
+ pub fn verify_password(password: &str, hash: &str) -> Result<bool, AuthError> {
1086
+ let parsed_hash = PasswordHash::new(hash)?;
1087
+ let argon2 = Argon2::default();
1088
+
1089
+ Ok(argon2.verify_password(password.as_bytes(), &parsed_hash).is_ok())
1090
+ }
1091
+
1092
+ fn hash_token(token: &str) -> Result<String, AuthError> {
1093
+ use sha2::{Sha256, Digest};
1094
+
1095
+ let mut hasher = Sha256::new();
1096
+ hasher.update(token.as_bytes());
1097
+ let result = hasher.finalize();
1098
+
1099
+ Ok(format!("{:x}", result))
1100
+ }
1101
+ ```
1102
+
1103
+ ### 2. Request Handlers Implementation
1104
+
1105
+ ```rust
1106
+ // Authentication handlers
1107
+ pub async fn login_handler(
1108
+ State(state): State<AppState>,
1109
+ ValidatedJson(request): ValidatedJson<LoginRequest>,
1110
+ ) -> Result<Json<AuthResponse>, AuthError> {
1111
+ let auth_service = AuthService::new(&state.jwt_secret, state.db.clone());
1112
+
1113
+ let response = auth_service
1114
+ .authenticate(&request.email, &request.password)
1115
+ .await?;
1116
+
1117
+ Ok(Json(response))
1118
+ }
1119
+
1120
+ pub async fn register_handler(
1121
+ State(state): State<AppState>,
1122
+ ValidatedJson(request): ValidatedJson<CreateUserRequest>,
1123
+ ) -> Result<Json<AuthResponse>, AuthError> {
1124
+ let user_service = UserService::new(state.db.clone());
1125
+ let auth_service = AuthService::new(&state.jwt_secret, state.db.clone());
1126
+
1127
+ // Check if user already exists
1128
+ if user_service.get_user_by_email(&request.email).await?.is_some() {
1129
+ return Err(AuthError::UserAlreadyExists);
1130
+ }
1131
+
1132
+ // Create user
1133
+ let user = user_service.create_user(request).await?;
1134
+
1135
+ // Assign default role
1136
+ query!(
1137
+ "INSERT INTO user_roles (user_id, role_id)
1138
+ SELECT $1, id FROM roles WHERE name = 'user'",
1139
+ user.id
1140
+ )
1141
+ .execute(&state.db)
1142
+ .await?;
1143
+
1144
+ // Authenticate the new user
1145
+ let response = auth_service
1146
+ .authenticate(&user.email, &request.password)
1147
+ .await?;
1148
+
1149
+ Ok(Json(response))
1150
+ }
1151
+
1152
+ pub async fn refresh_token_handler(
1153
+ State(state): State<AppState>,
1154
+ Json(request): Json<RefreshTokenRequest>,
1155
+ ) -> Result<Json<AuthResponse>, AuthError> {
1156
+ let auth_service = AuthService::new(&state.jwt_secret, state.db.clone());
1157
+
1158
+ let response = auth_service
1159
+ .refresh_token(&request.refresh_token)
1160
+ .await?;
1161
+
1162
+ Ok(Json(response))
1163
+ }
1164
+
1165
+ pub async fn logout_handler(
1166
+ State(state): State<AppState>,
1167
+ headers: HeaderMap,
1168
+ ) -> Result<StatusCode, AuthError> {
1169
+ let auth_header = headers
1170
+ .get(axum::http::header::AUTHORIZATION)
1171
+ .and_then(|header| header.to_str().ok())
1172
+ .ok_or(AuthError::MissingToken)?;
1173
+
1174
+ let token = auth_header
1175
+ .strip_prefix("Bearer ")
1176
+ .ok_or(AuthError::InvalidToken)?;
1177
+
1178
+ let auth_service = AuthService::new(&state.jwt_secret, state.db.clone());
1179
+ auth_service.logout(token).await?;
1180
+
1181
+ Ok(StatusCode::NO_CONTENT)
1182
+ }
1183
+
1184
+ // User management handlers
1185
+ pub async fn list_users(
1186
+ State(state): State<AppState>,
1187
+ Query(search): Query<SearchParams>,
1188
+ user: AuthenticatedUser,
1189
+ ) -> Result<Json<PaginatedResponse<UserResponse>>, AppError> {
1190
+ // Check permissions
1191
+ if !user.roles.contains(&"admin".to_string()) {
1192
+ return Err(AppError::Forbidden);
1193
+ }
1194
+
1195
+ let user_service = UserService::new(state.db.clone());
1196
+
1197
+ let users = user_service.list_users(&search.pagination, &search).await?;
1198
+ let total = user_service.count_users(&search).await?;
1199
+
1200
+ let user_responses: Vec<UserResponse> = users.into_iter().map(UserResponse::from).collect();
1201
+
1202
+ let response = PaginatedResponse {
1203
+ data: user_responses,
1204
+ pagination: PaginationResponse {
1205
+ page: search.pagination.page.unwrap_or(1),
1206
+ limit: search.pagination.limit.unwrap_or(20),
1207
+ total,
1208
+ pages: (total as f64 / search.pagination.limit.unwrap_or(20) as f64).ceil() as u32,
1209
+ },
1210
+ };
1211
+
1212
+ Ok(Json(response))
1213
+ }
1214
+
1215
+ pub async fn get_user(
1216
+ State(state): State<AppState>,
1217
+ Path(user_id): Path<Uuid>,
1218
+ current_user: AuthenticatedUser,
1219
+ ) -> Result<Json<UserResponse>, AppError> {
1220
+ // Users can view their own profile or admins can view any profile
1221
+ if current_user.user_id != user_id && !current_user.roles.contains(&"admin".to_string()) {
1222
+ return Err(AppError::Forbidden);
1223
+ }
1224
+
1225
+ let user_service = UserService::new(state.db);
1226
+
1227
+ let user = user_service
1228
+ .get_user_by_id(user_id)
1229
+ .await?
1230
+ .ok_or(AppError::NotFound)?;
1231
+
1232
+ Ok(Json(UserResponse::from(user)))
1233
+ }
1234
+
1235
+ pub async fn update_user(
1236
+ State(state): State<AppState>,
1237
+ Path(user_id): Path<Uuid>,
1238
+ current_user: AuthenticatedUser,
1239
+ ValidatedJson(request): ValidatedJson<UpdateUserRequest>,
1240
+ ) -> Result<Json<UserResponse>, AppError> {
1241
+ // Users can update their own profile or admins can update any profile
1242
+ if current_user.user_id != user_id && !current_user.roles.contains(&"admin".to_string()) {
1243
+ return Err(AppError::Forbidden);
1244
+ }
1245
+
1246
+ let user_service = UserService::new(state.db);
1247
+
1248
+ let user = user_service
1249
+ .update_user(user_id, request)
1250
+ .await?
1251
+ .ok_or(AppError::NotFound)?;
1252
+
1253
+ Ok(Json(UserResponse::from(user)))
1254
+ }
1255
+
1256
+ // Health check and metrics handlers
1257
+ pub async fn health_check() -> Json<HealthResponse> {
1258
+ Json(HealthResponse {
1259
+ status: "healthy".to_string(),
1260
+ timestamp: Utc::now(),
1261
+ version: env!("CARGO_PKG_VERSION").to_string(),
1262
+ })
1263
+ }
1264
+
1265
+ pub async fn metrics_handler(State(state): State<AppState>) -> Result<String, AppError> {
1266
+ // Implement Prometheus metrics collection
1267
+ let metrics = collect_metrics(&state.db).await?;
1268
+ Ok(format_prometheus_metrics(metrics))
1269
+ }
1270
+
1271
+ async fn collect_metrics(db: &PgPool) -> Result<AppMetrics, sqlx::Error> {
1272
+ let user_count = query_scalar!("SELECT COUNT(*) FROM users")
1273
+ .fetch_one(db)
1274
+ .await?
1275
+ .unwrap_or(0);
1276
+
1277
+ let active_sessions = query_scalar!(
1278
+ "SELECT COUNT(*) FROM user_sessions WHERE expires_at > NOW()"
1279
+ )
1280
+ .fetch_one(db)
1281
+ .await?
1282
+ .unwrap_or(0);
1283
+
1284
+ Ok(AppMetrics {
1285
+ user_count,
1286
+ active_sessions,
1287
+ timestamp: Utc::now(),
1288
+ })
1289
+ }
1290
+ ```
1291
+
1292
+ ## 🧪 Testing Axum Applications
1293
+
1294
+ ### 1. Integration Testing
1295
+
1296
+ ```rust
1297
+ // Integration tests for Axum API
1298
+ use axum_test::TestServer;
1299
+ use serde_json::json;
1300
+ use sqlx::PgPool;
1301
+
1302
+ #[tokio::test]
1303
+ async fn test_user_registration_and_login() {
1304
+ let db = setup_test_db().await;
1305
+ let app = create_test_app(db.clone()).await;
1306
+ let server = TestServer::new(app).unwrap();
1307
+
1308
+ // Test user registration
1309
+ let registration_response = server
1310
+ .post("/api/v1/auth/register")
1311
+ .json(&json!({
1312
+ "email": "test@example.com",
1313
+ "username": "testuser",
1314
+ "password": "password123"
1315
+ }))
1316
+ .await;
1317
+
1318
+ registration_response.assert_status_ok();
1319
+ let auth_response: AuthResponse = registration_response.json();
1320
+ assert!(!auth_response.access_token.is_empty());
1321
+
1322
+ // Test login with created user
1323
+ let login_response = server
1324
+ .post("/api/v1/auth/login")
1325
+ .json(&json!({
1326
+ "email": "test@example.com",
1327
+ "password": "password123"
1328
+ }))
1329
+ .await;
1330
+
1331
+ login_response.assert_status_ok();
1332
+ let login_auth: AuthResponse = login_response.json();
1333
+ assert!(!login_auth.access_token.is_empty());
1334
+
1335
+ cleanup_test_db(db).await;
1336
+ }
1337
+
1338
+ #[tokio::test]
1339
+ async fn test_protected_route_authentication() {
1340
+ let db = setup_test_db().await;
1341
+ let app = create_test_app(db.clone()).await;
1342
+ let server = TestServer::new(app).unwrap();
1343
+
1344
+ // Try to access protected route without token
1345
+ let response = server.get("/api/v1/users").await;
1346
+ response.assert_status_unauthorized();
1347
+
1348
+ // Create user and get token
1349
+ let (token, _) = create_test_user_and_login(&server).await;
1350
+
1351
+ // Access protected route with valid token
1352
+ let response = server
1353
+ .get("/api/v1/users")
1354
+ .add_header("authorization", format!("Bearer {}", token))
1355
+ .await;
1356
+
1357
+ response.assert_status_ok();
1358
+
1359
+ cleanup_test_db(db).await;
1360
+ }
1361
+
1362
+ #[tokio::test]
1363
+ async fn test_user_crud_operations() {
1364
+ let db = setup_test_db().await;
1365
+ let app = create_test_app(db.clone()).await;
1366
+ let server = TestServer::new(app).unwrap();
1367
+
1368
+ let (token, user) = create_test_user_and_login(&server).await;
1369
+
1370
+ // Test get user
1371
+ let response = server
1372
+ .get(&format!("/api/v1/users/{}", user.id))
1373
+ .add_header("authorization", format!("Bearer {}", token))
1374
+ .await;
1375
+
1376
+ response.assert_status_ok();
1377
+ let retrieved_user: UserResponse = response.json();
1378
+ assert_eq!(retrieved_user.email, user.email);
1379
+
1380
+ // Test update user
1381
+ let update_response = server
1382
+ .put(&format!("/api/v1/users/{}", user.id))
1383
+ .add_header("authorization", format!("Bearer {}", token))
1384
+ .json(&json!({
1385
+ "username": "updated_username"
1386
+ }))
1387
+ .await;
1388
+
1389
+ update_response.assert_status_ok();
1390
+ let updated_user: UserResponse = update_response.json();
1391
+ assert_eq!(updated_user.username, "updated_username");
1392
+
1393
+ cleanup_test_db(db).await;
1394
+ }
1395
+
1396
+ // Test utilities
1397
+ async fn setup_test_db() -> PgPool {
1398
+ let database_url = std::env::var("TEST_DATABASE_URL")
1399
+ .expect("TEST_DATABASE_URL must be set for integration tests");
1400
+
1401
+ let db = PgPool::connect(&database_url).await.unwrap();
1402
+
1403
+ // Run migrations
1404
+ sqlx::migrate!("./migrations").run(&db).await.unwrap();
1405
+
1406
+ db
1407
+ }
1408
+
1409
+ async fn create_test_app(db: PgPool) -> Router {
1410
+ let config = Config {
1411
+ database_url: "".to_string(), // Not used in tests
1412
+ jwt_secret: "test_secret_key_for_testing_only".to_string(),
1413
+ server_host: "localhost".to_string(),
1414
+ server_port: 0,
1415
+ cors_origins: vec!["*".to_string()],
1416
+ request_timeout: 30,
1417
+ max_connections: 10,
1418
+ };
1419
+
1420
+ let state = AppState {
1421
+ db,
1422
+ config: Arc::new(config),
1423
+ jwt_secret: "test_secret_key_for_testing_only".to_string(),
1424
+ };
1425
+
1426
+ create_app(state)
1427
+ }
1428
+
1429
+ async fn create_test_user_and_login(server: &TestServer) -> (String, UserResponse) {
1430
+ let registration_response = server
1431
+ .post("/api/v1/auth/register")
1432
+ .json(&json!({
1433
+ "email": "testuser@example.com",
1434
+ "username": "testuser",
1435
+ "password": "testpassword123"
1436
+ }))
1437
+ .await;
1438
+
1439
+ registration_response.assert_status_ok();
1440
+ let auth_response: AuthResponse = registration_response.json();
1441
+
1442
+ (auth_response.access_token, auth_response.user)
1443
+ }
1444
+
1445
+ async fn cleanup_test_db(db: PgPool) {
1446
+ // Clean up test data
1447
+ sqlx::query("TRUNCATE TABLE user_sessions CASCADE")
1448
+ .execute(&db)
1449
+ .await
1450
+ .unwrap();
1451
+
1452
+ sqlx::query("TRUNCATE TABLE users CASCADE")
1453
+ .execute(&db)
1454
+ .await
1455
+ .unwrap();
1456
+
1457
+ db.close().await;
1458
+ }
1459
+ ```
1460
+
1461
+ ### 2. Load Testing with Real Metrics
1462
+
1463
+ ```bash
1464
+ # Load testing script generated by claude-flow agents
1465
+ #!/bin/bash
1466
+
1467
+ echo "🔥 Starting Axum API load testing..."
1468
+
1469
+ # Start the server in background
1470
+ cargo run --release &
1471
+ SERVER_PID=$!
1472
+
1473
+ # Wait for server to start
1474
+ sleep 5
1475
+
1476
+ # Run wrk load test
1477
+ echo "📊 Running load test with wrk..."
1478
+ wrk -t12 -c400 -d30s --script=load_test.lua http://localhost:8080/api/v1/health
1479
+
1480
+ # Run Artillery.io for complex scenarios
1481
+ echo "🎯 Running scenario-based testing with Artillery..."
1482
+ artillery run load-test-config.yml
1483
+
1484
+ # Cleanup
1485
+ kill $SERVER_PID
1486
+
1487
+ echo "✅ Load testing complete!"
1488
+ ```
1489
+
1490
+ This comprehensive Axum guide demonstrates real Rust web development with claude-flow, showcasing production-ready patterns, authentication, database integration, and testing strategies.
1491
+
1492
+ ## 🔗 Next Steps
1493
+
1494
+ - [Database Integration Guide](./database.md) - Advanced SQLx patterns
1495
+ - [Performance Testing](../testing/performance.md) - Benchmarking Axum applications
1496
+ - [Deployment Guide](../examples/microservice.md) - Production deployment patterns
1497
+ - [WebSocket Integration](./websockets.md) - Real-time features with Axum