@edgible-team/cli 1.2.4 → 1.2.8

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 (221) hide show
  1. package/dist/commands/agent/agent-handlers.d.ts +45 -0
  2. package/dist/commands/agent/agent-handlers.d.ts.map +1 -0
  3. package/dist/commands/agent/agent-handlers.js +1159 -0
  4. package/dist/commands/agent/install.d.ts +11 -0
  5. package/dist/commands/agent/install.d.ts.map +1 -0
  6. package/dist/commands/agent/install.js +399 -0
  7. package/dist/commands/agent/logs.d.ts +12 -0
  8. package/dist/commands/agent/logs.d.ts.map +1 -0
  9. package/dist/commands/agent/logs.js +77 -0
  10. package/dist/commands/agent/restart.d.ts +4 -0
  11. package/dist/commands/agent/restart.d.ts.map +1 -0
  12. package/dist/commands/agent/restart.js +33 -0
  13. package/dist/commands/agent/set-log-level.d.ts +8 -0
  14. package/dist/commands/agent/set-log-level.d.ts.map +1 -0
  15. package/dist/commands/agent/set-log-level.js +133 -0
  16. package/dist/commands/agent/setup.d.ts +9 -0
  17. package/dist/commands/agent/setup.d.ts.map +1 -0
  18. package/dist/commands/agent/setup.js +149 -0
  19. package/dist/commands/agent/start.d.ts +12 -0
  20. package/dist/commands/agent/start.d.ts.map +1 -0
  21. package/dist/commands/agent/start.js +308 -0
  22. package/dist/commands/agent/status.d.ts +7 -0
  23. package/dist/commands/agent/status.d.ts.map +1 -0
  24. package/dist/commands/agent/status.js +68 -0
  25. package/dist/commands/agent/stop.d.ts +4 -0
  26. package/dist/commands/agent/stop.d.ts.map +1 -0
  27. package/dist/commands/agent/stop.js +33 -0
  28. package/dist/commands/agent/uninstall.d.ts +7 -0
  29. package/dist/commands/agent/uninstall.d.ts.map +1 -0
  30. package/dist/commands/agent/uninstall.js +168 -0
  31. package/dist/commands/agent.d.ts.map +1 -1
  32. package/dist/commands/agent.js +24 -1190
  33. package/dist/commands/ai/helpers.d.ts +139 -0
  34. package/dist/commands/ai/helpers.d.ts.map +1 -0
  35. package/dist/commands/ai/helpers.js +1470 -0
  36. package/dist/commands/ai/serve.d.ts +6 -0
  37. package/dist/commands/ai/serve.d.ts.map +1 -0
  38. package/dist/commands/ai/serve.js +124 -0
  39. package/dist/commands/ai/setup.d.ts +14 -0
  40. package/dist/commands/ai/setup.d.ts.map +1 -0
  41. package/dist/commands/ai/setup.js +86 -0
  42. package/dist/commands/ai/status.d.ts +2 -0
  43. package/dist/commands/ai/status.d.ts.map +1 -0
  44. package/dist/commands/ai/status.js +160 -0
  45. package/dist/commands/ai/stop.d.ts +2 -0
  46. package/dist/commands/ai/stop.d.ts.map +1 -0
  47. package/dist/commands/ai/stop.js +21 -0
  48. package/dist/commands/ai/teardown.d.ts +5 -0
  49. package/dist/commands/ai/teardown.d.ts.map +1 -0
  50. package/dist/commands/ai/teardown.js +78 -0
  51. package/dist/commands/ai/test.d.ts +4 -0
  52. package/dist/commands/ai/test.d.ts.map +1 -0
  53. package/dist/commands/ai/test.js +65 -0
  54. package/dist/commands/ai.d.ts.map +1 -1
  55. package/dist/commands/ai.js +16 -1938
  56. package/dist/commands/application/api-keys/create.d.ts +6 -0
  57. package/dist/commands/application/api-keys/create.d.ts.map +1 -0
  58. package/dist/commands/application/api-keys/create.js +68 -0
  59. package/dist/commands/application/api-keys/delete.d.ts +6 -0
  60. package/dist/commands/application/api-keys/delete.d.ts.map +1 -0
  61. package/dist/commands/application/api-keys/delete.js +79 -0
  62. package/dist/commands/application/api-keys/list.d.ts +5 -0
  63. package/dist/commands/application/api-keys/list.d.ts.map +1 -0
  64. package/dist/commands/application/api-keys/list.js +65 -0
  65. package/dist/commands/application/api-keys.d.ts +3 -0
  66. package/dist/commands/application/api-keys.d.ts.map +1 -0
  67. package/dist/commands/application/api-keys.js +227 -0
  68. package/dist/commands/application/create-compose.d.ts +3 -0
  69. package/dist/commands/application/create-compose.d.ts.map +1 -0
  70. package/dist/commands/application/create-compose.js +381 -0
  71. package/dist/commands/application/create-docker-compose.d.ts +10 -0
  72. package/dist/commands/application/create-docker-compose.d.ts.map +1 -0
  73. package/dist/commands/application/create-docker-compose.js +334 -0
  74. package/dist/commands/application/create-existing.d.ts +14 -0
  75. package/dist/commands/application/create-existing.d.ts.map +1 -0
  76. package/dist/commands/application/create-existing.js +359 -0
  77. package/dist/commands/application/create-interactive.d.ts +3 -0
  78. package/dist/commands/application/create-interactive.d.ts.map +1 -0
  79. package/dist/commands/application/create-interactive.js +326 -0
  80. package/dist/commands/application/create-managed-process.d.ts +15 -0
  81. package/dist/commands/application/create-managed-process.d.ts.map +1 -0
  82. package/dist/commands/application/create-managed-process.js +371 -0
  83. package/dist/commands/application/create-stubs.d.ts +4 -0
  84. package/dist/commands/application/create-stubs.d.ts.map +1 -0
  85. package/dist/commands/application/create-stubs.js +19 -0
  86. package/dist/commands/application/create-workload.d.ts +5 -0
  87. package/dist/commands/application/create-workload.d.ts.map +1 -0
  88. package/dist/commands/application/create-workload.js +48 -0
  89. package/dist/commands/application/delete.d.ts +6 -0
  90. package/dist/commands/application/delete.d.ts.map +1 -0
  91. package/dist/commands/application/delete.js +76 -0
  92. package/dist/commands/application/get.d.ts +5 -0
  93. package/dist/commands/application/get.d.ts.map +1 -0
  94. package/dist/commands/application/get.js +35 -0
  95. package/dist/commands/application/list.d.ts +4 -0
  96. package/dist/commands/application/list.d.ts.map +1 -0
  97. package/dist/commands/application/list.js +41 -0
  98. package/dist/commands/application/short-codes/create.d.ts +7 -0
  99. package/dist/commands/application/short-codes/create.d.ts.map +1 -0
  100. package/dist/commands/application/short-codes/create.js +69 -0
  101. package/dist/commands/application/short-codes/delete.d.ts +6 -0
  102. package/dist/commands/application/short-codes/delete.d.ts.map +1 -0
  103. package/dist/commands/application/short-codes/delete.js +79 -0
  104. package/dist/commands/application/short-codes/list.d.ts +5 -0
  105. package/dist/commands/application/short-codes/list.d.ts.map +1 -0
  106. package/dist/commands/application/short-codes/list.js +63 -0
  107. package/dist/commands/application/short-codes/toggle.d.ts +5 -0
  108. package/dist/commands/application/short-codes/toggle.d.ts.map +1 -0
  109. package/dist/commands/application/short-codes/toggle.js +71 -0
  110. package/dist/commands/application/short-codes.d.ts +3 -0
  111. package/dist/commands/application/short-codes.d.ts.map +1 -0
  112. package/dist/commands/application/short-codes.js +226 -0
  113. package/dist/commands/application/toggle.d.ts +2 -0
  114. package/dist/commands/application/toggle.d.ts.map +1 -0
  115. package/dist/commands/application/toggle.js +78 -0
  116. package/dist/commands/application/update.d.ts +4 -0
  117. package/dist/commands/application/update.d.ts.map +1 -0
  118. package/dist/commands/application/update.js +11 -0
  119. package/dist/commands/application.d.ts.map +1 -1
  120. package/dist/commands/application.js +32 -1630
  121. package/dist/commands/auth.d.ts.map +1 -1
  122. package/dist/commands/auth.js +31 -49
  123. package/dist/commands/base/BaseCommand.d.ts +3 -3
  124. package/dist/commands/base/BaseCommand.d.ts.map +1 -1
  125. package/dist/commands/base/BaseCommand.js +3 -3
  126. package/dist/commands/base/command-wrapper.d.ts +0 -4
  127. package/dist/commands/base/command-wrapper.d.ts.map +1 -1
  128. package/dist/commands/base/command-wrapper.js +13 -14
  129. package/dist/commands/base/middleware.d.ts +3 -3
  130. package/dist/commands/base/middleware.d.ts.map +1 -1
  131. package/dist/commands/base/middleware.js +4 -4
  132. package/dist/commands/config.d.ts.map +1 -1
  133. package/dist/commands/config.js +15 -32
  134. package/dist/commands/connectivity.d.ts.map +1 -1
  135. package/dist/commands/connectivity.js +6 -11
  136. package/dist/commands/debug.d.ts.map +1 -1
  137. package/dist/commands/debug.js +187 -46
  138. package/dist/commands/discover.d.ts.map +1 -1
  139. package/dist/commands/discover.js +4 -17
  140. package/dist/commands/gateway.d.ts.map +1 -1
  141. package/dist/commands/gateway.js +37 -77
  142. package/dist/commands/managedGateway/create.d.ts +6 -0
  143. package/dist/commands/managedGateway/create.d.ts.map +1 -0
  144. package/dist/commands/managedGateway/create.js +50 -0
  145. package/dist/commands/managedGateway/delete.d.ts +5 -0
  146. package/dist/commands/managedGateway/delete.d.ts.map +1 -0
  147. package/dist/commands/managedGateway/delete.js +57 -0
  148. package/dist/commands/managedGateway/get.d.ts +4 -0
  149. package/dist/commands/managedGateway/get.d.ts.map +1 -0
  150. package/dist/commands/managedGateway/get.js +71 -0
  151. package/dist/commands/managedGateway/haproxy-stats.d.ts +6 -0
  152. package/dist/commands/managedGateway/haproxy-stats.d.ts.map +1 -0
  153. package/dist/commands/managedGateway/haproxy-stats.js +131 -0
  154. package/dist/commands/managedGateway/list.d.ts +4 -0
  155. package/dist/commands/managedGateway/list.d.ts.map +1 -0
  156. package/dist/commands/managedGateway/list.js +50 -0
  157. package/dist/commands/managedGateway/logs.d.ts +10 -0
  158. package/dist/commands/managedGateway/logs.d.ts.map +1 -0
  159. package/dist/commands/managedGateway/logs.js +100 -0
  160. package/dist/commands/managedGateway/reboot.d.ts +5 -0
  161. package/dist/commands/managedGateway/reboot.d.ts.map +1 -0
  162. package/dist/commands/managedGateway/reboot.js +95 -0
  163. package/dist/commands/managedGateway/resync.d.ts +10 -0
  164. package/dist/commands/managedGateway/resync.d.ts.map +1 -0
  165. package/dist/commands/managedGateway/resync.js +69 -0
  166. package/dist/commands/managedGateway/ssh.d.ts +4 -0
  167. package/dist/commands/managedGateway/ssh.d.ts.map +1 -0
  168. package/dist/commands/managedGateway/ssh.js +130 -0
  169. package/dist/commands/managedGateway/wipe-logs.d.ts +4 -0
  170. package/dist/commands/managedGateway/wipe-logs.d.ts.map +1 -0
  171. package/dist/commands/managedGateway/wipe-logs.js +67 -0
  172. package/dist/commands/managedGateway/wireguard.d.ts +4 -0
  173. package/dist/commands/managedGateway/wireguard.d.ts.map +1 -0
  174. package/dist/commands/managedGateway/wireguard.js +68 -0
  175. package/dist/commands/managedGateway.d.ts.map +1 -1
  176. package/dist/commands/managedGateway.js +61 -117
  177. package/dist/commands/utils/config-validator.d.ts +5 -5
  178. package/dist/commands/utils/config-validator.d.ts.map +1 -1
  179. package/dist/commands/utils/config-validator.js +8 -8
  180. package/dist/commands/utils/output-formatter.js +1 -1
  181. package/dist/config/app-config.d.ts +1 -1
  182. package/dist/config/app-config.js +2 -2
  183. package/dist/index.js +0 -3
  184. package/dist/services/LocalAgentManager.d.ts.map +1 -1
  185. package/dist/services/LocalAgentManager.js +4 -2
  186. package/dist/services/agentDeployment/AgentDeploymentService.d.ts +35 -0
  187. package/dist/services/agentDeployment/AgentDeploymentService.d.ts.map +1 -0
  188. package/dist/services/agentDeployment/AgentDeploymentService.js +35 -0
  189. package/dist/services/application/ApplicationService.d.ts +5 -4
  190. package/dist/services/application/ApplicationService.d.ts.map +1 -1
  191. package/dist/services/application/ApplicationService.js +22 -35
  192. package/dist/services/auth/AuthService.d.ts +5 -5
  193. package/dist/services/auth/AuthService.d.ts.map +1 -1
  194. package/dist/services/auth/AuthService.js +11 -58
  195. package/dist/services/daemon/DaemonManagerFactory.d.ts +2 -0
  196. package/dist/services/daemon/DaemonManagerFactory.d.ts.map +1 -1
  197. package/dist/services/daemon/DaemonManagerFactory.js +14 -6
  198. package/dist/services/diagnostics/DiagnosticsService.d.ts +89 -0
  199. package/dist/services/diagnostics/DiagnosticsService.d.ts.map +1 -0
  200. package/dist/services/diagnostics/DiagnosticsService.js +37 -0
  201. package/dist/services/edgible.d.ts +6 -4
  202. package/dist/services/edgible.d.ts.map +1 -1
  203. package/dist/services/edgible.js +36 -86
  204. package/dist/services/gateway/GatewayService.d.ts +5 -6
  205. package/dist/services/gateway/GatewayService.d.ts.map +1 -1
  206. package/dist/services/gateway/GatewayService.js +22 -36
  207. package/dist/services/instances.d.ts +34 -0
  208. package/dist/services/instances.d.ts.map +1 -0
  209. package/dist/services/instances.js +64 -0
  210. package/dist/services/managedGateway/ManagedGatewayService.d.ts +75 -0
  211. package/dist/services/managedGateway/ManagedGatewayService.d.ts.map +1 -0
  212. package/dist/services/managedGateway/ManagedGatewayService.js +44 -0
  213. package/dist/services/token/TokenManager.d.ts +56 -0
  214. package/dist/services/token/TokenManager.d.ts.map +1 -0
  215. package/dist/services/token/TokenManager.js +85 -0
  216. package/dist/types/validation/schemas.d.ts +22 -22
  217. package/dist/utils/PlatformDetector.d.ts +2 -0
  218. package/dist/utils/PlatformDetector.d.ts.map +1 -1
  219. package/dist/utils/PlatformDetector.js +5 -34
  220. package/dist/validation/schemas.d.ts +6 -6
  221. package/package.json +1 -1
@@ -41,8 +41,7 @@ const inquirer_1 = __importDefault(require("inquirer"));
41
41
  const chalk_1 = __importDefault(require("chalk"));
42
42
  const child_process_1 = require("child_process");
43
43
  const command_wrapper_1 = require("./base/command-wrapper");
44
- const container_1 = require("../di/container");
45
- const types_1 = require("../di/types");
44
+ const instances_1 = require("../services/instances");
46
45
  const config_validator_1 = require("./utils/config-validator");
47
46
  const output_formatter_1 = require("./utils/output-formatter");
48
47
  const gateway_prompt_1 = require("./utils/gateway-prompt");
@@ -69,11 +68,7 @@ Examples:
69
68
  .option('-t, --instance-type <type>', 'EC2 instance type', 't3.micro')
70
69
  .alias('new')
71
70
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
72
- const container = (0, container_1.getContainer)();
73
- const logger = container.get(types_1.TYPES.Logger);
74
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
75
- const gatewayService = container.get(types_1.TYPES.GatewayService);
76
- (0, config_validator_1.validateConfig)(configRepository, {
71
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
77
72
  requireAuth: true,
78
73
  requireOrganization: true,
79
74
  });
@@ -116,7 +111,7 @@ Examples:
116
111
  const awsService = new AWSService();
117
112
  const awsCheck = await awsService.checkAWSCLI();
118
113
  if (!awsCheck.available) {
119
- logger.error('AWS CLI is not installed or not available');
114
+ instances_1.logger.error('AWS CLI is not installed or not available');
120
115
  console.log(chalk_1.default.red('✗ AWS CLI is not installed or not available'));
121
116
  console.log(chalk_1.default.gray('Please install AWS CLI and configure credentials'));
122
117
  return;
@@ -126,7 +121,7 @@ Examples:
126
121
  value: profile,
127
122
  }));
128
123
  if (profileChoices.length === 0) {
129
- logger.error('No AWS profiles found');
124
+ instances_1.logger.error('No AWS profiles found');
130
125
  console.log(chalk_1.default.red('✗ No AWS profiles found'));
131
126
  console.log(chalk_1.default.gray('Please run "aws configure" to set up your AWS credentials'));
132
127
  return;
@@ -158,7 +153,7 @@ Examples:
158
153
  ]);
159
154
  region = regionAnswer.region.trim();
160
155
  }
161
- logger.info('Creating gateway', { name: gatewayName, region, instanceType });
156
+ instances_1.logger.info('Creating gateway', { name: gatewayName, region, instanceType });
162
157
  const createConfig = {
163
158
  name: gatewayName,
164
159
  };
@@ -170,7 +165,7 @@ Examples:
170
165
  createConfig.region = region;
171
166
  if (instanceType && instanceType.trim())
172
167
  createConfig.instanceType = instanceType;
173
- const result = await gatewayService.createGateway(createConfig);
168
+ const result = await instances_1.gatewayService.createGateway(createConfig);
174
169
  console.log(chalk_1.default.green('\n✓ Gateway created successfully!'));
175
170
  console.log(chalk_1.default.blue('\n📋 Gateway Details:'));
176
171
  console.log((0, output_formatter_1.formatGateway)({
@@ -178,7 +173,6 @@ Examples:
178
173
  ec2Instance: result.ec2Instance,
179
174
  }));
180
175
  }, {
181
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
182
176
  requireAuth: true,
183
177
  requireOrganization: true,
184
178
  }));
@@ -188,16 +182,12 @@ Examples:
188
182
  .option('--json', 'Output as JSON')
189
183
  .alias('ls')
190
184
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
191
- const container = (0, container_1.getContainer)();
192
- const logger = container.get(types_1.TYPES.Logger);
193
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
194
- const gatewayService = container.get(types_1.TYPES.GatewayService);
195
- (0, config_validator_1.validateConfig)(configRepository, {
185
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
196
186
  requireAuth: true,
197
187
  requireOrganization: true,
198
188
  });
199
- logger.debug('Listing gateways');
200
- const response = await gatewayService.listGateways();
189
+ instances_1.logger.debug('Listing gateways');
190
+ const response = await instances_1.gatewayService.listGateways();
201
191
  if (response.gateways.length === 0) {
202
192
  console.log(chalk_1.default.yellow('⚠ No gateways found'));
203
193
  console.log(chalk_1.default.gray('Use "edgible gateway create" to create a gateway'));
@@ -221,7 +211,6 @@ Examples:
221
211
  }
222
212
  console.log((0, output_formatter_1.formatList)(response.gateways, (gateway) => (0, output_formatter_1.formatGateway)(gateway), '🌐 Gateway Devices:', 'No gateways found'));
223
213
  }, {
224
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
225
214
  requireAuth: true,
226
215
  requireOrganization: true,
227
216
  }));
@@ -248,15 +237,11 @@ Examples:
248
237
  .option('-f, --force', 'Force delete even if applications exist')
249
238
  .alias('rm')
250
239
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
251
- const container = (0, container_1.getContainer)();
252
- const logger = container.get(types_1.TYPES.Logger);
253
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
254
- const gatewayService = container.get(types_1.TYPES.GatewayService);
255
- (0, config_validator_1.validateConfig)(configRepository, {
240
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
256
241
  requireAuth: true,
257
242
  requireOrganization: true,
258
243
  });
259
- const gatewayId = await (0, gateway_prompt_1.getGatewayId)(gatewayService, options.id, { required: true });
244
+ const gatewayId = await (0, gateway_prompt_1.getGatewayId)(instances_1.gatewayService, options.id, { required: true });
260
245
  if (!gatewayId) {
261
246
  throw new Error('Gateway ID is required');
262
247
  }
@@ -270,15 +255,14 @@ Examples:
270
255
  },
271
256
  ]);
272
257
  if (!confirm.confirm) {
273
- logger.info('Gateway deletion cancelled');
258
+ instances_1.logger.info('Gateway deletion cancelled');
274
259
  console.log(chalk_1.default.gray('Deletion cancelled'));
275
260
  return;
276
261
  }
277
- logger.info('Deleting gateway', { gatewayId, force: options.force || false });
278
- await gatewayService.deleteGateway(gatewayId, options.force || false);
262
+ instances_1.logger.info('Deleting gateway', { gatewayId, force: options.force || false });
263
+ await instances_1.gatewayService.deleteGateway(gatewayId, options.force || false);
279
264
  console.log(chalk_1.default.green('✓ Gateway deleted successfully!'));
280
265
  }, {
281
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
282
266
  requireAuth: true,
283
267
  requireOrganization: true,
284
268
  }));
@@ -292,29 +276,23 @@ Examples:
292
276
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
293
277
  // Map --local to installFromLocal for backward compatibility
294
278
  const installFromLocal = options.local || options.installFromLocal;
295
- const container = (0, container_1.getContainer)();
296
- const logger = container.get(types_1.TYPES.Logger);
297
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
298
- const gatewayService = container.get(types_1.TYPES.GatewayService);
299
- const edgibleService = container.get(types_1.TYPES.EdgibleService);
300
- (0, config_validator_1.validateConfig)(configRepository, {
279
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
301
280
  requireAuth: true,
302
281
  requireOrganization: true,
303
282
  });
304
- const gatewayId = await (0, gateway_prompt_1.getGatewayId)(gatewayService, options.id, { required: true });
283
+ const gatewayId = await (0, gateway_prompt_1.getGatewayId)(instances_1.gatewayService, options.id, { required: true });
305
284
  if (!gatewayId) {
306
285
  throw new Error('Gateway ID is required');
307
286
  }
308
- logger.info('Resyncing agent on gateway', { gatewayId, version: options.version, installFromLocal });
287
+ instances_1.logger.info('Resyncing agent on gateway', { gatewayId, version: options.version, installFromLocal });
309
288
  // TODO: Extract resyncGatewayAgent to GatewaySshService
310
- const result = await edgibleService.resyncGatewayAgent(gatewayId, options.version, installFromLocal);
289
+ const result = await instances_1.edgibleService.resyncGatewayAgent(gatewayId, options.version, installFromLocal);
311
290
  console.log(chalk_1.default.green('\n✓ Agent resynced successfully!'));
312
291
  console.log(chalk_1.default.blue('\n📋 Resync Details:'));
313
292
  console.log(chalk_1.default.white(` Gateway ID: ${gatewayId}`));
314
293
  console.log(chalk_1.default.white(` Agent Version: ${result.agentVersion}`));
315
294
  console.log(chalk_1.default.white(` Sync Time: ${new Date(result.syncTimestamp).toLocaleString()}`));
316
295
  }, {
317
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
318
296
  requireAuth: true,
319
297
  requireOrganization: true,
320
298
  }));
@@ -327,16 +305,11 @@ Examples:
327
305
  .option('-l, --level <level>', 'Log level filter', 'all')
328
306
  .option('-c, --comprehensive', 'Show comprehensive diagnostics (status, system info, WireGuard, Caddy, etc.)')
329
307
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
330
- const container = (0, container_1.getContainer)();
331
- const logger = container.get(types_1.TYPES.Logger);
332
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
333
- const gatewayService = container.get(types_1.TYPES.GatewayService);
334
- const edgibleService = container.get(types_1.TYPES.EdgibleService);
335
- (0, config_validator_1.validateConfig)(configRepository, {
308
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
336
309
  requireAuth: true,
337
310
  requireOrganization: true,
338
311
  });
339
- const gatewayId = await (0, gateway_prompt_1.getGatewayId)(gatewayService, options.id, { required: true });
312
+ const gatewayId = await (0, gateway_prompt_1.getGatewayId)(instances_1.gatewayService, options.id, { required: true });
340
313
  if (!gatewayId) {
341
314
  throw new Error('Gateway ID is required');
342
315
  }
@@ -344,7 +317,7 @@ Examples:
344
317
  const follow = options.follow || false;
345
318
  const level = options.level || 'all';
346
319
  const comprehensive = options.comprehensive || false;
347
- logger.info('Retrieving gateway logs', {
320
+ instances_1.logger.info('Retrieving gateway logs', {
348
321
  gatewayId,
349
322
  lines: follow ? undefined : lines,
350
323
  follow,
@@ -352,7 +325,7 @@ Examples:
352
325
  comprehensive,
353
326
  });
354
327
  // TODO: Extract getGatewayLogs to GatewayDiagnosticsService
355
- const result = await edgibleService.getGatewayLogs(gatewayId, {
328
+ const result = await instances_1.edgibleService.getGatewayLogs(gatewayId, {
356
329
  lines: follow ? undefined : lines,
357
330
  follow: follow,
358
331
  level: level,
@@ -362,11 +335,10 @@ Examples:
362
335
  console.log(result.logs);
363
336
  }
364
337
  else {
365
- logger.error('Failed to retrieve logs');
338
+ instances_1.logger.error('Failed to retrieve logs');
366
339
  console.log(chalk_1.default.red('✗ Failed to retrieve logs'));
367
340
  }
368
341
  }, {
369
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
370
342
  requireAuth: true,
371
343
  requireOrganization: true,
372
344
  }));
@@ -375,36 +347,31 @@ Examples:
375
347
  .description('Connect to a gateway via SSH (interactive shell)')
376
348
  .option('-i, --id <id>', 'Gateway ID to connect to')
377
349
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
378
- const container = (0, container_1.getContainer)();
379
- const logger = container.get(types_1.TYPES.Logger);
380
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
381
- const gatewayRepository = container.get(types_1.TYPES.GatewayRepository);
382
- const gatewayService = container.get(types_1.TYPES.GatewayService);
383
- (0, config_validator_1.validateConfig)(configRepository, {
350
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
384
351
  requireAuth: true,
385
352
  requireOrganization: true,
386
353
  });
387
- const gatewayId = await (0, gateway_prompt_1.getGatewayId)(gatewayService, options.id, { required: true });
354
+ const gatewayId = await (0, gateway_prompt_1.getGatewayId)(instances_1.gatewayService, options.id, { required: true });
388
355
  if (!gatewayId) {
389
356
  throw new Error('Gateway ID is required');
390
357
  }
391
- const gatewayInfo = gatewayRepository.getGateway(gatewayId);
358
+ const gatewayInfo = instances_1.configManager.getGateway(gatewayId);
392
359
  if (!gatewayInfo) {
393
360
  throw new Error('Gateway not found in local configuration');
394
361
  }
395
- logger.info('Connecting to gateway via SSH', { gatewayId, publicIp: gatewayInfo.publicIp });
362
+ instances_1.logger.info('Connecting to gateway via SSH', { gatewayId, publicIp: gatewayInfo.publicIp });
396
363
  console.log(chalk_1.default.blue(`\nConnecting to gateway: ${gatewayId}`));
397
364
  console.log(chalk_1.default.gray(`Public IP: ${gatewayInfo.publicIp}`));
398
365
  console.log(chalk_1.default.gray(`Region: ${gatewayInfo.region}`));
399
366
  console.log(chalk_1.default.yellow('\nOpening SSH connection...\n'));
400
367
  // Get SSH key path
401
368
  const { AWSService } = await Promise.resolve().then(() => __importStar(require('../services/aws')));
402
- const awsService = new AWSService(configRepository.getAWSProfile(), gatewayInfo.region);
369
+ const awsService = new AWSService(instances_1.configManager.getAWSProfile(), gatewayInfo.region);
403
370
  // Wait for instance to be ready
404
371
  console.log(chalk_1.default.gray('Waiting for instance to be ready...'));
405
372
  const isReady = await awsService.waitForSSHReady(gatewayInfo.ec2InstanceId);
406
373
  if (!isReady) {
407
- logger.error('Instance is not ready for SSH connections', { instanceId: gatewayInfo.ec2InstanceId });
374
+ instances_1.logger.error('Instance is not ready for SSH connections', { instanceId: gatewayInfo.ec2InstanceId });
408
375
  console.log(chalk_1.default.red('✗ Instance is not ready for SSH connections'));
409
376
  return;
410
377
  }
@@ -420,23 +387,22 @@ Examples:
420
387
  shell: false,
421
388
  });
422
389
  sshProcess.on('error', (error) => {
423
- logger.error('SSH connection error', error);
390
+ instances_1.logger.error('SSH connection error', error);
424
391
  console.error(chalk_1.default.red('✗ SSH connection error:'), error.message);
425
392
  console.log(chalk_1.default.yellow('\nMake sure SSH is installed and the key file has correct permissions (chmod 600)'));
426
393
  throw error;
427
394
  });
428
395
  sshProcess.on('exit', (code) => {
429
396
  if (code === 0) {
430
- logger.debug('SSH session ended normally');
397
+ instances_1.logger.debug('SSH session ended normally');
431
398
  console.log(chalk_1.default.gray('\nSSH session ended'));
432
399
  }
433
400
  else {
434
- logger.warn('SSH session ended with non-zero code', { code });
401
+ instances_1.logger.warn('SSH session ended with non-zero code', { code });
435
402
  console.log(chalk_1.default.yellow(`\nSSH session ended with code: ${code}`));
436
403
  }
437
404
  });
438
405
  }, {
439
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
440
406
  requireAuth: true,
441
407
  requireOrganization: true,
442
408
  }));
@@ -445,20 +411,15 @@ Examples:
445
411
  .description('Clear agent log file on a gateway')
446
412
  .option('-i, --id <id>', 'Gateway ID to wipe logs for')
447
413
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
448
- const container = (0, container_1.getContainer)();
449
- const logger = container.get(types_1.TYPES.Logger);
450
- const configRepository = container.get(types_1.TYPES.ConfigRepository);
451
- const gatewayService = container.get(types_1.TYPES.GatewayService);
452
- const edgibleService = container.get(types_1.TYPES.EdgibleService);
453
- (0, config_validator_1.validateConfig)(configRepository, {
414
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
454
415
  requireAuth: true,
455
416
  requireOrganization: true,
456
417
  });
457
- const gatewayId = await (0, gateway_prompt_1.getGatewayId)(gatewayService, options.id, { required: true });
418
+ const gatewayId = await (0, gateway_prompt_1.getGatewayId)(instances_1.gatewayService, options.id, { required: true });
458
419
  if (!gatewayId) {
459
420
  throw new Error('Gateway ID is required');
460
421
  }
461
- logger.info('Wiping gateway logs', { gatewayId });
422
+ instances_1.logger.info('Wiping gateway logs', { gatewayId });
462
423
  // Confirm action
463
424
  const confirm = await inquirer_1.default.prompt([
464
425
  {
@@ -469,12 +430,12 @@ Examples:
469
430
  },
470
431
  ]);
471
432
  if (!confirm.confirm) {
472
- logger.info('Log wipe cancelled');
433
+ instances_1.logger.info('Log wipe cancelled');
473
434
  console.log(chalk_1.default.gray('Log wipe cancelled'));
474
435
  return;
475
436
  }
476
437
  // Get gateway logs and wipe them
477
- const result = await edgibleService.wipeGatewayLogs(gatewayId);
438
+ const result = await instances_1.edgibleService.wipeGatewayLogs(gatewayId);
478
439
  if (result.success) {
479
440
  console.log(chalk_1.default.green('✓ Gateway logs cleared successfully!'));
480
441
  console.log(chalk_1.default.gray(` Log file: ${result.logFile || 'agent.log'}`));
@@ -486,7 +447,6 @@ Examples:
486
447
  }
487
448
  }
488
449
  }, {
489
- configRepository: (0, container_1.getContainer)().get(types_1.TYPES.ConfigRepository),
490
450
  requireAuth: true,
491
451
  requireOrganization: true,
492
452
  }));
@@ -0,0 +1,6 @@
1
+ export declare function handleManagedGatewayCreate(options: {
2
+ name?: string;
3
+ region?: string;
4
+ instanceType?: string;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/create.ts"],"names":[],"mappings":"AAKA,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDlI"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleManagedGatewayCreate = handleManagedGatewayCreate;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const instances_1 = require("../../services/instances");
10
+ const config_validator_1 = require("../utils/config-validator");
11
+ async function handleManagedGatewayCreate(options) {
12
+ wrapCommand(async (options) => {
13
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
14
+ requireAuth: true,
15
+ });
16
+ let gatewayName = options.name;
17
+ const region = options.region || 'ap-southeast-2';
18
+ const instanceType = options.instanceType || 't3.micro';
19
+ if (!gatewayName) {
20
+ const nameAnswer = await inquirer_1.default.prompt([
21
+ {
22
+ type: 'input',
23
+ name: 'name',
24
+ message: 'Enter gateway name:',
25
+ validate: (input) => {
26
+ if (!input.trim()) {
27
+ return 'Gateway name is required';
28
+ }
29
+ return true;
30
+ },
31
+ },
32
+ ]);
33
+ gatewayName = nameAnswer.name.trim();
34
+ }
35
+ instances_1.logger.info('Creating managed gateway', { name: gatewayName, region, instanceType });
36
+ const result = await instances_1.managedGatewayService.createManagedGateway({
37
+ name: gatewayName,
38
+ region,
39
+ instanceType
40
+ });
41
+ console.log(chalk_1.default.green('\n✓ Managed gateway created successfully!'));
42
+ console.log(chalk_1.default.blue('\n📋 Gateway Details:'));
43
+ console.log(chalk_1.default.white(` ID: ${result.gateway.id}`));
44
+ console.log(chalk_1.default.white(` Name: ${result.gateway.name}`));
45
+ console.log(chalk_1.default.white(` IP Address: ${result.gateway.ipAddress || 'N/A'}`));
46
+ console.log(chalk_1.default.white(` Status: ${result.gateway.status || 'N/A'}`));
47
+ console.log(chalk_1.default.white(` Created: ${new Date(result.gateway.createdAt).toLocaleString()}`));
48
+ });
49
+ }
50
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1,5 @@
1
+ export declare function handleManagedGatewayDelete(options: {
2
+ id?: string;
3
+ force?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/delete.ts"],"names":[],"mappings":"AAKA,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuDzG"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleManagedGatewayDelete = handleManagedGatewayDelete;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const instances_1 = require("../../services/instances");
10
+ const config_validator_1 = require("../utils/config-validator");
11
+ async function handleManagedGatewayDelete(options) {
12
+ wrapCommand(async (options) => {
13
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
14
+ requireAuth: true,
15
+ });
16
+ let gatewayId = options.id;
17
+ if (!gatewayId) {
18
+ // List gateways first to allow selection
19
+ const listResponse = await instances_1.managedGatewayService.listManagedGateways();
20
+ if (!listResponse.success || !listResponse.gateways || listResponse.gateways.length === 0) {
21
+ console.log(chalk_1.default.yellow('⚠ No managed gateways found'));
22
+ return;
23
+ }
24
+ const choices = listResponse.gateways.map((gateway) => ({
25
+ name: `${gateway.name} (${gateway.id})`,
26
+ value: gateway.id,
27
+ }));
28
+ const answer = await inquirer_1.default.prompt([
29
+ {
30
+ type: 'list',
31
+ name: 'gatewayId',
32
+ message: 'Select managed gateway to delete:',
33
+ choices,
34
+ },
35
+ ]);
36
+ gatewayId = answer.gatewayId;
37
+ }
38
+ // Confirm deletion
39
+ const confirm = await inquirer_1.default.prompt([
40
+ {
41
+ type: 'confirm',
42
+ name: 'confirm',
43
+ message: `Are you sure you want to delete managed gateway ${gatewayId}?`,
44
+ default: false,
45
+ },
46
+ ]);
47
+ if (!confirm.confirm) {
48
+ instances_1.logger.info('Managed gateway deletion cancelled');
49
+ console.log(chalk_1.default.gray('Deletion cancelled'));
50
+ return;
51
+ }
52
+ instances_1.logger.info('Deleting managed gateway', { gatewayId, force: options.force || false });
53
+ await instances_1.managedGatewayService.deleteManagedGateway(gatewayId, options.force || false);
54
+ console.log(chalk_1.default.green('✓ Managed gateway deleted successfully!'));
55
+ });
56
+ }
57
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1,4 @@
1
+ export declare function handleManagedGatewayGet(options: {
2
+ id?: string;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/get.ts"],"names":[],"mappings":"AAKA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuErF"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleManagedGatewayGet = handleManagedGatewayGet;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const instances_1 = require("../../services/instances");
10
+ const config_validator_1 = require("../utils/config-validator");
11
+ async function handleManagedGatewayGet(options) {
12
+ wrapCommand(async (options) => {
13
+ (0, config_validator_1.validateConfig)(instances_1.configManager, {
14
+ requireAuth: true,
15
+ });
16
+ let gatewayId = options.id;
17
+ if (!gatewayId) {
18
+ // List gateways first to allow selection
19
+ const listResponse = await instances_1.managedGatewayService.listManagedGateways();
20
+ if (!listResponse.success || !listResponse.gateways || listResponse.gateways.length === 0) {
21
+ console.log(chalk_1.default.yellow('⚠ No managed gateways found'));
22
+ return;
23
+ }
24
+ const choices = listResponse.gateways.map((gateway) => ({
25
+ name: `${gateway.name} (${gateway.id})`,
26
+ value: gateway.id,
27
+ }));
28
+ const answer = await inquirer_1.default.prompt([
29
+ {
30
+ type: 'list',
31
+ name: 'gatewayId',
32
+ message: 'Select managed gateway:',
33
+ choices,
34
+ },
35
+ ]);
36
+ gatewayId = answer.gatewayId;
37
+ }
38
+ instances_1.logger.info('Getting managed gateway details', { gatewayId });
39
+ const response = await instances_1.managedGatewayService.getManagedGateway(gatewayId);
40
+ if (!response.success || !response.gateway) {
41
+ console.log(chalk_1.default.red('✗ Managed gateway not found'));
42
+ return;
43
+ }
44
+ const gateway = response.gateway;
45
+ console.log(chalk_1.default.blue('\n📋 Managed Gateway Details:'));
46
+ console.log(chalk_1.default.white(` ID: ${gateway.id}`));
47
+ console.log(chalk_1.default.white(` Name: ${gateway.name}`));
48
+ if (gateway.description) {
49
+ console.log(chalk_1.default.gray(` Description: ${gateway.description}`));
50
+ }
51
+ console.log(chalk_1.default.white(` IP Address: ${gateway.ipAddress || 'N/A'}`));
52
+ console.log(chalk_1.default.white(` Status: ${gateway.status || 'N/A'}`));
53
+ console.log(chalk_1.default.white(` Last Seen: ${gateway.lastSeen ? new Date(gateway.lastSeen).toLocaleString() : 'N/A'}`));
54
+ console.log(chalk_1.default.white(` Created: ${new Date(gateway.createdAt).toLocaleString()}`));
55
+ console.log(chalk_1.default.white(` Organization ID: ${gateway.organizationId}`));
56
+ if (gateway.capacity) {
57
+ console.log(chalk_1.default.blue('\n📊 Capacity:'));
58
+ console.log(chalk_1.default.white(` Current Applications: ${gateway.capacity.currentApps}`));
59
+ console.log(chalk_1.default.white(` Max Applications: ${gateway.capacity.maxApps}`));
60
+ const usagePercent = (gateway.capacity.currentApps / gateway.capacity.maxApps) * 100;
61
+ console.log(chalk_1.default.white(` Usage: ${usagePercent.toFixed(1)}%`));
62
+ }
63
+ if (gateway.health) {
64
+ console.log(chalk_1.default.blue('\n🏥 Health:'));
65
+ console.log(chalk_1.default.white(` Healthy: ${gateway.health.healthy ? chalk_1.default.green('Yes') : chalk_1.default.red('No')}`));
66
+ console.log(chalk_1.default.white(` Last Seen: ${gateway.health.lastSeen ? new Date(gateway.health.lastSeen).toLocaleString() : 'N/A'}`));
67
+ console.log(chalk_1.default.white(` Application Count: ${gateway.health.applicationCount}`));
68
+ }
69
+ });
70
+ }
71
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1,6 @@
1
+ export declare function handleManagedGatewayHaproxyStats(options: {
2
+ id?: string;
3
+ output?: string;
4
+ port?: string;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=haproxy-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"haproxy-stats.d.ts","sourceRoot":"","sources":["../../../src/commands/managedGateway/haproxy-stats.ts"],"names":[],"mappings":"AAKA,wBAAsB,gCAAgC,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiG9H"}