@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.
- 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
|
@@ -1,323 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V3 CLI Deployment Command
|
|
3
|
-
* Deployment management, environments, rollbacks
|
|
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
|
-
// Deploy subcommand
|
|
12
|
-
const deployCommand: Command = {
|
|
13
|
-
name: 'deploy',
|
|
14
|
-
description: 'Deploy to target environment',
|
|
15
|
-
options: [
|
|
16
|
-
{ name: 'env', short: 'e', type: 'string', description: 'Environment: dev, staging, prod', default: 'staging' },
|
|
17
|
-
{ name: 'version', short: 'v', type: 'string', description: 'Version to deploy', default: 'latest' },
|
|
18
|
-
{ name: 'dry-run', short: 'd', type: 'boolean', description: 'Simulate deployment without changes' },
|
|
19
|
-
{ name: 'force', short: 'f', type: 'boolean', description: 'Force deployment without checks' },
|
|
20
|
-
{ name: 'rollback-on-fail', type: 'boolean', description: 'Auto rollback on failure', default: 'true' },
|
|
21
|
-
],
|
|
22
|
-
examples: [
|
|
23
|
-
{ command: 'claude-flow deployment deploy -e prod', description: 'Deploy to production' },
|
|
24
|
-
{ command: 'claude-flow deployment deploy --dry-run', description: 'Simulate deployment' },
|
|
25
|
-
],
|
|
26
|
-
action: async (ctx: CommandContext): Promise<CommandResult> => {
|
|
27
|
-
const env = ctx.flags.env as string || 'staging';
|
|
28
|
-
const version = ctx.flags.version as string || 'latest';
|
|
29
|
-
const dryRun = ctx.flags['dry-run'] as boolean;
|
|
30
|
-
|
|
31
|
-
output.writeln();
|
|
32
|
-
output.writeln(output.bold(`Deployment: ${env.toUpperCase()}`));
|
|
33
|
-
output.writeln(output.dim('─'.repeat(50)));
|
|
34
|
-
|
|
35
|
-
if (dryRun) {
|
|
36
|
-
output.printWarning('DRY RUN - No changes will be made');
|
|
37
|
-
output.writeln();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const steps = [
|
|
41
|
-
{ name: 'Pre-flight checks', status: 'running' },
|
|
42
|
-
{ name: 'Build artifacts', status: 'pending' },
|
|
43
|
-
{ name: 'Run tests', status: 'pending' },
|
|
44
|
-
{ name: 'Security scan', status: 'pending' },
|
|
45
|
-
{ name: 'Deploy to target', status: 'pending' },
|
|
46
|
-
{ name: 'Health checks', status: 'pending' },
|
|
47
|
-
{ name: 'DNS update', status: 'pending' },
|
|
48
|
-
];
|
|
49
|
-
|
|
50
|
-
for (const step of steps) {
|
|
51
|
-
const spinner = output.createSpinner({ text: step.name + '...', spinner: 'dots' });
|
|
52
|
-
spinner.start();
|
|
53
|
-
await new Promise(r => setTimeout(r, 400));
|
|
54
|
-
spinner.succeed(step.name);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
output.writeln();
|
|
58
|
-
output.printBox([
|
|
59
|
-
`Environment: ${env}`,
|
|
60
|
-
`Version: ${version}`,
|
|
61
|
-
`Status: ${output.success('Deployed')}`,
|
|
62
|
-
``,
|
|
63
|
-
`URL: https://${env === 'prod' ? 'api' : env}.claude-flow.io`,
|
|
64
|
-
`Deployed at: ${new Date().toISOString()}`,
|
|
65
|
-
`Duration: 12.4s`,
|
|
66
|
-
].join('\n'), 'Deployment Complete');
|
|
67
|
-
|
|
68
|
-
return { success: true };
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
// Status subcommand
|
|
73
|
-
const statusCommand: Command = {
|
|
74
|
-
name: 'status',
|
|
75
|
-
description: 'Check deployment status across environments',
|
|
76
|
-
options: [
|
|
77
|
-
{ name: 'env', short: 'e', type: 'string', description: 'Specific environment to check' },
|
|
78
|
-
{ name: 'watch', short: 'w', type: 'boolean', description: 'Watch for changes' },
|
|
79
|
-
],
|
|
80
|
-
examples: [
|
|
81
|
-
{ command: 'claude-flow deployment status', description: 'Show all environments' },
|
|
82
|
-
{ command: 'claude-flow deployment status -e prod', description: 'Check production' },
|
|
83
|
-
],
|
|
84
|
-
action: async (ctx: CommandContext): Promise<CommandResult> => {
|
|
85
|
-
output.writeln();
|
|
86
|
-
output.writeln(output.bold('Deployment Status'));
|
|
87
|
-
output.writeln(output.dim('─'.repeat(70)));
|
|
88
|
-
|
|
89
|
-
output.printTable({
|
|
90
|
-
columns: [
|
|
91
|
-
{ key: 'env', header: 'Environment', width: 12 },
|
|
92
|
-
{ key: 'version', header: 'Version', width: 18 },
|
|
93
|
-
{ key: 'status', header: 'Status', width: 12 },
|
|
94
|
-
{ key: 'health', header: 'Health', width: 10 },
|
|
95
|
-
{ key: 'deployed', header: 'Deployed', width: 20 },
|
|
96
|
-
],
|
|
97
|
-
data: [
|
|
98
|
-
{ env: 'Production', version: 'v3.0.0-alpha.10', status: output.success('Active'), health: output.success('100%'), deployed: '2h ago' },
|
|
99
|
-
{ env: 'Staging', version: 'v3.0.0-alpha.11', status: output.success('Active'), health: output.success('100%'), deployed: '30m ago' },
|
|
100
|
-
{ env: 'Development', version: 'v3.0.0-alpha.12', status: output.success('Active'), health: output.success('100%'), deployed: '5m ago' },
|
|
101
|
-
{ env: 'Preview', version: 'pr-456', status: output.warning('Deploying'), health: output.dim('--'), deployed: 'In progress' },
|
|
102
|
-
],
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
return { success: true };
|
|
106
|
-
},
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// Rollback subcommand
|
|
110
|
-
const rollbackCommand: Command = {
|
|
111
|
-
name: 'rollback',
|
|
112
|
-
description: 'Rollback to previous deployment',
|
|
113
|
-
options: [
|
|
114
|
-
{ name: 'env', short: 'e', type: 'string', description: 'Environment to rollback', required: true },
|
|
115
|
-
{ name: 'version', short: 'v', type: 'string', description: 'Specific version to rollback to' },
|
|
116
|
-
{ name: 'steps', short: 's', type: 'number', description: 'Number of versions to rollback', default: '1' },
|
|
117
|
-
],
|
|
118
|
-
examples: [
|
|
119
|
-
{ command: 'claude-flow deployment rollback -e prod', description: 'Rollback production' },
|
|
120
|
-
{ command: 'claude-flow deployment rollback -e prod -v v3.0.0', description: 'Rollback to specific version' },
|
|
121
|
-
],
|
|
122
|
-
action: async (ctx: CommandContext): Promise<CommandResult> => {
|
|
123
|
-
const env = ctx.flags.env as string;
|
|
124
|
-
const version = ctx.flags.version as string;
|
|
125
|
-
|
|
126
|
-
if (!env) {
|
|
127
|
-
output.printError('Environment is required for rollback');
|
|
128
|
-
return { success: false, exitCode: 1 };
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
output.writeln();
|
|
132
|
-
output.writeln(output.bold(`Rollback: ${env.toUpperCase()}`));
|
|
133
|
-
output.writeln(output.dim('─'.repeat(40)));
|
|
134
|
-
|
|
135
|
-
output.printWarning(`Rolling back ${env} to ${version || 'previous version'}`);
|
|
136
|
-
output.writeln();
|
|
137
|
-
|
|
138
|
-
const spinner = output.createSpinner({ text: 'Initiating rollback...', spinner: 'dots' });
|
|
139
|
-
spinner.start();
|
|
140
|
-
|
|
141
|
-
const steps = ['Stopping current deployment', 'Restoring previous version', 'Running health checks', 'Updating DNS'];
|
|
142
|
-
for (const step of steps) {
|
|
143
|
-
spinner.setText(step + '...');
|
|
144
|
-
await new Promise(r => setTimeout(r, 400));
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
spinner.succeed('Rollback complete');
|
|
148
|
-
|
|
149
|
-
output.writeln();
|
|
150
|
-
output.printBox([
|
|
151
|
-
`Environment: ${env}`,
|
|
152
|
-
`Rolled back to: ${version || 'v3.0.0-alpha.9'}`,
|
|
153
|
-
`Status: ${output.success('Active')}`,
|
|
154
|
-
].join('\n'), 'Rollback Complete');
|
|
155
|
-
|
|
156
|
-
return { success: true };
|
|
157
|
-
},
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
// History subcommand
|
|
161
|
-
const historyCommand: Command = {
|
|
162
|
-
name: 'history',
|
|
163
|
-
description: 'View deployment history',
|
|
164
|
-
options: [
|
|
165
|
-
{ name: 'env', short: 'e', type: 'string', description: 'Filter by environment' },
|
|
166
|
-
{ name: 'limit', short: 'l', type: 'number', description: 'Number of entries', default: '10' },
|
|
167
|
-
],
|
|
168
|
-
examples: [
|
|
169
|
-
{ command: 'claude-flow deployment history', description: 'Show all history' },
|
|
170
|
-
{ command: 'claude-flow deployment history -e prod', description: 'Production history' },
|
|
171
|
-
],
|
|
172
|
-
action: async (ctx: CommandContext): Promise<CommandResult> => {
|
|
173
|
-
const env = ctx.flags.env as string;
|
|
174
|
-
|
|
175
|
-
output.writeln();
|
|
176
|
-
output.writeln(output.bold(`Deployment History${env ? `: ${env}` : ''}`));
|
|
177
|
-
output.writeln(output.dim('─'.repeat(80)));
|
|
178
|
-
|
|
179
|
-
output.printTable({
|
|
180
|
-
columns: [
|
|
181
|
-
{ key: 'id', header: 'ID', width: 10 },
|
|
182
|
-
{ key: 'env', header: 'Env', width: 10 },
|
|
183
|
-
{ key: 'version', header: 'Version', width: 18 },
|
|
184
|
-
{ key: 'status', header: 'Status', width: 12 },
|
|
185
|
-
{ key: 'deployer', header: 'Deployer', width: 12 },
|
|
186
|
-
{ key: 'timestamp', header: 'Timestamp', width: 20 },
|
|
187
|
-
],
|
|
188
|
-
data: [
|
|
189
|
-
{ id: 'dep-123', env: 'prod', version: 'v3.0.0-alpha.10', status: output.success('Success'), deployer: 'ci-bot', timestamp: '2024-01-15 14:30' },
|
|
190
|
-
{ id: 'dep-122', env: 'staging', version: 'v3.0.0-alpha.11', status: output.success('Success'), deployer: 'ci-bot', timestamp: '2024-01-15 14:00' },
|
|
191
|
-
{ id: 'dep-121', env: 'prod', version: 'v3.0.0-alpha.9', status: output.dim('Rolled back'), deployer: 'ci-bot', timestamp: '2024-01-15 12:30' },
|
|
192
|
-
{ id: 'dep-120', env: 'staging', version: 'v3.0.0-alpha.10', status: output.success('Success'), deployer: 'developer', timestamp: '2024-01-15 10:00' },
|
|
193
|
-
{ id: 'dep-119', env: 'dev', version: 'v3.0.0-alpha.10', status: output.error('Failed'), deployer: 'developer', timestamp: '2024-01-15 09:30' },
|
|
194
|
-
],
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
return { success: true };
|
|
198
|
-
},
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
// Environments subcommand
|
|
202
|
-
const environmentsCommand: Command = {
|
|
203
|
-
name: 'environments',
|
|
204
|
-
description: 'Manage deployment environments',
|
|
205
|
-
aliases: ['envs'],
|
|
206
|
-
options: [
|
|
207
|
-
{ name: 'action', short: 'a', type: 'string', description: 'Action: list, create, delete', default: 'list' },
|
|
208
|
-
{ name: 'name', short: 'n', type: 'string', description: 'Environment name' },
|
|
209
|
-
],
|
|
210
|
-
examples: [
|
|
211
|
-
{ command: 'claude-flow deployment environments', description: 'List environments' },
|
|
212
|
-
{ command: 'claude-flow deployment envs -a create -n preview', description: 'Create environment' },
|
|
213
|
-
],
|
|
214
|
-
action: async (ctx: CommandContext): Promise<CommandResult> => {
|
|
215
|
-
output.writeln();
|
|
216
|
-
output.writeln(output.bold('Deployment Environments'));
|
|
217
|
-
output.writeln(output.dim('─'.repeat(60)));
|
|
218
|
-
|
|
219
|
-
output.printTable({
|
|
220
|
-
columns: [
|
|
221
|
-
{ key: 'name', header: 'Name', width: 15 },
|
|
222
|
-
{ key: 'url', header: 'URL', width: 30 },
|
|
223
|
-
{ key: 'auto', header: 'Auto Deploy', width: 12 },
|
|
224
|
-
{ key: 'protected', header: 'Protected', width: 12 },
|
|
225
|
-
],
|
|
226
|
-
data: [
|
|
227
|
-
{ name: 'production', url: 'https://api.claude-flow.io', auto: output.error('No'), protected: output.success('Yes') },
|
|
228
|
-
{ name: 'staging', url: 'https://staging.claude-flow.io', auto: output.success('Yes'), protected: output.error('No') },
|
|
229
|
-
{ name: 'development', url: 'https://dev.claude-flow.io', auto: output.success('Yes'), protected: output.error('No') },
|
|
230
|
-
{ name: 'preview/*', url: 'https://pr-*.claude-flow.io', auto: output.success('Yes'), protected: output.error('No') },
|
|
231
|
-
],
|
|
232
|
-
});
|
|
233
|
-
|
|
234
|
-
return { success: true };
|
|
235
|
-
},
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
// Logs subcommand
|
|
239
|
-
const logsCommand: Command = {
|
|
240
|
-
name: 'logs',
|
|
241
|
-
description: 'View deployment logs',
|
|
242
|
-
options: [
|
|
243
|
-
{ name: 'deployment', short: 'd', type: 'string', description: 'Deployment ID' },
|
|
244
|
-
{ name: 'env', short: 'e', type: 'string', description: 'Environment' },
|
|
245
|
-
{ name: 'follow', short: 'f', type: 'boolean', description: 'Follow log output' },
|
|
246
|
-
{ name: 'lines', short: 'n', type: 'number', description: 'Number of lines', default: '50' },
|
|
247
|
-
],
|
|
248
|
-
examples: [
|
|
249
|
-
{ command: 'claude-flow deployment logs -e prod', description: 'View production logs' },
|
|
250
|
-
{ command: 'claude-flow deployment logs -d dep-123', description: 'View specific deployment' },
|
|
251
|
-
],
|
|
252
|
-
action: async (ctx: CommandContext): Promise<CommandResult> => {
|
|
253
|
-
const env = ctx.flags.env as string || 'staging';
|
|
254
|
-
|
|
255
|
-
output.writeln();
|
|
256
|
-
output.writeln(output.bold(`Deployment Logs: ${env}`));
|
|
257
|
-
output.writeln(output.dim('─'.repeat(60)));
|
|
258
|
-
output.writeln();
|
|
259
|
-
|
|
260
|
-
const logs = [
|
|
261
|
-
{ time: '14:30:01', level: 'INFO', msg: 'Starting deployment v3.0.0-alpha.10' },
|
|
262
|
-
{ time: '14:30:02', level: 'INFO', msg: 'Building Docker image...' },
|
|
263
|
-
{ time: '14:30:15', level: 'INFO', msg: 'Image built: sha256:abc123...' },
|
|
264
|
-
{ time: '14:30:16', level: 'INFO', msg: 'Pushing to registry...' },
|
|
265
|
-
{ time: '14:30:25', level: 'INFO', msg: 'Deploying to kubernetes...' },
|
|
266
|
-
{ time: '14:30:30', level: 'INFO', msg: 'Rolling update started' },
|
|
267
|
-
{ time: '14:30:45', level: 'INFO', msg: 'Health check passed (1/3)' },
|
|
268
|
-
{ time: '14:30:50', level: 'INFO', msg: 'Health check passed (2/3)' },
|
|
269
|
-
{ time: '14:30:55', level: 'INFO', msg: 'Health check passed (3/3)' },
|
|
270
|
-
{ time: '14:31:00', level: 'INFO', msg: 'Deployment complete!' },
|
|
271
|
-
];
|
|
272
|
-
|
|
273
|
-
for (const log of logs) {
|
|
274
|
-
const levelColor = log.level === 'ERROR' ? output.error(log.level) :
|
|
275
|
-
log.level === 'WARN' ? output.warning(log.level) :
|
|
276
|
-
output.dim(log.level);
|
|
277
|
-
output.writeln(`${output.dim(log.time)} ${levelColor} ${log.msg}`);
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
return { success: true };
|
|
281
|
-
},
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
// Main deployment command
|
|
285
|
-
export const deploymentCommand: Command = {
|
|
286
|
-
name: 'deployment',
|
|
287
|
-
description: 'Deployment management, environments, rollbacks',
|
|
288
|
-
aliases: ['deploy'],
|
|
289
|
-
subcommands: [deployCommand, statusCommand, rollbackCommand, historyCommand, environmentsCommand, logsCommand],
|
|
290
|
-
examples: [
|
|
291
|
-
{ command: 'claude-flow deployment deploy -e prod', description: 'Deploy to production' },
|
|
292
|
-
{ command: 'claude-flow deployment status', description: 'Check all environments' },
|
|
293
|
-
{ command: 'claude-flow deployment rollback -e prod', description: 'Rollback production' },
|
|
294
|
-
],
|
|
295
|
-
action: async (): Promise<CommandResult> => {
|
|
296
|
-
output.writeln();
|
|
297
|
-
output.writeln(output.bold('Claude Flow Deployment'));
|
|
298
|
-
output.writeln(output.dim('Multi-environment deployment management'));
|
|
299
|
-
output.writeln();
|
|
300
|
-
output.writeln('Subcommands:');
|
|
301
|
-
output.printList([
|
|
302
|
-
'deploy - Deploy to target environment',
|
|
303
|
-
'status - Check deployment status',
|
|
304
|
-
'rollback - Rollback to previous version',
|
|
305
|
-
'history - View deployment history',
|
|
306
|
-
'environments - Manage deployment environments',
|
|
307
|
-
'logs - View deployment logs',
|
|
308
|
-
]);
|
|
309
|
-
output.writeln();
|
|
310
|
-
output.writeln('Features:');
|
|
311
|
-
output.printList([
|
|
312
|
-
'Zero-downtime rolling deployments',
|
|
313
|
-
'Automatic rollback on failure',
|
|
314
|
-
'Environment-specific configurations',
|
|
315
|
-
'Deployment previews for PRs',
|
|
316
|
-
]);
|
|
317
|
-
output.writeln();
|
|
318
|
-
output.writeln(output.dim('Created with ❤️ by ruv.io'));
|
|
319
|
-
return { success: true };
|
|
320
|
-
},
|
|
321
|
-
};
|
|
322
|
-
|
|
323
|
-
export default deploymentCommand;
|