claude-flow-novice 1.6.1 → 1.6.2

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 (244) 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 +4 -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/claude-client.js +138 -3
  14. package/.claude-flow-novice/dist/src/api/claude-client.js.map +1 -1
  15. package/.claude-flow-novice/dist/src/cfn-loop/phase-orchestrator-example.js +1 -1
  16. package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js +247 -0
  17. package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js.map +1 -0
  18. package/.claude-flow-novice/dist/src/cli/commands/swarm.js +32 -15
  19. package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
  20. package/.claude-flow-novice/dist/src/cli/commands/transparency.js +455 -0
  21. package/.claude-flow-novice/dist/src/cli/commands/transparency.js.map +1 -0
  22. package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +129 -13
  23. package/.claude-flow-novice/dist/src/components/visualizations/index.js +9 -0
  24. package/.claude-flow-novice/dist/src/components/visualizations/index.js.map +1 -0
  25. package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js +462 -0
  26. package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js.map +1 -0
  27. package/.claude-flow-novice/dist/src/coordination/config-translator.js +248 -0
  28. package/.claude-flow-novice/dist/src/coordination/config-translator.js.map +1 -0
  29. package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js +287 -0
  30. package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js.map +1 -0
  31. package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js +68 -9
  32. package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js.map +1 -1
  33. package/.claude-flow-novice/dist/src/coordination/feature-flags.js +166 -0
  34. package/.claude-flow-novice/dist/src/coordination/feature-flags.js.map +1 -0
  35. package/.claude-flow-novice/dist/src/coordination/queen-agent.js +18 -4
  36. package/.claude-flow-novice/dist/src/coordination/queen-agent.js.map +1 -1
  37. package/.claude-flow-novice/dist/src/coordination/role-assignment.js +6 -110
  38. package/.claude-flow-novice/dist/src/coordination/role-assignment.js.map +1 -1
  39. package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js +632 -0
  40. package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js.map +1 -0
  41. package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js +11 -0
  42. package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js.map +1 -0
  43. package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js +318 -0
  44. package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js.map +1 -0
  45. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js +364 -0
  46. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js.map +1 -0
  47. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js +492 -0
  48. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js.map +1 -0
  49. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js +786 -0
  50. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js.map +1 -0
  51. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js +16 -0
  52. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js.map +1 -0
  53. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js +342 -0
  54. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js.map +1 -0
  55. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js +601 -0
  56. package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js.map +1 -0
  57. package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js +211 -0
  58. package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js.map +1 -0
  59. package/.claude-flow-novice/dist/src/coordination/v2/core/index.js +1 -0
  60. package/.claude-flow-novice/dist/src/coordination/v2/core/index.js.map +1 -1
  61. package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js +365 -6
  62. package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js.map +1 -1
  63. package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js +478 -0
  64. package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js.map +1 -0
  65. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js +5 -2
  66. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js.map +1 -1
  67. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js +189 -0
  68. package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js.map +1 -1
  69. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js +424 -0
  70. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js.map +1 -0
  71. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js +9 -0
  72. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js.map +1 -0
  73. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js +669 -0
  74. package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js.map +1 -0
  75. package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js +451 -0
  76. package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js.map +1 -0
  77. package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js +271 -0
  78. package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js.map +1 -0
  79. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js +335 -0
  80. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js.map +1 -0
  81. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js +439 -0
  82. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js.map +1 -0
  83. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js +92 -0
  84. package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js.map +1 -0
  85. package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js +21 -0
  86. package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js.map +1 -0
  87. package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js +223 -0
  88. package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js.map +1 -0
  89. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js +436 -0
  90. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js.map +1 -0
  91. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js +278 -0
  92. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js.map +1 -0
  93. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js +317 -0
  94. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js.map +1 -0
  95. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js +273 -0
  96. package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js.map +1 -0
  97. package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js +15 -0
  98. package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js.map +1 -0
  99. package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js +512 -0
  100. package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js.map +1 -0
  101. package/.claude-flow-novice/dist/src/coordination/v2/index.js +6 -0
  102. package/.claude-flow-novice/dist/src/coordination/v2/index.js.map +1 -1
  103. package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js +557 -0
  104. package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js.map +1 -0
  105. package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js +14 -0
  106. package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js.map +1 -0
  107. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js +212 -0
  108. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js.map +1 -0
  109. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js +552 -0
  110. package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js.map +1 -0
  111. package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js +367 -0
  112. package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js.map +1 -0
  113. package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js +1 -0
  114. package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js.map +1 -1
  115. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js +371 -0
  116. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js.map +1 -0
  117. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js +355 -0
  118. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js.map +1 -0
  119. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js +424 -0
  120. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js.map +1 -0
  121. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js +16 -0
  122. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js.map +1 -0
  123. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js +295 -0
  124. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js.map +1 -0
  125. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js +411 -0
  126. package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js.map +1 -0
  127. package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js +14 -0
  128. package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js.map +1 -0
  129. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js +387 -0
  130. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js.map +1 -0
  131. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js +589 -0
  132. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js.map +1 -0
  133. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js +444 -0
  134. package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js.map +1 -0
  135. package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js +29 -8
  136. package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js.map +1 -1
  137. package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js +470 -0
  138. package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js.map +1 -0
  139. package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js +450 -0
  140. package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js.map +1 -0
  141. package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js +5 -0
  142. package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js.map +1 -1
  143. package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js +545 -0
  144. package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js.map +1 -0
  145. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js +44 -0
  146. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js.map +1 -1
  147. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js +415 -0
  148. package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js.map +1 -0
  149. package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js +615 -0
  150. package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js.map +1 -0
  151. package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js +259 -0
  152. package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js.map +1 -0
  153. package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js +17 -0
  154. package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js.map +1 -0
  155. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js +357 -0
  156. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js.map +1 -0
  157. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js +679 -0
  158. package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js.map +1 -0
  159. package/.claude-flow-novice/dist/src/core/agent-manager.js +30 -0
  160. package/.claude-flow-novice/dist/src/core/agent-manager.js.map +1 -1
  161. package/.claude-flow-novice/dist/src/mcp/server.js +21 -2
  162. package/.claude-flow-novice/dist/src/mcp/server.js.map +1 -1
  163. package/.claude-flow-novice/dist/src/observability/metrics-counter.js +268 -0
  164. package/.claude-flow-novice/dist/src/observability/metrics-counter.js.map +1 -0
  165. package/.claude-flow-novice/dist/src/observability/metrics-storage.js +265 -0
  166. package/.claude-flow-novice/dist/src/observability/metrics-storage.js.map +1 -0
  167. package/.claude-flow-novice/dist/src/observability/telemetry.js +26 -0
  168. package/.claude-flow-novice/dist/src/observability/telemetry.js.map +1 -1
  169. package/.claude-flow-novice/dist/src/providers/tiered-router.js +64 -10
  170. package/.claude-flow-novice/dist/src/providers/tiered-router.js.map +1 -1
  171. package/.claude-flow-novice/dist/src/providers/zai-provider.js +196 -97
  172. package/.claude-flow-novice/dist/src/providers/zai-provider.js.map +1 -1
  173. package/.claude-flow-novice/dist/src/slash-commands/cfn-claude-sync.js +533 -0
  174. package/.claude-flow-novice/dist/src/slash-commands/index.js +5 -0
  175. package/.claude-flow-novice/dist/src/slash-commands/metrics-summary-class.js +74 -0
  176. package/.claude-flow-novice/dist/src/slash-commands/metrics-summary.js +335 -0
  177. package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +12 -0
  178. package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js +96 -0
  179. package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js.map +1 -0
  180. package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js +406 -0
  181. package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js.map +1 -0
  182. package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js +35 -5
  183. package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js.map +1 -1
  184. package/.claude-flow-novice/dist/src/web/api/config/api-config.js +186 -0
  185. package/.claude-flow-novice/dist/src/web/api/config/api-config.js.map +1 -0
  186. package/.claude-flow-novice/dist/src/web/api/middleware/auth.js +205 -0
  187. package/.claude-flow-novice/dist/src/web/api/middleware/auth.js.map +1 -0
  188. package/.claude-flow-novice/dist/src/web/api/middleware/cache.js +262 -0
  189. package/.claude-flow-novice/dist/src/web/api/middleware/cache.js.map +1 -0
  190. package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js +250 -0
  191. package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js.map +1 -0
  192. package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js +217 -0
  193. package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js.map +1 -0
  194. package/.claude-flow-novice/dist/src/web/api/middleware/validation.js +325 -0
  195. package/.claude-flow-novice/dist/src/web/api/middleware/validation.js.map +1 -0
  196. package/.claude-flow-novice/dist/src/web/api/routes/events.js +465 -0
  197. package/.claude-flow-novice/dist/src/web/api/routes/events.js.map +1 -0
  198. package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js +302 -0
  199. package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js.map +1 -0
  200. package/.claude-flow-novice/dist/src/web/api/routes/index.js +14 -0
  201. package/.claude-flow-novice/dist/src/web/api/routes/index.js.map +1 -0
  202. package/.claude-flow-novice/dist/src/web/api/routes/metrics.js +561 -0
  203. package/.claude-flow-novice/dist/src/web/api/routes/metrics.js.map +1 -0
  204. package/.claude-flow-novice/dist/src/web/api/routes/status.js +450 -0
  205. package/.claude-flow-novice/dist/src/web/api/routes/status.js.map +1 -0
  206. package/.claude-flow-novice/dist/src/web/api/server.js +451 -0
  207. package/.claude-flow-novice/dist/src/web/api/server.js.map +1 -0
  208. package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js +385 -0
  209. package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js.map +1 -0
  210. package/.claude-flow-novice/dist/src/web/dashboard/index.js +87 -0
  211. package/.claude-flow-novice/dist/src/web/dashboard/index.js.map +1 -0
  212. package/.claude-flow-novice/dist/src/web/dashboard/types.js +6 -0
  213. package/.claude-flow-novice/dist/src/web/dashboard/types.js.map +1 -0
  214. package/.claude-flow-novice/metrics.db +0 -0
  215. package/.claude-flow-novice/metrics.db-shm +0 -0
  216. package/.claude-flow-novice/metrics.db-wal +0 -0
  217. package/CLAUDE.md +29 -0
  218. package/README.md +27 -0
  219. package/config/hooks/post-edit-pipeline.js +36 -2
  220. package/examples/metrics-counter-demo.ts +106 -0
  221. package/examples/persistent-metrics-demo.ts +83 -0
  222. package/examples/phase-5-multi-level-control.ts +282 -0
  223. package/examples/session-pool-optimizer-example.ts +311 -0
  224. package/package.json +15 -3
  225. package/scripts/check-routing-stats.cjs +122 -0
  226. package/scripts/pre-publish-validation.cjs +212 -0
  227. package/scripts/test-provider-routing.cjs +228 -0
  228. package/scripts/test-routing-telemetry.cjs +147 -0
  229. package/scripts/test-zai-10k.cjs +81 -0
  230. package/scripts/test-zai-api.cjs +191 -0
  231. package/scripts/test-zai-diagnostic.cjs +151 -0
  232. package/scripts/test-zai-final.cjs +128 -0
  233. package/scripts/test-zai-with-env.cjs +85 -0
  234. package/scripts/validate-coordination-cli.js +69 -0
  235. package/scripts/validate-coordination-toggle-integration.cjs +501 -0
  236. package/src/cli/simple-commands/init/templates/CLAUDE.md +29 -0
  237. package/src/observability/metrics-counter.ts +347 -0
  238. package/src/observability/metrics-storage.ts +356 -0
  239. package/src/observability/telemetry.ts +658 -0
  240. package/src/slash-commands/cfn-claude-sync.js +533 -0
  241. package/src/slash-commands/index.js +5 -0
  242. package/src/slash-commands/metrics-summary-class.js +74 -0
  243. package/src/slash-commands/metrics-summary.js +335 -0
  244. package/src/slash-commands/register-all-commands.js +12 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/coordination/distributed-consensus.ts"],"names":["EventEmitter","performance","crypto","DistributedConsensusManager","config","agentReputations","agentStakes","consensusHistory","activeProposals","approvalThreshold","byzantineTolerance","sybilDetectionEnabled","reputationDecayFactor","minParticipationRate","timeout","proofOfWorkDifficulty","proofOfWorkEnabled","Map","registerAgent","agentId","proofOfWork","nonce","set","stake","registeredAt","Date","now","difficulty","expectedHash","hash","emit","reason","expected","received","countLeadingZeros","required","difficultyBonus","Math","min","agentStake","count","char","generateProofOfWork","leadingZeros","Error","executeConsensus","proposal","agents","startTime","proposalId","agentCount","length","votes","collectVotes","validVotes","validateVotes","byzantineAgents","detectByzantineAgents","trustedVotes","filter","v","includes","voterId","dimensionScores","aggregateDimensions","consensusScore","calculateConsensusScore","approved","proof","generateConsensusProof","updateReputations","duration","result","participatingAgents","byzantineAgentsDetected","timestamp","push","delete","deadline","vote","requestVoteFromPeer","error","message","String","Promise","resolve","setTimeout","random","validation","simulateAgentValidation","voteId","generateId","overallScore","validations","signature","signVote","expectedSignature","Set","outliers","detectOutliers","forEach","add","inconsistent","detectInconsistentVoting","lowReputation","detectLowReputationAgents","replayAttackers","detectReplayAttacks","Array","from","scores","map","mean","reduce","a","b","variance","sum","score","pow","stdDev","sqrt","zScore","abs","reputation","get","reputationScore","suspicious","seenNonces","has","agentNonces","dimensions","dimension","flatMap","d","confidence","avgScore","approvals","totalStake","approvalStake","proposalHash","JSON","stringify","voteHashes","merkleRoot","buildMerkleRoot","signatureChain","participationRate","hashes","paired","i","left","right","totalVotes","consistentVotes","inconsistentVotes","lastVote","evidence","blockers","overallConfidence","signValidation","data","createHash","update","digest","prefix","toString","substring","getAgentReputation","getAgentStake","getAllAgentStakes","values","getConsensusHistory","getMetrics","totalConsensus","r","avgConsensusScore","avgDuration","stakes","avgStake","s","avgDifficulty","rejected","byzantineDetections","registeredAgents","size","requiredDifficulty","shutdown","clear","removeAllListeners"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/coordination/distributed-consensus.ts"],"names":["EventEmitter","performance","crypto","DistributedConsensusManager","config","agentReputations","agentStakes","consensusHistory","activeProposals","agentKeyPairs","approvalThreshold","byzantineTolerance","sybilDetectionEnabled","reputationDecayFactor","minParticipationRate","timeout","proofOfWorkDifficulty","proofOfWorkEnabled","Map","registerAgent","agentId","proofOfWork","nonce","set","stake","registeredAt","Date","now","difficulty","expectedHash","hash","emit","reason","expected","received","countLeadingZeros","required","difficultyBonus","Math","min","agentStake","count","char","generateProofOfWork","leadingZeros","Error","executeConsensus","proposal","agents","startTime","proposalId","agentCount","length","votes","collectVotes","validVotes","validateVotes","byzantineAgents","detectByzantineAgents","trustedVotes","filter","v","includes","voterId","dimensionScores","aggregateDimensions","consensusScore","calculateConsensusScore","approved","proof","generateConsensusProof","updateReputations","duration","result","participatingAgents","byzantineAgentsDetected","timestamp","push","delete","deadline","vote","requestVoteFromPeer","error","message","String","ensureAgentKeypair","Promise","resolve","setTimeout","random","validation","simulateAgentValidation","voteId","generateId","overallScore","validations","signature","signVote","voteData","isValid","verifySignature","Set","outliers","detectOutliers","forEach","add","inconsistent","detectInconsistentVoting","lowReputation","detectLowReputationAgents","replayAttackers","detectReplayAttacks","Array","from","scores","map","mean","reduce","a","b","variance","sum","score","pow","stdDev","sqrt","zScore","abs","reputation","get","reputationScore","suspicious","seenNonces","has","agentNonces","dimensions","dimension","flatMap","d","confidence","avgScore","approvals","totalStake","approvalStake","proposalHash","JSON","stringify","voteHashes","merkleRoot","buildMerkleRoot","signatureChain","participationRate","hashes","paired","i","left","right","totalVotes","consistentVotes","inconsistentVotes","lastVote","evidence","blockers","overallConfidence","signValidation","publicKey","privateKey","generateKeyPairSync","modulusLength","publicKeyEncoding","type","format","privateKeyEncoding","data","keypair","sign","Buffer","key","padding","constants","RSA_PKCS1_PSS_PADDING","toString","verify","createHash","update","digest","prefix","substring","getAgentReputation","getAgentStake","getAllAgentStakes","values","getConsensusHistory","getMetrics","totalConsensus","r","avgConsensusScore","avgDuration","stakes","avgStake","s","avgDifficulty","rejected","byzantineDetections","registeredAgents","size","requiredDifficulty","shutdown","clear","removeAllListeners"],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Feature Flags System for Gradual V2 Rollout
3
+ *
4
+ * Provides controlled migration from V1 to V2 coordination system with:
5
+ * - Hash-based consistent user assignment (same user always gets same version)
6
+ * - Environment-based rollout percentage control (0-100%)
7
+ * - Explicit version override via COORDINATION_VERSION env var
8
+ *
9
+ * @example
10
+ * // 100% V2 rollout (default)
11
+ * FeatureFlags.shouldUseV2() // true
12
+ *
13
+ * @example
14
+ * // 50% gradual rollout
15
+ * process.env.V2_ROLLOUT_PERCENT = '50';
16
+ * FeatureFlags.shouldUseV2('user123') // Deterministic hash-based assignment
17
+ *
18
+ * @example
19
+ * // Explicit V1 override
20
+ * process.env.COORDINATION_VERSION = 'v1';
21
+ * FeatureFlags.getCoordinationVersion() // 'v1' regardless of rollout %
22
+ */ import crypto from 'crypto';
23
+ export class FeatureFlags {
24
+ /**
25
+ * Get rollout percentage from environment
26
+ * Default: 100% (all users get V2)
27
+ * Range: 0-100
28
+ *
29
+ * Set via V2_ROLLOUT_PERCENT environment variable:
30
+ * - 0%: All users get V1
31
+ * - 25%: 25% of users get V2 (hash-based assignment)
32
+ * - 50%: 50% of users get V2 (hash-based assignment)
33
+ * - 100%: All users get V2
34
+ *
35
+ * @returns Rollout percentage (0-100)
36
+ */ static getRolloutConfig() {
37
+ const rawValue = process.env.V2_ROLLOUT_PERCENT || '100';
38
+ // VUL-3 FIX: Strict validation for rollout percentage
39
+ if (!/^\d+$/.test(rawValue)) {
40
+ throw new Error(`Invalid V2_ROLLOUT_PERCENT: "${rawValue}". Must be numeric string (0-100).`);
41
+ }
42
+ const parsed = parseInt(rawValue, 10);
43
+ // VUL-3 FIX: Validate range
44
+ if (isNaN(parsed) || parsed < 0 || parsed > 100) {
45
+ throw new Error(`Invalid V2_ROLLOUT_PERCENT: "${rawValue}". Must be between 0 and 100.`);
46
+ }
47
+ return parsed;
48
+ }
49
+ /**
50
+ * Determine if V2 coordination should be used for a given user
51
+ *
52
+ * Logic:
53
+ * 1. If rollout is 0%, return false (all V1)
54
+ * 2. If rollout is 100%, return true (all V2)
55
+ * 3. Otherwise, use hash-based assignment for consistent user experience
56
+ *
57
+ * @param userId - Optional user identifier for consistent assignment
58
+ * @returns true if V2 should be used, false for V1
59
+ *
60
+ * @example
61
+ * // 100% rollout
62
+ * FeatureFlags.shouldUseV2() // true
63
+ *
64
+ * @example
65
+ * // 50% rollout with user ID
66
+ * FeatureFlags.shouldUseV2('user123') // Deterministic hash-based assignment
67
+ */ static shouldUseV2(userId) {
68
+ // Validate rollout percentage range
69
+ const rollout = Math.max(0, Math.min(100, this.getRolloutConfig()));
70
+ // Edge cases: 0% and 100% rollout
71
+ if (rollout === 0) return false;
72
+ if (rollout === 100) return true;
73
+ // Hash-based assignment for gradual rollout
74
+ // If no userId provided or empty string, use random assignment (non-persistent)
75
+ const hash = userId && userId.length > 0 ? this.hashUserId(userId) : Math.random() * 100;
76
+ return hash < rollout;
77
+ }
78
+ /**
79
+ * Get the coordination version to use for a given user
80
+ *
81
+ * Priority:
82
+ * 1. COORDINATION_VERSION env var (explicit override)
83
+ * 2. Gradual rollout via shouldUseV2()
84
+ *
85
+ * @param userId - Optional user identifier for consistent assignment
86
+ * @returns 'v1' or 'v2'
87
+ *
88
+ * @example
89
+ * // Explicit override
90
+ * process.env.COORDINATION_VERSION = 'v1';
91
+ * FeatureFlags.getCoordinationVersion() // 'v1'
92
+ *
93
+ * @example
94
+ * // Gradual rollout
95
+ * delete process.env.COORDINATION_VERSION;
96
+ * process.env.V2_ROLLOUT_PERCENT = '50';
97
+ * FeatureFlags.getCoordinationVersion('user123') // 'v1' or 'v2' based on hash
98
+ */ static getCoordinationVersion(userId) {
99
+ // VUL-1 FIX: Explicit override with strict validation
100
+ if (process.env.COORDINATION_VERSION) {
101
+ const version = process.env.COORDINATION_VERSION;
102
+ // Strict regex validation to prevent injection
103
+ if (!/^v[12]$/.test(version)) {
104
+ throw new Error(`Invalid COORDINATION_VERSION: "${version}". Must be exactly 'v1' or 'v2'.`);
105
+ }
106
+ return version;
107
+ }
108
+ // Gradual rollout based on percentage
109
+ return this.shouldUseV2(userId) ? 'v2' : 'v1';
110
+ }
111
+ /**
112
+ * Hash a user ID to a deterministic value in range [0, 100)
113
+ *
114
+ * VUL-2 FIX: Uses crypto.createHash for collision resistance
115
+ * - Deterministic assignment (same user ID always produces same hash)
116
+ * - Even distribution across user population
117
+ * - Consistent rollout experience per user
118
+ * - Resistant to hash collision attacks
119
+ *
120
+ * @param userId - User identifier to hash
121
+ * @returns Integer in range [0, 100)
122
+ *
123
+ * @example
124
+ * FeatureFlags['hashUserId']('user123') // Always returns same value
125
+ */ static hashUserId(userId) {
126
+ // VUL-2 FIX: Validate userId input
127
+ if (typeof userId !== 'string') {
128
+ throw new Error(`Invalid userId type: ${typeof userId}. Must be string.`);
129
+ }
130
+ if (userId.length === 0) {
131
+ throw new Error('userId cannot be empty string');
132
+ }
133
+ // VUL-2 FIX: Length limit to prevent DoS
134
+ if (userId.length > 256) {
135
+ throw new Error(`userId too long: ${userId.length} chars. Maximum 256 characters.`);
136
+ }
137
+ // VUL-2 FIX: Use crypto.createHash for collision resistance
138
+ const hash = crypto.createHash('sha256').update(userId, 'utf8').digest('hex');
139
+ // Convert first 8 hex chars to integer and modulo 100
140
+ const hashInt = parseInt(hash.substring(0, 8), 16);
141
+ return hashInt % 100;
142
+ }
143
+ /**
144
+ * Get current rollout percentage for monitoring
145
+ *
146
+ * @returns Current V2 rollout percentage (0-100)
147
+ *
148
+ * @example
149
+ * FeatureFlags.getRolloutPercentage() // 100
150
+ */ static getRolloutPercentage() {
151
+ return Math.max(0, Math.min(100, this.getRolloutConfig()));
152
+ }
153
+ /**
154
+ * Check if explicit version override is active
155
+ *
156
+ * @returns true if COORDINATION_VERSION env var is set
157
+ *
158
+ * @example
159
+ * process.env.COORDINATION_VERSION = 'v1';
160
+ * FeatureFlags.hasExplicitOverride() // true
161
+ */ static hasExplicitOverride() {
162
+ return !!process.env.COORDINATION_VERSION;
163
+ }
164
+ }
165
+
166
+ //# sourceMappingURL=feature-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/coordination/feature-flags.ts"],"names":["crypto","FeatureFlags","getRolloutConfig","rawValue","process","env","V2_ROLLOUT_PERCENT","test","Error","parsed","parseInt","isNaN","shouldUseV2","userId","rollout","Math","max","min","hash","length","hashUserId","random","getCoordinationVersion","COORDINATION_VERSION","version","createHash","update","digest","hashInt","substring","getRolloutPercentage","hasExplicitOverride"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;CAqBC,GACD,OAAOA,YAAY,SAAS;AAE5B,OAAO,MAAMC;IACX;;;;;;;;;;;;GAYC,GACD,OAAeC,mBAA2B;QACxC,MAAMC,WAAWC,QAAQC,GAAG,CAACC,kBAAkB,IAAI;QAEnD,sDAAsD;QACtD,IAAI,CAAC,QAAQC,IAAI,CAACJ,WAAW;YAC3B,MAAM,IAAIK,MACR,CAAC,6BAA6B,EAAEL,SAAS,kCAAkC,CAAC;QAEhF;QAEA,MAAMM,SAASC,SAASP,UAAU;QAElC,4BAA4B;QAC5B,IAAIQ,MAAMF,WAAWA,SAAS,KAAKA,SAAS,KAAK;YAC/C,MAAM,IAAID,MACR,CAAC,6BAA6B,EAAEL,SAAS,6BAA6B,CAAC;QAE3E;QAEA,OAAOM;IACT;IAEA;;;;;;;;;;;;;;;;;;GAkBC,GACD,OAAOG,YAAYC,MAAe,EAAW;QAC3C,oCAAoC;QACpC,MAAMC,UAAUC,KAAKC,GAAG,CAAC,GAAGD,KAAKE,GAAG,CAAC,KAAK,IAAI,CAACf,gBAAgB;QAE/D,kCAAkC;QAClC,IAAIY,YAAY,GAAG,OAAO;QAC1B,IAAIA,YAAY,KAAK,OAAO;QAE5B,4CAA4C;QAC5C,gFAAgF;QAChF,MAAMI,OAAOL,UAAUA,OAAOM,MAAM,GAAG,IAAI,IAAI,CAACC,UAAU,CAACP,UAAUE,KAAKM,MAAM,KAAK;QACrF,OAAOH,OAAOJ;IAChB;IAEA;;;;;;;;;;;;;;;;;;;;GAoBC,GACD,OAAOQ,uBAAuBT,MAAe,EAAe;QAC1D,sDAAsD;QACtD,IAAIT,QAAQC,GAAG,CAACkB,oBAAoB,EAAE;YACpC,MAAMC,UAAUpB,QAAQC,GAAG,CAACkB,oBAAoB;YAEhD,+CAA+C;YAC/C,IAAI,CAAC,UAAUhB,IAAI,CAACiB,UAAU;gBAC5B,MAAM,IAAIhB,MACR,CAAC,+BAA+B,EAAEgB,QAAQ,gCAAgC,CAAC;YAE/E;YAEA,OAAOA;QACT;QAEA,sCAAsC;QACtC,OAAO,IAAI,CAACZ,WAAW,CAACC,UAAU,OAAO;IAC3C;IAEA;;;;;;;;;;;;;;GAcC,GACD,OAAeO,WAAWP,MAAc,EAAU;QAChD,mCAAmC;QACnC,IAAI,OAAOA,WAAW,UAAU;YAC9B,MAAM,IAAIL,MAAM,CAAC,qBAAqB,EAAE,OAAOK,OAAO,iBAAiB,CAAC;QAC1E;QAEA,IAAIA,OAAOM,MAAM,KAAK,GAAG;YACvB,MAAM,IAAIX,MAAM;QAClB;QAEA,yCAAyC;QACzC,IAAIK,OAAOM,MAAM,GAAG,KAAK;YACvB,MAAM,IAAIX,MAAM,CAAC,iBAAiB,EAAEK,OAAOM,MAAM,CAAC,+BAA+B,CAAC;QACpF;QAEA,4DAA4D;QAC5D,MAAMD,OAAOlB,OAAOyB,UAAU,CAAC,UAAUC,MAAM,CAACb,QAAQ,QAAQc,MAAM,CAAC;QAEvE,sDAAsD;QACtD,MAAMC,UAAUlB,SAASQ,KAAKW,SAAS,CAAC,GAAG,IAAI;QAC/C,OAAOD,UAAU;IACnB;IAEA;;;;;;;GAOC,GACD,OAAOE,uBAA+B;QACpC,OAAOf,KAAKC,GAAG,CAAC,GAAGD,KAAKE,GAAG,CAAC,KAAK,IAAI,CAACf,gBAAgB;IACxD;IAEA;;;;;;;;GAQC,GACD,OAAO6B,sBAA+B;QACpC,OAAO,CAAC,CAAC3B,QAAQC,GAAG,CAACkB,oBAAoB;IAC3C;AACF"}
@@ -698,11 +698,18 @@ import { createEventPayload } from '../utils/event-payload-helper.js';
698
698
  // Release rate limit for task queue
699
699
  this.rateLimiter.releaseTask();
700
700
  }
701
- this.emit('task:completed', {
701
+ // Emit standardized event with system caller
702
+ this.emit('task:completed', createEventPayload({
702
703
  workerId,
703
704
  taskId,
704
705
  result
705
- });
706
+ }, {
707
+ id: 'system',
708
+ type: 'system',
709
+ roles: [
710
+ 'system'
711
+ ]
712
+ }));
706
713
  }
707
714
  /**
708
715
  * Handle task failure from worker
@@ -723,11 +730,18 @@ import { createEventPayload } from '../utils/event-payload-helper.js';
723
730
  // Release rate limit for task queue
724
731
  this.rateLimiter.releaseTask();
725
732
  }
726
- this.emit('task:failed', {
733
+ // Emit standardized event with system caller
734
+ this.emit('task:failed', createEventPayload({
727
735
  workerId,
728
736
  taskId,
729
737
  error
730
- });
738
+ }, {
739
+ id: 'system',
740
+ type: 'system',
741
+ roles: [
742
+ 'system'
743
+ ]
744
+ }));
731
745
  }
732
746
  /**
733
747
  * Handle health update from worker
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/coordination/queen-agent.ts"],"names":["EventEmitter","generateId","RBACManager","RateLimiter","RateLimitError","validateWorkerCapabilities","validateTask","validateWorkerId","validateCallerIdentity","validateWorkerResults","PMFailoverManager","createEventPayload","QueenAgent","workers","taskAssignments","workerTasks","healthCheckTimer","isInitialized","config","workerSubscription","rbacManager","rateLimiter","failoverManager","memory","broker","dependencyGraph","logger","Map","minWorkers","maxWorkers","healthCheckInterval","taskTimeout","workerRetryAttempts","autoScale","scalingThreshold","maxConcurrentWorkers","maxTaskQueueSize","workerSpawnWindowMs","maxWorkerSpawnsPerWindow","taskDelegationWindowMs","maxTaskDelegationsPerWindow","failureThreshold","inactivityTimeout","heartbeatTimeout","confidenceWeight","uptimeWeight","capacityWeight","initialize","warn","info","subscribe","topic","handler","message","handleWorkerMessage","priority","startHealthMonitoring","on","newPMId","emit","remember","initialized","timestamp","Date","tags","shareLevel","spawnWorker","type","capabilities","caller","Error","validatedCaller","id","roles","requirePermission","workerType","checkWorkerSpawn","error","validatedCapabilities","size","releaseWorker","workerId","worker","status","currentTasks","completedTasks","failedTasks","health","successRate","averageResponseTime","errorCount","consecutiveFailures","lastHealthCheck","spawnedAt","lastActivity","set","Set","broadcast","payload","action","delegateTask","task","taskId","taskType","checkTaskDelegation","validatedTask","addTask","selectBestWorker","get","releaseTask","length","maxConcurrentTasks","delegatedAt","push","add","publish","queenId","correlationId","debug","aggregateResults","workerResults","validatedResults","completedWorkers","failedWorkers","results","result","Object","entries","success","data","totalWorkers","successCount","confidence","aggregatedData","mergeWorkerResults","aggregation","workerCount","toFixed","monitorWorkerHealth","healthMap","totalTasks","reason","inactiveMs","now","getTime","Math","floor","healthStats","Array","from","map","scaleWorkers","targetCount","currentCount","toSpawn","i","skills","undefined","toTerminate","idleWorkers","values","filter","w","sort","a","b","slice","terminateWorker","to","getWorkerStats","idle","busy","degraded","offline","totalSuccessRate","totalTasksCompleted","totalTasksFailed","total","averageSuccessRate","otherWorkers","newWorkerId","newWorker","markFailed","delete","availableWorkers","scoredWorkers","healthScore","loadScore","priorityScore","totalScore","score","handleTaskCompletion","handleTaskFailure","handleHealthUpdate","markCompleted","setInterval","stats","busyRatio","min","max","merged","assign","shutdown","clearInterval","unsubscribe","keys","clear","removeAllListeners"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/coordination/queen-agent.ts"],"names":["EventEmitter","generateId","RBACManager","RateLimiter","RateLimitError","validateWorkerCapabilities","validateTask","validateWorkerId","validateCallerIdentity","validateWorkerResults","PMFailoverManager","createEventPayload","QueenAgent","workers","taskAssignments","workerTasks","healthCheckTimer","isInitialized","config","workerSubscription","rbacManager","rateLimiter","failoverManager","memory","broker","dependencyGraph","logger","Map","minWorkers","maxWorkers","healthCheckInterval","taskTimeout","workerRetryAttempts","autoScale","scalingThreshold","maxConcurrentWorkers","maxTaskQueueSize","workerSpawnWindowMs","maxWorkerSpawnsPerWindow","taskDelegationWindowMs","maxTaskDelegationsPerWindow","failureThreshold","inactivityTimeout","heartbeatTimeout","confidenceWeight","uptimeWeight","capacityWeight","initialize","warn","info","subscribe","topic","handler","message","handleWorkerMessage","priority","startHealthMonitoring","on","newPMId","emit","remember","initialized","timestamp","Date","tags","shareLevel","spawnWorker","type","capabilities","caller","Error","validatedCaller","id","roles","requirePermission","workerType","checkWorkerSpawn","error","validatedCapabilities","size","releaseWorker","workerId","worker","status","currentTasks","completedTasks","failedTasks","health","successRate","averageResponseTime","errorCount","consecutiveFailures","lastHealthCheck","spawnedAt","lastActivity","set","Set","broadcast","payload","action","delegateTask","task","taskId","taskType","checkTaskDelegation","validatedTask","addTask","selectBestWorker","get","releaseTask","length","maxConcurrentTasks","delegatedAt","push","add","publish","queenId","correlationId","debug","aggregateResults","workerResults","validatedResults","completedWorkers","failedWorkers","results","result","Object","entries","success","data","totalWorkers","successCount","confidence","aggregatedData","mergeWorkerResults","aggregation","workerCount","toFixed","monitorWorkerHealth","healthMap","totalTasks","reason","inactiveMs","now","getTime","Math","floor","healthStats","Array","from","map","scaleWorkers","targetCount","currentCount","toSpawn","i","skills","undefined","toTerminate","idleWorkers","values","filter","w","sort","a","b","slice","terminateWorker","to","getWorkerStats","idle","busy","degraded","offline","totalSuccessRate","totalTasksCompleted","totalTasksFailed","total","averageSuccessRate","otherWorkers","newWorkerId","newWorker","markFailed","delete","availableWorkers","scoredWorkers","healthScore","loadScore","priorityScore","totalScore","score","handleTaskCompletion","handleTaskFailure","handleHealthUpdate","markCompleted","setInterval","stats","busyRatio","min","max","merged","assign","shutdown","clearInterval","unsubscribe","keys","clear","removeAllListeners"],"mappings":"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"}
@@ -12,8 +12,6 @@
12
12
  * @module coordination/role-assignment
13
13
  */ import { EventEmitter } from 'events';
14
14
  import { generateId } from '../utils/helpers.js';
15
- import * as jwt from 'jsonwebtoken';
16
- import * as crypto from 'crypto';
17
15
  /**
18
16
  * Dynamic Role Assignment System
19
17
  *
@@ -78,8 +76,6 @@ import * as crypto from 'crypto';
78
76
  acknowledgments;
79
77
  conflicts;
80
78
  isInitialized;
81
- agentTokens;
82
- jwtSecret;
83
79
  constructor(config, broker, logger){
84
80
  super(), this.config = config, this.broker = broker, this.logger = logger;
85
81
  this.agentCapabilities = new Map();
@@ -89,12 +85,6 @@ import * as crypto from 'crypto';
89
85
  this.acknowledgments = new Map();
90
86
  this.conflicts = new Map();
91
87
  this.isInitialized = false;
92
- this.agentTokens = new Map();
93
- // Initialize JWT secret from environment or generate secure random secret
94
- this.jwtSecret = process.env.JWT_SECRET || crypto.randomBytes(64).toString('hex');
95
- if (!process.env.JWT_SECRET) {
96
- this.logger.warn('JWT_SECRET not set in environment. Using generated secret (will not persist across restarts)');
97
- }
98
88
  }
99
89
  /**
100
90
  * Initialize role assignment system
@@ -124,76 +114,13 @@ import * as crypto from 'crypto';
124
114
  handler: this.handleAgentFailure.bind(this)
125
115
  });
126
116
  this.isInitialized = true;
127
- this.logger.info('RoleAssignmentSystem initialized with JWT authentication');
128
- }
129
- /**
130
- * Generate JWT token for agent authentication
131
- *
132
- * @param agentId - Unique agent identifier
133
- * @param agentType - Type of agent (e.g., 'backend-dev', 'security-specialist')
134
- * @returns JWT token string
135
- */ generateAgentToken(agentId, agentType) {
136
- const payload = {
137
- agentId,
138
- agentType,
139
- issuedAt: Date.now(),
140
- expiresAt: Date.now() + 24 * 60 * 60 * 1000 // 24 hours
141
- };
142
- const token = jwt.sign(payload, this.jwtSecret, {
143
- algorithm: 'HS256',
144
- expiresIn: '24h'
145
- });
146
- this.agentTokens.set(agentId, token);
147
- this.logger.info(`Generated JWT token for agent ${agentId}`);
148
- return token;
149
- }
150
- /**
151
- * Verify JWT token and extract agent identity
152
- *
153
- * @param token - JWT token to verify
154
- * @returns Verified agent payload or null if invalid
155
- */ verifyAgentToken(token) {
156
- try {
157
- const decoded = jwt.verify(token, this.jwtSecret, {
158
- algorithms: [
159
- 'HS256'
160
- ]
161
- });
162
- // Verify token hasn't expired
163
- if (decoded.expiresAt < Date.now()) {
164
- this.logger.warn(`Token expired for agent ${decoded.agentId}`);
165
- return null;
166
- }
167
- return decoded;
168
- } catch (error) {
169
- this.logger.error('JWT verification failed', {
170
- error: error.message
171
- });
172
- return null;
173
- }
117
+ this.logger.info('RoleAssignmentSystem initialized');
174
118
  }
175
119
  /**
176
120
  * Register agent capabilities (broadcast to peers)
177
121
  *
178
122
  * @param capabilities - Agent capabilities profile
179
- * @param authToken - JWT authentication token (REQUIRED for security)
180
- * @throws Error if authentication fails or token is invalid
181
- */ async registerAgentCapabilities(capabilities, authToken) {
182
- // CRITICAL-003 FIX: Verify JWT token before allowing capability registration
183
- const tokenPayload = this.verifyAgentToken(authToken);
184
- if (!tokenPayload) {
185
- this.logger.error(`Authentication failed for agent ${capabilities.agentId} - invalid token`);
186
- throw new Error(`Authentication failed: invalid or expired token for agent ${capabilities.agentId}`);
187
- }
188
- // Verify agentId in token matches capabilities.agentId
189
- if (tokenPayload.agentId !== capabilities.agentId) {
190
- this.logger.error(`Authentication failed: token agentId ${tokenPayload.agentId} does not match capabilities agentId ${capabilities.agentId}`);
191
- throw new Error(`Authentication failed: agentId mismatch (token: ${tokenPayload.agentId}, capabilities: ${capabilities.agentId})`);
192
- }
193
- // Verify agentType matches (optional but recommended)
194
- if (tokenPayload.agentType !== capabilities.agentType) {
195
- this.logger.warn(`AgentType mismatch: token=${tokenPayload.agentType}, capabilities=${capabilities.agentType}`);
196
- }
123
+ */ async registerAgentCapabilities(capabilities) {
197
124
  this.agentCapabilities.set(capabilities.agentId, capabilities);
198
125
  // Broadcast capabilities to all peers
199
126
  await this.broker.publish({
@@ -318,26 +245,8 @@ import * as crypto from 'crypto';
318
245
  *
319
246
  * @param agentId - Agent identifier claiming the role
320
247
  * @param role - Role being claimed
321
- * @param authToken - JWT authentication token (REQUIRED for security)
322
- * @throws Error if authentication fails, token invalid, or agent not qualified
323
- */ async claimRole(agentId, role, authToken) {
324
- // CRITICAL-003 FIX: Verify JWT token before allowing role claim
325
- const tokenPayload = this.verifyAgentToken(authToken);
326
- if (!tokenPayload) {
327
- this.logger.error(`Authentication failed for agent ${agentId} claiming role ${role.roleName} - invalid token`);
328
- throw new Error(`Authentication failed: invalid or expired token for agent ${agentId}`);
329
- }
330
- // Verify caller owns the agentId (prevent impersonation)
331
- if (tokenPayload.agentId !== agentId) {
332
- this.logger.error(`Authentication failed: token agentId ${tokenPayload.agentId} attempting to claim role as ${agentId}`);
333
- throw new Error(`Authentication failed: agentId mismatch (token: ${tokenPayload.agentId}, claim: ${agentId})`);
334
- }
335
- // Verify token is still stored (hasn't been revoked)
336
- const storedToken = this.agentTokens.get(agentId);
337
- if (!storedToken || storedToken !== authToken) {
338
- this.logger.error(`Authentication failed: token for agent ${agentId} not found or revoked`);
339
- throw new Error(`Authentication failed: token not found or revoked for agent ${agentId}`);
340
- }
248
+ * @throws Error if agent not qualified
249
+ */ async claimRole(agentId, role) {
341
250
  // Calculate capability score
342
251
  const score = this.calculateCapabilityScore(agentId, role);
343
252
  if (!score) {
@@ -371,7 +280,7 @@ import * as crypto from 'crypto';
371
280
  timestamp: new Date()
372
281
  }
373
282
  });
374
- this.logger.info(`Authenticated agent ${agentId} claimed role ${role.roleName}`, {
283
+ this.logger.info(`Agent ${agentId} claimed role ${role.roleName}`, {
375
284
  score: score.totalScore,
376
285
  claimId: claim.claimId
377
286
  });
@@ -385,18 +294,6 @@ import * as crypto from 'crypto';
385
294
  return claim;
386
295
  }
387
296
  /**
388
- * Revoke agent token (invalidates authentication)
389
- *
390
- * @param agentId - Agent whose token should be revoked
391
- */ revokeAgentToken(agentId) {
392
- if (this.agentTokens.delete(agentId)) {
393
- this.logger.info(`Revoked token for agent ${agentId}`);
394
- this.emit('token_revoked', {
395
- agentId
396
- });
397
- }
398
- }
399
- /**
400
297
  * Detect if multiple agents claimed same role
401
298
  */ async detectRoleConflict(taskId, roleName) {
402
299
  const claims = Array.from(this.roleClaims.values()).filter((c)=>c.taskId === taskId && c.roleName === roleName && c.status === 'pending');
@@ -673,8 +570,7 @@ import * as crypto from 'crypto';
673
570
  this.roleAssignments.clear();
674
571
  this.acknowledgments.clear();
675
572
  this.conflicts.clear();
676
- this.agentTokens.clear(); // Clear all stored tokens
677
- this.logger.info('RoleAssignmentSystem shutdown - all tokens revoked');
573
+ this.logger.info('RoleAssignmentSystem shutdown');
678
574
  }
679
575
  }
680
576