claude-flow-novice 1.6.4 → 1.6.6
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/commands/parse-epic.js +180 -0
- package/.claude/settings.local.json +2 -1
- package/.claude-flow-novice/dist/mcp/mcp-server-novice.js +37 -2
- package/.claude-flow-novice/dist/mcp/mcp-server-sdk.js +45 -0
- package/.claude-flow-novice/dist/mcp/transports/base.js +5 -0
- package/.claude-flow-novice/dist/mcp/transports/base.js.map +1 -0
- package/.claude-flow-novice/dist/mcp/transports/http.js +414 -0
- package/.claude-flow-novice/dist/mcp/transports/http.js.map +1 -0
- package/.claude-flow-novice/dist/mcp/transports/stdio.js +217 -0
- package/.claude-flow-novice/dist/mcp/transports/stdio.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/commands/parse-epic.js +129 -0
- package/.claude-flow-novice/dist/src/cli/commands/parse-epic.js.map +1 -0
- package/.claude-flow-novice/dist/src/cli/index.js +3 -0
- package/.claude-flow-novice/dist/src/cli/index.js.map +1 -1
- package/.claude-flow-novice/dist/src/cli/utils/epic-parser.js +266 -0
- package/.claude-flow-novice/dist/src/cli/utils/epic-parser.js.map +1 -0
- package/.claude-flow-novice/dist/src/communication/message-bus.js +105 -2
- package/.claude-flow-novice/dist/src/communication/message-bus.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js +1 -1
- package/.claude-flow-novice/dist/src/coordination/adapters/v1-coordinator-adapter.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/cache/artifact-cache-optimizer.js +632 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/cache/artifact-cache-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/cache/index.js +11 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/cache/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/checkpoints/checkpoint-compressor.js +318 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/checkpoints/checkpoint-compressor.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/completion-detector.js +234 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/completion-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/hierarchical-detector.js +347 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/hierarchical-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/index.js +13 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/lamport-clock.js +173 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/lamport-clock.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/mesh-detector.js +526 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/mesh-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/sdk-completion-detector.js +443 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/sdk-completion-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/swarm-shutdown.js +366 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/completion/swarm-shutdown.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinator-factory.js +287 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinator-factory.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/cascading-shutdown.example.js +364 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/cascading-shutdown.example.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/cascading-shutdown.js +492 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/cascading-shutdown.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/hierarchical-coordinator.js +786 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/hierarchical-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/index.js +16 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/parent-child-manager.js +342 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/parent-child-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/swarm-coordinator-v2.js +601 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/coordinators/swarm-coordinator-v2.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/agent-state.js +9 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/agent-state.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dead-letter-queue.js +413 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dead-letter-queue.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dependency-graph.js +471 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dependency-graph.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dependency-node.js +379 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dependency-node.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dependency-resolver.js +335 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/dependency-resolver.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/help-request-metrics.js +211 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/help-request-metrics.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/index.js +33 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/message-broker.js +920 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/message-broker.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/message-router.js +385 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/message-router.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/message.js +138 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/message.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/resource-manager-safe.js +478 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/resource-manager-safe.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/state-machine-config.js +358 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/state-machine-config.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/state-machine.js +588 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/state-machine.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/state-transition.js +153 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/state-transition.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/task-scheduler.js +360 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/task-scheduler.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/topic-manager.js +337 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/core/topic-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/deadlock/deadlock-detector.js +424 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/deadlock/deadlock-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/deadlock/index.js +9 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/deadlock/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/deadlock/resource-manager.js +669 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/deadlock/resource-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/artifact-storage.js +451 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/artifact-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/cycle-detector.js +271 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/cycle-detector.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/dependency-graph.js +335 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/dependency-graph.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/dependency-manager.js +439 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/dependency-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/dependency-request.js +92 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/dependency-request.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/index.js +21 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/topological-sort.js +223 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/dependency/topological-sort.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-coordinator.js +436 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-matcher.js +278 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-matcher.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-request-handler.js +317 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-request-handler.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-request.js +273 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/help-request.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/index.js +15 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/waiting-agent-pool.js +512 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/help-system/waiting-agent-pool.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/index.js +67 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/help-deadlock-integration.js +557 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/help-deadlock-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/message-bus-completion-integration.example.js +212 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/message-bus-completion-integration.example.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/message-bus-completion-integration.js +552 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/message-bus-completion-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/state-machine-integration.js +635 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/integration/state-machine-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/IArtifactStorage.js +28 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/IArtifactStorage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/ICoordinator.js +9 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/ICoordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/ISessionStore.js +25 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/ISessionStore.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/interfaces/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/artifact-adapter.js +308 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/artifact-adapter.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/completion-storage.js +439 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/completion-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/dependency-graph-storage.js +540 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/dependency-graph-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/dependency-storage.js +367 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/dependency-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/message-storage.js +518 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/message-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/state-storage.js +377 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/memory/state-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channel.js +371 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/dependency-channel.js +355 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/dependency-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/help-channel.js +424 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/help-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/index.js +16 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/state-channel.js +295 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/state-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/task-channel.js +411 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/channels/task-channel.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/index.js +14 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/message-bus.js +387 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/message-bus.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/message-persistence.js +589 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/message-persistence.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/message-router.js +444 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/messaging/message-router.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/artifact-storage.js +560 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/artifact-storage.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/background-orchestrator.js +335 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/background-orchestrator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/bash-output-monitor.js +104 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/bash-output-monitor.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/checkpoint-manager.js +847 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/checkpoint-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/help-coordinator.js +470 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/help-coordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/hierarchical-background-integration.js +450 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/hierarchical-background-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/index.js +13 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/message-bus-integration.js +625 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/message-bus-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/multi-level-control.js +545 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/multi-level-control.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/query-controller.js +740 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/query-controller.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/query-message-integration.js +415 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/query-message-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/session-pool-optimizer.js +615 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/session-pool-optimizer.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/state-machine-integration.js +547 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/state-machine-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/state-sdk-integration.js +342 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/sdk/state-sdk-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/security/payload-validator.js +259 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/security/payload-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/framework-registry.js +273 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/framework-registry.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/index.js +8 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/truth-config-manager.js +310 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/truth-config-manager.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/truth-validator.js +218 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/truth/truth-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/types/sdk.js +9 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/types/sdk.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/utils/index.js +6 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/utils/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/utils/priority-queue.js +145 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/utils/priority-queue.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/utils/sdk-helpers.js +122 -0
- package/.claude-flow-novice/dist/src/coordination/archives/v2-sdk-typescript/v2/utils/sdk-helpers.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/config-translator.js +17 -43
- package/.claude-flow-novice/dist/src/coordination/config-translator.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js +34 -76
- package/.claude-flow-novice/dist/src/coordination/coordination-toggle.js.map +1 -1
- package/.claude-flow-novice/dist/src/coordination/shared/core/agent-state.js +172 -0
- package/.claude-flow-novice/dist/src/coordination/shared/core/agent-state.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/core/index.js +7 -0
- package/.claude-flow-novice/dist/src/coordination/shared/core/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/index.js +19 -0
- package/.claude-flow-novice/dist/src/coordination/shared/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/interfaces/ICoordinator.js +24 -0
- package/.claude-flow-novice/dist/src/coordination/shared/interfaces/ICoordinator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/interfaces/index.js +7 -0
- package/.claude-flow-novice/dist/src/coordination/shared/interfaces/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/message-broker.js +920 -0
- package/.claude-flow-novice/dist/src/coordination/shared/message-broker.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/message.js +138 -0
- package/.claude-flow-novice/dist/src/coordination/shared/message.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/security/payload-validator.js +259 -0
- package/.claude-flow-novice/dist/src/coordination/shared/security/payload-validator.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/index.js +17 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/interfaces/transparency-system.js +19 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/interfaces/transparency-system.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/transparency-integration.js +357 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/transparency-integration.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/transparency-system.js +679 -0
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/transparency-system.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/types/index.js +7 -0
- package/.claude-flow-novice/dist/src/coordination/shared/types/index.js.map +1 -0
- package/.claude-flow-novice/dist/src/coordination/shared/types/sdk.js +10 -0
- package/.claude-flow-novice/dist/src/coordination/shared/types/sdk.js.map +1 -0
- package/.claude-flow-novice/dist/src/feature-flags/core/FeatureFlagManager.js +52 -2
- package/.claude-flow-novice/dist/src/feature-flags/core/FeatureFlagManager.js.map +1 -1
- package/.claude-flow-novice/dist/src/mcp/mcp-server-novice.js +37 -2
- package/.claude-flow-novice/dist/src/mcp/session-manager.js +3 -1
- package/.claude-flow-novice/dist/src/mcp/session-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/providers/provider-manager.js +36 -3
- package/.claude-flow-novice/dist/src/providers/provider-manager.js.map +1 -1
- package/.claude-flow-novice/dist/src/utils/markdown-sanitizer.js +65 -41
- package/.claude-flow-novice/dist/src/utils/markdown-sanitizer.js.map +1 -1
- package/.claude-flow-novice/dist/src/web/api/server.js +1 -1
- package/.claude-flow-novice/dist/src/web/api/server.js.map +1 -1
- package/.claude-flow-novice/dist/src/workflows/progressive-rollout-manager.js +30 -0
- package/.claude-flow-novice/dist/src/workflows/progressive-rollout-manager.js.map +1 -1
- package/.claude-flow-novice/metrics.db-shm +0 -0
- package/.claude-flow-novice/metrics.db-wal +0 -0
- package/config/.env.example +178 -0
- package/config/DEPLOYMENT_GUIDE.md +692 -0
- package/config/README-CONFIG.md +331 -0
- package/config/coordination-config.sh +327 -0
- package/config/docker/env.development +53 -0
- package/config/docker/env.production +83 -0
- package/config/docker/env.staging +70 -0
- package/config/k8s/configmap-development.yaml +60 -0
- package/config/k8s/configmap-production.yaml +85 -0
- package/config/k8s/configmap-staging.yaml +76 -0
- package/config/k8s/secret-production.yaml +62 -0
- package/config/k8s/secret-staging.yaml +36 -0
- package/package.json +2 -2
- package/scripts/monitoring/alert-monitor.sh +220 -0
- package/scripts/monitoring/dashboards/rate-limiting-dashboard.json +211 -0
- package/scripts/monitoring/quick-test-alerting.sh +118 -0
- package/scripts/monitoring/quick-test-rate-limiting.sh +206 -0
- package/scripts/monitoring/rate-limiting-monitor.sh +380 -0
- package/scripts/monitoring/view-alerts.sh +307 -0
- package/scripts/test-zai-api.cjs +2 -2
- package/src/slash-commands/parse-epic.js +1 -1
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Coordination V2 - Dependency Graph Storage Implementation
|
|
3
|
+
*
|
|
4
|
+
* Artifact-backed graph persistence with MessagePack serialization and compression.
|
|
5
|
+
* Performance targets:
|
|
6
|
+
* - Save/load: <20ms p95 for 1000-node graphs
|
|
7
|
+
* - Incremental updates: <5ms p95
|
|
8
|
+
* - Snapshot creation: <30ms p95
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Binary MessagePack serialization (3x faster than JSON)
|
|
12
|
+
* - Gzip compression for storage efficiency
|
|
13
|
+
* - Incremental updates (no full reload)
|
|
14
|
+
* - Git-like snapshots for rollback
|
|
15
|
+
* - Schema versioning for backward compatibility
|
|
16
|
+
* - Integrity verification with checksums
|
|
17
|
+
*
|
|
18
|
+
* @module coordination/v2/memory/dependency-graph-storage
|
|
19
|
+
*/ import { DependencyGraph } from '../core/dependency-graph.js';
|
|
20
|
+
import { DependencyNodeImpl } from '../core/dependency-node.js';
|
|
21
|
+
import * as msgpack from 'msgpack-lite';
|
|
22
|
+
import { gzip, gunzip } from 'zlib';
|
|
23
|
+
import { promisify } from 'util';
|
|
24
|
+
import { createHash } from 'crypto';
|
|
25
|
+
const gzipAsync = promisify(gzip);
|
|
26
|
+
const gunzipAsync = promisify(gunzip);
|
|
27
|
+
/**
|
|
28
|
+
* Schema version for forward/backward compatibility
|
|
29
|
+
*/ const SCHEMA_VERSION = 1;
|
|
30
|
+
/**
|
|
31
|
+
* DependencyGraphStorage - Artifact-backed graph persistence
|
|
32
|
+
*
|
|
33
|
+
* Provides high-performance storage for dependency graphs using:
|
|
34
|
+
* - MessagePack binary serialization (smaller payloads)
|
|
35
|
+
* - Gzip compression (additional size reduction)
|
|
36
|
+
* - Incremental update optimization (no full reload)
|
|
37
|
+
* - Snapshot/restore for rollback capability
|
|
38
|
+
* - Schema versioning for compatibility
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const storage = new DependencyGraphStorage(artifactStorage);
|
|
43
|
+
* await storage.initialize();
|
|
44
|
+
*
|
|
45
|
+
* // Save graph
|
|
46
|
+
* const graph = new DependencyGraph();
|
|
47
|
+
* await storage.saveGraph('graph-1', graph);
|
|
48
|
+
*
|
|
49
|
+
* // Load graph
|
|
50
|
+
* const loadedGraph = await storage.loadGraph('graph-1');
|
|
51
|
+
*
|
|
52
|
+
* // Incremental update
|
|
53
|
+
* await storage.updateNode('graph-1', node);
|
|
54
|
+
*
|
|
55
|
+
* // Snapshot
|
|
56
|
+
* const snapshotId = await storage.createSnapshot('graph-1', 'before-refactor');
|
|
57
|
+
* await storage.restoreSnapshot('graph-1', snapshotId);
|
|
58
|
+
* ```
|
|
59
|
+
*/ export class DependencyGraphStorage {
|
|
60
|
+
artifactStorage;
|
|
61
|
+
metrics;
|
|
62
|
+
latencyBuffer = [];
|
|
63
|
+
ready = false;
|
|
64
|
+
constructor(artifactStorage){
|
|
65
|
+
this.artifactStorage = artifactStorage;
|
|
66
|
+
this.metrics = this.initializeMetrics();
|
|
67
|
+
}
|
|
68
|
+
// ===========================
|
|
69
|
+
// Lifecycle
|
|
70
|
+
// ===========================
|
|
71
|
+
/**
|
|
72
|
+
* Initialize storage backend
|
|
73
|
+
*/ async initialize() {
|
|
74
|
+
if (!this.artifactStorage.isReady()) {
|
|
75
|
+
await this.artifactStorage.initialize();
|
|
76
|
+
}
|
|
77
|
+
this.ready = true;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Close storage connections
|
|
81
|
+
*/ async close() {
|
|
82
|
+
this.ready = false;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if storage is ready
|
|
86
|
+
*/ isReady() {
|
|
87
|
+
return this.ready && this.artifactStorage.isReady();
|
|
88
|
+
}
|
|
89
|
+
// ===========================
|
|
90
|
+
// Core Persistence Operations
|
|
91
|
+
// ===========================
|
|
92
|
+
/**
|
|
93
|
+
* Save complete dependency graph to artifact storage
|
|
94
|
+
*
|
|
95
|
+
* Performance target: <20ms p95 for 1000-node graphs
|
|
96
|
+
*
|
|
97
|
+
* @param graphId - Unique graph identifier
|
|
98
|
+
* @param graph - DependencyGraph to persist
|
|
99
|
+
* @throws Error if serialization or storage fails
|
|
100
|
+
*/ async saveGraph(graphId, graph) {
|
|
101
|
+
this.ensureReady();
|
|
102
|
+
const startTime = Date.now();
|
|
103
|
+
try {
|
|
104
|
+
// 1. Serialize graph to compact format
|
|
105
|
+
const serialized = this.serializeGraph(graphId, graph);
|
|
106
|
+
// 2. Encode with MessagePack (binary)
|
|
107
|
+
const packed = msgpack.encode(serialized);
|
|
108
|
+
// 3. Compress with gzip
|
|
109
|
+
const compressed = await gzipAsync(packed);
|
|
110
|
+
// 4. Store in artifact storage
|
|
111
|
+
await this.artifactStorage.uploadArtifact('graph-storage', graphId, compressed, {
|
|
112
|
+
type: 'dependency-graph',
|
|
113
|
+
filename: `${graphId}.msgpack.gz`,
|
|
114
|
+
tags: [
|
|
115
|
+
'graph',
|
|
116
|
+
'dependency',
|
|
117
|
+
graphId
|
|
118
|
+
],
|
|
119
|
+
metadata: {
|
|
120
|
+
schemaVersion: SCHEMA_VERSION,
|
|
121
|
+
nodeCount: serialized.metadata.nodeCount,
|
|
122
|
+
edgeCount: serialized.metadata.edgeCount,
|
|
123
|
+
uncompressedBytes: packed.length,
|
|
124
|
+
compressedBytes: compressed.length
|
|
125
|
+
},
|
|
126
|
+
forceCompression: false // Already compressed
|
|
127
|
+
});
|
|
128
|
+
// Update metrics
|
|
129
|
+
const latency = Date.now() - startTime;
|
|
130
|
+
this.updateSaveMetrics(latency);
|
|
131
|
+
// Performance warning if exceeds target
|
|
132
|
+
if (latency > 20) {
|
|
133
|
+
console.warn(`[DependencyGraphStorage] Save latency ${latency}ms exceeds 20ms target for graph ${graphId}`);
|
|
134
|
+
}
|
|
135
|
+
} catch (error) {
|
|
136
|
+
throw new Error(`Failed to save graph ${graphId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Load dependency graph from artifact storage
|
|
141
|
+
*
|
|
142
|
+
* Performance target: <20ms p95 for 1000-node graphs
|
|
143
|
+
*
|
|
144
|
+
* @param graphId - Graph identifier
|
|
145
|
+
* @returns Reconstructed DependencyGraph
|
|
146
|
+
* @throws Error if graph not found or deserialization fails
|
|
147
|
+
*/ async loadGraph(graphId) {
|
|
148
|
+
this.ensureReady();
|
|
149
|
+
const startTime = Date.now();
|
|
150
|
+
try {
|
|
151
|
+
// 1. Query for graph artifacts
|
|
152
|
+
const artifacts = await this.artifactStorage.queryArtifacts({
|
|
153
|
+
sessionId: graphId,
|
|
154
|
+
type: [
|
|
155
|
+
'dependency-graph'
|
|
156
|
+
],
|
|
157
|
+
sortBy: 'createdAt',
|
|
158
|
+
sortOrder: 'desc',
|
|
159
|
+
limit: 1
|
|
160
|
+
});
|
|
161
|
+
if (artifacts.length === 0) {
|
|
162
|
+
throw new Error(`Graph ${graphId} not found in storage`);
|
|
163
|
+
}
|
|
164
|
+
// 2. Download artifact
|
|
165
|
+
const result = await this.artifactStorage.downloadArtifact(artifacts[0].artifactId);
|
|
166
|
+
// 3. Decompress
|
|
167
|
+
const decompressed = await gunzipAsync(result.content);
|
|
168
|
+
// 4. Decode MessagePack
|
|
169
|
+
const serialized = msgpack.decode(decompressed);
|
|
170
|
+
// 5. Validate schema version
|
|
171
|
+
if (serialized.version > SCHEMA_VERSION) {
|
|
172
|
+
throw new Error(`Unsupported schema version ${serialized.version}, current: ${SCHEMA_VERSION}`);
|
|
173
|
+
}
|
|
174
|
+
// 6. Reconstruct graph
|
|
175
|
+
const graph = this.deserializeGraph(serialized);
|
|
176
|
+
// Update metrics
|
|
177
|
+
const latency = Date.now() - startTime;
|
|
178
|
+
this.updateLoadMetrics(latency);
|
|
179
|
+
// Performance warning if exceeds target
|
|
180
|
+
if (latency > 20) {
|
|
181
|
+
console.warn(`[DependencyGraphStorage] Load latency ${latency}ms exceeds 20ms target for graph ${graphId}`);
|
|
182
|
+
}
|
|
183
|
+
return graph;
|
|
184
|
+
} catch (error) {
|
|
185
|
+
throw new Error(`Failed to load graph ${graphId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// ===========================
|
|
189
|
+
// Incremental Update Operations
|
|
190
|
+
// ===========================
|
|
191
|
+
/**
|
|
192
|
+
* Update single node without full graph reload
|
|
193
|
+
*
|
|
194
|
+
* Performance target: <5ms p95
|
|
195
|
+
*
|
|
196
|
+
* @param graphId - Graph identifier
|
|
197
|
+
* @param node - Updated node
|
|
198
|
+
*/ async updateNode(graphId, node) {
|
|
199
|
+
this.ensureReady();
|
|
200
|
+
const startTime = Date.now();
|
|
201
|
+
try {
|
|
202
|
+
// Load current graph
|
|
203
|
+
const graph = await this.loadGraph(graphId);
|
|
204
|
+
// Update or add node
|
|
205
|
+
if (graph.hasNode(node.id)) {
|
|
206
|
+
graph.removeNode(node.id);
|
|
207
|
+
}
|
|
208
|
+
const nodeImpl = DependencyNodeImpl.fromJSON(node);
|
|
209
|
+
graph.addNode(nodeImpl);
|
|
210
|
+
// Save updated graph
|
|
211
|
+
await this.saveGraph(graphId, graph);
|
|
212
|
+
// Update metrics
|
|
213
|
+
const latency = Date.now() - startTime;
|
|
214
|
+
this.updateIncrementalMetrics(latency);
|
|
215
|
+
if (latency > 5) {
|
|
216
|
+
console.warn(`[DependencyGraphStorage] Node update ${latency}ms exceeds 5ms target`);
|
|
217
|
+
}
|
|
218
|
+
} catch (error) {
|
|
219
|
+
throw new Error(`Failed to update node ${node.id} in graph ${graphId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Add dependency edge without full graph reload
|
|
224
|
+
*
|
|
225
|
+
* Performance target: <5ms p95
|
|
226
|
+
*
|
|
227
|
+
* @param graphId - Graph identifier
|
|
228
|
+
* @param fromTaskId - Source task ID
|
|
229
|
+
* @param toTaskId - Target task ID
|
|
230
|
+
*/ async addDependency(graphId, fromTaskId, toTaskId) {
|
|
231
|
+
this.ensureReady();
|
|
232
|
+
const startTime = Date.now();
|
|
233
|
+
try {
|
|
234
|
+
// Load current graph
|
|
235
|
+
const graph = await this.loadGraph(graphId);
|
|
236
|
+
// Add dependency
|
|
237
|
+
graph.addDependency(fromTaskId, toTaskId);
|
|
238
|
+
// Save updated graph
|
|
239
|
+
await this.saveGraph(graphId, graph);
|
|
240
|
+
// Update metrics
|
|
241
|
+
const latency = Date.now() - startTime;
|
|
242
|
+
this.updateIncrementalMetrics(latency);
|
|
243
|
+
if (latency > 5) {
|
|
244
|
+
console.warn(`[DependencyGraphStorage] Dependency add ${latency}ms exceeds 5ms target`);
|
|
245
|
+
}
|
|
246
|
+
} catch (error) {
|
|
247
|
+
throw new Error(`Failed to add dependency ${fromTaskId}->${toTaskId} in graph ${graphId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// ===========================
|
|
251
|
+
// Snapshot & Restore
|
|
252
|
+
// ===========================
|
|
253
|
+
/**
|
|
254
|
+
* Create snapshot for rollback capability
|
|
255
|
+
*
|
|
256
|
+
* Performance target: <30ms p95
|
|
257
|
+
*
|
|
258
|
+
* @param graphId - Graph identifier
|
|
259
|
+
* @param label - Human-readable snapshot label
|
|
260
|
+
* @returns Snapshot ID for restoration
|
|
261
|
+
*/ async createSnapshot(graphId, label) {
|
|
262
|
+
this.ensureReady();
|
|
263
|
+
const startTime = Date.now();
|
|
264
|
+
try {
|
|
265
|
+
// Load current graph
|
|
266
|
+
const graph = await this.loadGraph(graphId);
|
|
267
|
+
// Generate snapshot ID
|
|
268
|
+
const snapshotId = `${graphId}-snapshot-${Date.now()}`;
|
|
269
|
+
// Serialize and store with snapshot tag
|
|
270
|
+
const serialized = this.serializeGraph(graphId, graph);
|
|
271
|
+
const packed = msgpack.encode(serialized);
|
|
272
|
+
const compressed = await gzipAsync(packed);
|
|
273
|
+
const checksum = this.calculateChecksum(compressed);
|
|
274
|
+
await this.artifactStorage.uploadArtifact('graph-storage', snapshotId, compressed, {
|
|
275
|
+
type: 'dependency-graph-snapshot',
|
|
276
|
+
filename: `${snapshotId}.msgpack.gz`,
|
|
277
|
+
tags: [
|
|
278
|
+
'snapshot',
|
|
279
|
+
'graph',
|
|
280
|
+
graphId,
|
|
281
|
+
label
|
|
282
|
+
],
|
|
283
|
+
metadata: {
|
|
284
|
+
graphId,
|
|
285
|
+
label,
|
|
286
|
+
timestamp: Date.now(),
|
|
287
|
+
checksum,
|
|
288
|
+
nodeCount: serialized.metadata.nodeCount,
|
|
289
|
+
edgeCount: serialized.metadata.edgeCount
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
// Update metrics
|
|
293
|
+
const latency = Date.now() - startTime;
|
|
294
|
+
this.metrics.totalSnapshots++;
|
|
295
|
+
this.metrics.lastOperationMs = latency;
|
|
296
|
+
if (latency > 30) {
|
|
297
|
+
console.warn(`[DependencyGraphStorage] Snapshot creation ${latency}ms exceeds 30ms target`);
|
|
298
|
+
}
|
|
299
|
+
return snapshotId;
|
|
300
|
+
} catch (error) {
|
|
301
|
+
throw new Error(`Failed to create snapshot for graph ${graphId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Restore graph from snapshot
|
|
306
|
+
*
|
|
307
|
+
* Performance target: <30ms p95
|
|
308
|
+
*
|
|
309
|
+
* @param graphId - Graph identifier to restore to
|
|
310
|
+
* @param snapshotId - Snapshot ID to restore from
|
|
311
|
+
*/ async restoreSnapshot(graphId, snapshotId) {
|
|
312
|
+
this.ensureReady();
|
|
313
|
+
const startTime = Date.now();
|
|
314
|
+
try {
|
|
315
|
+
// Load snapshot
|
|
316
|
+
const artifacts = await this.artifactStorage.queryArtifacts({
|
|
317
|
+
sessionId: snapshotId,
|
|
318
|
+
type: [
|
|
319
|
+
'dependency-graph-snapshot'
|
|
320
|
+
],
|
|
321
|
+
limit: 1
|
|
322
|
+
});
|
|
323
|
+
if (artifacts.length === 0) {
|
|
324
|
+
throw new Error(`Snapshot ${snapshotId} not found`);
|
|
325
|
+
}
|
|
326
|
+
// Download and deserialize snapshot
|
|
327
|
+
const result = await this.artifactStorage.downloadArtifact(artifacts[0].artifactId);
|
|
328
|
+
const decompressed = await gunzipAsync(result.content);
|
|
329
|
+
const serialized = msgpack.decode(decompressed);
|
|
330
|
+
const graph = this.deserializeGraph(serialized);
|
|
331
|
+
// Save as current graph
|
|
332
|
+
await this.saveGraph(graphId, graph);
|
|
333
|
+
const latency = Date.now() - startTime;
|
|
334
|
+
this.metrics.lastOperationMs = latency;
|
|
335
|
+
if (latency > 30) {
|
|
336
|
+
console.warn(`[DependencyGraphStorage] Snapshot restore ${latency}ms exceeds 30ms target`);
|
|
337
|
+
}
|
|
338
|
+
} catch (error) {
|
|
339
|
+
throw new Error(`Failed to restore snapshot ${snapshotId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* List available snapshots for a graph
|
|
344
|
+
*
|
|
345
|
+
* @param graphId - Graph identifier
|
|
346
|
+
* @returns Array of snapshot metadata
|
|
347
|
+
*/ async listSnapshots(graphId) {
|
|
348
|
+
this.ensureReady();
|
|
349
|
+
const artifacts = await this.artifactStorage.queryArtifacts({
|
|
350
|
+
tags: [
|
|
351
|
+
'snapshot',
|
|
352
|
+
graphId
|
|
353
|
+
],
|
|
354
|
+
type: [
|
|
355
|
+
'dependency-graph-snapshot'
|
|
356
|
+
],
|
|
357
|
+
sortBy: 'createdAt',
|
|
358
|
+
sortOrder: 'desc'
|
|
359
|
+
});
|
|
360
|
+
return artifacts.map((artifact)=>({
|
|
361
|
+
snapshotId: artifact.artifactId,
|
|
362
|
+
graphId: artifact.metadata.graphId,
|
|
363
|
+
label: artifact.metadata.label,
|
|
364
|
+
timestamp: artifact.metadata.timestamp,
|
|
365
|
+
checksum: artifact.metadata.checksum,
|
|
366
|
+
sizeBytes: artifact.sizeBytes,
|
|
367
|
+
nodeCount: artifact.metadata.nodeCount,
|
|
368
|
+
edgeCount: artifact.metadata.edgeCount
|
|
369
|
+
}));
|
|
370
|
+
}
|
|
371
|
+
// ===========================
|
|
372
|
+
// Serialization Helpers
|
|
373
|
+
// ===========================
|
|
374
|
+
/**
|
|
375
|
+
* Serialize graph to compact binary-friendly format
|
|
376
|
+
*/ serializeGraph(graphId, graph) {
|
|
377
|
+
const nodes = graph.getAllNodes();
|
|
378
|
+
const stats = graph.getStatistics();
|
|
379
|
+
// Serialize nodes
|
|
380
|
+
const serializedNodes = nodes.map((node)=>({
|
|
381
|
+
id: node.id,
|
|
382
|
+
agentId: node.agentId,
|
|
383
|
+
taskId: node.taskId,
|
|
384
|
+
dependencies: node.dependencies,
|
|
385
|
+
dependents: node.dependents,
|
|
386
|
+
status: node.status,
|
|
387
|
+
priority: node.priority,
|
|
388
|
+
metadata: node.metadata,
|
|
389
|
+
createdAt: node.createdAt,
|
|
390
|
+
updatedAt: node.updatedAt
|
|
391
|
+
}));
|
|
392
|
+
// Serialize edges (compact format)
|
|
393
|
+
const edges = [];
|
|
394
|
+
for (const node of nodes){
|
|
395
|
+
const deps = graph.getDependencies(node.id);
|
|
396
|
+
for (const depId of deps){
|
|
397
|
+
edges.push([
|
|
398
|
+
node.id,
|
|
399
|
+
depId
|
|
400
|
+
]);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
return {
|
|
404
|
+
version: SCHEMA_VERSION,
|
|
405
|
+
metadata: {
|
|
406
|
+
graphId,
|
|
407
|
+
createdAt: Date.now(),
|
|
408
|
+
updatedAt: Date.now(),
|
|
409
|
+
nodeCount: nodes.length,
|
|
410
|
+
edgeCount: stats.edgeCount
|
|
411
|
+
},
|
|
412
|
+
nodes: serializedNodes,
|
|
413
|
+
edges,
|
|
414
|
+
config: {
|
|
415
|
+
allowDuplicateEdges: false,
|
|
416
|
+
autoValidate: true,
|
|
417
|
+
maxSize: 10000
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Deserialize graph from storage format
|
|
423
|
+
*/ deserializeGraph(serialized) {
|
|
424
|
+
const graph = new DependencyGraph(serialized.config);
|
|
425
|
+
// Reconstruct nodes
|
|
426
|
+
for (const nodeData of serialized.nodes){
|
|
427
|
+
const node = new DependencyNodeImpl({
|
|
428
|
+
id: nodeData.id,
|
|
429
|
+
agentId: nodeData.agentId,
|
|
430
|
+
taskId: nodeData.taskId,
|
|
431
|
+
dependencies: nodeData.dependencies,
|
|
432
|
+
priority: nodeData.priority,
|
|
433
|
+
metadata: nodeData.metadata
|
|
434
|
+
});
|
|
435
|
+
// Restore internal state
|
|
436
|
+
node._status = nodeData.status;
|
|
437
|
+
node._dependents = new Set(nodeData.dependents);
|
|
438
|
+
node._createdAt = nodeData.createdAt;
|
|
439
|
+
node._updatedAt = nodeData.updatedAt;
|
|
440
|
+
graph.addNode(node);
|
|
441
|
+
}
|
|
442
|
+
// Reconstruct edges
|
|
443
|
+
for (const [fromId, toId] of serialized.edges){
|
|
444
|
+
if (graph.hasNode(fromId) && graph.hasNode(toId)) {
|
|
445
|
+
graph.addDependency(fromId, toId);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return graph;
|
|
449
|
+
}
|
|
450
|
+
// ===========================
|
|
451
|
+
// Utility Methods
|
|
452
|
+
// ===========================
|
|
453
|
+
/**
|
|
454
|
+
* Calculate SHA-256 checksum for integrity verification
|
|
455
|
+
*/ calculateChecksum(buffer) {
|
|
456
|
+
return createHash('sha256').update(buffer).digest('hex');
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Ensure storage is ready for operations
|
|
460
|
+
*/ ensureReady() {
|
|
461
|
+
if (!this.ready) {
|
|
462
|
+
throw new Error('DependencyGraphStorage not initialized. Call initialize() first.');
|
|
463
|
+
}
|
|
464
|
+
if (!this.artifactStorage.isReady()) {
|
|
465
|
+
throw new Error('Artifact storage backend not ready');
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
// ===========================
|
|
469
|
+
// Metrics & Monitoring
|
|
470
|
+
// ===========================
|
|
471
|
+
/**
|
|
472
|
+
* Get storage performance metrics
|
|
473
|
+
*/ getMetrics() {
|
|
474
|
+
return {
|
|
475
|
+
...this.metrics
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Initialize metrics structure
|
|
480
|
+
*/ initializeMetrics() {
|
|
481
|
+
return {
|
|
482
|
+
totalSaves: 0,
|
|
483
|
+
totalLoads: 0,
|
|
484
|
+
totalIncrementalUpdates: 0,
|
|
485
|
+
totalSnapshots: 0,
|
|
486
|
+
averageSaveMs: 0,
|
|
487
|
+
averageLoadMs: 0,
|
|
488
|
+
averageUpdateMs: 0,
|
|
489
|
+
p95SaveMs: 0,
|
|
490
|
+
p95LoadMs: 0,
|
|
491
|
+
lastOperationMs: 0
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Update save operation metrics
|
|
496
|
+
*/ updateSaveMetrics(latency) {
|
|
497
|
+
this.metrics.totalSaves++;
|
|
498
|
+
this.metrics.averageSaveMs = this.updateAverage(this.metrics.averageSaveMs, latency, this.metrics.totalSaves);
|
|
499
|
+
this.latencyBuffer.push(latency);
|
|
500
|
+
this.metrics.p95SaveMs = this.calculateP95();
|
|
501
|
+
this.metrics.lastOperationMs = latency;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Update load operation metrics
|
|
505
|
+
*/ updateLoadMetrics(latency) {
|
|
506
|
+
this.metrics.totalLoads++;
|
|
507
|
+
this.metrics.averageLoadMs = this.updateAverage(this.metrics.averageLoadMs, latency, this.metrics.totalLoads);
|
|
508
|
+
this.latencyBuffer.push(latency);
|
|
509
|
+
this.metrics.p95LoadMs = this.calculateP95();
|
|
510
|
+
this.metrics.lastOperationMs = latency;
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Update incremental operation metrics
|
|
514
|
+
*/ updateIncrementalMetrics(latency) {
|
|
515
|
+
this.metrics.totalIncrementalUpdates++;
|
|
516
|
+
this.metrics.averageUpdateMs = this.updateAverage(this.metrics.averageUpdateMs, latency, this.metrics.totalIncrementalUpdates);
|
|
517
|
+
this.metrics.lastOperationMs = latency;
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Calculate rolling average
|
|
521
|
+
*/ updateAverage(current, newValue, count) {
|
|
522
|
+
return (current * (count - 1) + newValue) / count;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Calculate 95th percentile latency
|
|
526
|
+
*/ calculateP95() {
|
|
527
|
+
if (this.latencyBuffer.length === 0) return 0;
|
|
528
|
+
// Keep buffer size manageable
|
|
529
|
+
if (this.latencyBuffer.length > 1000) {
|
|
530
|
+
this.latencyBuffer = this.latencyBuffer.slice(-1000);
|
|
531
|
+
}
|
|
532
|
+
const sorted = [
|
|
533
|
+
...this.latencyBuffer
|
|
534
|
+
].sort((a, b)=>a - b);
|
|
535
|
+
const index = Math.floor(sorted.length * 0.95);
|
|
536
|
+
return sorted[index] || 0;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
//# sourceMappingURL=dependency-graph-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/coordination/archives/v2-sdk-typescript/v2/memory/dependency-graph-storage.ts"],"names":["DependencyGraph","DependencyNodeImpl","msgpack","gzip","gunzip","promisify","createHash","gzipAsync","gunzipAsync","SCHEMA_VERSION","DependencyGraphStorage","artifactStorage","metrics","latencyBuffer","ready","initializeMetrics","initialize","isReady","close","saveGraph","graphId","graph","ensureReady","startTime","Date","now","serialized","serializeGraph","packed","encode","compressed","uploadArtifact","type","filename","tags","metadata","schemaVersion","nodeCount","edgeCount","uncompressedBytes","length","compressedBytes","forceCompression","latency","updateSaveMetrics","console","warn","error","Error","message","String","loadGraph","artifacts","queryArtifacts","sessionId","sortBy","sortOrder","limit","result","downloadArtifact","artifactId","decompressed","content","decode","version","deserializeGraph","updateLoadMetrics","updateNode","node","hasNode","id","removeNode","nodeImpl","fromJSON","addNode","updateIncrementalMetrics","addDependency","fromTaskId","toTaskId","createSnapshot","label","snapshotId","checksum","calculateChecksum","timestamp","totalSnapshots","lastOperationMs","restoreSnapshot","listSnapshots","map","artifact","sizeBytes","nodes","getAllNodes","stats","getStatistics","serializedNodes","agentId","taskId","dependencies","dependents","status","priority","createdAt","updatedAt","edges","deps","getDependencies","depId","push","config","allowDuplicateEdges","autoValidate","maxSize","nodeData","_status","_dependents","Set","_createdAt","_updatedAt","fromId","toId","buffer","update","digest","getMetrics","totalSaves","totalLoads","totalIncrementalUpdates","averageSaveMs","averageLoadMs","averageUpdateMs","p95SaveMs","p95LoadMs","updateAverage","calculateP95","current","newValue","count","slice","sorted","sort","a","b","index","Math","floor"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;CAkBC,GAGD,SAASA,eAAe,QAAQ,8BAA8B;AAC9D,SAAyBC,kBAAkB,QAA8B,6BAA6B;AACtG,YAAYC,aAAa,eAAe;AACxC,SAASC,IAAI,EAAEC,MAAM,QAAQ,OAAO;AACpC,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,UAAU,QAAQ,SAAS;AAEpC,MAAMC,YAAYF,UAAUF;AAC5B,MAAMK,cAAcH,UAAUD;AAE9B;;CAEC,GACD,MAAMK,iBAAiB;AA8EvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BC,GACD,OAAO,MAAMC;IACHC,gBAAkC;IAClCC,QAAwB;IACxBC,gBAA0B,EAAE,CAAC;IAC7BC,QAAiB,MAAM;IAE/B,YAAYH,eAAiC,CAAE;QAC7C,IAAI,CAACA,eAAe,GAAGA;QACvB,IAAI,CAACC,OAAO,GAAG,IAAI,CAACG,iBAAiB;IACvC;IAEA,8BAA8B;IAC9B,YAAY;IACZ,8BAA8B;IAE9B;;GAEC,GACD,MAAMC,aAA4B;QAChC,IAAI,CAAC,IAAI,CAACL,eAAe,CAACM,OAAO,IAAI;YACnC,MAAM,IAAI,CAACN,eAAe,CAACK,UAAU;QACvC;QACA,IAAI,CAACF,KAAK,GAAG;IACf;IAEA;;GAEC,GACD,MAAMI,QAAuB;QAC3B,IAAI,CAACJ,KAAK,GAAG;IACf;IAEA;;GAEC,GACDG,UAAmB;QACjB,OAAO,IAAI,CAACH,KAAK,IAAI,IAAI,CAACH,eAAe,CAACM,OAAO;IACnD;IAEA,8BAA8B;IAC9B,8BAA8B;IAC9B,8BAA8B;IAE9B;;;;;;;;GAQC,GACD,MAAME,UAAUC,OAAe,EAAEC,KAAsB,EAAiB;QACtE,IAAI,CAACC,WAAW;QAChB,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,uCAAuC;YACvC,MAAMC,aAAa,IAAI,CAACC,cAAc,CAACP,SAASC;YAEhD,sCAAsC;YACtC,MAAMO,SAAS1B,QAAQ2B,MAAM,CAACH;YAE9B,wBAAwB;YACxB,MAAMI,aAAa,MAAMvB,UAAUqB;YAEnC,+BAA+B;YAC/B,MAAM,IAAI,CAACjB,eAAe,CAACoB,cAAc,CACvC,iBACAX,SACAU,YACA;gBACEE,MAAM;gBACNC,UAAU,GAAGb,QAAQ,WAAW,CAAC;gBACjCc,MAAM;oBAAC;oBAAS;oBAAcd;iBAAQ;gBACtCe,UAAU;oBACRC,eAAe3B;oBACf4B,WAAWX,WAAWS,QAAQ,CAACE,SAAS;oBACxCC,WAAWZ,WAAWS,QAAQ,CAACG,SAAS;oBACxCC,mBAAmBX,OAAOY,MAAM;oBAChCC,iBAAiBX,WAAWU,MAAM;gBACpC;gBACAE,kBAAkB,MAAM,qBAAqB;YAC/C;YAGF,iBAAiB;YACjB,MAAMC,UAAUnB,KAAKC,GAAG,KAAKF;YAC7B,IAAI,CAACqB,iBAAiB,CAACD;YAEvB,wCAAwC;YACxC,IAAIA,UAAU,IAAI;gBAChBE,QAAQC,IAAI,CAAC,CAAC,sCAAsC,EAAEH,QAAQ,iCAAiC,EAAEvB,SAAS;YAC5G;QACF,EAAE,OAAO2B,OAAO;YACd,MAAM,IAAIC,MAAM,CAAC,qBAAqB,EAAE5B,QAAQ,EAAE,EAAE2B,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QAC9G;IACF;IAEA;;;;;;;;GAQC,GACD,MAAMI,UAAU/B,OAAe,EAA4B;QACzD,IAAI,CAACE,WAAW;QAChB,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,+BAA+B;YAC/B,MAAM2B,YAAY,MAAM,IAAI,CAACzC,eAAe,CAAC0C,cAAc,CAAC;gBAC1DC,WAAWlC;gBACXY,MAAM;oBAAC;iBAAmB;gBAC1BuB,QAAQ;gBACRC,WAAW;gBACXC,OAAO;YACT;YAEA,IAAIL,UAAUZ,MAAM,KAAK,GAAG;gBAC1B,MAAM,IAAIQ,MAAM,CAAC,MAAM,EAAE5B,QAAQ,qBAAqB,CAAC;YACzD;YAEA,uBAAuB;YACvB,MAAMsC,SAAS,MAAM,IAAI,CAAC/C,eAAe,CAACgD,gBAAgB,CAACP,SAAS,CAAC,EAAE,CAACQ,UAAU;YAElF,gBAAgB;YAChB,MAAMC,eAAe,MAAMrD,YAAYkD,OAAOI,OAAO;YAErD,wBAAwB;YACxB,MAAMpC,aAAaxB,QAAQ6D,MAAM,CAACF;YAElC,6BAA6B;YAC7B,IAAInC,WAAWsC,OAAO,GAAGvD,gBAAgB;gBACvC,MAAM,IAAIuC,MAAM,CAAC,2BAA2B,EAAEtB,WAAWsC,OAAO,CAAC,WAAW,EAAEvD,gBAAgB;YAChG;YAEA,uBAAuB;YACvB,MAAMY,QAAQ,IAAI,CAAC4C,gBAAgB,CAACvC;YAEpC,iBAAiB;YACjB,MAAMiB,UAAUnB,KAAKC,GAAG,KAAKF;YAC7B,IAAI,CAAC2C,iBAAiB,CAACvB;YAEvB,wCAAwC;YACxC,IAAIA,UAAU,IAAI;gBAChBE,QAAQC,IAAI,CAAC,CAAC,sCAAsC,EAAEH,QAAQ,iCAAiC,EAAEvB,SAAS;YAC5G;YAEA,OAAOC;QACT,EAAE,OAAO0B,OAAO;YACd,MAAM,IAAIC,MAAM,CAAC,qBAAqB,EAAE5B,QAAQ,EAAE,EAAE2B,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QAC9G;IACF;IAEA,8BAA8B;IAC9B,gCAAgC;IAChC,8BAA8B;IAE9B;;;;;;;GAOC,GACD,MAAMoB,WAAW/C,OAAe,EAAEgD,IAAoB,EAAiB;QACrE,IAAI,CAAC9C,WAAW;QAChB,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,qBAAqB;YACrB,MAAMJ,QAAQ,MAAM,IAAI,CAAC8B,SAAS,CAAC/B;YAEnC,qBAAqB;YACrB,IAAIC,MAAMgD,OAAO,CAACD,KAAKE,EAAE,GAAG;gBAC1BjD,MAAMkD,UAAU,CAACH,KAAKE,EAAE;YAC1B;YACA,MAAME,WAAWvE,mBAAmBwE,QAAQ,CAACL;YAC7C/C,MAAMqD,OAAO,CAACF;YAEd,qBAAqB;YACrB,MAAM,IAAI,CAACrD,SAAS,CAACC,SAASC;YAE9B,iBAAiB;YACjB,MAAMsB,UAAUnB,KAAKC,GAAG,KAAKF;YAC7B,IAAI,CAACoD,wBAAwB,CAAChC;YAE9B,IAAIA,UAAU,GAAG;gBACfE,QAAQC,IAAI,CAAC,CAAC,qCAAqC,EAAEH,QAAQ,qBAAqB,CAAC;YACrF;QACF,EAAE,OAAOI,OAAO;YACd,MAAM,IAAIC,MAAM,CAAC,sBAAsB,EAAEoB,KAAKE,EAAE,CAAC,UAAU,EAAElD,QAAQ,EAAE,EAAE2B,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QACnI;IACF;IAEA;;;;;;;;GAQC,GACD,MAAM6B,cAAcxD,OAAe,EAAEyD,UAAkB,EAAEC,QAAgB,EAAiB;QACxF,IAAI,CAACxD,WAAW;QAChB,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,qBAAqB;YACrB,MAAMJ,QAAQ,MAAM,IAAI,CAAC8B,SAAS,CAAC/B;YAEnC,iBAAiB;YACjBC,MAAMuD,aAAa,CAACC,YAAYC;YAEhC,qBAAqB;YACrB,MAAM,IAAI,CAAC3D,SAAS,CAACC,SAASC;YAE9B,iBAAiB;YACjB,MAAMsB,UAAUnB,KAAKC,GAAG,KAAKF;YAC7B,IAAI,CAACoD,wBAAwB,CAAChC;YAE9B,IAAIA,UAAU,GAAG;gBACfE,QAAQC,IAAI,CAAC,CAAC,wCAAwC,EAAEH,QAAQ,qBAAqB,CAAC;YACxF;QACF,EAAE,OAAOI,OAAO;YACd,MAAM,IAAIC,MAAM,CAAC,yBAAyB,EAAE6B,WAAW,EAAE,EAAEC,SAAS,UAAU,EAAE1D,QAAQ,EAAE,EAAE2B,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QACtJ;IACF;IAEA,8BAA8B;IAC9B,qBAAqB;IACrB,8BAA8B;IAE9B;;;;;;;;GAQC,GACD,MAAMgC,eAAe3D,OAAe,EAAE4D,KAAa,EAAmB;QACpE,IAAI,CAAC1D,WAAW;QAChB,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,qBAAqB;YACrB,MAAMJ,QAAQ,MAAM,IAAI,CAAC8B,SAAS,CAAC/B;YAEnC,uBAAuB;YACvB,MAAM6D,aAAa,GAAG7D,QAAQ,UAAU,EAAEI,KAAKC,GAAG,IAAI;YAEtD,wCAAwC;YACxC,MAAMC,aAAa,IAAI,CAACC,cAAc,CAACP,SAASC;YAChD,MAAMO,SAAS1B,QAAQ2B,MAAM,CAACH;YAC9B,MAAMI,aAAa,MAAMvB,UAAUqB;YACnC,MAAMsD,WAAW,IAAI,CAACC,iBAAiB,CAACrD;YAExC,MAAM,IAAI,CAACnB,eAAe,CAACoB,cAAc,CACvC,iBACAkD,YACAnD,YACA;gBACEE,MAAM;gBACNC,UAAU,GAAGgD,WAAW,WAAW,CAAC;gBACpC/C,MAAM;oBAAC;oBAAY;oBAASd;oBAAS4D;iBAAM;gBAC3C7C,UAAU;oBACRf;oBACA4D;oBACAI,WAAW5D,KAAKC,GAAG;oBACnByD;oBACA7C,WAAWX,WAAWS,QAAQ,CAACE,SAAS;oBACxCC,WAAWZ,WAAWS,QAAQ,CAACG,SAAS;gBAC1C;YACF;YAGF,iBAAiB;YACjB,MAAMK,UAAUnB,KAAKC,GAAG,KAAKF;YAC7B,IAAI,CAACX,OAAO,CAACyE,cAAc;YAC3B,IAAI,CAACzE,OAAO,CAAC0E,eAAe,GAAG3C;YAE/B,IAAIA,UAAU,IAAI;gBAChBE,QAAQC,IAAI,CAAC,CAAC,2CAA2C,EAAEH,QAAQ,sBAAsB,CAAC;YAC5F;YAEA,OAAOsC;QACT,EAAE,OAAOlC,OAAO;YACd,MAAM,IAAIC,MAAM,CAAC,oCAAoC,EAAE5B,QAAQ,EAAE,EAAE2B,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QAC7H;IACF;IAEA;;;;;;;GAOC,GACD,MAAMwC,gBAAgBnE,OAAe,EAAE6D,UAAkB,EAAiB;QACxE,IAAI,CAAC3D,WAAW;QAChB,MAAMC,YAAYC,KAAKC,GAAG;QAE1B,IAAI;YACF,gBAAgB;YAChB,MAAM2B,YAAY,MAAM,IAAI,CAACzC,eAAe,CAAC0C,cAAc,CAAC;gBAC1DC,WAAW2B;gBACXjD,MAAM;oBAAC;iBAA4B;gBACnCyB,OAAO;YACT;YAEA,IAAIL,UAAUZ,MAAM,KAAK,GAAG;gBAC1B,MAAM,IAAIQ,MAAM,CAAC,SAAS,EAAEiC,WAAW,UAAU,CAAC;YACpD;YAEA,oCAAoC;YACpC,MAAMvB,SAAS,MAAM,IAAI,CAAC/C,eAAe,CAACgD,gBAAgB,CAACP,SAAS,CAAC,EAAE,CAACQ,UAAU;YAClF,MAAMC,eAAe,MAAMrD,YAAYkD,OAAOI,OAAO;YACrD,MAAMpC,aAAaxB,QAAQ6D,MAAM,CAACF;YAClC,MAAMxC,QAAQ,IAAI,CAAC4C,gBAAgB,CAACvC;YAEpC,wBAAwB;YACxB,MAAM,IAAI,CAACP,SAAS,CAACC,SAASC;YAE9B,MAAMsB,UAAUnB,KAAKC,GAAG,KAAKF;YAC7B,IAAI,CAACX,OAAO,CAAC0E,eAAe,GAAG3C;YAE/B,IAAIA,UAAU,IAAI;gBAChBE,QAAQC,IAAI,CAAC,CAAC,0CAA0C,EAAEH,QAAQ,sBAAsB,CAAC;YAC3F;QACF,EAAE,OAAOI,OAAO;YACd,MAAM,IAAIC,MAAM,CAAC,2BAA2B,EAAEiC,WAAW,EAAE,EAAElC,iBAAiBC,QAAQD,MAAME,OAAO,GAAGC,OAAOH,QAAQ;QACvH;IACF;IAEA;;;;;GAKC,GACD,MAAMyC,cAAcpE,OAAe,EAA+B;QAChE,IAAI,CAACE,WAAW;QAEhB,MAAM8B,YAAY,MAAM,IAAI,CAACzC,eAAe,CAAC0C,cAAc,CAAC;YAC1DnB,MAAM;gBAAC;gBAAYd;aAAQ;YAC3BY,MAAM;gBAAC;aAA4B;YACnCuB,QAAQ;YACRC,WAAW;QACb;QAEA,OAAOJ,UAAUqC,GAAG,CAACC,CAAAA,WAAa,CAAA;gBAChCT,YAAYS,SAAS9B,UAAU;gBAC/BxC,SAASsE,SAASvD,QAAQ,CAACf,OAAO;gBAClC4D,OAAOU,SAASvD,QAAQ,CAAC6C,KAAK;gBAC9BI,WAAWM,SAASvD,QAAQ,CAACiD,SAAS;gBACtCF,UAAUQ,SAASvD,QAAQ,CAAC+C,QAAQ;gBACpCS,WAAWD,SAASC,SAAS;gBAC7BtD,WAAWqD,SAASvD,QAAQ,CAACE,SAAS;gBACtCC,WAAWoD,SAASvD,QAAQ,CAACG,SAAS;YACxC,CAAA;IACF;IAEA,8BAA8B;IAC9B,wBAAwB;IACxB,8BAA8B;IAE9B;;GAEC,GACD,AAAQX,eAAeP,OAAe,EAAEC,KAAsB,EAAmB;QAC/E,MAAMuE,QAAQvE,MAAMwE,WAAW;QAC/B,MAAMC,QAAQzE,MAAM0E,aAAa;QAEjC,kBAAkB;QAClB,MAAMC,kBAAoCJ,MAAMH,GAAG,CAACrB,CAAAA,OAAS,CAAA;gBAC3DE,IAAIF,KAAKE,EAAE;gBACX2B,SAAS7B,KAAK6B,OAAO;gBACrBC,QAAQ9B,KAAK8B,MAAM;gBACnBC,cAAc/B,KAAK+B,YAAY;gBAC/BC,YAAYhC,KAAKgC,UAAU;gBAC3BC,QAAQjC,KAAKiC,MAAM;gBACnBC,UAAUlC,KAAKkC,QAAQ;gBACvBnE,UAAUiC,KAAKjC,QAAQ;gBACvBoE,WAAWnC,KAAKmC,SAAS;gBACzBC,WAAWpC,KAAKoC,SAAS;YAC3B,CAAA;QAEA,mCAAmC;QACnC,MAAMC,QAA4B,EAAE;QACpC,KAAK,MAAMrC,QAAQwB,MAAO;YACxB,MAAMc,OAAOrF,MAAMsF,eAAe,CAACvC,KAAKE,EAAE;YAC1C,KAAK,MAAMsC,SAASF,KAAM;gBACxBD,MAAMI,IAAI,CAAC;oBAACzC,KAAKE,EAAE;oBAAEsC;iBAAM;YAC7B;QACF;QAEA,OAAO;YACL5C,SAASvD;YACT0B,UAAU;gBACRf;gBACAmF,WAAW/E,KAAKC,GAAG;gBACnB+E,WAAWhF,KAAKC,GAAG;gBACnBY,WAAWuD,MAAMpD,MAAM;gBACvBF,WAAWwD,MAAMxD,SAAS;YAC5B;YACAsD,OAAOI;YACPS;YACAK,QAAQ;gBACNC,qBAAqB;gBACrBC,cAAc;gBACdC,SAAS;YACX;QACF;IACF;IAEA;;GAEC,GACD,AAAQhD,iBAAiBvC,UAA2B,EAAmB;QACrE,MAAML,QAAQ,IAAIrB,gBAAgB0B,WAAWoF,MAAM;QAEnD,oBAAoB;QACpB,KAAK,MAAMI,YAAYxF,WAAWkE,KAAK,CAAE;YACvC,MAAMxB,OAAO,IAAInE,mBAAmB;gBAClCqE,IAAI4C,SAAS5C,EAAE;gBACf2B,SAASiB,SAASjB,OAAO;gBACzBC,QAAQgB,SAAShB,MAAM;gBACvBC,cAAce,SAASf,YAAY;gBACnCG,UAAUY,SAASZ,QAAQ;gBAC3BnE,UAAU+E,SAAS/E,QAAQ;YAC7B;YAEA,yBAAyB;YACxBiC,KAAa+C,OAAO,GAAGD,SAASb,MAAM;YACtCjC,KAAagD,WAAW,GAAG,IAAIC,IAAIH,SAASd,UAAU;YACtDhC,KAAakD,UAAU,GAAGJ,SAASX,SAAS;YAC5CnC,KAAamD,UAAU,GAAGL,SAASV,SAAS;YAE7CnF,MAAMqD,OAAO,CAACN;QAChB;QAEA,oBAAoB;QACpB,KAAK,MAAM,CAACoD,QAAQC,KAAK,IAAI/F,WAAW+E,KAAK,CAAE;YAC7C,IAAIpF,MAAMgD,OAAO,CAACmD,WAAWnG,MAAMgD,OAAO,CAACoD,OAAO;gBAChDpG,MAAMuD,aAAa,CAAC4C,QAAQC;YAC9B;QACF;QAEA,OAAOpG;IACT;IAEA,8BAA8B;IAC9B,kBAAkB;IAClB,8BAA8B;IAE9B;;GAEC,GACD,AAAQ8D,kBAAkBuC,MAAc,EAAU;QAChD,OAAOpH,WAAW,UAAUqH,MAAM,CAACD,QAAQE,MAAM,CAAC;IACpD;IAEA;;GAEC,GACD,AAAQtG,cAAoB;QAC1B,IAAI,CAAC,IAAI,CAACR,KAAK,EAAE;YACf,MAAM,IAAIkC,MAAM;QAClB;QACA,IAAI,CAAC,IAAI,CAACrC,eAAe,CAACM,OAAO,IAAI;YACnC,MAAM,IAAI+B,MAAM;QAClB;IACF;IAEA,8BAA8B;IAC9B,uBAAuB;IACvB,8BAA8B;IAE9B;;GAEC,GACD6E,aAA6B;QAC3B,OAAO;YAAE,GAAG,IAAI,CAACjH,OAAO;QAAC;IAC3B;IAEA;;GAEC,GACD,AAAQG,oBAAoC;QAC1C,OAAO;YACL+G,YAAY;YACZC,YAAY;YACZC,yBAAyB;YACzB3C,gBAAgB;YAChB4C,eAAe;YACfC,eAAe;YACfC,iBAAiB;YACjBC,WAAW;YACXC,WAAW;YACX/C,iBAAiB;QACnB;IACF;IAEA;;GAEC,GACD,AAAQ1C,kBAAkBD,OAAe,EAAQ;QAC/C,IAAI,CAAC/B,OAAO,CAACkH,UAAU;QACvB,IAAI,CAAClH,OAAO,CAACqH,aAAa,GAAG,IAAI,CAACK,aAAa,CAAC,IAAI,CAAC1H,OAAO,CAACqH,aAAa,EAAEtF,SAAS,IAAI,CAAC/B,OAAO,CAACkH,UAAU;QAC5G,IAAI,CAACjH,aAAa,CAACgG,IAAI,CAAClE;QACxB,IAAI,CAAC/B,OAAO,CAACwH,SAAS,GAAG,IAAI,CAACG,YAAY;QAC1C,IAAI,CAAC3H,OAAO,CAAC0E,eAAe,GAAG3C;IACjC;IAEA;;GAEC,GACD,AAAQuB,kBAAkBvB,OAAe,EAAQ;QAC/C,IAAI,CAAC/B,OAAO,CAACmH,UAAU;QACvB,IAAI,CAACnH,OAAO,CAACsH,aAAa,GAAG,IAAI,CAACI,aAAa,CAAC,IAAI,CAAC1H,OAAO,CAACsH,aAAa,EAAEvF,SAAS,IAAI,CAAC/B,OAAO,CAACmH,UAAU;QAC5G,IAAI,CAAClH,aAAa,CAACgG,IAAI,CAAClE;QACxB,IAAI,CAAC/B,OAAO,CAACyH,SAAS,GAAG,IAAI,CAACE,YAAY;QAC1C,IAAI,CAAC3H,OAAO,CAAC0E,eAAe,GAAG3C;IACjC;IAEA;;GAEC,GACD,AAAQgC,yBAAyBhC,OAAe,EAAQ;QACtD,IAAI,CAAC/B,OAAO,CAACoH,uBAAuB;QACpC,IAAI,CAACpH,OAAO,CAACuH,eAAe,GAAG,IAAI,CAACG,aAAa,CAC/C,IAAI,CAAC1H,OAAO,CAACuH,eAAe,EAC5BxF,SACA,IAAI,CAAC/B,OAAO,CAACoH,uBAAuB;QAEtC,IAAI,CAACpH,OAAO,CAAC0E,eAAe,GAAG3C;IACjC;IAEA;;GAEC,GACD,AAAQ2F,cAAcE,OAAe,EAAEC,QAAgB,EAAEC,KAAa,EAAU;QAC9E,OAAO,AAACF,CAAAA,UAAWE,CAAAA,QAAQ,CAAA,IAAKD,QAAO,IAAKC;IAC9C;IAEA;;GAEC,GACD,AAAQH,eAAuB;QAC7B,IAAI,IAAI,CAAC1H,aAAa,CAAC2B,MAAM,KAAK,GAAG,OAAO;QAE5C,8BAA8B;QAC9B,IAAI,IAAI,CAAC3B,aAAa,CAAC2B,MAAM,GAAG,MAAM;YACpC,IAAI,CAAC3B,aAAa,GAAG,IAAI,CAACA,aAAa,CAAC8H,KAAK,CAAC,CAAC;QACjD;QAEA,MAAMC,SAAS;eAAI,IAAI,CAAC/H,aAAa;SAAC,CAACgI,IAAI,CAAC,CAACC,GAAGC,IAAMD,IAAIC;QAC1D,MAAMC,QAAQC,KAAKC,KAAK,CAACN,OAAOpG,MAAM,GAAG;QACzC,OAAOoG,MAAM,CAACI,MAAM,IAAI;IAC1B;AACF"}
|