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
@@ -0,0 +1,355 @@
1
+ /**
2
+ * Agent Coordination V2 - Dependency Channel
3
+ *
4
+ * Specialized channel for dependency request and resolution messages.
5
+ * Integrates with Phase 2 dependency graph to coordinate task dependencies
6
+ * across agents.
7
+ *
8
+ * @module coordination/v2/messaging/channels/dependency-channel
9
+ */ import { DependencyNodeStatus } from '../../core/dependency-node.js';
10
+ import { MessagePriority } from '../../core/message.js';
11
+ /**
12
+ * Dependency channel validation error.
13
+ */ export class DependencyChannelError extends Error {
14
+ constructor(message){
15
+ super(message);
16
+ this.name = 'DependencyChannelError';
17
+ }
18
+ }
19
+ /**
20
+ * Dependency Channel Implementation.
21
+ *
22
+ * Specialized messaging channel for dependency coordination with:
23
+ * - Type-safe dependency request/resolution payloads
24
+ * - Integration with Phase 2 dependency graph
25
+ * - Request/reply pattern for dependency resolution
26
+ * - Automatic priority assignment based on dependency criticality
27
+ * - Timeout handling for dependency requests
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const depChannel = new DependencyChannel(messageBroker);
32
+ *
33
+ * // Request dependency resolution
34
+ * await depChannel.publishDependencyRequest({
35
+ * requesterId: 'agent-1',
36
+ * taskId: 'task-2',
37
+ * dependencyId: 'task-1',
38
+ * timeout: 30000
39
+ * });
40
+ *
41
+ * // Publish dependency resolution
42
+ * await depChannel.publishDependencyResolution({
43
+ * dependencyId: 'task-1',
44
+ * providerId: 'agent-0',
45
+ * status: DependencyNodeStatus.COMPLETED,
46
+ * result: { data: 'completed' }
47
+ * });
48
+ * ```
49
+ */ export class DependencyChannel {
50
+ /** Base topic for all dependency messages */ static BASE_TOPIC = 'dependency';
51
+ /** Topic for dependency requests */ static REQUEST_TOPIC = 'dependency.request';
52
+ /** Topic for dependency resolutions */ static RESOLUTION_TOPIC = 'dependency.resolution';
53
+ /** Topic for dependency failures */ static FAILURE_TOPIC = 'dependency.failure';
54
+ broker;
55
+ /**
56
+ * Creates a new dependency channel instance.
57
+ *
58
+ * @param broker - Message broker for publishing/subscribing
59
+ */ constructor(broker){
60
+ if (!broker) {
61
+ throw new DependencyChannelError('Message broker is required');
62
+ }
63
+ this.broker = broker;
64
+ }
65
+ // ============================================
66
+ // Publishing - Dependency Requests
67
+ // ============================================
68
+ /**
69
+ * Publishes a dependency request.
70
+ *
71
+ * @param config - Dependency request configuration
72
+ * @returns Promise resolving to published message
73
+ * @throws {DependencyChannelError} If validation fails
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * await depChannel.publishDependencyRequest({
78
+ * requesterId: 'agent-1',
79
+ * taskId: 'task-2',
80
+ * dependencyId: 'task-1',
81
+ * timeout: 30000
82
+ * });
83
+ * ```
84
+ */ async publishDependencyRequest(config) {
85
+ this.validateDependencyRequest(config);
86
+ const payload = {
87
+ requesterId: config.requesterId,
88
+ taskId: config.taskId,
89
+ dependencyId: config.dependencyId,
90
+ timeout: config.timeout,
91
+ timestamp: Date.now(),
92
+ metadata: config.metadata
93
+ };
94
+ const topic = `${DependencyChannel.REQUEST_TOPIC}.${config.dependencyId}`;
95
+ const messageConfig = {
96
+ topic,
97
+ payload,
98
+ priority: MessagePriority.NORMAL,
99
+ senderId: config.requesterId,
100
+ metadata: {
101
+ channel: 'dependency',
102
+ type: 'request',
103
+ dependencyId: config.dependencyId
104
+ }
105
+ };
106
+ return this.broker.publish(messageConfig);
107
+ }
108
+ // ============================================
109
+ // Publishing - Dependency Resolutions
110
+ // ============================================
111
+ /**
112
+ * Publishes a dependency resolution.
113
+ *
114
+ * @param config - Dependency resolution configuration
115
+ * @returns Promise resolving to published message
116
+ * @throws {DependencyChannelError} If validation fails
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * await depChannel.publishDependencyResolution({
121
+ * dependencyId: 'task-1',
122
+ * providerId: 'agent-0',
123
+ * status: DependencyNodeStatus.COMPLETED,
124
+ * result: { output: 'success' }
125
+ * });
126
+ * ```
127
+ */ async publishDependencyResolution(config) {
128
+ this.validateDependencyResolution(config);
129
+ const payload = {
130
+ dependencyId: config.dependencyId,
131
+ providerId: config.providerId,
132
+ status: config.status,
133
+ result: config.result,
134
+ timestamp: Date.now(),
135
+ metadata: config.metadata
136
+ };
137
+ const topic = `${DependencyChannel.RESOLUTION_TOPIC}.${config.dependencyId}`;
138
+ const messageConfig = {
139
+ topic,
140
+ payload,
141
+ priority: MessagePriority.HIGH,
142
+ senderId: config.providerId,
143
+ metadata: {
144
+ channel: 'dependency',
145
+ type: 'resolution',
146
+ dependencyId: config.dependencyId,
147
+ status: config.status
148
+ }
149
+ };
150
+ return this.broker.publish(messageConfig);
151
+ }
152
+ // ============================================
153
+ // Publishing - Dependency Failures
154
+ // ============================================
155
+ /**
156
+ * Publishes a dependency failure.
157
+ *
158
+ * @param config - Dependency failure configuration
159
+ * @returns Promise resolving to published message
160
+ * @throws {DependencyChannelError} If validation fails
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * await depChannel.publishDependencyFailure({
165
+ * dependencyId: 'task-1',
166
+ * taskId: 'task-1',
167
+ * reason: 'Execution timeout',
168
+ * error: new Error('Task timed out after 60s')
169
+ * });
170
+ * ```
171
+ */ async publishDependencyFailure(config) {
172
+ this.validateDependencyFailure(config);
173
+ const payload = {
174
+ dependencyId: config.dependencyId,
175
+ taskId: config.taskId,
176
+ reason: config.reason,
177
+ error: config.error,
178
+ timestamp: Date.now(),
179
+ metadata: config.metadata
180
+ };
181
+ const topic = `${DependencyChannel.FAILURE_TOPIC}.${config.dependencyId}`;
182
+ const messageConfig = {
183
+ topic,
184
+ payload,
185
+ priority: MessagePriority.CRITICAL,
186
+ metadata: {
187
+ channel: 'dependency',
188
+ type: 'failure',
189
+ dependencyId: config.dependencyId
190
+ }
191
+ };
192
+ return this.broker.publish(messageConfig);
193
+ }
194
+ // ============================================
195
+ // Subscribing
196
+ // ============================================
197
+ /**
198
+ * Subscribes to dependency requests for a specific dependency.
199
+ *
200
+ * @param dependencyId - Dependency ID to monitor
201
+ * @param handler - Callback function for requests
202
+ * @returns Subscription handle
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * const sub = await depChannel.subscribeToDependencyRequests('task-1', async (payload) => {
207
+ * console.log(`Dependency requested by ${payload.requesterId}`);
208
+ * });
209
+ * ```
210
+ */ async subscribeToDependencyRequests(dependencyId, handler) {
211
+ this.validateId(dependencyId, 'Dependency ID');
212
+ return this.broker.subscribe({
213
+ topic: `${DependencyChannel.REQUEST_TOPIC}.${dependencyId}`,
214
+ handler: async (message)=>{
215
+ await handler(message.payload);
216
+ }
217
+ });
218
+ }
219
+ /**
220
+ * Subscribes to all dependency requests.
221
+ *
222
+ * @param handler - Callback function for requests
223
+ * @returns Subscription handle
224
+ */ async subscribeToAllRequests(handler) {
225
+ return this.broker.subscribe({
226
+ topic: `${DependencyChannel.REQUEST_TOPIC}.*`,
227
+ handler: async (message)=>{
228
+ await handler(message.payload);
229
+ }
230
+ });
231
+ }
232
+ /**
233
+ * Subscribes to dependency resolutions for a specific dependency.
234
+ *
235
+ * @param dependencyId - Dependency ID to monitor
236
+ * @param handler - Callback function for resolutions
237
+ * @returns Subscription handle
238
+ *
239
+ * @example
240
+ * ```typescript
241
+ * const sub = await depChannel.subscribeToDependencyResolutions('task-1', async (payload) => {
242
+ * console.log(`Dependency resolved with status: ${payload.status}`);
243
+ * });
244
+ * ```
245
+ */ async subscribeToDependencyResolutions(dependencyId, handler) {
246
+ this.validateId(dependencyId, 'Dependency ID');
247
+ return this.broker.subscribe({
248
+ topic: `${DependencyChannel.RESOLUTION_TOPIC}.${dependencyId}`,
249
+ handler: async (message)=>{
250
+ await handler(message.payload);
251
+ }
252
+ });
253
+ }
254
+ /**
255
+ * Subscribes to all dependency resolutions.
256
+ *
257
+ * @param handler - Callback function for resolutions
258
+ * @returns Subscription handle
259
+ */ async subscribeToAllResolutions(handler) {
260
+ return this.broker.subscribe({
261
+ topic: `${DependencyChannel.RESOLUTION_TOPIC}.*`,
262
+ handler: async (message)=>{
263
+ await handler(message.payload);
264
+ }
265
+ });
266
+ }
267
+ /**
268
+ * Subscribes to dependency failures.
269
+ *
270
+ * @param handler - Callback function for failures
271
+ * @returns Subscription handle
272
+ *
273
+ * @example
274
+ * ```typescript
275
+ * const sub = await depChannel.subscribeToFailures(async (payload) => {
276
+ * console.error(`Dependency ${payload.dependencyId} failed: ${payload.reason}`);
277
+ * });
278
+ * ```
279
+ */ async subscribeToFailures(handler) {
280
+ return this.broker.subscribe({
281
+ topic: `${DependencyChannel.FAILURE_TOPIC}.*`,
282
+ handler: async (message)=>{
283
+ await handler(message.payload);
284
+ }
285
+ });
286
+ }
287
+ // ============================================
288
+ // Validation
289
+ // ============================================
290
+ /**
291
+ * Validates dependency request configuration.
292
+ */ validateDependencyRequest(config) {
293
+ this.validateId(config.requesterId, 'Requester ID');
294
+ this.validateId(config.taskId, 'Task ID');
295
+ this.validateId(config.dependencyId, 'Dependency ID');
296
+ if (config.timeout !== undefined) {
297
+ if (typeof config.timeout !== 'number' || config.timeout <= 0) {
298
+ throw new DependencyChannelError('Timeout must be a positive number');
299
+ }
300
+ }
301
+ }
302
+ /**
303
+ * Validates dependency resolution configuration.
304
+ */ validateDependencyResolution(config) {
305
+ this.validateId(config.dependencyId, 'Dependency ID');
306
+ this.validateId(config.providerId, 'Provider ID');
307
+ if (!Object.values(DependencyNodeStatus).includes(config.status)) {
308
+ throw new DependencyChannelError(`Invalid status: ${config.status}`);
309
+ }
310
+ }
311
+ /**
312
+ * Validates dependency failure configuration.
313
+ */ validateDependencyFailure(config) {
314
+ this.validateId(config.dependencyId, 'Dependency ID');
315
+ this.validateId(config.taskId, 'Task ID');
316
+ if (!config.reason || typeof config.reason !== 'string') {
317
+ throw new DependencyChannelError('Failure reason must be a non-empty string');
318
+ }
319
+ }
320
+ /**
321
+ * Validates an ID field.
322
+ */ validateId(id, fieldName) {
323
+ if (!id || typeof id !== 'string') {
324
+ throw new DependencyChannelError(`${fieldName} must be a non-empty string`);
325
+ }
326
+ if (id.length > 256) {
327
+ throw new DependencyChannelError(`${fieldName} exceeds 256 characters`);
328
+ }
329
+ }
330
+ // ============================================
331
+ // Utility Methods
332
+ // ============================================
333
+ /**
334
+ * Gets the base topic for all dependency messages.
335
+ */ static getBaseTopic() {
336
+ return DependencyChannel.BASE_TOPIC;
337
+ }
338
+ /**
339
+ * Gets the topic for dependency requests.
340
+ */ static getRequestTopic() {
341
+ return DependencyChannel.REQUEST_TOPIC;
342
+ }
343
+ /**
344
+ * Gets the topic for dependency resolutions.
345
+ */ static getResolutionTopic() {
346
+ return DependencyChannel.RESOLUTION_TOPIC;
347
+ }
348
+ /**
349
+ * Gets the topic for dependency failures.
350
+ */ static getFailureTopic() {
351
+ return DependencyChannel.FAILURE_TOPIC;
352
+ }
353
+ }
354
+
355
+ //# sourceMappingURL=dependency-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/coordination/v2/messaging/channels/dependency-channel.ts"],"names":["DependencyNodeStatus","MessagePriority","DependencyChannelError","Error","message","name","DependencyChannel","BASE_TOPIC","REQUEST_TOPIC","RESOLUTION_TOPIC","FAILURE_TOPIC","broker","publishDependencyRequest","config","validateDependencyRequest","payload","requesterId","taskId","dependencyId","timeout","timestamp","Date","now","metadata","topic","messageConfig","priority","NORMAL","senderId","channel","type","publish","publishDependencyResolution","validateDependencyResolution","providerId","status","result","HIGH","publishDependencyFailure","validateDependencyFailure","reason","error","CRITICAL","subscribeToDependencyRequests","handler","validateId","subscribe","subscribeToAllRequests","subscribeToDependencyResolutions","subscribeToAllResolutions","subscribeToFailures","undefined","Object","values","includes","id","fieldName","length","getBaseTopic","getRequestTopic","getResolutionTopic","getFailureTopic"],"mappings":"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"}