claude-flow-novice 1.6.1 → 1.6.3

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 (273) hide show
  1. package/.claude/agents/cfn-loop/product-owner.md +54 -4
  2. package/.claude/commands/cfn-claude-sync.md +303 -0
  3. package/.claude/commands/cfn-loop-epic.md +290 -0
  4. package/.claude/commands/cfn-loop-single.md +168 -0
  5. package/.claude/commands/cfn-loop-sprints.md +384 -0
  6. package/.claude/commands/cfn-loop.md +180 -0
  7. package/.claude/commands/metrics-summary.md +58 -0
  8. package/.claude/commands/parse-epic.md +357 -0
  9. package/.claude/settings.json +5 -4
  10. package/.claude/settings.local.json +9 -2
  11. package/.claude-flow-novice/.claude/agents/cfn-loop/product-owner.md +792 -0
  12. package/.claude-flow-novice/dist/mcp/server.js +21 -2
  13. package/.claude-flow-novice/dist/src/api/auth-service.js +84 -38
  14. package/.claude-flow-novice/dist/src/api/auth-service.js.map +1 -1
  15. package/.claude-flow-novice/dist/src/api/claude-client.js +138 -3
  16. package/.claude-flow-novice/dist/src/api/claude-client.js.map +1 -1
  17. package/.claude-flow-novice/dist/src/cfn-loop/phase-orchestrator-example.js +1 -1
  18. package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js +247 -0
  19. package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js.map +1 -0
  20. package/.claude-flow-novice/dist/src/cli/commands/swarm.js +32 -15
  21. package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
  22. package/.claude-flow-novice/dist/src/cli/commands/transparency.js +455 -0
  23. package/.claude-flow-novice/dist/src/cli/commands/transparency.js.map +1 -0
  24. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +129 -13
  25. package/.claude-flow-novice/dist/src/components/visualizations/index.js +9 -0
  26. package/.claude-flow-novice/dist/src/components/visualizations/index.js.map +1 -0
  27. package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js +462 -0
  28. package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js.map +1 -0
  29. package/.claude-flow-novice/dist/src/coordination/config-translator.js +248 -0
  30. package/.claude-flow-novice/dist/src/coordination/config-translator.js.map +1 -0
  31. package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js +287 -0
  32. package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js.map +1 -0
  33. package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js +68 -9
  34. package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js.map +1 -1
  35. package/.claude-flow-novice/dist/src/coordination/feature-flags.js +166 -0
  36. package/.claude-flow-novice/dist/src/coordination/feature-flags.js.map +1 -0
  37. package/.claude-flow-novice/dist/src/coordination/queen-agent.js +18 -4
  38. package/.claude-flow-novice/dist/src/coordination/queen-agent.js.map +1 -1
  39. package/.claude-flow-novice/dist/src/coordination/role-assignment.js +6 -110
  40. package/.claude-flow-novice/dist/src/coordination/role-assignment.js.map +1 -1
  41. package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js +632 -0
  42. package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js.map +1 -0
  43. package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js +11 -0
  44. package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js.map +1 -0
  45. package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js +318 -0
  46. package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js.map +1 -0
  47. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js +364 -0
  48. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js.map +1 -0
  49. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js +492 -0
  50. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js.map +1 -0
  51. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js +786 -0
  52. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js.map +1 -0
  53. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js +16 -0
  54. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js.map +1 -0
  55. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js +342 -0
  56. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js.map +1 -0
  57. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js +601 -0
  58. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js.map +1 -0
  59. package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js +211 -0
  60. package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js.map +1 -0
  61. package/.claude-flow-novice/dist/src/coordination/v2/core/index.js +1 -0
  62. package/.claude-flow-novice/dist/src/coordination/v2/core/index.js.map +1 -1
  63. package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js +365 -6
  64. package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js.map +1 -1
  65. package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js +478 -0
  66. package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js.map +1 -0
  67. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js +5 -2
  68. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js.map +1 -1
  69. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js +189 -0
  70. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js.map +1 -1
  71. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js +424 -0
  72. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js.map +1 -0
  73. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js +9 -0
  74. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js.map +1 -0
  75. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js +669 -0
  76. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js.map +1 -0
  77. package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js +451 -0
  78. package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js.map +1 -0
  79. package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js +271 -0
  80. package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js.map +1 -0
  81. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js +335 -0
  82. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js.map +1 -0
  83. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js +439 -0
  84. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js.map +1 -0
  85. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js +92 -0
  86. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js.map +1 -0
  87. package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js +21 -0
  88. package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js.map +1 -0
  89. package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js +223 -0
  90. package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js.map +1 -0
  91. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js +436 -0
  92. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js.map +1 -0
  93. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js +278 -0
  94. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js.map +1 -0
  95. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js +317 -0
  96. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js.map +1 -0
  97. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js +273 -0
  98. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js.map +1 -0
  99. package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js +15 -0
  100. package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js.map +1 -0
  101. package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js +512 -0
  102. package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js.map +1 -0
  103. package/.claude-flow-novice/dist/src/coordination/v2/index.js +6 -0
  104. package/.claude-flow-novice/dist/src/coordination/v2/index.js.map +1 -1
  105. package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js +557 -0
  106. package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js.map +1 -0
  107. package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js +14 -0
  108. package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js.map +1 -0
  109. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js +212 -0
  110. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js.map +1 -0
  111. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js +552 -0
  112. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js.map +1 -0
  113. package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js +367 -0
  114. package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js.map +1 -0
  115. package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js +1 -0
  116. package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js.map +1 -1
  117. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js +371 -0
  118. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js.map +1 -0
  119. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js +355 -0
  120. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js.map +1 -0
  121. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js +424 -0
  122. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js.map +1 -0
  123. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js +16 -0
  124. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js.map +1 -0
  125. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js +295 -0
  126. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js.map +1 -0
  127. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js +411 -0
  128. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js.map +1 -0
  129. package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js +14 -0
  130. package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js.map +1 -0
  131. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js +387 -0
  132. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js.map +1 -0
  133. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js +589 -0
  134. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js.map +1 -0
  135. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js +444 -0
  136. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js.map +1 -0
  137. package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js +29 -8
  138. package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js.map +1 -1
  139. package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js +470 -0
  140. package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js.map +1 -0
  141. package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js +450 -0
  142. package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js.map +1 -0
  143. package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js +5 -0
  144. package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js.map +1 -1
  145. package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js +545 -0
  146. package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js.map +1 -0
  147. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js +44 -0
  148. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js.map +1 -1
  149. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js +415 -0
  150. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js.map +1 -0
  151. package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js +615 -0
  152. package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js.map +1 -0
  153. package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js +259 -0
  154. package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js.map +1 -0
  155. package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js +17 -0
  156. package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js.map +1 -0
  157. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js +357 -0
  158. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js.map +1 -0
  159. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js +679 -0
  160. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js.map +1 -0
  161. package/.claude-flow-novice/dist/src/core/agent-manager.js +30 -0
  162. package/.claude-flow-novice/dist/src/core/agent-manager.js.map +1 -1
  163. package/.claude-flow-novice/dist/src/mcp/server.js +21 -2
  164. package/.claude-flow-novice/dist/src/mcp/server.js.map +1 -1
  165. package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js +719 -0
  166. package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js.map +1 -0
  167. package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js +363 -0
  168. package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js.map +1 -0
  169. package/.claude-flow-novice/dist/src/monitoring/apm/index.js +97 -0
  170. package/.claude-flow-novice/dist/src/monitoring/apm/index.js.map +1 -0
  171. package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js +384 -0
  172. package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js.map +1 -0
  173. package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js +612 -0
  174. package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js.map +1 -0
  175. package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js +282 -0
  176. package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js.map +1 -0
  177. package/.claude-flow-novice/dist/src/observability/metrics-counter.js +268 -0
  178. package/.claude-flow-novice/dist/src/observability/metrics-counter.js.map +1 -0
  179. package/.claude-flow-novice/dist/src/observability/metrics-storage.js +265 -0
  180. package/.claude-flow-novice/dist/src/observability/metrics-storage.js.map +1 -0
  181. package/.claude-flow-novice/dist/src/observability/telemetry.js +26 -0
  182. package/.claude-flow-novice/dist/src/observability/telemetry.js.map +1 -1
  183. package/.claude-flow-novice/dist/src/providers/tiered-router.js +64 -10
  184. package/.claude-flow-novice/dist/src/providers/tiered-router.js.map +1 -1
  185. package/.claude-flow-novice/dist/src/providers/zai-provider.js +196 -97
  186. package/.claude-flow-novice/dist/src/providers/zai-provider.js.map +1 -1
  187. package/.claude-flow-novice/dist/src/slash-commands/cfn-claude-sync.js +533 -0
  188. package/.claude-flow-novice/dist/src/slash-commands/index.js +5 -0
  189. package/.claude-flow-novice/dist/src/slash-commands/metrics-summary-class.js +74 -0
  190. package/.claude-flow-novice/dist/src/slash-commands/metrics-summary.js +335 -0
  191. package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +12 -0
  192. package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js +96 -0
  193. package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js.map +1 -0
  194. package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js +406 -0
  195. package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js.map +1 -0
  196. package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js +35 -5
  197. package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js.map +1 -1
  198. package/.claude-flow-novice/dist/src/web/api/apm-routes.js +355 -0
  199. package/.claude-flow-novice/dist/src/web/api/apm-routes.js.map +1 -0
  200. package/.claude-flow-novice/dist/src/web/api/config/api-config.js +186 -0
  201. package/.claude-flow-novice/dist/src/web/api/config/api-config.js.map +1 -0
  202. package/.claude-flow-novice/dist/src/web/api/middleware/auth.js +205 -0
  203. package/.claude-flow-novice/dist/src/web/api/middleware/auth.js.map +1 -0
  204. package/.claude-flow-novice/dist/src/web/api/middleware/cache.js +262 -0
  205. package/.claude-flow-novice/dist/src/web/api/middleware/cache.js.map +1 -0
  206. package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js +250 -0
  207. package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js.map +1 -0
  208. package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js +217 -0
  209. package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js.map +1 -0
  210. package/.claude-flow-novice/dist/src/web/api/middleware/validation.js +325 -0
  211. package/.claude-flow-novice/dist/src/web/api/middleware/validation.js.map +1 -0
  212. package/.claude-flow-novice/dist/src/web/api/routes/events.js +465 -0
  213. package/.claude-flow-novice/dist/src/web/api/routes/events.js.map +1 -0
  214. package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js +302 -0
  215. package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js.map +1 -0
  216. package/.claude-flow-novice/dist/src/web/api/routes/index.js +14 -0
  217. package/.claude-flow-novice/dist/src/web/api/routes/index.js.map +1 -0
  218. package/.claude-flow-novice/dist/src/web/api/routes/metrics.js +561 -0
  219. package/.claude-flow-novice/dist/src/web/api/routes/metrics.js.map +1 -0
  220. package/.claude-flow-novice/dist/src/web/api/routes/status.js +450 -0
  221. package/.claude-flow-novice/dist/src/web/api/routes/status.js.map +1 -0
  222. package/.claude-flow-novice/dist/src/web/api/server.js +451 -0
  223. package/.claude-flow-novice/dist/src/web/api/server.js.map +1 -0
  224. package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js +385 -0
  225. package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js.map +1 -0
  226. package/.claude-flow-novice/dist/src/web/dashboard/index.js +87 -0
  227. package/.claude-flow-novice/dist/src/web/dashboard/index.js.map +1 -0
  228. package/.claude-flow-novice/dist/src/web/dashboard/types.js +6 -0
  229. package/.claude-flow-novice/dist/src/web/dashboard/types.js.map +1 -0
  230. package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js +425 -0
  231. package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js.map +1 -0
  232. package/.claude-flow-novice/dist/src/web/security/security-middleware.js +379 -0
  233. package/.claude-flow-novice/dist/src/web/security/security-middleware.js.map +1 -0
  234. package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js +441 -0
  235. package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js.map +1 -0
  236. package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js +255 -1
  237. package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js.map +1 -1
  238. package/.claude-flow-novice/metrics.db +0 -0
  239. package/.claude-flow-novice/metrics.db-shm +0 -0
  240. package/.claude-flow-novice/metrics.db-wal +0 -0
  241. package/AGENT_PERFORMANCE_GUIDELINES.md +88 -0
  242. package/CLAUDE.md +60 -3
  243. package/MEMORY_LEAK_ROOT_CAUSE.md +149 -0
  244. package/README.md +27 -0
  245. package/config/hooks/post-edit-pipeline.js +36 -2
  246. package/examples/metrics-counter-demo.ts +106 -0
  247. package/examples/persistent-metrics-demo.ts +83 -0
  248. package/examples/phase-5-multi-level-control.ts +282 -0
  249. package/examples/session-pool-optimizer-example.ts +311 -0
  250. package/package.json +18 -4
  251. package/scripts/check-routing-stats.cjs +122 -0
  252. package/scripts/monitor-loop.sh +65 -0
  253. package/scripts/monitor-memory.sh +47 -0
  254. package/scripts/monitor.py +43 -0
  255. package/scripts/pre-publish-validation.cjs +212 -0
  256. package/scripts/test-provider-routing.cjs +228 -0
  257. package/scripts/test-routing-telemetry.cjs +147 -0
  258. package/scripts/test-zai-10k.cjs +81 -0
  259. package/scripts/test-zai-api.cjs +191 -0
  260. package/scripts/test-zai-diagnostic.cjs +151 -0
  261. package/scripts/test-zai-final.cjs +128 -0
  262. package/scripts/test-zai-with-env.cjs +85 -0
  263. package/scripts/validate-coordination-cli.js +69 -0
  264. package/scripts/validate-coordination-toggle-integration.cjs +501 -0
  265. package/src/cli/simple-commands/init/templates/CLAUDE.md +29 -0
  266. package/src/observability/metrics-counter.ts +347 -0
  267. package/src/observability/metrics-storage.ts +356 -0
  268. package/src/observability/telemetry.ts +658 -0
  269. package/src/slash-commands/cfn-claude-sync.js +533 -0
  270. package/src/slash-commands/index.js +5 -0
  271. package/src/slash-commands/metrics-summary-class.js +74 -0
  272. package/src/slash-commands/metrics-summary.js +335 -0
  273. package/src/slash-commands/register-all-commands.js +12 -0
@@ -1,40 +1,292 @@
1
1
  /**
2
2
  * WebSocket Manager - Real-time communication for swarm transparency
3
3
  * Integrates with Claude Flow and ruv-swarm MCP systems
4
- */ export class WebSocketManager {
4
+ */ const MESSAGE_SCHEMAS = {
5
+ 'join-swarm': {
6
+ type: 'join-swarm',
7
+ required: [
8
+ 'swarmId'
9
+ ],
10
+ validate: (data)=>{
11
+ return typeof data.swarmId === 'string' && data.swarmId.length > 0 && data.swarmId.length <= 100 && (!data.userId || typeof data.userId === 'string' && data.userId.length <= 100);
12
+ }
13
+ },
14
+ 'leave-swarm': {
15
+ type: 'leave-swarm',
16
+ required: [
17
+ 'swarmId'
18
+ ],
19
+ validate: (data)=>{
20
+ return typeof data.swarmId === 'string' && data.swarmId.length > 0 && data.swarmId.length <= 100;
21
+ }
22
+ },
23
+ 'send-intervention': {
24
+ type: 'send-intervention',
25
+ required: [
26
+ 'swarmId',
27
+ 'message',
28
+ 'action'
29
+ ],
30
+ validate: (data)=>{
31
+ return typeof data.swarmId === 'string' && data.swarmId.length > 0 && data.swarmId.length <= 100 && typeof data.message === 'string' && data.message.length > 0 && data.message.length <= 5000 && typeof data.action === 'string' && data.action.length > 0 && data.action.length <= 100 && (!data.agentId || typeof data.agentId === 'string' && data.agentId.length <= 100);
32
+ }
33
+ },
34
+ 'request-status': {
35
+ type: 'request-status',
36
+ required: [],
37
+ validate: (data)=>{
38
+ return (!data.swarmId || typeof data.swarmId === 'string' && data.swarmId.length <= 100) && (!data.agentId || typeof data.agentId === 'string' && data.agentId.length <= 100);
39
+ }
40
+ },
41
+ 'set-filter': {
42
+ type: 'set-filter',
43
+ required: [],
44
+ validate: (data)=>{
45
+ // Allow any JSON object but limit size
46
+ return JSON.stringify(data).length <= 10000;
47
+ }
48
+ },
49
+ 'claude-flow-command': {
50
+ type: 'claude-flow-command',
51
+ required: [
52
+ 'command'
53
+ ],
54
+ validate: (data)=>{
55
+ const allowedCommands = [
56
+ 'swarm_status',
57
+ 'agent_list',
58
+ 'task_orchestrate',
59
+ 'swarm_init',
60
+ 'memory_usage'
61
+ ];
62
+ return typeof data.command === 'string' && allowedCommands.includes(data.command) && (!data.swarmId || typeof data.swarmId === 'string' && data.swarmId.length <= 100);
63
+ }
64
+ },
65
+ 'ruv-swarm-command': {
66
+ type: 'ruv-swarm-command',
67
+ required: [
68
+ 'command'
69
+ ],
70
+ validate: (data)=>{
71
+ const allowedCommands = [
72
+ 'swarm_status',
73
+ 'agent_list',
74
+ 'swarm_monitor',
75
+ 'performance_report'
76
+ ];
77
+ return typeof data.command === 'string' && allowedCommands.includes(data.command) && (!data.swarmId || typeof data.swarmId === 'string' && data.swarmId.length <= 100);
78
+ }
79
+ }
80
+ };
81
+ export class WebSocketManager {
5
82
  io;
6
83
  logger;
7
84
  connections = new Map();
8
85
  swarmSubscriptions = new Map();
86
+ rateLimiting = new Map();
87
+ RATE_LIMIT_WINDOW = 60000;
88
+ RATE_LIMIT_MAX_REQUESTS = 100;
89
+ ALLOWED_ORIGINS = [
90
+ 'http://localhost:3000',
91
+ 'http://localhost:3001',
92
+ 'https://localhost:3000',
93
+ 'https://localhost:3001'
94
+ ];
9
95
  constructor(io, logger){
10
96
  this.io = io;
11
97
  this.logger = logger;
98
+ this.setupSecurityMiddleware();
12
99
  this.setupSocketHandlers();
13
100
  }
101
+ setupSecurityMiddleware() {
102
+ // Add origin validation middleware
103
+ this.io.use((socket, next)=>{
104
+ const origin = socket.handshake.headers.origin;
105
+ if (!origin) {
106
+ this.logger.warn('WebSocket connection rejected: No origin header', {
107
+ socketId: socket.id,
108
+ ip: socket.handshake.address
109
+ });
110
+ return next(new Error('Origin header required'));
111
+ }
112
+ if (!this.ALLOWED_ORIGINS.includes(origin)) {
113
+ this.logger.warn('WebSocket connection rejected: Invalid origin', {
114
+ socketId: socket.id,
115
+ origin,
116
+ ip: socket.handshake.address
117
+ });
118
+ return next(new Error('Origin not allowed'));
119
+ }
120
+ next();
121
+ });
122
+ }
123
+ validateMessage(messageType, data) {
124
+ const schema = MESSAGE_SCHEMAS[messageType];
125
+ if (!schema) {
126
+ this.logger.warn('Unknown message type', {
127
+ messageType
128
+ });
129
+ return false;
130
+ }
131
+ // Check required fields
132
+ for (const field of schema.required){
133
+ if (!(field in data)) {
134
+ this.logger.warn('Missing required field', {
135
+ messageType,
136
+ field
137
+ });
138
+ return false;
139
+ }
140
+ }
141
+ // Run custom validation
142
+ if (!schema.validate(data)) {
143
+ this.logger.warn('Message validation failed', {
144
+ messageType,
145
+ data
146
+ });
147
+ return false;
148
+ }
149
+ return true;
150
+ }
151
+ checkRateLimit(socketId) {
152
+ const now = Date.now();
153
+ const rateLimitEntry = this.rateLimiting.get(socketId);
154
+ if (!rateLimitEntry) {
155
+ this.rateLimiting.set(socketId, {
156
+ count: 1,
157
+ lastReset: now
158
+ });
159
+ return true;
160
+ }
161
+ // Reset counter if window has expired
162
+ if (now - rateLimitEntry.lastReset > this.RATE_LIMIT_WINDOW) {
163
+ this.rateLimiting.set(socketId, {
164
+ count: 1,
165
+ lastReset: now
166
+ });
167
+ return true;
168
+ }
169
+ // Check if rate limit exceeded
170
+ if (rateLimitEntry.count >= this.RATE_LIMIT_MAX_REQUESTS) {
171
+ this.logger.warn('Rate limit exceeded', {
172
+ socketId,
173
+ count: rateLimitEntry.count,
174
+ window: this.RATE_LIMIT_WINDOW
175
+ });
176
+ return false;
177
+ }
178
+ // Increment counter
179
+ rateLimitEntry.count++;
180
+ return true;
181
+ }
14
182
  setupSocketHandlers() {
15
183
  this.io.on('connection', (socket)=>{
16
184
  this.handleNewConnection(socket);
17
185
  socket.on('join-swarm', (data)=>{
186
+ if (!this.checkRateLimit(socket.id)) {
187
+ socket.emit('error', {
188
+ message: 'Rate limit exceeded'
189
+ });
190
+ return;
191
+ }
192
+ if (!this.validateMessage('join-swarm', data)) {
193
+ socket.emit('error', {
194
+ message: 'Invalid message format'
195
+ });
196
+ return;
197
+ }
18
198
  this.handleJoinSwarm(socket, data);
19
199
  });
20
200
  socket.on('leave-swarm', (data)=>{
201
+ if (!this.checkRateLimit(socket.id)) {
202
+ socket.emit('error', {
203
+ message: 'Rate limit exceeded'
204
+ });
205
+ return;
206
+ }
207
+ if (!this.validateMessage('leave-swarm', data)) {
208
+ socket.emit('error', {
209
+ message: 'Invalid message format'
210
+ });
211
+ return;
212
+ }
21
213
  this.handleLeaveSwarm(socket, data);
22
214
  });
23
215
  socket.on('send-intervention', (data)=>{
216
+ if (!this.checkRateLimit(socket.id)) {
217
+ socket.emit('error', {
218
+ message: 'Rate limit exceeded'
219
+ });
220
+ return;
221
+ }
222
+ if (!this.validateMessage('send-intervention', data)) {
223
+ socket.emit('error', {
224
+ message: 'Invalid message format'
225
+ });
226
+ return;
227
+ }
24
228
  this.handleHumanIntervention(socket, data);
25
229
  });
26
230
  socket.on('request-status', (data)=>{
231
+ if (!this.checkRateLimit(socket.id)) {
232
+ socket.emit('error', {
233
+ message: 'Rate limit exceeded'
234
+ });
235
+ return;
236
+ }
237
+ if (!this.validateMessage('request-status', data)) {
238
+ socket.emit('error', {
239
+ message: 'Invalid message format'
240
+ });
241
+ return;
242
+ }
27
243
  this.handleStatusRequest(socket, data);
28
244
  });
29
245
  socket.on('set-filter', (filterConfig)=>{
246
+ if (!this.checkRateLimit(socket.id)) {
247
+ socket.emit('error', {
248
+ message: 'Rate limit exceeded'
249
+ });
250
+ return;
251
+ }
252
+ if (!this.validateMessage('set-filter', filterConfig)) {
253
+ socket.emit('error', {
254
+ message: 'Invalid message format'
255
+ });
256
+ return;
257
+ }
30
258
  this.handleFilterUpdate(socket, filterConfig);
31
259
  });
32
260
  // Claude Flow MCP integration events
33
261
  socket.on('claude-flow-command', (data)=>{
262
+ if (!this.checkRateLimit(socket.id)) {
263
+ socket.emit('error', {
264
+ message: 'Rate limit exceeded'
265
+ });
266
+ return;
267
+ }
268
+ if (!this.validateMessage('claude-flow-command', data)) {
269
+ socket.emit('error', {
270
+ message: 'Invalid message format'
271
+ });
272
+ return;
273
+ }
34
274
  this.handleClaudeFlowCommand(socket, data);
35
275
  });
36
276
  // ruv-swarm MCP integration events
37
277
  socket.on('ruv-swarm-command', (data)=>{
278
+ if (!this.checkRateLimit(socket.id)) {
279
+ socket.emit('error', {
280
+ message: 'Rate limit exceeded'
281
+ });
282
+ return;
283
+ }
284
+ if (!this.validateMessage('ruv-swarm-command', data)) {
285
+ socket.emit('error', {
286
+ message: 'Invalid message format'
287
+ });
288
+ return;
289
+ }
38
290
  this.handleRuvSwarmCommand(socket, data);
39
291
  });
40
292
  socket.on('disconnect', ()=>{
@@ -245,6 +497,8 @@
245
497
  }
246
498
  }
247
499
  }
500
+ // Clean up rate limiting data
501
+ this.rateLimiting.delete(socket.id);
248
502
  this.connections.delete(socket.id);
249
503
  this.logger.info('WebSocket client disconnected', {
250
504
  socketId: socket.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/web/websocket/websocket-manager.ts"],"names":["WebSocketManager","connections","Map","swarmSubscriptions","io","logger","setupSocketHandlers","on","socket","handleNewConnection","data","handleJoinSwarm","handleLeaveSwarm","handleHumanIntervention","handleStatusRequest","filterConfig","handleFilterUpdate","handleClaudeFlowCommand","handleRuvSwarmCommand","handleDisconnection","connection","socketId","id","joinedSwarms","Set","lastActivity","Date","toISOString","set","info","clientsCount","size","emit","serverTime","supportedEvents","get","add","swarmId","userId","has","join","timestamp","subscribersCount","requestSwarmStatusFromMCP","delete","swarmSubs","leave","agentId","action","forwardInterventionToClaudeFlow","to","fromClient","error","message","originalData","requestAgentStatusFromMCP","filters","status","command","result","executeClaudeFlowMCPCommand","params","executeRuvSwarmMCPCommand","broadcastToSwarm","event","type","debug","eventType","sendToClient","sockets","getConnectionStats","activeSwarms","totalSubscriptions","Array","from","values","reduce","sum","subs","totalConnections","averageSubscriptionsPerSwarm","swarmStatus","source","ruvSwarmStatus","verbose","ruvError","claudeFlowResult","ruvSwarmResult","Promise","allSettled","filter","responses","claudeFlowData","value","ruvSwarmData","intervention","task","strategy","priority","metadata","humanIntervention","targetAgent","interventionId","taskId","mcpResponse","Error","agents","tasks","active","completed","failed","now","topology","performance","efficiency","memory","usage","capabilities","getActiveSwarms","keys","getSwarmClients"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/web/websocket/websocket-manager.ts"],"names":["MESSAGE_SCHEMAS","type","required","validate","data","swarmId","length","userId","message","action","agentId","JSON","stringify","allowedCommands","command","includes","WebSocketManager","connections","Map","swarmSubscriptions","rateLimiting","RATE_LIMIT_WINDOW","RATE_LIMIT_MAX_REQUESTS","ALLOWED_ORIGINS","io","logger","setupSecurityMiddleware","setupSocketHandlers","use","socket","next","origin","handshake","headers","warn","socketId","id","ip","address","Error","validateMessage","messageType","schema","field","checkRateLimit","now","Date","rateLimitEntry","get","set","count","lastReset","window","on","handleNewConnection","emit","handleJoinSwarm","handleLeaveSwarm","handleHumanIntervention","handleStatusRequest","filterConfig","handleFilterUpdate","handleClaudeFlowCommand","handleRuvSwarmCommand","handleDisconnection","connection","joinedSwarms","Set","lastActivity","toISOString","info","clientsCount","size","serverTime","supportedEvents","add","has","join","timestamp","subscribersCount","requestSwarmStatusFromMCP","delete","swarmSubs","leave","forwardInterventionToClaudeFlow","to","fromClient","error","originalData","requestAgentStatusFromMCP","filters","status","result","executeClaudeFlowMCPCommand","params","executeRuvSwarmMCPCommand","broadcastToSwarm","event","debug","eventType","sendToClient","sockets","getConnectionStats","activeSwarms","totalSubscriptions","Array","from","values","reduce","sum","subs","totalConnections","averageSubscriptionsPerSwarm","swarmStatus","source","ruvSwarmStatus","verbose","ruvError","claudeFlowResult","ruvSwarmResult","Promise","allSettled","filter","responses","claudeFlowData","value","ruvSwarmData","intervention","task","strategy","priority","metadata","humanIntervention","targetAgent","interventionId","taskId","mcpResponse","agents","tasks","active","completed","failed","topology","performance","efficiency","memory","usage","capabilities","getActiveSwarms","keys","getSwarmClients"],"mappings":"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"}
Binary file
@@ -0,0 +1,88 @@
1
+ # Agent Performance Guidelines - WSL Windows Paths
2
+
3
+ ## 🚨 CRITICAL: Avoid `find` on Windows Paths
4
+
5
+ **Problem:** Running `find` on `/mnt/c/` paths is extremely slow in WSL (2-10 seconds per command)
6
+
7
+ **Impact:**
8
+ - 3 agents running `find` concurrently = 6-30 seconds
9
+ - Memory accumulation from buffered output
10
+ - Agents stuck in "Waiting..." state
11
+
12
+ ## ✅ Use These Instead
13
+
14
+ ### ❌ DON'T USE
15
+ ```bash
16
+ find /mnt/c/Users/masha/Documents/claude-flow-novice -type f -name "*.test.*"
17
+ ```
18
+
19
+ ### ✅ USE CLAUDE CODE GLOB TOOL
20
+ ```javascript
21
+ Glob("**/*.test.*") // Fast, uses native file system
22
+ Glob("**/*.spec.*")
23
+ Glob("**/Dockerfile")
24
+ Glob("**/*.{yml,yaml}")
25
+ ```
26
+
27
+ ### ✅ OR USE `fd` (if installed)
28
+ ```bash
29
+ fd -e test.js // 10x faster than find
30
+ fd -e spec.ts
31
+ fd Dockerfile
32
+ ```
33
+
34
+ ### ✅ OR USE `git ls-files` (for tracked files)
35
+ ```bash
36
+ git ls-files '*.test.*' // Instant (uses git index)
37
+ git ls-files '*.spec.*'
38
+ ```
39
+
40
+ ## Performance Comparison
41
+
42
+ | Tool | Time | Memory | Use Case |
43
+ |------|------|--------|----------|
44
+ | `find /mnt/c/...` | 2-10s | High | ❌ Avoid on WSL |
45
+ | `Glob("**/*")` | <100ms | Low | ✅ Best for agents |
46
+ | `fd -e test.js` | 200ms | Low | ✅ Good alternative |
47
+ | `git ls-files` | <50ms | Low | ✅ For tracked files only |
48
+
49
+ ## Agent Best Practices
50
+
51
+ 1. **Use Glob tool** for file discovery (not Bash find)
52
+ 2. **Batch operations** in single message (not sequential)
53
+ 3. **Read with limits** (`Read(file, {limit: 100})`) for large files
54
+ 4. **Avoid recursive operations** when possible
55
+
56
+ ## Example: Security Audit Pattern
57
+
58
+ ### ❌ Slow (causes memory leak)
59
+ ```bash
60
+ find /mnt/c/.../claude-flow-novice -type f -name "*.test.*" -o -name "*.spec.*" | grep security
61
+ find /mnt/c/.../claude-flow-novice -type f -name "Dockerfile"
62
+ ```
63
+
64
+ ### ✅ Fast (proper approach)
65
+ ```javascript
66
+ [Single Message]:
67
+ Glob("**/*.{test,spec}.*") // Get test files
68
+ Glob("**/Dockerfile") // Get Dockerfiles
69
+ Read(files[0], {limit: 100}) // Read with limits
70
+ ```
71
+
72
+ ## Memory Leak Prevention
73
+
74
+ - **Limit to 2-3 agents** per batch (not 6+)
75
+ - **Use Glob instead of find** (100x faster)
76
+ - **Read files with limits** (not full files)
77
+ - **Kill stuck processes**: `pkill -f "find /mnt/c"`
78
+
79
+ ---
80
+
81
+ **If agents are stuck in "Waiting...":**
82
+ ```bash
83
+ # Check for stuck find processes
84
+ ps aux | grep "find /mnt/c" | grep -v grep
85
+
86
+ # Kill them
87
+ pkill -f "find /mnt/c"
88
+ ```
package/CLAUDE.md CHANGED
@@ -33,7 +33,33 @@
33
33
  - Refactoring or optimization work
34
34
  - ANY feature development (even "simple" ones)
35
35
 
36
- ## 🚨 CRITICAL: Safe Test Execution
36
+ ## 🚨 CRITICAL: Memory Leak Prevention (WSL/Windows)
37
+
38
+ **NEVER use `find` on Windows paths** - causes catastrophic memory leaks in WSL.
39
+
40
+ ### 🔴 FORBIDDEN COMMANDS (MEMORY BOMBS)
41
+ ```bash
42
+ # ❌ NEVER USE - Causes heap out of memory crash
43
+ find /mnt/c/Users/... -type f -name "*.test.*"
44
+ find /mnt/c/... -name "*.js"
45
+ find . -type f # On Windows paths via WSL
46
+ ```
47
+
48
+ **Why:** `find` on `/mnt/c/` takes 2-10 seconds per command, buffers output in memory, and causes heap exhaustion with multiple concurrent agents.
49
+
50
+ ### ✅ USE THESE INSTEAD
51
+ ```javascript
52
+ // FAST: Use Glob tool (<100ms, minimal memory)
53
+ Glob("**/*.test.*")
54
+ Glob("**/*.spec.*")
55
+ Glob("**/Dockerfile")
56
+ Glob("**/*.{yml,yaml}")
57
+
58
+ // OR: Use git ls-files for tracked files (<50ms)
59
+ git ls-files '*.test.*'
60
+ ```
61
+
62
+ ### 🚨 CRITICAL: Safe Test Execution
37
63
 
38
64
  **NEVER run tests inside agents** - causes memory leaks from orphaned processes.
39
65
 
@@ -50,14 +76,16 @@ pkill -f vitest; pkill -f "npm test"
50
76
  ```
51
77
 
52
78
  ### Forbidden:
79
+ - ❌ `find /mnt/c/...` - 2-10s per command, memory bomb on WSL
53
80
  - ❌ `Task("agent", "run npm test", "type")` - spawns orphaned process
54
81
  - ❌ Multiple agents running tests concurrently - 3x memory usage
55
82
  - ❌ Long-running test commands without timeout cleanup
56
83
 
57
84
  ### Memory Impact:
85
+ - Each `find /mnt/c/`: 2-10 seconds + 50-200MB buffered output
58
86
  - Each test run: 65MB+ heap
59
- - Concurrent runs: 65MB × agent_count
60
- - Orphaned processes persist after swarm completion
87
+ - Concurrent operations: Memory × agent_count
88
+ - Result: Heap out of memory crash (19GB+ usage)
61
89
  ### Agent Requirements by Task Complexity
62
90
 
63
91
  | Task Size | Steps | Agent Count | Example Team Composition |
@@ -390,6 +418,35 @@ claude mcp add claude-flow-novice npx claude-flow-novice mcp start
390
418
  }
391
419
  ```
392
420
 
421
+ **🚨 MANDATORY: Post-Edit Hook Execution**
422
+
423
+ **CRITICAL**: Every primary swarm agent MUST run the post-edit-pipeline hook after EVERY file edit:
424
+
425
+ ```bash
426
+ # REQUIRED after each file modification
427
+ node config/hooks/post-edit-pipeline.js "[FILE_PATH]" --memory-key "swarm/[agent]/[step]"
428
+ ```
429
+
430
+ **Agent Instructions Template:**
431
+ ```
432
+ Task("Agent Name", `
433
+ Your implementation task here...
434
+
435
+ MANDATORY: After EVERY file edit, run:
436
+ node config/hooks/post-edit-pipeline.js "[FILE_PATH]" --memory-key "swarm/[agent-name]/step-[N]"
437
+
438
+ Report confidence score when complete.
439
+ `, "agent-type")
440
+ ```
441
+
442
+ **Post-Edit Hook Benefits:**
443
+ - Real-time validation (formatting, linting, type checking)
444
+ - Security scanning (hardcoded credentials, XSS, eval())
445
+ - Single-file testing (1-5s vs 10-60s full suite)
446
+ - TDD compliance detection (Red-Green-Refactor phases)
447
+ - Rust quality checks (unwrap/expect/panic with line numbers)
448
+ - Coverage tracking (Jest, pytest, cargo-tarpaulin)
449
+
393
450
  **Confidence Score Interpretation:**
394
451
  - **0.90-1.00**: Excellent - production ready
395
452
  - **0.75-0.89**: Good - minor improvements possible