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
@@ -0,0 +1,385 @@
1
+ /**
2
+ * WebSocket Hook for Real-time Updates
3
+ * Provides WebSocket connection management for real-time dashboard updates
4
+ */ import { useState, useEffect, useRef, useCallback } from 'react';
5
+ import { io } from 'socket.io-client';
6
+ export const useWebSocket = (options = {})=>{
7
+ const { url = `ws://${window.location.host}`, autoConnect = true, reconnectAttempts = 5, reconnectDelay = 1000, heartbeatInterval = 30000, onConnect, onDisconnect, onError, onMessage } = options;
8
+ const [socket, setSocket] = useState(null);
9
+ const [status, setStatus] = useState({
10
+ connected: false,
11
+ reconnectAttempts: 0,
12
+ lastConnected: undefined,
13
+ lastMessage: undefined,
14
+ error: undefined
15
+ });
16
+ const [error, setError] = useState(null);
17
+ const [lastMessage, setLastMessage] = useState(null);
18
+ const socketRef = useRef(null);
19
+ const reconnectTimeoutRef = useRef();
20
+ const heartbeatIntervalRef = useRef();
21
+ const subscriptionsRef = useRef(new Map());
22
+ const connect = useCallback(()=>{
23
+ if (socketRef.current?.connected) {
24
+ return;
25
+ }
26
+ try {
27
+ const newSocket = io(url, {
28
+ transports: [
29
+ 'websocket',
30
+ 'polling'
31
+ ],
32
+ upgrade: true,
33
+ rememberUpgrade: true,
34
+ timeout: 10000,
35
+ forceNew: true
36
+ });
37
+ socketRef.current = newSocket;
38
+ setSocket(newSocket);
39
+ // Connection established
40
+ newSocket.on('connect', ()=>{
41
+ console.log('WebSocket connected');
42
+ setStatus((prev)=>({
43
+ ...prev,
44
+ connected: true,
45
+ reconnectAttempts: 0,
46
+ lastConnected: new Date(),
47
+ error: undefined
48
+ }));
49
+ setError(null);
50
+ onConnect?.();
51
+ // Start heartbeat
52
+ if (heartbeatIntervalRef.current) {
53
+ clearInterval(heartbeatIntervalRef.current);
54
+ }
55
+ heartbeatIntervalRef.current = setInterval(()=>{
56
+ if (newSocket.connected) {
57
+ newSocket.emit('ping');
58
+ }
59
+ }, heartbeatInterval);
60
+ // Request initial data
61
+ newSocket.emit('request-mcp-status');
62
+ newSocket.emit('request-swarm-metrics');
63
+ });
64
+ // Connection lost
65
+ newSocket.on('disconnect', (reason)=>{
66
+ console.log('WebSocket disconnected:', reason);
67
+ setStatus((prev)=>({
68
+ ...prev,
69
+ connected: false
70
+ }));
71
+ onDisconnect?.();
72
+ // Clear heartbeat
73
+ if (heartbeatIntervalRef.current) {
74
+ clearInterval(heartbeatIntervalRef.current);
75
+ }
76
+ // Auto-reconnect
77
+ if (reason !== 'io client disconnect' && status.reconnectAttempts < reconnectAttempts) {
78
+ const delay = reconnectDelay * Math.pow(2, status.reconnectAttempts);
79
+ console.log(`Reconnecting in ${delay}ms...`);
80
+ reconnectTimeoutRef.current = setTimeout(()=>{
81
+ setStatus((prev)=>({
82
+ ...prev,
83
+ reconnectAttempts: prev.reconnectAttempts + 1
84
+ }));
85
+ connect();
86
+ }, delay);
87
+ }
88
+ });
89
+ // Connection error
90
+ newSocket.on('connect_error', (error)=>{
91
+ console.error('WebSocket connection error:', error);
92
+ const errorMessage = error.message || 'Connection failed';
93
+ setError(errorMessage);
94
+ setStatus((prev)=>({
95
+ ...prev,
96
+ connected: false,
97
+ error: errorMessage
98
+ }));
99
+ onError?.(error);
100
+ });
101
+ // Handle messages
102
+ newSocket.on('message', (data)=>{
103
+ try {
104
+ const message = typeof data === 'string' ? JSON.parse(data) : data;
105
+ setLastMessage(message);
106
+ setStatus((prev)=>({
107
+ ...prev,
108
+ lastMessage: new Date()
109
+ }));
110
+ // Notify subscribers
111
+ const subscribers = subscriptionsRef.current.get(message.type);
112
+ if (subscribers) {
113
+ subscribers.forEach((callback)=>callback(message.payload));
114
+ }
115
+ onMessage?.(message);
116
+ } catch (error) {
117
+ console.error('Error parsing WebSocket message:', error);
118
+ }
119
+ });
120
+ // Handle specific dashboard events
121
+ newSocket.on('mcp-status', (data)=>{
122
+ const message = {
123
+ type: 'agent_update',
124
+ timestamp: new Date(),
125
+ payload: data
126
+ };
127
+ setLastMessage(message);
128
+ onMessage?.(message);
129
+ });
130
+ newSocket.on('swarm-metrics', (data)=>{
131
+ const message = {
132
+ type: 'metrics_update',
133
+ timestamp: new Date(),
134
+ payload: data
135
+ };
136
+ setLastMessage(message);
137
+ onMessage?.(message);
138
+ });
139
+ newSocket.on('hierarchy-change', (data)=>{
140
+ const message = {
141
+ type: 'hierarchy_change',
142
+ timestamp: new Date(),
143
+ payload: data
144
+ };
145
+ setLastMessage(message);
146
+ onMessage?.(message);
147
+ });
148
+ newSocket.on('event-stream', (data)=>{
149
+ const message = {
150
+ type: 'event_stream',
151
+ timestamp: new Date(),
152
+ payload: data
153
+ };
154
+ setLastMessage(message);
155
+ onMessage?.(message);
156
+ });
157
+ newSocket.on('error', (data)=>{
158
+ const message = {
159
+ type: 'error',
160
+ timestamp: new Date(),
161
+ payload: data
162
+ };
163
+ setLastMessage(message);
164
+ setError(data.message || 'WebSocket error');
165
+ onMessage?.(message);
166
+ });
167
+ // Heartbeat response
168
+ newSocket.on('pong', ()=>{
169
+ // Heartbeat received
170
+ });
171
+ } catch (error) {
172
+ console.error('Failed to create WebSocket connection:', error);
173
+ setError(error instanceof Error ? error.message : 'Unknown error');
174
+ onError?.(error instanceof Error ? error : new Error('Unknown error'));
175
+ }
176
+ }, [
177
+ url,
178
+ reconnectAttempts,
179
+ reconnectDelay,
180
+ heartbeatInterval,
181
+ status.reconnectAttempts,
182
+ onConnect,
183
+ onDisconnect,
184
+ onError,
185
+ onMessage
186
+ ]);
187
+ const disconnect = useCallback(()=>{
188
+ if (reconnectTimeoutRef.current) {
189
+ clearTimeout(reconnectTimeoutRef.current);
190
+ }
191
+ if (heartbeatIntervalRef.current) {
192
+ clearInterval(heartbeatIntervalRef.current);
193
+ }
194
+ if (socketRef.current) {
195
+ socketRef.current.disconnect();
196
+ socketRef.current = null;
197
+ }
198
+ setSocket(null);
199
+ setStatus((prev)=>({
200
+ ...prev,
201
+ connected: false
202
+ }));
203
+ }, []);
204
+ const reconnect = useCallback(()=>{
205
+ disconnect();
206
+ setTimeout(connect, 100);
207
+ }, [
208
+ disconnect,
209
+ connect
210
+ ]);
211
+ const sendMessage = useCallback((type, payload)=>{
212
+ if (socketRef.current?.connected) {
213
+ socketRef.current.emit('message', {
214
+ type,
215
+ payload
216
+ });
217
+ } else {
218
+ console.warn('WebSocket not connected, cannot send message:', type);
219
+ }
220
+ }, []);
221
+ const subscribe = useCallback((event, callback)=>{
222
+ if (!subscriptionsRef.current.has(event)) {
223
+ subscriptionsRef.current.set(event, new Set());
224
+ }
225
+ subscriptionsRef.current.get(event).add(callback);
226
+ // Return unsubscribe function
227
+ return ()=>{
228
+ const subscribers = subscriptionsRef.current.get(event);
229
+ if (subscribers) {
230
+ subscribers.delete(callback);
231
+ if (subscribers.size === 0) {
232
+ subscriptionsRef.current.delete(event);
233
+ }
234
+ }
235
+ };
236
+ }, []);
237
+ // Auto-connect on mount
238
+ useEffect(()=>{
239
+ if (autoConnect) {
240
+ connect();
241
+ }
242
+ return ()=>{
243
+ disconnect();
244
+ };
245
+ }, [
246
+ autoConnect,
247
+ connect,
248
+ disconnect
249
+ ]);
250
+ return {
251
+ socket,
252
+ status,
253
+ isConnected: status.connected,
254
+ error,
255
+ sendMessage,
256
+ subscribe,
257
+ disconnect,
258
+ reconnect,
259
+ lastMessage
260
+ };
261
+ };
262
+ // Higher-order hook for dashboard state management
263
+ export const useDashboardWebSocket = (initialData, options)=>{
264
+ const [dashboardState, setDashboardState] = useState({
265
+ agents: initialData.agents || [],
266
+ statuses: initialData.statuses || {},
267
+ events: initialData.events || [],
268
+ metrics: initialData.metrics || null,
269
+ alerts: initialData.alerts || [],
270
+ resourceUsage: initialData.resourceUsage || {
271
+ memoryUsage: 0,
272
+ cpuUsage: 0,
273
+ networkLatency: 0,
274
+ diskUsage: 0
275
+ },
276
+ filters: initialData.filters || {},
277
+ loading: initialData.loading || false,
278
+ error: initialData.error || null,
279
+ lastUpdated: initialData.lastUpdated || null,
280
+ connected: initialData.connected || false
281
+ });
282
+ const webSocket = useWebSocket({
283
+ ...options,
284
+ onMessage: (message)=>{
285
+ switch(message.type){
286
+ case 'agent_update':
287
+ setDashboardState((prev)=>({
288
+ ...prev,
289
+ statuses: {
290
+ ...prev.statuses,
291
+ ...message.payload.statuses
292
+ },
293
+ lastUpdated: new Date()
294
+ }));
295
+ break;
296
+ case 'hierarchy_change':
297
+ setDashboardState((prev)=>({
298
+ ...prev,
299
+ agents: message.payload.agents || prev.agents,
300
+ lastUpdated: new Date()
301
+ }));
302
+ break;
303
+ case 'metrics_update':
304
+ setDashboardState((prev)=>({
305
+ ...prev,
306
+ metrics: message.payload.metrics || prev.metrics,
307
+ resourceUsage: message.payload.resourceUsage || prev.resourceUsage,
308
+ alerts: message.payload.alerts || prev.alerts,
309
+ lastUpdated: new Date()
310
+ }));
311
+ break;
312
+ case 'event_stream':
313
+ setDashboardState((prev)=>({
314
+ ...prev,
315
+ events: [
316
+ message.payload.event,
317
+ ...prev.events.slice(0, 999)
318
+ ],
319
+ lastUpdated: new Date()
320
+ }));
321
+ break;
322
+ case 'error':
323
+ setDashboardState((prev)=>({
324
+ ...prev,
325
+ error: message.payload.message,
326
+ lastUpdated: new Date()
327
+ }));
328
+ break;
329
+ }
330
+ options?.onMessage?.(message);
331
+ },
332
+ onConnect: ()=>{
333
+ setDashboardState((prev)=>({
334
+ ...prev,
335
+ connected: true,
336
+ error: null,
337
+ lastUpdated: new Date()
338
+ }));
339
+ options?.onConnect?.();
340
+ },
341
+ onDisconnect: ()=>{
342
+ setDashboardState((prev)=>({
343
+ ...prev,
344
+ connected: false,
345
+ lastUpdated: new Date()
346
+ }));
347
+ options?.onDisconnect?.();
348
+ },
349
+ onError: (error)=>{
350
+ setDashboardState((prev)=>({
351
+ ...prev,
352
+ connected: false,
353
+ error: error.message,
354
+ lastUpdated: new Date()
355
+ }));
356
+ options?.onError?.(error);
357
+ }
358
+ });
359
+ const refreshData = useCallback(()=>{
360
+ if (webSocket.isConnected) {
361
+ webSocket.sendMessage('refresh', {});
362
+ }
363
+ }, [
364
+ webSocket
365
+ ]);
366
+ const updateFilters = useCallback((filters)=>{
367
+ setDashboardState((prev)=>({
368
+ ...prev,
369
+ filters: {
370
+ ...prev.filters,
371
+ ...filters
372
+ }
373
+ }));
374
+ }, []);
375
+ return {
376
+ ...webSocket,
377
+ dashboardState,
378
+ setDashboardState,
379
+ refreshData,
380
+ updateFilters
381
+ };
382
+ };
383
+ export default useWebSocket;
384
+
385
+ //# sourceMappingURL=useWebSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/web/dashboard/hooks/useWebSocket.ts"],"names":["useState","useEffect","useRef","useCallback","io","useWebSocket","options","url","window","location","host","autoConnect","reconnectAttempts","reconnectDelay","heartbeatInterval","onConnect","onDisconnect","onError","onMessage","socket","setSocket","status","setStatus","connected","lastConnected","undefined","lastMessage","error","setError","setLastMessage","socketRef","reconnectTimeoutRef","heartbeatIntervalRef","subscriptionsRef","Map","connect","current","newSocket","transports","upgrade","rememberUpgrade","timeout","forceNew","on","console","log","prev","Date","clearInterval","setInterval","emit","reason","delay","Math","pow","setTimeout","errorMessage","message","data","JSON","parse","subscribers","get","type","forEach","callback","payload","timestamp","Error","disconnect","clearTimeout","reconnect","sendMessage","warn","subscribe","event","has","set","Set","add","delete","size","isConnected","useDashboardWebSocket","initialData","dashboardState","setDashboardState","agents","statuses","events","metrics","alerts","resourceUsage","memoryUsage","cpuUsage","networkLatency","diskUsage","filters","loading","lastUpdated","webSocket","slice","refreshData","updateFilters"],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Dashboard Module Exports
3
+ * Central export point for all dashboard components and utilities
4
+ */ // Main Components
5
+ export { default as Dashboard } from './Dashboard';
6
+ export { default as AgentHierarchyTree } from './components/AgentHierarchyTree';
7
+ export { default as AgentStatusMonitor } from './components/AgentStatusMonitor';
8
+ export { default as PerformanceMetricsChart } from './components/PerformanceMetricsChart';
9
+ export { default as EventTimeline } from './components/EventTimeline';
10
+ export { default as ResourceGauges } from './components/ResourceGauges';
11
+ // Hooks
12
+ export { useWebSocket, useDashboardWebSocket } from './hooks/useWebSocket';
13
+ // Utilities
14
+ export const createDashboardConfig = (overrides = {})=>({
15
+ refreshInterval: 5000,
16
+ maxEvents: 1000,
17
+ enableAnimations: true,
18
+ theme: 'light',
19
+ autoRefresh: true,
20
+ ...overrides
21
+ });
22
+ export const formatBytes = (bytes)=>{
23
+ const sizes = [
24
+ 'B',
25
+ 'KB',
26
+ 'MB',
27
+ 'GB',
28
+ 'TB'
29
+ ];
30
+ if (bytes === 0) return '0 B';
31
+ const i = Math.floor(Math.log(bytes) / Math.log(1024));
32
+ return `${(bytes / Math.pow(1024, i)).toFixed(1)} ${sizes[i]}`;
33
+ };
34
+ export const formatDuration = (ms)=>{
35
+ const seconds = Math.floor(ms / 1000);
36
+ const minutes = Math.floor(seconds / 60);
37
+ const hours = Math.floor(minutes / 60);
38
+ if (hours > 0) return `${hours}h ${minutes % 60}m`;
39
+ if (minutes > 0) return `${minutes}m ${seconds % 60}s`;
40
+ return `${seconds}s`;
41
+ };
42
+ export const getAgentStateColor = (state)=>{
43
+ switch(state){
44
+ case 'active':
45
+ return 'text-green-600 bg-green-50 border-green-200';
46
+ case 'paused':
47
+ return 'text-yellow-600 bg-yellow-50 border-yellow-200';
48
+ case 'error':
49
+ return 'text-red-600 bg-red-50 border-red-200';
50
+ case 'terminated':
51
+ return 'text-gray-600 bg-gray-50 border-gray-200';
52
+ default:
53
+ return 'text-blue-600 bg-blue-50 border-blue-200';
54
+ }
55
+ };
56
+ export const getAlertSeverityColor = (severity)=>{
57
+ switch(severity){
58
+ case 'critical':
59
+ return 'text-red-600 bg-red-50 border-red-200';
60
+ case 'high':
61
+ return 'text-orange-600 bg-orange-50 border-orange-200';
62
+ case 'medium':
63
+ return 'text-yellow-600 bg-yellow-50 border-yellow-200';
64
+ case 'low':
65
+ return 'text-blue-600 bg-blue-50 border-blue-200';
66
+ default:
67
+ return 'text-gray-600 bg-gray-50 border-gray-200';
68
+ }
69
+ };
70
+ // Default export
71
+ export default {
72
+ Dashboard,
73
+ AgentHierarchyTree,
74
+ AgentStatusMonitor,
75
+ PerformanceMetricsChart,
76
+ EventTimeline,
77
+ ResourceGauges,
78
+ useWebSocket,
79
+ useDashboardWebSocket,
80
+ createDashboardConfig,
81
+ formatBytes,
82
+ formatDuration,
83
+ getAgentStateColor,
84
+ getAlertSeverityColor
85
+ };
86
+
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/web/dashboard/index.ts"],"names":["default","Dashboard","AgentHierarchyTree","AgentStatusMonitor","PerformanceMetricsChart","EventTimeline","ResourceGauges","useWebSocket","useDashboardWebSocket","createDashboardConfig","overrides","refreshInterval","maxEvents","enableAnimations","theme","autoRefresh","formatBytes","bytes","sizes","i","Math","floor","log","pow","toFixed","formatDuration","ms","seconds","minutes","hours","getAgentStateColor","state","getAlertSeverityColor","severity"],"mappings":"AAAA;;;CAGC,GAED,kBAAkB;AAClB,SAASA,WAAWC,SAAS,QAAQ,cAAc;AACnD,SAASD,WAAWE,kBAAkB,QAAQ,kCAAkC;AAChF,SAASF,WAAWG,kBAAkB,QAAQ,kCAAkC;AAChF,SAASH,WAAWI,uBAAuB,QAAQ,uCAAuC;AAC1F,SAASJ,WAAWK,aAAa,QAAQ,6BAA6B;AACtE,SAASL,WAAWM,cAAc,QAAQ,8BAA8B;AAExE,QAAQ;AACR,SAASC,YAAY,EAAEC,qBAAqB,QAAQ,uBAAuB;AAoC3E,YAAY;AACZ,OAAO,MAAMC,wBAAwB,CAACC,YAAsC,CAAC,CAAC,GAAuB,CAAA;QACnGC,iBAAiB;QACjBC,WAAW;QACXC,kBAAkB;QAClBC,OAAO;QACPC,aAAa;QACb,GAAGL,SAAS;IACd,CAAA,EAAG;AAEH,OAAO,MAAMM,cAAc,CAACC;IAC1B,MAAMC,QAAQ;QAAC;QAAK;QAAM;QAAM;QAAM;KAAK;IAC3C,IAAID,UAAU,GAAG,OAAO;IACxB,MAAME,IAAIC,KAAKC,KAAK,CAACD,KAAKE,GAAG,CAACL,SAASG,KAAKE,GAAG,CAAC;IAChD,OAAO,GAAG,AAACL,CAAAA,QAAQG,KAAKG,GAAG,CAAC,MAAMJ,EAAC,EAAGK,OAAO,CAAC,GAAG,CAAC,EAAEN,KAAK,CAACC,EAAE,EAAE;AAChE,EAAE;AAEF,OAAO,MAAMM,iBAAiB,CAACC;IAC7B,MAAMC,UAAUP,KAAKC,KAAK,CAACK,KAAK;IAChC,MAAME,UAAUR,KAAKC,KAAK,CAACM,UAAU;IACrC,MAAME,QAAQT,KAAKC,KAAK,CAACO,UAAU;IAEnC,IAAIC,QAAQ,GAAG,OAAO,GAAGA,MAAM,EAAE,EAAED,UAAU,GAAG,CAAC,CAAC;IAClD,IAAIA,UAAU,GAAG,OAAO,GAAGA,QAAQ,EAAE,EAAED,UAAU,GAAG,CAAC,CAAC;IACtD,OAAO,GAAGA,QAAQ,CAAC,CAAC;AACtB,EAAE;AAEF,OAAO,MAAMG,qBAAqB,CAACC;IACjC,OAAQA;QACN,KAAK;YAAU,OAAO;QACtB,KAAK;YAAU,OAAO;QACtB,KAAK;YAAS,OAAO;QACrB,KAAK;YAAc,OAAO;QAC1B;YAAS,OAAO;IAClB;AACF,EAAE;AAEF,OAAO,MAAMC,wBAAwB,CAACC;IACpC,OAAQA;QACN,KAAK;YAAY,OAAO;QACxB,KAAK;YAAQ,OAAO;QACpB,KAAK;YAAU,OAAO;QACtB,KAAK;YAAO,OAAO;QACnB;YAAS,OAAO;IAClB;AACF,EAAE;AAEF,iBAAiB;AACjB,eAAe;IACbhC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAC;IACAO;IACAS;IACAK;IACAE;AACF,EAAE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Dashboard Types for Agent Lifecycle Transparency System
3
+ * TypeScript interfaces and type definitions for the React dashboard
4
+ */ export { };
5
+
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/web/dashboard/types.ts"],"names":[],"mappings":"AAAA;;;CAGC,GAmRD,WAGC"}