claude-flow-novice 1.3.6 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. package/.claude/agents/analysis/code-analyzer.md +3 -20
  2. package/.claude/agents/analysis/code-review/analyze-code-quality.md +1 -1
  3. package/.claude/agents/analyst.md +208 -550
  4. package/.claude/agents/architect.md +136 -469
  5. package/.claude/agents/architecture/system-architect.md +20 -1
  6. package/.claude/agents/architecture/system-design/arch-system-design.md +1 -1
  7. package/.claude/agents/base-template-generator.md +24 -1
  8. package/.claude/agents/coder.md +87 -303
  9. package/.claude/agents/consensus/byzantine-coordinator.md +4 -21
  10. package/.claude/agents/consensus/consensus-builder.md +3 -20
  11. package/.claude/agents/consensus/crdt-synchronizer.md +4 -21
  12. package/.claude/agents/consensus/gossip-coordinator.md +4 -21
  13. package/.claude/agents/consensus/performance-benchmarker.md +4 -21
  14. package/.claude/agents/consensus/quorum-manager.md +4 -21
  15. package/.claude/agents/consensus/raft-manager.md +4 -21
  16. package/.claude/agents/consensus/security-manager.md +4 -21
  17. package/.claude/agents/coordinator.md +22 -11
  18. package/.claude/agents/data/ml/data-ml-model.md +2 -2
  19. package/.claude/agents/development/backend/dev-backend-api.md +2 -2
  20. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +2 -2
  21. package/.claude/agents/devops/devops-engineer.md +134 -402
  22. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +2 -2
  23. package/.claude/agents/github/code-review-swarm.md +1 -1
  24. package/.claude/agents/github/github-specialist.md +856 -0
  25. package/.claude/agents/github/pr-manager.md +1 -1
  26. package/.claude/agents/github/release-manager.md +1 -1
  27. package/.claude/agents/neural/neural-pattern-agent.md +762 -0
  28. package/.claude/agents/optimization/benchmark-suite.md +1 -1
  29. package/.claude/agents/optimization/perf-analyzer.md +1 -1
  30. package/.claude/agents/optimization/performance-monitor.md +1 -1
  31. package/.claude/agents/planner.md +135 -0
  32. package/.claude/agents/researcher.md +22 -9
  33. package/.claude/agents/reviewer.md +291 -0
  34. package/.claude/agents/security/security-specialist.md +1 -1
  35. package/.claude/agents/sparc/architecture.md +1 -1
  36. package/.claude/agents/sparc/pseudocode.md +1 -1
  37. package/.claude/agents/sparc/refinement.md +1 -1
  38. package/.claude/agents/sparc/specification.md +1 -1
  39. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +2 -2
  40. package/.claude/agents/tester.md +21 -11
  41. package/.claude/agents/testing/unit/tdd-london-swarm.md +1 -1
  42. package/.claude/agents/testing/validation/production-validator.md +1 -1
  43. package/.claude/commands/claude-soul.js +1 -1
  44. package/.claude/commands/fullstack.md +134 -0
  45. package/.claude/commands/index.js +4 -0
  46. package/.claude/hooks.json +12 -15
  47. package/{.claude → .claude-flow-novice/.claude}/agents/MIGRATION_SUMMARY.md +1 -1
  48. package/.claude-flow-novice/.claude/agents/analysis/code-analyzer.md +192 -0
  49. package/.claude-flow-novice/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  50. package/.claude-flow-novice/.claude/agents/analyst.md +300 -0
  51. package/.claude-flow-novice/.claude/agents/architect.md +557 -0
  52. package/.claude-flow-novice/.claude/agents/architecture/system-architect.md +630 -0
  53. package/.claude-flow-novice/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  54. package/.claude-flow-novice/.claude/agents/base-template-generator.md +65 -0
  55. package/.claude-flow-novice/.claude/agents/coder.md +180 -0
  56. package/.claude-flow-novice/.claude/agents/consensus/byzantine-coordinator.md +46 -0
  57. package/.claude-flow-novice/.claude/agents/consensus/consensus-builder.md +225 -0
  58. package/.claude-flow-novice/.claude/agents/consensus/crdt-synchronizer.md +980 -0
  59. package/.claude-flow-novice/.claude/agents/consensus/gossip-coordinator.md +46 -0
  60. package/.claude-flow-novice/.claude/agents/consensus/performance-benchmarker.md +834 -0
  61. package/.claude-flow-novice/.claude/agents/consensus/quorum-manager.md +806 -0
  62. package/.claude-flow-novice/.claude/agents/consensus/raft-manager.md +46 -0
  63. package/.claude-flow-novice/.claude/agents/consensus/security-manager.md +605 -0
  64. package/.claude-flow-novice/.claude/agents/coordinator.md +842 -0
  65. package/.claude-flow-novice/.claude/agents/data/ml/data-ml-model.md +193 -0
  66. package/.claude-flow-novice/.claude/agents/development/backend/dev-backend-api.md +142 -0
  67. package/.claude-flow-novice/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  68. package/.claude-flow-novice/.claude/agents/devops/devops-engineer.md +638 -0
  69. package/.claude-flow-novice/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  70. package/.claude-flow-novice/.claude/agents/github/code-review-swarm.md +538 -0
  71. package/.claude-flow-novice/.claude/agents/github/github-modes.md +173 -0
  72. package/.claude-flow-novice/.claude/agents/github/github-specialist.md +856 -0
  73. package/.claude-flow-novice/.claude/agents/github/issue-tracker.md +319 -0
  74. package/.claude-flow-novice/.claude/agents/github/multi-repo-swarm.md +553 -0
  75. package/.claude-flow-novice/.claude/agents/github/pr-manager.md +191 -0
  76. package/.claude-flow-novice/.claude/agents/github/project-board-sync.md +509 -0
  77. package/.claude-flow-novice/.claude/agents/github/release-manager.md +367 -0
  78. package/.claude-flow-novice/.claude/agents/github/release-swarm.md +583 -0
  79. package/.claude-flow-novice/.claude/agents/github/repo-architect.md +398 -0
  80. package/.claude-flow-novice/.claude/agents/github/swarm-issue.md +573 -0
  81. package/.claude-flow-novice/.claude/agents/github/swarm-pr.md +428 -0
  82. package/.claude-flow-novice/.claude/agents/github/sync-coordinator.md +452 -0
  83. package/.claude-flow-novice/.claude/agents/github/workflow-automation.md +635 -0
  84. package/.claude-flow-novice/.claude/agents/goal/goal-planner.md +73 -0
  85. package/.claude-flow-novice/.claude/agents/neural/neural-pattern-agent.md +762 -0
  86. package/.claude-flow-novice/.claude/agents/neural/safla-neural.md +74 -0
  87. package/.claude-flow-novice/.claude/agents/optimization/benchmark-suite.md +665 -0
  88. package/.claude-flow-novice/.claude/agents/optimization/load-balancer.md +431 -0
  89. package/.claude-flow-novice/.claude/agents/optimization/perf-analyzer.md +725 -0
  90. package/.claude-flow-novice/.claude/agents/optimization/performance-monitor.md +672 -0
  91. package/.claude-flow-novice/.claude/agents/optimization/resource-allocator.md +674 -0
  92. package/.claude-flow-novice/.claude/agents/optimization/topology-optimizer.md +808 -0
  93. package/.claude-flow-novice/.claude/agents/planner.md +135 -0
  94. package/.claude-flow-novice/.claude/agents/researcher.md +185 -0
  95. package/.claude-flow-novice/.claude/agents/reviewer.md +291 -0
  96. package/.claude-flow-novice/.claude/agents/security/security-specialist.md +978 -0
  97. package/.claude-flow-novice/.claude/agents/sparc/architecture.md +472 -0
  98. package/.claude-flow-novice/.claude/agents/sparc/pseudocode.md +318 -0
  99. package/.claude-flow-novice/.claude/agents/sparc/refinement.md +525 -0
  100. package/.claude-flow-novice/.claude/agents/sparc/specification.md +276 -0
  101. package/.claude-flow-novice/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  102. package/.claude-flow-novice/.claude/agents/sublinear/consciousness-evolution-agent.md +499 -0
  103. package/.claude-flow-novice/.claude/agents/sublinear/matrix-solver-agent.md +113 -0
  104. package/.claude-flow-novice/.claude/agents/sublinear/nanosecond-scheduler-agent.md +644 -0
  105. package/.claude-flow-novice/.claude/agents/sublinear/pagerank-agent.md +699 -0
  106. package/.claude-flow-novice/.claude/agents/sublinear/phi-calculator-agent.md +749 -0
  107. package/.claude-flow-novice/.claude/agents/sublinear/psycho-symbolic-agent.md +543 -0
  108. package/.claude-flow-novice/.claude/agents/sublinear/sublinear.md +816 -0
  109. package/.claude-flow-novice/.claude/agents/sublinear/temporal-advantage-agent.md +360 -0
  110. package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator-enhanced.md +746 -0
  111. package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  112. package/.claude-flow-novice/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  113. package/.claude-flow-novice/.claude/agents/swarm/mesh-coordinator.md +435 -0
  114. package/.claude-flow-novice/.claude/agents/templates/automation-smart-agent.md +205 -0
  115. package/.claude-flow-novice/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  116. package/.claude-flow-novice/.claude/agents/templates/github-pr-manager.md +177 -0
  117. package/.claude-flow-novice/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  118. package/.claude-flow-novice/.claude/agents/templates/memory-coordinator.md +187 -0
  119. package/.claude-flow-novice/.claude/agents/templates/migration-plan.md +746 -0
  120. package/.claude-flow-novice/.claude/agents/templates/orchestrator-task.md +139 -0
  121. package/.claude-flow-novice/.claude/agents/templates/performance-analyzer.md +199 -0
  122. package/.claude-flow-novice/.claude/agents/templates/sparc-coordinator.md +183 -0
  123. package/.claude-flow-novice/.claude/agents/tester.md +663 -0
  124. package/.claude-flow-novice/.claude/agents/testing/e2e/playwright-agent.md +249 -0
  125. package/.claude-flow-novice/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  126. package/.claude-flow-novice/.claude/agents/testing/validation/production-validator.md +395 -0
  127. package/.claude-flow-novice/dist/index.js +12 -24
  128. package/.claude-flow-novice/dist/index.js.map +1 -0
  129. package/.claude-flow-novice/dist/src/agents/agent-manager.js +123 -69
  130. package/.claude-flow-novice/dist/src/agents/agent-manager.js.map +1 -1
  131. package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js +7 -7
  132. package/.claude-flow-novice/dist/src/agents/github/utils/hook-integration.js.map +1 -1
  133. package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js +485 -0
  134. package/.claude-flow-novice/dist/src/agents/stage3-integration-validator.js.map +1 -0
  135. package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js +630 -0
  136. package/.claude-flow-novice/dist/src/agents/unified-ultra-fast-agent-manager.js.map +1 -0
  137. package/.claude-flow-novice/dist/src/cli/commands/agent.js +1 -1
  138. package/.claude-flow-novice/dist/src/cli/commands/agent.js.map +1 -1
  139. package/.claude-flow-novice/dist/src/cli/commands/config-integration.js +6 -6
  140. package/.claude-flow-novice/dist/src/cli/commands/enterprise.js +18 -18
  141. package/.claude-flow-novice/dist/src/cli/commands/enterprise.js.map +1 -1
  142. package/.claude-flow-novice/dist/src/cli/commands/goal-init.js +4 -4
  143. package/.claude-flow-novice/dist/src/cli/commands/help-new.js +23 -23
  144. package/.claude-flow-novice/dist/src/cli/commands/help-new.js.map +1 -1
  145. package/.claude-flow-novice/dist/src/cli/commands/help.js +74 -74
  146. package/.claude-flow-novice/dist/src/cli/commands/help.js.map +1 -1
  147. package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js +2 -2
  148. package/.claude-flow-novice/dist/src/cli/commands/hive-mind/pause.js.map +1 -1
  149. package/.claude-flow-novice/dist/src/cli/commands/hive.js +4 -4
  150. package/.claude-flow-novice/dist/src/cli/commands/index.js +103 -132
  151. package/.claude-flow-novice/dist/src/cli/commands/index.js.map +1 -1
  152. package/.claude-flow-novice/dist/src/cli/commands/mcp.js +1 -1
  153. package/.claude-flow-novice/dist/src/cli/commands/migrate.js +4 -4
  154. package/.claude-flow-novice/dist/src/cli/commands/migrate.js.map +1 -1
  155. package/.claude-flow-novice/dist/src/cli/commands/monitor.js +1 -1
  156. package/.claude-flow-novice/dist/src/cli/commands/neural-init.js +4 -4
  157. package/.claude-flow-novice/dist/src/cli/commands/ruv-swarm.js +8 -8
  158. package/.claude-flow-novice/dist/src/cli/commands/sparc.js +12 -12
  159. package/.claude-flow-novice/dist/src/cli/commands/sparc.js.map +1 -1
  160. package/.claude-flow-novice/dist/src/cli/commands/start/start-command.js +3 -3
  161. package/.claude-flow-novice/dist/src/cli/commands/status.js +1 -1
  162. package/.claude-flow-novice/dist/src/cli/commands/swarm.js +7 -7
  163. package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
  164. package/.claude-flow-novice/dist/src/cli/commands/verification.js +18 -18
  165. package/.claude-flow-novice/dist/src/cli/completion.js +54 -54
  166. package/.claude-flow-novice/dist/src/cli/completion.js.map +1 -1
  167. package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js +11 -11
  168. package/.claude-flow-novice/dist/src/cli/consolidated/ConsolidatedCLI.js.map +1 -1
  169. package/.claude-flow-novice/dist/src/cli/consolidated/core/CommandHandlers.js +31 -31
  170. package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js +39 -39
  171. package/.claude-flow-novice/dist/src/cli/consolidated/core/TierManager.js.map +1 -1
  172. package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js +25 -25
  173. package/.claude-flow-novice/dist/src/cli/consolidated/help/InteractiveHelp.js.map +1 -1
  174. package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js +8 -8
  175. package/.claude-flow-novice/dist/src/cli/consolidated/routing/CommandRouter.js.map +1 -1
  176. package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js +6 -6
  177. package/.claude-flow-novice/dist/src/cli/consolidated/utils/IntelligentDefaults.js.map +1 -1
  178. package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js +7 -7
  179. package/.claude-flow-novice/dist/src/cli/consolidated/utils/PerformanceOptimizer.js.map +1 -1
  180. package/.claude-flow-novice/dist/src/cli/index-remote.js +10 -10
  181. package/.claude-flow-novice/dist/src/cli/index.js +1 -1
  182. package/.claude-flow-novice/dist/src/cli/init/directory-structure.js +8 -8
  183. package/.claude-flow-novice/dist/src/cli/init/index.js +3 -3
  184. package/.claude-flow-novice/dist/src/cli/init/sparc-environment.js +67 -67
  185. package/.claude-flow-novice/dist/src/cli/init/swarm-commands.js +18 -18
  186. package/.claude-flow-novice/dist/src/cli/node-repl.js +2 -2
  187. package/.claude-flow-novice/dist/src/cli/repl.js +1 -1
  188. package/.claude-flow-novice/dist/src/cli/simple-cli.js +68 -68
  189. package/.claude-flow-novice/dist/src/cli/simple-cli.js.map +1 -1
  190. package/.claude-flow-novice/dist/src/cli/simple-commands/session-start-soul.js +271 -0
  191. package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js +7 -7
  192. package/.claude-flow-novice/dist/src/cli/simple-orchestrator.js.map +1 -1
  193. package/.claude-flow-novice/dist/src/cli/ui/fallback-handler.js +7 -7
  194. package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js +816 -0
  195. package/.claude-flow-novice/dist/src/communication/enhanced-event-bus.js.map +1 -0
  196. package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js +812 -0
  197. package/.claude-flow-novice/dist/src/communication/failure-recovery-system.js.map +1 -0
  198. package/.claude-flow-novice/dist/src/communication/optimized-serialization.js +369 -0
  199. package/.claude-flow-novice/dist/src/communication/optimized-serialization.js.map +1 -0
  200. package/.claude-flow-novice/dist/src/communication/performance-optimizations.js +526 -0
  201. package/.claude-flow-novice/dist/src/communication/performance-optimizations.js.map +1 -0
  202. package/.claude-flow-novice/dist/src/communication/performance-validator.js +532 -0
  203. package/.claude-flow-novice/dist/src/communication/performance-validator.js.map +1 -0
  204. package/.claude-flow-novice/dist/src/communication/priority-message-queue.js +525 -0
  205. package/.claude-flow-novice/dist/src/communication/priority-message-queue.js.map +1 -0
  206. package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js +218 -0
  207. package/.claude-flow-novice/dist/src/communication/shared-buffer-bus.js.map +1 -0
  208. package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js +521 -0
  209. package/.claude-flow-novice/dist/src/communication/ultra-fast-communication-bus.js.map +1 -0
  210. package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js +563 -0
  211. package/.claude-flow-novice/dist/src/communication/ultra-fast-serialization.js.map +1 -0
  212. package/.claude-flow-novice/dist/src/communication/websocket-cluster.js +344 -0
  213. package/.claude-flow-novice/dist/src/communication/websocket-cluster.js.map +1 -0
  214. package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js +369 -0
  215. package/.claude-flow-novice/dist/src/communication/zero-copy-structures.js.map +1 -0
  216. package/.claude-flow-novice/dist/src/config/config-manager.js +1 -1
  217. package/.claude-flow-novice/dist/src/config/config-manager.js.map +1 -1
  218. package/.claude-flow-novice/dist/src/config/core/intelligent-configuration-manager.js +1 -1
  219. package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js +6 -6
  220. package/.claude-flow-novice/dist/src/config/integration/hooks-integration.js.map +1 -1
  221. package/.claude-flow-novice/dist/src/config/migration/config-migration.js +1 -1
  222. package/.claude-flow-novice/dist/src/config/ruv-swarm-integration.js +1 -1
  223. package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js +1 -1
  224. package/.claude-flow-novice/dist/src/config/utils/zero-config-setup.js.map +1 -1
  225. package/.claude-flow-novice/dist/src/config/web-portal-config.js +0 -9
  226. package/.claude-flow-novice/dist/src/config/web-portal-config.js.map +1 -1
  227. package/.claude-flow-novice/dist/src/config/zero-config-setup.js +18 -18
  228. package/.claude-flow-novice/dist/src/config/zero-config-setup.js.map +1 -1
  229. package/.claude-flow-novice/dist/src/core/logger.js +33 -10
  230. package/.claude-flow-novice/dist/src/core/logger.js.map +1 -1
  231. package/.claude-flow-novice/dist/src/migration/index.js +1 -1
  232. package/.claude-flow-novice/dist/src/migration/index.js.map +1 -1
  233. package/.claude-flow-novice/dist/src/migration/migration-runner.js +4 -4
  234. package/.claude-flow-novice/dist/src/migration/migration-runner.js.map +1 -1
  235. package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js +430 -0
  236. package/.claude-flow-novice/dist/src/monitoring/agent-health-monitor.js.map +1 -0
  237. package/.claude-flow-novice/dist/src/slash-commands/claude-soul.js +248 -365
  238. package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +1 -1
  239. package/.claude-flow-novice/dist/src/swarm/claude-code-interface.js +1 -1
  240. package/.claude-flow-novice/dist/src/swarm/claude-flow-executor.js +1 -1
  241. package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js +471 -0
  242. package/.claude-flow-novice/dist/src/swarm/consensus-coordinator.js.map +1 -0
  243. package/.claude-flow-novice/dist/src/swarm/hive-mind-integration.js +1 -1
  244. package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js +543 -0
  245. package/.claude-flow-novice/dist/src/swarm/large-scale-coordinator.js.map +1 -0
  246. package/.claude-flow-novice/dist/src/swarm/optimizations/connection-pool.js +1 -1
  247. package/.claude-flow-novice/dist/src/swarm/optimizations/optimized-executor.js +1 -1
  248. package/.claude-flow-novice/dist/src/swarm/types.js.map +1 -1
  249. package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js +709 -0
  250. package/.claude-flow-novice/dist/src/swarm-fullstack/integrations/communication-bridge.js.map +1 -0
  251. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js +612 -0
  252. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/api-contract-validator.js.map +1 -0
  253. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js +679 -0
  254. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/backend-test-orchestrator.js.map +1 -0
  255. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js +654 -0
  256. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/frontend-test-orchestrator.js.map +1 -0
  257. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js +402 -0
  258. package/.claude-flow-novice/dist/src/swarm-fullstack/testing/visual-regression.js.map +1 -0
  259. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js +459 -0
  260. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/convergence-detector.js.map +1 -0
  261. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js +513 -0
  262. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/fix-coordinator.js.map +1 -0
  263. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js +19 -0
  264. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/index.js.map +1 -0
  265. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js +568 -0
  266. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/iterative-build-test.js.map +1 -0
  267. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js +418 -0
  268. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/regression-test-manager.js.map +1 -0
  269. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js +530 -0
  270. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/test-result-analyzer.js.map +1 -0
  271. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js +250 -0
  272. package/.claude-flow-novice/dist/src/swarm-fullstack/workflows/workflow-metrics.js.map +1 -0
  273. package/.claude-flow-novice/dist/src/task/index.js +7 -7
  274. package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js +420 -0
  275. package/.claude-flow-novice/dist/src/validation/fullstack-integration-validator.js.map +1 -0
  276. package/.claude-flow-novice/dist/src/validation/production-validator.js +1435 -0
  277. package/.claude-flow-novice/dist/src/validation/production-validator.js.map +1 -0
  278. package/.claude-flow-novice/dist/src/verification/cli-integration.js +3 -3
  279. package/.claude-flow-novice/dist/src/verification/hooks.js +1 -1
  280. package/CHANGELOG.md +26 -0
  281. package/CLAUDE.md +1967 -68
  282. package/README.md +0 -1
  283. package/config/build/babel.config.cjs +19 -11
  284. package/config/typescript/tsconfig.json +1 -1
  285. package/examples/claude-api-error-handling.ts +2 -2
  286. package/examples/frontend-testing-demo.ts +470 -0
  287. package/examples/litellm/config/config.yaml +1 -1
  288. package/package.json +13 -7
  289. package/scripts/build/unified-builder.sh +6 -6
  290. package/scripts/build/validate-agents.js +238 -0
  291. package/scripts/run-production-validation.ts +590 -0
  292. package/scripts/test/test-coordination-features.ts +2 -2
  293. package/scripts/validate-stage3-performance.ts +377 -0
  294. package/src/cli/simple-commands/hooks.js +1 -0
  295. package/src/cli/simple-commands/init/agent-copier.js +0 -2
  296. package/src/cli/simple-commands/init/index.js +5 -97
  297. package/src/cli/simple-commands/init/templates/CLAUDE.md +163 -1158
  298. package/src/cli/simple-commands/init/templates/claude-md.js +38 -157
  299. package/src/swarm-fullstack/integrations/communication-bridge.ts +931 -0
  300. package/src/swarm-fullstack/testing/api-contract-validator.ts +909 -0
  301. package/src/swarm-fullstack/testing/backend-test-orchestrator.ts +791 -0
  302. package/src/swarm-fullstack/testing/frontend-test-orchestrator.ts +853 -0
  303. package/src/swarm-fullstack/testing/visual-regression.ts +507 -0
  304. package/src/swarm-fullstack/workflows/convergence-detector.ts +736 -0
  305. package/src/swarm-fullstack/workflows/fix-coordinator.ts +677 -0
  306. package/src/swarm-fullstack/workflows/index.ts +75 -0
  307. package/src/swarm-fullstack/workflows/iterative-build-test.ts +829 -0
  308. package/src/swarm-fullstack/workflows/regression-test-manager.ts +590 -0
  309. package/src/swarm-fullstack/workflows/test-result-analyzer.ts +739 -0
  310. package/src/swarm-fullstack/workflows/workflow-metrics.ts +399 -0
  311. package/wiki/command-reference/README.md +1 -2
  312. package/wiki/command-reference/mcp-tools/README.md +1 -1
  313. package/wiki/getting-started/claude-code-mcp/README.md +1 -2
  314. package/wiki/getting-started/installation/README.md +2 -10
  315. package/.claude/commands/flow-nexus/app-store.md +0 -124
  316. package/.claude/commands/flow-nexus/challenges.md +0 -120
  317. package/.claude/commands/flow-nexus/login-registration.md +0 -65
  318. package/.claude/commands/flow-nexus/neural-network.md +0 -134
  319. package/.claude/commands/flow-nexus/payments.md +0 -116
  320. package/.claude/commands/flow-nexus/sandbox.md +0 -83
  321. package/.claude/commands/flow-nexus/swarm.md +0 -87
  322. package/.claude/commands/flow-nexus/user-tools.md +0 -152
  323. package/.claude/commands/flow-nexus/workflow.md +0 -115
  324. package/.claude-flow-novice/dist/cli/index.js +0 -45
  325. package/.claude-flow-novice/dist/core/index.js +0 -22
  326. package/.claude-flow-novice/dist/mcp/mcp-server-novice.js +0 -595
  327. package/.claude-flow-novice/dist/mcp/mcp-server-sdk.js +0 -649
  328. package/.claude-flow-novice/dist/mcp/mcp-server-with-slash-commands.js +0 -776
  329. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/claude-md.js +0 -1101
  330. package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +0 -265
  331. /package/{.claude → .claude-flow-novice/.claude}/agents/README.md +0 -0
  332. /package/{.claude → .claude-flow-novice/.claude}/agents/backend-dev.json +0 -0
  333. /package/{.claude → .claude-flow-novice/.claude}/agents/code-analyzer.json +0 -0
  334. /package/{.claude → .claude-flow-novice/.claude}/agents/coder.json +0 -0
  335. /package/{.claude → .claude-flow-novice/.claude}/agents/consensus/README.md +0 -0
  336. /package/{.claude → .claude-flow-novice/.claude}/agents/core/coder.md +0 -0
  337. /package/{.claude → .claude-flow-novice/.claude}/agents/core/planner.md +0 -0
  338. /package/{.claude → .claude-flow-novice/.claude}/agents/core/researcher.md +0 -0
  339. /package/{.claude → .claude-flow-novice/.claude}/agents/core/reviewer.md +0 -0
  340. /package/{.claude → .claude-flow-novice/.claude}/agents/core/tester.md +0 -0
  341. /package/{.claude → .claude-flow-novice/.claude}/agents/optimization/README.md +0 -0
  342. /package/{.claude → .claude-flow-novice/.claude}/agents/planner.json +0 -0
  343. /package/{.claude → .claude-flow-novice/.claude}/agents/researcher.json +0 -0
  344. /package/{.claude → .claude-flow-novice/.claude}/agents/reviewer.json +0 -0
  345. /package/{.claude → .claude-flow-novice/.claude}/agents/swarm/README.md +0 -0
  346. /package/{.claude → .claude-flow-novice/.claude}/agents/system-architect.json +0 -0
  347. /package/{.claude → .claude-flow-novice/.claude}/agents/tester.json +0 -0
@@ -0,0 +1,525 @@
1
+ /**
2
+ * Priority Message Queue with WebSocket Infrastructure
3
+ * Multi-threaded WebSocket handling with Worker threads
4
+ * Target: <200μs WebSocket send latency
5
+ */ import { Worker, isMainThread, parentPort } from 'worker_threads';
6
+ import { EventEmitter } from 'events';
7
+ import WebSocket from 'ws';
8
+ // Priority levels for message ordering
9
+ export var MessagePriority = /*#__PURE__*/ function(MessagePriority) {
10
+ MessagePriority[MessagePriority["CRITICAL"] = 0] = "CRITICAL";
11
+ MessagePriority[MessagePriority["HIGH"] = 1] = "HIGH";
12
+ MessagePriority[MessagePriority["NORMAL"] = 2] = "NORMAL";
13
+ MessagePriority[MessagePriority["LOW"] = 3] = "LOW";
14
+ MessagePriority[MessagePriority["BATCH"] = 4] = "BATCH"; // Batch processing
15
+ return MessagePriority;
16
+ }({});
17
+ // WebSocket connection state
18
+ export var ConnectionState = /*#__PURE__*/ function(ConnectionState) {
19
+ ConnectionState["CONNECTING"] = "connecting";
20
+ ConnectionState["CONNECTED"] = "connected";
21
+ ConnectionState["RECONNECTING"] = "reconnecting";
22
+ ConnectionState["DISCONNECTED"] = "disconnected";
23
+ ConnectionState["ERROR"] = "error";
24
+ return ConnectionState;
25
+ }({});
26
+ // Lock-free priority queue using multiple heaps
27
+ let PriorityQueue = class PriorityQueue {
28
+ queues = [];
29
+ priorities = Object.values(MessagePriority).filter((v)=>typeof v === 'number');
30
+ size = 0;
31
+ constructor(){
32
+ // Initialize one queue per priority level
33
+ this.priorities.forEach(()=>{
34
+ this.queues.push([]);
35
+ });
36
+ }
37
+ enqueue(item, priority) {
38
+ this.queues[priority].push(item);
39
+ this.size++;
40
+ }
41
+ dequeue() {
42
+ // Check queues in priority order
43
+ for(let i = 0; i < this.queues.length; i++){
44
+ const queue = this.queues[i];
45
+ if (queue.length > 0) {
46
+ this.size--;
47
+ return queue.shift();
48
+ }
49
+ }
50
+ return null;
51
+ }
52
+ peek() {
53
+ for(let i = 0; i < this.queues.length; i++){
54
+ const queue = this.queues[i];
55
+ if (queue.length > 0) {
56
+ return queue[0];
57
+ }
58
+ }
59
+ return null;
60
+ }
61
+ getSize() {
62
+ return this.size;
63
+ }
64
+ isEmpty() {
65
+ return this.size === 0;
66
+ }
67
+ // Get size by priority level
68
+ getSizeByPriority(priority) {
69
+ return this.queues[priority].length;
70
+ }
71
+ };
72
+ // High-performance WebSocket connection wrapper
73
+ let FastWebSocketConnection = class FastWebSocketConnection extends EventEmitter {
74
+ options;
75
+ ws = null;
76
+ url;
77
+ state = "disconnected";
78
+ reconnectAttempts = 0;
79
+ maxReconnectAttempts = 10;
80
+ reconnectDelay = 1000;
81
+ pingInterval;
82
+ metrics = {
83
+ messagesSent: 0,
84
+ messagesReceived: 0,
85
+ totalLatency: 0n,
86
+ errorCount: 0,
87
+ connectTime: 0n
88
+ };
89
+ constructor(url, options = {}){
90
+ super(), this.options = options;
91
+ this.url = url;
92
+ this.maxReconnectAttempts = options.maxReconnectAttempts || 10;
93
+ }
94
+ async connect() {
95
+ if (this.state === "connecting" || this.state === "connected") {
96
+ return;
97
+ }
98
+ this.state = "connecting";
99
+ const startTime = process.hrtime.bigint();
100
+ try {
101
+ this.ws = new WebSocket(this.url, {
102
+ perMessageDeflate: false,
103
+ maxPayload: 100 * 1024 * 1024
104
+ });
105
+ await this.setupWebSocketHandlers();
106
+ this.metrics.connectTime = process.hrtime.bigint() - startTime;
107
+ this.state = "connected";
108
+ this.reconnectAttempts = 0;
109
+ this.startPingInterval();
110
+ this.emit('connected');
111
+ } catch (error) {
112
+ this.state = "error";
113
+ this.emit('error', error);
114
+ this.scheduleReconnect();
115
+ }
116
+ }
117
+ setupWebSocketHandlers() {
118
+ return new Promise((resolve, reject)=>{
119
+ if (!this.ws) {
120
+ reject(new Error('WebSocket not initialized'));
121
+ return;
122
+ }
123
+ const timeout = setTimeout(()=>{
124
+ reject(new Error('Connection timeout'));
125
+ }, this.options.connectionTimeout || 5000);
126
+ this.ws.on('open', ()=>{
127
+ clearTimeout(timeout);
128
+ resolve();
129
+ });
130
+ this.ws.on('message', (data)=>{
131
+ this.metrics.messagesReceived++;
132
+ this.emit('message', new Uint8Array(data));
133
+ });
134
+ this.ws.on('close', (code, reason)=>{
135
+ this.state = "disconnected";
136
+ this.stopPingInterval();
137
+ this.emit('disconnected', {
138
+ code,
139
+ reason
140
+ });
141
+ this.scheduleReconnect();
142
+ });
143
+ this.ws.on('error', (error)=>{
144
+ this.metrics.errorCount++;
145
+ this.emit('error', error);
146
+ });
147
+ this.ws.on('pong', ()=>{
148
+ // Connection is alive
149
+ });
150
+ });
151
+ }
152
+ send(data, priority = 2) {
153
+ return new Promise((resolve, reject)=>{
154
+ if (this.state !== "connected" || !this.ws) {
155
+ reject(new Error('WebSocket not connected'));
156
+ return;
157
+ }
158
+ const startTime = process.hrtime.bigint();
159
+ try {
160
+ this.ws.send(data, (error)=>{
161
+ if (error) {
162
+ this.metrics.errorCount++;
163
+ reject(error);
164
+ } else {
165
+ const latency = process.hrtime.bigint() - startTime;
166
+ this.metrics.messagesSent++;
167
+ this.metrics.totalLatency += latency;
168
+ resolve();
169
+ }
170
+ });
171
+ } catch (error) {
172
+ this.metrics.errorCount++;
173
+ reject(error);
174
+ }
175
+ });
176
+ }
177
+ startPingInterval() {
178
+ if (this.pingInterval) {
179
+ clearInterval(this.pingInterval);
180
+ }
181
+ this.pingInterval = setInterval(()=>{
182
+ if (this.ws && this.ws.readyState === WebSocket.OPEN) {
183
+ this.ws.ping();
184
+ }
185
+ }, this.options.pingInterval || 30000);
186
+ }
187
+ stopPingInterval() {
188
+ if (this.pingInterval) {
189
+ clearInterval(this.pingInterval);
190
+ this.pingInterval = undefined;
191
+ }
192
+ }
193
+ scheduleReconnect() {
194
+ if (this.reconnectAttempts >= this.maxReconnectAttempts) {
195
+ this.emit('maxReconnectAttemptsReached');
196
+ return;
197
+ }
198
+ this.state = "reconnecting";
199
+ this.reconnectAttempts++;
200
+ const delay = Math.min(this.reconnectDelay * Math.pow(2, this.reconnectAttempts - 1), 30000);
201
+ setTimeout(()=>{
202
+ this.connect().catch(()=>{
203
+ // Reconnection failed, will be handled by the connect method
204
+ });
205
+ }, delay);
206
+ }
207
+ disconnect() {
208
+ this.stopPingInterval();
209
+ if (this.ws) {
210
+ this.ws.close(1000, 'Normal closure');
211
+ this.ws = null;
212
+ }
213
+ this.state = "disconnected";
214
+ }
215
+ getMetrics() {
216
+ const avgLatency = this.metrics.messagesSent > 0 ? Number(this.metrics.totalLatency / BigInt(this.metrics.messagesSent)) : 0;
217
+ return {
218
+ messagesPerSecond: this.metrics.messagesSent,
219
+ avgLatencyNs: avgLatency,
220
+ p95LatencyNs: avgLatency * 1.2,
221
+ errorRate: this.metrics.errorCount / Math.max(this.metrics.messagesSent, 1),
222
+ queueSize: 0,
223
+ connectionUptime: Number(process.hrtime.bigint() - this.metrics.connectTime) / 1000000
224
+ };
225
+ }
226
+ getState() {
227
+ return this.state;
228
+ }
229
+ };
230
+ // WebSocket worker thread for handling connections
231
+ let WebSocketWorker = class WebSocketWorker {
232
+ connections = new Map();
233
+ messageQueue = new PriorityQueue();
234
+ processing = false;
235
+ constructor(){
236
+ this.startMessageProcessor();
237
+ }
238
+ addConnection(id, url, options) {
239
+ const connection = new FastWebSocketConnection(url, options);
240
+ connection.on('connected', ()=>{
241
+ if (parentPort) {
242
+ parentPort.postMessage({
243
+ type: 'connectionReady',
244
+ connectionId: id
245
+ });
246
+ }
247
+ });
248
+ connection.on('message', (data)=>{
249
+ if (parentPort) {
250
+ parentPort.postMessage({
251
+ type: 'messageReceived',
252
+ connectionId: id,
253
+ data: Array.from(data)
254
+ });
255
+ }
256
+ });
257
+ connection.on('error', (error)=>{
258
+ if (parentPort) {
259
+ parentPort.postMessage({
260
+ type: 'connectionError',
261
+ connectionId: id,
262
+ error: error.message
263
+ });
264
+ }
265
+ });
266
+ this.connections.set(id, connection);
267
+ connection.connect();
268
+ }
269
+ removeConnection(id) {
270
+ const connection = this.connections.get(id);
271
+ if (connection) {
272
+ connection.disconnect();
273
+ this.connections.delete(id);
274
+ }
275
+ }
276
+ queueMessage(message) {
277
+ this.messageQueue.enqueue(message, message.priority);
278
+ }
279
+ async startMessageProcessor() {
280
+ if (this.processing) return;
281
+ this.processing = true;
282
+ while(this.processing){
283
+ const message = this.messageQueue.dequeue();
284
+ if (message) {
285
+ await this.processMessage(message);
286
+ } else {
287
+ // No messages, yield control briefly
288
+ await new Promise((resolve)=>setImmediate(resolve));
289
+ }
290
+ }
291
+ }
292
+ async processMessage(message) {
293
+ // Extract connection ID from message (would be part of routing)
294
+ const connectionId = 'default'; // Simplified for example
295
+ const connection = this.connections.get(connectionId);
296
+ if (!connection || connection.getState() !== "connected") {
297
+ // Connection not available, requeue if retries remain
298
+ if (message.retryCount < message.maxRetries) {
299
+ message.retryCount++;
300
+ setTimeout(()=>{
301
+ this.messageQueue.enqueue(message, message.priority);
302
+ }, 1000 * message.retryCount);
303
+ }
304
+ return;
305
+ }
306
+ try {
307
+ await connection.send(message.payload, message.priority);
308
+ if (parentPort) {
309
+ parentPort.postMessage({
310
+ type: 'messageSent',
311
+ messageId: message.id,
312
+ latency: Number(process.hrtime.bigint() - message.timestamp)
313
+ });
314
+ }
315
+ } catch (error) {
316
+ if (message.retryCount < message.maxRetries) {
317
+ message.retryCount++;
318
+ setTimeout(()=>{
319
+ this.messageQueue.enqueue(message, message.priority);
320
+ }, 1000 * message.retryCount);
321
+ } else {
322
+ if (parentPort) {
323
+ parentPort.postMessage({
324
+ type: 'messageFailed',
325
+ messageId: message.id,
326
+ error: error.message
327
+ });
328
+ }
329
+ }
330
+ }
331
+ }
332
+ getMetrics() {
333
+ const metrics = {};
334
+ for (const [id, connection] of this.connections){
335
+ metrics[id] = connection.getMetrics();
336
+ }
337
+ return metrics;
338
+ }
339
+ };
340
+ // Main WebSocket manager using worker threads
341
+ export class MultiThreadedWebSocketManager extends EventEmitter {
342
+ workerCount;
343
+ workers = [];
344
+ workerIndex = 0;
345
+ connections = new Map();
346
+ messageMetrics = {
347
+ sent: 0,
348
+ failed: 0,
349
+ totalLatency: 0n
350
+ };
351
+ constructor(workerCount = 4){
352
+ super(), this.workerCount = workerCount;
353
+ this.initializeWorkers();
354
+ }
355
+ initializeWorkers() {
356
+ for(let i = 0; i < this.workerCount; i++){
357
+ const worker = new Worker(__filename, {
358
+ workerData: {
359
+ workerId: i
360
+ }
361
+ });
362
+ worker.on('message', (message)=>{
363
+ this.handleWorkerMessage(message, i);
364
+ });
365
+ worker.on('error', (error)=>{
366
+ this.emit('workerError', {
367
+ workerId: i,
368
+ error
369
+ });
370
+ });
371
+ worker.on('exit', (code)=>{
372
+ if (code !== 0) {
373
+ this.emit('workerExit', {
374
+ workerId: i,
375
+ code
376
+ });
377
+ }
378
+ });
379
+ this.workers.push(worker);
380
+ }
381
+ }
382
+ handleWorkerMessage(message, workerId) {
383
+ switch(message.type){
384
+ case 'connectionReady':
385
+ this.emit('connectionReady', message.connectionId);
386
+ break;
387
+ case 'messageReceived':
388
+ this.emit('messageReceived', message.connectionId, new Uint8Array(message.data));
389
+ break;
390
+ case 'connectionError':
391
+ this.emit('connectionError', message.connectionId, new Error(message.error));
392
+ break;
393
+ case 'messageSent':
394
+ this.messageMetrics.sent++;
395
+ this.messageMetrics.totalLatency += BigInt(message.latency);
396
+ this.emit('messageSent', message.messageId, message.latency);
397
+ break;
398
+ case 'messageFailed':
399
+ this.messageMetrics.failed++;
400
+ this.emit('messageFailed', message.messageId, new Error(message.error));
401
+ break;
402
+ }
403
+ }
404
+ addConnection(id, url, options) {
405
+ const workerId = this.workerIndex % this.workerCount;
406
+ this.workerIndex++;
407
+ this.connections.set(id, {
408
+ workerId,
409
+ url,
410
+ options
411
+ });
412
+ this.workers[workerId].postMessage({
413
+ type: 'addConnection',
414
+ id,
415
+ url,
416
+ options
417
+ });
418
+ }
419
+ removeConnection(id) {
420
+ const connectionInfo = this.connections.get(id);
421
+ if (connectionInfo) {
422
+ this.workers[connectionInfo.workerId].postMessage({
423
+ type: 'removeConnection',
424
+ id
425
+ });
426
+ this.connections.delete(id);
427
+ }
428
+ }
429
+ sendMessage(message, connectionId) {
430
+ // Route to appropriate worker
431
+ let workerId = 0;
432
+ if (connectionId) {
433
+ const connectionInfo = this.connections.get(connectionId);
434
+ if (connectionInfo) {
435
+ workerId = connectionInfo.workerId;
436
+ }
437
+ } else {
438
+ // Load balance across workers
439
+ workerId = this.workerIndex % this.workerCount;
440
+ this.workerIndex++;
441
+ }
442
+ this.workers[workerId].postMessage({
443
+ type: 'queueMessage',
444
+ message
445
+ });
446
+ }
447
+ // Batch send for high throughput
448
+ sendBatch(messages) {
449
+ // Distribute messages across workers
450
+ messages.forEach((message, index)=>{
451
+ const workerId = index % this.workerCount;
452
+ this.workers[workerId].postMessage({
453
+ type: 'queueMessage',
454
+ message
455
+ });
456
+ });
457
+ }
458
+ async getMetrics() {
459
+ const promises = this.workers.map((worker, index)=>{
460
+ return new Promise((resolve)=>{
461
+ const timeout = setTimeout(()=>{
462
+ resolve({}); // Timeout fallback
463
+ }, 1000);
464
+ const handler = (message)=>{
465
+ if (message.type === 'metrics') {
466
+ clearTimeout(timeout);
467
+ worker.off('message', handler);
468
+ resolve(message.data);
469
+ }
470
+ };
471
+ worker.on('message', handler);
472
+ worker.postMessage({
473
+ type: 'getMetrics'
474
+ });
475
+ });
476
+ });
477
+ const workerMetrics = await Promise.all(promises);
478
+ // Combine metrics from all workers
479
+ const combinedMetrics = {};
480
+ workerMetrics.forEach((metrics)=>{
481
+ Object.assign(combinedMetrics, metrics);
482
+ });
483
+ return combinedMetrics;
484
+ }
485
+ getGlobalMetrics() {
486
+ const avgLatency = this.messageMetrics.sent > 0 ? Number(this.messageMetrics.totalLatency / BigInt(this.messageMetrics.sent)) : 0;
487
+ return {
488
+ messagesSent: this.messageMetrics.sent,
489
+ messagesFailed: this.messageMetrics.failed,
490
+ averageLatencyNs: avgLatency,
491
+ successRate: this.messageMetrics.sent / (this.messageMetrics.sent + this.messageMetrics.failed),
492
+ workerCount: this.workerCount
493
+ };
494
+ }
495
+ async shutdown() {
496
+ const promises = this.workers.map((worker)=>worker.terminate());
497
+ await Promise.all(promises);
498
+ }
499
+ }
500
+ // Worker thread entry point
501
+ if (!isMainThread && parentPort) {
502
+ const worker = new WebSocketWorker();
503
+ parentPort.on('message', (message)=>{
504
+ switch(message.type){
505
+ case 'addConnection':
506
+ worker.addConnection(message.id, message.url, message.options);
507
+ break;
508
+ case 'removeConnection':
509
+ worker.removeConnection(message.id);
510
+ break;
511
+ case 'queueMessage':
512
+ worker.queueMessage(message.message);
513
+ break;
514
+ case 'getMetrics':
515
+ const metrics = worker.getMetrics();
516
+ parentPort.postMessage({
517
+ type: 'metrics',
518
+ data: metrics
519
+ });
520
+ break;
521
+ }
522
+ });
523
+ }
524
+
525
+ //# sourceMappingURL=priority-message-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/communication/priority-message-queue.ts"],"names":["Worker","isMainThread","parentPort","EventEmitter","WebSocket","MessagePriority","ConnectionState","PriorityQueue","queues","priorities","Object","values","filter","v","size","forEach","push","enqueue","item","priority","dequeue","i","length","queue","shift","peek","getSize","isEmpty","getSizeByPriority","FastWebSocketConnection","ws","url","state","reconnectAttempts","maxReconnectAttempts","reconnectDelay","pingInterval","metrics","messagesSent","messagesReceived","totalLatency","errorCount","connectTime","options","connect","startTime","process","hrtime","bigint","perMessageDeflate","maxPayload","setupWebSocketHandlers","startPingInterval","emit","error","scheduleReconnect","Promise","resolve","reject","Error","timeout","setTimeout","connectionTimeout","on","clearTimeout","data","Uint8Array","code","reason","stopPingInterval","send","latency","clearInterval","setInterval","readyState","OPEN","ping","undefined","delay","Math","min","pow","catch","disconnect","close","getMetrics","avgLatency","Number","BigInt","messagesPerSecond","avgLatencyNs","p95LatencyNs","errorRate","max","queueSize","connectionUptime","getState","WebSocketWorker","connections","Map","messageQueue","processing","startMessageProcessor","addConnection","id","connection","postMessage","type","connectionId","Array","from","message","set","removeConnection","get","delete","queueMessage","processMessage","setImmediate","retryCount","maxRetries","payload","messageId","timestamp","MultiThreadedWebSocketManager","workers","workerIndex","messageMetrics","sent","failed","workerCount","initializeWorkers","worker","__filename","workerData","workerId","handleWorkerMessage","connectionInfo","sendMessage","sendBatch","messages","index","promises","map","handler","off","workerMetrics","all","combinedMetrics","assign","getGlobalMetrics","messagesFailed","averageLatencyNs","successRate","shutdown","terminate"],"mappings":"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"}