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.
- package/.claude/agents/cfn-loop/product-owner.md +54 -4
- package/.claude/commands/cfn-claude-sync.md +303 -0
- package/.claude/commands/cfn-loop-epic.md +290 -0
- package/.claude/commands/cfn-loop-single.md +168 -0
- package/.claude/commands/cfn-loop-sprints.md +384 -0
- package/.claude/commands/cfn-loop.md +180 -0
- package/.claude/commands/metrics-summary.md +58 -0
- package/.claude/commands/parse-epic.md +357 -0
- package/.claude/settings.json +4 -4
- package/.claude/settings.local.json +9 -2
- package/.claude-flow-novice/.claude/agents/cfn-loop/product-owner.md +792 -0
- package/.claude-flow-novice/dist/mcp/server.js +21 -2
- package/.claude-flow-novice/dist/src/api/claude-client.js +138 -3
- package/.claude-flow-novice/dist/src/api/claude-client.js.map +1 -1
- package/.claude-flow-novice/dist/src/cfn-loop/phase-orchestrator-example.js +1 -1
- package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js +247 -0
- package/.claude-flow-novice/dist/src/cfn-loop/scope-control.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/commands/swarm.js +32 -15
- package/.claude-flow-novice/dist/src/cli/commands/swarm.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/commands/transparency.js +455 -0
- package/.claude-flow-novice/dist/src/cli/commands/transparency.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +129 -13
- package/.claude-flow-novice/dist/src/components/visualizations/index.js +9 -0
- package/.claude-flow-novice/dist/src/components/visualizations/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js +462 -0
- package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/config-translator.js +248 -0
- package/.claude-flow-novice/dist/src/coordination/config-translator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js +287 -0
- package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js +68 -9
- package/.claude-flow-novice/dist/src/coordination/distributed-consensus.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/feature-flags.js +166 -0
- package/.claude-flow-novice/dist/src/coordination/feature-flags.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/queen-agent.js +18 -4
- package/.claude-flow-novice/dist/src/coordination/queen-agent.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/role-assignment.js +6 -110
- package/.claude-flow-novice/dist/src/coordination/role-assignment.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js +632 -0
- package/.claude-flow-novice/dist/src/coordination/v2/cache/artifact-cache-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js +11 -0
- package/.claude-flow-novice/dist/src/coordination/v2/cache/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js +318 -0
- package/.claude-flow-novice/dist/src/coordination/v2/checkpoints/checkpoint-compressor.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js +364 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.example.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js +492 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/cascading-shutdown.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js +786 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/hierarchical-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js +16 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js +342 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/parent-child-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js +601 -0
- package/.claude-flow-novice/dist/src/coordination/v2/coordinators/swarm-coordinator-v2.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js +211 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/help-request-metrics.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/index.js +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js +365 -6
- package/.claude-flow-novice/dist/src/coordination/v2/core/message-broker.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js +478 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/resource-manager-safe.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js +5 -2
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine-config.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js +189 -0
- package/.claude-flow-novice/dist/src/coordination/v2/core/state-machine.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js +424 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/deadlock-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js +9 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js +669 -0
- package/.claude-flow-novice/dist/src/coordination/v2/deadlock/resource-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js +451 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/artifact-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js +271 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/cycle-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js +335 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-graph.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js +439 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js +92 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/dependency-request.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js +21 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js +223 -0
- package/.claude-flow-novice/dist/src/coordination/v2/dependency/topological-sort.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js +436 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js +278 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-matcher.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js +317 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js +273 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/help-request.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js +15 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js +512 -0
- package/.claude-flow-novice/dist/src/coordination/v2/help-system/waiting-agent-pool.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/index.js +6 -0
- package/.claude-flow-novice/dist/src/coordination/v2/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js +557 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/help-deadlock-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js +212 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.example.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js +552 -0
- package/.claude-flow-novice/dist/src/coordination/v2/integration/message-bus-completion-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js +367 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/dependency-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/memory/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js +371 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js +355 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js +424 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/help-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js +16 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js +295 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/state-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js +411 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/task-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js +387 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-bus.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js +589 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-persistence.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js +444 -0
- package/.claude-flow-novice/dist/src/coordination/v2/messaging/message-router.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js +29 -8
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/checkpoint-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js +470 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/help-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js +450 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js +5 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js +545 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/multi-level-control.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js +44 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-controller.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js +415 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/query-message-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js +615 -0
- package/.claude-flow-novice/dist/src/coordination/v2/sdk/session-pool-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js +259 -0
- package/.claude-flow-novice/dist/src/coordination/v2/security/payload-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js +17 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js +357 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js +679 -0
- package/.claude-flow-novice/dist/src/coordination/v2/transparency/transparency-system.js.map +1 -0
- package/.claude-flow-novice/dist/src/core/agent-manager.js +30 -0
- package/.claude-flow-novice/dist/src/core/agent-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/mcp/server.js +21 -2
- package/.claude-flow-novice/dist/src/mcp/server.js.map +1 -1
- package/.claude-flow-novice/dist/src/observability/metrics-counter.js +268 -0
- package/.claude-flow-novice/dist/src/observability/metrics-counter.js.map +1 -0
- package/.claude-flow-novice/dist/src/observability/metrics-storage.js +265 -0
- package/.claude-flow-novice/dist/src/observability/metrics-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/observability/telemetry.js +26 -0
- package/.claude-flow-novice/dist/src/observability/telemetry.js.map +1 -1
- package/.claude-flow-novice/dist/src/providers/tiered-router.js +64 -10
- package/.claude-flow-novice/dist/src/providers/tiered-router.js.map +1 -1
- package/.claude-flow-novice/dist/src/providers/zai-provider.js +196 -97
- package/.claude-flow-novice/dist/src/providers/zai-provider.js.map +1 -1
- package/.claude-flow-novice/dist/src/slash-commands/cfn-claude-sync.js +533 -0
- package/.claude-flow-novice/dist/src/slash-commands/index.js +5 -0
- package/.claude-flow-novice/dist/src/slash-commands/metrics-summary-class.js +74 -0
- package/.claude-flow-novice/dist/src/slash-commands/metrics-summary.js +335 -0
- package/.claude-flow-novice/dist/src/slash-commands/register-all-commands.js +12 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js +96 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression-demo.js.map +1 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js +406 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-compression.js.map +1 -0
- package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js +35 -5
- package/.claude-flow-novice/dist/src/verification/checkpoint-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/web/api/config/api-config.js +186 -0
- package/.claude-flow-novice/dist/src/web/api/config/api-config.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/auth.js +205 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/auth.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/cache.js +262 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/cache.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js +250 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/error-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js +217 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/request-logger.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/validation.js +325 -0
- package/.claude-flow-novice/dist/src/web/api/middleware/validation.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/events.js +465 -0
- package/.claude-flow-novice/dist/src/web/api/routes/events.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js +302 -0
- package/.claude-flow-novice/dist/src/web/api/routes/hierarchy.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/index.js +14 -0
- package/.claude-flow-novice/dist/src/web/api/routes/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/metrics.js +561 -0
- package/.claude-flow-novice/dist/src/web/api/routes/metrics.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/routes/status.js +450 -0
- package/.claude-flow-novice/dist/src/web/api/routes/status.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/api/server.js +451 -0
- package/.claude-flow-novice/dist/src/web/api/server.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js +385 -0
- package/.claude-flow-novice/dist/src/web/dashboard/hooks/useWebSocket.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/dashboard/index.js +87 -0
- package/.claude-flow-novice/dist/src/web/dashboard/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/web/dashboard/types.js +6 -0
- package/.claude-flow-novice/dist/src/web/dashboard/types.js.map +1 -0
- package/.claude-flow-novice/metrics.db +0 -0
- package/.claude-flow-novice/metrics.db-shm +0 -0
- package/.claude-flow-novice/metrics.db-wal +0 -0
- package/CLAUDE.md +29 -0
- package/README.md +27 -0
- package/config/hooks/post-edit-pipeline.js +36 -2
- package/examples/metrics-counter-demo.ts +106 -0
- package/examples/persistent-metrics-demo.ts +83 -0
- package/examples/phase-5-multi-level-control.ts +282 -0
- package/examples/session-pool-optimizer-example.ts +311 -0
- package/package.json +15 -3
- package/scripts/check-routing-stats.cjs +122 -0
- package/scripts/pre-publish-validation.cjs +212 -0
- package/scripts/test-provider-routing.cjs +228 -0
- package/scripts/test-routing-telemetry.cjs +147 -0
- package/scripts/test-zai-10k.cjs +81 -0
- package/scripts/test-zai-api.cjs +191 -0
- package/scripts/test-zai-diagnostic.cjs +151 -0
- package/scripts/test-zai-final.cjs +128 -0
- package/scripts/test-zai-with-env.cjs +85 -0
- package/scripts/validate-coordination-cli.js +69 -0
- package/scripts/validate-coordination-toggle-integration.cjs +501 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md +29 -0
- package/src/observability/metrics-counter.ts +347 -0
- package/src/observability/metrics-storage.ts +356 -0
- package/src/observability/telemetry.ts +658 -0
- package/src/slash-commands/cfn-claude-sync.js +533 -0
- package/src/slash-commands/index.js +5 -0
- package/src/slash-commands/metrics-summary-class.js +74 -0
- package/src/slash-commands/metrics-summary.js +335 -0
- 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
|
package/.claude-flow-novice/dist/src/coordination/v2/messaging/channels/dependency-channel.js.map
ADDED
|
@@ -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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"}
|