@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.
- package/README.md +150 -0
- package/dist/commands/auth.d.ts +6 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +144 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/clone.d.ts +19 -0
- package/dist/commands/clone.d.ts.map +1 -0
- package/dist/commands/clone.js +205 -0
- package/dist/commands/clone.js.map +1 -0
- package/dist/commands/dev.d.ts +6 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +218 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/docs.d.ts +17 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +864 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/droplet.d.ts +10 -0
- package/dist/commands/droplet.d.ts.map +1 -0
- package/dist/commands/droplet.js +292 -0
- package/dist/commands/droplet.js.map +1 -0
- package/dist/commands/health.d.ts +6 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +129 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/integrations.d.ts +6 -0
- package/dist/commands/integrations.d.ts.map +1 -0
- package/dist/commands/integrations.js +380 -0
- package/dist/commands/integrations.js.map +1 -0
- package/dist/commands/kb.d.ts +9 -0
- package/dist/commands/kb.d.ts.map +1 -0
- package/dist/commands/kb.js +151 -0
- package/dist/commands/kb.js.map +1 -0
- package/dist/commands/pages.d.ts +8 -0
- package/dist/commands/pages.d.ts.map +1 -0
- package/dist/commands/pages.js +103 -0
- package/dist/commands/pages.js.map +1 -0
- package/dist/commands/pull.d.ts +16 -0
- package/dist/commands/pull.d.ts.map +1 -0
- package/dist/commands/pull.js +336 -0
- package/dist/commands/pull.js.map +1 -0
- package/dist/commands/push.d.ts +14 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +370 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/services.d.ts +8 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +66 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +89 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/train.d.ts +16 -0
- package/dist/commands/train.d.ts.map +1 -0
- package/dist/commands/train.js +338 -0
- package/dist/commands/train.js.map +1 -0
- package/dist/commands/vibe.d.ts +6 -0
- package/dist/commands/vibe.d.ts.map +1 -0
- package/dist/commands/vibe.js +176 -0
- package/dist/commands/vibe.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +119 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-client.d.ts +235 -0
- package/dist/lib/api-client.d.ts.map +1 -0
- package/dist/lib/api-client.js +287 -0
- package/dist/lib/api-client.js.map +1 -0
- package/dist/lib/config.d.ts +43 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +189 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/ui.d.ts +49 -0
- package/dist/lib/ui.d.ts.map +1 -0
- package/dist/lib/ui.js +182 -0
- package/dist/lib/ui.js.map +1 -0
- 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":"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"}
|
|
@@ -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 @@
|
|
|
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"}
|