@claude-flow/swarm 3.0.0-alpha.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 (190) hide show
  1. package/.agentic-flow/intelligence.json +16 -0
  2. package/MIGRATION.md +472 -0
  3. package/README.md +634 -0
  4. package/__tests__/consensus.test.ts +577 -0
  5. package/__tests__/coordinator.test.ts +501 -0
  6. package/__tests__/queen-coordinator.test.ts +1335 -0
  7. package/__tests__/topology.test.ts +621 -0
  8. package/dist/agent-pool.d.ts +52 -0
  9. package/dist/agent-pool.d.ts.map +1 -0
  10. package/dist/agent-pool.js +365 -0
  11. package/dist/agent-pool.js.map +1 -0
  12. package/dist/application/commands/create-task.command.d.ts +64 -0
  13. package/dist/application/commands/create-task.command.d.ts.map +1 -0
  14. package/dist/application/commands/create-task.command.js +77 -0
  15. package/dist/application/commands/create-task.command.js.map +1 -0
  16. package/dist/application/commands/spawn-agent.command.d.ts +63 -0
  17. package/dist/application/commands/spawn-agent.command.d.ts.map +1 -0
  18. package/dist/application/commands/spawn-agent.command.js +74 -0
  19. package/dist/application/commands/spawn-agent.command.js.map +1 -0
  20. package/dist/application/index.d.ts +9 -0
  21. package/dist/application/index.d.ts.map +1 -0
  22. package/dist/application/index.js +11 -0
  23. package/dist/application/index.js.map +1 -0
  24. package/dist/application/services/swarm-application-service.d.ts +112 -0
  25. package/dist/application/services/swarm-application-service.d.ts.map +1 -0
  26. package/dist/application/services/swarm-application-service.js +153 -0
  27. package/dist/application/services/swarm-application-service.js.map +1 -0
  28. package/dist/attention-coordinator.d.ts +212 -0
  29. package/dist/attention-coordinator.d.ts.map +1 -0
  30. package/dist/attention-coordinator.js +667 -0
  31. package/dist/attention-coordinator.js.map +1 -0
  32. package/dist/consensus/byzantine.d.ts +63 -0
  33. package/dist/consensus/byzantine.d.ts.map +1 -0
  34. package/dist/consensus/byzantine.js +316 -0
  35. package/dist/consensus/byzantine.js.map +1 -0
  36. package/dist/consensus/gossip.d.ts +69 -0
  37. package/dist/consensus/gossip.d.ts.map +1 -0
  38. package/dist/consensus/gossip.js +378 -0
  39. package/dist/consensus/gossip.js.map +1 -0
  40. package/dist/consensus/index.d.ts +49 -0
  41. package/dist/consensus/index.d.ts.map +1 -0
  42. package/dist/consensus/index.js +203 -0
  43. package/dist/consensus/index.js.map +1 -0
  44. package/dist/consensus/raft.d.ts +62 -0
  45. package/dist/consensus/raft.d.ts.map +1 -0
  46. package/dist/consensus/raft.js +324 -0
  47. package/dist/consensus/raft.js.map +1 -0
  48. package/dist/coordination/agent-registry.d.ts +68 -0
  49. package/dist/coordination/agent-registry.d.ts.map +1 -0
  50. package/dist/coordination/agent-registry.js +412 -0
  51. package/dist/coordination/agent-registry.js.map +1 -0
  52. package/dist/coordination/index.d.ts +8 -0
  53. package/dist/coordination/index.d.ts.map +1 -0
  54. package/dist/coordination/index.js +8 -0
  55. package/dist/coordination/index.js.map +1 -0
  56. package/dist/coordination/swarm-hub.d.ts +150 -0
  57. package/dist/coordination/swarm-hub.d.ts.map +1 -0
  58. package/dist/coordination/swarm-hub.js +617 -0
  59. package/dist/coordination/swarm-hub.js.map +1 -0
  60. package/dist/coordination/task-orchestrator.d.ts +96 -0
  61. package/dist/coordination/task-orchestrator.d.ts.map +1 -0
  62. package/dist/coordination/task-orchestrator.js +412 -0
  63. package/dist/coordination/task-orchestrator.js.map +1 -0
  64. package/dist/domain/entities/agent.d.ts +151 -0
  65. package/dist/domain/entities/agent.d.ts.map +1 -0
  66. package/dist/domain/entities/agent.js +280 -0
  67. package/dist/domain/entities/agent.js.map +1 -0
  68. package/dist/domain/entities/task.d.ts +133 -0
  69. package/dist/domain/entities/task.d.ts.map +1 -0
  70. package/dist/domain/entities/task.js +261 -0
  71. package/dist/domain/entities/task.js.map +1 -0
  72. package/dist/domain/index.d.ts +11 -0
  73. package/dist/domain/index.d.ts.map +1 -0
  74. package/dist/domain/index.js +11 -0
  75. package/dist/domain/index.js.map +1 -0
  76. package/dist/domain/repositories/agent-repository.interface.d.ts +57 -0
  77. package/dist/domain/repositories/agent-repository.interface.d.ts.map +1 -0
  78. package/dist/domain/repositories/agent-repository.interface.js +9 -0
  79. package/dist/domain/repositories/agent-repository.interface.js.map +1 -0
  80. package/dist/domain/repositories/task-repository.interface.d.ts +61 -0
  81. package/dist/domain/repositories/task-repository.interface.d.ts.map +1 -0
  82. package/dist/domain/repositories/task-repository.interface.js +9 -0
  83. package/dist/domain/repositories/task-repository.interface.js.map +1 -0
  84. package/dist/domain/services/coordination-service.d.ts +84 -0
  85. package/dist/domain/services/coordination-service.d.ts.map +1 -0
  86. package/dist/domain/services/coordination-service.js +231 -0
  87. package/dist/domain/services/coordination-service.js.map +1 -0
  88. package/dist/federation-hub.d.ts +284 -0
  89. package/dist/federation-hub.d.ts.map +1 -0
  90. package/dist/federation-hub.js +692 -0
  91. package/dist/federation-hub.js.map +1 -0
  92. package/dist/index.d.ts +107 -0
  93. package/dist/index.d.ts.map +1 -0
  94. package/dist/index.js +142 -0
  95. package/dist/index.js.map +1 -0
  96. package/dist/message-bus.d.ts +48 -0
  97. package/dist/message-bus.d.ts.map +1 -0
  98. package/dist/message-bus.js +499 -0
  99. package/dist/message-bus.js.map +1 -0
  100. package/dist/queen-coordinator.d.ts +576 -0
  101. package/dist/queen-coordinator.d.ts.map +1 -0
  102. package/dist/queen-coordinator.js +1307 -0
  103. package/dist/queen-coordinator.js.map +1 -0
  104. package/dist/shared/events.d.ts +63 -0
  105. package/dist/shared/events.d.ts.map +1 -0
  106. package/dist/shared/events.js +203 -0
  107. package/dist/shared/events.js.map +1 -0
  108. package/dist/shared/types.d.ts +212 -0
  109. package/dist/shared/types.d.ts.map +1 -0
  110. package/dist/shared/types.js +22 -0
  111. package/dist/shared/types.js.map +1 -0
  112. package/dist/topology-manager.d.ts +62 -0
  113. package/dist/topology-manager.d.ts.map +1 -0
  114. package/dist/topology-manager.js +538 -0
  115. package/dist/topology-manager.js.map +1 -0
  116. package/dist/types.d.ts +353 -0
  117. package/dist/types.d.ts.map +1 -0
  118. package/dist/types.js +43 -0
  119. package/dist/types.js.map +1 -0
  120. package/dist/unified-coordinator.d.ts +260 -0
  121. package/dist/unified-coordinator.d.ts.map +1 -0
  122. package/dist/unified-coordinator.js +1460 -0
  123. package/dist/unified-coordinator.js.map +1 -0
  124. package/dist/workers/index.d.ts +29 -0
  125. package/dist/workers/index.d.ts.map +1 -0
  126. package/dist/workers/index.js +49 -0
  127. package/dist/workers/index.js.map +1 -0
  128. package/dist/workers/worker-dispatch.d.ts +234 -0
  129. package/dist/workers/worker-dispatch.d.ts.map +1 -0
  130. package/dist/workers/worker-dispatch.js +842 -0
  131. package/dist/workers/worker-dispatch.js.map +1 -0
  132. package/package.json +33 -0
  133. package/src/agent-pool.ts +476 -0
  134. package/src/application/commands/create-task.command.ts +124 -0
  135. package/src/application/commands/spawn-agent.command.ts +122 -0
  136. package/src/application/index.ts +30 -0
  137. package/src/application/services/swarm-application-service.ts +200 -0
  138. package/src/attention-coordinator.ts +1000 -0
  139. package/src/consensus/byzantine.ts +431 -0
  140. package/src/consensus/gossip.ts +513 -0
  141. package/src/consensus/index.ts +267 -0
  142. package/src/consensus/raft.ts +443 -0
  143. package/src/coordination/agent-registry.ts +544 -0
  144. package/src/coordination/index.ts +23 -0
  145. package/src/coordination/swarm-hub.ts +776 -0
  146. package/src/coordination/task-orchestrator.ts +605 -0
  147. package/src/domain/entities/agent.d.ts +151 -0
  148. package/src/domain/entities/agent.d.ts.map +1 -0
  149. package/src/domain/entities/agent.js +280 -0
  150. package/src/domain/entities/agent.js.map +1 -0
  151. package/src/domain/entities/agent.ts +370 -0
  152. package/src/domain/entities/task.d.ts +133 -0
  153. package/src/domain/entities/task.d.ts.map +1 -0
  154. package/src/domain/entities/task.js +261 -0
  155. package/src/domain/entities/task.js.map +1 -0
  156. package/src/domain/entities/task.ts +319 -0
  157. package/src/domain/index.ts +41 -0
  158. package/src/domain/repositories/agent-repository.interface.d.ts +57 -0
  159. package/src/domain/repositories/agent-repository.interface.d.ts.map +1 -0
  160. package/src/domain/repositories/agent-repository.interface.js +9 -0
  161. package/src/domain/repositories/agent-repository.interface.js.map +1 -0
  162. package/src/domain/repositories/agent-repository.interface.ts +69 -0
  163. package/src/domain/repositories/task-repository.interface.d.ts +61 -0
  164. package/src/domain/repositories/task-repository.interface.d.ts.map +1 -0
  165. package/src/domain/repositories/task-repository.interface.js +9 -0
  166. package/src/domain/repositories/task-repository.interface.js.map +1 -0
  167. package/src/domain/repositories/task-repository.interface.ts +75 -0
  168. package/src/domain/services/coordination-service.ts +320 -0
  169. package/src/federation-hub.d.ts +284 -0
  170. package/src/federation-hub.d.ts.map +1 -0
  171. package/src/federation-hub.js +692 -0
  172. package/src/federation-hub.js.map +1 -0
  173. package/src/federation-hub.ts +979 -0
  174. package/src/index.ts +348 -0
  175. package/src/message-bus.ts +607 -0
  176. package/src/queen-coordinator.ts +2024 -0
  177. package/src/shared/events.ts +285 -0
  178. package/src/shared/types.ts +389 -0
  179. package/src/topology-manager.ts +656 -0
  180. package/src/types.ts +545 -0
  181. package/src/unified-coordinator.ts +1844 -0
  182. package/src/workers/index.ts +65 -0
  183. package/src/workers/worker-dispatch.d.ts +234 -0
  184. package/src/workers/worker-dispatch.d.ts.map +1 -0
  185. package/src/workers/worker-dispatch.js +842 -0
  186. package/src/workers/worker-dispatch.js.map +1 -0
  187. package/src/workers/worker-dispatch.ts +1072 -0
  188. package/tsconfig.json +9 -0
  189. package/tsconfig.tsbuildinfo +1 -0
  190. package/vitest.config.ts +20 -0
@@ -0,0 +1,412 @@
1
+ /**
2
+ * V3 Agent Registry
3
+ * Manages registration, lifecycle, and capabilities of all 15 agents
4
+ *
5
+ * Based on ADR-002 (DDD) and 15-Agent Swarm Architecture
6
+ */
7
+ import { agentSpawnedEvent, agentStatusChangedEvent, agentErrorEvent } from '../shared/events';
8
+ // =============================================================================
9
+ // Agent Registry Implementation
10
+ // =============================================================================
11
+ export class AgentRegistry {
12
+ definitions = new Map();
13
+ states = new Map();
14
+ healthChecks = new Map();
15
+ eventBus;
16
+ healthCheckInterval = 5000;
17
+ healthCheckTimer = null;
18
+ maxMissedHeartbeats = 3;
19
+ constructor(eventBus) {
20
+ this.eventBus = eventBus;
21
+ this.registerDefaultAgents();
22
+ }
23
+ // ==========================================================================
24
+ // Registration
25
+ // ==========================================================================
26
+ register(definition) {
27
+ if (this.definitions.has(definition.id)) {
28
+ throw new Error(`Agent ${definition.id} is already registered`);
29
+ }
30
+ this.definitions.set(definition.id, definition);
31
+ this.healthChecks.set(definition.id, {
32
+ agentId: definition.id,
33
+ healthy: false,
34
+ lastHeartbeat: 0,
35
+ consecutiveMisses: 0,
36
+ status: 'idle'
37
+ });
38
+ }
39
+ unregister(agentId) {
40
+ if (this.states.has(agentId)) {
41
+ throw new Error(`Cannot unregister active agent ${agentId}`);
42
+ }
43
+ this.healthChecks.delete(agentId);
44
+ return this.definitions.delete(agentId);
45
+ }
46
+ isRegistered(agentId) {
47
+ return this.definitions.has(agentId);
48
+ }
49
+ // ==========================================================================
50
+ // Lifecycle
51
+ // ==========================================================================
52
+ async spawn(agentId) {
53
+ const definition = this.definitions.get(agentId);
54
+ if (!definition) {
55
+ throw new Error(`Agent ${agentId} is not registered`);
56
+ }
57
+ if (this.states.has(agentId)) {
58
+ throw new Error(`Agent ${agentId} is already spawned`);
59
+ }
60
+ const state = {
61
+ id: agentId,
62
+ role: definition.role,
63
+ status: 'idle',
64
+ currentTask: null,
65
+ completedTasks: [],
66
+ metrics: this.createInitialMetrics(),
67
+ lastHeartbeat: Date.now()
68
+ };
69
+ this.states.set(agentId, state);
70
+ const healthStatus = this.healthChecks.get(agentId);
71
+ healthStatus.healthy = true;
72
+ healthStatus.lastHeartbeat = Date.now();
73
+ healthStatus.status = 'idle';
74
+ await this.eventBus.emit(agentSpawnedEvent(agentId, definition.role));
75
+ return state;
76
+ }
77
+ async terminate(agentId) {
78
+ const state = this.states.get(agentId);
79
+ if (!state) {
80
+ return false;
81
+ }
82
+ if (state.currentTask) {
83
+ throw new Error(`Cannot terminate agent ${agentId} with active task ${state.currentTask}`);
84
+ }
85
+ this.states.delete(agentId);
86
+ const healthStatus = this.healthChecks.get(agentId);
87
+ if (healthStatus) {
88
+ healthStatus.healthy = false;
89
+ healthStatus.status = 'idle';
90
+ }
91
+ await this.eventBus.emit(agentStatusChangedEvent(agentId, state.status, 'terminated'));
92
+ return true;
93
+ }
94
+ // ==========================================================================
95
+ // State Management
96
+ // ==========================================================================
97
+ getState(agentId) {
98
+ return this.states.get(agentId);
99
+ }
100
+ updateStatus(agentId, status) {
101
+ const state = this.states.get(agentId);
102
+ if (!state) {
103
+ throw new Error(`Agent ${agentId} is not spawned`);
104
+ }
105
+ const previousStatus = state.status;
106
+ state.status = status;
107
+ const healthStatus = this.healthChecks.get(agentId);
108
+ if (healthStatus) {
109
+ healthStatus.status = status;
110
+ }
111
+ this.eventBus.emitSync(agentStatusChangedEvent(agentId, previousStatus, status));
112
+ }
113
+ assignTask(agentId, taskId) {
114
+ const state = this.states.get(agentId);
115
+ if (!state) {
116
+ throw new Error(`Agent ${agentId} is not spawned`);
117
+ }
118
+ if (state.currentTask) {
119
+ throw new Error(`Agent ${agentId} already has task ${state.currentTask}`);
120
+ }
121
+ state.currentTask = taskId;
122
+ this.updateStatus(agentId, 'active');
123
+ }
124
+ completeTask(agentId, taskId) {
125
+ const state = this.states.get(agentId);
126
+ if (!state) {
127
+ throw new Error(`Agent ${agentId} is not spawned`);
128
+ }
129
+ if (state.currentTask !== taskId) {
130
+ throw new Error(`Agent ${agentId} current task is ${state.currentTask}, not ${taskId}`);
131
+ }
132
+ state.completedTasks.push(taskId);
133
+ state.currentTask = null;
134
+ state.metrics.tasksCompleted++;
135
+ this.updateStatus(agentId, 'idle');
136
+ }
137
+ // ==========================================================================
138
+ // Queries
139
+ // ==========================================================================
140
+ getDefinition(agentId) {
141
+ return this.definitions.get(agentId);
142
+ }
143
+ getAllAgents() {
144
+ return Array.from(this.definitions.values());
145
+ }
146
+ getActiveAgents() {
147
+ return Array.from(this.states.values()).filter(s => s.status === 'active');
148
+ }
149
+ getAgentsByDomain(domain) {
150
+ return Array.from(this.definitions.values()).filter(d => d.domain === domain);
151
+ }
152
+ getAgentsByCapability(taskType) {
153
+ return Array.from(this.definitions.values()).filter(d => d.capabilities.some(c => c.supportedTaskTypes.includes(taskType)));
154
+ }
155
+ // ==========================================================================
156
+ // Health Management
157
+ // ==========================================================================
158
+ heartbeat(agentId) {
159
+ const state = this.states.get(agentId);
160
+ if (state) {
161
+ state.lastHeartbeat = Date.now();
162
+ }
163
+ const healthStatus = this.healthChecks.get(agentId);
164
+ if (healthStatus) {
165
+ healthStatus.lastHeartbeat = Date.now();
166
+ healthStatus.consecutiveMisses = 0;
167
+ healthStatus.healthy = true;
168
+ }
169
+ }
170
+ getHealthStatus() {
171
+ return new Map(this.healthChecks);
172
+ }
173
+ startHealthChecks() {
174
+ if (this.healthCheckTimer) {
175
+ return;
176
+ }
177
+ this.healthCheckTimer = setInterval(() => {
178
+ this.performHealthCheck();
179
+ }, this.healthCheckInterval);
180
+ }
181
+ stopHealthChecks() {
182
+ if (this.healthCheckTimer) {
183
+ clearInterval(this.healthCheckTimer);
184
+ this.healthCheckTimer = null;
185
+ }
186
+ }
187
+ performHealthCheck() {
188
+ const now = Date.now();
189
+ for (const [agentId, healthStatus] of this.healthChecks) {
190
+ const state = this.states.get(agentId);
191
+ if (!state) {
192
+ continue;
193
+ }
194
+ const timeSinceHeartbeat = now - healthStatus.lastHeartbeat;
195
+ if (timeSinceHeartbeat > this.healthCheckInterval) {
196
+ healthStatus.consecutiveMisses++;
197
+ if (healthStatus.consecutiveMisses >= this.maxMissedHeartbeats) {
198
+ healthStatus.healthy = false;
199
+ this.updateStatus(agentId, 'error');
200
+ this.eventBus.emitSync(agentErrorEvent(agentId, new Error(`Agent ${agentId} missed ${healthStatus.consecutiveMisses} heartbeats`)));
201
+ }
202
+ }
203
+ }
204
+ }
205
+ // ==========================================================================
206
+ // Events
207
+ // ==========================================================================
208
+ onAgentEvent(handler) {
209
+ const unsubscribers = [
210
+ this.eventBus.subscribe('agent:spawned', handler),
211
+ this.eventBus.subscribe('agent:status-changed', handler),
212
+ this.eventBus.subscribe('agent:task-assigned', handler),
213
+ this.eventBus.subscribe('agent:task-completed', handler),
214
+ this.eventBus.subscribe('agent:error', handler)
215
+ ];
216
+ return () => {
217
+ unsubscribers.forEach(unsub => unsub());
218
+ };
219
+ }
220
+ // ==========================================================================
221
+ // Default Agent Registration
222
+ // ==========================================================================
223
+ registerDefaultAgents() {
224
+ const agentDefinitions = [
225
+ {
226
+ id: 'agent-1',
227
+ role: 'queen-coordinator',
228
+ domain: 'core',
229
+ description: 'Orchestration & GitHub Issue management for all 15 agents',
230
+ capabilities: [
231
+ { name: 'orchestration', description: 'Coordinate all agents', supportedTaskTypes: ['architecture-design'] },
232
+ { name: 'github-management', description: 'Manage GitHub issues and PRs', supportedTaskTypes: ['documentation'] }
233
+ ],
234
+ dependencies: [],
235
+ priority: 1
236
+ },
237
+ {
238
+ id: 'agent-2',
239
+ role: 'security-architect',
240
+ domain: 'security',
241
+ description: 'Security architecture review and design',
242
+ capabilities: [
243
+ { name: 'security-design', description: 'Design security architecture', supportedTaskTypes: ['security-audit', 'architecture-design'] }
244
+ ],
245
+ dependencies: [],
246
+ priority: 2
247
+ },
248
+ {
249
+ id: 'agent-3',
250
+ role: 'security-implementer',
251
+ domain: 'security',
252
+ description: 'CVE fixes and security code implementation',
253
+ capabilities: [
254
+ { name: 'security-implementation', description: 'Implement security fixes', supportedTaskTypes: ['security-fix', 'implementation'] }
255
+ ],
256
+ dependencies: ['agent-2'],
257
+ priority: 2
258
+ },
259
+ {
260
+ id: 'agent-4',
261
+ role: 'security-tester',
262
+ domain: 'security',
263
+ description: 'Security testing using TDD London School methodology',
264
+ capabilities: [
265
+ { name: 'security-testing', description: 'Write and run security tests', supportedTaskTypes: ['security-test', 'test-writing'] }
266
+ ],
267
+ dependencies: ['agent-2'],
268
+ priority: 2
269
+ },
270
+ {
271
+ id: 'agent-5',
272
+ role: 'core-architect',
273
+ domain: 'core',
274
+ description: 'Core module DDD architecture design',
275
+ capabilities: [
276
+ { name: 'architecture', description: 'Design core architecture', supportedTaskTypes: ['architecture-design'] }
277
+ ],
278
+ dependencies: ['agent-2'],
279
+ priority: 3
280
+ },
281
+ {
282
+ id: 'agent-6',
283
+ role: 'core-implementer',
284
+ domain: 'core',
285
+ description: 'Core module implementation and type system modernization',
286
+ capabilities: [
287
+ { name: 'core-implementation', description: 'Implement core modules', supportedTaskTypes: ['implementation'] }
288
+ ],
289
+ dependencies: ['agent-5'],
290
+ priority: 3
291
+ },
292
+ {
293
+ id: 'agent-7',
294
+ role: 'memory-specialist',
295
+ domain: 'core',
296
+ description: 'Memory system unification with AgentDB (150x-12500x improvement)',
297
+ capabilities: [
298
+ { name: 'memory-optimization', description: 'Optimize memory systems', supportedTaskTypes: ['memory-optimization', 'implementation'] }
299
+ ],
300
+ dependencies: ['agent-5'],
301
+ priority: 4
302
+ },
303
+ {
304
+ id: 'agent-8',
305
+ role: 'swarm-specialist',
306
+ domain: 'core',
307
+ description: 'Single SwarmCoordinator (merge 4 systems)',
308
+ capabilities: [
309
+ { name: 'swarm-coordination', description: 'Design swarm coordination', supportedTaskTypes: ['swarm-coordination', 'implementation'] }
310
+ ],
311
+ dependencies: ['agent-5'],
312
+ priority: 4
313
+ },
314
+ {
315
+ id: 'agent-9',
316
+ role: 'mcp-specialist',
317
+ domain: 'core',
318
+ description: 'MCP server optimization and enhancement',
319
+ capabilities: [
320
+ { name: 'mcp-optimization', description: 'Optimize MCP server', supportedTaskTypes: ['mcp-enhancement', 'implementation'] }
321
+ ],
322
+ dependencies: ['agent-5'],
323
+ priority: 4
324
+ },
325
+ {
326
+ id: 'agent-10',
327
+ role: 'integration-architect',
328
+ domain: 'integration',
329
+ description: 'agentic-flow@alpha deep integration',
330
+ capabilities: [
331
+ { name: 'integration', description: 'Integrate with agentic-flow', supportedTaskTypes: ['integration', 'architecture-design'] }
332
+ ],
333
+ dependencies: ['agent-5', 'agent-7', 'agent-8', 'agent-9'],
334
+ priority: 5
335
+ },
336
+ {
337
+ id: 'agent-11',
338
+ role: 'cli-hooks-developer',
339
+ domain: 'integration',
340
+ description: 'CLI modernization and hooks system development',
341
+ capabilities: [
342
+ { name: 'cli-development', description: 'Develop CLI and hooks', supportedTaskTypes: ['cli-development', 'implementation'] }
343
+ ],
344
+ dependencies: ['agent-9', 'agent-10'],
345
+ priority: 5
346
+ },
347
+ {
348
+ id: 'agent-12',
349
+ role: 'neural-learning-dev',
350
+ domain: 'integration',
351
+ description: 'Neural and SONA learning system integration',
352
+ capabilities: [
353
+ { name: 'neural-training', description: 'Implement neural features', supportedTaskTypes: ['neural-training', 'implementation'] }
354
+ ],
355
+ dependencies: ['agent-7', 'agent-10'],
356
+ priority: 5
357
+ },
358
+ {
359
+ id: 'agent-13',
360
+ role: 'tdd-test-engineer',
361
+ domain: 'quality',
362
+ description: 'TDD London School methodology implementation',
363
+ capabilities: [
364
+ { name: 'testing', description: 'Write comprehensive tests', supportedTaskTypes: ['test-writing'] }
365
+ ],
366
+ dependencies: [],
367
+ priority: 3
368
+ },
369
+ {
370
+ id: 'agent-14',
371
+ role: 'performance-engineer',
372
+ domain: 'performance',
373
+ description: 'Benchmarking and performance optimization (2.49x-7.47x target)',
374
+ capabilities: [
375
+ { name: 'benchmarking', description: 'Run performance benchmarks', supportedTaskTypes: ['benchmark'] }
376
+ ],
377
+ dependencies: ['agent-7', 'agent-8'],
378
+ priority: 6
379
+ },
380
+ {
381
+ id: 'agent-15',
382
+ role: 'release-engineer',
383
+ domain: 'deployment',
384
+ description: 'Deployment pipeline and release management',
385
+ capabilities: [
386
+ { name: 'deployment', description: 'Manage releases', supportedTaskTypes: ['deployment', 'documentation'] }
387
+ ],
388
+ dependencies: ['agent-10', 'agent-13', 'agent-14'],
389
+ priority: 7
390
+ }
391
+ ];
392
+ for (const definition of agentDefinitions) {
393
+ this.register(definition);
394
+ }
395
+ }
396
+ createInitialMetrics() {
397
+ return {
398
+ tasksCompleted: 0,
399
+ tasksFailed: 0,
400
+ averageTaskDuration: 0,
401
+ utilization: 0,
402
+ startTime: Date.now()
403
+ };
404
+ }
405
+ }
406
+ // =============================================================================
407
+ // Factory Function
408
+ // =============================================================================
409
+ export function createAgentRegistry(eventBus) {
410
+ return new AgentRegistry(eventBus);
411
+ }
412
+ //# sourceMappingURL=agent-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.js","sourceRoot":"","sources":["../../src/coordination/agent-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Coordination Components
3
+ * Agent registry, task orchestration, and swarm hub
4
+ */
5
+ export { AgentRegistry, createAgentRegistry, type IAgentRegistry, } from './agent-registry.js';
6
+ export { TaskOrchestrator, createTaskOrchestrator, type ITaskOrchestrator, type TaskSpec, } from './task-orchestrator.js';
7
+ export { SwarmHub, createSwarmHub, type ISwarmHub, } from './swarm-hub.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,cAAc,EACd,KAAK,SAAS,GACf,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Coordination Components
3
+ * Agent registry, task orchestration, and swarm hub
4
+ */
5
+ export { AgentRegistry, createAgentRegistry, } from './agent-registry.js';
6
+ export { TaskOrchestrator, createTaskOrchestrator, } from './task-orchestrator.js';
7
+ export { SwarmHub, createSwarmHub, } from './swarm-hub.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,cAAc,GAEf,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * V3 Swarm Hub - COMPATIBILITY LAYER (ADR-003)
3
+ *
4
+ * DEPRECATION NOTICE:
5
+ * This is a THIN FACADE over UnifiedSwarmCoordinator for backward compatibility.
6
+ * All operations are delegated to the canonical UnifiedSwarmCoordinator.
7
+ *
8
+ * For new code, use UnifiedSwarmCoordinator directly:
9
+ * ```typescript
10
+ * import { createUnifiedSwarmCoordinator } from '@claude-flow/swarm';
11
+ * const coordinator = createUnifiedSwarmCoordinator(config);
12
+ * await coordinator.initialize();
13
+ * ```
14
+ *
15
+ * ADR-003 Decision:
16
+ * - ONE canonical coordination engine: UnifiedSwarmCoordinator
17
+ * - SwarmHub maintained ONLY for compatibility with existing code
18
+ * - All core logic delegated to UnifiedSwarmCoordinator
19
+ *
20
+ * Based on ADR-001 (agentic-flow integration), ADR-003 (Single Coordination Engine),
21
+ * and the 15-Agent Swarm Architecture
22
+ */
23
+ import { AgentId, AgentDomain, AgentState, TaskId, TaskDefinition, TaskResult, PhaseId, PhaseDefinition, MilestoneDefinition, SwarmConfig, SwarmState, SwarmMetrics, SwarmMessage, MessageType, MessageHandler, EventHandler } from '../shared/types';
24
+ import { IEventBus } from '../shared/events';
25
+ import { IAgentRegistry } from './agent-registry';
26
+ import { ITaskOrchestrator, TaskSpec } from './task-orchestrator';
27
+ import { UnifiedSwarmCoordinator } from '../unified-coordinator';
28
+ export interface ISwarmHub {
29
+ initialize(config?: Partial<SwarmConfig>): Promise<void>;
30
+ shutdown(): Promise<void>;
31
+ isInitialized(): boolean;
32
+ spawnAgent(agentId: AgentId): Promise<AgentState>;
33
+ spawnAllAgents(): Promise<Map<AgentId, AgentState>>;
34
+ spawnAgentsByDomain(domain: AgentDomain): Promise<AgentState[]>;
35
+ terminateAgent(agentId: AgentId): Promise<boolean>;
36
+ submitTask(spec: TaskSpec): TaskDefinition;
37
+ submitBatchTasks(specs: TaskSpec[]): TaskDefinition[];
38
+ assignNextTask(agentId: AgentId): TaskDefinition | undefined;
39
+ completeTask(taskId: TaskId, result: TaskResult): void;
40
+ getCurrentPhase(): PhaseId;
41
+ advancePhase(): PhaseId;
42
+ getPhaseDefinition(phaseId: PhaseId): PhaseDefinition;
43
+ getMilestones(): MilestoneDefinition[];
44
+ completeMilestone(milestoneId: string): void;
45
+ sendMessage<T>(message: Omit<SwarmMessage<T>, 'id' | 'timestamp'>): void;
46
+ broadcast<T>(from: AgentId, type: MessageType, payload: T): void;
47
+ onMessage<T>(handler: MessageHandler<T>): () => void;
48
+ getState(): SwarmState;
49
+ getMetrics(): SwarmMetrics;
50
+ getAgentRegistry(): IAgentRegistry;
51
+ getTaskOrchestrator(): ITaskOrchestrator;
52
+ onSwarmEvent(handler: EventHandler): () => void;
53
+ }
54
+ /**
55
+ * @deprecated Use UnifiedSwarmCoordinator directly instead.
56
+ * This class is maintained for backward compatibility only.
57
+ *
58
+ * Migration guide:
59
+ * ```typescript
60
+ * // OLD:
61
+ * const hub = createSwarmHub();
62
+ * await hub.initialize();
63
+ *
64
+ * // NEW:
65
+ * const coordinator = createUnifiedSwarmCoordinator();
66
+ * await coordinator.initialize();
67
+ * ```
68
+ */
69
+ export declare class SwarmHub implements ISwarmHub {
70
+ private coordinator;
71
+ private eventBus;
72
+ private agentRegistry;
73
+ private taskOrchestrator;
74
+ private currentPhase;
75
+ private phases;
76
+ private milestones;
77
+ private messageHandlers;
78
+ private messageCounter;
79
+ private startTime;
80
+ constructor(eventBus?: IEventBus);
81
+ /**
82
+ * @deprecated Delegates to UnifiedSwarmCoordinator.initialize()
83
+ */
84
+ initialize(config?: Partial<SwarmConfig>): Promise<void>;
85
+ /**
86
+ * @deprecated Delegates to UnifiedSwarmCoordinator.shutdown()
87
+ */
88
+ shutdown(): Promise<void>;
89
+ /**
90
+ * @deprecated Check UnifiedSwarmCoordinator state instead
91
+ */
92
+ isInitialized(): boolean;
93
+ spawnAgent(agentId: AgentId): Promise<AgentState>;
94
+ spawnAllAgents(): Promise<Map<AgentId, AgentState>>;
95
+ spawnAgentsByDomain(domain: AgentDomain): Promise<AgentState[]>;
96
+ terminateAgent(agentId: AgentId): Promise<boolean>;
97
+ submitTask(spec: TaskSpec): TaskDefinition;
98
+ submitBatchTasks(specs: TaskSpec[]): TaskDefinition[];
99
+ assignNextTask(agentId: AgentId): TaskDefinition | undefined;
100
+ completeTask(taskId: TaskId, result: TaskResult): void;
101
+ getCurrentPhase(): PhaseId;
102
+ advancePhase(): PhaseId;
103
+ getPhaseDefinition(phaseId: PhaseId): PhaseDefinition;
104
+ getMilestones(): MilestoneDefinition[];
105
+ completeMilestone(milestoneId: string): void;
106
+ sendMessage<T>(message: Omit<SwarmMessage<T>, 'id' | 'timestamp'>): void;
107
+ broadcast<T>(from: AgentId, type: MessageType, payload: T): void;
108
+ onMessage<T>(handler: MessageHandler<T>): () => void;
109
+ getState(): SwarmState;
110
+ getMetrics(): SwarmMetrics;
111
+ getAgentRegistry(): IAgentRegistry;
112
+ getTaskOrchestrator(): ITaskOrchestrator;
113
+ onSwarmEvent(handler: EventHandler): () => void;
114
+ /**
115
+ * Get the underlying UnifiedSwarmCoordinator for direct access.
116
+ * This is the canonical coordination engine as per ADR-003.
117
+ *
118
+ * Use this to access advanced features not exposed by the SwarmHub facade.
119
+ */
120
+ getCoordinator(): UnifiedSwarmCoordinator;
121
+ private ensureInitialized;
122
+ private convertToCoordinatorConfig;
123
+ private createPhaseDefinitions;
124
+ private initializeMilestones;
125
+ }
126
+ /**
127
+ * @deprecated Use createUnifiedSwarmCoordinator() instead.
128
+ * This factory is maintained for backward compatibility only.
129
+ *
130
+ * Migration:
131
+ * ```typescript
132
+ * // OLD:
133
+ * const hub = createSwarmHub();
134
+ *
135
+ * // NEW:
136
+ * import { createUnifiedSwarmCoordinator } from '@claude-flow/swarm';
137
+ * const coordinator = createUnifiedSwarmCoordinator();
138
+ * ```
139
+ */
140
+ export declare function createSwarmHub(eventBus?: IEventBus): ISwarmHub;
141
+ /**
142
+ * @deprecated Use UnifiedSwarmCoordinator singleton pattern instead.
143
+ * This function is maintained for backward compatibility only.
144
+ */
145
+ export declare function getSwarmHub(): ISwarmHub;
146
+ /**
147
+ * @deprecated Use coordinator.shutdown() directly instead.
148
+ */
149
+ export declare function resetSwarmHub(): void;
150
+ //# sourceMappingURL=swarm-hub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-hub.d.ts","sourceRoot":"","sources":["../../src/coordination/swarm-hub.ts"],"names":[],"mappings":"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"}