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,439 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Coordination V2 - Dependency Manager Implementation
|
|
3
|
+
*
|
|
4
|
+
* Coordinates dependency resolution using topological sorting and graph analysis.
|
|
5
|
+
* Provides high-level API for managing agent task dependencies.
|
|
6
|
+
*
|
|
7
|
+
* @module coordination/v2/dependency/dependency-manager
|
|
8
|
+
*/ import { DependencyGraph } from '../core/dependency-graph.js';
|
|
9
|
+
import { DependencyNodeStatus, DependencyNodeImpl } from '../core/dependency-node.js';
|
|
10
|
+
import { TopologicalSort } from './topological-sort.js';
|
|
11
|
+
/**
|
|
12
|
+
* Dependency Manager for Agent Coordination.
|
|
13
|
+
*
|
|
14
|
+
* Provides high-level dependency management operations:
|
|
15
|
+
* - Task registration with dependency tracking
|
|
16
|
+
* - Topological resolution for execution ordering
|
|
17
|
+
* - Incremental batch resolution for concurrent execution
|
|
18
|
+
* - Status tracking and propagation
|
|
19
|
+
* - Cycle detection and validation
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const manager = new DependencyManager();
|
|
24
|
+
*
|
|
25
|
+
* // Register tasks with dependencies
|
|
26
|
+
* manager.registerTask({
|
|
27
|
+
* id: 'task-1',
|
|
28
|
+
* agentId: 'agent-a',
|
|
29
|
+
* taskId: 'implement-auth',
|
|
30
|
+
* dependencies: []
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* manager.registerTask({
|
|
34
|
+
* id: 'task-2',
|
|
35
|
+
* agentId: 'agent-b',
|
|
36
|
+
* taskId: 'test-auth',
|
|
37
|
+
* dependencies: ['task-1']
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // Resolve dependencies
|
|
41
|
+
* const resolution = manager.resolveDependencies({
|
|
42
|
+
* agentId: 'agent-b',
|
|
43
|
+
* taskId: 'test-auth'
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* console.log('Execution order:', resolution.executionOrder);
|
|
47
|
+
* console.log('Ready tasks:', resolution.readyTasks);
|
|
48
|
+
* ```
|
|
49
|
+
*/ export class DependencyManager {
|
|
50
|
+
graph;
|
|
51
|
+
sorter;
|
|
52
|
+
config;
|
|
53
|
+
completedTasks;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new dependency manager.
|
|
56
|
+
*
|
|
57
|
+
* @param config - Manager configuration
|
|
58
|
+
*/ constructor(config){
|
|
59
|
+
this.config = {
|
|
60
|
+
maxGraphSize: config?.maxGraphSize ?? 10000,
|
|
61
|
+
autoValidate: config?.autoValidate ?? true,
|
|
62
|
+
trackPerformance: config?.trackPerformance ?? false
|
|
63
|
+
};
|
|
64
|
+
this.graph = new DependencyGraph({
|
|
65
|
+
maxSize: this.config.maxGraphSize,
|
|
66
|
+
autoValidate: this.config.autoValidate
|
|
67
|
+
});
|
|
68
|
+
this.sorter = new TopologicalSort(this.graph);
|
|
69
|
+
this.completedTasks = new Set();
|
|
70
|
+
}
|
|
71
|
+
// ============================================
|
|
72
|
+
// Task Registration
|
|
73
|
+
// ============================================
|
|
74
|
+
/**
|
|
75
|
+
* Registers a new task with its dependencies.
|
|
76
|
+
*
|
|
77
|
+
* @param config - Task configuration
|
|
78
|
+
* @throws {DependencyNodeValidationError} If task configuration is invalid
|
|
79
|
+
* @throws {DependencyGraphError} If adding task would create cycle
|
|
80
|
+
*/ registerTask(config) {
|
|
81
|
+
const startTime = this.config.trackPerformance ? performance.now() : 0;
|
|
82
|
+
// Create dependency node
|
|
83
|
+
const node = new DependencyNodeImpl({
|
|
84
|
+
id: config.id,
|
|
85
|
+
agentId: config.agentId,
|
|
86
|
+
taskId: config.taskId,
|
|
87
|
+
dependencies: config.dependencies || [],
|
|
88
|
+
priority: config.priority,
|
|
89
|
+
metadata: config.metadata
|
|
90
|
+
});
|
|
91
|
+
// Add to graph
|
|
92
|
+
this.graph.addNode(node);
|
|
93
|
+
// Add dependency edges
|
|
94
|
+
if (config.dependencies && config.dependencies.length > 0) {
|
|
95
|
+
for (const depId of config.dependencies){
|
|
96
|
+
this.graph.addDependency(config.id, depId);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (this.config.trackPerformance) {
|
|
100
|
+
const duration = performance.now() - startTime;
|
|
101
|
+
console.debug(`[DependencyManager] registerTask(${config.id}): ${duration.toFixed(2)}ms`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Unregisters a task from the dependency graph.
|
|
106
|
+
*
|
|
107
|
+
* @param taskId - Task ID to unregister
|
|
108
|
+
* @returns True if task was removed, false if not found
|
|
109
|
+
*/ unregisterTask(taskId) {
|
|
110
|
+
const removed = this.graph.removeNode(taskId);
|
|
111
|
+
if (removed) {
|
|
112
|
+
this.completedTasks.delete(taskId);
|
|
113
|
+
}
|
|
114
|
+
return removed;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Adds a dependency between two tasks.
|
|
118
|
+
*
|
|
119
|
+
* @param fromId - Task that depends on another
|
|
120
|
+
* @param toId - Task that is depended upon
|
|
121
|
+
* @throws {DependencyGraphError} If dependency would create cycle
|
|
122
|
+
*/ addDependency(fromId, toId) {
|
|
123
|
+
this.graph.addDependency(fromId, toId);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Removes a dependency between two tasks.
|
|
127
|
+
*
|
|
128
|
+
* @param fromId - Dependent task ID
|
|
129
|
+
* @param toId - Dependency task ID
|
|
130
|
+
* @returns True if dependency was removed
|
|
131
|
+
*/ removeDependency(fromId, toId) {
|
|
132
|
+
return this.graph.removeDependency(fromId, toId);
|
|
133
|
+
}
|
|
134
|
+
// ============================================
|
|
135
|
+
// Dependency Resolution
|
|
136
|
+
// ============================================
|
|
137
|
+
/**
|
|
138
|
+
* Resolves dependencies for a task and returns execution plan.
|
|
139
|
+
*
|
|
140
|
+
* Uses topological sorting to compute valid execution order.
|
|
141
|
+
* Returns ready tasks for immediate execution and execution levels
|
|
142
|
+
* for parallel processing.
|
|
143
|
+
*
|
|
144
|
+
* @param request - Resolution request
|
|
145
|
+
* @returns Resolution response with execution plan
|
|
146
|
+
*/ resolveDependencies(request) {
|
|
147
|
+
const startTime = this.config.trackPerformance ? performance.now() : 0;
|
|
148
|
+
// Perform topological sort
|
|
149
|
+
const sortResult = this.sorter.sort();
|
|
150
|
+
if (!sortResult.success) {
|
|
151
|
+
// Cycle detected - cannot resolve
|
|
152
|
+
return {
|
|
153
|
+
success: false,
|
|
154
|
+
executionOrder: [],
|
|
155
|
+
readyTasks: [],
|
|
156
|
+
blockedTasks: [],
|
|
157
|
+
error: sortResult.error,
|
|
158
|
+
cycles: sortResult.cycles
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// Get ready tasks (all dependencies satisfied)
|
|
162
|
+
const readyTasks = this.graph.getReadyTasks();
|
|
163
|
+
// Get blocked tasks (waiting on dependencies)
|
|
164
|
+
const blockedTasks = this.graph.getBlockedTasks();
|
|
165
|
+
// Compute execution levels (for parallel execution)
|
|
166
|
+
const levels = this.sorter.computeLevels();
|
|
167
|
+
// Apply concurrency limit if specified
|
|
168
|
+
let readyForExecution = readyTasks;
|
|
169
|
+
if (request.maxConcurrency && request.maxConcurrency > 0) {
|
|
170
|
+
readyForExecution = readyTasks.slice(0, request.maxConcurrency);
|
|
171
|
+
}
|
|
172
|
+
if (this.config.trackPerformance) {
|
|
173
|
+
const duration = performance.now() - startTime;
|
|
174
|
+
console.debug(`[DependencyManager] resolveDependencies(): ${duration.toFixed(2)}ms`);
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
success: true,
|
|
178
|
+
executionOrder: sortResult.order,
|
|
179
|
+
readyTasks: readyForExecution,
|
|
180
|
+
blockedTasks,
|
|
181
|
+
levels
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Gets the next batch of ready tasks for execution.
|
|
186
|
+
*
|
|
187
|
+
* This is useful for incremental execution without re-sorting entire graph.
|
|
188
|
+
*
|
|
189
|
+
* @param maxConcurrency - Maximum tasks to return
|
|
190
|
+
* @returns Array of ready tasks
|
|
191
|
+
*/ getNextBatch(maxConcurrency = 1) {
|
|
192
|
+
const ready = this.sorter.getReadyNodes(this.completedTasks);
|
|
193
|
+
// Get node objects and apply concurrency limit
|
|
194
|
+
const readyNodes = ready.slice(0, maxConcurrency).map((id)=>this.graph.getNode(id)).filter((node)=>node !== undefined);
|
|
195
|
+
return readyNodes;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Resolves dependencies for a specific agent's tasks only.
|
|
199
|
+
*
|
|
200
|
+
* @param agentId - Agent ID to resolve for
|
|
201
|
+
* @returns Execution order for agent's tasks
|
|
202
|
+
*/ resolveForAgent(agentId) {
|
|
203
|
+
// Get all tasks for this agent
|
|
204
|
+
const agentTasks = this.graph.getAllNodes().filter((node)=>node.agentId === agentId).map((node)=>node.id);
|
|
205
|
+
// Compute subset topological order
|
|
206
|
+
const order = this.sorter.sortSubset(new Set(agentTasks));
|
|
207
|
+
return order ?? [];
|
|
208
|
+
}
|
|
209
|
+
// ============================================
|
|
210
|
+
// Status Management
|
|
211
|
+
// ============================================
|
|
212
|
+
/**
|
|
213
|
+
* Updates the status of a task.
|
|
214
|
+
*
|
|
215
|
+
* @param update - Status update
|
|
216
|
+
*/ updateTaskStatus(update) {
|
|
217
|
+
this.graph.updateStatus(update.taskId, update.status);
|
|
218
|
+
// Track completed tasks
|
|
219
|
+
if (update.status === DependencyNodeStatus.COMPLETED) {
|
|
220
|
+
this.completedTasks.add(update.taskId);
|
|
221
|
+
} else {
|
|
222
|
+
this.completedTasks.delete(update.taskId);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Marks a task as completed.
|
|
227
|
+
*
|
|
228
|
+
* @param taskId - Task ID to complete
|
|
229
|
+
*/ completeTask(taskId) {
|
|
230
|
+
this.updateTaskStatus({
|
|
231
|
+
taskId,
|
|
232
|
+
status: DependencyNodeStatus.COMPLETED,
|
|
233
|
+
timestamp: Date.now()
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Marks a task as failed.
|
|
238
|
+
*
|
|
239
|
+
* @param taskId - Task ID to mark as failed
|
|
240
|
+
*/ failTask(taskId) {
|
|
241
|
+
this.updateTaskStatus({
|
|
242
|
+
taskId,
|
|
243
|
+
status: DependencyNodeStatus.FAILED,
|
|
244
|
+
timestamp: Date.now()
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Gets all tasks that are blocked due to failed dependencies.
|
|
249
|
+
*
|
|
250
|
+
* @returns Array of task IDs that cannot proceed
|
|
251
|
+
*/ getUnresolvableTasks() {
|
|
252
|
+
const failedNodes = new Set(this.graph.getAllNodes().filter((node)=>node.status === DependencyNodeStatus.FAILED).map((node)=>node.id));
|
|
253
|
+
const unresolvable = [];
|
|
254
|
+
for (const node of this.graph.getAllNodes()){
|
|
255
|
+
if (failedNodes.has(node.id)) continue;
|
|
256
|
+
const chain = this.graph.getDependencyChain(node.id);
|
|
257
|
+
for (const depId of chain){
|
|
258
|
+
if (failedNodes.has(depId)) {
|
|
259
|
+
unresolvable.push(node.id);
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return unresolvable;
|
|
265
|
+
}
|
|
266
|
+
// ============================================
|
|
267
|
+
// Graph Queries
|
|
268
|
+
// ============================================
|
|
269
|
+
/**
|
|
270
|
+
* Checks if graph contains cycles.
|
|
271
|
+
*
|
|
272
|
+
* @returns True if cycles exist
|
|
273
|
+
*/ hasCycles() {
|
|
274
|
+
return !this.sorter.isDAG();
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Gets detailed cycle information.
|
|
278
|
+
*
|
|
279
|
+
* @returns Cycle detection result
|
|
280
|
+
*/ getCycles() {
|
|
281
|
+
return this.graph.detectCycles().cycles;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Gets execution levels (nodes at same depth can run in parallel).
|
|
285
|
+
*
|
|
286
|
+
* @returns Array of execution levels
|
|
287
|
+
*/ getExecutionLevels() {
|
|
288
|
+
return this.sorter.computeLevels();
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Gets maximum parallelization factor (max concurrent tasks).
|
|
292
|
+
*
|
|
293
|
+
* @returns Maximum number of tasks that can run concurrently
|
|
294
|
+
*/ getMaxParallelism() {
|
|
295
|
+
const levels = this.sorter.computeLevels();
|
|
296
|
+
return Math.max(...levels.map((level)=>level.length), 0);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Gets graph statistics.
|
|
300
|
+
*
|
|
301
|
+
* @returns Graph metrics
|
|
302
|
+
*/ getStatistics() {
|
|
303
|
+
const stats = this.graph.getStatistics();
|
|
304
|
+
return {
|
|
305
|
+
totalTasks: stats.nodeCount,
|
|
306
|
+
completedTasks: stats.completedNodeCount,
|
|
307
|
+
readyTasks: stats.readyNodeCount,
|
|
308
|
+
blockedTasks: stats.blockedNodeCount,
|
|
309
|
+
failedTasks: this.graph.getAllNodes().filter((n)=>n.status === DependencyNodeStatus.FAILED).length,
|
|
310
|
+
maxParallelism: this.getMaxParallelism(),
|
|
311
|
+
hasCycles: this.hasCycles()
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Gets a specific task node.
|
|
316
|
+
*
|
|
317
|
+
* @param taskId - Task ID
|
|
318
|
+
* @returns Task node or undefined
|
|
319
|
+
*/ getTask(taskId) {
|
|
320
|
+
return this.graph.getNode(taskId);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Gets all tasks.
|
|
324
|
+
*
|
|
325
|
+
* @returns Array of all task nodes
|
|
326
|
+
*/ getAllTasks() {
|
|
327
|
+
return this.graph.getAllNodes();
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Gets dependencies for a task.
|
|
331
|
+
*
|
|
332
|
+
* @param taskId - Task ID
|
|
333
|
+
* @returns Set of dependency task IDs
|
|
334
|
+
*/ getDependencies(taskId) {
|
|
335
|
+
return this.graph.getDependencies(taskId);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Gets dependents for a task (tasks that depend on it).
|
|
339
|
+
*
|
|
340
|
+
* @param taskId - Task ID
|
|
341
|
+
* @returns Set of dependent task IDs
|
|
342
|
+
*/ getDependents(taskId) {
|
|
343
|
+
return this.graph.getDependents(taskId);
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Gets the full dependency chain for a task (transitive dependencies).
|
|
347
|
+
*
|
|
348
|
+
* @param taskId - Task ID
|
|
349
|
+
* @returns Array of task IDs in dependency order
|
|
350
|
+
*/ getDependencyChain(taskId) {
|
|
351
|
+
return this.graph.getDependencyChain(taskId);
|
|
352
|
+
}
|
|
353
|
+
// ============================================
|
|
354
|
+
// Validation
|
|
355
|
+
// ============================================
|
|
356
|
+
/**
|
|
357
|
+
* Validates graph integrity.
|
|
358
|
+
*
|
|
359
|
+
* @returns Array of validation errors (empty if valid)
|
|
360
|
+
*/ validate() {
|
|
361
|
+
const errors = this.graph.validate();
|
|
362
|
+
// Additional manager-level validations
|
|
363
|
+
if (this.hasCycles()) {
|
|
364
|
+
const cycles = this.getCycles();
|
|
365
|
+
errors.push(`Graph contains ${cycles.length} cycle(s): ${JSON.stringify(cycles)}`);
|
|
366
|
+
}
|
|
367
|
+
return errors;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Checks if graph is in valid state for execution.
|
|
371
|
+
*
|
|
372
|
+
* @returns True if graph can be executed
|
|
373
|
+
*/ canExecute() {
|
|
374
|
+
const errors = this.validate();
|
|
375
|
+
return errors.length === 0;
|
|
376
|
+
}
|
|
377
|
+
// ============================================
|
|
378
|
+
// Utility Methods
|
|
379
|
+
// ============================================
|
|
380
|
+
/**
|
|
381
|
+
* Clears all tasks from the manager.
|
|
382
|
+
*/ clear() {
|
|
383
|
+
this.graph.clear();
|
|
384
|
+
this.completedTasks.clear();
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Gets the number of tasks in the graph.
|
|
388
|
+
*
|
|
389
|
+
* @returns Task count
|
|
390
|
+
*/ size() {
|
|
391
|
+
return this.graph.size();
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Exports graph to DOT format for visualization.
|
|
395
|
+
*
|
|
396
|
+
* @returns DOT format string
|
|
397
|
+
*/ toDOT() {
|
|
398
|
+
let dot = 'digraph DependencyGraph {\n';
|
|
399
|
+
dot += ' rankdir=LR;\n';
|
|
400
|
+
dot += ' node [shape=box];\n\n';
|
|
401
|
+
// Add nodes with status colors
|
|
402
|
+
for (const node of this.graph.getAllNodes()){
|
|
403
|
+
const color = this.getNodeColor(node.status);
|
|
404
|
+
dot += ` "${node.id}" [label="${node.taskId}\\n(${node.agentId})" style=filled fillcolor="${color}"];\n`;
|
|
405
|
+
}
|
|
406
|
+
dot += '\n';
|
|
407
|
+
// Add edges
|
|
408
|
+
for (const node of this.graph.getAllNodes()){
|
|
409
|
+
const deps = this.graph.getDependencies(node.id);
|
|
410
|
+
for (const depId of deps){
|
|
411
|
+
dot += ` "${depId}" -> "${node.id}";\n`;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
dot += '}\n';
|
|
415
|
+
return dot;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Gets color for node based on status.
|
|
419
|
+
*
|
|
420
|
+
* @param status - Node status
|
|
421
|
+
* @returns Color code
|
|
422
|
+
*/ getNodeColor(status) {
|
|
423
|
+
switch(status){
|
|
424
|
+
case DependencyNodeStatus.COMPLETED:
|
|
425
|
+
return 'lightgreen';
|
|
426
|
+
case DependencyNodeStatus.EXECUTING:
|
|
427
|
+
return 'lightblue';
|
|
428
|
+
case DependencyNodeStatus.READY:
|
|
429
|
+
return 'lightyellow';
|
|
430
|
+
case DependencyNodeStatus.FAILED:
|
|
431
|
+
return 'lightcoral';
|
|
432
|
+
case DependencyNodeStatus.PENDING:
|
|
433
|
+
default:
|
|
434
|
+
return 'lightgray';
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
//# sourceMappingURL=dependency-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/coordination/v2/dependency/dependency-manager.ts"],"names":["DependencyGraph","DependencyNodeStatus","DependencyNodeImpl","TopologicalSort","DependencyManager","graph","sorter","config","completedTasks","maxGraphSize","autoValidate","trackPerformance","maxSize","Set","registerTask","startTime","performance","now","node","id","agentId","taskId","dependencies","priority","metadata","addNode","length","depId","addDependency","duration","console","debug","toFixed","unregisterTask","removed","removeNode","delete","fromId","toId","removeDependency","resolveDependencies","request","sortResult","sort","success","executionOrder","readyTasks","blockedTasks","error","cycles","getReadyTasks","getBlockedTasks","levels","computeLevels","readyForExecution","maxConcurrency","slice","order","getNextBatch","ready","getReadyNodes","readyNodes","map","getNode","filter","undefined","resolveForAgent","agentTasks","getAllNodes","sortSubset","updateTaskStatus","update","updateStatus","status","COMPLETED","add","completeTask","timestamp","Date","failTask","FAILED","getUnresolvableTasks","failedNodes","unresolvable","has","chain","getDependencyChain","push","hasCycles","isDAG","getCycles","detectCycles","getExecutionLevels","getMaxParallelism","Math","max","level","getStatistics","stats","totalTasks","nodeCount","completedNodeCount","readyNodeCount","blockedNodeCount","failedTasks","n","maxParallelism","getTask","getAllTasks","getDependencies","getDependents","validate","errors","JSON","stringify","canExecute","clear","size","toDOT","dot","color","getNodeColor","deps","EXECUTING","READY","PENDING"],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Coordination V2 - Dependency Request Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe structures for dependency requests and resolutions.
|
|
5
|
+
* Enables agents to declare dependencies and track resolution state.
|
|
6
|
+
*
|
|
7
|
+
* @module coordination/v2/dependency/dependency-request
|
|
8
|
+
*/ /**
|
|
9
|
+
* Dependency request priority levels
|
|
10
|
+
*/ export var DependencyPriority = /*#__PURE__*/ function(DependencyPriority) {
|
|
11
|
+
/** Low priority - can be deferred */ DependencyPriority[DependencyPriority["LOW"] = 1] = "LOW";
|
|
12
|
+
/** Normal priority - standard processing */ DependencyPriority[DependencyPriority["NORMAL"] = 5] = "NORMAL";
|
|
13
|
+
/** High priority - expedite processing */ DependencyPriority[DependencyPriority["HIGH"] = 8] = "HIGH";
|
|
14
|
+
/** Critical priority - blocking agent progress */ DependencyPriority[DependencyPriority["CRITICAL"] = 10] = "CRITICAL";
|
|
15
|
+
return DependencyPriority;
|
|
16
|
+
}({});
|
|
17
|
+
/**
|
|
18
|
+
* Dependency request status
|
|
19
|
+
*/ export var DependencyStatus = /*#__PURE__*/ function(DependencyStatus) {
|
|
20
|
+
/** Request created, awaiting processing */ DependencyStatus["PENDING"] = "pending";
|
|
21
|
+
/** Dependency being resolved */ DependencyStatus["RESOLVING"] = "resolving";
|
|
22
|
+
/** Dependency successfully resolved */ DependencyStatus["RESOLVED"] = "resolved";
|
|
23
|
+
/** Dependency resolution failed */ DependencyStatus["FAILED"] = "failed";
|
|
24
|
+
/** Request cancelled by requestor */ DependencyStatus["CANCELLED"] = "cancelled";
|
|
25
|
+
return DependencyStatus;
|
|
26
|
+
}({});
|
|
27
|
+
/**
|
|
28
|
+
* Type guard to check if request is pending
|
|
29
|
+
*/ export function isPendingRequest(request) {
|
|
30
|
+
return request.status === "pending";
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Type guard to check if request is resolved
|
|
34
|
+
*/ export function isResolvedRequest(request) {
|
|
35
|
+
return request.status === "resolved" && request.resolution !== undefined;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Type guard to check if request is failed
|
|
39
|
+
*/ export function isFailedRequest(request) {
|
|
40
|
+
return request.status === "failed";
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Type guard to check if request is active (pending or resolving)
|
|
44
|
+
*/ export function isActiveRequest(request) {
|
|
45
|
+
return request.status === "pending" || request.status === "resolving";
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a new dependency request
|
|
49
|
+
*/ export function createDependencyRequest(requestorId, sessionId, dependencyType, metadata, options) {
|
|
50
|
+
return {
|
|
51
|
+
requestId: `dep_${Date.now()}_${Math.random().toString(36).substring(7)}`,
|
|
52
|
+
requestorId,
|
|
53
|
+
sessionId,
|
|
54
|
+
targetAgentId: options?.targetAgentId,
|
|
55
|
+
dependencyType,
|
|
56
|
+
priority: options?.priority ?? 5,
|
|
57
|
+
status: "pending",
|
|
58
|
+
metadata,
|
|
59
|
+
createdAt: new Date()
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create a dependency resolution
|
|
64
|
+
*/ export function createDependencyResolution(resolverId, data, latencyMs) {
|
|
65
|
+
return {
|
|
66
|
+
resolutionId: `res_${Date.now()}_${Math.random().toString(36).substring(7)}`,
|
|
67
|
+
resolverId,
|
|
68
|
+
resolvedAt: new Date(),
|
|
69
|
+
data,
|
|
70
|
+
latencyMs
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Update request status
|
|
75
|
+
*/ export function updateRequestStatus(request, status, resolution, error) {
|
|
76
|
+
const updated = {
|
|
77
|
+
...request,
|
|
78
|
+
status
|
|
79
|
+
};
|
|
80
|
+
if (resolution) {
|
|
81
|
+
updated.resolution = resolution;
|
|
82
|
+
}
|
|
83
|
+
if (error) {
|
|
84
|
+
updated.error = {
|
|
85
|
+
...error,
|
|
86
|
+
timestamp: new Date()
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return updated;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=dependency-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/coordination/v2/dependency/dependency-request.ts"],"names":["DependencyPriority","DependencyStatus","isPendingRequest","request","status","isResolvedRequest","resolution","undefined","isFailedRequest","isActiveRequest","createDependencyRequest","requestorId","sessionId","dependencyType","metadata","options","requestId","Date","now","Math","random","toString","substring","targetAgentId","priority","createdAt","createDependencyResolution","resolverId","data","latencyMs","resolutionId","resolvedAt","updateRequestStatus","error","updated","timestamp"],"mappings":"AAAA;;;;;;;CAOC,GAID;;CAEC,GACD,OAAO,IAAA,AAAKA,4CAAAA;IACV,mCAAmC;IAGnC,0CAA0C;IAG1C,wCAAwC;IAGxC,gDAAgD;WAVtCA;MAYX;AAED;;CAEC,GACD,OAAO,IAAA,AAAKC,0CAAAA;IACV,yCAAyC;IAGzC,8BAA8B;IAG9B,qCAAqC;IAGrC,iCAAiC;IAGjC,mCAAmC;WAbzBA;MAeX;AAuFD;;CAEC,GACD,OAAO,SAASC,iBAAiBC,OAA0B;IACzD,OAAOA,QAAQC,MAAM;AACvB;AAEA;;CAEC,GACD,OAAO,SAASC,kBAAkBF,OAA0B;IAC1D,OAAOA,QAAQC,MAAM,mBAAkCD,QAAQG,UAAU,KAAKC;AAChF;AAEA;;CAEC,GACD,OAAO,SAASC,gBAAgBL,OAA0B;IACxD,OAAOA,QAAQC,MAAM;AACvB;AAEA;;CAEC,GACD,OAAO,SAASK,gBAAgBN,OAA0B;IACxD,OAAOA,QAAQC,MAAM,kBAAiCD,QAAQC,MAAM;AACtE;AAEA;;CAEC,GACD,OAAO,SAASM,wBACdC,WAAmB,EACnBC,SAAiB,EACjBC,cAAsB,EACtBC,QAA4B,EAC5BC,OAGC;IAED,OAAO;QACLC,WAAW,CAAC,IAAI,EAAEC,KAAKC,GAAG,GAAG,CAAC,EAAEC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC,IAAI;QACzEX;QACAC;QACAW,eAAeR,SAASQ;QACxBV;QACAW,UAAUT,SAASS;QACnBpB,MAAM;QACNU;QACAW,WAAW,IAAIR;IACjB;AACF;AAEA;;CAEC,GACD,OAAO,SAASS,2BACdC,UAAkB,EAClBC,IAAyB,EACzBC,SAAiB;IAEjB,OAAO;QACLC,cAAc,CAAC,IAAI,EAAEb,KAAKC,GAAG,GAAG,CAAC,EAAEC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,SAAS,CAAC,IAAI;QAC5EK;QACAI,YAAY,IAAId;QAChBW;QACAC;IACF;AACF;AAEA;;CAEC,GACD,OAAO,SAASG,oBACd7B,OAA0B,EAC1BC,MAAwB,EACxBE,UAAiC,EACjC2B,KAAyC;IAEzC,MAAMC,UAAU;QAAE,GAAG/B,OAAO;QAAEC;IAAO;IAErC,IAAIE,YAAY;QACd4B,QAAQ5B,UAAU,GAAGA;IACvB;IAEA,IAAI2B,OAAO;QACTC,QAAQD,KAAK,GAAG;YACd,GAAGA,KAAK;YACRE,WAAW,IAAIlB;QACjB;IACF;IAEA,OAAOiB;AACT"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Coordination V2 - Dependency Module Exports
|
|
3
|
+
*
|
|
4
|
+
* Unified exports for dependency management system.
|
|
5
|
+
* Provides DAG data structures, cycle detection, and request/resolution types.
|
|
6
|
+
*
|
|
7
|
+
* @module coordination/v2/dependency
|
|
8
|
+
*/ // Dependency request types
|
|
9
|
+
export { DependencyPriority, DependencyStatus, isPendingRequest, isResolvedRequest, isFailedRequest, isActiveRequest, createDependencyRequest, createDependencyResolution, updateRequestStatus } from './dependency-request.js';
|
|
10
|
+
// Dependency graph (DAG)
|
|
11
|
+
export { DependencyGraph } from './dependency-graph.js';
|
|
12
|
+
// Cycle detection
|
|
13
|
+
export { CycleDetector, detectCycle, wouldCreateCycle } from './cycle-detector.js';
|
|
14
|
+
// Artifact storage backend
|
|
15
|
+
export { DependencyArtifactStorage } from './artifact-storage.js';
|
|
16
|
+
// Topological sort (Kahn's algorithm)
|
|
17
|
+
export { TopologicalSort } from './topological-sort.js';
|
|
18
|
+
// Dependency manager (coordination)
|
|
19
|
+
export { DependencyManager } from './dependency-manager.js';
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/coordination/v2/dependency/index.ts"],"names":["DependencyPriority","DependencyStatus","isPendingRequest","isResolvedRequest","isFailedRequest","isActiveRequest","createDependencyRequest","createDependencyResolution","updateRequestStatus","DependencyGraph","CycleDetector","detectCycle","wouldCreateCycle","DependencyArtifactStorage","TopologicalSort","DependencyManager"],"mappings":"AAAA;;;;;;;CAOC,GAED,2BAA2B;AAC3B,SACEA,kBAAkB,EAClBC,gBAAgB,EAIhBC,gBAAgB,EAChBC,iBAAiB,EACjBC,eAAe,EACfC,eAAe,EACfC,uBAAuB,EACvBC,0BAA0B,EAC1BC,mBAAmB,QACd,0BAA0B;AAEjC,yBAAyB;AACzB,SAKEC,eAAe,QACV,wBAAwB;AAE/B,kBAAkB;AAClB,SAGEC,aAAa,EACbC,WAAW,EACXC,gBAAgB,QACX,sBAAsB;AAE7B,2BAA2B;AAC3B,SACEC,yBAAyB,QACpB,wBAAwB;AAE/B,sCAAsC;AACtC,SACEC,eAAe,QAEV,wBAAwB;AAE/B,oCAAoC;AACpC,SACEC,iBAAiB,QAKZ,0BAA0B"}
|