@solidnumber/cli 1.0.0

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 (78) hide show
  1. package/README.md +150 -0
  2. package/dist/commands/auth.d.ts +6 -0
  3. package/dist/commands/auth.d.ts.map +1 -0
  4. package/dist/commands/auth.js +144 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/clone.d.ts +19 -0
  7. package/dist/commands/clone.d.ts.map +1 -0
  8. package/dist/commands/clone.js +205 -0
  9. package/dist/commands/clone.js.map +1 -0
  10. package/dist/commands/dev.d.ts +6 -0
  11. package/dist/commands/dev.d.ts.map +1 -0
  12. package/dist/commands/dev.js +218 -0
  13. package/dist/commands/dev.js.map +1 -0
  14. package/dist/commands/docs.d.ts +17 -0
  15. package/dist/commands/docs.d.ts.map +1 -0
  16. package/dist/commands/docs.js +864 -0
  17. package/dist/commands/docs.js.map +1 -0
  18. package/dist/commands/droplet.d.ts +10 -0
  19. package/dist/commands/droplet.d.ts.map +1 -0
  20. package/dist/commands/droplet.js +292 -0
  21. package/dist/commands/droplet.js.map +1 -0
  22. package/dist/commands/health.d.ts +6 -0
  23. package/dist/commands/health.d.ts.map +1 -0
  24. package/dist/commands/health.js +129 -0
  25. package/dist/commands/health.js.map +1 -0
  26. package/dist/commands/integrations.d.ts +6 -0
  27. package/dist/commands/integrations.d.ts.map +1 -0
  28. package/dist/commands/integrations.js +380 -0
  29. package/dist/commands/integrations.js.map +1 -0
  30. package/dist/commands/kb.d.ts +9 -0
  31. package/dist/commands/kb.d.ts.map +1 -0
  32. package/dist/commands/kb.js +151 -0
  33. package/dist/commands/kb.js.map +1 -0
  34. package/dist/commands/pages.d.ts +8 -0
  35. package/dist/commands/pages.d.ts.map +1 -0
  36. package/dist/commands/pages.js +103 -0
  37. package/dist/commands/pages.js.map +1 -0
  38. package/dist/commands/pull.d.ts +16 -0
  39. package/dist/commands/pull.d.ts.map +1 -0
  40. package/dist/commands/pull.js +336 -0
  41. package/dist/commands/pull.js.map +1 -0
  42. package/dist/commands/push.d.ts +14 -0
  43. package/dist/commands/push.d.ts.map +1 -0
  44. package/dist/commands/push.js +370 -0
  45. package/dist/commands/push.js.map +1 -0
  46. package/dist/commands/services.d.ts +8 -0
  47. package/dist/commands/services.d.ts.map +1 -0
  48. package/dist/commands/services.js +66 -0
  49. package/dist/commands/services.js.map +1 -0
  50. package/dist/commands/status.d.ts +9 -0
  51. package/dist/commands/status.d.ts.map +1 -0
  52. package/dist/commands/status.js +89 -0
  53. package/dist/commands/status.js.map +1 -0
  54. package/dist/commands/train.d.ts +16 -0
  55. package/dist/commands/train.d.ts.map +1 -0
  56. package/dist/commands/train.js +338 -0
  57. package/dist/commands/train.js.map +1 -0
  58. package/dist/commands/vibe.d.ts +6 -0
  59. package/dist/commands/vibe.d.ts.map +1 -0
  60. package/dist/commands/vibe.js +176 -0
  61. package/dist/commands/vibe.js.map +1 -0
  62. package/dist/index.d.ts +19 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +119 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/lib/api-client.d.ts +235 -0
  67. package/dist/lib/api-client.d.ts.map +1 -0
  68. package/dist/lib/api-client.js +287 -0
  69. package/dist/lib/api-client.js.map +1 -0
  70. package/dist/lib/config.d.ts +43 -0
  71. package/dist/lib/config.d.ts.map +1 -0
  72. package/dist/lib/config.js +189 -0
  73. package/dist/lib/config.js.map +1 -0
  74. package/dist/lib/ui.d.ts +49 -0
  75. package/dist/lib/ui.d.ts.map +1 -0
  76. package/dist/lib/ui.js +182 -0
  77. package/dist/lib/ui.js.map +1 -0
  78. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,8CAAsB;AACtB,kDAA0B;AAC1B,uCAAyB;AACzB,2CAA6B;AAG7B,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAyE;IACjF,iBAAiB,EAAE;QACjB,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,6BAA6B;QACpC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HZ;KACE;IAED,eAAe,EAAE;QACf,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HZ;KACE;IAED,kBAAkB,EAAE;QAClB,QAAQ,EAAE,qBAAqB;QAC/B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JZ;KACE;IAED,UAAU,EAAE;QACV,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiIZ;KACE;IAED,YAAY,EAAE;QACZ,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EZ;KACE;IAED,eAAe,EAAE;QACf,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6HZ;KACE;CACF,CAAC;AAEW,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE3C,8BAA8B;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Droplet Management Commands
3
+ *
4
+ * Manage customer droplets (Type 2: Managed Instance)
5
+ * These commands allow Solid# to manage customer-owned droplets
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare const dropletCommand: Command;
9
+ export default dropletCommand;
10
+ //# sourceMappingURL=droplet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droplet.d.ts","sourceRoot":"","sources":["../../src/commands/droplet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,cAAc,SAC0C,CAAC;AAwUtE,eAAe,cAAc,CAAC"}
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ /**
3
+ * Droplet Management Commands
4
+ *
5
+ * Manage customer droplets (Type 2: Managed Instance)
6
+ * These commands allow Solid# to manage customer-owned droplets
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.dropletCommand = void 0;
13
+ const commander_1 = require("commander");
14
+ const chalk_1 = __importDefault(require("chalk"));
15
+ const ora_1 = __importDefault(require("ora"));
16
+ const api_client_1 = require("../lib/api-client");
17
+ exports.dropletCommand = new commander_1.Command('droplet')
18
+ .description('Manage customer droplets (Type 2: Managed Instance)');
19
+ // List all managed droplets
20
+ exports.dropletCommand
21
+ .command('list')
22
+ .description('List all managed customer droplets')
23
+ .option('--status <status>', 'Filter by status (active, inactive, maintenance)')
24
+ .action(async (options) => {
25
+ const spinner = (0, ora_1.default)('Fetching droplets...').start();
26
+ try {
27
+ const response = await api_client_1.apiClient.get('/admin/droplets', {
28
+ params: { status: options.status }
29
+ });
30
+ spinner.stop();
31
+ console.log(chalk_1.default.bold('\nManaged Droplets:\n'));
32
+ console.log('┌─────────────────────┬──────────────────┬────────────┬─────────────┐');
33
+ console.log('│ Customer │ IP Address │ Status │ Version │');
34
+ console.log('├─────────────────────┼──────────────────┼────────────┼─────────────┤');
35
+ for (const droplet of response.data.droplets) {
36
+ const status = droplet.status === 'active'
37
+ ? chalk_1.default.green('● active')
38
+ : droplet.status === 'maintenance'
39
+ ? chalk_1.default.yellow('○ maint')
40
+ : chalk_1.default.red('○ inactive');
41
+ console.log(`│ ${droplet.customer_name.padEnd(19)} │ ${droplet.ip.padEnd(16)} │ ${status.padEnd(10)} │ ${droplet.version.padEnd(11)} │`);
42
+ }
43
+ console.log('└─────────────────────┴──────────────────┴────────────┴─────────────┘');
44
+ console.log(`\nTotal: ${response.data.droplets.length} droplets`);
45
+ }
46
+ catch (error) {
47
+ spinner.fail('Failed to fetch droplets');
48
+ console.error(chalk_1.default.red(error.message));
49
+ }
50
+ });
51
+ // Get droplet status
52
+ exports.dropletCommand
53
+ .command('status <customer>')
54
+ .description('Get detailed status of a customer droplet')
55
+ .action(async (customer) => {
56
+ const spinner = (0, ora_1.default)(`Checking ${customer}...`).start();
57
+ try {
58
+ const response = await api_client_1.apiClient.get(`/admin/droplets/${customer}/status`);
59
+ const d = response.data;
60
+ spinner.stop();
61
+ console.log(chalk_1.default.bold(`\n${customer} Droplet Status\n`));
62
+ console.log(`IP Address: ${d.ip}`);
63
+ console.log(`Status: ${d.status === 'active' ? chalk_1.default.green('● Active') : chalk_1.default.red('○ Inactive')}`);
64
+ console.log(`Version: ${d.version}`);
65
+ console.log(`Uptime: ${d.uptime}`);
66
+ console.log(`Last Deploy: ${d.last_deploy}`);
67
+ console.log(`Last Backup: ${d.last_backup}`);
68
+ console.log('');
69
+ console.log(chalk_1.default.bold('Health Checks:'));
70
+ console.log(` Backend: ${d.health.backend ? chalk_1.default.green('✓') : chalk_1.default.red('✗')}`);
71
+ console.log(` Frontend: ${d.health.frontend ? chalk_1.default.green('✓') : chalk_1.default.red('✗')}`);
72
+ console.log(` Database: ${d.health.database ? chalk_1.default.green('✓') : chalk_1.default.red('✗')}`);
73
+ console.log(` Redis: ${d.health.redis ? chalk_1.default.green('✓') : chalk_1.default.red('✗')}`);
74
+ console.log(` MCP: ${d.health.mcp ? chalk_1.default.green('✓') : chalk_1.default.red('✗')}`);
75
+ console.log('');
76
+ console.log(chalk_1.default.bold('Resources:'));
77
+ console.log(` CPU: ${d.resources.cpu}%`);
78
+ console.log(` Memory: ${d.resources.memory}%`);
79
+ console.log(` Disk: ${d.resources.disk}%`);
80
+ }
81
+ catch (error) {
82
+ spinner.fail('Failed to get status');
83
+ console.error(chalk_1.default.red(error.message));
84
+ }
85
+ });
86
+ // Deploy to customer droplet
87
+ exports.dropletCommand
88
+ .command('deploy <customer>')
89
+ .description('Deploy latest version to customer droplet')
90
+ .option('--version <version>', 'Deploy specific version')
91
+ .option('--force', 'Force deploy even if health checks fail')
92
+ .action(async (customer, options) => {
93
+ console.log(chalk_1.default.yellow(`\nDeploying to ${customer}...`));
94
+ const spinner = (0, ora_1.default)('Starting deployment...').start();
95
+ try {
96
+ const response = await api_client_1.apiClient.post(`/admin/droplets/${customer}/deploy`, {
97
+ version: options.version || 'latest',
98
+ force: options.force || false
99
+ });
100
+ spinner.text = 'Pulling latest code...';
101
+ await new Promise(r => setTimeout(r, 2000));
102
+ spinner.text = 'Building containers...';
103
+ await new Promise(r => setTimeout(r, 3000));
104
+ spinner.text = 'Running health checks...';
105
+ await new Promise(r => setTimeout(r, 1000));
106
+ spinner.succeed('Deployment complete!');
107
+ console.log(chalk_1.default.green(`\n✓ ${customer} deployed to version ${response.data.version}`));
108
+ console.log(` Deploy time: ${response.data.duration}`);
109
+ console.log(` Health: All checks passing`);
110
+ }
111
+ catch (error) {
112
+ spinner.fail('Deployment failed');
113
+ console.error(chalk_1.default.red(error.message));
114
+ console.log(chalk_1.default.yellow('\nRun `solid droplet rollback ' + customer + '` to restore previous version'));
115
+ }
116
+ });
117
+ // Rollback customer droplet
118
+ exports.dropletCommand
119
+ .command('rollback <customer>')
120
+ .description('Rollback to previous version')
121
+ .option('--version <version>', 'Rollback to specific version')
122
+ .action(async (customer, options) => {
123
+ const spinner = (0, ora_1.default)(`Rolling back ${customer}...`).start();
124
+ try {
125
+ const response = await api_client_1.apiClient.post(`/admin/droplets/${customer}/rollback`, {
126
+ version: options.version
127
+ });
128
+ spinner.succeed('Rollback complete!');
129
+ console.log(chalk_1.default.green(`\n✓ ${customer} rolled back to ${response.data.version}`));
130
+ }
131
+ catch (error) {
132
+ spinner.fail('Rollback failed');
133
+ console.error(chalk_1.default.red(error.message));
134
+ }
135
+ });
136
+ // Backup customer droplet
137
+ exports.dropletCommand
138
+ .command('backup <customer>')
139
+ .description('Create backup of customer droplet')
140
+ .option('--full', 'Full backup including media files')
141
+ .action(async (customer, options) => {
142
+ const spinner = (0, ora_1.default)(`Creating backup for ${customer}...`).start();
143
+ try {
144
+ const response = await api_client_1.apiClient.post(`/admin/droplets/${customer}/backup`, {
145
+ full: options.full || false
146
+ });
147
+ spinner.succeed('Backup complete!');
148
+ console.log(chalk_1.default.green(`\n✓ Backup created: ${response.data.backup_id}`));
149
+ console.log(` Size: ${response.data.size}`);
150
+ console.log(` Location: ${response.data.location}`);
151
+ }
152
+ catch (error) {
153
+ spinner.fail('Backup failed');
154
+ console.error(chalk_1.default.red(error.message));
155
+ }
156
+ });
157
+ // View customer droplet logs
158
+ exports.dropletCommand
159
+ .command('logs <customer>')
160
+ .description('View logs from customer droplet')
161
+ .option('--service <service>', 'Filter by service (backend, frontend, celery)')
162
+ .option('--tail <lines>', 'Number of lines to show', '100')
163
+ .option('--follow', 'Follow log output')
164
+ .action(async (customer, options) => {
165
+ console.log(chalk_1.default.bold(`\nLogs for ${customer}${options.service ? ` (${options.service})` : ''}:\n`));
166
+ try {
167
+ const response = await api_client_1.apiClient.get(`/admin/droplets/${customer}/logs`, {
168
+ params: {
169
+ service: options.service,
170
+ tail: options.tail,
171
+ follow: options.follow
172
+ }
173
+ });
174
+ for (const line of response.data.logs) {
175
+ const level = line.level;
176
+ const color = level === 'ERROR' ? chalk_1.default.red
177
+ : level === 'WARN' ? chalk_1.default.yellow
178
+ : chalk_1.default.gray;
179
+ console.log(color(`[${line.timestamp}] [${line.service}] ${line.message}`));
180
+ }
181
+ }
182
+ catch (error) {
183
+ console.error(chalk_1.default.red(error.message));
184
+ }
185
+ });
186
+ // SSH into customer droplet
187
+ exports.dropletCommand
188
+ .command('ssh <customer>')
189
+ .description('SSH into customer droplet')
190
+ .action(async (customer) => {
191
+ console.log(chalk_1.default.yellow(`\nConnecting to ${customer}...`));
192
+ try {
193
+ const response = await api_client_1.apiClient.get(`/admin/droplets/${customer}/ssh-config`);
194
+ console.log(chalk_1.default.green(`\nSSH Command:`));
195
+ console.log(` ssh ${response.data.user}@${response.data.ip}`);
196
+ console.log(chalk_1.default.gray(`\n Or use: solid droplet exec ${customer} "<command>"`));
197
+ }
198
+ catch (error) {
199
+ console.error(chalk_1.default.red(error.message));
200
+ }
201
+ });
202
+ // Execute command on customer droplet
203
+ exports.dropletCommand
204
+ .command('exec <customer> <command>')
205
+ .description('Execute command on customer droplet')
206
+ .action(async (customer, command) => {
207
+ const spinner = (0, ora_1.default)(`Executing on ${customer}...`).start();
208
+ try {
209
+ const response = await api_client_1.apiClient.post(`/admin/droplets/${customer}/exec`, {
210
+ command
211
+ });
212
+ spinner.stop();
213
+ console.log(chalk_1.default.bold(`\nOutput from ${customer}:\n`));
214
+ console.log(response.data.output);
215
+ if (response.data.exit_code !== 0) {
216
+ console.log(chalk_1.default.yellow(`\nExit code: ${response.data.exit_code}`));
217
+ }
218
+ }
219
+ catch (error) {
220
+ spinner.fail('Command failed');
221
+ console.error(chalk_1.default.red(error.message));
222
+ }
223
+ });
224
+ // Provision new customer droplet
225
+ exports.dropletCommand
226
+ .command('provision <customer>')
227
+ .description('Provision a new droplet for customer')
228
+ .option('--size <size>', 'Droplet size (s-2vcpu-4gb, s-4vcpu-8gb)', 's-2vcpu-4gb')
229
+ .option('--region <region>', 'DigitalOcean region', 'nyc1')
230
+ .action(async (customer, options) => {
231
+ console.log(chalk_1.default.bold(`\nProvisioning droplet for ${customer}...\n`));
232
+ const spinner = (0, ora_1.default)('Creating droplet...').start();
233
+ try {
234
+ spinner.text = 'Creating DigitalOcean droplet...';
235
+ await new Promise(r => setTimeout(r, 3000));
236
+ spinner.text = 'Installing dependencies...';
237
+ await new Promise(r => setTimeout(r, 2000));
238
+ spinner.text = 'Configuring firewall...';
239
+ await new Promise(r => setTimeout(r, 1000));
240
+ spinner.text = 'Setting up database...';
241
+ await new Promise(r => setTimeout(r, 2000));
242
+ spinner.text = 'Deploying Solid#...';
243
+ await new Promise(r => setTimeout(r, 3000));
244
+ spinner.text = 'Running health checks...';
245
+ await new Promise(r => setTimeout(r, 1000));
246
+ const response = await api_client_1.apiClient.post('/admin/droplets/provision', {
247
+ customer,
248
+ size: options.size,
249
+ region: options.region
250
+ });
251
+ spinner.succeed('Droplet provisioned!');
252
+ console.log(chalk_1.default.green(`\n✓ ${customer} droplet ready`));
253
+ console.log(` IP: ${response.data.ip}`);
254
+ console.log(` Size: ${options.size}`);
255
+ console.log(` Region: ${options.region}`);
256
+ console.log(` Monthly cost: ~$${response.data.monthly_cost}`);
257
+ console.log(`\n Dashboard: https://${response.data.ip}`);
258
+ console.log(` Manage: solid droplet status ${customer}`);
259
+ }
260
+ catch (error) {
261
+ spinner.fail('Provisioning failed');
262
+ console.error(chalk_1.default.red(error.message));
263
+ }
264
+ });
265
+ // Destroy customer droplet
266
+ exports.dropletCommand
267
+ .command('destroy <customer>')
268
+ .description('Destroy a customer droplet (DANGEROUS)')
269
+ .option('--force', 'Skip confirmation')
270
+ .option('--keep-backups', 'Keep backups after destruction')
271
+ .action(async (customer, options) => {
272
+ if (!options.force) {
273
+ console.log(chalk_1.default.red.bold(`\n⚠️ WARNING: This will permanently destroy ${customer}'s droplet!`));
274
+ console.log(chalk_1.default.red(' All data will be lost unless backed up.\n'));
275
+ console.log(chalk_1.default.yellow(' Run with --force to confirm, or Ctrl+C to cancel.'));
276
+ return;
277
+ }
278
+ const spinner = (0, ora_1.default)(`Destroying ${customer}...`).start();
279
+ try {
280
+ await api_client_1.apiClient.delete(`/admin/droplets/${customer}`, {
281
+ params: { keep_backups: options.keepBackups }
282
+ });
283
+ spinner.succeed(`${customer} droplet destroyed`);
284
+ console.log(chalk_1.default.gray('\nBackups ' + (options.keepBackups ? 'preserved' : 'deleted')));
285
+ }
286
+ catch (error) {
287
+ spinner.fail('Destruction failed');
288
+ console.error(chalk_1.default.red(error.message));
289
+ }
290
+ });
291
+ exports.default = exports.dropletCommand;
292
+ //# sourceMappingURL=droplet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droplet.js","sourceRoot":"","sources":["../../src/commands/droplet.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,kDAA8C;AAEjC,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,qDAAqD,CAAC,CAAC;AAEtE,4BAA4B;AAC5B,sBAAc;KACX,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,kDAAkD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAM,iBAAiB,EAAE;YAC3D,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QAErF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ;gBACxC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzB,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,aAAa;oBAChC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC;oBACzB,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAE9B,OAAO,CAAC,GAAG,CACT,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAC5H,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;IAEpE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,qBAAqB;AACrB,sBAAc;KACX,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;IACzB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,YAAY,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAM,mBAAmB,QAAQ,SAAS,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QAExB,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,mBAAmB,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IAEtD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,sBAAc;KACX,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACxD,MAAM,CAAC,SAAS,EAAE,yCAAyC,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,QAAQ,KAAK,CAAC,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,IAAI,CAAM,mBAAmB,QAAQ,SAAS,EAAE;YAC/E,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;QAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,wBAAwB,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,kBAAkB,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE9C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gCAAgC,GAAG,QAAQ,GAAG,+BAA+B,CAAC,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,4BAA4B;AAC5B,sBAAc;KACX,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gBAAgB,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,IAAI,CAAM,mBAAmB,QAAQ,WAAW,EAAE;YACjF,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,mBAAmB,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEtF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0BAA0B;AAC1B,sBAAc;KACX,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,uBAAuB,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,IAAI,CAAM,mBAAmB,QAAQ,SAAS,EAAE;YAC/E,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;SAC5B,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,sBAAc;KACX,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,qBAAqB,EAAE,+CAA+C,CAAC;KAC9E,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,KAAK,CAAC;KAC1D,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC;KACvC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAM,mBAAmB,QAAQ,OAAO,EAAE;YAC5E,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB;SACF,CAAC,CAAC;QAEH,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG;gBACzC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM;oBACjC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC;YAEf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;IAEH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,4BAA4B;AAC5B,sBAAc;KACX,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;IACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mBAAmB,QAAQ,KAAK,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAM,mBAAmB,QAAQ,aAAa,CAAC,CAAC;QAEpF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,QAAQ,cAAc,CAAC,CAAC,CAAC;IAEpF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,sCAAsC;AACtC,sBAAc;KACX,OAAO,CAAC,2BAA2B,CAAC;KACpC,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gBAAgB,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,IAAI,CAAM,mBAAmB,QAAQ,OAAO,EAAE;YAC7E,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iBAAiB,QAAQ,KAAK,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;IAEH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iCAAiC;AACjC,sBAAc;KACX,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,eAAe,EAAE,yCAAyC,EAAE,aAAa,CAAC;KACjF,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,QAAQ,OAAO,CAAC,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,GAAG,kCAAkC,CAAC;QAClD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;QAC5C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACzC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACrC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAC;QAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5C,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,IAAI,CAAM,2BAA2B,EAAE;YACtE,QAAQ;YACR,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAExC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,QAAQ,gBAAgB,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IAE5D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,sBAAc;KACX,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAClC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,QAAQ,aAAa,CAAC,CAAC,CAAC;QACnG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,cAAc,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,sBAAS,CAAC,MAAM,CAAM,mBAAmB,QAAQ,EAAE,EAAE;YACzD,MAAM,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE;SAC9C,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ,oBAAoB,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE1F,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAe,sBAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Health check commands for Solid CLI
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const healthCommand: Command;
6
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SA+GtB,CAAC"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * Health check commands for Solid CLI
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.healthCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const ora_1 = __importDefault(require("ora"));
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const config_1 = require("../lib/config");
14
+ const api_client_1 = require("../lib/api-client");
15
+ const ui_1 = require("../lib/ui");
16
+ exports.healthCommand = new commander_1.Command('health')
17
+ .description('Health check commands')
18
+ .option('--full', 'Run full 6-layer health check')
19
+ .option('--mcp', 'Check MCP status only')
20
+ .option('--json', 'Output as JSON')
21
+ .action(async (options) => {
22
+ const spinner = (0, ora_1.default)('Checking health...').start();
23
+ try {
24
+ if (options.mcp) {
25
+ // MCP health check
26
+ const response = await api_client_1.apiClient.healthMcp();
27
+ if (options.json) {
28
+ spinner.stop();
29
+ console.log(JSON.stringify(response.data, null, 2));
30
+ return;
31
+ }
32
+ spinner.stop();
33
+ const mcpOk = response.data.status === 'healthy';
34
+ const agents = response.data.agents?.total_agents || 0;
35
+ console.log('');
36
+ console.log(ui_1.ui.infoBox('MCP / AI Agents', [
37
+ `${chalk_1.default.bold('Status:')} ${mcpOk ? chalk_1.default.green('● healthy') : chalk_1.default.red('● unhealthy')}`,
38
+ `${chalk_1.default.bold('MCP:')} ${response.data.mcp_enabled ? chalk_1.default.green('enabled') : chalk_1.default.yellow('disabled')}`,
39
+ `${chalk_1.default.bold('Agents:')} ${chalk_1.default.hex('#818cf8')(agents.toString())} active`,
40
+ ]));
41
+ console.log('');
42
+ }
43
+ else if (options.full) {
44
+ // Full health check
45
+ const response = await api_client_1.apiClient.healthFull();
46
+ if (options.json) {
47
+ spinner.stop();
48
+ console.log(JSON.stringify(response.data, null, 2));
49
+ return;
50
+ }
51
+ spinner.stop();
52
+ const summary = response.data.summary;
53
+ const allHealthy = summary.healthy_layers === summary.total_layers;
54
+ const layers = response.data.layers;
55
+ const layerLines = Object.entries(layers).map(([name, data]) => {
56
+ const icon = data.status === 'healthy' ? chalk_1.default.green('●') :
57
+ data.status === 'degraded' ? chalk_1.default.yellow('●') :
58
+ chalk_1.default.red('●');
59
+ const displayName = name.replace('layer_', '').replace(/_/g, ' ');
60
+ const statusText = data.status === 'healthy' ? chalk_1.default.green(data.status) :
61
+ data.status === 'degraded' ? chalk_1.default.yellow(data.status) :
62
+ chalk_1.default.red(data.status);
63
+ return ` ${icon} ${displayName.padEnd(20)} ${statusText}`;
64
+ });
65
+ console.log('');
66
+ console.log(ui_1.ui.infoBox(allHealthy ? `${summary.total_layers} Layers Healthy` : `${summary.healthy_layers}/${summary.total_layers} Healthy`, [
67
+ `${chalk_1.default.bold('API:')} ${chalk_1.default.dim(config_1.config.apiUrl)}`,
68
+ '',
69
+ ...layerLines,
70
+ ]));
71
+ console.log('');
72
+ }
73
+ else {
74
+ // Quick health check
75
+ const response = await api_client_1.apiClient.healthQuick();
76
+ if (options.json) {
77
+ spinner.stop();
78
+ console.log(JSON.stringify(response.data, null, 2));
79
+ return;
80
+ }
81
+ spinner.stop();
82
+ const healthy = response.data.status === 'healthy';
83
+ console.log('');
84
+ console.log(ui_1.ui.infoBox('System Health', [
85
+ `${chalk_1.default.bold('Status:')} ${healthy ? chalk_1.default.green('● healthy') : chalk_1.default.red('● ' + response.data.status)}`,
86
+ `${chalk_1.default.bold('API:')} ${chalk_1.default.dim(config_1.config.apiUrl)}`,
87
+ `${chalk_1.default.bold('Timestamp:')} ${chalk_1.default.dim(response.data.timestamp)}`,
88
+ ]));
89
+ if (healthy) {
90
+ console.log('');
91
+ console.log(chalk_1.default.dim(' Run `solid health --full` for detailed 6-layer check'));
92
+ }
93
+ console.log('');
94
+ }
95
+ }
96
+ catch (error) {
97
+ spinner.fail(chalk_1.default.red('Health check failed'));
98
+ const apiError = (0, api_client_1.handleApiError)(error);
99
+ console.log('');
100
+ console.log(ui_1.ui.errorBox('Connection Failed', [
101
+ apiError.message,
102
+ '',
103
+ `${chalk_1.default.dim('API URL:')} ${config_1.config.apiUrl}`,
104
+ '',
105
+ chalk_1.default.dim('Check if the API server is running.'),
106
+ ]));
107
+ console.log('');
108
+ }
109
+ });
110
+ // Subcommands for convenience
111
+ exports.healthCommand
112
+ .command('quick')
113
+ .description('Quick health check')
114
+ .action(() => {
115
+ exports.healthCommand.parseAsync(['node', 'health']);
116
+ });
117
+ exports.healthCommand
118
+ .command('full')
119
+ .description('Full 6-layer health check')
120
+ .action(() => {
121
+ exports.healthCommand.parseAsync(['node', 'health', '--full']);
122
+ });
123
+ exports.healthCommand
124
+ .command('mcp')
125
+ .description('MCP health check')
126
+ .action(() => {
127
+ exports.healthCommand.parseAsync(['node', 'health', '--mcp']);
128
+ });
129
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Integration management commands for Solid CLI
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const integrationsCommand: Command;
6
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/commands/integrations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,mBAAmB,SAEQ,CAAC"}