lobstercage-cli 0.3.2 → 0.4.1

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 (91) hide show
  1. package/dist/commands/apikeys.d.ts.map +1 -1
  2. package/dist/commands/apikeys.js +14 -0
  3. package/dist/commands/apikeys.js.map +1 -1
  4. package/dist/commands/auth.d.ts.map +1 -1
  5. package/dist/commands/auth.js +6 -11
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/billing.d.ts.map +1 -1
  8. package/dist/commands/billing.js +25 -5
  9. package/dist/commands/billing.js.map +1 -1
  10. package/dist/commands/cages.d.ts +0 -1
  11. package/dist/commands/cages.d.ts.map +1 -1
  12. package/dist/commands/cages.js +20 -15
  13. package/dist/commands/cages.js.map +1 -1
  14. package/dist/commands/config.d.ts +25 -0
  15. package/dist/commands/config.d.ts.map +1 -0
  16. package/dist/commands/config.js +148 -0
  17. package/dist/commands/config.js.map +1 -0
  18. package/dist/commands/env.d.ts.map +1 -1
  19. package/dist/commands/env.js +22 -0
  20. package/dist/commands/env.js.map +1 -1
  21. package/dist/commands/exec.d.ts +1 -0
  22. package/dist/commands/exec.d.ts.map +1 -1
  23. package/dist/commands/exec.js +23 -2
  24. package/dist/commands/exec.js.map +1 -1
  25. package/dist/commands/migrate.d.ts +28 -0
  26. package/dist/commands/migrate.d.ts.map +1 -0
  27. package/dist/commands/migrate.js +314 -0
  28. package/dist/commands/migrate.js.map +1 -0
  29. package/dist/commands/ssh-config.d.ts.map +1 -1
  30. package/dist/commands/ssh-config.js +5 -0
  31. package/dist/commands/ssh-config.js.map +1 -1
  32. package/dist/commands/tail.d.ts +5 -0
  33. package/dist/commands/tail.d.ts.map +1 -1
  34. package/dist/commands/tail.js +20 -0
  35. package/dist/commands/tail.js.map +1 -1
  36. package/dist/commands/tunnel.d.ts.map +1 -1
  37. package/dist/commands/tunnel.js +23 -9
  38. package/dist/commands/tunnel.js.map +1 -1
  39. package/dist/index.d.ts +2 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +8 -9
  42. package/dist/index.js.map +1 -1
  43. package/dist/lib/api.d.ts +184 -1
  44. package/dist/lib/api.d.ts.map +1 -1
  45. package/dist/lib/api.js +202 -3
  46. package/dist/lib/api.js.map +1 -1
  47. package/dist/lib/error-handler.d.ts.map +1 -1
  48. package/dist/lib/error-handler.js +24 -3
  49. package/dist/lib/error-handler.js.map +1 -1
  50. package/dist/lib/migrate/analyze.d.ts +15 -0
  51. package/dist/lib/migrate/analyze.d.ts.map +1 -0
  52. package/dist/lib/migrate/analyze.js +241 -0
  53. package/dist/lib/migrate/analyze.js.map +1 -0
  54. package/dist/lib/migrate/cost.d.ts +16 -0
  55. package/dist/lib/migrate/cost.d.ts.map +1 -0
  56. package/dist/lib/migrate/cost.js +68 -0
  57. package/dist/lib/migrate/cost.js.map +1 -0
  58. package/dist/lib/migrate/detect.d.ts +12 -0
  59. package/dist/lib/migrate/detect.d.ts.map +1 -0
  60. package/dist/lib/migrate/detect.js +392 -0
  61. package/dist/lib/migrate/detect.js.map +1 -0
  62. package/dist/lib/migrate/display.d.ts +14 -0
  63. package/dist/lib/migrate/display.d.ts.map +1 -0
  64. package/dist/lib/migrate/display.js +157 -0
  65. package/dist/lib/migrate/display.js.map +1 -0
  66. package/dist/lib/migrate/platform.d.ts +16 -0
  67. package/dist/lib/migrate/platform.d.ts.map +1 -0
  68. package/dist/lib/migrate/platform.js +178 -0
  69. package/dist/lib/migrate/platform.js.map +1 -0
  70. package/dist/lib/migrate/types.d.ts +84 -0
  71. package/dist/lib/migrate/types.d.ts.map +1 -0
  72. package/dist/lib/migrate/types.js +6 -0
  73. package/dist/lib/migrate/types.js.map +1 -0
  74. package/dist/lib/migrate/utils.d.ts +9 -0
  75. package/dist/lib/migrate/utils.d.ts.map +1 -0
  76. package/dist/lib/migrate/utils.js +19 -0
  77. package/dist/lib/migrate/utils.js.map +1 -0
  78. package/dist/lib/output.d.ts.map +1 -1
  79. package/dist/lib/output.js +0 -1
  80. package/dist/lib/output.js.map +1 -1
  81. package/dist/lib/ssh-errors.d.ts +5 -0
  82. package/dist/lib/ssh-errors.d.ts.map +1 -0
  83. package/dist/lib/ssh-errors.js +46 -0
  84. package/dist/lib/ssh-errors.js.map +1 -0
  85. package/dist/lib/utils.d.ts +4 -0
  86. package/dist/lib/utils.d.ts.map +1 -1
  87. package/dist/lib/utils.js +21 -0
  88. package/dist/lib/utils.js.map +1 -1
  89. package/dist/types/index.d.ts +20 -7
  90. package/dist/types/index.d.ts.map +1 -1
  91. package/package.json +2 -1
package/dist/lib/api.js CHANGED
@@ -60,6 +60,7 @@ exports.stopCage = stopCage;
60
60
  exports.restartCage = restartCage;
61
61
  exports.hibernateCage = hibernateCage;
62
62
  exports.wakeCage = wakeCage;
63
+ exports.updateCageConfig = updateCageConfig;
63
64
  exports.getCageHealth = getCageHealth;
64
65
  exports.getCageEvents = getCageEvents;
65
66
  exports.listEnvVars = listEnvVars;
@@ -78,6 +79,17 @@ exports.createPortalSession = createPortalSession;
78
79
  const axios_1 = __importDefault(require("axios"));
79
80
  const config_1 = require("./config");
80
81
  const package_json_1 = require("../../package.json");
82
+ /**
83
+ * User-friendly messages for specific 401 error codes.
84
+ * Distinguishes between expired sessions, invalid tokens, revoked keys,
85
+ * and missing credentials so users know exactly what went wrong.
86
+ */
87
+ const AUTH_ERROR_MESSAGES = {
88
+ TOKEN_EXPIRED: "Your session has expired. Run 'lobster login' to re-authenticate.",
89
+ TOKEN_INVALID: "Your session is invalid. Run 'lobster login' to re-authenticate.",
90
+ KEY_REVOKED: 'Your API key has been revoked. Create a new one at the dashboard.',
91
+ AUTH_REQUIRED: "Not authenticated. Run 'lobster login' first.",
92
+ };
81
93
  /**
82
94
  * Custom error class for API errors
83
95
  */
@@ -119,14 +131,21 @@ function createApiClient() {
119
131
  client.interceptors.response.use((response) => response, (error) => {
120
132
  if (error.response) {
121
133
  const { status, data } = error.response;
134
+ // Support both new envelope format { error: { code, message } }
135
+ // and legacy flat format { code, message } for backward compatibility
136
+ const err = data?.error ?? data;
122
137
  // Only clear auth on explicit invalid-token responses, not all 401s
123
138
  if (status === 401) {
124
- const code = data?.code;
139
+ const code = err?.code;
125
140
  if (code === 'TOKEN_EXPIRED' || code === 'TOKEN_INVALID' || code === 'KEY_REVOKED') {
126
141
  (0, config_1.clearAuth)();
127
142
  }
128
143
  }
129
- throw new ApiClientError(data?.message || error.message, data?.code || 'UNKNOWN_ERROR', status, data?.details);
144
+ // Map specific 401 error codes to user-friendly messages
145
+ const message = status === 401
146
+ ? AUTH_ERROR_MESSAGES[err?.code] ?? err?.message ?? error.message
147
+ : err?.message ?? error.message;
148
+ throw new ApiClientError(message, err?.code || 'UNKNOWN_ERROR', status, err?.details);
130
149
  }
131
150
  else if (error.request) {
132
151
  throw new ApiClientError('Network error - could not connect to API', 'NETWORK_ERROR', 0);
@@ -167,11 +186,24 @@ async function logout() {
167
186
  // ============================================
168
187
  // API Keys API
169
188
  // ============================================
189
+ /**
190
+ * Lists all API keys for the authenticated user.
191
+ * @returns Array of API key metadata (keys are not included — only returned at creation time)
192
+ * @throws {ApiClientError} If the user is not authenticated or the request fails
193
+ */
170
194
  async function listApiKeys() {
171
195
  const client = getApiClient();
172
196
  const response = await client.get('/api-keys');
173
197
  return response.data.keys;
174
198
  }
199
+ /**
200
+ * Creates a new API key.
201
+ * @param name - Human-readable name for the key
202
+ * @param scopes - Optional array of permission scopes to restrict the key
203
+ * @param expiresAt - Optional ISO 8601 expiration timestamp
204
+ * @returns The created key metadata including the plaintext key (only returned once)
205
+ * @throws {ApiClientError} If the user is not authenticated or the request fails
206
+ */
175
207
  async function createApiKey(name, scopes, expiresAt) {
176
208
  const client = getApiClient();
177
209
  const response = await client.post('/api-keys', {
@@ -181,64 +213,155 @@ async function createApiKey(name, scopes, expiresAt) {
181
213
  });
182
214
  return response.data;
183
215
  }
216
+ /**
217
+ * Revokes an API key, permanently disabling it.
218
+ * @param keyId - The ID of the API key to revoke
219
+ * @throws {ApiClientError} If the key is not found or the user is not authenticated
220
+ */
184
221
  async function revokeApiKey(keyId) {
185
222
  const client = getApiClient();
186
223
  await client.delete(`/api-keys/${keyId}`);
187
224
  }
225
+ /**
226
+ * Lists cages for the authenticated user with optional filtering and pagination.
227
+ * @param options - Filter and pagination options (status, limit, cursor)
228
+ * @returns Paginated list of cages with an optional cursor for the next page
229
+ * @throws {ApiClientError} If the user is not authenticated or the request fails
230
+ */
188
231
  async function listCages(options = {}) {
189
232
  const client = getApiClient();
190
233
  const response = await client.get('/cages', { params: options });
191
234
  return response.data;
192
235
  }
236
+ /**
237
+ * Retrieves details for a single cage.
238
+ * @param cageId - The cage identifier
239
+ * @returns The cage object with current status and metadata
240
+ * @throws {ApiClientError} If the cage is not found or the user is not authenticated
241
+ */
193
242
  async function getCage(cageId) {
194
243
  const client = getApiClient();
195
244
  const response = await client.get(`/cages/${cageId}`);
196
245
  return response.data;
197
246
  }
247
+ /**
248
+ * Creates a new cage.
249
+ * @param request - Cage creation parameters (name, image, resources, etc.)
250
+ * @returns The newly created cage object
251
+ * @throws {ApiClientError} If validation fails or the user is not authenticated
252
+ */
198
253
  async function createCage(request) {
199
254
  const client = getApiClient();
200
255
  const response = await client.post('/cages', request);
201
256
  return response.data;
202
257
  }
258
+ /**
259
+ * Updates a cage's properties.
260
+ * @param cageId - The cage identifier
261
+ * @param request - Fields to update (partial update via PATCH)
262
+ * @returns The updated cage object
263
+ * @throws {ApiClientError} If the cage is not found or validation fails
264
+ */
203
265
  async function updateCage(cageId, request) {
204
266
  const client = getApiClient();
205
267
  const response = await client.patch(`/cages/${cageId}`, request);
206
268
  return response.data;
207
269
  }
270
+ /**
271
+ * Permanently deletes a cage and its associated resources.
272
+ * @param cageId - The cage identifier
273
+ * @throws {ApiClientError} If the cage is not found or is currently running
274
+ */
208
275
  async function deleteCage(cageId) {
209
276
  const client = getApiClient();
210
277
  await client.delete(`/cages/${cageId}`);
211
278
  }
279
+ /**
280
+ * Starts a stopped or hibernated cage by launching a new ECS task.
281
+ * @param cageId - The cage identifier
282
+ * @returns The cage object with updated status
283
+ * @throws {ApiClientError} If the cage is not found or is already running
284
+ */
212
285
  async function startCage(cageId) {
213
286
  const client = getApiClient();
214
287
  const response = await client.post(`/cages/${cageId}/start`);
215
288
  return response.data;
216
289
  }
290
+ /**
291
+ * Stops a running cage by terminating its ECS task.
292
+ * @param cageId - The cage identifier
293
+ * @param force - If true, forcefully stop without graceful shutdown (default: false)
294
+ * @returns The cage object with updated status
295
+ * @throws {ApiClientError} If the cage is not found or is not running
296
+ */
217
297
  async function stopCage(cageId, force = false) {
218
298
  const client = getApiClient();
219
299
  const response = await client.post(`/cages/${cageId}/stop`, { force });
220
300
  return response.data;
221
301
  }
302
+ /**
303
+ * Restarts a running cage (stop then start).
304
+ * @param cageId - The cage identifier
305
+ * @returns The cage object with updated status
306
+ * @throws {ApiClientError} If the cage is not found or is not running
307
+ */
222
308
  async function restartCage(cageId) {
223
309
  const client = getApiClient();
224
310
  const response = await client.post(`/cages/${cageId}/restart`);
225
311
  return response.data;
226
312
  }
313
+ /**
314
+ * Hibernates a running cage, preserving state for later wake.
315
+ * @param cageId - The cage identifier
316
+ * @returns The cage object with updated status
317
+ * @throws {ApiClientError} If the cage is not found or is not running
318
+ */
227
319
  async function hibernateCage(cageId) {
228
320
  const client = getApiClient();
229
321
  const response = await client.post(`/cages/${cageId}/hibernate`);
230
322
  return response.data;
231
323
  }
324
+ /**
325
+ * Wakes a hibernated cage, restoring it to a running state.
326
+ * @param cageId - The cage identifier
327
+ * @returns The cage object with updated status
328
+ * @throws {ApiClientError} If the cage is not found or is not hibernated
329
+ */
232
330
  async function wakeCage(cageId) {
233
331
  const client = getApiClient();
234
332
  const response = await client.post(`/cages/${cageId}/wake`);
235
333
  return response.data;
236
334
  }
335
+ /**
336
+ * Updates cage configuration settings (e.g. idle timeout).
337
+ * @param cageId - The cage identifier
338
+ * @param config - Configuration fields to update
339
+ * @returns The updated configuration with a confirmation message
340
+ * @throws {ApiClientError} If the cage is not found or validation fails
341
+ */
342
+ async function updateCageConfig(cageId, config) {
343
+ const client = getApiClient();
344
+ const response = await client.patch(`/cages/${cageId}/config`, config);
345
+ return response.data;
346
+ }
347
+ /**
348
+ * Retrieves the health status of a cage, including OpenClaw process info.
349
+ * @param cageId - The cage identifier
350
+ * @returns Health status including availability, OpenClaw state, and uptime
351
+ * @throws {ApiClientError} If the cage is not found or is not running
352
+ */
237
353
  async function getCageHealth(cageId) {
238
354
  const client = getApiClient();
239
355
  const response = await client.get(`/cages/${cageId}/health`);
240
356
  return response.data;
241
357
  }
358
+ /**
359
+ * Retrieves the event log for a cage (audit trail).
360
+ * @param cageId - The cage identifier
361
+ * @param limit - Maximum number of events to return (default: 50)
362
+ * @returns Array of cage events ordered by timestamp
363
+ * @throws {ApiClientError} If the cage is not found or the user is not authenticated
364
+ */
242
365
  async function getCageEvents(cageId, limit = 50) {
243
366
  const client = getApiClient();
244
367
  const response = await client.get(`/cages/${cageId}/events`, {
@@ -249,25 +372,57 @@ async function getCageEvents(cageId, limit = 50) {
249
372
  // ============================================
250
373
  // Environment Variables API
251
374
  // ============================================
375
+ /**
376
+ * Lists all environment variables set on a cage (values are masked).
377
+ * @param cageId - The cage identifier
378
+ * @returns Array of environment variable metadata
379
+ * @throws {ApiClientError} If the cage is not found or the user is not authenticated
380
+ */
252
381
  async function listEnvVars(cageId) {
253
382
  const client = getApiClient();
254
383
  const response = await client.get(`/cages/${cageId}/env`);
255
384
  return response.data.variables;
256
385
  }
386
+ /**
387
+ * Sets environment variables on a cage (creates or overwrites).
388
+ * @param cageId - The cage identifier
389
+ * @param request - Object containing the variables to set
390
+ * @returns The updated variables and any security warnings detected
391
+ * @throws {ApiClientError} If the cage is not found or validation fails
392
+ */
257
393
  async function setEnvVars(cageId, request) {
258
394
  const client = getApiClient();
259
395
  const response = await client.put(`/cages/${cageId}/env`, request);
260
396
  return response.data;
261
397
  }
398
+ /**
399
+ * Retrieves a single environment variable's decrypted value.
400
+ * @param cageId - The cage identifier
401
+ * @param varName - The environment variable name
402
+ * @returns The variable name and its decrypted value
403
+ * @throws {ApiClientError} If the cage or variable is not found
404
+ */
262
405
  async function getEnvVar(cageId, varName) {
263
406
  const client = getApiClient();
264
407
  const response = await client.get(`/cages/${cageId}/env/${varName}`);
265
408
  return response.data;
266
409
  }
410
+ /**
411
+ * Deletes a single environment variable from a cage.
412
+ * @param cageId - The cage identifier
413
+ * @param varName - The environment variable name to delete
414
+ * @throws {ApiClientError} If the cage or variable is not found
415
+ */
267
416
  async function deleteEnvVar(cageId, varName) {
268
417
  const client = getApiClient();
269
418
  await client.delete(`/cages/${cageId}/env/${varName}`);
270
419
  }
420
+ /**
421
+ * Scans a cage's environment variables for security issues (e.g. leaked secrets).
422
+ * @param cageId - The cage identifier
423
+ * @returns Object containing an array of security warnings found
424
+ * @throws {ApiClientError} If the cage is not found or the user is not authenticated
425
+ */
271
426
  async function scanEnvVars(cageId) {
272
427
  const client = getApiClient();
273
428
  const response = await client.post(`/cages/${cageId}/env/scan`);
@@ -276,11 +431,25 @@ async function scanEnvVars(cageId) {
276
431
  // ============================================
277
432
  // Tunnel API
278
433
  // ============================================
434
+ /**
435
+ * Creates a tunnel token and returns WebSocket connection details for a cage.
436
+ * @param cageId - The cage identifier
437
+ * @param request - Tunnel configuration (type: ssh, shell, or port)
438
+ * @returns Tunnel connection details including WebSocket URL and single-use token
439
+ * @throws {ApiClientError} If the cage is not found or is not running
440
+ */
279
441
  async function initiateTunnel(cageId, request) {
280
442
  const client = getApiClient();
281
443
  const response = await client.post(`/cages/${cageId}/tunnel`, request);
282
444
  return response.data;
283
445
  }
446
+ /**
447
+ * Creates an HTTP port-forward token for accessing a cage port via the tunnel proxy.
448
+ * @param cageId - The cage identifier
449
+ * @param port - The port number inside the cage to forward
450
+ * @returns Port-forward details including the proxy URL and multi-use token
451
+ * @throws {ApiClientError} If the cage is not found or is not running
452
+ */
284
453
  async function createPortForward(cageId, port) {
285
454
  const client = getApiClient();
286
455
  const response = await client.post(`/cages/${cageId}/port-forward`, { port });
@@ -313,11 +482,22 @@ async function execInCageViaTunnel(cageId, command) {
313
482
  // ============================================
314
483
  // Account API
315
484
  // ============================================
485
+ /**
486
+ * Retrieves the authenticated user's account profile.
487
+ * @returns Account details including plan, credits, and Stripe fields
488
+ * @throws {ApiClientError} If the user is not authenticated
489
+ */
316
490
  async function getAccount() {
317
491
  const client = getApiClient();
318
492
  const response = await client.get('/account');
319
493
  return response.data;
320
494
  }
495
+ /**
496
+ * Retrieves usage statistics for the authenticated user.
497
+ * @param period - Time period to aggregate usage over (default: 'month')
498
+ * @returns Usage data for the specified period
499
+ * @throws {ApiClientError} If the user is not authenticated
500
+ */
321
501
  async function getUsage(period = 'month') {
322
502
  const client = getApiClient();
323
503
  const response = await client.get('/account/usage', { params: { period } });
@@ -326,19 +506,38 @@ async function getUsage(period = 'month') {
326
506
  // ============================================
327
507
  // Billing API
328
508
  // ============================================
509
+ /**
510
+ * Retrieves the current billing status and subscription details.
511
+ * @returns Billing status including plan, payment method, and subscription state
512
+ * @throws {ApiClientError} If the user is not authenticated
513
+ */
329
514
  async function getBillingStatus() {
330
515
  const client = getApiClient();
331
516
  const response = await client.get('/billing');
332
517
  return response.data;
333
518
  }
334
- async function createCheckoutSession(successUrl, cancelUrl) {
519
+ /**
520
+ * Creates a Stripe Checkout session for subscribing to a plan.
521
+ * @param successUrl - URL to redirect to after successful payment
522
+ * @param cancelUrl - URL to redirect to if the user cancels checkout
523
+ * @returns Object containing the Stripe Checkout session URL
524
+ * @throws {ApiClientError} If the user is not authenticated or Stripe is misconfigured
525
+ */
526
+ async function createCheckoutSession(successUrl, cancelUrl, plan) {
335
527
  const client = getApiClient();
336
528
  const response = await client.post('/billing/checkout', {
337
529
  successUrl,
338
530
  cancelUrl,
531
+ ...(plan && { plan }),
339
532
  });
340
533
  return response.data;
341
534
  }
535
+ /**
536
+ * Creates a Stripe Customer Portal session for managing billing.
537
+ * @param returnUrl - URL to redirect to when the user exits the portal
538
+ * @returns Object containing the Stripe Customer Portal session URL
539
+ * @throws {ApiClientError} If the user is not authenticated or has no Stripe customer
540
+ */
342
541
  async function createPortalSession(returnUrl) {
343
542
  const client = getApiClient();
344
543
  const response = await client.post('/billing/portal', { returnUrl });
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CH,0CA4DC;AAQD,oCAKC;AAKD,wCAEC;AAUD,wBAEC;AAMD,kCAIC;AAED,oCAYC;AAED,oCAGC;AAiBD,8BAIC;AAED,0BAIC;AAED,gCAIC;AAED,gCAIC;AAED,gCAGC;AAED,8BAIC;AAED,4BAIC;AAED,kCAIC;AAED,sCAIC;AAED,4BAIC;AAmBD,sCAIC;AAeD,sCAMC;AAMD,kCAIC;AAOD,gCAIC;AAED,8BAIC;AAED,oCAGC;AAED,kCAMC;AAMD,wCAIC;AASD,8CAIC;AAQD,kDAmBC;AAMD,gCAIC;AAED,4BAIC;AAMD,4CAIC;AAED,sDAUC;AAED,kDAIC;AAjaD,kDAAyD;AACzD,qCAIkB;AAClB,qDAA6C;AAkB7C;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IACvB,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,OAAO,CAA2B;IAElD,YAAY,OAAe,EAAE,IAAY,EAAE,UAAkB,EAAE,OAAiC;QAC9F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAZD,wCAYC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;QAC1B,OAAO,EAAE,IAAA,kBAAS,GAAE;QACpB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,mBAAmB,sBAAO,EAAE;SAC3C;KACF,CAAC,CAAC;IAEH,oFAAoF;IACpF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC/C,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAEvE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;QACnD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAC9B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,CAAC,KAA2B,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;YAExC,oEAAoE;YACpE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;gBACxB,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;oBACnF,IAAA,kBAAS,GAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,IAAI,cAAc,CACtB,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,EAC9B,IAAI,EAAE,IAAI,IAAI,eAAe,EAC7B,MAAM,EACN,IAAI,EAAE,OAAO,CACd,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CACtB,0CAA0C,EAC1C,eAAe,EACf,CAAC,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,cAAc,CACtB,KAAK,CAAC,OAAO,EACb,eAAe,EACf,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qBAAqB;AACrB,IAAI,SAAS,GAAyB,IAAI,CAAC;AAE3C;;GAEG;AACH,SAAgB,YAAY;IAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,SAAS,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,+CAA+C;AAC/C,WAAW;AACX,+CAA+C;AAE/C;;;GAGG;AACI,KAAK,UAAU,MAAM;IAC1B,IAAA,kBAAS,GAAE,CAAC;AACd,CAAC;AAED,+CAA+C;AAC/C,eAAe;AACf,+CAA+C;AAExC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAqB,WAAW,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,MAAiB,EACjB,SAAkB;IAElB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAgB,WAAW,EAAE;QAC7D,IAAI;QACJ,MAAM;QACN,SAAS;KACV,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,KAAa;IAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;AAC5C,CAAC;AAiBM,KAAK,UAAU,SAAS,CAAC,UAA4B,EAAE;IAC5D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAoB,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,MAAc;IAC1C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAO,UAAU,MAAM,EAAE,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAO,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,OAA0B;IACzE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAO,UAAU,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAO,UAAU,MAAM,QAAQ,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,KAAK,GAAG,KAAK;IAC1D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAO,UAAU,MAAM,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAO,UAAU,MAAM,UAAU,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAO,UAAU,MAAM,YAAY,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAc;IAC3C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAO,UAAU,MAAM,OAAO,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAmBM,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAa,UAAU,MAAM,SAAS,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAeM,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,KAAK,GAAG,EAAE;IAC5D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,UAAU,MAAM,SAAS,EAAE;QACpF,MAAM,EAAE,EAAE,KAAK,EAAE;KAClB,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED,+CAA+C;AAC/C,4BAA4B;AAC5B,+CAA+C;AAExC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,UAAU,MAAM,MAAM,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,CAAC;AAOM,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,OAAsB;IACrE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAiB,UAAU,MAAM,MAAM,EAAE,OAAO,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,OAAe;IAC7D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAkC,UAAU,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC;IACtG,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,MAAc,EAAE,OAAe;IAChE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,UAAU,MAAM,WAAW,CAC5B,CAAC;IACF,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED,+CAA+C;AAC/C,aAAa;AACb,+CAA+C;AAExC,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,OAAsB;IACzE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAiB,UAAU,MAAM,SAAS,EAAE,OAAO,CAAC,CAAC;IACvF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AASM,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,IAAY;IAClE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAsB,UAAU,MAAM,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACnG,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,OAAe;IACvE,wFAAwF;IACxF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/D,8DAA8D;IAC9D,6CAA6C;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,OAAO,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;IAElD,MAAM,KAAK,GAAG,CAAC,wDAAa,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAqB,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE;QAC1E,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE;SAC1C;KACF,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAExC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAU,UAAU,CAAC,CAAC;IACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,SAAmC,OAAO;IACvE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAQ,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACnF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAExC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAgB,UAAU,CAAC,CAAC;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,SAAiB;IAEjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAkB,mBAAmB,EAAE;QACvE,UAAU;QACV,SAAS;KACV,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACzD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAkB,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACtF,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/lib/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAkB/B,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK,CAmCjF"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/lib/error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAsC/B,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,kBAAuB,GAAG,KAAK,CAoCjF"}
@@ -53,9 +53,29 @@ const SUGGESTIONS = {
53
53
  CAGE_RUNNING: 'Stop the cage first with `lobster stop <name>`',
54
54
  NETWORK_ERROR: 'Check your internet connection and API URL',
55
55
  AUTH_REQUIRED: 'Run `lobster login` first',
56
+ TOKEN_EXPIRED: 'Run `lobster login` to get a new session',
57
+ TOKEN_INVALID: 'Run `lobster login` to get a new session',
58
+ KEY_REVOKED: 'Create a new API key at the dashboard or via `lobster api-keys create`',
56
59
  FORBIDDEN: "You don't have permission. Check your API key",
60
+ RATE_LIMIT_EXCEEDED: 'Too many requests. Wait a moment and try again',
57
61
  RATE_LIMITED: 'Too many requests. Wait a moment and try again',
58
- INSUFFICIENT_CREDITS: 'Add credits with `lobster upgrade`',
62
+ CAGE_ALREADY_RUNNING: 'The cage is already running',
63
+ CAGE_ALREADY_STOPPED: 'The cage is already stopped',
64
+ CAGE_STARTING: 'The cage is still starting. Wait a moment and check status with `lobster status <name>`',
65
+ CAGE_NAME_EXISTS: 'A cage with this name already exists. Choose a different name',
66
+ NOT_STARTABLE: 'This cage cannot be started. Check its status with `lobster status <name>`',
67
+ CREDIT_LIMIT_REACHED: 'Free plan credits exhausted. Upgrade your plan with `lobster upgrade`',
68
+ VALIDATION_ERROR: 'Invalid input. Check command arguments and try again',
69
+ PAYLOAD_TOO_LARGE: 'Request payload is too large. Reduce the size and try again',
70
+ NETWORK_CHANGE_REQUIRES_STOP: 'Stop the cage first before changing network settings',
71
+ ALREADY_SUBSCRIBED: 'You already have an active subscription',
72
+ LIMIT_EXCEEDED: 'Resource limit reached. Check plan limits or remove unused resources',
73
+ UNAUTHORIZED: 'Session expired or invalid. Run `lobster login` to re-authenticate',
74
+ INTERNAL_ERROR: 'Server error. Try again in a moment, or check https://status.lobstercage.ai',
75
+ CONFLICT: 'Resource conflict. Another operation may be in progress',
76
+ CAGE_STATUS_CHANGED: 'Cage status changed concurrently. Refresh and retry your command',
77
+ NOT_FOUND: 'Resource not found. Verify the identifier and try again',
78
+ BAD_REQUEST: 'Invalid request. Check command arguments and try again',
59
79
  };
60
80
  /**
61
81
  * Check if debug mode is enabled via --debug flag or DEBUG env var.
@@ -80,10 +100,11 @@ function handleError(err, options = {}) {
80
100
  }
81
101
  if (err instanceof api_1.ApiClientError) {
82
102
  if (json) {
83
- output.json({ error: err.code, message: err.message });
103
+ output.json({ error: err.code, message: err.message, statusCode: err.statusCode });
84
104
  }
85
105
  else {
86
- output.error(err.message);
106
+ const label = err.statusCode ? `Error [${err.statusCode}]: ${err.message}` : err.message;
107
+ output.error(label);
87
108
  const suggestion = SUGGESTIONS[err.code];
88
109
  if (suggestion) {
89
110
  output.info(suggestion);
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/lib/error-handler.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BH,0BAEC;AAYD,kCAmCC;AA5ED,+BAAuC;AACvC,iDAAmC;AAEnC;;GAEG;AACH,MAAM,WAAW,GAA2B;IAC1C,cAAc,EAAE,qCAAqC;IACrD,gBAAgB,EAAE,kDAAkD;IACpE,YAAY,EAAE,gDAAgD;IAC9D,aAAa,EAAE,4CAA4C;IAC3D,aAAa,EAAE,2BAA2B;IAC1C,SAAS,EAAE,+CAA+C;IAC1D,YAAY,EAAE,gDAAgD;IAC9D,oBAAoB,EAAE,oCAAoC;CAC3D,CAAC;AASF;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAC,GAAY,EAAE,UAA8B,EAAE;IACxE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEzD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,IAAI,GAAG,YAAY,oBAAc,EAAE,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/lib/error-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Resource Analysis
3
+ *
4
+ * Samples CPU, memory, and process manager info. Estimates active vs idle time.
5
+ */
6
+ import type { ResourceSample, ActiveTimeEstimate, TriggerInfo } from './types';
7
+ /**
8
+ * Take a quick resource sample from the current machine.
9
+ */
10
+ export declare function sampleResources(): Promise<ResourceSample>;
11
+ /**
12
+ * Estimate how many hours per day the agent is actively running.
13
+ */
14
+ export declare function estimateActiveTime(resources: ResourceSample, triggers: TriggerInfo[]): ActiveTimeEstimate;
15
+ //# sourceMappingURL=analyze.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../../src/lib/migrate/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/E;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC,CAa/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,WAAW,EAAE,GACtB,kBAAkB,CA0CpB"}