@claude-flow/cli 3.0.0-alpha.13 → 3.0.0-alpha.14

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 (102) hide show
  1. package/package.json +12 -4
  2. package/.agentic-flow/intelligence.json +0 -17
  3. package/.claude-flow/agents/store.json +0 -16
  4. package/.claude-flow/daemon-state.json +0 -123
  5. package/.claude-flow/daemon-test.log +0 -0
  6. package/.claude-flow/daemon.log +0 -0
  7. package/.claude-flow/daemon2.log +0 -0
  8. package/.claude-flow/daemon3.log +0 -0
  9. package/.claude-flow/hive-mind/state.json +0 -51
  10. package/.claude-flow/metrics/agent-metrics.json +0 -1
  11. package/.claude-flow/metrics/codebase-map.json +0 -11
  12. package/.claude-flow/metrics/consolidation.json +0 -6
  13. package/.claude-flow/metrics/performance.json +0 -87
  14. package/.claude-flow/metrics/security-audit.json +0 -10
  15. package/.claude-flow/metrics/task-metrics.json +0 -10
  16. package/.claude-flow/metrics/test-gaps.json +0 -6
  17. package/__tests__/README.md +0 -140
  18. package/__tests__/TEST_SUMMARY.md +0 -144
  19. package/__tests__/cli.test.ts +0 -558
  20. package/__tests__/commands.test.ts +0 -726
  21. package/__tests__/config-adapter.test.ts +0 -362
  22. package/__tests__/config-loading.test.ts +0 -106
  23. package/__tests__/coverage/.tmp/coverage-0.json +0 -1
  24. package/__tests__/coverage/.tmp/coverage-1.json +0 -1
  25. package/__tests__/coverage/.tmp/coverage-2.json +0 -1
  26. package/__tests__/coverage/.tmp/coverage-3.json +0 -1
  27. package/__tests__/coverage/.tmp/coverage-4.json +0 -1
  28. package/__tests__/coverage/.tmp/coverage-5.json +0 -1
  29. package/__tests__/mcp-client.test.ts +0 -480
  30. package/__tests__/p1-commands.test.ts +0 -1064
  31. package/agents/architect.yaml +0 -11
  32. package/agents/coder.yaml +0 -11
  33. package/agents/reviewer.yaml +0 -10
  34. package/agents/security-architect.yaml +0 -10
  35. package/agents/tester.yaml +0 -10
  36. package/docs/CONFIG_LOADING.md +0 -236
  37. package/docs/IMPLEMENTATION_COMPLETE.md +0 -421
  38. package/docs/MCP_CLIENT_GUIDE.md +0 -620
  39. package/docs/REFACTORING_SUMMARY.md +0 -247
  40. package/scripts/publish.sh +0 -46
  41. package/src/commands/agent.ts +0 -955
  42. package/src/commands/claims.ts +0 -317
  43. package/src/commands/completions.ts +0 -558
  44. package/src/commands/config.ts +0 -452
  45. package/src/commands/daemon.ts +0 -621
  46. package/src/commands/deployment.ts +0 -323
  47. package/src/commands/doctor.ts +0 -382
  48. package/src/commands/embeddings.ts +0 -686
  49. package/src/commands/hive-mind.ts +0 -928
  50. package/src/commands/hooks.ts +0 -2603
  51. package/src/commands/index.ts +0 -154
  52. package/src/commands/init.ts +0 -597
  53. package/src/commands/mcp.ts +0 -753
  54. package/src/commands/memory.ts +0 -1161
  55. package/src/commands/migrate.ts +0 -447
  56. package/src/commands/neural.ts +0 -253
  57. package/src/commands/performance.ts +0 -292
  58. package/src/commands/plugins.ts +0 -316
  59. package/src/commands/process.ts +0 -695
  60. package/src/commands/providers.ts +0 -259
  61. package/src/commands/security.ts +0 -288
  62. package/src/commands/session.ts +0 -891
  63. package/src/commands/start.ts +0 -457
  64. package/src/commands/status.ts +0 -736
  65. package/src/commands/swarm.ts +0 -648
  66. package/src/commands/task.ts +0 -792
  67. package/src/commands/workflow.ts +0 -742
  68. package/src/config-adapter.ts +0 -210
  69. package/src/index.ts +0 -443
  70. package/src/infrastructure/in-memory-repositories.ts +0 -310
  71. package/src/init/claudemd-generator.ts +0 -631
  72. package/src/init/executor.ts +0 -762
  73. package/src/init/helpers-generator.ts +0 -628
  74. package/src/init/index.ts +0 -60
  75. package/src/init/mcp-generator.ts +0 -83
  76. package/src/init/settings-generator.ts +0 -284
  77. package/src/init/statusline-generator.ts +0 -211
  78. package/src/init/types.ts +0 -447
  79. package/src/mcp-client.ts +0 -241
  80. package/src/mcp-server.ts +0 -577
  81. package/src/mcp-tools/agent-tools.ts +0 -466
  82. package/src/mcp-tools/config-tools.ts +0 -370
  83. package/src/mcp-tools/hive-mind-tools.ts +0 -521
  84. package/src/mcp-tools/hooks-tools.ts +0 -1888
  85. package/src/mcp-tools/index.ts +0 -16
  86. package/src/mcp-tools/memory-tools.ts +0 -270
  87. package/src/mcp-tools/session-tools.ts +0 -359
  88. package/src/mcp-tools/swarm-tools.ts +0 -105
  89. package/src/mcp-tools/task-tools.ts +0 -347
  90. package/src/mcp-tools/types.ts +0 -33
  91. package/src/mcp-tools/workflow-tools.ts +0 -573
  92. package/src/output.ts +0 -639
  93. package/src/parser.ts +0 -417
  94. package/src/prompt.ts +0 -619
  95. package/src/services/index.ts +0 -15
  96. package/src/services/worker-daemon.ts +0 -726
  97. package/src/suggest.ts +0 -245
  98. package/src/types.ts +0 -287
  99. package/tmp.json +0 -0
  100. package/tsconfig.json +0 -16
  101. package/tsconfig.tsbuildinfo +0 -1
  102. package/vitest.config.ts +0 -13
@@ -1,648 +0,0 @@
1
- /**
2
- * V3 CLI Swarm Command
3
- * Swarm coordination and management commands
4
- */
5
-
6
- import type { Command, CommandContext, CommandResult } from '../types.js';
7
- import { output } from '../output.js';
8
- import { select, confirm, multiSelect } from '../prompt.js';
9
- import { callMCPTool, MCPClientError } from '../mcp-client.js';
10
-
11
- // Swarm topologies
12
- const TOPOLOGIES = [
13
- { value: 'hierarchical', label: 'Hierarchical', hint: 'Queen-led coordination with worker agents' },
14
- { value: 'mesh', label: 'Mesh', hint: 'Fully connected peer-to-peer network' },
15
- { value: 'ring', label: 'Ring', hint: 'Circular communication pattern' },
16
- { value: 'star', label: 'Star', hint: 'Central coordinator with spoke agents' },
17
- { value: 'hybrid', label: 'Hybrid', hint: 'Hierarchical mesh for maximum flexibility' }
18
- ];
19
-
20
- // Swarm strategies
21
- const STRATEGIES = [
22
- { value: 'research', label: 'Research', hint: 'Distributed research and analysis' },
23
- { value: 'development', label: 'Development', hint: 'Collaborative code development' },
24
- { value: 'testing', label: 'Testing', hint: 'Comprehensive test coverage' },
25
- { value: 'optimization', label: 'Optimization', hint: 'Performance optimization' },
26
- { value: 'maintenance', label: 'Maintenance', hint: 'Codebase maintenance and refactoring' },
27
- { value: 'analysis', label: 'Analysis', hint: 'Code analysis and documentation' }
28
- ];
29
-
30
- // Initialize swarm
31
- const initCommand: Command = {
32
- name: 'init',
33
- description: 'Initialize a new swarm',
34
- options: [
35
- {
36
- name: 'topology',
37
- short: 't',
38
- description: 'Swarm topology',
39
- type: 'string',
40
- choices: TOPOLOGIES.map(t => t.value),
41
- default: 'hierarchical'
42
- },
43
- {
44
- name: 'max-agents',
45
- short: 'm',
46
- description: 'Maximum number of agents',
47
- type: 'number',
48
- default: 15
49
- },
50
- {
51
- name: 'auto-scale',
52
- description: 'Enable automatic scaling',
53
- type: 'boolean',
54
- default: true
55
- },
56
- {
57
- name: 'strategy',
58
- short: 's',
59
- description: 'Coordination strategy',
60
- type: 'string',
61
- choices: STRATEGIES.map(s => s.value)
62
- },
63
- {
64
- name: 'v3-mode',
65
- description: 'Enable V3 15-agent hierarchical mesh mode',
66
- type: 'boolean',
67
- default: false
68
- }
69
- ],
70
- action: async (ctx: CommandContext): Promise<CommandResult> => {
71
- let topology = ctx.flags.topology as string;
72
- const maxAgents = ctx.flags.maxAgents as number || 15;
73
- const v3Mode = ctx.flags.v3Mode as boolean;
74
-
75
- // V3 mode enables hierarchical-mesh hybrid
76
- if (v3Mode) {
77
- topology = 'hierarchical-mesh';
78
- output.printInfo('V3 Mode: Using hierarchical-mesh topology with 15-agent coordination');
79
- }
80
-
81
- // Interactive topology selection
82
- if (!topology && ctx.interactive) {
83
- topology = await select({
84
- message: 'Select swarm topology:',
85
- options: TOPOLOGIES,
86
- default: 'hierarchical'
87
- });
88
- }
89
-
90
- output.writeln();
91
- output.printInfo('Initializing swarm...');
92
-
93
- try {
94
- // Call MCP tool to initialize swarm
95
- const result = await callMCPTool<{
96
- swarmId: string;
97
- topology: string;
98
- initializedAt: string;
99
- config: {
100
- topology: string;
101
- maxAgents: number;
102
- currentAgents: number;
103
- communicationProtocol?: string;
104
- autoScaling?: boolean;
105
- };
106
- }>('swarm/init', {
107
- topology: topology as 'hierarchical' | 'mesh' | 'adaptive' | 'collective' | 'hierarchical-mesh',
108
- maxAgents,
109
- config: {
110
- communicationProtocol: 'message-bus',
111
- consensusMechanism: 'majority',
112
- failureHandling: 'retry',
113
- loadBalancing: true,
114
- autoScaling: ctx.flags.autoScale ?? true,
115
- },
116
- metadata: {
117
- v3Mode,
118
- strategy: ctx.flags.strategy || 'development',
119
- },
120
- });
121
-
122
- // Display initialization progress
123
- output.writeln(output.dim(' Creating coordination topology...'));
124
- output.writeln(output.dim(' Initializing memory namespace...'));
125
- output.writeln(output.dim(' Setting up communication channels...'));
126
-
127
- if (v3Mode) {
128
- output.writeln(output.dim(' Enabling Flash Attention (2.49x-7.47x speedup)...'));
129
- output.writeln(output.dim(' Configuring AgentDB integration (150x faster)...'));
130
- output.writeln(output.dim(' Initializing SONA learning system...'));
131
- }
132
-
133
- output.writeln();
134
- output.printTable({
135
- columns: [
136
- { key: 'property', header: 'Property', width: 20 },
137
- { key: 'value', header: 'Value', width: 35 }
138
- ],
139
- data: [
140
- { property: 'Swarm ID', value: result.swarmId },
141
- { property: 'Topology', value: result.topology },
142
- { property: 'Max Agents', value: result.config.maxAgents },
143
- { property: 'Auto Scale', value: result.config.autoScaling ? 'Enabled' : 'Disabled' },
144
- { property: 'Protocol', value: result.config.communicationProtocol || 'N/A' },
145
- { property: 'V3 Mode', value: v3Mode ? 'Enabled' : 'Disabled' }
146
- ]
147
- });
148
-
149
- output.writeln();
150
- output.printSuccess('Swarm initialized successfully');
151
-
152
- if (ctx.flags.format === 'json') {
153
- output.printJson(result);
154
- }
155
-
156
- return { success: true, data: result };
157
- } catch (error) {
158
- if (error instanceof MCPClientError) {
159
- output.printError(`Failed to initialize swarm: ${error.message}`);
160
- } else {
161
- output.printError(`Unexpected error: ${String(error)}`);
162
- }
163
- return { success: false, exitCode: 1 };
164
- }
165
- }
166
- };
167
-
168
- // Start swarm execution
169
- const startCommand: Command = {
170
- name: 'start',
171
- description: 'Start swarm execution',
172
- options: [
173
- {
174
- name: 'objective',
175
- short: 'o',
176
- description: 'Swarm objective/task',
177
- type: 'string',
178
- required: true
179
- },
180
- {
181
- name: 'strategy',
182
- short: 's',
183
- description: 'Execution strategy',
184
- type: 'string',
185
- choices: STRATEGIES.map(s => s.value)
186
- },
187
- {
188
- name: 'parallel',
189
- short: 'p',
190
- description: 'Enable parallel execution',
191
- type: 'boolean',
192
- default: true
193
- },
194
- {
195
- name: 'monitor',
196
- description: 'Enable real-time monitoring',
197
- type: 'boolean',
198
- default: true
199
- }
200
- ],
201
- examples: [
202
- { command: 'claude-flow swarm start -o "Build REST API" -s development', description: 'Start development swarm' },
203
- { command: 'claude-flow swarm start -o "Analyze codebase" --parallel', description: 'Parallel analysis' }
204
- ],
205
- action: async (ctx: CommandContext): Promise<CommandResult> => {
206
- const objective = ctx.args[0] || ctx.flags.objective as string;
207
- let strategy = ctx.flags.strategy as string;
208
-
209
- if (!objective) {
210
- output.printError('Objective is required. Use -o or provide as argument.');
211
- return { success: false, exitCode: 1 };
212
- }
213
-
214
- // Interactive strategy selection
215
- if (!strategy && ctx.interactive) {
216
- strategy = await select({
217
- message: 'Select execution strategy:',
218
- options: STRATEGIES,
219
- default: 'development'
220
- });
221
- }
222
-
223
- strategy = strategy || 'development';
224
-
225
- output.writeln();
226
- output.printInfo(`Starting swarm with objective: ${output.highlight(objective)}`);
227
- output.writeln();
228
-
229
- // Compute agent deployment plan based on strategy
230
- const agentPlan = getAgentPlan(strategy);
231
-
232
- output.writeln(output.bold('Agent Deployment Plan'));
233
- output.printTable({
234
- columns: [
235
- { key: 'role', header: 'Role', width: 20 },
236
- { key: 'type', header: 'Type', width: 15 },
237
- { key: 'count', header: 'Count', width: 8, align: 'right' },
238
- { key: 'purpose', header: 'Purpose', width: 30 }
239
- ],
240
- data: agentPlan
241
- });
242
-
243
- // Confirm execution
244
- if (ctx.interactive) {
245
- const confirmed = await confirm({
246
- message: `Deploy ${agentPlan.reduce((sum, a) => sum + a.count, 0)} agents?`,
247
- default: true
248
- });
249
-
250
- if (!confirmed) {
251
- output.printInfo('Swarm execution cancelled');
252
- return { success: true };
253
- }
254
- }
255
-
256
- output.writeln();
257
- output.printInfo('Deploying agents...');
258
-
259
- // Show deployment progress
260
- const spinner = output.createSpinner({ text: 'Initializing agents...', spinner: 'dots' });
261
- spinner.start();
262
-
263
- // Brief delay for spinner animation
264
- await new Promise(resolve => setTimeout(resolve, 500));
265
-
266
- spinner.succeed('All agents deployed');
267
-
268
- const executionState = {
269
- swarmId: `swarm-${Date.now().toString(36)}`,
270
- objective,
271
- strategy,
272
- status: 'running',
273
- agents: agentPlan.reduce((sum, a) => sum + a.count, 0),
274
- startedAt: new Date().toISOString(),
275
- parallel: ctx.flags.parallel ?? true
276
- };
277
-
278
- output.writeln();
279
- output.printSuccess('Swarm execution started');
280
- output.writeln(output.dim(` Monitor: claude-flow swarm status ${executionState.swarmId}`));
281
-
282
- return { success: true, data: executionState };
283
- }
284
- };
285
-
286
- // Swarm status
287
- const statusCommand: Command = {
288
- name: 'status',
289
- description: 'Show swarm status',
290
- action: async (ctx: CommandContext): Promise<CommandResult> => {
291
- const swarmId = ctx.args[0];
292
-
293
- // Default status (updated by MCP swarm/status when available)
294
- const status = {
295
- id: swarmId || 'swarm-current',
296
- topology: 'hybrid',
297
- status: 'running',
298
- objective: 'Build enterprise REST API with authentication',
299
- strategy: 'development',
300
- agents: {
301
- total: 15,
302
- active: 12,
303
- idle: 2,
304
- completed: 1
305
- },
306
- progress: 65,
307
- tasks: {
308
- total: 45,
309
- completed: 29,
310
- inProgress: 12,
311
- pending: 4
312
- },
313
- metrics: {
314
- tokensUsed: 234567,
315
- avgResponseTime: '1.8s',
316
- successRate: '97.2%',
317
- elapsedTime: '45m 23s'
318
- },
319
- coordination: {
320
- consensusRounds: 8,
321
- messagesSent: 1234,
322
- conflictsResolved: 3
323
- }
324
- };
325
-
326
- if (ctx.flags.format === 'json') {
327
- output.printJson(status);
328
- return { success: true, data: status };
329
- }
330
-
331
- output.writeln();
332
- output.writeln(output.bold(`Swarm Status: ${status.id}`));
333
- output.writeln();
334
-
335
- // Progress bar
336
- output.writeln(`Overall Progress: ${output.progressBar(status.progress, 100, 40)}`);
337
- output.writeln();
338
-
339
- // Agent status
340
- output.writeln(output.bold('Agents'));
341
- output.printTable({
342
- columns: [
343
- { key: 'status', header: 'Status', width: 12 },
344
- { key: 'count', header: 'Count', width: 10, align: 'right' }
345
- ],
346
- data: [
347
- { status: output.success('Active'), count: status.agents.active },
348
- { status: output.warning('Idle'), count: status.agents.idle },
349
- { status: output.dim('Completed'), count: status.agents.completed },
350
- { status: 'Total', count: status.agents.total }
351
- ]
352
- });
353
-
354
- output.writeln();
355
-
356
- // Task status
357
- output.writeln(output.bold('Tasks'));
358
- output.printTable({
359
- columns: [
360
- { key: 'status', header: 'Status', width: 12 },
361
- { key: 'count', header: 'Count', width: 10, align: 'right' }
362
- ],
363
- data: [
364
- { status: output.success('Completed'), count: status.tasks.completed },
365
- { status: output.info('In Progress'), count: status.tasks.inProgress },
366
- { status: output.dim('Pending'), count: status.tasks.pending },
367
- { status: 'Total', count: status.tasks.total }
368
- ]
369
- });
370
-
371
- output.writeln();
372
-
373
- // Metrics
374
- output.writeln(output.bold('Performance Metrics'));
375
- output.printList([
376
- `Tokens Used: ${status.metrics.tokensUsed.toLocaleString()}`,
377
- `Avg Response Time: ${status.metrics.avgResponseTime}`,
378
- `Success Rate: ${status.metrics.successRate}`,
379
- `Elapsed Time: ${status.metrics.elapsedTime}`
380
- ]);
381
-
382
- output.writeln();
383
-
384
- // Coordination stats
385
- output.writeln(output.bold('Coordination'));
386
- output.printList([
387
- `Consensus Rounds: ${status.coordination.consensusRounds}`,
388
- `Messages Sent: ${status.coordination.messagesSent}`,
389
- `Conflicts Resolved: ${status.coordination.conflictsResolved}`
390
- ]);
391
-
392
- return { success: true, data: status };
393
- }
394
- };
395
-
396
- // Stop swarm
397
- const stopCommand: Command = {
398
- name: 'stop',
399
- description: 'Stop swarm execution',
400
- options: [
401
- {
402
- name: 'force',
403
- short: 'f',
404
- description: 'Force immediate stop',
405
- type: 'boolean',
406
- default: false
407
- },
408
- {
409
- name: 'save-state',
410
- description: 'Save current state for resume',
411
- type: 'boolean',
412
- default: true
413
- }
414
- ],
415
- action: async (ctx: CommandContext): Promise<CommandResult> => {
416
- const swarmId = ctx.args[0];
417
- const force = ctx.flags.force as boolean;
418
-
419
- if (!swarmId) {
420
- output.printError('Swarm ID is required');
421
- return { success: false, exitCode: 1 };
422
- }
423
-
424
- if (ctx.interactive && !force) {
425
- const confirmed = await confirm({
426
- message: `Stop swarm ${swarmId}? Progress will be saved.`,
427
- default: false
428
- });
429
-
430
- if (!confirmed) {
431
- output.printInfo('Operation cancelled');
432
- return { success: true };
433
- }
434
- }
435
-
436
- output.printInfo(`Stopping swarm ${swarmId}...`);
437
-
438
- if (!force) {
439
- output.writeln(output.dim(' Completing in-progress tasks...'));
440
- output.writeln(output.dim(' Saving coordination state...'));
441
- output.writeln(output.dim(' Notifying agents...'));
442
- output.writeln(output.dim(' Saving memory state...'));
443
- }
444
-
445
- output.printSuccess(`Swarm ${swarmId} stopped`);
446
-
447
- return { success: true, data: { swarmId, stopped: true, force } };
448
- }
449
- };
450
-
451
- // Scale swarm
452
- const scaleCommand: Command = {
453
- name: 'scale',
454
- description: 'Scale swarm agent count',
455
- options: [
456
- {
457
- name: 'agents',
458
- short: 'a',
459
- description: 'Target number of agents',
460
- type: 'number',
461
- required: true
462
- },
463
- {
464
- name: 'type',
465
- short: 't',
466
- description: 'Agent type to scale',
467
- type: 'string'
468
- }
469
- ],
470
- action: async (ctx: CommandContext): Promise<CommandResult> => {
471
- const swarmId = ctx.args[0];
472
- const targetAgents = ctx.flags.agents as number;
473
- const agentType = ctx.flags.type as string;
474
-
475
- if (!swarmId) {
476
- output.printError('Swarm ID is required');
477
- return { success: false, exitCode: 1 };
478
- }
479
-
480
- if (!targetAgents) {
481
- output.printError('Target agent count required. Use --agents or -a');
482
- return { success: false, exitCode: 1 };
483
- }
484
-
485
- output.printInfo(`Scaling swarm ${swarmId} to ${targetAgents} agents...`);
486
-
487
- // Calculate scaling delta
488
- const currentAgents = 8;
489
- const delta = targetAgents - currentAgents;
490
-
491
- if (delta > 0) {
492
- output.writeln(output.dim(` Spawning ${delta} new agents...`));
493
- } else if (delta < 0) {
494
- output.writeln(output.dim(` Gracefully stopping ${-delta} agents...`));
495
- } else {
496
- output.printInfo('Swarm already at target size');
497
- return { success: true };
498
- }
499
-
500
- output.printSuccess(`Swarm scaled to ${targetAgents} agents`);
501
-
502
- return { success: true, data: { swarmId, agents: targetAgents, delta } };
503
- }
504
- };
505
-
506
- // Coordinate command (V3 specific)
507
- const coordinateCommand: Command = {
508
- name: 'coordinate',
509
- description: 'Execute V3 15-agent hierarchical mesh coordination',
510
- options: [
511
- {
512
- name: 'agents',
513
- description: 'Number of agents',
514
- type: 'number',
515
- default: 15
516
- },
517
- {
518
- name: 'domains',
519
- description: 'Domains to activate',
520
- type: 'array'
521
- }
522
- ],
523
- action: async (ctx: CommandContext): Promise<CommandResult> => {
524
- const agentCount = ctx.flags.agents as number || 15;
525
-
526
- output.writeln();
527
- output.writeln(output.bold('V3 15-Agent Hierarchical Mesh Coordination'));
528
- output.writeln();
529
-
530
- // V3 agent structure
531
- const v3Agents = [
532
- { id: 1, role: 'Queen Coordinator', domain: 'Orchestration', status: 'primary' },
533
- { id: 2, role: 'Security Architect', domain: 'Security', status: 'active' },
534
- { id: 3, role: 'Security Auditor', domain: 'Security', status: 'active' },
535
- { id: 4, role: 'Test Architect', domain: 'Security', status: 'active' },
536
- { id: 5, role: 'Core Architect', domain: 'Core', status: 'active' },
537
- { id: 6, role: 'Memory Specialist', domain: 'Core', status: 'active' },
538
- { id: 7, role: 'Swarm Specialist', domain: 'Core', status: 'active' },
539
- { id: 8, role: 'Integration Architect', domain: 'Integration', status: 'active' },
540
- { id: 9, role: 'Performance Engineer', domain: 'Integration', status: 'active' },
541
- { id: 10, role: 'CLI Developer', domain: 'Integration', status: 'active' },
542
- { id: 11, role: 'Hooks Developer', domain: 'Integration', status: 'active' },
543
- { id: 12, role: 'MCP Specialist', domain: 'Integration', status: 'active' },
544
- { id: 13, role: 'Project Coordinator', domain: 'Management', status: 'active' },
545
- { id: 14, role: 'Documentation Lead', domain: 'Management', status: 'standby' },
546
- { id: 15, role: 'DevOps Engineer', domain: 'Management', status: 'standby' }
547
- ].slice(0, agentCount);
548
-
549
- output.printTable({
550
- columns: [
551
- { key: 'id', header: '#', width: 3, align: 'right' },
552
- { key: 'role', header: 'Role', width: 22 },
553
- { key: 'domain', header: 'Domain', width: 15 },
554
- { key: 'status', header: 'Status', width: 10, format: (v) => {
555
- if (v === 'primary') return output.highlight(String(v));
556
- if (v === 'active') return output.success(String(v));
557
- return output.dim(String(v));
558
- }}
559
- ],
560
- data: v3Agents
561
- });
562
-
563
- output.writeln();
564
- output.printInfo('Performance Targets:');
565
- output.printList([
566
- `Flash Attention: ${output.success('2.49x-7.47x speedup')}`,
567
- `AgentDB Search: ${output.success('150x-12,500x improvement')}`,
568
- `Memory Reduction: ${output.success('50-75%')}`,
569
- `Code Reduction: ${output.success('<5,000 lines')}`
570
- ]);
571
-
572
- return { success: true, data: { agents: v3Agents, count: agentCount } };
573
- }
574
- };
575
-
576
- // Main swarm command
577
- export const swarmCommand: Command = {
578
- name: 'swarm',
579
- description: 'Swarm coordination commands',
580
- subcommands: [initCommand, startCommand, statusCommand, stopCommand, scaleCommand, coordinateCommand],
581
- options: [],
582
- examples: [
583
- { command: 'claude-flow swarm init --v3-mode', description: 'Initialize V3 swarm' },
584
- { command: 'claude-flow swarm start -o "Build API" -s development', description: 'Start development swarm' },
585
- { command: 'claude-flow swarm coordinate --agents 15', description: 'V3 coordination' }
586
- ],
587
- action: async (ctx: CommandContext): Promise<CommandResult> => {
588
- output.writeln();
589
- output.writeln(output.bold('Swarm Coordination Commands'));
590
- output.writeln();
591
- output.writeln('Usage: claude-flow swarm <subcommand> [options]');
592
- output.writeln();
593
- output.writeln('Subcommands:');
594
- output.printList([
595
- `${output.highlight('init')} - Initialize a new swarm`,
596
- `${output.highlight('start')} - Start swarm execution`,
597
- `${output.highlight('status')} - Show swarm status`,
598
- `${output.highlight('stop')} - Stop swarm execution`,
599
- `${output.highlight('scale')} - Scale swarm agent count`,
600
- `${output.highlight('coordinate')} - V3 15-agent coordination`
601
- ]);
602
-
603
- return { success: true };
604
- }
605
- };
606
-
607
- // Helper function
608
- function getAgentPlan(strategy: string): Array<{ role: string; type: string; count: number; purpose: string }> {
609
- const plans: Record<string, Array<{ role: string; type: string; count: number; purpose: string }>> = {
610
- development: [
611
- { role: 'Coordinator', type: 'coordinator', count: 1, purpose: 'Orchestrate workflow' },
612
- { role: 'Architect', type: 'architect', count: 1, purpose: 'System design' },
613
- { role: 'Coder', type: 'coder', count: 3, purpose: 'Implementation' },
614
- { role: 'Tester', type: 'tester', count: 2, purpose: 'Quality assurance' },
615
- { role: 'Reviewer', type: 'reviewer', count: 1, purpose: 'Code review' }
616
- ],
617
- research: [
618
- { role: 'Coordinator', type: 'coordinator', count: 1, purpose: 'Research coordination' },
619
- { role: 'Researcher', type: 'researcher', count: 4, purpose: 'Data gathering' },
620
- { role: 'Analyst', type: 'analyst', count: 2, purpose: 'Analysis and synthesis' }
621
- ],
622
- testing: [
623
- { role: 'Test Lead', type: 'tester', count: 1, purpose: 'Test strategy' },
624
- { role: 'Unit Tester', type: 'tester', count: 2, purpose: 'Unit tests' },
625
- { role: 'Integration Tester', type: 'tester', count: 2, purpose: 'Integration tests' },
626
- { role: 'QA Reviewer', type: 'reviewer', count: 1, purpose: 'Quality review' }
627
- ],
628
- optimization: [
629
- { role: 'Performance Lead', type: 'optimizer', count: 1, purpose: 'Performance strategy' },
630
- { role: 'Profiler', type: 'analyst', count: 2, purpose: 'Profiling' },
631
- { role: 'Optimizer', type: 'coder', count: 2, purpose: 'Optimization' }
632
- ],
633
- maintenance: [
634
- { role: 'Coordinator', type: 'coordinator', count: 1, purpose: 'Maintenance planning' },
635
- { role: 'Refactorer', type: 'coder', count: 2, purpose: 'Code cleanup' },
636
- { role: 'Documenter', type: 'researcher', count: 1, purpose: 'Documentation' }
637
- ],
638
- analysis: [
639
- { role: 'Analyst Lead', type: 'analyst', count: 1, purpose: 'Analysis coordination' },
640
- { role: 'Code Analyst', type: 'analyst', count: 2, purpose: 'Code analysis' },
641
- { role: 'Security Analyst', type: 'reviewer', count: 1, purpose: 'Security review' }
642
- ]
643
- };
644
-
645
- return plans[strategy] || plans.development;
646
- }
647
-
648
- export default swarmCommand;