lobstercage-cli 0.2.1 → 0.3.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/dist/commands/auth.d.ts +2 -13
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +9 -168
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/billing.d.ts.map +1 -1
- package/dist/commands/billing.js +22 -22
- package/dist/commands/billing.js.map +1 -1
- package/dist/commands/cages.d.ts +1 -3
- package/dist/commands/cages.d.ts.map +1 -1
- package/dist/commands/cages.js +44 -37
- package/dist/commands/cages.js.map +1 -1
- package/dist/commands/exec.d.ts +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/exec.js +4 -28
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/tail.d.ts +13 -0
- package/dist/commands/tail.d.ts.map +1 -0
- package/dist/commands/tail.js +126 -0
- package/dist/commands/tail.js.map +1 -0
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +29 -24
- package/dist/commands/tunnel.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +21 -9
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +38 -19
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +81 -89
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/config.d.ts +12 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +49 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/docker.js +1 -1
- package/dist/lib/output.d.ts +28 -1
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +99 -6
- package/dist/lib/output.js.map +1 -1
- package/dist/types/index.d.ts +16 -6
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +10 -10
package/dist/commands/auth.d.ts
CHANGED
|
@@ -5,24 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
/**
|
|
8
|
-
* Login command handler
|
|
8
|
+
* Login command handler — authenticates via browser OAuth flow
|
|
9
9
|
*/
|
|
10
10
|
export declare function loginHandler(options: {
|
|
11
|
-
email?: string;
|
|
12
|
-
browser?: boolean;
|
|
13
|
-
password?: boolean;
|
|
14
11
|
json?: boolean;
|
|
15
12
|
}): Promise<void>;
|
|
16
13
|
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
export declare function registerHandler(options: {
|
|
20
|
-
email?: string;
|
|
21
|
-
name?: string;
|
|
22
|
-
json?: boolean;
|
|
23
|
-
}): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Logout command handler
|
|
14
|
+
* Logout command handler — clears local authentication state
|
|
26
15
|
*/
|
|
27
16
|
export declare function logoutHandler(options: {
|
|
28
17
|
json?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwHpC;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC9E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkBzD"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -42,48 +42,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
42
42
|
};
|
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
44
|
exports.loginHandler = loginHandler;
|
|
45
|
-
exports.registerHandler = registerHandler;
|
|
46
45
|
exports.logoutHandler = logoutHandler;
|
|
47
46
|
exports.whoamiHandler = whoamiHandler;
|
|
48
47
|
exports.createAuthCommands = createAuthCommands;
|
|
49
48
|
const http = __importStar(require("http"));
|
|
50
49
|
const url = __importStar(require("url"));
|
|
51
50
|
const node_crypto_1 = require("node:crypto");
|
|
52
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
53
51
|
const ora_1 = __importDefault(require("ora"));
|
|
54
52
|
const chalk_1 = __importDefault(require("chalk"));
|
|
55
53
|
const api = __importStar(require("../lib/api"));
|
|
56
54
|
const config = __importStar(require("../lib/config"));
|
|
57
55
|
const output = __importStar(require("../lib/output"));
|
|
58
56
|
const error_handler_1 = require("../lib/error-handler");
|
|
59
|
-
/**
|
|
60
|
-
* Validates email format
|
|
61
|
-
*/
|
|
62
|
-
function isValidEmail(email) {
|
|
63
|
-
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
64
|
-
return emailRegex.test(email);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Validates password strength
|
|
68
|
-
*/
|
|
69
|
-
function isValidPassword(password) {
|
|
70
|
-
if (password.length < 12) {
|
|
71
|
-
return { valid: false, message: 'Password must be at least 12 characters' };
|
|
72
|
-
}
|
|
73
|
-
if (!/[a-z]/.test(password)) {
|
|
74
|
-
return { valid: false, message: 'Password must contain a lowercase letter' };
|
|
75
|
-
}
|
|
76
|
-
if (!/[A-Z]/.test(password)) {
|
|
77
|
-
return { valid: false, message: 'Password must contain an uppercase letter' };
|
|
78
|
-
}
|
|
79
|
-
if (!/[0-9]/.test(password)) {
|
|
80
|
-
return { valid: false, message: 'Password must contain a number' };
|
|
81
|
-
}
|
|
82
|
-
if (!/[^a-zA-Z0-9]/.test(password)) {
|
|
83
|
-
return { valid: false, message: 'Password must contain a special character' };
|
|
84
|
-
}
|
|
85
|
-
return { valid: true };
|
|
86
|
-
}
|
|
87
57
|
/**
|
|
88
58
|
* Start a local HTTP server and wait for the browser callback with token
|
|
89
59
|
*/
|
|
@@ -181,118 +151,13 @@ async function browserLoginHandler(options) {
|
|
|
181
151
|
}
|
|
182
152
|
}
|
|
183
153
|
/**
|
|
184
|
-
* Login command handler
|
|
154
|
+
* Login command handler — authenticates via browser OAuth flow
|
|
185
155
|
*/
|
|
186
156
|
async function loginHandler(options) {
|
|
187
|
-
|
|
188
|
-
if (!options.password) {
|
|
189
|
-
return browserLoginHandler(options);
|
|
190
|
-
}
|
|
191
|
-
let email = options.email;
|
|
192
|
-
let password;
|
|
193
|
-
// Interactive prompts if not provided
|
|
194
|
-
if (!email) {
|
|
195
|
-
const answers = await inquirer_1.default.prompt([
|
|
196
|
-
{
|
|
197
|
-
type: 'input',
|
|
198
|
-
name: 'email',
|
|
199
|
-
message: 'Email:',
|
|
200
|
-
validate: (input) => isValidEmail(input) || 'Invalid email address',
|
|
201
|
-
},
|
|
202
|
-
]);
|
|
203
|
-
email = answers.email;
|
|
204
|
-
}
|
|
205
|
-
const passwordAnswer = await inquirer_1.default.prompt([
|
|
206
|
-
{
|
|
207
|
-
type: 'password',
|
|
208
|
-
name: 'password',
|
|
209
|
-
message: 'Password:',
|
|
210
|
-
mask: '*',
|
|
211
|
-
},
|
|
212
|
-
]);
|
|
213
|
-
password = passwordAnswer.password;
|
|
214
|
-
const spinner = (0, ora_1.default)('Logging in...').start();
|
|
215
|
-
try {
|
|
216
|
-
const result = await api.login(email, password);
|
|
217
|
-
spinner.stop();
|
|
218
|
-
if (options.json) {
|
|
219
|
-
output.json({ success: true, user: result.user });
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
output.success(`Logged in as ${result.user.email}`);
|
|
223
|
-
console.log(` Plan: ${result.user.plan}`);
|
|
224
|
-
console.log(`\n Tip: run ${chalk_1.default.cyan('lobster ssh-config')} to enable ${chalk_1.default.cyan('ssh agent@my-cage.lobster')}`);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
catch (err) {
|
|
228
|
-
(0, error_handler_1.handleError)(err, { spinner, json: options.json, context: 'logging in' });
|
|
229
|
-
}
|
|
157
|
+
return browserLoginHandler(options);
|
|
230
158
|
}
|
|
231
159
|
/**
|
|
232
|
-
*
|
|
233
|
-
*/
|
|
234
|
-
async function registerHandler(options) {
|
|
235
|
-
let email = options.email;
|
|
236
|
-
let name = options.name;
|
|
237
|
-
let password;
|
|
238
|
-
// Interactive prompts
|
|
239
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
240
|
-
const prompts = [];
|
|
241
|
-
if (!email) {
|
|
242
|
-
prompts.push({
|
|
243
|
-
type: 'input',
|
|
244
|
-
name: 'email',
|
|
245
|
-
message: 'Email:',
|
|
246
|
-
validate: (input) => isValidEmail(input) || 'Invalid email address',
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
if (!name) {
|
|
250
|
-
prompts.push({
|
|
251
|
-
type: 'input',
|
|
252
|
-
name: 'name',
|
|
253
|
-
message: 'Name (optional):',
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
prompts.push({
|
|
257
|
-
type: 'password',
|
|
258
|
-
name: 'password',
|
|
259
|
-
message: 'Password:',
|
|
260
|
-
mask: '*',
|
|
261
|
-
validate: (input) => {
|
|
262
|
-
const result = isValidPassword(input);
|
|
263
|
-
return result.valid || result.message;
|
|
264
|
-
},
|
|
265
|
-
});
|
|
266
|
-
prompts.push({
|
|
267
|
-
type: 'password',
|
|
268
|
-
name: 'confirmPassword',
|
|
269
|
-
message: 'Confirm password:',
|
|
270
|
-
mask: '*',
|
|
271
|
-
validate: (input, answers) => {
|
|
272
|
-
return input === answers.password || 'Passwords do not match';
|
|
273
|
-
},
|
|
274
|
-
});
|
|
275
|
-
const answers = await inquirer_1.default.prompt(prompts);
|
|
276
|
-
email = email || answers.email;
|
|
277
|
-
name = name || answers.name;
|
|
278
|
-
password = answers.password;
|
|
279
|
-
const spinner = (0, ora_1.default)('Creating account...').start();
|
|
280
|
-
try {
|
|
281
|
-
const result = await api.register(email, password, name || undefined);
|
|
282
|
-
spinner.stop();
|
|
283
|
-
if (options.json) {
|
|
284
|
-
output.json({ success: true, user: result.user });
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
output.success(`Account created! Logged in as ${result.user.email}`);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
catch (err) {
|
|
291
|
-
(0, error_handler_1.handleError)(err, { spinner, json: options.json, context: 'creating account' });
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Logout command handler
|
|
160
|
+
* Logout command handler — clears local authentication state
|
|
296
161
|
*/
|
|
297
162
|
async function logoutHandler(options) {
|
|
298
163
|
if (!config.isAuthenticated()) {
|
|
@@ -304,26 +169,12 @@ async function logoutHandler(options) {
|
|
|
304
169
|
}
|
|
305
170
|
return;
|
|
306
171
|
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
spinner.stop();
|
|
311
|
-
if (options.json) {
|
|
312
|
-
output.json({ success: true });
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
output.success('Logged out');
|
|
316
|
-
}
|
|
172
|
+
await api.logout();
|
|
173
|
+
if (options.json) {
|
|
174
|
+
output.json({ success: true });
|
|
317
175
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
// Even if API call fails, local auth is cleared
|
|
321
|
-
if (options.json) {
|
|
322
|
-
output.json({ success: true });
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
output.success('Logged out');
|
|
326
|
-
}
|
|
176
|
+
else {
|
|
177
|
+
output.success('Logged out');
|
|
327
178
|
}
|
|
328
179
|
}
|
|
329
180
|
/**
|
|
@@ -370,19 +221,9 @@ async function whoamiHandler(options) {
|
|
|
370
221
|
function createAuthCommands(program) {
|
|
371
222
|
program
|
|
372
223
|
.command('login')
|
|
373
|
-
.description('Login to LobsterCage')
|
|
374
|
-
.option('-e, --email <email>', 'Email address')
|
|
375
|
-
.option('-b, --browser', 'Authenticate via browser (default)')
|
|
376
|
-
.option('-p, --password', 'Authenticate with email/password instead of browser')
|
|
224
|
+
.description('Login to LobsterCage via browser')
|
|
377
225
|
.option('--json', 'Output as JSON')
|
|
378
226
|
.action(loginHandler);
|
|
379
|
-
program
|
|
380
|
-
.command('register')
|
|
381
|
-
.description('Create a new LobsterCage account')
|
|
382
|
-
.option('-e, --email <email>', 'Email address')
|
|
383
|
-
.option('-n, --name <name>', 'Your name')
|
|
384
|
-
.option('--json', 'Output as JSON')
|
|
385
|
-
.action(registerHandler);
|
|
386
227
|
program
|
|
387
228
|
.command('logout')
|
|
388
229
|
.description('Logout from LobsterCage')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0IpC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB5D"}
|
package/dist/commands/billing.js
CHANGED
|
@@ -64,30 +64,28 @@ async function billingHandler(options) {
|
|
|
64
64
|
output.header('Billing Status');
|
|
65
65
|
const planColor = billing.plan === 'free' ? chalk_1.default.gray : chalk_1.default.green;
|
|
66
66
|
console.log(` Plan: ${planColor(billing.plan.toUpperCase())}`);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
console.log(`
|
|
82
|
-
console.log(` Usage: ${bar} ${percent}%`);
|
|
83
|
-
console.log(` Left: ${remaining} minutes remaining`);
|
|
67
|
+
const used = billing.creditsUsed;
|
|
68
|
+
const total = billing.creditsTotal;
|
|
69
|
+
const remaining = total - used;
|
|
70
|
+
const percent = total > 0 ? Math.round((used / total) * 100) : 0;
|
|
71
|
+
// Progress bar
|
|
72
|
+
const barWidth = 30;
|
|
73
|
+
const filled = Math.min(Math.round((percent / 100) * barWidth), barWidth);
|
|
74
|
+
const empty = barWidth - filled;
|
|
75
|
+
const barColor = percent > 80 ? chalk_1.default.red : percent > 50 ? chalk_1.default.yellow : chalk_1.default.green;
|
|
76
|
+
const bar = barColor('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
|
|
77
|
+
console.log(` Credits: ${used} / ${total} minutes used`);
|
|
78
|
+
console.log(` Usage: ${bar} ${percent}%`);
|
|
79
|
+
console.log(` Left: ${remaining} minutes remaining`);
|
|
80
|
+
if (billing.bonusCredits && billing.bonusCredits.total > 0) {
|
|
81
|
+
console.log(` Bonus: ${chalk_1.default.cyan(billing.bonusCredits.remaining.toString())} min remaining (${billing.bonusCredits.used} / ${billing.bonusCredits.total} used)`);
|
|
84
82
|
}
|
|
85
83
|
if (billing.stripeSubscriptionId) {
|
|
86
84
|
console.log(` Sub ID: ${chalk_1.default.gray(billing.stripeSubscriptionId)}`);
|
|
87
85
|
}
|
|
88
86
|
if (billing.plan === 'free') {
|
|
89
87
|
console.log();
|
|
90
|
-
output.info(`Upgrade to
|
|
88
|
+
output.info(`Upgrade to Starter for more compute: ${chalk_1.default.bold('lobster upgrade')}`);
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
91
|
catch (err) {
|
|
@@ -95,7 +93,7 @@ async function billingHandler(options) {
|
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
95
|
/**
|
|
98
|
-
* Upgrade to
|
|
96
|
+
* Upgrade to Starter plan
|
|
99
97
|
*/
|
|
100
98
|
async function upgradeHandler() {
|
|
101
99
|
const spinner = (0, ora_1.default)('Creating checkout session...').start();
|
|
@@ -108,7 +106,8 @@ async function upgradeHandler() {
|
|
|
108
106
|
output.info(`To manage your subscription, run: ${chalk_1.default.bold('lobster billing portal')}`);
|
|
109
107
|
return;
|
|
110
108
|
}
|
|
111
|
-
const
|
|
109
|
+
const dashboardUrl = process.env.LOBSTERCAGE_DASHBOARD_URL || 'https://app.lobstercage.ai';
|
|
110
|
+
const { url } = await api.createCheckoutSession(`${dashboardUrl}/settings?billing=success`, `${dashboardUrl}/settings`);
|
|
112
111
|
spinner.stop();
|
|
113
112
|
output.success('Checkout session created!');
|
|
114
113
|
console.log();
|
|
@@ -136,7 +135,8 @@ async function portalHandler() {
|
|
|
136
135
|
const spinner = (0, ora_1.default)('Opening billing portal...').start();
|
|
137
136
|
try {
|
|
138
137
|
(0, utils_1.requireAuth)();
|
|
139
|
-
const
|
|
138
|
+
const dashboardUrl = process.env.LOBSTERCAGE_DASHBOARD_URL || 'https://app.lobstercage.ai';
|
|
139
|
+
const { url } = await api.createPortalSession(`${dashboardUrl}/settings`);
|
|
140
140
|
spinner.stop();
|
|
141
141
|
output.success('Billing portal ready!');
|
|
142
142
|
console.log();
|
|
@@ -175,7 +175,7 @@ function createBillingCommands(program) {
|
|
|
175
175
|
.action(portalHandler);
|
|
176
176
|
program
|
|
177
177
|
.command('upgrade')
|
|
178
|
-
.description('Upgrade to
|
|
178
|
+
.description('Upgrade to Starter plan')
|
|
179
179
|
.action(upgradeHandler);
|
|
180
180
|
}
|
|
181
181
|
//# sourceMappingURL=billing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/commands/billing.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/cages.d.ts
CHANGED
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
* deploy, list, status, start, stop, destroy, logs
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from 'commander';
|
|
7
|
-
/**
|
|
8
|
-
* Deploy (create) command handler
|
|
9
|
-
*/
|
|
10
7
|
export declare function deployHandler(name: string, options: {
|
|
8
|
+
size?: string;
|
|
11
9
|
image?: string;
|
|
12
10
|
cpu?: string;
|
|
13
11
|
memory?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cages.d.ts","sourceRoot":"","sources":["../../src/commands/cages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"cages.d.ts","sourceRoot":"","sources":["../../src/commands/cages.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyCpC,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,IAAI,CAAC,CAsGf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB9G;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BpI;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhI;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBnG;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCnI;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5F,OAAO,CAAC,IAAI,CAAC,CAYf;AA6JD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8EzD"}
|
package/dist/commands/cages.js
CHANGED
|
@@ -84,6 +84,8 @@ function isValidCageName(name) {
|
|
|
84
84
|
/**
|
|
85
85
|
* Deploy (create) command handler
|
|
86
86
|
*/
|
|
87
|
+
/** Valid cage size tier names */
|
|
88
|
+
const VALID_SIZES = ['starter', 'standard', 'power', 'extreme'];
|
|
87
89
|
async function deployHandler(name, options) {
|
|
88
90
|
if (isLocalMode(options)) {
|
|
89
91
|
return deployHandlerLocal(name, options);
|
|
@@ -100,21 +102,33 @@ async function deployHandler(name, options) {
|
|
|
100
102
|
image: options.image || 'ubuntu:22.04',
|
|
101
103
|
autoStart: !options.noStart,
|
|
102
104
|
};
|
|
103
|
-
//
|
|
104
|
-
if (options.
|
|
105
|
+
// --size takes priority over --cpu/--memory/--storage
|
|
106
|
+
if (options.size) {
|
|
107
|
+
if (!VALID_SIZES.includes(options.size)) {
|
|
108
|
+
output.error(`Invalid size "${options.size}". Must be one of: ${VALID_SIZES.join(', ')}`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
request.size = options.size;
|
|
112
|
+
// Warn if legacy resource flags are also provided
|
|
113
|
+
if (options.cpu || options.memory || options.storage) {
|
|
114
|
+
output.warning('--size overrides --cpu, --memory, and --storage options');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (options.cpu || options.memory || options.storage) {
|
|
118
|
+
// Legacy resource flags (backward compat)
|
|
105
119
|
request.resources = {};
|
|
106
120
|
if (options.cpu) {
|
|
107
121
|
const cpu = parseFloat(options.cpu);
|
|
108
|
-
if (isNaN(cpu) || ![0.25, 0.5, 1, 2, 4].includes(cpu)) {
|
|
109
|
-
output.error('Invalid CPU value. Must be 0.25, 0.5, 1, 2, or
|
|
122
|
+
if (isNaN(cpu) || ![0.25, 0.5, 1, 2, 4, 8].includes(cpu)) {
|
|
123
|
+
output.error('Invalid CPU value. Must be 0.25, 0.5, 1, 2, 4, or 8');
|
|
110
124
|
process.exit(1);
|
|
111
125
|
}
|
|
112
126
|
request.resources.cpu = (cpu * 1024);
|
|
113
127
|
}
|
|
114
128
|
if (options.memory) {
|
|
115
129
|
const memory = parseInt(options.memory, 10);
|
|
116
|
-
if (isNaN(memory) || ![512, 1024, 2048, 4096, 8192].includes(memory)) {
|
|
117
|
-
output.error('Invalid memory value. Must be 512, 1024, 2048, 4096, or
|
|
130
|
+
if (isNaN(memory) || ![512, 1024, 2048, 4096, 8192, 16384, 32768].includes(memory)) {
|
|
131
|
+
output.error('Invalid memory value. Must be 512, 1024, 2048, 4096, 8192, 16384, or 32768');
|
|
118
132
|
process.exit(1);
|
|
119
133
|
}
|
|
120
134
|
request.resources.memory = memory;
|
|
@@ -199,13 +213,23 @@ async function statusHandler(nameOrId, options) {
|
|
|
199
213
|
(0, utils_1.requireAuth)();
|
|
200
214
|
const cageId = await (0, utils_1.resolveCageId)(nameOrId);
|
|
201
215
|
const cage = await api.getCage(cageId);
|
|
216
|
+
// Fetch health for running cages (non-blocking — best effort)
|
|
217
|
+
let health = null;
|
|
218
|
+
if (cage.status === 'running' && options.verbose) {
|
|
219
|
+
try {
|
|
220
|
+
health = await api.getCageHealth(cageId);
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
// silently ignore — health is optional
|
|
224
|
+
}
|
|
225
|
+
}
|
|
202
226
|
spinner.stop();
|
|
203
227
|
if (options.json) {
|
|
204
|
-
output.json(cage);
|
|
228
|
+
output.json(health ? { ...cage, health } : cage);
|
|
205
229
|
}
|
|
206
230
|
else {
|
|
207
231
|
console.log();
|
|
208
|
-
console.log(output.formatCage(cage, options.verbose));
|
|
232
|
+
console.log(output.formatCage(cage, options.verbose, health));
|
|
209
233
|
console.log();
|
|
210
234
|
}
|
|
211
235
|
}
|
|
@@ -345,34 +369,16 @@ async function destroyHandler(nameOrId, options) {
|
|
|
345
369
|
async function logsHandler(nameOrId, options) {
|
|
346
370
|
if (isLocalMode(options))
|
|
347
371
|
return logsHandlerLocal(nameOrId, options);
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
const { logs } = await api.getCageLogs(cageId, {
|
|
353
|
-
tail: options.tail ? parseInt(options.tail, 10) : undefined,
|
|
354
|
-
since: options.since,
|
|
355
|
-
});
|
|
356
|
-
spinner.stop();
|
|
357
|
-
if (options.json) {
|
|
358
|
-
output.json(logs);
|
|
359
|
-
}
|
|
360
|
-
else {
|
|
361
|
-
if (logs.length === 0) {
|
|
362
|
-
output.info('No logs found');
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
console.log(output.formatLogs(logs));
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
// TODO: Implement follow mode with SSE
|
|
369
|
-
if (options.follow) {
|
|
370
|
-
output.info('Follow mode not yet implemented');
|
|
371
|
-
}
|
|
372
|
+
// Remote logs endpoint is not available in the API.
|
|
373
|
+
// Use `lobster tail` for cage lifecycle events, or --local for Docker logs.
|
|
374
|
+
if (options.json) {
|
|
375
|
+
output.json({ error: 'NOT_AVAILABLE', message: 'Remote logs are not available. Use `lobster tail` for cage events or `lobster logs --local` for local Docker logs.' });
|
|
372
376
|
}
|
|
373
|
-
|
|
374
|
-
|
|
377
|
+
else {
|
|
378
|
+
output.error('Remote logs are not available via the API.');
|
|
379
|
+
output.info('Use `lobster tail <cage>` for cage lifecycle events, or `lobster logs --local <cage>` for local Docker logs.');
|
|
375
380
|
}
|
|
381
|
+
process.exit(1);
|
|
376
382
|
}
|
|
377
383
|
// ============================================
|
|
378
384
|
// Local Docker Mode Handlers
|
|
@@ -535,9 +541,10 @@ function createCageCommands(program) {
|
|
|
535
541
|
.command('deploy <name>')
|
|
536
542
|
.description('Create and start a new cage')
|
|
537
543
|
.option('-i, --image <image>', 'Container image (default: ubuntu:22.04)')
|
|
538
|
-
.option('--
|
|
539
|
-
.option('--
|
|
540
|
-
.option('--
|
|
544
|
+
.option('-s, --size <size>', 'Cage size tier (starter, standard, power, extreme)')
|
|
545
|
+
.option('--cpu <vcpu>', 'CPU allocation in vCPU (deprecated, use --size)')
|
|
546
|
+
.option('--memory <mb>', 'Memory in MB (deprecated, use --size)')
|
|
547
|
+
.option('--storage <gb>', 'Storage in GB (deprecated, use --size)')
|
|
541
548
|
.option('--egress <policy>', 'Egress policy (allow-all, allowlist, deny-all)')
|
|
542
549
|
.option('--allow-host <host>', 'Allowed egress host (repeatable)', (val, prev) => [...(prev || []), val], [])
|
|
543
550
|
.option('--no-start', 'Do not start the cage after creation')
|