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
package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js
ADDED
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Coordination V2 - Hierarchical Background Integration
|
|
3
|
+
*
|
|
4
|
+
* Sprint 5.2 Integration Layer
|
|
5
|
+
* Connects HierarchicalCoordinator with BackgroundOrchestrator for
|
|
6
|
+
* multi-level bash process spawning with 500ms failure detection.
|
|
7
|
+
*
|
|
8
|
+
* Key Features:
|
|
9
|
+
* - Multi-level spawning (Level 1-N) via BackgroundOrchestrator
|
|
10
|
+
* - Child process monitoring via BashOutputMonitor
|
|
11
|
+
* - 500ms failure detection latency
|
|
12
|
+
* - Cascade termination support
|
|
13
|
+
* - Clean process lifecycle management
|
|
14
|
+
*
|
|
15
|
+
* @module coordination/v2/sdk/hierarchical-background-integration
|
|
16
|
+
*/ import { EventEmitter } from 'events';
|
|
17
|
+
import { BackgroundOrchestrator } from './background-orchestrator.js';
|
|
18
|
+
import { BashOutputMonitor } from './bash-output-monitor.js';
|
|
19
|
+
import { Logger } from '../../../core/logger.js';
|
|
20
|
+
/**
|
|
21
|
+
* Integration layer connecting HierarchicalCoordinator to BackgroundOrchestrator
|
|
22
|
+
*
|
|
23
|
+
* Manages background bash process spawning for hierarchical agent coordination.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const integration = new HierarchicalBackgroundIntegration(hierarchicalCoordinator, {
|
|
28
|
+
* maxLevels: 10,
|
|
29
|
+
* failureDetectionTimeout: 500
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* await integration.initialize();
|
|
33
|
+
*
|
|
34
|
+
* // Spawn child agent at Level 3
|
|
35
|
+
* const childProcess = await integration.spawnChildAgent(parentAgent, childConfig, 3);
|
|
36
|
+
*
|
|
37
|
+
* // Monitor all child processes
|
|
38
|
+
* await integration.monitorChildren(parentAgentId);
|
|
39
|
+
* ```
|
|
40
|
+
*/ export class HierarchicalBackgroundIntegration extends EventEmitter {
|
|
41
|
+
logger;
|
|
42
|
+
config;
|
|
43
|
+
coordinator;
|
|
44
|
+
backgroundOrchestrator;
|
|
45
|
+
bashOutputMonitor;
|
|
46
|
+
agentToProcessMap = new Map();
|
|
47
|
+
processToAgentMap = new Map();
|
|
48
|
+
failureDetectionTimers = new Map();
|
|
49
|
+
isInitialized = false;
|
|
50
|
+
constructor(coordinator, config){
|
|
51
|
+
super();
|
|
52
|
+
this.coordinator = coordinator;
|
|
53
|
+
this.logger = new Logger({
|
|
54
|
+
level: 'info',
|
|
55
|
+
format: 'json',
|
|
56
|
+
destination: 'console'
|
|
57
|
+
}, {
|
|
58
|
+
component: 'HierarchicalBackgroundIntegration'
|
|
59
|
+
});
|
|
60
|
+
this.config = {
|
|
61
|
+
maxLevels: 10,
|
|
62
|
+
maxProcessesPerLevel: 20,
|
|
63
|
+
monitoringInterval: 500,
|
|
64
|
+
failureDetectionTimeout: 500,
|
|
65
|
+
autoCleanup: true,
|
|
66
|
+
cleanupRetentionMs: 60000,
|
|
67
|
+
...config
|
|
68
|
+
};
|
|
69
|
+
this.backgroundOrchestrator = new BackgroundOrchestrator({
|
|
70
|
+
maxLevels: this.config.maxLevels,
|
|
71
|
+
maxProcessesPerLevel: this.config.maxProcessesPerLevel,
|
|
72
|
+
monitoringInterval: this.config.monitoringInterval,
|
|
73
|
+
autoCleanup: this.config.autoCleanup,
|
|
74
|
+
cleanupRetentionMs: this.config.cleanupRetentionMs
|
|
75
|
+
});
|
|
76
|
+
this.bashOutputMonitor = new BashOutputMonitor();
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Initialize integration layer
|
|
80
|
+
*/ async initialize() {
|
|
81
|
+
if (this.isInitialized) {
|
|
82
|
+
this.logger.warn('Integration already initialized');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this.logger.info('Initializing hierarchical background integration...');
|
|
86
|
+
// Setup event listeners
|
|
87
|
+
this.setupEventHandlers();
|
|
88
|
+
this.isInitialized = true;
|
|
89
|
+
this.logger.info('Hierarchical background integration initialized');
|
|
90
|
+
this.emit('integration:initialized');
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Spawn child agent as background bash process
|
|
94
|
+
*
|
|
95
|
+
* @param parentAgent - Parent hierarchical agent
|
|
96
|
+
* @param childConfig - Child agent configuration
|
|
97
|
+
* @param level - Spawning level (1-N)
|
|
98
|
+
* @returns Promise resolving to spawned BackgroundProcess
|
|
99
|
+
*/ async spawnChildAgent(parentAgent, childConfig, level) {
|
|
100
|
+
if (!this.isInitialized) {
|
|
101
|
+
throw new Error('Integration not initialized. Call initialize() first.');
|
|
102
|
+
}
|
|
103
|
+
this.logger.info(`Spawning child agent at level ${level}`, {
|
|
104
|
+
parentId: parentAgent.id,
|
|
105
|
+
childId: childConfig.agentId,
|
|
106
|
+
level
|
|
107
|
+
});
|
|
108
|
+
// Create agent definition for BackgroundOrchestrator
|
|
109
|
+
const agent = {
|
|
110
|
+
agentId: childConfig.agentId,
|
|
111
|
+
type: childConfig.type,
|
|
112
|
+
priority: childConfig.priority || 5,
|
|
113
|
+
sessionId: childConfig.sessionId,
|
|
114
|
+
capabilities: childConfig.capabilities,
|
|
115
|
+
metadata: {
|
|
116
|
+
...childConfig.metadata,
|
|
117
|
+
parentAgentId: parentAgent.id,
|
|
118
|
+
parentLevel: parentAgent.level,
|
|
119
|
+
coordinatorIntegration: true
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
// Get parent process ID if exists
|
|
123
|
+
const parentProcess = this.agentToProcessMap.get(parentAgent.id);
|
|
124
|
+
const parentProcessId = parentProcess?.id;
|
|
125
|
+
// Spawn background process via BackgroundOrchestrator
|
|
126
|
+
const childProcess = await this.backgroundOrchestrator.spawnBackground(agent, level, parentProcessId);
|
|
127
|
+
// Register mappings
|
|
128
|
+
this.agentToProcessMap.set(childConfig.agentId, childProcess);
|
|
129
|
+
this.processToAgentMap.set(childProcess.id, childConfig.agentId);
|
|
130
|
+
// Start bash output monitoring
|
|
131
|
+
this.bashOutputMonitor.startMonitoring(childProcess);
|
|
132
|
+
// Start failure detection with 500ms timeout
|
|
133
|
+
this.startFailureDetection(childProcess);
|
|
134
|
+
this.logger.info(`Child agent spawned at level ${level}`, {
|
|
135
|
+
processId: childProcess.id,
|
|
136
|
+
agentId: childConfig.agentId,
|
|
137
|
+
parentId: parentAgent.id
|
|
138
|
+
});
|
|
139
|
+
this.emit('child:spawned', {
|
|
140
|
+
processId: childProcess.id,
|
|
141
|
+
agentId: childConfig.agentId,
|
|
142
|
+
level,
|
|
143
|
+
parentId: parentAgent.id
|
|
144
|
+
});
|
|
145
|
+
return childProcess;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Monitor all child processes for a given parent agent
|
|
149
|
+
*
|
|
150
|
+
* @param parentAgentId - Parent agent ID to monitor children for
|
|
151
|
+
* @returns Array of monitored child processes
|
|
152
|
+
*/ async monitorChildren(parentAgentId) {
|
|
153
|
+
const parentProcess = this.agentToProcessMap.get(parentAgentId);
|
|
154
|
+
if (!parentProcess) {
|
|
155
|
+
this.logger.warn('Parent agent has no associated process', {
|
|
156
|
+
parentAgentId
|
|
157
|
+
});
|
|
158
|
+
return [];
|
|
159
|
+
}
|
|
160
|
+
const children = this.backgroundOrchestrator.getChildProcesses(parentProcess.id);
|
|
161
|
+
this.logger.debug(`Monitoring ${children.length} children for parent ${parentAgentId}`);
|
|
162
|
+
// Ensure all children are being monitored
|
|
163
|
+
for (const child of children){
|
|
164
|
+
if (!this.bashOutputMonitor.getOutputs(child.id).length) {
|
|
165
|
+
this.bashOutputMonitor.startMonitoring(child);
|
|
166
|
+
}
|
|
167
|
+
// Ensure failure detection is active
|
|
168
|
+
if (!this.failureDetectionTimers.has(child.id)) {
|
|
169
|
+
this.startFailureDetection(child);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return children;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get all processes at specific nesting level
|
|
176
|
+
*
|
|
177
|
+
* @param level - Nesting level to query
|
|
178
|
+
* @returns Array of BackgroundProcess at specified level
|
|
179
|
+
*/ getProcessesAtLevel(level) {
|
|
180
|
+
return this.backgroundOrchestrator.getProcessesAtLevel(level);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Get child processes for a specific agent
|
|
184
|
+
*
|
|
185
|
+
* @param agentId - Agent ID to get children for
|
|
186
|
+
* @returns Array of child BackgroundProcess instances
|
|
187
|
+
*/ getChildrenForAgent(agentId) {
|
|
188
|
+
const process = this.agentToProcessMap.get(agentId);
|
|
189
|
+
if (!process) {
|
|
190
|
+
return [];
|
|
191
|
+
}
|
|
192
|
+
return this.backgroundOrchestrator.getChildProcesses(process.id);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Pause background process for agent
|
|
196
|
+
*
|
|
197
|
+
* @param agentId - Agent to pause
|
|
198
|
+
*/ async pauseAgent(agentId) {
|
|
199
|
+
const process = this.agentToProcessMap.get(agentId);
|
|
200
|
+
if (!process) {
|
|
201
|
+
throw new Error(`No background process for agent ${agentId}`);
|
|
202
|
+
}
|
|
203
|
+
await this.backgroundOrchestrator.pauseProcess(process.id);
|
|
204
|
+
this.logger.info('Agent background process paused', {
|
|
205
|
+
agentId,
|
|
206
|
+
processId: process.id
|
|
207
|
+
});
|
|
208
|
+
this.emit('agent:paused', {
|
|
209
|
+
agentId,
|
|
210
|
+
processId: process.id
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Resume background process for agent
|
|
215
|
+
*
|
|
216
|
+
* @param agentId - Agent to resume
|
|
217
|
+
*/ async resumeAgent(agentId) {
|
|
218
|
+
const process = this.agentToProcessMap.get(agentId);
|
|
219
|
+
if (!process) {
|
|
220
|
+
throw new Error(`No background process for agent ${agentId}`);
|
|
221
|
+
}
|
|
222
|
+
await this.backgroundOrchestrator.resumeProcess(process.id);
|
|
223
|
+
this.logger.info('Agent background process resumed', {
|
|
224
|
+
agentId,
|
|
225
|
+
processId: process.id
|
|
226
|
+
});
|
|
227
|
+
this.emit('agent:resumed', {
|
|
228
|
+
agentId,
|
|
229
|
+
processId: process.id
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Terminate agent and all children (cascade)
|
|
234
|
+
*
|
|
235
|
+
* @param agentId - Agent to terminate
|
|
236
|
+
*/ async terminateAgent(agentId) {
|
|
237
|
+
const process = this.agentToProcessMap.get(agentId);
|
|
238
|
+
if (!process) {
|
|
239
|
+
this.logger.warn('No background process found for agent', {
|
|
240
|
+
agentId
|
|
241
|
+
});
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
// Clear failure detection timer
|
|
245
|
+
this.clearFailureDetection(process.id);
|
|
246
|
+
// Terminate process (cascade to children)
|
|
247
|
+
await this.backgroundOrchestrator.terminateProcess(process.id);
|
|
248
|
+
// Stop monitoring
|
|
249
|
+
this.bashOutputMonitor.stopMonitoring(process.id);
|
|
250
|
+
// Clean up mappings
|
|
251
|
+
this.agentToProcessMap.delete(agentId);
|
|
252
|
+
this.processToAgentMap.delete(process.id);
|
|
253
|
+
this.logger.info('Agent background process terminated', {
|
|
254
|
+
agentId,
|
|
255
|
+
processId: process.id
|
|
256
|
+
});
|
|
257
|
+
this.emit('agent:terminated', {
|
|
258
|
+
agentId,
|
|
259
|
+
processId: process.id
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Terminate all processes at level and deeper (cascade)
|
|
264
|
+
*
|
|
265
|
+
* @param level - Starting level for termination
|
|
266
|
+
*/ async terminateLevel(level) {
|
|
267
|
+
this.logger.info(`Terminating all processes at level ${level} and deeper`);
|
|
268
|
+
const processes = this.backgroundOrchestrator.getProcessesAtLevel(level);
|
|
269
|
+
for (const process of processes){
|
|
270
|
+
const agentId = this.processToAgentMap.get(process.id);
|
|
271
|
+
if (agentId) {
|
|
272
|
+
await this.terminateAgent(agentId);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
await this.backgroundOrchestrator.terminateLevel(level);
|
|
276
|
+
this.logger.info(`Terminated all processes at level ${level}+`);
|
|
277
|
+
this.emit('level:terminated', {
|
|
278
|
+
level
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get background process for agent
|
|
283
|
+
*
|
|
284
|
+
* @param agentId - Agent ID
|
|
285
|
+
* @returns BackgroundProcess or undefined
|
|
286
|
+
*/ getProcessForAgent(agentId) {
|
|
287
|
+
return this.agentToProcessMap.get(agentId);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Get agent ID for background process
|
|
291
|
+
*
|
|
292
|
+
* @param processId - Process ID
|
|
293
|
+
* @returns Agent ID or undefined
|
|
294
|
+
*/ getAgentForProcess(processId) {
|
|
295
|
+
return this.processToAgentMap.get(processId);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Get bash output for agent process
|
|
299
|
+
*
|
|
300
|
+
* @param agentId - Agent ID
|
|
301
|
+
* @returns Combined stdout or empty string
|
|
302
|
+
*/ getAgentOutput(agentId) {
|
|
303
|
+
const process = this.agentToProcessMap.get(agentId);
|
|
304
|
+
if (!process) {
|
|
305
|
+
return '';
|
|
306
|
+
}
|
|
307
|
+
return this.bashOutputMonitor.getCombinedStdout(process.id);
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Get bash stderr for agent process
|
|
311
|
+
*
|
|
312
|
+
* @param agentId - Agent ID
|
|
313
|
+
* @returns Combined stderr or empty string
|
|
314
|
+
*/ getAgentErrors(agentId) {
|
|
315
|
+
const process = this.agentToProcessMap.get(agentId);
|
|
316
|
+
if (!process) {
|
|
317
|
+
return '';
|
|
318
|
+
}
|
|
319
|
+
return this.bashOutputMonitor.getCombinedStderr(process.id);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Get integration statistics
|
|
323
|
+
*/ getStats() {
|
|
324
|
+
const bgStats = this.backgroundOrchestrator.getStats();
|
|
325
|
+
const monitorStats = this.bashOutputMonitor.getStats();
|
|
326
|
+
return {
|
|
327
|
+
backgroundOrchestrator: bgStats,
|
|
328
|
+
bashOutputMonitor: monitorStats,
|
|
329
|
+
agentMappings: this.agentToProcessMap.size,
|
|
330
|
+
activeFailureDetection: this.failureDetectionTimers.size
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Cleanup and shutdown integration
|
|
335
|
+
*/ async cleanup() {
|
|
336
|
+
this.logger.info('Cleaning up hierarchical background integration...');
|
|
337
|
+
// Clear all failure detection timers
|
|
338
|
+
for (const [processId, timer] of Array.from(this.failureDetectionTimers.entries())){
|
|
339
|
+
clearTimeout(timer);
|
|
340
|
+
}
|
|
341
|
+
this.failureDetectionTimers.clear();
|
|
342
|
+
// Cleanup background orchestrator
|
|
343
|
+
await this.backgroundOrchestrator.cleanup();
|
|
344
|
+
// Cleanup bash output monitor
|
|
345
|
+
this.bashOutputMonitor.cleanup();
|
|
346
|
+
// Clear mappings
|
|
347
|
+
this.agentToProcessMap.clear();
|
|
348
|
+
this.processToAgentMap.clear();
|
|
349
|
+
this.isInitialized = false;
|
|
350
|
+
this.logger.info('Hierarchical background integration cleanup complete');
|
|
351
|
+
this.emit('integration:cleanup');
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Start failure detection for background process
|
|
355
|
+
* Detects failures within 500ms
|
|
356
|
+
*/ startFailureDetection(process) {
|
|
357
|
+
const timer = setTimeout(()=>{
|
|
358
|
+
// Check if process is still running
|
|
359
|
+
if (process.status === 'running') {
|
|
360
|
+
const latestOutput = this.bashOutputMonitor.getLatestOutput(process.id);
|
|
361
|
+
const stderr = this.bashOutputMonitor.getCombinedStderr(process.id);
|
|
362
|
+
// Check for error indicators
|
|
363
|
+
if (stderr && stderr.length > 0) {
|
|
364
|
+
this.handleProcessFailure(process.id, new Error(`Process stderr: ${stderr.substring(0, 200)}`));
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
// Re-schedule failure detection
|
|
368
|
+
this.failureDetectionTimers.delete(process.id);
|
|
369
|
+
if (process.status === 'running') {
|
|
370
|
+
this.startFailureDetection(process);
|
|
371
|
+
}
|
|
372
|
+
}, this.config.failureDetectionTimeout);
|
|
373
|
+
this.failureDetectionTimers.set(process.id, timer);
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Clear failure detection timer
|
|
377
|
+
*/ clearFailureDetection(processId) {
|
|
378
|
+
const timer = this.failureDetectionTimers.get(processId);
|
|
379
|
+
if (timer) {
|
|
380
|
+
clearTimeout(timer);
|
|
381
|
+
this.failureDetectionTimers.delete(processId);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Handle process failure
|
|
386
|
+
*/ async handleProcessFailure(processId, error) {
|
|
387
|
+
const agentId = this.processToAgentMap.get(processId);
|
|
388
|
+
this.logger.error('Background process failed', {
|
|
389
|
+
processId,
|
|
390
|
+
agentId,
|
|
391
|
+
error: error.message
|
|
392
|
+
});
|
|
393
|
+
// Mark process as failed in orchestrator
|
|
394
|
+
await this.backgroundOrchestrator.failProcess(processId, error);
|
|
395
|
+
// Clear failure detection
|
|
396
|
+
this.clearFailureDetection(processId);
|
|
397
|
+
this.emit('process:failed', {
|
|
398
|
+
processId,
|
|
399
|
+
agentId,
|
|
400
|
+
error: error.message
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Setup event handlers for integration
|
|
405
|
+
*/ setupEventHandlers() {
|
|
406
|
+
// BackgroundOrchestrator events
|
|
407
|
+
this.backgroundOrchestrator.on('process:spawned', (process)=>{
|
|
408
|
+
this.logger.debug('Background process spawned', {
|
|
409
|
+
processId: process.id
|
|
410
|
+
});
|
|
411
|
+
});
|
|
412
|
+
this.backgroundOrchestrator.on('process:terminated', (process)=>{
|
|
413
|
+
this.logger.debug('Background process terminated', {
|
|
414
|
+
processId: process.id
|
|
415
|
+
});
|
|
416
|
+
this.clearFailureDetection(process.id);
|
|
417
|
+
});
|
|
418
|
+
this.backgroundOrchestrator.on('process:failed', (process, error)=>{
|
|
419
|
+
this.logger.error('Background process failed event', {
|
|
420
|
+
processId: process.id,
|
|
421
|
+
error: error.message
|
|
422
|
+
});
|
|
423
|
+
this.clearFailureDetection(process.id);
|
|
424
|
+
});
|
|
425
|
+
// BashOutputMonitor events
|
|
426
|
+
this.bashOutputMonitor.on('process:error', ({ processId, stderr })=>{
|
|
427
|
+
this.logger.warn('Process stderr output detected', {
|
|
428
|
+
processId,
|
|
429
|
+
stderr: stderr.substring(0, 200)
|
|
430
|
+
});
|
|
431
|
+
});
|
|
432
|
+
this.bashOutputMonitor.on('monitoring:completed', ({ processId, exitCode })=>{
|
|
433
|
+
this.logger.debug('Process monitoring completed', {
|
|
434
|
+
processId,
|
|
435
|
+
exitCode
|
|
436
|
+
});
|
|
437
|
+
if (exitCode !== 0) {
|
|
438
|
+
const error = new Error(`Process exited with code ${exitCode}`);
|
|
439
|
+
this.handleProcessFailure(processId, error);
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Factory function to create integration layer
|
|
446
|
+
*/ export function createHierarchicalBackgroundIntegration(coordinator, config) {
|
|
447
|
+
return new HierarchicalBackgroundIntegration(coordinator, config);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
//# sourceMappingURL=hierarchical-background-integration.js.map
|
package/.claude-flow-novice/dist/src/coordination/v2/sdk/hierarchical-background-integration.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/coordination/v2/sdk/hierarchical-background-integration.ts"],"names":["EventEmitter","BackgroundOrchestrator","BashOutputMonitor","Logger","HierarchicalBackgroundIntegration","logger","config","coordinator","backgroundOrchestrator","bashOutputMonitor","agentToProcessMap","Map","processToAgentMap","failureDetectionTimers","isInitialized","level","format","destination","component","maxLevels","maxProcessesPerLevel","monitoringInterval","failureDetectionTimeout","autoCleanup","cleanupRetentionMs","initialize","warn","info","setupEventHandlers","emit","spawnChildAgent","parentAgent","childConfig","Error","parentId","id","childId","agentId","agent","type","priority","sessionId","capabilities","metadata","parentAgentId","parentLevel","coordinatorIntegration","parentProcess","get","parentProcessId","childProcess","spawnBackground","set","startMonitoring","startFailureDetection","processId","monitorChildren","children","getChildProcesses","debug","length","child","getOutputs","has","getProcessesAtLevel","getChildrenForAgent","process","pauseAgent","pauseProcess","resumeAgent","resumeProcess","terminateAgent","clearFailureDetection","terminateProcess","stopMonitoring","delete","terminateLevel","processes","getProcessForAgent","getAgentForProcess","getAgentOutput","getCombinedStdout","getAgentErrors","getCombinedStderr","getStats","bgStats","monitorStats","agentMappings","size","activeFailureDetection","cleanup","timer","Array","from","entries","clearTimeout","clear","setTimeout","status","latestOutput","getLatestOutput","stderr","handleProcessFailure","substring","error","message","failProcess","on","exitCode","createHierarchicalBackgroundIntegration"],"mappings":"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"}
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
* Agent Coordination V2 - SDK Module Exports
|
|
3
3
|
*/ export { CheckpointManager, CheckpointData, CheckpointMetrics, RestoreResult } from './checkpoint-manager.js';
|
|
4
4
|
export { QueryController, QueryControllerConfig } from './query-controller.js';
|
|
5
|
+
export { HelpCoordinator, HelpCoordinatorConfig, HelpCoordinatorMetrics, HelperAgent, HelpRequest, HelpAssignment } from './help-coordinator.js';
|
|
5
6
|
export { FilesystemArtifactStorage } from './artifact-storage.js';
|
|
6
7
|
export { StateSDKIntegration, StateSDKIntegrationConfig, StateSDKMetrics, StateChangeEventData } from './state-sdk-integration.js';
|
|
8
|
+
export { BackgroundOrchestrator, BackgroundOrchestratorConfig, ProcessStats } from './background-orchestrator.js';
|
|
9
|
+
export { BashOutputMonitor, ProcessOutput } from './bash-output-monitor.js';
|
|
10
|
+
export { HierarchicalBackgroundIntegration, HierarchicalBackgroundConfig, createHierarchicalBackgroundIntegration } from './hierarchical-background-integration.js';
|
|
11
|
+
export { SessionPoolOptimizer, SessionPoolConfig, PooledSession, PoolMetrics, SessionRequest } from './session-pool-optimizer.js';
|
|
7
12
|
|
|
8
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/coordination/v2/sdk/index.ts"],"names":["CheckpointManager","CheckpointData","CheckpointMetrics","RestoreResult","QueryController","QueryControllerConfig","FilesystemArtifactStorage","StateSDKIntegration","StateSDKIntegrationConfig","StateSDKMetrics","StateChangeEventData"],"mappings":"AAAA;;CAEC,GAED,SACEA,iBAAiB,EACjBC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,QACR,0BAA0B;AAEjC,SACEC,eAAe,EACfC,qBAAqB,QAChB,wBAAwB;AAE/B,SAASC,yBAAyB,QAAQ,wBAAwB;AAElE,SACEC,mBAAmB,EACnBC,yBAAyB,EACzBC,eAAe,EACfC,oBAAoB,QACf,6BAA6B"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/coordination/v2/sdk/index.ts"],"names":["CheckpointManager","CheckpointData","CheckpointMetrics","RestoreResult","QueryController","QueryControllerConfig","HelpCoordinator","HelpCoordinatorConfig","HelpCoordinatorMetrics","HelperAgent","HelpRequest","HelpAssignment","FilesystemArtifactStorage","StateSDKIntegration","StateSDKIntegrationConfig","StateSDKMetrics","StateChangeEventData","BackgroundOrchestrator","BackgroundOrchestratorConfig","ProcessStats","BashOutputMonitor","ProcessOutput","HierarchicalBackgroundIntegration","HierarchicalBackgroundConfig","createHierarchicalBackgroundIntegration","SessionPoolOptimizer","SessionPoolConfig","PooledSession","PoolMetrics","SessionRequest"],"mappings":"AAAA;;CAEC,GAED,SACEA,iBAAiB,EACjBC,cAAc,EACdC,iBAAiB,EACjBC,aAAa,QACR,0BAA0B;AAEjC,SACEC,eAAe,EACfC,qBAAqB,QAChB,wBAAwB;AAE/B,SACEC,eAAe,EACfC,qBAAqB,EACrBC,sBAAsB,EACtBC,WAAW,EACXC,WAAW,EACXC,cAAc,QACT,wBAAwB;AAE/B,SAASC,yBAAyB,QAAQ,wBAAwB;AAElE,SACEC,mBAAmB,EACnBC,yBAAyB,EACzBC,eAAe,EACfC,oBAAoB,QACf,6BAA6B;AAEpC,SACEC,sBAAsB,EACtBC,4BAA4B,EAC5BC,YAAY,QACP,+BAA+B;AAEtC,SACEC,iBAAiB,EACjBC,aAAa,QACR,2BAA2B;AAElC,SACEC,iCAAiC,EACjCC,4BAA4B,EAC5BC,uCAAuC,QAClC,2CAA2C;AAElD,SACEC,oBAAoB,EACpBC,iBAAiB,EACjBC,aAAa,EACbC,WAAW,EACXC,cAAc,QACT,8BAA8B"}
|