@claude-flow/cli 3.0.0-alpha.28 → 3.0.0-alpha.30
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/dist/src/commands/daemon.d.ts.map +1 -1
- package/dist/src/commands/daemon.js +33 -9
- package/dist/src/commands/daemon.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +28 -6
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/statusline-generator.d.ts +6 -0
- package/dist/src/init/statusline-generator.d.ts.map +1 -1
- package/dist/src/init/statusline-generator.js +142 -73
- package/dist/src/init/statusline-generator.js.map +1 -1
- package/dist/src/services/container-worker-pool.d.ts +197 -0
- package/dist/src/services/container-worker-pool.d.ts.map +1 -0
- package/dist/src/services/container-worker-pool.js +581 -0
- package/dist/src/services/container-worker-pool.js.map +1 -0
- package/dist/src/services/headless-worker-executor.d.ts +304 -0
- package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
- package/dist/src/services/headless-worker-executor.js +997 -0
- package/dist/src/services/headless-worker-executor.js.map +1 -0
- package/dist/src/services/index.d.ts +6 -0
- package/dist/src/services/index.d.ts.map +1 -1
- package/dist/src/services/index.js +5 -0
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/worker-daemon.d.ts +55 -5
- package/dist/src/services/worker-daemon.d.ts.map +1 -1
- package/dist/src/services/worker-daemon.js +191 -13
- package/dist/src/services/worker-daemon.js.map +1 -1
- package/dist/src/services/worker-queue.d.ts +194 -0
- package/dist/src/services/worker-queue.d.ts.map +1 -0
- package/dist/src/services/worker-queue.js +511 -0
- package/dist/src/services/worker-queue.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusline-generator.js","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH
|
|
1
|
+
{"version":3,"file":"statusline-generator.js","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAoB;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAElC,OAAO;;;;;;;;;;;;;;aAcI,MAAM,CAAC,OAAO;kBACT,MAAM,CAAC,YAAY;kBACnB,MAAM,CAAC,YAAY;eACtB,MAAM,CAAC,SAAS;eAChB,MAAM,CAAC,SAAS;qBACV,MAAM,CAAC,eAAe;qBACtB,MAAM,CAAC,eAAe;eAC5B,OAAO,CAAC,OAAO,CAAC,SAAS;eACzB,OAAO,CAAC,OAAO,CAAC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6MtC,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;CAqBR,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container Worker Pool
|
|
3
|
+
* Docker-based worker pool for high-throughput headless execution.
|
|
4
|
+
*
|
|
5
|
+
* ADR-020: Headless Worker Integration Architecture - Phase 3
|
|
6
|
+
* - Manages pool of Docker containers for isolated worker execution
|
|
7
|
+
* - Supports dynamic scaling based on workload
|
|
8
|
+
* - Provides container lifecycle management
|
|
9
|
+
* - Integrates with WorkerQueue for task distribution
|
|
10
|
+
*
|
|
11
|
+
* Key Features:
|
|
12
|
+
* - Container pooling with configurable size
|
|
13
|
+
* - Health checking and auto-recovery
|
|
14
|
+
* - Resource limits (CPU, memory)
|
|
15
|
+
* - Volume mounting for workspace access
|
|
16
|
+
* - Network isolation per worker type
|
|
17
|
+
*/
|
|
18
|
+
import { EventEmitter } from 'events';
|
|
19
|
+
import type { HeadlessWorkerType, HeadlessExecutionResult, SandboxMode } from './headless-worker-executor.js';
|
|
20
|
+
/**
|
|
21
|
+
* Container state
|
|
22
|
+
*/
|
|
23
|
+
export type ContainerState = 'creating' | 'ready' | 'busy' | 'unhealthy' | 'terminated';
|
|
24
|
+
/**
|
|
25
|
+
* Container info
|
|
26
|
+
*/
|
|
27
|
+
export interface ContainerInfo {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
state: ContainerState;
|
|
31
|
+
createdAt: Date;
|
|
32
|
+
lastUsedAt?: Date;
|
|
33
|
+
workerType?: HeadlessWorkerType;
|
|
34
|
+
executionCount: number;
|
|
35
|
+
healthCheckFailures: number;
|
|
36
|
+
pid?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Container pool configuration
|
|
40
|
+
*/
|
|
41
|
+
export interface ContainerPoolConfig {
|
|
42
|
+
/** Maximum number of containers in the pool */
|
|
43
|
+
maxContainers: number;
|
|
44
|
+
/** Minimum number of containers to keep warm */
|
|
45
|
+
minContainers: number;
|
|
46
|
+
/** Docker image to use */
|
|
47
|
+
image: string;
|
|
48
|
+
/** Container resource limits */
|
|
49
|
+
resources: {
|
|
50
|
+
cpus: string;
|
|
51
|
+
memory: string;
|
|
52
|
+
};
|
|
53
|
+
/** Health check interval in ms */
|
|
54
|
+
healthCheckIntervalMs: number;
|
|
55
|
+
/** Container idle timeout in ms */
|
|
56
|
+
idleTimeoutMs: number;
|
|
57
|
+
/** Workspace volume mount path */
|
|
58
|
+
workspacePath: string;
|
|
59
|
+
/** State persistence path */
|
|
60
|
+
statePath: string;
|
|
61
|
+
/** Network name for container isolation */
|
|
62
|
+
network?: string;
|
|
63
|
+
/** Environment variables for containers */
|
|
64
|
+
env?: Record<string, string>;
|
|
65
|
+
/** Default sandbox mode */
|
|
66
|
+
defaultSandbox: SandboxMode;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Container execution options
|
|
70
|
+
*/
|
|
71
|
+
export interface ContainerExecutionOptions {
|
|
72
|
+
workerType: HeadlessWorkerType;
|
|
73
|
+
prompt: string;
|
|
74
|
+
contextPatterns?: string[];
|
|
75
|
+
sandbox?: SandboxMode;
|
|
76
|
+
model?: string;
|
|
77
|
+
timeoutMs?: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Pool status
|
|
81
|
+
*/
|
|
82
|
+
export interface ContainerPoolStatus {
|
|
83
|
+
totalContainers: number;
|
|
84
|
+
readyContainers: number;
|
|
85
|
+
busyContainers: number;
|
|
86
|
+
unhealthyContainers: number;
|
|
87
|
+
queuedTasks: number;
|
|
88
|
+
containers: ContainerInfo[];
|
|
89
|
+
dockerAvailable: boolean;
|
|
90
|
+
lastHealthCheck?: Date;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* ContainerWorkerPool - Manages Docker containers for headless worker execution
|
|
94
|
+
*/
|
|
95
|
+
export declare class ContainerWorkerPool extends EventEmitter {
|
|
96
|
+
private config;
|
|
97
|
+
private projectRoot;
|
|
98
|
+
private containers;
|
|
99
|
+
private taskQueue;
|
|
100
|
+
private healthCheckTimer?;
|
|
101
|
+
private idleCheckTimer?;
|
|
102
|
+
private dockerAvailable;
|
|
103
|
+
private initialized;
|
|
104
|
+
private isShuttingDown;
|
|
105
|
+
private exitHandlersRegistered;
|
|
106
|
+
constructor(projectRoot: string, config?: Partial<ContainerPoolConfig>);
|
|
107
|
+
/**
|
|
108
|
+
* Initialize the container pool
|
|
109
|
+
*/
|
|
110
|
+
initialize(): Promise<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Register process exit handlers to clean up containers
|
|
113
|
+
*/
|
|
114
|
+
private registerExitHandlers;
|
|
115
|
+
/**
|
|
116
|
+
* Execute a worker in a container
|
|
117
|
+
*/
|
|
118
|
+
execute(options: ContainerExecutionOptions): Promise<HeadlessExecutionResult>;
|
|
119
|
+
/**
|
|
120
|
+
* Scale pool for batch execution
|
|
121
|
+
*/
|
|
122
|
+
scaleForBatch(workerCount: number): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Get pool status
|
|
125
|
+
*/
|
|
126
|
+
getStatus(): ContainerPoolStatus;
|
|
127
|
+
/**
|
|
128
|
+
* Shutdown the pool
|
|
129
|
+
*/
|
|
130
|
+
shutdown(): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Check if Docker is available (async)
|
|
133
|
+
*/
|
|
134
|
+
private checkDockerAvailable;
|
|
135
|
+
/**
|
|
136
|
+
* Ensure the container image exists (async)
|
|
137
|
+
*/
|
|
138
|
+
private ensureImage;
|
|
139
|
+
/**
|
|
140
|
+
* Create a new container
|
|
141
|
+
*/
|
|
142
|
+
private createContainer;
|
|
143
|
+
/**
|
|
144
|
+
* Terminate a container (async)
|
|
145
|
+
*/
|
|
146
|
+
private terminateContainer;
|
|
147
|
+
/**
|
|
148
|
+
* Get a ready container
|
|
149
|
+
*/
|
|
150
|
+
private getReadyContainer;
|
|
151
|
+
/**
|
|
152
|
+
* Scale to minimum containers
|
|
153
|
+
*/
|
|
154
|
+
private scaleToMinimum;
|
|
155
|
+
/**
|
|
156
|
+
* Execute worker in a specific container
|
|
157
|
+
*/
|
|
158
|
+
private executeInContainer;
|
|
159
|
+
/**
|
|
160
|
+
* Execute command in container
|
|
161
|
+
*/
|
|
162
|
+
private execInContainer;
|
|
163
|
+
/**
|
|
164
|
+
* Build worker command for container execution
|
|
165
|
+
*/
|
|
166
|
+
private buildWorkerCommand;
|
|
167
|
+
/**
|
|
168
|
+
* Process queued tasks
|
|
169
|
+
*/
|
|
170
|
+
private processQueue;
|
|
171
|
+
/**
|
|
172
|
+
* Start health check timer
|
|
173
|
+
*/
|
|
174
|
+
private startHealthChecks;
|
|
175
|
+
/**
|
|
176
|
+
* Run health checks on all containers
|
|
177
|
+
*/
|
|
178
|
+
private runHealthChecks;
|
|
179
|
+
/**
|
|
180
|
+
* Start idle check timer
|
|
181
|
+
*/
|
|
182
|
+
private startIdleChecks;
|
|
183
|
+
/**
|
|
184
|
+
* Terminate idle containers above minimum
|
|
185
|
+
*/
|
|
186
|
+
private runIdleChecks;
|
|
187
|
+
/**
|
|
188
|
+
* Try to parse JSON from output
|
|
189
|
+
*/
|
|
190
|
+
private tryParseJson;
|
|
191
|
+
/**
|
|
192
|
+
* Create an error result
|
|
193
|
+
*/
|
|
194
|
+
private createErrorResult;
|
|
195
|
+
}
|
|
196
|
+
export default ContainerWorkerPool;
|
|
197
|
+
//# sourceMappingURL=container-worker-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-worker-pool.d.ts","sourceRoot":"","sources":["../../../src/services/container-worker-pool.ts"],"names":[],"mappings":"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"}
|