@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.
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +75 -2
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -4
- package/.agentic-flow/intelligence.json +0 -17
- package/.claude-flow/agents/store.json +0 -16
- package/.claude-flow/daemon-state.json +0 -123
- package/.claude-flow/daemon-test.log +0 -0
- package/.claude-flow/daemon.log +0 -0
- package/.claude-flow/daemon2.log +0 -0
- package/.claude-flow/daemon3.log +0 -0
- package/.claude-flow/hive-mind/state.json +0 -51
- package/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude-flow/metrics/codebase-map.json +0 -11
- package/.claude-flow/metrics/consolidation.json +0 -6
- package/.claude-flow/metrics/performance.json +0 -87
- package/.claude-flow/metrics/security-audit.json +0 -10
- package/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude-flow/metrics/test-gaps.json +0 -6
- package/__tests__/README.md +0 -140
- package/__tests__/TEST_SUMMARY.md +0 -144
- package/__tests__/cli.test.ts +0 -558
- package/__tests__/commands.test.ts +0 -726
- package/__tests__/config-adapter.test.ts +0 -362
- package/__tests__/config-loading.test.ts +0 -106
- package/__tests__/coverage/.tmp/coverage-0.json +0 -1
- package/__tests__/coverage/.tmp/coverage-1.json +0 -1
- package/__tests__/coverage/.tmp/coverage-2.json +0 -1
- package/__tests__/coverage/.tmp/coverage-3.json +0 -1
- package/__tests__/coverage/.tmp/coverage-4.json +0 -1
- package/__tests__/coverage/.tmp/coverage-5.json +0 -1
- package/__tests__/mcp-client.test.ts +0 -480
- package/__tests__/p1-commands.test.ts +0 -1064
- package/agents/architect.yaml +0 -11
- package/agents/coder.yaml +0 -11
- package/agents/reviewer.yaml +0 -10
- package/agents/security-architect.yaml +0 -10
- package/agents/tester.yaml +0 -10
- package/docs/CONFIG_LOADING.md +0 -236
- package/docs/IMPLEMENTATION_COMPLETE.md +0 -421
- package/docs/MCP_CLIENT_GUIDE.md +0 -620
- package/docs/REFACTORING_SUMMARY.md +0 -247
- package/scripts/publish.sh +0 -46
- package/src/commands/agent.ts +0 -955
- package/src/commands/claims.ts +0 -317
- package/src/commands/completions.ts +0 -558
- package/src/commands/config.ts +0 -452
- package/src/commands/daemon.ts +0 -621
- package/src/commands/deployment.ts +0 -323
- package/src/commands/doctor.ts +0 -382
- package/src/commands/embeddings.ts +0 -686
- package/src/commands/hive-mind.ts +0 -928
- package/src/commands/hooks.ts +0 -2603
- package/src/commands/index.ts +0 -154
- package/src/commands/init.ts +0 -597
- package/src/commands/mcp.ts +0 -753
- package/src/commands/memory.ts +0 -1161
- package/src/commands/migrate.ts +0 -447
- package/src/commands/neural.ts +0 -253
- package/src/commands/performance.ts +0 -292
- package/src/commands/plugins.ts +0 -316
- package/src/commands/process.ts +0 -695
- package/src/commands/providers.ts +0 -259
- package/src/commands/security.ts +0 -288
- package/src/commands/session.ts +0 -891
- package/src/commands/start.ts +0 -457
- package/src/commands/status.ts +0 -736
- package/src/commands/swarm.ts +0 -648
- package/src/commands/task.ts +0 -792
- package/src/commands/workflow.ts +0 -742
- package/src/config-adapter.ts +0 -210
- package/src/index.ts +0 -443
- package/src/infrastructure/in-memory-repositories.ts +0 -310
- package/src/init/claudemd-generator.ts +0 -631
- package/src/init/executor.ts +0 -762
- package/src/init/helpers-generator.ts +0 -628
- package/src/init/index.ts +0 -60
- package/src/init/mcp-generator.ts +0 -83
- package/src/init/settings-generator.ts +0 -284
- package/src/init/statusline-generator.ts +0 -211
- package/src/init/types.ts +0 -447
- package/src/mcp-client.ts +0 -241
- package/src/mcp-server.ts +0 -577
- package/src/mcp-tools/agent-tools.ts +0 -466
- package/src/mcp-tools/config-tools.ts +0 -370
- package/src/mcp-tools/hive-mind-tools.ts +0 -521
- package/src/mcp-tools/hooks-tools.ts +0 -1888
- package/src/mcp-tools/index.ts +0 -16
- package/src/mcp-tools/memory-tools.ts +0 -270
- package/src/mcp-tools/session-tools.ts +0 -359
- package/src/mcp-tools/swarm-tools.ts +0 -105
- package/src/mcp-tools/task-tools.ts +0 -347
- package/src/mcp-tools/types.ts +0 -33
- package/src/mcp-tools/workflow-tools.ts +0 -573
- package/src/output.ts +0 -639
- package/src/parser.ts +0 -417
- package/src/prompt.ts +0 -619
- package/src/services/index.ts +0 -15
- package/src/services/worker-daemon.ts +0 -726
- package/src/suggest.ts +0 -245
- package/src/types.ts +0 -287
- package/tmp.json +0 -0
- package/tsconfig.json +0 -16
- package/tsconfig.tsbuildinfo +0 -1
- package/vitest.config.ts +0 -13
package/src/commands/migrate.ts
DELETED
|
@@ -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;
|
package/src/commands/neural.ts
DELETED
|
@@ -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;
|