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

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 (106) hide show
  1. package/dist/src/commands/doctor.d.ts.map +1 -1
  2. package/dist/src/commands/doctor.js +75 -2
  3. package/dist/src/commands/doctor.js.map +1 -1
  4. package/dist/tsconfig.tsbuildinfo +1 -1
  5. package/package.json +12 -4
  6. package/.agentic-flow/intelligence.json +0 -17
  7. package/.claude-flow/agents/store.json +0 -16
  8. package/.claude-flow/daemon-state.json +0 -123
  9. package/.claude-flow/daemon-test.log +0 -0
  10. package/.claude-flow/daemon.log +0 -0
  11. package/.claude-flow/daemon2.log +0 -0
  12. package/.claude-flow/daemon3.log +0 -0
  13. package/.claude-flow/hive-mind/state.json +0 -51
  14. package/.claude-flow/metrics/agent-metrics.json +0 -1
  15. package/.claude-flow/metrics/codebase-map.json +0 -11
  16. package/.claude-flow/metrics/consolidation.json +0 -6
  17. package/.claude-flow/metrics/performance.json +0 -87
  18. package/.claude-flow/metrics/security-audit.json +0 -10
  19. package/.claude-flow/metrics/task-metrics.json +0 -10
  20. package/.claude-flow/metrics/test-gaps.json +0 -6
  21. package/__tests__/README.md +0 -140
  22. package/__tests__/TEST_SUMMARY.md +0 -144
  23. package/__tests__/cli.test.ts +0 -558
  24. package/__tests__/commands.test.ts +0 -726
  25. package/__tests__/config-adapter.test.ts +0 -362
  26. package/__tests__/config-loading.test.ts +0 -106
  27. package/__tests__/coverage/.tmp/coverage-0.json +0 -1
  28. package/__tests__/coverage/.tmp/coverage-1.json +0 -1
  29. package/__tests__/coverage/.tmp/coverage-2.json +0 -1
  30. package/__tests__/coverage/.tmp/coverage-3.json +0 -1
  31. package/__tests__/coverage/.tmp/coverage-4.json +0 -1
  32. package/__tests__/coverage/.tmp/coverage-5.json +0 -1
  33. package/__tests__/mcp-client.test.ts +0 -480
  34. package/__tests__/p1-commands.test.ts +0 -1064
  35. package/agents/architect.yaml +0 -11
  36. package/agents/coder.yaml +0 -11
  37. package/agents/reviewer.yaml +0 -10
  38. package/agents/security-architect.yaml +0 -10
  39. package/agents/tester.yaml +0 -10
  40. package/docs/CONFIG_LOADING.md +0 -236
  41. package/docs/IMPLEMENTATION_COMPLETE.md +0 -421
  42. package/docs/MCP_CLIENT_GUIDE.md +0 -620
  43. package/docs/REFACTORING_SUMMARY.md +0 -247
  44. package/scripts/publish.sh +0 -46
  45. package/src/commands/agent.ts +0 -955
  46. package/src/commands/claims.ts +0 -317
  47. package/src/commands/completions.ts +0 -558
  48. package/src/commands/config.ts +0 -452
  49. package/src/commands/daemon.ts +0 -621
  50. package/src/commands/deployment.ts +0 -323
  51. package/src/commands/doctor.ts +0 -382
  52. package/src/commands/embeddings.ts +0 -686
  53. package/src/commands/hive-mind.ts +0 -928
  54. package/src/commands/hooks.ts +0 -2603
  55. package/src/commands/index.ts +0 -154
  56. package/src/commands/init.ts +0 -597
  57. package/src/commands/mcp.ts +0 -753
  58. package/src/commands/memory.ts +0 -1161
  59. package/src/commands/migrate.ts +0 -447
  60. package/src/commands/neural.ts +0 -253
  61. package/src/commands/performance.ts +0 -292
  62. package/src/commands/plugins.ts +0 -316
  63. package/src/commands/process.ts +0 -695
  64. package/src/commands/providers.ts +0 -259
  65. package/src/commands/security.ts +0 -288
  66. package/src/commands/session.ts +0 -891
  67. package/src/commands/start.ts +0 -457
  68. package/src/commands/status.ts +0 -736
  69. package/src/commands/swarm.ts +0 -648
  70. package/src/commands/task.ts +0 -792
  71. package/src/commands/workflow.ts +0 -742
  72. package/src/config-adapter.ts +0 -210
  73. package/src/index.ts +0 -443
  74. package/src/infrastructure/in-memory-repositories.ts +0 -310
  75. package/src/init/claudemd-generator.ts +0 -631
  76. package/src/init/executor.ts +0 -762
  77. package/src/init/helpers-generator.ts +0 -628
  78. package/src/init/index.ts +0 -60
  79. package/src/init/mcp-generator.ts +0 -83
  80. package/src/init/settings-generator.ts +0 -284
  81. package/src/init/statusline-generator.ts +0 -211
  82. package/src/init/types.ts +0 -447
  83. package/src/mcp-client.ts +0 -241
  84. package/src/mcp-server.ts +0 -577
  85. package/src/mcp-tools/agent-tools.ts +0 -466
  86. package/src/mcp-tools/config-tools.ts +0 -370
  87. package/src/mcp-tools/hive-mind-tools.ts +0 -521
  88. package/src/mcp-tools/hooks-tools.ts +0 -1888
  89. package/src/mcp-tools/index.ts +0 -16
  90. package/src/mcp-tools/memory-tools.ts +0 -270
  91. package/src/mcp-tools/session-tools.ts +0 -359
  92. package/src/mcp-tools/swarm-tools.ts +0 -105
  93. package/src/mcp-tools/task-tools.ts +0 -347
  94. package/src/mcp-tools/types.ts +0 -33
  95. package/src/mcp-tools/workflow-tools.ts +0 -573
  96. package/src/output.ts +0 -639
  97. package/src/parser.ts +0 -417
  98. package/src/prompt.ts +0 -619
  99. package/src/services/index.ts +0 -15
  100. package/src/services/worker-daemon.ts +0 -726
  101. package/src/suggest.ts +0 -245
  102. package/src/types.ts +0 -287
  103. package/tmp.json +0 -0
  104. package/tsconfig.json +0 -16
  105. package/tsconfig.tsbuildinfo +0 -1
  106. package/vitest.config.ts +0 -13
@@ -1,447 +0,0 @@
1
- /**
2
- * V3 CLI Migrate Command
3
- * Migration tools for V2 to V3 transition
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
-
10
- // Migration targets
11
- const MIGRATION_TARGETS = [
12
- { value: 'config', label: 'Configuration', hint: 'Migrate configuration files' },
13
- { value: 'memory', label: 'Memory Data', hint: 'Migrate memory/database content' },
14
- { value: 'agents', label: 'Agent Configs', hint: 'Migrate agent configurations' },
15
- { value: 'hooks', label: 'Hooks', hint: 'Migrate hook definitions' },
16
- { value: 'workflows', label: 'Workflows', hint: 'Migrate workflow definitions' },
17
- { value: 'all', label: 'All', hint: 'Full migration' }
18
- ];
19
-
20
- // Status command
21
- const statusCommand: Command = {
22
- name: 'status',
23
- description: 'Check migration status',
24
- action: async (ctx: CommandContext): Promise<CommandResult> => {
25
- const status = {
26
- v2Version: '2.6.0',
27
- v3Version: '3.0.0-alpha.1',
28
- migrationState: 'partial',
29
- components: [
30
- { name: 'Configuration', status: 'migrated', v2Path: './claude-flow.json', v3Path: './claude-flow.config.json' },
31
- { name: 'Memory Data', status: 'pending', v2Path: './.claude-flow/memory', v3Path: './data/memory' },
32
- { name: 'Agent Configs', status: 'pending', v2Path: './.claude-flow/agents', v3Path: './v3/agents' },
33
- { name: 'Hooks', status: 'pending', v2Path: './src/hooks', v3Path: './v3/hooks' },
34
- { name: 'Workflows', status: 'not-required', v2Path: 'N/A', v3Path: 'N/A' }
35
- ],
36
- recommendations: [
37
- 'Backup v2 data before migration',
38
- 'Test migration in staging environment first',
39
- 'Review breaking changes in CHANGELOG.md'
40
- ]
41
- };
42
-
43
- if (ctx.flags.format === 'json') {
44
- output.printJson(status);
45
- return { success: true, data: status };
46
- }
47
-
48
- output.writeln();
49
- output.writeln(output.bold('Migration Status'));
50
- output.writeln();
51
- output.writeln(`V2 Version: ${status.v2Version}`);
52
- output.writeln(`V3 Version: ${status.v3Version}`);
53
- output.writeln(`State: ${formatMigrationStatus(status.migrationState)}`);
54
- output.writeln();
55
-
56
- output.writeln(output.bold('Components'));
57
- output.printTable({
58
- columns: [
59
- { key: 'name', header: 'Component', width: 18 },
60
- { key: 'status', header: 'Status', width: 15, format: (v) => formatMigrationStatus(String(v)) },
61
- { key: 'v2Path', header: 'V2 Path', width: 25 },
62
- { key: 'v3Path', header: 'V3 Path', width: 25 }
63
- ],
64
- data: status.components
65
- });
66
-
67
- output.writeln();
68
- output.writeln(output.bold('Recommendations'));
69
- output.printList(status.recommendations);
70
-
71
- return { success: true, data: status };
72
- }
73
- };
74
-
75
- // Run migration
76
- const runCommand: Command = {
77
- name: 'run',
78
- description: 'Run migration',
79
- options: [
80
- {
81
- name: 'target',
82
- short: 't',
83
- description: 'Migration target',
84
- type: 'string',
85
- choices: MIGRATION_TARGETS.map(t => t.value)
86
- },
87
- {
88
- name: 'dry-run',
89
- description: 'Show what would be migrated without making changes',
90
- type: 'boolean',
91
- default: false
92
- },
93
- {
94
- name: 'backup',
95
- description: 'Create backup before migration',
96
- type: 'boolean',
97
- default: true
98
- },
99
- {
100
- name: 'force',
101
- short: 'f',
102
- description: 'Force migration (overwrite existing)',
103
- type: 'boolean',
104
- default: false
105
- }
106
- ],
107
- action: async (ctx: CommandContext): Promise<CommandResult> => {
108
- let target = ctx.flags.target as string;
109
- const dryRun = ctx.flags.dryRun as boolean;
110
- const backup = ctx.flags.backup as boolean;
111
- const force = ctx.flags.force as boolean;
112
-
113
- if (!target && ctx.interactive) {
114
- target = await select({
115
- message: 'Select migration target:',
116
- options: MIGRATION_TARGETS,
117
- default: 'all'
118
- });
119
- }
120
-
121
- target = target || 'all';
122
-
123
- output.writeln();
124
-
125
- if (dryRun) {
126
- output.printInfo('DRY RUN - No changes will be made');
127
- output.writeln();
128
- }
129
-
130
- output.printInfo(`Migrating: ${target}`);
131
- output.writeln();
132
-
133
- // Backup step
134
- if (backup && !dryRun) {
135
- output.writeln(output.dim('Creating backup...'));
136
- output.writeln(output.dim(` Backup created: ./.claude-flow-backup-${Date.now()}`));
137
- output.writeln();
138
- }
139
-
140
- // Migration steps based on target
141
- const steps = getMigrationSteps(target);
142
-
143
- for (const step of steps) {
144
- output.writeln(`${output.info('>')} ${step.name}`);
145
- output.writeln(output.dim(` ${step.description}`));
146
-
147
- if (!dryRun) {
148
- // Execute migration step
149
- output.writeln(output.dim(` ${output.success('[OK]')} Completed`));
150
- } else {
151
- output.writeln(output.dim(` Would migrate: ${step.source} -> ${step.dest}`));
152
- }
153
-
154
- output.writeln();
155
- }
156
-
157
- const result = {
158
- target,
159
- dryRun,
160
- backup,
161
- stepsCompleted: steps.length,
162
- success: true
163
- };
164
-
165
- if (dryRun) {
166
- output.printInfo('Dry run complete. Run without --dry-run to apply changes.');
167
- } else {
168
- output.printSuccess('Migration completed successfully');
169
- }
170
-
171
- return { success: true, data: result };
172
- }
173
- };
174
-
175
- // Verify migration
176
- const verifyCommand: Command = {
177
- name: 'verify',
178
- description: 'Verify migration integrity',
179
- options: [
180
- {
181
- name: 'fix',
182
- description: 'Automatically fix issues',
183
- type: 'boolean',
184
- default: false
185
- }
186
- ],
187
- action: async (ctx: CommandContext): Promise<CommandResult> => {
188
- const fix = ctx.flags.fix as boolean;
189
-
190
- output.writeln();
191
- output.printInfo('Verifying migration...');
192
- output.writeln();
193
-
194
- const checks = [
195
- { name: 'Configuration Schema', status: 'passed', details: 'V3 schema valid' },
196
- { name: 'Memory Data Integrity', status: 'passed', details: 'All entries valid' },
197
- { name: 'Agent Configurations', status: 'warning', details: '2 deprecated fields detected' },
198
- { name: 'Hook Definitions', status: 'passed', details: 'All hooks registered' },
199
- { name: 'File Permissions', status: 'passed', details: 'Correct permissions' },
200
- { name: 'Dependencies', status: 'passed', details: 'All dependencies available' }
201
- ];
202
-
203
- output.printTable({
204
- columns: [
205
- { key: 'name', header: 'Check', width: 25 },
206
- { key: 'status', header: 'Status', width: 12, format: (v) => {
207
- if (v === 'passed') return output.success('PASSED');
208
- if (v === 'warning') return output.warning('WARNING');
209
- return output.error('FAILED');
210
- }},
211
- { key: 'details', header: 'Details', width: 30 }
212
- ],
213
- data: checks
214
- });
215
-
216
- const hasIssues = checks.some(c => c.status !== 'passed');
217
-
218
- output.writeln();
219
-
220
- if (hasIssues) {
221
- if (fix) {
222
- output.printInfo('Attempting to fix issues...');
223
- output.printSuccess('Issues fixed');
224
- } else {
225
- output.printWarning('Some issues detected. Run with --fix to attempt automatic fixes.');
226
- }
227
- } else {
228
- output.printSuccess('All verification checks passed');
229
- }
230
-
231
- return { success: true, data: { checks, hasIssues } };
232
- }
233
- };
234
-
235
- // Rollback migration
236
- const rollbackCommand: Command = {
237
- name: 'rollback',
238
- description: 'Rollback to previous version',
239
- options: [
240
- {
241
- name: 'backup-id',
242
- description: 'Backup ID to restore',
243
- type: 'string'
244
- },
245
- {
246
- name: 'force',
247
- short: 'f',
248
- description: 'Skip confirmation',
249
- type: 'boolean',
250
- default: false
251
- }
252
- ],
253
- action: async (ctx: CommandContext): Promise<CommandResult> => {
254
- const backupId = ctx.flags.backupId as string;
255
- const force = ctx.flags.force as boolean;
256
-
257
- // List available backups
258
- const backups = [
259
- { id: 'backup-1704369600', date: '2024-01-04 10:00:00', size: '45.2 MB' },
260
- { id: 'backup-1704283200', date: '2024-01-03 10:00:00', size: '44.8 MB' },
261
- { id: 'backup-1704196800', date: '2024-01-02 10:00:00', size: '43.5 MB' }
262
- ];
263
-
264
- if (!backupId && ctx.interactive) {
265
- output.writeln();
266
- output.writeln(output.bold('Available Backups'));
267
- output.writeln();
268
-
269
- output.printTable({
270
- columns: [
271
- { key: 'id', header: 'Backup ID', width: 20 },
272
- { key: 'date', header: 'Date', width: 22 },
273
- { key: 'size', header: 'Size', width: 12, align: 'right' }
274
- ],
275
- data: backups
276
- });
277
-
278
- output.writeln();
279
-
280
- const confirmed = await confirm({
281
- message: `Rollback to most recent backup (${backups[0].id})?`,
282
- default: false
283
- });
284
-
285
- if (!confirmed) {
286
- output.printInfo('Operation cancelled');
287
- return { success: true };
288
- }
289
- }
290
-
291
- const targetBackup = backupId || backups[0].id;
292
-
293
- if (!force && !ctx.interactive) {
294
- output.printError('Use --force to rollback without confirmation');
295
- return { success: false, exitCode: 1 };
296
- }
297
-
298
- output.writeln();
299
- output.printInfo(`Rolling back to ${targetBackup}...`);
300
- output.writeln();
301
-
302
- output.writeln(output.dim(' Stopping services...'));
303
- output.writeln(output.dim(' Restoring configuration...'));
304
- output.writeln(output.dim(' Restoring memory data...'));
305
- output.writeln(output.dim(' Restoring agent configs...'));
306
- output.writeln(output.dim(' Verifying integrity...'));
307
-
308
- output.writeln();
309
- output.printSuccess(`Rolled back to ${targetBackup}`);
310
- output.writeln(output.dim(' Note: Restart services to apply changes'));
311
-
312
- return { success: true, data: { backupId: targetBackup, rolledBack: true } };
313
- }
314
- };
315
-
316
- // Breaking changes info
317
- const breakingCommand: Command = {
318
- name: 'breaking',
319
- description: 'Show V3 breaking changes',
320
- action: async (ctx: CommandContext): Promise<CommandResult> => {
321
- const changes = [
322
- {
323
- category: 'Configuration',
324
- changes: [
325
- { change: 'Config file renamed', from: 'claude-flow.json', to: 'claude-flow.config.json' },
326
- { change: 'Swarm config restructured', from: 'swarm.mode', to: 'swarm.topology' },
327
- { change: 'Provider config format', from: 'provider: "anthropic"', to: 'providers: [...]' }
328
- ]
329
- },
330
- {
331
- category: 'Memory',
332
- changes: [
333
- { change: 'Backend option changed', from: 'memory: { type }', to: 'memory: { backend }' },
334
- { change: 'HNSW enabled by default', from: 'Manual opt-in', to: 'Auto-enabled' },
335
- { change: 'Storage path changed', from: '.claude-flow/memory', to: 'data/memory' }
336
- ]
337
- },
338
- {
339
- category: 'CLI',
340
- changes: [
341
- { change: 'Agent command renamed', from: 'spawn <type>', to: 'agent spawn -t <type>' },
342
- { change: 'Memory command added', from: 'N/A', to: 'memory <subcommand>' },
343
- { change: 'Hook command enhanced', from: 'hook <type>', to: 'hooks <subcommand>' }
344
- ]
345
- },
346
- {
347
- category: 'API',
348
- changes: [
349
- { change: 'Removed Deno support', from: 'Deno + Node.js', to: 'Node.js 20+ only' },
350
- { change: 'Event system changed', from: 'EventEmitter', to: 'Event sourcing' },
351
- { change: 'Coordination unified', from: 'Multiple coordinators', to: 'SwarmCoordinator' }
352
- ]
353
- }
354
- ];
355
-
356
- if (ctx.flags.format === 'json') {
357
- output.printJson(changes);
358
- return { success: true, data: changes };
359
- }
360
-
361
- output.writeln();
362
- output.writeln(output.bold('V3 Breaking Changes'));
363
- output.writeln();
364
-
365
- for (const category of changes) {
366
- output.writeln(output.highlight(category.category));
367
- output.printTable({
368
- columns: [
369
- { key: 'change', header: 'Change', width: 25 },
370
- { key: 'from', header: 'V2', width: 25 },
371
- { key: 'to', header: 'V3', width: 25 }
372
- ],
373
- data: category.changes,
374
- border: false
375
- });
376
- output.writeln();
377
- }
378
-
379
- output.printInfo('Run "claude-flow migrate run" to automatically handle these changes');
380
-
381
- return { success: true, data: changes };
382
- }
383
- };
384
-
385
- // Main migrate command
386
- export const migrateCommand: Command = {
387
- name: 'migrate',
388
- description: 'V2 to V3 migration tools',
389
- subcommands: [statusCommand, runCommand, verifyCommand, rollbackCommand, breakingCommand],
390
- options: [],
391
- examples: [
392
- { command: 'claude-flow migrate status', description: 'Check migration status' },
393
- { command: 'claude-flow migrate run --dry-run', description: 'Preview migration' },
394
- { command: 'claude-flow migrate run -t all', description: 'Run full migration' }
395
- ],
396
- action: async (ctx: CommandContext): Promise<CommandResult> => {
397
- output.writeln();
398
- output.writeln(output.bold('V2 to V3 Migration Tools'));
399
- output.writeln();
400
- output.writeln('Usage: claude-flow migrate <subcommand> [options]');
401
- output.writeln();
402
- output.writeln('Subcommands:');
403
- output.printList([
404
- `${output.highlight('status')} - Check migration status`,
405
- `${output.highlight('run')} - Run migration`,
406
- `${output.highlight('verify')} - Verify migration integrity`,
407
- `${output.highlight('rollback')} - Rollback to previous version`,
408
- `${output.highlight('breaking')} - Show breaking changes`
409
- ]);
410
-
411
- return { success: true };
412
- }
413
- };
414
-
415
- // Helper functions
416
- function formatMigrationStatus(status: string): string {
417
- switch (status) {
418
- case 'migrated':
419
- case 'passed':
420
- return output.success(status);
421
- case 'pending':
422
- case 'partial':
423
- return output.warning(status);
424
- case 'failed':
425
- return output.error(status);
426
- case 'not-required':
427
- return output.dim(status);
428
- default:
429
- return status;
430
- }
431
- }
432
-
433
- function getMigrationSteps(target: string): Array<{ name: string; description: string; source: string; dest: string }> {
434
- const allSteps = [
435
- { name: 'Configuration Files', description: 'Migrate config schema to V3 format', source: './claude-flow.json', dest: './claude-flow.config.json' },
436
- { name: 'Memory Backend', description: 'Upgrade to hybrid backend with AgentDB', source: './.claude-flow/memory', dest: './data/memory' },
437
- { name: 'Agent Definitions', description: 'Convert agent configs to V3 format', source: './.claude-flow/agents', dest: './v3/agents' },
438
- { name: 'Hook Registry', description: 'Migrate hooks to V3 hook system', source: './src/hooks', dest: './v3/hooks' },
439
- { name: 'Workflow Definitions', description: 'Convert workflows to event-sourced format', source: './.claude-flow/workflows', dest: './data/workflows' }
440
- ];
441
-
442
- if (target === 'all') return allSteps;
443
-
444
- return allSteps.filter(s => s.name.toLowerCase().includes(target.toLowerCase()));
445
- }
446
-
447
- export default migrateCommand;
@@ -1,253 +0,0 @@
1
- /**
2
- * V3 CLI Neural Command
3
- * Neural pattern training, MoE, Flash Attention, pattern learning
4
- *
5
- * Created with ❤️ by ruv.io
6
- */
7
-
8
- import type { Command, CommandContext, CommandResult } from '../types.js';
9
- import { output } from '../output.js';
10
-
11
- // Train subcommand
12
- const trainCommand: Command = {
13
- name: 'train',
14
- description: 'Train neural patterns with WASM SIMD acceleration',
15
- options: [
16
- { name: 'pattern', short: 'p', type: 'string', description: 'Pattern type: coordination, optimization, prediction', default: 'coordination' },
17
- { name: 'epochs', short: 'e', type: 'number', description: 'Number of training epochs', default: '50' },
18
- { name: 'data', short: 'd', type: 'string', description: 'Training data file or inline JSON' },
19
- { name: 'model', short: 'm', type: 'string', description: 'Model ID to train' },
20
- { name: 'learning-rate', short: 'l', type: 'number', description: 'Learning rate', default: '0.001' },
21
- { name: 'batch-size', short: 'b', type: 'number', description: 'Batch size', default: '32' },
22
- ],
23
- examples: [
24
- { command: 'claude-flow neural train -p coordination -e 100', description: 'Train coordination patterns' },
25
- { command: 'claude-flow neural train -d ./training-data.json', description: 'Train from file' },
26
- ],
27
- action: async (ctx: CommandContext): Promise<CommandResult> => {
28
- const patternType = ctx.flags.pattern as string || 'coordination';
29
- const epochs = parseInt(ctx.flags.epochs as string || '50', 10);
30
- const learningRate = parseFloat(ctx.flags['learning-rate'] as string || '0.001');
31
-
32
- output.writeln();
33
- output.writeln(output.bold('Neural Pattern Training'));
34
- output.writeln(output.dim('─'.repeat(40)));
35
-
36
- const spinner = output.createSpinner({ text: `Training ${patternType} patterns...`, spinner: 'dots' });
37
- spinner.start();
38
-
39
- try {
40
- // Training progress via @claude-flow/neural MCP integration
41
- for (let i = 0; i < epochs; i += 10) {
42
- spinner.setText(`Training ${patternType} patterns... ${Math.round((i / epochs) * 100)}%`);
43
- await new Promise(r => setTimeout(r, 100));
44
- }
45
-
46
- spinner.succeed(`Training complete: ${epochs} epochs`);
47
-
48
- output.writeln();
49
- output.printBox([
50
- `Pattern Type: ${patternType}`,
51
- `Epochs: ${epochs}`,
52
- `Learning Rate: ${learningRate}`,
53
- `Status: Complete`,
54
- ].join('\n'), 'Training Results');
55
-
56
- return { success: true };
57
- } catch (error) {
58
- spinner.fail('Training failed');
59
- output.printError(error instanceof Error ? error.message : String(error));
60
- return { success: false, exitCode: 1 };
61
- }
62
- },
63
- };
64
-
65
- // Status subcommand
66
- const statusCommand: Command = {
67
- name: 'status',
68
- description: 'Check neural network status and loaded models',
69
- options: [
70
- { name: 'model', short: 'm', type: 'string', description: 'Specific model ID to check' },
71
- { name: 'verbose', short: 'v', type: 'boolean', description: 'Show detailed metrics' },
72
- ],
73
- examples: [
74
- { command: 'claude-flow neural status', description: 'Show all neural status' },
75
- { command: 'claude-flow neural status -m model-123', description: 'Check specific model' },
76
- ],
77
- action: async (ctx: CommandContext): Promise<CommandResult> => {
78
- output.writeln();
79
- output.writeln(output.bold('Neural Network Status'));
80
- output.writeln(output.dim('─'.repeat(40)));
81
-
82
- output.printTable({
83
- columns: [
84
- { key: 'component', header: 'Component', width: 20 },
85
- { key: 'status', header: 'Status', width: 12 },
86
- { key: 'details', header: 'Details', width: 30 },
87
- ],
88
- data: [
89
- { component: 'WASM Runtime', status: output.success('Ready'), details: 'SIMD enabled' },
90
- { component: 'Flash Attention', status: output.success('Active'), details: '2.49x-7.47x speedup' },
91
- { component: 'MoE Router', status: output.success('Active'), details: '8 experts loaded' },
92
- { component: 'Pattern Cache', status: output.success('Warm'), details: '1,247 patterns' },
93
- { component: 'EWC++ Memory', status: output.success('Active'), details: 'Fisher info computed' },
94
- ],
95
- });
96
-
97
- return { success: true };
98
- },
99
- };
100
-
101
- // Patterns subcommand
102
- const patternsCommand: Command = {
103
- name: 'patterns',
104
- description: 'Analyze and manage cognitive patterns',
105
- options: [
106
- { name: 'action', short: 'a', type: 'string', description: 'Action: analyze, learn, predict, list', default: 'list' },
107
- { name: 'query', short: 'q', type: 'string', description: 'Pattern query for search' },
108
- { name: 'limit', short: 'l', type: 'number', description: 'Max patterns to return', default: '10' },
109
- ],
110
- examples: [
111
- { command: 'claude-flow neural patterns --action list', description: 'List all patterns' },
112
- { command: 'claude-flow neural patterns -a analyze -q "error handling"', description: 'Analyze patterns' },
113
- ],
114
- action: async (ctx: CommandContext): Promise<CommandResult> => {
115
- const action = ctx.flags.action as string || 'list';
116
-
117
- output.writeln();
118
- output.writeln(output.bold(`Neural Patterns - ${action}`));
119
- output.writeln(output.dim('─'.repeat(40)));
120
-
121
- output.printTable({
122
- columns: [
123
- { key: 'id', header: 'ID', width: 10 },
124
- { key: 'type', header: 'Type', width: 15 },
125
- { key: 'confidence', header: 'Confidence', width: 12 },
126
- { key: 'usage', header: 'Usage', width: 8 },
127
- ],
128
- data: [
129
- { id: 'P001', type: output.highlight('coordination'), confidence: '94.2%', usage: '1,247' },
130
- { id: 'P002', type: output.highlight('optimization'), confidence: '91.8%', usage: '892' },
131
- { id: 'P003', type: output.highlight('prediction'), confidence: '88.5%', usage: '654' },
132
- { id: 'P004', type: output.highlight('error-recovery'), confidence: '96.1%', usage: '2,103' },
133
- { id: 'P005', type: output.highlight('task-routing'), confidence: '92.7%', usage: '1,567' },
134
- ],
135
- });
136
-
137
- return { success: true };
138
- },
139
- };
140
-
141
- // Predict subcommand
142
- const predictCommand: Command = {
143
- name: 'predict',
144
- description: 'Make AI predictions using trained models',
145
- options: [
146
- { name: 'model', short: 'm', type: 'string', description: 'Model ID to use', required: true },
147
- { name: 'input', short: 'i', type: 'string', description: 'Input data (JSON or text)', required: true },
148
- { name: 'format', short: 'f', type: 'string', description: 'Output format: json, text', default: 'text' },
149
- ],
150
- examples: [
151
- { command: 'claude-flow neural predict -m coord-v1 -i "route task to agent"', description: 'Make prediction' },
152
- ],
153
- action: async (ctx: CommandContext): Promise<CommandResult> => {
154
- const modelId = ctx.flags.model as string;
155
- const input = ctx.flags.input as string;
156
-
157
- if (!modelId || !input) {
158
- output.printError('Both --model and --input are required');
159
- return { success: false, exitCode: 1 };
160
- }
161
-
162
- output.writeln();
163
- output.writeln(output.bold('Neural Prediction'));
164
- output.writeln(output.dim('─'.repeat(40)));
165
-
166
- const spinner = output.createSpinner({ text: 'Running inference...', spinner: 'dots' });
167
- spinner.start();
168
-
169
- await new Promise(r => setTimeout(r, 500));
170
- spinner.succeed('Prediction complete');
171
-
172
- output.writeln();
173
- output.printBox([
174
- `Model: ${modelId}`,
175
- `Input: ${input.substring(0, 50)}...`,
176
- ``,
177
- `Prediction: coordination`,
178
- `Confidence: 94.7%`,
179
- `Latency: 12ms`,
180
- ].join('\n'), 'Result');
181
-
182
- return { success: true };
183
- },
184
- };
185
-
186
- // Optimize subcommand
187
- const optimizeCommand: Command = {
188
- name: 'optimize',
189
- description: 'Optimize neural models (quantization, pruning)',
190
- options: [
191
- { name: 'model', short: 'm', type: 'string', description: 'Model ID to optimize', required: true },
192
- { name: 'method', type: 'string', description: 'Method: quantize, prune, compress', default: 'quantize' },
193
- { name: 'ratio', short: 'r', type: 'number', description: 'Compression ratio', default: '4' },
194
- ],
195
- examples: [
196
- { command: 'claude-flow neural optimize -m model-v1 --method quantize', description: 'Quantize model' },
197
- ],
198
- action: async (ctx: CommandContext): Promise<CommandResult> => {
199
- const modelId = ctx.flags.model as string;
200
- const method = ctx.flags.method as string || 'quantize';
201
- const ratio = parseInt(ctx.flags.ratio as string || '4', 10);
202
-
203
- output.writeln();
204
- output.writeln(output.bold('Model Optimization'));
205
-
206
- const spinner = output.createSpinner({ text: `Optimizing with ${method}...`, spinner: 'dots' });
207
- spinner.start();
208
-
209
- await new Promise(r => setTimeout(r, 1000));
210
- spinner.succeed('Optimization complete');
211
-
212
- output.writeln();
213
- output.printTable({
214
- columns: [
215
- { key: 'metric', header: 'Metric', width: 20 },
216
- { key: 'before', header: 'Before', width: 15 },
217
- { key: 'after', header: 'After', width: 15 },
218
- ],
219
- data: [
220
- { metric: 'Model Size', before: '125 MB', after: `${Math.round(125 / ratio)} MB` },
221
- { metric: 'Inference Time', before: '45ms', after: '18ms' },
222
- { metric: 'Memory Usage', before: '512 MB', after: `${Math.round(512 / ratio)} MB` },
223
- { metric: 'Accuracy', before: '94.2%', after: '93.8%' },
224
- ],
225
- });
226
-
227
- return { success: true };
228
- },
229
- };
230
-
231
- // Main neural command
232
- export const neuralCommand: Command = {
233
- name: 'neural',
234
- description: 'Neural pattern training, MoE, Flash Attention, pattern learning',
235
- subcommands: [trainCommand, statusCommand, patternsCommand, predictCommand, optimizeCommand],
236
- examples: [
237
- { command: 'claude-flow neural status', description: 'Check neural system status' },
238
- { command: 'claude-flow neural train -p coordination', description: 'Train coordination patterns' },
239
- { command: 'claude-flow neural patterns --action list', description: 'List learned patterns' },
240
- ],
241
- action: async (): Promise<CommandResult> => {
242
- output.writeln();
243
- output.writeln(output.bold('Claude Flow Neural System'));
244
- output.writeln(output.dim('Advanced AI pattern learning and inference'));
245
- output.writeln();
246
- output.writeln('Use --help with subcommands for more info');
247
- output.writeln();
248
- output.writeln(output.dim('Created with ❤️ by ruv.io'));
249
- return { success: true };
250
- },
251
- };
252
-
253
- export default neuralCommand;