@sparkleideas/swarm 3.0.0-alpha.6-patch.17 → 3.0.0-alpha.6-patch.18

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 (126) hide show
  1. package/package.json +1 -1
  2. package/dist/agent-pool.d.ts +0 -52
  3. package/dist/agent-pool.d.ts.map +0 -1
  4. package/dist/agent-pool.js +0 -365
  5. package/dist/agent-pool.js.map +0 -1
  6. package/dist/application/commands/create-task.command.d.ts +0 -64
  7. package/dist/application/commands/create-task.command.d.ts.map +0 -1
  8. package/dist/application/commands/create-task.command.js +0 -77
  9. package/dist/application/commands/create-task.command.js.map +0 -1
  10. package/dist/application/commands/spawn-agent.command.d.ts +0 -63
  11. package/dist/application/commands/spawn-agent.command.d.ts.map +0 -1
  12. package/dist/application/commands/spawn-agent.command.js +0 -74
  13. package/dist/application/commands/spawn-agent.command.js.map +0 -1
  14. package/dist/application/index.d.ts +0 -9
  15. package/dist/application/index.d.ts.map +0 -1
  16. package/dist/application/index.js +0 -11
  17. package/dist/application/index.js.map +0 -1
  18. package/dist/application/services/swarm-application-service.d.ts +0 -112
  19. package/dist/application/services/swarm-application-service.d.ts.map +0 -1
  20. package/dist/application/services/swarm-application-service.js +0 -153
  21. package/dist/application/services/swarm-application-service.js.map +0 -1
  22. package/dist/attention-coordinator.d.ts +0 -212
  23. package/dist/attention-coordinator.d.ts.map +0 -1
  24. package/dist/attention-coordinator.js +0 -667
  25. package/dist/attention-coordinator.js.map +0 -1
  26. package/dist/consensus/byzantine.d.ts +0 -63
  27. package/dist/consensus/byzantine.d.ts.map +0 -1
  28. package/dist/consensus/byzantine.js +0 -316
  29. package/dist/consensus/byzantine.js.map +0 -1
  30. package/dist/consensus/gossip.d.ts +0 -69
  31. package/dist/consensus/gossip.d.ts.map +0 -1
  32. package/dist/consensus/gossip.js +0 -378
  33. package/dist/consensus/gossip.js.map +0 -1
  34. package/dist/consensus/index.d.ts +0 -49
  35. package/dist/consensus/index.d.ts.map +0 -1
  36. package/dist/consensus/index.js +0 -203
  37. package/dist/consensus/index.js.map +0 -1
  38. package/dist/consensus/raft.d.ts +0 -62
  39. package/dist/consensus/raft.d.ts.map +0 -1
  40. package/dist/consensus/raft.js +0 -324
  41. package/dist/consensus/raft.js.map +0 -1
  42. package/dist/coordination/agent-registry.d.ts +0 -68
  43. package/dist/coordination/agent-registry.d.ts.map +0 -1
  44. package/dist/coordination/agent-registry.js +0 -412
  45. package/dist/coordination/agent-registry.js.map +0 -1
  46. package/dist/coordination/index.d.ts +0 -8
  47. package/dist/coordination/index.d.ts.map +0 -1
  48. package/dist/coordination/index.js +0 -8
  49. package/dist/coordination/index.js.map +0 -1
  50. package/dist/coordination/swarm-hub.d.ts +0 -150
  51. package/dist/coordination/swarm-hub.d.ts.map +0 -1
  52. package/dist/coordination/swarm-hub.js +0 -617
  53. package/dist/coordination/swarm-hub.js.map +0 -1
  54. package/dist/coordination/task-orchestrator.d.ts +0 -96
  55. package/dist/coordination/task-orchestrator.d.ts.map +0 -1
  56. package/dist/coordination/task-orchestrator.js +0 -412
  57. package/dist/coordination/task-orchestrator.js.map +0 -1
  58. package/dist/domain/entities/agent.d.ts +0 -151
  59. package/dist/domain/entities/agent.d.ts.map +0 -1
  60. package/dist/domain/entities/agent.js +0 -280
  61. package/dist/domain/entities/agent.js.map +0 -1
  62. package/dist/domain/entities/task.d.ts +0 -133
  63. package/dist/domain/entities/task.d.ts.map +0 -1
  64. package/dist/domain/entities/task.js +0 -261
  65. package/dist/domain/entities/task.js.map +0 -1
  66. package/dist/domain/index.d.ts +0 -11
  67. package/dist/domain/index.d.ts.map +0 -1
  68. package/dist/domain/index.js +0 -11
  69. package/dist/domain/index.js.map +0 -1
  70. package/dist/domain/repositories/agent-repository.interface.d.ts +0 -57
  71. package/dist/domain/repositories/agent-repository.interface.d.ts.map +0 -1
  72. package/dist/domain/repositories/agent-repository.interface.js +0 -9
  73. package/dist/domain/repositories/agent-repository.interface.js.map +0 -1
  74. package/dist/domain/repositories/task-repository.interface.d.ts +0 -61
  75. package/dist/domain/repositories/task-repository.interface.d.ts.map +0 -1
  76. package/dist/domain/repositories/task-repository.interface.js +0 -9
  77. package/dist/domain/repositories/task-repository.interface.js.map +0 -1
  78. package/dist/domain/services/coordination-service.d.ts +0 -84
  79. package/dist/domain/services/coordination-service.d.ts.map +0 -1
  80. package/dist/domain/services/coordination-service.js +0 -231
  81. package/dist/domain/services/coordination-service.js.map +0 -1
  82. package/dist/federation-hub.d.ts +0 -284
  83. package/dist/federation-hub.d.ts.map +0 -1
  84. package/dist/federation-hub.js +0 -692
  85. package/dist/federation-hub.js.map +0 -1
  86. package/dist/index.d.ts +0 -107
  87. package/dist/index.d.ts.map +0 -1
  88. package/dist/index.js +0 -142
  89. package/dist/index.js.map +0 -1
  90. package/dist/message-bus.d.ts +0 -48
  91. package/dist/message-bus.d.ts.map +0 -1
  92. package/dist/message-bus.js +0 -499
  93. package/dist/message-bus.js.map +0 -1
  94. package/dist/queen-coordinator.d.ts +0 -577
  95. package/dist/queen-coordinator.d.ts.map +0 -1
  96. package/dist/queen-coordinator.js +0 -1308
  97. package/dist/queen-coordinator.js.map +0 -1
  98. package/dist/shared/events.d.ts +0 -63
  99. package/dist/shared/events.d.ts.map +0 -1
  100. package/dist/shared/events.js +0 -203
  101. package/dist/shared/events.js.map +0 -1
  102. package/dist/shared/types.d.ts +0 -212
  103. package/dist/shared/types.d.ts.map +0 -1
  104. package/dist/shared/types.js +0 -22
  105. package/dist/shared/types.js.map +0 -1
  106. package/dist/topology-manager.d.ts +0 -62
  107. package/dist/topology-manager.d.ts.map +0 -1
  108. package/dist/topology-manager.js +0 -538
  109. package/dist/topology-manager.js.map +0 -1
  110. package/dist/types.d.ts +0 -353
  111. package/dist/types.d.ts.map +0 -1
  112. package/dist/types.js +0 -43
  113. package/dist/types.js.map +0 -1
  114. package/dist/unified-coordinator.d.ts +0 -260
  115. package/dist/unified-coordinator.d.ts.map +0 -1
  116. package/dist/unified-coordinator.js +0 -1460
  117. package/dist/unified-coordinator.js.map +0 -1
  118. package/dist/workers/index.d.ts +0 -29
  119. package/dist/workers/index.d.ts.map +0 -1
  120. package/dist/workers/index.js +0 -49
  121. package/dist/workers/index.js.map +0 -1
  122. package/dist/workers/worker-dispatch.d.ts +0 -239
  123. package/dist/workers/worker-dispatch.d.ts.map +0 -1
  124. package/dist/workers/worker-dispatch.js +0 -846
  125. package/dist/workers/worker-dispatch.js.map +0 -1
  126. package/tsconfig.build.tsbuildinfo +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparkleideas/swarm",
3
- "version": "3.0.0-alpha.6-patch.17",
3
+ "version": "3.0.0-alpha.6-patch.18",
4
4
  "type": "module",
5
5
  "description": "Standalone swarm coordination - up to 100+ agents, 4 topologies, hive-mind, consensus",
6
6
  "main": "dist/index.js",
@@ -1,52 +0,0 @@
1
- /**
2
- * V3 Agent Pool
3
- * Manages agent lifecycle, pooling, and auto-scaling
4
- */
5
- import { EventEmitter } from 'events';
6
- import { AgentState, AgentMetrics, AgentPoolConfig, AgentPoolState, IAgentPool } from './types.js';
7
- export declare class AgentPool extends EventEmitter implements IAgentPool {
8
- private config;
9
- private pooledAgents;
10
- private available;
11
- private busy;
12
- private pendingScale;
13
- private lastScaleOperation?;
14
- private healthCheckInterval?;
15
- private agentCounter;
16
- constructor(config?: Partial<AgentPoolConfig>);
17
- initialize(config?: AgentPoolConfig): Promise<void>;
18
- shutdown(): Promise<void>;
19
- acquire(): Promise<AgentState | undefined>;
20
- release(agentId: string): Promise<void>;
21
- add(agent: AgentState): Promise<void>;
22
- remove(agentId: string): Promise<void>;
23
- scale(delta: number): Promise<void>;
24
- getState(): AgentPoolState;
25
- getAvailableCount(): number;
26
- getBusyCount(): number;
27
- getTotalCount(): number;
28
- getUtilization(): number;
29
- private createPooledAgent;
30
- private createDefaultCapabilities;
31
- private createDefaultMetrics;
32
- private checkScaling;
33
- private startHealthChecks;
34
- private performHealthChecks;
35
- private replaceUnhealthyAgent;
36
- getAgent(agentId: string): AgentState | undefined;
37
- getAllAgents(): AgentState[];
38
- getAvailableAgents(): AgentState[];
39
- getBusyAgents(): AgentState[];
40
- updateAgentHeartbeat(agentId: string): void;
41
- updateAgentMetrics(agentId: string, metrics: Partial<AgentMetrics>): void;
42
- getPoolStats(): {
43
- total: number;
44
- available: number;
45
- busy: number;
46
- utilization: number;
47
- avgHealth: number;
48
- avgUsageCount: number;
49
- };
50
- }
51
- export declare function createAgentPool(config?: Partial<AgentPoolConfig>): AgentPool;
52
- //# sourceMappingURL=agent-pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-pool.d.ts","sourceRoot":"","sources":["../src/agent-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,UAAU,EAIV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,UAAU,EAEX,MAAM,YAAY,CAAC;AASpB,qBAAa,SAAU,SAAQ,YAAa,YAAW,UAAU;IAC/D,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,kBAAkB,CAAC,CAAO;IAClC,OAAO,CAAC,mBAAmB,CAAC,CAAiB;IAC7C,OAAO,CAAC,YAAY,CAAa;gBAErB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAc3C,UAAU,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBzB,OAAO,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA4C1C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBrC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IActC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDzC,QAAQ,IAAI,cAAc;IAgB1B,iBAAiB,IAAI,MAAM;IAI3B,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,MAAM;IAIvB,cAAc,IAAI,MAAM;YAOV,iBAAiB;IAwC/B,OAAO,CAAC,yBAAyB;IAsBjC,OAAO,CAAC,oBAAoB;YAed,YAAY;IAkB1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,mBAAmB;YA0Bb,qBAAqB;IAiBnC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIjD,YAAY,IAAI,UAAU,EAAE;IAI5B,kBAAkB,IAAI,UAAU,EAAE;IAMlC,aAAa,IAAI,UAAU,EAAE;IAM7B,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ3C,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAQzE,YAAY,IAAI;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;KACvB;CAkBF;AAED,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,CAE5E"}
@@ -1,365 +0,0 @@
1
- /**
2
- * V3 Agent Pool
3
- * Manages agent lifecycle, pooling, and auto-scaling
4
- */
5
- import { EventEmitter } from 'events';
6
- import { SWARM_CONSTANTS, } from './types.js';
7
- export class AgentPool extends EventEmitter {
8
- config;
9
- pooledAgents = new Map();
10
- available = new Set();
11
- busy = new Set();
12
- pendingScale = 0;
13
- lastScaleOperation;
14
- healthCheckInterval;
15
- agentCounter = 0;
16
- constructor(config = {}) {
17
- super();
18
- this.config = {
19
- name: config.name ?? 'default-pool',
20
- type: config.type ?? 'worker',
21
- minSize: config.minSize ?? 1,
22
- maxSize: config.maxSize ?? 10,
23
- scaleUpThreshold: config.scaleUpThreshold ?? 0.8,
24
- scaleDownThreshold: config.scaleDownThreshold ?? 0.2,
25
- cooldownMs: config.cooldownMs ?? 30000,
26
- healthCheckIntervalMs: config.healthCheckIntervalMs ?? SWARM_CONSTANTS.DEFAULT_HEALTH_CHECK_INTERVAL_MS,
27
- };
28
- }
29
- async initialize(config) {
30
- if (config) {
31
- this.config = { ...this.config, ...config };
32
- }
33
- // Start with minimum pool size - create agents in parallel
34
- const createPromises = Array.from({ length: this.config.minSize }, () => this.createPooledAgent());
35
- await Promise.all(createPromises);
36
- // Start health checks
37
- this.startHealthChecks();
38
- this.emit('initialized', {
39
- poolName: this.config.name,
40
- size: this.pooledAgents.size
41
- });
42
- }
43
- async shutdown() {
44
- if (this.healthCheckInterval) {
45
- clearInterval(this.healthCheckInterval);
46
- this.healthCheckInterval = undefined;
47
- }
48
- // Mark all agents as terminated
49
- for (const pooled of this.pooledAgents.values()) {
50
- pooled.agent.status = 'terminated';
51
- }
52
- this.pooledAgents.clear();
53
- this.available.clear();
54
- this.busy.clear();
55
- this.emit('shutdown');
56
- }
57
- async acquire() {
58
- // Try to get an available agent
59
- const availableId = this.available.values().next().value;
60
- if (availableId) {
61
- const pooled = this.pooledAgents.get(availableId);
62
- if (pooled) {
63
- this.available.delete(availableId);
64
- this.busy.add(availableId);
65
- pooled.acquiredAt = new Date();
66
- pooled.usageCount++;
67
- pooled.agent.status = 'busy';
68
- this.emit('agent.acquired', { agentId: availableId });
69
- // Check if we need to scale up
70
- await this.checkScaling();
71
- return pooled.agent;
72
- }
73
- }
74
- // No available agents, try to scale up
75
- if (this.pooledAgents.size < this.config.maxSize) {
76
- const agent = await this.createPooledAgent();
77
- if (agent) {
78
- const pooled = this.pooledAgents.get(agent.id.id);
79
- this.available.delete(agent.id.id);
80
- this.busy.add(agent.id.id);
81
- pooled.acquiredAt = new Date();
82
- pooled.usageCount++;
83
- agent.status = 'busy';
84
- this.emit('agent.acquired', { agentId: agent.id.id });
85
- return agent;
86
- }
87
- }
88
- // Pool exhausted
89
- this.emit('pool.exhausted');
90
- return undefined;
91
- }
92
- async release(agentId) {
93
- const pooled = this.pooledAgents.get(agentId);
94
- if (!pooled) {
95
- return;
96
- }
97
- this.busy.delete(agentId);
98
- this.available.add(agentId);
99
- pooled.acquiredAt = undefined;
100
- pooled.lastUsed = new Date();
101
- pooled.agent.status = 'idle';
102
- pooled.agent.currentTask = undefined;
103
- this.emit('agent.released', { agentId });
104
- // Check if we need to scale down
105
- await this.checkScaling();
106
- }
107
- async add(agent) {
108
- if (this.pooledAgents.size >= this.config.maxSize) {
109
- throw new Error(`Pool ${this.config.name} is at maximum capacity`);
110
- }
111
- const pooled = {
112
- agent,
113
- lastUsed: new Date(),
114
- usageCount: 0,
115
- };
116
- this.pooledAgents.set(agent.id.id, pooled);
117
- this.available.add(agent.id.id);
118
- this.emit('agent.added', { agentId: agent.id.id });
119
- }
120
- async remove(agentId) {
121
- const pooled = this.pooledAgents.get(agentId);
122
- if (!pooled) {
123
- return;
124
- }
125
- this.pooledAgents.delete(agentId);
126
- this.available.delete(agentId);
127
- this.busy.delete(agentId);
128
- pooled.agent.status = 'terminated';
129
- this.emit('agent.removed', { agentId });
130
- }
131
- async scale(delta) {
132
- const now = new Date();
133
- // Check cooldown
134
- if (this.lastScaleOperation) {
135
- const timeSinceLastScale = now.getTime() - this.lastScaleOperation.getTime();
136
- if (timeSinceLastScale < this.config.cooldownMs) {
137
- return;
138
- }
139
- }
140
- if (delta > 0) {
141
- // Scale up - create agents in parallel
142
- const targetSize = Math.min(this.pooledAgents.size + delta, this.config.maxSize);
143
- const toCreate = targetSize - this.pooledAgents.size;
144
- const createPromises = Array.from({ length: toCreate }, () => this.createPooledAgent());
145
- await Promise.all(createPromises);
146
- this.emit('pool.scaled_up', { added: toCreate });
147
- }
148
- else if (delta < 0) {
149
- // Scale down - remove agents in parallel
150
- const targetSize = Math.max(this.pooledAgents.size + delta, this.config.minSize);
151
- const toRemove = this.pooledAgents.size - targetSize;
152
- // Remove least recently used available agents
153
- const sortedAvailable = Array.from(this.available)
154
- .map(id => this.pooledAgents.get(id))
155
- .filter(p => p !== undefined)
156
- .sort((a, b) => a.lastUsed.getTime() - b.lastUsed.getTime());
157
- const agentsToRemove = sortedAvailable.slice(0, toRemove);
158
- await Promise.all(agentsToRemove.map(pooled => this.remove(pooled.agent.id.id)));
159
- this.emit('pool.scaled_down', { removed: agentsToRemove.length });
160
- }
161
- this.lastScaleOperation = now;
162
- }
163
- getState() {
164
- return {
165
- id: `pool_${this.config.name}`,
166
- config: { ...this.config },
167
- agents: new Map(Array.from(this.pooledAgents.entries()).map(([id, pooled]) => [id, pooled.agent])),
168
- availableAgents: Array.from(this.available),
169
- busyAgents: Array.from(this.busy),
170
- pendingScale: this.pendingScale,
171
- lastScaleOperation: this.lastScaleOperation,
172
- };
173
- }
174
- getAvailableCount() {
175
- return this.available.size;
176
- }
177
- getBusyCount() {
178
- return this.busy.size;
179
- }
180
- getTotalCount() {
181
- return this.pooledAgents.size;
182
- }
183
- getUtilization() {
184
- if (this.pooledAgents.size === 0)
185
- return 0;
186
- return this.busy.size / this.pooledAgents.size;
187
- }
188
- // ===== PRIVATE METHODS =====
189
- async createPooledAgent() {
190
- if (this.pooledAgents.size >= this.config.maxSize) {
191
- return undefined;
192
- }
193
- this.agentCounter++;
194
- const agentId = `${this.config.name}_agent_${this.agentCounter}`;
195
- const agent = {
196
- id: {
197
- id: agentId,
198
- swarmId: 'pool',
199
- type: this.config.type,
200
- instance: this.agentCounter,
201
- },
202
- name: `${this.config.name}-${this.agentCounter}`,
203
- type: this.config.type,
204
- status: 'idle',
205
- capabilities: this.createDefaultCapabilities(),
206
- metrics: this.createDefaultMetrics(),
207
- workload: 0,
208
- health: 1.0,
209
- lastHeartbeat: new Date(),
210
- connections: [],
211
- };
212
- const pooled = {
213
- agent,
214
- lastUsed: new Date(),
215
- usageCount: 0,
216
- };
217
- this.pooledAgents.set(agentId, pooled);
218
- this.available.add(agentId);
219
- this.emit('agent.created', { agentId });
220
- return agent;
221
- }
222
- createDefaultCapabilities() {
223
- return {
224
- codeGeneration: true,
225
- codeReview: true,
226
- testing: true,
227
- documentation: true,
228
- research: true,
229
- analysis: true,
230
- coordination: this.config.type === 'coordinator',
231
- languages: ['typescript', 'javascript', 'python'],
232
- frameworks: ['node', 'deno', 'react'],
233
- domains: ['development', 'testing', 'analysis'],
234
- tools: ['git', 'npm', 'editor'],
235
- maxConcurrentTasks: 3,
236
- maxMemoryUsage: 512 * 1024 * 1024,
237
- maxExecutionTime: SWARM_CONSTANTS.DEFAULT_TASK_TIMEOUT_MS,
238
- reliability: 0.95,
239
- speed: 1.0,
240
- quality: 0.9,
241
- };
242
- }
243
- createDefaultMetrics() {
244
- return {
245
- tasksCompleted: 0,
246
- tasksFailed: 0,
247
- averageExecutionTime: 0,
248
- successRate: 1.0,
249
- cpuUsage: 0,
250
- memoryUsage: 0,
251
- messagesProcessed: 0,
252
- lastActivity: new Date(),
253
- responseTime: 0,
254
- health: 1.0,
255
- };
256
- }
257
- async checkScaling() {
258
- const utilization = this.getUtilization();
259
- if (utilization >= this.config.scaleUpThreshold &&
260
- this.pooledAgents.size < this.config.maxSize) {
261
- // Scale up by 1
262
- this.pendingScale = 1;
263
- await this.scale(1);
264
- this.pendingScale = 0;
265
- }
266
- else if (utilization <= this.config.scaleDownThreshold &&
267
- this.pooledAgents.size > this.config.minSize) {
268
- // Scale down by 1
269
- this.pendingScale = -1;
270
- await this.scale(-1);
271
- this.pendingScale = 0;
272
- }
273
- }
274
- startHealthChecks() {
275
- this.healthCheckInterval = setInterval(() => {
276
- this.performHealthChecks();
277
- }, this.config.healthCheckIntervalMs);
278
- }
279
- performHealthChecks() {
280
- const now = new Date();
281
- const unhealthyThresholdMs = this.config.healthCheckIntervalMs * 3;
282
- for (const [agentId, pooled] of this.pooledAgents) {
283
- const timeSinceLastActivity = now.getTime() - pooled.agent.lastHeartbeat.getTime();
284
- if (timeSinceLastActivity > unhealthyThresholdMs) {
285
- // Agent is unhealthy
286
- pooled.agent.health = Math.max(0, pooled.agent.health - 0.2);
287
- pooled.agent.status = 'error';
288
- this.emit('agent.unhealthy', { agentId, health: pooled.agent.health });
289
- // If completely unhealthy, remove and replace
290
- if (pooled.agent.health <= 0) {
291
- this.replaceUnhealthyAgent(agentId);
292
- }
293
- }
294
- else {
295
- // Update health positively
296
- pooled.agent.health = Math.min(1.0, pooled.agent.health + 0.1);
297
- pooled.agent.lastHeartbeat = now;
298
- }
299
- }
300
- }
301
- async replaceUnhealthyAgent(agentId) {
302
- const pooled = this.pooledAgents.get(agentId);
303
- if (!pooled)
304
- return;
305
- const wasBusy = this.busy.has(agentId);
306
- await this.remove(agentId);
307
- // Create replacement if below min size or was busy
308
- if (this.pooledAgents.size < this.config.minSize || wasBusy) {
309
- await this.createPooledAgent();
310
- }
311
- this.emit('agent.replaced', { oldAgentId: agentId });
312
- }
313
- // ===== UTILITY METHODS =====
314
- getAgent(agentId) {
315
- return this.pooledAgents.get(agentId)?.agent;
316
- }
317
- getAllAgents() {
318
- return Array.from(this.pooledAgents.values()).map(p => p.agent);
319
- }
320
- getAvailableAgents() {
321
- return Array.from(this.available)
322
- .map(id => this.pooledAgents.get(id)?.agent)
323
- .filter((a) => a !== undefined);
324
- }
325
- getBusyAgents() {
326
- return Array.from(this.busy)
327
- .map(id => this.pooledAgents.get(id)?.agent)
328
- .filter((a) => a !== undefined);
329
- }
330
- updateAgentHeartbeat(agentId) {
331
- const pooled = this.pooledAgents.get(agentId);
332
- if (pooled) {
333
- pooled.agent.lastHeartbeat = new Date();
334
- pooled.agent.health = Math.min(1.0, pooled.agent.health + 0.05);
335
- }
336
- }
337
- updateAgentMetrics(agentId, metrics) {
338
- const pooled = this.pooledAgents.get(agentId);
339
- if (pooled) {
340
- pooled.agent.metrics = { ...pooled.agent.metrics, ...metrics };
341
- pooled.agent.lastHeartbeat = new Date();
342
- }
343
- }
344
- getPoolStats() {
345
- const agents = Array.from(this.pooledAgents.values());
346
- const avgHealth = agents.length > 0
347
- ? agents.reduce((sum, p) => sum + p.agent.health, 0) / agents.length
348
- : 1.0;
349
- const avgUsageCount = agents.length > 0
350
- ? agents.reduce((sum, p) => sum + p.usageCount, 0) / agents.length
351
- : 0;
352
- return {
353
- total: this.pooledAgents.size,
354
- available: this.available.size,
355
- busy: this.busy.size,
356
- utilization: this.getUtilization(),
357
- avgHealth,
358
- avgUsageCount,
359
- };
360
- }
361
- }
362
- export function createAgentPool(config) {
363
- return new AgentPool(config);
364
- }
365
- //# sourceMappingURL=agent-pool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-pool.js","sourceRoot":"","sources":["../src/agent-pool.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Create Task Command - Application Layer (CQRS)
3
- *
4
- * Command for creating new tasks in the swarm.
5
- *
6
- * @module v3/swarm/application/commands
7
- */
8
- import { Task, TaskPriority } from '../../domain/entities/task.js';
9
- import { ITaskRepository } from '../../domain/repositories/task-repository.interface.js';
10
- /**
11
- * Create Task Command Input
12
- */
13
- export interface CreateTaskInput {
14
- title: string;
15
- description: string;
16
- type: string;
17
- priority?: TaskPriority;
18
- dependencies?: string[];
19
- metadata?: Record<string, unknown>;
20
- input?: unknown;
21
- timeout?: number;
22
- maxRetries?: number;
23
- autoQueue?: boolean;
24
- }
25
- /**
26
- * Create Task Command Result
27
- */
28
- export interface CreateTaskResult {
29
- success: boolean;
30
- taskId: string;
31
- task: Task;
32
- queuedAutomatically: boolean;
33
- }
34
- /**
35
- * Create Task Command Handler
36
- */
37
- export declare class CreateTaskCommandHandler {
38
- private readonly repository;
39
- constructor(repository: ITaskRepository);
40
- execute(input: CreateTaskInput): Promise<CreateTaskResult>;
41
- }
42
- /**
43
- * Cancel Task Command Input
44
- */
45
- export interface CancelTaskInput {
46
- taskId: string;
47
- }
48
- /**
49
- * Cancel Task Command Result
50
- */
51
- export interface CancelTaskResult {
52
- success: boolean;
53
- taskId: string;
54
- previousStatus: string;
55
- }
56
- /**
57
- * Cancel Task Command Handler
58
- */
59
- export declare class CancelTaskCommandHandler {
60
- private readonly repository;
61
- constructor(repository: ITaskRepository);
62
- execute(input: CancelTaskInput): Promise<CancelTaskResult>;
63
- }
64
- //# sourceMappingURL=create-task.command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-task.command.d.ts","sourceRoot":"","sources":["../../../src/application/commands/create-task.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,YAAY,EAAa,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;IACX,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,eAAe;IAElD,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwCjE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,eAAe;IAElD,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAgBjE"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Create Task Command - Application Layer (CQRS)
3
- *
4
- * Command for creating new tasks in the swarm.
5
- *
6
- * @module v3/swarm/application/commands
7
- */
8
- import { Task } from '../../domain/entities/task.js';
9
- /**
10
- * Create Task Command Handler
11
- */
12
- export class CreateTaskCommandHandler {
13
- repository;
14
- constructor(repository) {
15
- this.repository = repository;
16
- }
17
- async execute(input) {
18
- // Validate dependencies exist
19
- if (input.dependencies && input.dependencies.length > 0) {
20
- for (const depId of input.dependencies) {
21
- const exists = await this.repository.exists(depId);
22
- if (!exists) {
23
- throw new Error(`Dependency task '${depId}' not found`);
24
- }
25
- }
26
- }
27
- // Create task
28
- const task = Task.create({
29
- title: input.title,
30
- description: input.description,
31
- type: input.type,
32
- priority: input.priority,
33
- dependencies: input.dependencies,
34
- metadata: input.metadata,
35
- input: input.input,
36
- timeout: input.timeout,
37
- maxRetries: input.maxRetries,
38
- });
39
- // Auto-queue if requested and no dependencies
40
- let queuedAutomatically = false;
41
- if (input.autoQueue && (!input.dependencies || input.dependencies.length === 0)) {
42
- task.queue();
43
- queuedAutomatically = true;
44
- }
45
- await this.repository.save(task);
46
- return {
47
- success: true,
48
- taskId: task.id,
49
- task,
50
- queuedAutomatically,
51
- };
52
- }
53
- }
54
- /**
55
- * Cancel Task Command Handler
56
- */
57
- export class CancelTaskCommandHandler {
58
- repository;
59
- constructor(repository) {
60
- this.repository = repository;
61
- }
62
- async execute(input) {
63
- const task = await this.repository.findById(input.taskId);
64
- if (!task) {
65
- throw new Error(`Task '${input.taskId}' not found`);
66
- }
67
- const previousStatus = task.status;
68
- task.cancel();
69
- await this.repository.save(task);
70
- return {
71
- success: true,
72
- taskId: input.taskId,
73
- previousStatus,
74
- };
75
- }
76
- }
77
- //# sourceMappingURL=create-task.command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-task.command.js","sourceRoot":"","sources":["../../../src/application/commands/create-task.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAA2B,MAAM,+BAA+B,CAAC;AA6B9E;;GAEG;AACH,MAAM,OAAO,wBAAwB;IACN;IAA7B,YAA6B,UAA2B;QAA3B,eAAU,GAAV,UAAU,CAAiB;IAAG,CAAC;IAE5D,KAAK,CAAC,OAAO,CAAC,KAAsB;QAClC,8BAA8B;QAC9B,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,aAAa,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAED,cAAc;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,8CAA8C;QAC9C,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,IAAI;YACJ,mBAAmB;SACpB,CAAC;IACJ,CAAC;CACF;AAkBD;;GAEG;AACH,MAAM,OAAO,wBAAwB;IACN;IAA7B,YAA6B,UAA2B;QAA3B,eAAU,GAAV,UAAU,CAAiB;IAAG,CAAC;IAE5D,KAAK,CAAC,OAAO,CAAC,KAAsB;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,CAAC,MAAM,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,cAAc;SACf,CAAC;IACJ,CAAC;CACF"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Spawn Agent Command - Application Layer (CQRS)
3
- *
4
- * Command for spawning a new agent in the swarm.
5
- *
6
- * @module v3/swarm/application/commands
7
- */
8
- import { Agent, AgentRole } from '../../domain/entities/agent.js';
9
- import { IAgentRepository } from '../../domain/repositories/agent-repository.interface.js';
10
- /**
11
- * Spawn Agent Command Input
12
- */
13
- export interface SpawnAgentInput {
14
- name: string;
15
- role: AgentRole;
16
- domain: string;
17
- capabilities: string[];
18
- parentId?: string;
19
- metadata?: Record<string, unknown>;
20
- maxConcurrentTasks?: number;
21
- autoStart?: boolean;
22
- }
23
- /**
24
- * Spawn Agent Command Result
25
- */
26
- export interface SpawnAgentResult {
27
- success: boolean;
28
- agentId: string;
29
- agent: Agent;
30
- startedAutomatically: boolean;
31
- }
32
- /**
33
- * Spawn Agent Command Handler
34
- */
35
- export declare class SpawnAgentCommandHandler {
36
- private readonly repository;
37
- constructor(repository: IAgentRepository);
38
- execute(input: SpawnAgentInput): Promise<SpawnAgentResult>;
39
- }
40
- /**
41
- * Terminate Agent Command Input
42
- */
43
- export interface TerminateAgentInput {
44
- agentId: string;
45
- force?: boolean;
46
- }
47
- /**
48
- * Terminate Agent Command Result
49
- */
50
- export interface TerminateAgentResult {
51
- success: boolean;
52
- agentId: string;
53
- tasksReassigned: number;
54
- }
55
- /**
56
- * Terminate Agent Command Handler
57
- */
58
- export declare class TerminateAgentCommandHandler {
59
- private readonly repository;
60
- constructor(repository: IAgentRepository);
61
- execute(input: TerminateAgentInput): Promise<TerminateAgentResult>;
62
- }
63
- //# sourceMappingURL=spawn-agent.command.d.ts.map