agentic-qe 2.6.0 → 2.6.1

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +1 -1
  3. package/dist/agents/pool/AgentPool.d.ts +112 -0
  4. package/dist/agents/pool/AgentPool.d.ts.map +1 -0
  5. package/dist/agents/pool/AgentPool.js +573 -0
  6. package/dist/agents/pool/AgentPool.js.map +1 -0
  7. package/dist/agents/pool/QEAgentPoolFactory.d.ts +118 -0
  8. package/dist/agents/pool/QEAgentPoolFactory.d.ts.map +1 -0
  9. package/dist/agents/pool/QEAgentPoolFactory.js +251 -0
  10. package/dist/agents/pool/QEAgentPoolFactory.js.map +1 -0
  11. package/dist/agents/pool/index.d.ts +34 -0
  12. package/dist/agents/pool/index.d.ts.map +1 -0
  13. package/dist/agents/pool/index.js +44 -0
  14. package/dist/agents/pool/index.js.map +1 -0
  15. package/dist/agents/pool/types.d.ts +227 -0
  16. package/dist/agents/pool/types.d.ts.map +1 -0
  17. package/dist/agents/pool/types.js +28 -0
  18. package/dist/agents/pool/types.js.map +1 -0
  19. package/dist/mcp/handlers/agent-spawn.d.ts +71 -5
  20. package/dist/mcp/handlers/agent-spawn.d.ts.map +1 -1
  21. package/dist/mcp/handlers/agent-spawn.js +336 -110
  22. package/dist/mcp/handlers/agent-spawn.js.map +1 -1
  23. package/dist/mcp/handlers/fleet-init.d.ts +24 -0
  24. package/dist/mcp/handlers/fleet-init.d.ts.map +1 -1
  25. package/dist/mcp/handlers/fleet-init.js +56 -4
  26. package/dist/mcp/handlers/fleet-init.js.map +1 -1
  27. package/dist/mcp/server-instructions.d.ts +1 -1
  28. package/dist/mcp/server-instructions.js +1 -1
  29. package/dist/memory/HNSWPatternStore.d.ts.map +1 -1
  30. package/dist/memory/HNSWPatternStore.js.map +1 -1
  31. package/dist/plugins/BasePlugin.d.ts +111 -0
  32. package/dist/plugins/BasePlugin.d.ts.map +1 -0
  33. package/dist/plugins/BasePlugin.js +154 -0
  34. package/dist/plugins/BasePlugin.js.map +1 -0
  35. package/dist/plugins/PluginManager.d.ts +145 -0
  36. package/dist/plugins/PluginManager.d.ts.map +1 -0
  37. package/dist/plugins/PluginManager.js +862 -0
  38. package/dist/plugins/PluginManager.js.map +1 -0
  39. package/dist/plugins/adapters/McpToolsPlugin.d.ts +98 -0
  40. package/dist/plugins/adapters/McpToolsPlugin.d.ts.map +1 -0
  41. package/dist/plugins/adapters/McpToolsPlugin.js +518 -0
  42. package/dist/plugins/adapters/McpToolsPlugin.js.map +1 -0
  43. package/dist/plugins/adapters/PlaywrightPlugin.d.ts +63 -0
  44. package/dist/plugins/adapters/PlaywrightPlugin.d.ts.map +1 -0
  45. package/dist/plugins/adapters/PlaywrightPlugin.js +451 -0
  46. package/dist/plugins/adapters/PlaywrightPlugin.js.map +1 -0
  47. package/dist/plugins/adapters/VitestPlugin.d.ts +74 -0
  48. package/dist/plugins/adapters/VitestPlugin.d.ts.map +1 -0
  49. package/dist/plugins/adapters/VitestPlugin.js +589 -0
  50. package/dist/plugins/adapters/VitestPlugin.js.map +1 -0
  51. package/dist/plugins/adapters/index.d.ts +8 -0
  52. package/dist/plugins/adapters/index.d.ts.map +1 -0
  53. package/dist/plugins/adapters/index.js +17 -0
  54. package/dist/plugins/adapters/index.js.map +1 -0
  55. package/dist/plugins/index.d.ts +32 -0
  56. package/dist/plugins/index.d.ts.map +1 -0
  57. package/dist/plugins/index.js +48 -0
  58. package/dist/plugins/index.js.map +1 -0
  59. package/dist/plugins/types.d.ts +528 -0
  60. package/dist/plugins/types.d.ts.map +1 -0
  61. package/dist/plugins/types.js +61 -0
  62. package/dist/plugins/types.js.map +1 -0
  63. package/package.json +4 -1
@@ -5,115 +5,265 @@
5
5
  * Handles spawning specialized QE agents with specific capabilities.
6
6
  * Coordinates with Claude Flow for agent lifecycle management.
7
7
  *
8
- * @version 1.0.0
8
+ * Phase 3 D1: Integrated with AgentPool for 16x spawn speedup
9
+ *
10
+ * @version 2.0.0
9
11
  * @author Agentic QE Team
10
12
  */
11
13
  Object.defineProperty(exports, "__esModule", { value: true });
12
14
  exports.AgentSpawnHandler = void 0;
13
15
  const base_handler_js_1 = require("./base-handler.js");
14
16
  const SecureRandom_js_1 = require("../../utils/SecureRandom.js");
17
+ const index_js_1 = require("../../agents/pool/index.js");
18
+ const index_js_2 = require("../../types/index.js");
19
+ const DEFAULT_SPAWN_POOL_CONFIG = {
20
+ enabled: true,
21
+ warmupOnInit: false, // Will be enabled via fleet init
22
+ warmupTypes: [
23
+ index_js_2.QEAgentType.TEST_GENERATOR,
24
+ index_js_2.QEAgentType.COVERAGE_ANALYZER,
25
+ index_js_2.QEAgentType.QUALITY_GATE,
26
+ ],
27
+ debug: false,
28
+ };
15
29
  class AgentSpawnHandler extends base_handler_js_1.BaseHandler {
16
- constructor(registry, hookExecutor) {
30
+ constructor(registry, hookExecutor, poolConfig = {}) {
17
31
  super();
18
32
  this.activeAgents = new Map();
19
33
  this.agentTypeConfigs = new Map();
34
+ // Pool integration (Phase 3 D1)
35
+ this.pool = null;
36
+ this.poolInitPromise = null;
37
+ this.pooledAgentMap = new Map(); // agentId -> poolId
38
+ // Spawn metrics for benchmarking
39
+ this.spawnMetrics = {
40
+ pooledSpawns: 0,
41
+ directSpawns: 0,
42
+ totalPooledTimeMs: 0,
43
+ totalDirectTimeMs: 0,
44
+ };
20
45
  this.registry = registry;
21
46
  this.hookExecutor = hookExecutor;
47
+ this.poolConfig = { ...DEFAULT_SPAWN_POOL_CONFIG, ...poolConfig };
22
48
  this.initializeAgentTypeConfigs();
49
+ // Initialize pool if enabled
50
+ if (this.poolConfig.enabled) {
51
+ this.initializePool();
52
+ }
53
+ }
54
+ /**
55
+ * Initialize the agent pool
56
+ */
57
+ async initializePool() {
58
+ if (this.poolInitPromise) {
59
+ return this.poolInitPromise;
60
+ }
61
+ this.poolInitPromise = (async () => {
62
+ try {
63
+ // Create agent creator that uses the registry
64
+ const agentCreator = async (type) => {
65
+ const { agent } = await this.registry.spawnAgent(type, {
66
+ name: `pooled-${type}-${Date.now()}`,
67
+ description: `Pooled ${type} agent`,
68
+ capabilities: this.getDefaultCapabilities(type),
69
+ });
70
+ return agent;
71
+ };
72
+ this.pool = await (0, index_js_1.createQEAgentPool)(agentCreator, { enableLearning: true, debug: this.poolConfig.debug }, { debug: this.poolConfig.debug });
73
+ if (this.poolConfig.warmupOnInit) {
74
+ await this.warmupPool();
75
+ }
76
+ this.log('info', 'Agent pool initialized', {
77
+ enabled: true,
78
+ warmupTypes: this.poolConfig.warmupTypes,
79
+ });
80
+ }
81
+ catch (error) {
82
+ this.log('error', 'Failed to initialize agent pool', {
83
+ error: error instanceof Error ? error.message : String(error),
84
+ });
85
+ this.pool = null;
86
+ }
87
+ })();
88
+ return this.poolInitPromise;
89
+ }
90
+ /**
91
+ * Warm up the pool with pre-allocated agents
92
+ * Called during fleet initialization for optimal performance
93
+ */
94
+ async warmupPool(types) {
95
+ if (!this.pool) {
96
+ await this.initializePool();
97
+ }
98
+ if (!this.pool) {
99
+ this.log('warn', 'Cannot warmup pool - pool not available');
100
+ return;
101
+ }
102
+ const typesToWarm = types || this.poolConfig.warmupTypes;
103
+ this.log('info', 'Warming up agent pool', { types: typesToWarm });
104
+ const startTime = Date.now();
105
+ await this.pool.warmup(typesToWarm);
106
+ const elapsed = Date.now() - startTime;
107
+ this.log('info', 'Pool warmup complete', {
108
+ elapsed: `${elapsed}ms`,
109
+ stats: this.pool.getStats(),
110
+ });
111
+ }
112
+ /**
113
+ * Get pool statistics
114
+ */
115
+ getPoolStats() {
116
+ return this.pool?.getStats() || null;
117
+ }
118
+ /**
119
+ * Get spawn metrics for benchmarking
120
+ */
121
+ getSpawnMetrics() {
122
+ const pooled = this.spawnMetrics.pooledSpawns;
123
+ const direct = this.spawnMetrics.directSpawns;
124
+ return {
125
+ pooledSpawns: pooled,
126
+ directSpawns: direct,
127
+ avgPooledTimeMs: pooled > 0 ? this.spawnMetrics.totalPooledTimeMs / pooled : 0,
128
+ avgDirectTimeMs: direct > 0 ? this.spawnMetrics.totalDirectTimeMs / direct : 0,
129
+ speedupFactor: pooled > 0 && direct > 0
130
+ ? (this.spawnMetrics.totalDirectTimeMs / direct) /
131
+ (this.spawnMetrics.totalPooledTimeMs / pooled)
132
+ : 0,
133
+ poolStats: this.getPoolStats(),
134
+ };
23
135
  }
24
136
  async handle(args) {
25
137
  const requestId = this.generateRequestId();
26
- this.log('info', 'Spawning QE agent', { requestId, spec: args.spec });
138
+ const usePool = args.usePool !== false && this.poolConfig.enabled;
139
+ this.log('info', 'Spawning QE agent', {
140
+ requestId,
141
+ spec: args.spec,
142
+ usePool,
143
+ });
27
144
  try {
28
145
  // Validate required parameters
29
146
  this.validateRequired(args, ['spec']);
30
147
  this.validateAgentSpec(args.spec);
31
- const { result: agentInstance, executionTime } = await this.measureExecutionTime(() => this.spawnAgent(args.spec, args.fleetId));
148
+ const startTime = Date.now();
149
+ let agentInstance;
150
+ // Try pooled spawn first if enabled
151
+ if (usePool && this.pool) {
152
+ agentInstance = await this.spawnFromPool(args.spec, args.fleetId, startTime);
153
+ }
154
+ else {
155
+ agentInstance = await this.spawnDirect(args.spec, args.fleetId, startTime);
156
+ }
157
+ const executionTime = Date.now() - startTime;
32
158
  this.log('info', `Agent spawned successfully in ${executionTime.toFixed(2)}ms`, {
33
159
  agentId: agentInstance.id,
34
160
  type: agentInstance.type,
35
- fleetId: agentInstance.fleetId
161
+ fleetId: agentInstance.fleetId,
162
+ fromPool: agentInstance.poolMeta?.fromPool ?? false,
36
163
  });
37
164
  return this.createSuccessResponse(agentInstance, requestId);
38
165
  }
39
166
  catch (error) {
40
- this.log('error', 'Agent spawn failed', { error: error instanceof Error ? error.message : String(error) });
167
+ this.log('error', 'Agent spawn failed', {
168
+ error: error instanceof Error ? error.message : String(error),
169
+ });
41
170
  return this.createErrorResponse(error instanceof Error ? error.message : 'Agent spawn failed', requestId);
42
171
  }
43
172
  }
44
- initializeAgentTypeConfigs() {
45
- this.agentTypeConfigs.set('test-generator', {
46
- defaultCapabilities: ['unit-test-generation', 'integration-test-generation', 'property-based-testing'],
47
- defaultResources: { memory: 512, cpu: 1, storage: 256 },
48
- specializations: ['boundary-analysis', 'edge-case-detection', 'test-data-synthesis']
49
- });
50
- this.agentTypeConfigs.set('coverage-analyzer', {
51
- defaultCapabilities: ['coverage-analysis', 'gap-identification', 'trend-analysis'],
52
- defaultResources: { memory: 256, cpu: 0.5, storage: 128 },
53
- specializations: ['critical-path-analysis', 'coverage-optimization', 'risk-assessment']
54
- });
55
- this.agentTypeConfigs.set('quality-gate', {
56
- defaultCapabilities: ['quality-metrics', 'threshold-enforcement', 'decision-making'],
57
- defaultResources: { memory: 128, cpu: 0.5, storage: 64 },
58
- specializations: ['composite-metrics', 'trend-monitoring', 'automated-decisions']
59
- });
60
- this.agentTypeConfigs.set('performance-tester', {
61
- defaultCapabilities: ['load-testing', 'stress-testing', 'bottleneck-detection'],
62
- defaultResources: { memory: 1024, cpu: 2, storage: 512 },
63
- specializations: ['resource-monitoring', 'baseline-comparison', 'regression-detection']
64
- });
65
- this.agentTypeConfigs.set('security-scanner', {
66
- defaultCapabilities: ['vulnerability-scanning', 'compliance-checking', 'security-testing'],
67
- defaultResources: { memory: 512, cpu: 1, storage: 256 },
68
- specializations: ['owasp-scanning', 'penetration-testing', 'compliance-validation']
69
- });
70
- this.agentTypeConfigs.set('chaos-engineer', {
71
- defaultCapabilities: ['failure-injection', 'resilience-testing', 'recovery-validation'],
72
- defaultResources: { memory: 256, cpu: 1, storage: 128 },
73
- specializations: ['controlled-chaos', 'blast-radius-control', 'disaster-recovery']
74
- });
75
- this.agentTypeConfigs.set('visual-tester', {
76
- defaultCapabilities: ['visual-regression', 'cross-browser-testing', 'accessibility-testing'],
77
- defaultResources: { memory: 1024, cpu: 1, storage: 1024 },
78
- specializations: ['screenshot-comparison', 'responsive-testing', 'wcag-compliance']
79
- });
80
- }
81
- validateAgentSpec(spec) {
82
- const validTypes = Array.from(this.agentTypeConfigs.keys());
83
- if (!validTypes.includes(spec.type)) {
84
- throw new Error(`Invalid agent type: ${spec.type}. Must be one of: ${validTypes.join(', ')}`);
173
+ /**
174
+ * Spawn agent from pool (fast path)
175
+ */
176
+ async spawnFromPool(spec, fleetId, startTime) {
177
+ const agentType = spec.type;
178
+ try {
179
+ const result = await this.pool.acquire(agentType, {
180
+ timeoutMs: 5000,
181
+ waitIfUnavailable: true,
182
+ });
183
+ const acquisitionTime = Date.now() - startTime;
184
+ this.spawnMetrics.pooledSpawns++;
185
+ this.spawnMetrics.totalPooledTimeMs += acquisitionTime;
186
+ const agent = result.agent.getBaseAgent();
187
+ const agentId = agent.getAgentId().id;
188
+ // Track pool mapping for release
189
+ this.pooledAgentMap.set(agentId, result.meta.poolId);
190
+ // Execute hooks
191
+ await this.hookExecutor.executePreTask({
192
+ description: `Spawning ${spec.type} agent (pooled)`,
193
+ agentType: spec.type,
194
+ });
195
+ // Register with fleet if specified
196
+ if (fleetId) {
197
+ await this.registerWithFleet({
198
+ id: agentId,
199
+ type: spec.type,
200
+ name: spec.name || `${spec.type}-${agentId.split('-').pop()}`,
201
+ capabilities: this.mergeCapabilities(spec),
202
+ status: 'active',
203
+ resources: this.mergeResources(spec),
204
+ fleetId,
205
+ spawnedAt: new Date().toISOString(),
206
+ lastActivity: new Date().toISOString(),
207
+ metrics: { tasksCompleted: 0, averageExecutionTime: 0, successRate: 1.0 },
208
+ }, fleetId);
209
+ }
210
+ await this.hookExecutor.executePostTask({
211
+ taskId: agentId,
212
+ agentType: spec.type,
213
+ results: { status: 'spawned', agentId, fromPool: true },
214
+ });
215
+ const agentInstance = {
216
+ id: agentId,
217
+ type: spec.type,
218
+ name: spec.name || `${spec.type}-${agentId.split('-').pop()}`,
219
+ capabilities: this.mergeCapabilities(spec),
220
+ status: 'active',
221
+ resources: this.mergeResources(spec),
222
+ fleetId,
223
+ spawnedAt: new Date().toISOString(),
224
+ lastActivity: new Date().toISOString(),
225
+ metrics: { tasksCompleted: 0, averageExecutionTime: 0, successRate: 1.0 },
226
+ poolMeta: {
227
+ poolId: result.meta.poolId,
228
+ fromPool: result.fromPool,
229
+ acquisitionTimeMs: result.acquisitionTimeMs,
230
+ },
231
+ };
232
+ this.activeAgents.set(agentId, agentInstance);
233
+ return agentInstance;
85
234
  }
86
- if (!spec.capabilities || spec.capabilities.length === 0) {
87
- throw new Error('Agent must have at least one capability');
235
+ catch (error) {
236
+ // Fall back to direct spawn if pool fails
237
+ this.log('warn', 'Pool acquisition failed, falling back to direct spawn', {
238
+ error: error instanceof Error ? error.message : String(error),
239
+ });
240
+ return this.spawnDirect(spec, fleetId, startTime);
88
241
  }
89
242
  }
90
- async spawnAgent(spec, fleetId) {
243
+ /**
244
+ * Spawn agent directly (legacy path)
245
+ */
246
+ async spawnDirect(spec, fleetId, startTime) {
91
247
  const agentId = `agent-${spec.type}-${Date.now()}-${SecureRandom_js_1.SecureRandom.generateId(3)}`;
92
248
  const typeConfig = this.agentTypeConfigs.get(spec.type);
93
- // Merge capabilities
94
- const capabilities = [
95
- ...typeConfig.defaultCapabilities,
96
- ...spec.capabilities.filter(cap => !typeConfig.defaultCapabilities.includes(cap))
97
- ];
98
- // Merge resources
99
- const resources = {
100
- ...typeConfig.defaultResources,
101
- ...spec.resources
102
- };
249
+ const capabilities = this.mergeCapabilities(spec);
250
+ const resources = this.mergeResources(spec);
103
251
  // Execute pre-task hook
104
252
  await this.hookExecutor.executePreTask({
105
253
  description: `Spawning ${spec.type} agent`,
106
- agentType: spec.type
254
+ agentType: spec.type,
107
255
  });
108
256
  // Spawn agent via registry
109
- // Note: Cast to any to work around BaseAgentConfig type issue in AgentRegistry
110
257
  const { id, agent } = await this.registry.spawnAgent(spec.type, {
111
258
  name: spec.name || `${spec.type}-${agentId.split('-').pop()}`,
112
259
  description: `${spec.type} agent spawned via MCP`,
113
260
  capabilities,
114
261
  resources,
115
- fleetId
262
+ fleetId,
116
263
  });
264
+ const spawnTime = Date.now() - startTime;
265
+ this.spawnMetrics.directSpawns++;
266
+ this.spawnMetrics.totalDirectTimeMs += spawnTime;
117
267
  // Register with Claude Flow if part of a fleet
118
268
  if (fleetId) {
119
269
  await this.registerWithFleet({
@@ -126,24 +276,26 @@ class AgentSpawnHandler extends base_handler_js_1.BaseHandler {
126
276
  fleetId,
127
277
  spawnedAt: new Date().toISOString(),
128
278
  lastActivity: new Date().toISOString(),
129
- metrics: { tasksCompleted: 0, averageExecutionTime: 0, successRate: 1.0 }
279
+ metrics: { tasksCompleted: 0, averageExecutionTime: 0, successRate: 1.0 },
130
280
  }, fleetId);
131
281
  }
132
282
  // Execute post-task hook
133
283
  await this.hookExecutor.executePostTask({
134
284
  taskId: id,
135
285
  agentType: spec.type,
136
- results: { status: 'spawned', agentId: id }
286
+ results: { status: 'spawned', agentId: id },
137
287
  });
138
- // Get agent status and metrics from registry
139
288
  const agentStatus = agent.getStatus();
140
289
  const metrics = this.registry.getAgentMetrics(id);
141
- // Map agent status to instance status
142
- const instanceStatus = agentStatus.status === 'active' ? 'active' :
143
- agentStatus.status === 'idle' ? 'idle' :
144
- agentStatus.status === 'busy' ? 'busy' :
145
- agentStatus.status === 'error' ? 'error' : 'active';
146
- // Create agent instance with real data
290
+ const instanceStatus = agentStatus.status === 'active'
291
+ ? 'active'
292
+ : agentStatus.status === 'idle'
293
+ ? 'idle'
294
+ : agentStatus.status === 'busy'
295
+ ? 'busy'
296
+ : agentStatus.status === 'error'
297
+ ? 'error'
298
+ : 'active';
147
299
  const agentInstance = {
148
300
  id,
149
301
  type: spec.type,
@@ -154,56 +306,106 @@ class AgentSpawnHandler extends base_handler_js_1.BaseHandler {
154
306
  fleetId,
155
307
  spawnedAt: new Date().toISOString(),
156
308
  lastActivity: new Date().toISOString(),
157
- metrics: metrics ? {
158
- tasksCompleted: metrics.tasksCompleted,
159
- averageExecutionTime: metrics.averageExecutionTime,
160
- successRate: 1.0 // Calculate from error count if needed
161
- } : {
162
- tasksCompleted: 0,
163
- averageExecutionTime: 0,
164
- successRate: 1.0
165
- }
309
+ metrics: metrics
310
+ ? {
311
+ tasksCompleted: metrics.tasksCompleted,
312
+ averageExecutionTime: metrics.averageExecutionTime,
313
+ successRate: 1.0,
314
+ }
315
+ : {
316
+ tasksCompleted: 0,
317
+ averageExecutionTime: 0,
318
+ successRate: 1.0,
319
+ },
166
320
  };
167
- // Store agent instance
168
321
  this.activeAgents.set(id, agentInstance);
169
322
  return agentInstance;
170
323
  }
171
- async initializeAgent(agent) {
172
- this.log('info', 'Initializing agent capabilities', {
173
- agentId: agent.id,
174
- type: agent.type,
175
- capabilities: agent.capabilities
324
+ mergeCapabilities(spec) {
325
+ const typeConfig = this.agentTypeConfigs.get(spec.type);
326
+ return [
327
+ ...typeConfig.defaultCapabilities,
328
+ ...spec.capabilities.filter((cap) => !typeConfig.defaultCapabilities.includes(cap)),
329
+ ];
330
+ }
331
+ mergeResources(spec) {
332
+ const typeConfig = this.agentTypeConfigs.get(spec.type);
333
+ return {
334
+ ...typeConfig.defaultResources,
335
+ ...spec.resources,
336
+ };
337
+ }
338
+ getDefaultCapabilities(type) {
339
+ const typeConfig = this.agentTypeConfigs.get(type);
340
+ return typeConfig?.defaultCapabilities || [];
341
+ }
342
+ initializeAgentTypeConfigs() {
343
+ this.agentTypeConfigs.set('test-generator', {
344
+ defaultCapabilities: [
345
+ 'unit-test-generation',
346
+ 'integration-test-generation',
347
+ 'property-based-testing',
348
+ ],
349
+ defaultResources: { memory: 512, cpu: 1, storage: 256 },
350
+ specializations: ['boundary-analysis', 'edge-case-detection', 'test-data-synthesis'],
176
351
  });
177
- // Simulate agent setup based on type
178
- const setupTime = this.getSetupTimeForType(agent.type);
179
- await new Promise(resolve => setTimeout(resolve, setupTime));
180
- this.log('info', 'Agent capabilities initialized', { agentId: agent.id });
352
+ this.agentTypeConfigs.set('coverage-analyzer', {
353
+ defaultCapabilities: ['coverage-analysis', 'gap-identification', 'trend-analysis'],
354
+ defaultResources: { memory: 256, cpu: 0.5, storage: 128 },
355
+ specializations: ['critical-path-analysis', 'coverage-optimization', 'risk-assessment'],
356
+ });
357
+ this.agentTypeConfigs.set('quality-gate', {
358
+ defaultCapabilities: ['quality-metrics', 'threshold-enforcement', 'decision-making'],
359
+ defaultResources: { memory: 128, cpu: 0.5, storage: 64 },
360
+ specializations: ['composite-metrics', 'trend-monitoring', 'automated-decisions'],
361
+ });
362
+ this.agentTypeConfigs.set('performance-tester', {
363
+ defaultCapabilities: ['load-testing', 'stress-testing', 'bottleneck-detection'],
364
+ defaultResources: { memory: 1024, cpu: 2, storage: 512 },
365
+ specializations: ['resource-monitoring', 'baseline-comparison', 'regression-detection'],
366
+ });
367
+ this.agentTypeConfigs.set('security-scanner', {
368
+ defaultCapabilities: ['vulnerability-scanning', 'compliance-checking', 'security-testing'],
369
+ defaultResources: { memory: 512, cpu: 1, storage: 256 },
370
+ specializations: ['owasp-scanning', 'penetration-testing', 'compliance-validation'],
371
+ });
372
+ this.agentTypeConfigs.set('chaos-engineer', {
373
+ defaultCapabilities: ['failure-injection', 'resilience-testing', 'recovery-validation'],
374
+ defaultResources: { memory: 256, cpu: 1, storage: 128 },
375
+ specializations: ['controlled-chaos', 'blast-radius-control', 'disaster-recovery'],
376
+ });
377
+ this.agentTypeConfigs.set('visual-tester', {
378
+ defaultCapabilities: [
379
+ 'visual-regression',
380
+ 'cross-browser-testing',
381
+ 'accessibility-testing',
382
+ ],
383
+ defaultResources: { memory: 1024, cpu: 1, storage: 1024 },
384
+ specializations: ['screenshot-comparison', 'responsive-testing', 'wcag-compliance'],
385
+ });
386
+ }
387
+ validateAgentSpec(spec) {
388
+ const validTypes = Array.from(this.agentTypeConfigs.keys());
389
+ if (!validTypes.includes(spec.type)) {
390
+ throw new Error(`Invalid agent type: ${spec.type}. Must be one of: ${validTypes.join(', ')}`);
391
+ }
392
+ if (!spec.capabilities || spec.capabilities.length === 0) {
393
+ throw new Error('Agent must have at least one capability');
394
+ }
181
395
  }
182
396
  async registerWithFleet(agent, fleetId) {
183
397
  this.log('info', 'Registering agent with fleet', {
184
398
  agentId: agent.id,
185
- fleetId
399
+ fleetId,
186
400
  });
187
401
  // This would integrate with Claude Flow fleet coordination
188
402
  // For now, we simulate the registration
189
- await new Promise(resolve => setTimeout(resolve, 50));
403
+ await new Promise((resolve) => setTimeout(resolve, 50));
190
404
  this.log('info', 'Agent registered with fleet', {
191
405
  agentId: agent.id,
192
- fleetId
406
+ fleetId,
193
407
  });
194
408
  }
195
- getSetupTimeForType(type) {
196
- const setupTimes = {
197
- 'test-generator': 200,
198
- 'coverage-analyzer': 100,
199
- 'quality-gate': 50,
200
- 'performance-tester': 300,
201
- 'security-scanner': 250,
202
- 'chaos-engineer': 150,
203
- 'visual-tester': 400
204
- };
205
- return setupTimes[type] || 100;
206
- }
207
409
  /**
208
410
  * Get agent by ID
209
411
  */
@@ -214,8 +416,7 @@ class AgentSpawnHandler extends base_handler_js_1.BaseHandler {
214
416
  * List agents by fleet
215
417
  */
216
418
  listAgentsByFleet(fleetId) {
217
- return Array.from(this.activeAgents.values())
218
- .filter(agent => agent.fleetId === fleetId);
419
+ return Array.from(this.activeAgents.values()).filter((agent) => agent.fleetId === fleetId);
219
420
  }
220
421
  /**
221
422
  * List all active agents
@@ -244,13 +445,38 @@ class AgentSpawnHandler extends base_handler_js_1.BaseHandler {
244
445
  return false;
245
446
  }
246
447
  this.log('info', 'Terminating agent', { agentId, type: agent.type });
448
+ // Return to pool if pooled
449
+ const poolId = this.pooledAgentMap.get(agentId);
450
+ if (poolId && this.pool) {
451
+ try {
452
+ await this.pool.release(poolId);
453
+ this.pooledAgentMap.delete(agentId);
454
+ this.log('info', 'Agent returned to pool', { agentId, poolId });
455
+ }
456
+ catch (error) {
457
+ this.log('warn', 'Failed to return agent to pool', {
458
+ agentId,
459
+ error: error instanceof Error ? error.message : String(error),
460
+ });
461
+ }
462
+ }
247
463
  // Update status
248
464
  agent.status = 'terminated';
249
- // Clean up resources
250
- // In a real implementation, this would properly close agent connections and clean up
251
465
  this.activeAgents.delete(agentId);
252
466
  return true;
253
467
  }
468
+ /**
469
+ * Shutdown the handler and pool
470
+ */
471
+ async shutdown() {
472
+ this.log('info', 'Shutting down agent spawn handler');
473
+ if (this.pool) {
474
+ await this.pool.shutdown();
475
+ this.pool = null;
476
+ }
477
+ this.activeAgents.clear();
478
+ this.pooledAgentMap.clear();
479
+ }
254
480
  }
255
481
  exports.AgentSpawnHandler = AgentSpawnHandler;
256
482
  //# sourceMappingURL=agent-spawn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-spawn.js","sourceRoot":"","sources":["../../../src/mcp/handlers/agent-spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-spawn.js","sourceRoot":"","sources":["../../../src/mcp/handlers/agent-spawn.ts"],"names":[],"mappings":"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"}