@edgible-team/cli 1.2.15 → 1.2.17

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 (194) hide show
  1. package/README.md +5 -3
  2. package/dist/client/api-client.d.ts +13 -1
  3. package/dist/client/api-client.d.ts.map +1 -1
  4. package/dist/client/api-client.js +19 -0
  5. package/dist/commands/agent/install.d.ts +2 -1
  6. package/dist/commands/agent/install.d.ts.map +1 -1
  7. package/dist/commands/agent/install.js +24 -7
  8. package/dist/commands/agent/start.d.ts +5 -1
  9. package/dist/commands/agent/start.d.ts.map +1 -1
  10. package/dist/commands/agent/start.js +19 -280
  11. package/dist/commands/agent/uninstall.d.ts.map +1 -1
  12. package/dist/commands/agent/uninstall.js +14 -7
  13. package/dist/commands/agent.d.ts.map +1 -1
  14. package/dist/commands/agent.js +3 -2
  15. package/dist/commands/ai/setup.d.ts +1 -1
  16. package/dist/commands/ai/setup.d.ts.map +1 -1
  17. package/dist/commands/ai.js +1 -1
  18. package/dist/commands/application/create-docker-compose.d.ts +3 -1
  19. package/dist/commands/application/create-docker-compose.d.ts.map +1 -1
  20. package/dist/commands/application/create-docker-compose.js +25 -69
  21. package/dist/commands/application/create-existing.d.ts +2 -2
  22. package/dist/commands/application/create-existing.d.ts.map +1 -1
  23. package/dist/commands/application/create-existing.js +27 -132
  24. package/dist/commands/application/create-managed-process.d.ts +3 -1
  25. package/dist/commands/application/create-managed-process.d.ts.map +1 -1
  26. package/dist/commands/application/create-managed-process.js +31 -75
  27. package/dist/commands/application/delete.d.ts +2 -1
  28. package/dist/commands/application/delete.d.ts.map +1 -1
  29. package/dist/commands/application/delete.js +19 -5
  30. package/dist/commands/application/update.d.ts +3 -0
  31. package/dist/commands/application/update.d.ts.map +1 -1
  32. package/dist/commands/application/update.js +45 -1
  33. package/dist/commands/application.d.ts.map +1 -1
  34. package/dist/commands/application.js +33 -19
  35. package/dist/commands/auth.d.ts.map +1 -1
  36. package/dist/commands/auth.js +44 -0
  37. package/dist/commands/debug.js +1 -1
  38. package/dist/commands/device/application-health.d.ts +7 -0
  39. package/dist/commands/device/application-health.d.ts.map +1 -0
  40. package/dist/commands/device/application-health.js +103 -0
  41. package/dist/commands/device/delete.d.ts +7 -0
  42. package/dist/commands/device/delete.d.ts.map +1 -0
  43. package/dist/commands/device/delete.js +69 -0
  44. package/dist/commands/device/health.d.ts +7 -0
  45. package/dist/commands/device/health.d.ts.map +1 -0
  46. package/dist/commands/device/health.js +78 -0
  47. package/dist/commands/device/list.d.ts +5 -0
  48. package/dist/commands/device/list.d.ts.map +1 -0
  49. package/dist/commands/device/list.js +46 -0
  50. package/dist/commands/device/telemetry.d.ts +8 -0
  51. package/dist/commands/device/telemetry.d.ts.map +1 -0
  52. package/dist/commands/device/telemetry.js +59 -0
  53. package/dist/commands/device.d.ts +6 -0
  54. package/dist/commands/device.d.ts.map +1 -0
  55. package/dist/commands/device.js +86 -0
  56. package/dist/commands/stack/deploy.d.ts +3 -1
  57. package/dist/commands/stack/deploy.d.ts.map +1 -1
  58. package/dist/commands/stack/deploy.js +5 -2
  59. package/dist/commands/stack/diff.d.ts +1 -1
  60. package/dist/commands/stack/diff.d.ts.map +1 -1
  61. package/dist/commands/stack/diff.js +4 -2
  62. package/dist/commands/stack/status.d.ts +1 -1
  63. package/dist/commands/stack/status.d.ts.map +1 -1
  64. package/dist/commands/stack/status.js +4 -2
  65. package/dist/commands/stack/teardown.d.ts +3 -1
  66. package/dist/commands/stack/teardown.d.ts.map +1 -1
  67. package/dist/commands/stack/teardown.js +5 -2
  68. package/dist/commands/stack/validate.d.ts +1 -1
  69. package/dist/commands/stack/validate.d.ts.map +1 -1
  70. package/dist/commands/stack/validate.js +4 -2
  71. package/dist/commands/stack.d.ts.map +1 -1
  72. package/dist/commands/stack.js +10 -5
  73. package/dist/commands/utils/auth-prompt.d.ts +25 -0
  74. package/dist/commands/utils/auth-prompt.d.ts.map +1 -0
  75. package/dist/commands/utils/auth-prompt.js +115 -0
  76. package/dist/commands/utils/device-prompt.d.ts +18 -0
  77. package/dist/commands/utils/device-prompt.d.ts.map +1 -0
  78. package/dist/commands/utils/device-prompt.js +58 -0
  79. package/dist/commands/utils/output-formatter.d.ts +13 -0
  80. package/dist/commands/utils/output-formatter.d.ts.map +1 -1
  81. package/dist/commands/utils/output-formatter.js +21 -0
  82. package/dist/index.js +2 -0
  83. package/dist/services/LocalAgentManager.d.ts +2 -1
  84. package/dist/services/LocalAgentManager.d.ts.map +1 -1
  85. package/dist/services/LocalAgentManager.js +6 -4
  86. package/dist/services/application/ApplicationService.d.ts +19 -0
  87. package/dist/services/application/ApplicationService.d.ts.map +1 -1
  88. package/dist/services/application/ApplicationService.js +14 -1
  89. package/dist/services/device/DeviceService.d.ts +62 -0
  90. package/dist/services/device/DeviceService.d.ts.map +1 -0
  91. package/dist/services/device/DeviceService.js +235 -0
  92. package/dist/services/edgible.d.ts +3 -1
  93. package/dist/services/edgible.d.ts.map +1 -1
  94. package/dist/services/edgible.js +5 -4
  95. package/dist/services/instances.d.ts +4 -1
  96. package/dist/services/instances.d.ts.map +1 -1
  97. package/dist/services/instances.js +8 -4
  98. package/dist/types/AgentConfig.d.ts +26 -0
  99. package/dist/types/AgentConfig.d.ts.map +1 -1
  100. package/dist/types/ApiRequests.d.ts +5 -1
  101. package/dist/types/ApiRequests.d.ts.map +1 -1
  102. package/dist/types/ApiResponses.d.ts +5 -0
  103. package/dist/types/ApiResponses.d.ts.map +1 -1
  104. package/dist/types/JobTypes.d.ts +103 -0
  105. package/dist/types/JobTypes.d.ts.map +1 -0
  106. package/dist/types/JobTypes.js +80 -0
  107. package/dist/types/WebSocketMessages.d.ts +89 -0
  108. package/dist/types/WebSocketMessages.d.ts.map +1 -0
  109. package/dist/types/WebSocketMessages.js +5 -0
  110. package/dist/types/backendJobs.d.ts +102 -0
  111. package/dist/types/backendJobs.d.ts.map +1 -0
  112. package/dist/types/backendJobs.js +5 -0
  113. package/dist/types/models/ApplicationData.d.ts +1 -1
  114. package/dist/types/models/ApplicationData.d.ts.map +1 -1
  115. package/dist/types/models/DeviceData.d.ts +4 -0
  116. package/dist/types/models/DeviceData.d.ts.map +1 -1
  117. package/dist/types/validation/schemas.d.ts +3 -3
  118. package/dist/types/validation/schemas.js +1 -1
  119. package/dist/utils/stack-file.d.ts +11 -0
  120. package/dist/utils/stack-file.d.ts.map +1 -0
  121. package/dist/utils/stack-file.js +66 -0
  122. package/package.json +1 -1
  123. package/dist/commands/agent/agent-handlers.d.ts +0 -45
  124. package/dist/commands/agent/agent-handlers.d.ts.map +0 -1
  125. package/dist/commands/agent/agent-handlers.js +0 -1159
  126. package/dist/commands/application/api-keys.d.ts +0 -3
  127. package/dist/commands/application/api-keys.d.ts.map +0 -1
  128. package/dist/commands/application/api-keys.js +0 -227
  129. package/dist/commands/application/create-compose.d.ts +0 -3
  130. package/dist/commands/application/create-compose.d.ts.map +0 -1
  131. package/dist/commands/application/create-compose.js +0 -381
  132. package/dist/commands/application/create-interactive.d.ts +0 -3
  133. package/dist/commands/application/create-interactive.d.ts.map +0 -1
  134. package/dist/commands/application/create-interactive.js +0 -326
  135. package/dist/commands/application/create-workload.d.ts +0 -5
  136. package/dist/commands/application/create-workload.d.ts.map +0 -1
  137. package/dist/commands/application/create-workload.js +0 -48
  138. package/dist/commands/application/short-codes.d.ts +0 -3
  139. package/dist/commands/application/short-codes.d.ts.map +0 -1
  140. package/dist/commands/application/short-codes.js +0 -226
  141. package/dist/commands/application/toggle.d.ts +0 -2
  142. package/dist/commands/application/toggle.d.ts.map +0 -1
  143. package/dist/commands/application/toggle.js +0 -78
  144. package/dist/commands/examples/migrated-command-example.d.ts +0 -31
  145. package/dist/commands/examples/migrated-command-example.d.ts.map +0 -1
  146. package/dist/commands/examples/migrated-command-example.js +0 -180
  147. package/dist/commands/managedGateway/create.d.ts +0 -6
  148. package/dist/commands/managedGateway/create.d.ts.map +0 -1
  149. package/dist/commands/managedGateway/create.js +0 -50
  150. package/dist/commands/managedGateway/delete.d.ts +0 -5
  151. package/dist/commands/managedGateway/delete.d.ts.map +0 -1
  152. package/dist/commands/managedGateway/delete.js +0 -57
  153. package/dist/commands/managedGateway/get.d.ts +0 -4
  154. package/dist/commands/managedGateway/get.d.ts.map +0 -1
  155. package/dist/commands/managedGateway/get.js +0 -71
  156. package/dist/commands/managedGateway/haproxy-stats.d.ts +0 -6
  157. package/dist/commands/managedGateway/haproxy-stats.d.ts.map +0 -1
  158. package/dist/commands/managedGateway/haproxy-stats.js +0 -131
  159. package/dist/commands/managedGateway/list.d.ts +0 -4
  160. package/dist/commands/managedGateway/list.d.ts.map +0 -1
  161. package/dist/commands/managedGateway/list.js +0 -50
  162. package/dist/commands/managedGateway/logs.d.ts +0 -10
  163. package/dist/commands/managedGateway/logs.d.ts.map +0 -1
  164. package/dist/commands/managedGateway/logs.js +0 -100
  165. package/dist/commands/managedGateway/reboot.d.ts +0 -5
  166. package/dist/commands/managedGateway/reboot.d.ts.map +0 -1
  167. package/dist/commands/managedGateway/reboot.js +0 -95
  168. package/dist/commands/managedGateway/resync.d.ts +0 -10
  169. package/dist/commands/managedGateway/resync.d.ts.map +0 -1
  170. package/dist/commands/managedGateway/resync.js +0 -69
  171. package/dist/commands/managedGateway/ssh.d.ts +0 -4
  172. package/dist/commands/managedGateway/ssh.d.ts.map +0 -1
  173. package/dist/commands/managedGateway/ssh.js +0 -130
  174. package/dist/commands/managedGateway/wipe-logs.d.ts +0 -4
  175. package/dist/commands/managedGateway/wipe-logs.d.ts.map +0 -1
  176. package/dist/commands/managedGateway/wipe-logs.js +0 -67
  177. package/dist/commands/managedGateway/wireguard.d.ts +0 -4
  178. package/dist/commands/managedGateway/wireguard.d.ts.map +0 -1
  179. package/dist/commands/managedGateway/wireguard.js +0 -68
  180. package/dist/di/bindings.d.ts +0 -15
  181. package/dist/di/bindings.d.ts.map +0 -1
  182. package/dist/di/bindings.js +0 -99
  183. package/dist/di/container.d.ts +0 -44
  184. package/dist/di/container.d.ts.map +0 -1
  185. package/dist/di/container.js +0 -88
  186. package/dist/di/types.d.ts +0 -23
  187. package/dist/di/types.d.ts.map +0 -1
  188. package/dist/di/types.js +0 -32
  189. package/dist/repositories/config-repository.d.ts +0 -46
  190. package/dist/repositories/config-repository.d.ts.map +0 -1
  191. package/dist/repositories/config-repository.js +0 -62
  192. package/dist/repositories/gateway-repository.d.ts +0 -37
  193. package/dist/repositories/gateway-repository.d.ts.map +0 -1
  194. package/dist/repositories/gateway-repository.js +0 -35
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shared auth mode selection for application create flows.
3
+ * Uses authModes (none | org | api-key | org+api-key) instead of deprecated requireOrgAuth.
4
+ */
5
+ export type AuthModeChoice = 'none' | 'org' | 'api-key' | 'org-and-api-key';
6
+ export type AuthMode = 'none' | 'org' | 'api-key';
7
+ export interface AuthPromptResult {
8
+ authModes: AuthMode[];
9
+ allowedOrganizations?: string[];
10
+ }
11
+ /**
12
+ * Parse --auth-modes string (e.g. "org", "org,api-key") into AuthMode[].
13
+ * Used for non-interactive and flags.
14
+ */
15
+ export declare function parseAuthModes(value: string | undefined): AuthMode[] | undefined;
16
+ /**
17
+ * Prompt for auth mode (and optionally allowed orgs) in interactive mode.
18
+ * Returns authModes and allowedOrganizations (only when org is in authModes).
19
+ */
20
+ export declare function promptAuthModes(options: {
21
+ authModesFromFlag?: AuthMode[];
22
+ allowedOrgsFromFlag?: string[];
23
+ nonInteractive?: boolean;
24
+ }): Promise<AuthPromptResult>;
25
+ //# sourceMappingURL=auth-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/auth-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAwBlD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,EAAE,GAAG,SAAS,CAahF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgE5B"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * Shared auth mode selection for application create flows.
4
+ * Uses authModes (none | org | api-key | org+api-key) instead of deprecated requireOrgAuth.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.parseAuthModes = parseAuthModes;
11
+ exports.promptAuthModes = promptAuthModes;
12
+ const inquirer_1 = __importDefault(require("inquirer"));
13
+ const AUTH_CHOICES = [
14
+ { name: 'None (public access)', value: 'none', short: 'None' },
15
+ { name: 'Organization (logged-in org members)', value: 'org', short: 'Org' },
16
+ { name: 'API key (programmatic access)', value: 'api-key', short: 'API key' },
17
+ { name: 'Organization + API key (either)', value: 'org-and-api-key', short: 'Org + API key' },
18
+ ];
19
+ function choiceToAuthModes(choice) {
20
+ switch (choice) {
21
+ case 'none':
22
+ return ['none'];
23
+ case 'org':
24
+ return ['org'];
25
+ case 'api-key':
26
+ return ['api-key'];
27
+ case 'org-and-api-key':
28
+ return ['org', 'api-key'];
29
+ default:
30
+ return ['none'];
31
+ }
32
+ }
33
+ /**
34
+ * Parse --auth-modes string (e.g. "org", "org,api-key") into AuthMode[].
35
+ * Used for non-interactive and flags.
36
+ */
37
+ function parseAuthModes(value) {
38
+ if (!value || !value.trim())
39
+ return undefined;
40
+ const parts = value.split(',').map((s) => s.trim().toLowerCase());
41
+ const valid = [];
42
+ for (const p of parts) {
43
+ if (p === 'none' || p === 'org' || p === 'api-key') {
44
+ if (p === 'none' && valid.length > 0)
45
+ continue;
46
+ if (p !== 'none' && valid.includes('none'))
47
+ valid.length = 0;
48
+ if (!valid.includes(p))
49
+ valid.push(p);
50
+ }
51
+ }
52
+ if (valid.length === 0)
53
+ return undefined;
54
+ return valid;
55
+ }
56
+ /**
57
+ * Prompt for auth mode (and optionally allowed orgs) in interactive mode.
58
+ * Returns authModes and allowedOrganizations (only when org is in authModes).
59
+ */
60
+ async function promptAuthModes(options) {
61
+ const { authModesFromFlag, allowedOrgsFromFlag, nonInteractive } = options;
62
+ if (nonInteractive) {
63
+ const authModes = authModesFromFlag && authModesFromFlag.length > 0 ? authModesFromFlag : ['none'];
64
+ return {
65
+ authModes,
66
+ allowedOrganizations: authModes.includes('org') && allowedOrgsFromFlag && allowedOrgsFromFlag.length > 0
67
+ ? allowedOrgsFromFlag
68
+ : undefined,
69
+ };
70
+ }
71
+ if (authModesFromFlag && authModesFromFlag.length > 0) {
72
+ const allowedOrganizations = authModesFromFlag.includes('org') && allowedOrgsFromFlag && allowedOrgsFromFlag.length > 0
73
+ ? allowedOrgsFromFlag
74
+ : undefined;
75
+ return { authModes: authModesFromFlag, allowedOrganizations };
76
+ }
77
+ const { authChoice } = await inquirer_1.default.prompt([
78
+ {
79
+ type: 'list',
80
+ name: 'authChoice',
81
+ message: 'How should access to this application be protected?',
82
+ choices: AUTH_CHOICES,
83
+ default: 'none',
84
+ },
85
+ ]);
86
+ const authModes = choiceToAuthModes(authChoice);
87
+ let allowedOrganizations;
88
+ if (authModes.includes('org')) {
89
+ const { allowOtherOrgs } = await inquirer_1.default.prompt([
90
+ {
91
+ type: 'confirm',
92
+ name: 'allowOtherOrgs',
93
+ message: 'Allow other organizations to access this application?',
94
+ default: false,
95
+ },
96
+ ]);
97
+ if (allowOtherOrgs) {
98
+ const { orgIds } = await inquirer_1.default.prompt([
99
+ {
100
+ type: 'input',
101
+ name: 'orgIds',
102
+ message: 'Enter comma-separated organization IDs to allow access:',
103
+ },
104
+ ]);
105
+ if (orgIds && typeof orgIds === 'string' && orgIds.trim()) {
106
+ allowedOrganizations = orgIds
107
+ .split(',')
108
+ .map((s) => s.trim())
109
+ .filter(Boolean);
110
+ }
111
+ }
112
+ }
113
+ return { authModes, allowedOrganizations };
114
+ }
115
+ //# sourceMappingURL=auth-prompt.js.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared device selection utilities
3
+ */
4
+ import type { DeviceService } from '../../services/device/DeviceService';
5
+ export interface DeviceSelectionOptions {
6
+ allowNone?: boolean;
7
+ message?: string;
8
+ required?: boolean;
9
+ }
10
+ /**
11
+ * Prompt user to select a device from available devices
12
+ */
13
+ export declare function promptDeviceSelection(deviceService: DeviceService, options?: DeviceSelectionOptions): Promise<string | null>;
14
+ /**
15
+ * Get device ID from option or prompt if not provided
16
+ */
17
+ export declare function getDeviceId(deviceService: DeviceService, providedId: string | undefined, options?: DeviceSelectionOptions): Promise<string | null>;
18
+ //# sourceMappingURL=device-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-prompt.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/device-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGzE,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsCxB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * Shared device selection utilities
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.promptDeviceSelection = promptDeviceSelection;
10
+ exports.getDeviceId = getDeviceId;
11
+ const inquirer_1 = __importDefault(require("inquirer"));
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ /**
14
+ * Prompt user to select a device from available devices
15
+ */
16
+ async function promptDeviceSelection(deviceService, options = {}) {
17
+ const { allowNone = false, message = 'Select device:', required = true } = options;
18
+ const { devices } = await deviceService.listDevices();
19
+ if (devices.length === 0) {
20
+ if (allowNone) {
21
+ return null;
22
+ }
23
+ console.log(chalk_1.default.yellow('⚠ No devices found in organization'));
24
+ if (required) {
25
+ throw new Error('No devices available');
26
+ }
27
+ return null;
28
+ }
29
+ const choices = devices.map((d) => ({
30
+ name: `${d.name} (${d.id}) - ${d.type}`,
31
+ value: d.id,
32
+ }));
33
+ if (allowNone) {
34
+ choices.push({
35
+ name: 'None',
36
+ value: '',
37
+ });
38
+ }
39
+ const answer = await inquirer_1.default.prompt([
40
+ {
41
+ type: 'list',
42
+ name: 'deviceId',
43
+ message,
44
+ choices,
45
+ },
46
+ ]);
47
+ return answer.deviceId === '' ? null : answer.deviceId;
48
+ }
49
+ /**
50
+ * Get device ID from option or prompt if not provided
51
+ */
52
+ async function getDeviceId(deviceService, providedId, options = {}) {
53
+ if (providedId) {
54
+ return providedId;
55
+ }
56
+ return await promptDeviceSelection(deviceService, options);
57
+ }
58
+ //# sourceMappingURL=device-prompt.js.map
@@ -40,6 +40,19 @@ export declare function formatGateway(gateway: {
40
40
  };
41
41
  applicationCount?: number;
42
42
  }): string;
43
+ /**
44
+ * Format device output (for device list)
45
+ */
46
+ export declare function formatDevice(device: {
47
+ id: string;
48
+ name: string;
49
+ type: string;
50
+ status: string;
51
+ organizationId: string;
52
+ createdAt: string;
53
+ lastSeen?: string;
54
+ description?: string;
55
+ }): string;
43
56
  /**
44
57
  * Format list of items as table-like output
45
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/output-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAuBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC9C,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/output-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAqBT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACrC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CAuBT;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAkBT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,CAAC,EAAE,EACV,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC9C,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -9,6 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.formatApplication = formatApplication;
11
11
  exports.formatGateway = formatGateway;
12
+ exports.formatDevice = formatDevice;
12
13
  exports.formatList = formatList;
13
14
  exports.formatError = formatError;
14
15
  exports.formatSuccess = formatSuccess;
@@ -61,6 +62,26 @@ function formatGateway(gateway) {
61
62
  output += chalk_1.default.gray(` Created: ${new Date(gateway.device.createdAt).toLocaleString()}\n`);
62
63
  return output;
63
64
  }
65
+ /**
66
+ * Format device output (for device list)
67
+ */
68
+ function formatDevice(device) {
69
+ const statusColor = device.status === 'active' ? chalk_1.default.green : chalk_1.default.yellow;
70
+ const statusIcon = device.status === 'active' ? '●' : '○';
71
+ let output = '';
72
+ output += `${statusIcon} ${device.name}\n`;
73
+ output += chalk_1.default.gray(` ID: ${device.id}\n`);
74
+ output += chalk_1.default.gray(` Type: ${device.type}\n`);
75
+ output += chalk_1.default.gray(` Status: ${statusColor(device.status)}\n`);
76
+ output += chalk_1.default.gray(` Created: ${new Date(device.createdAt).toLocaleString()}\n`);
77
+ if (device.lastSeen) {
78
+ output += chalk_1.default.gray(` Last seen: ${new Date(device.lastSeen).toLocaleString()}\n`);
79
+ }
80
+ if (device.description) {
81
+ output += chalk_1.default.gray(` Description: ${device.description}\n`);
82
+ }
83
+ return output;
84
+ }
64
85
  /**
65
86
  * Format list of items as table-like output
66
87
  */
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ const errors_1 = require("./utils/errors");
6
6
  const output_1 = require("./utils/output");
7
7
  const application_1 = require("./commands/application");
8
8
  const gateway_1 = require("./commands/gateway");
9
+ const device_1 = require("./commands/device");
9
10
  const auth_1 = require("./commands/auth");
10
11
  const config_1 = require("./commands/config");
11
12
  const discover_1 = require("./commands/discover");
@@ -37,6 +38,7 @@ program
37
38
  (0, auth_1.setupAuthCommands)(program);
38
39
  (0, application_1.setupApplicationCommands)(program);
39
40
  (0, gateway_1.setupGatewayCommands)(program);
41
+ (0, device_1.setupDeviceCommands)(program);
40
42
  (0, stack_1.setupStackCommands)(program);
41
43
  (0, config_1.setupConfigCommands)(program);
42
44
  (0, discover_1.setupDiscoverCommands)(program);
@@ -1,6 +1,7 @@
1
1
  import { UnifiedAgentStatus } from '../types/UnifiedAgentStatus';
2
2
  import { InstallationResult, UpdateResult, ConfigurationResult, LocalAgentHealthStatus, AgentInstallationOptions, AgentUpdateOptions } from '../types/agent';
3
3
  import { Application } from '../types/validation';
4
+ import { ConfigManager } from '../state/config';
4
5
  export declare class LocalAgentManager {
5
6
  private configPath;
6
7
  private agentPath;
@@ -9,7 +10,7 @@ export declare class LocalAgentManager {
9
10
  private agentProcess;
10
11
  private configManager;
11
12
  private statusManager;
12
- constructor();
13
+ constructor(configManager?: ConfigManager);
13
14
  /**
14
15
  * Update agent configuration with current CLI device credentials
15
16
  * @param configPath Optional config path to use. If not provided, uses the instance's configPath.
@@ -1 +1 @@
1
- {"version":3,"file":"LocalAgentManager.d.ts","sourceRoot":"","sources":["../../src/services/LocalAgentManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocalAgentManager.d.ts","sourceRoot":"","sources":["../../src/services/LocalAgentManager.ts"],"names":[],"mappings":"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"}
@@ -55,11 +55,12 @@ const writeFile = (0, util_1.promisify)(fs.writeFile);
55
55
  const readFile = (0, util_1.promisify)(fs.readFile);
56
56
  const mkdir = (0, util_1.promisify)(fs.mkdir);
57
57
  class LocalAgentManager {
58
- constructor() {
58
+ constructor(configManager) {
59
59
  this.agentProcess = null;
60
+ // Use provided configManager or create a new one (for backwards compatibility)
61
+ this.configManager = configManager || new config_1.ConfigManager();
60
62
  // Get user config to determine installation type
61
- const tempConfigManager = new config_1.ConfigManager();
62
- const userConfig = tempConfigManager.getConfig();
63
+ const userConfig = this.configManager.getConfig();
63
64
  // Resolve agent config path based on installation type
64
65
  this.configPath = PathResolver_1.PathResolver.resolveAgentConfigPath(userConfig.agentInstallationType);
65
66
  // Check for the actual agent binary location
@@ -71,7 +72,6 @@ class LocalAgentManager {
71
72
  this.agentPath = possibleAgentPaths.find(p => fs.existsSync(p)) || possibleAgentPaths[0];
72
73
  this.serviceName = 'edgible-agent';
73
74
  this.statePath = path.join(this.configPath, 'state.json');
74
- this.configManager = new config_1.ConfigManager();
75
75
  this.statusManager = new AgentStatusManager_1.AgentStatusManager();
76
76
  }
77
77
  /**
@@ -91,6 +91,7 @@ class LocalAgentManager {
91
91
  devicePassword: cliConfig.devicePassword,
92
92
  deviceType: cliConfig.deviceType || 'serving',
93
93
  apiBaseUrl: (0, urls_1.getApiBaseUrl)(),
94
+ stage: (0, urls_1.getStage)(),
94
95
  organizationId: cliConfig.organizationId,
95
96
  firewallEnabled: true,
96
97
  pollingInterval: 60000,
@@ -1484,6 +1485,7 @@ class LocalAgentManager {
1484
1485
  devicePassword: cliConfig.devicePassword || 'edgible-password-' + Math.random().toString(36).substr(2, 9),
1485
1486
  deviceType: cliConfig.deviceType || 'serving',
1486
1487
  apiBaseUrl: (0, urls_1.getApiBaseUrl)(),
1488
+ stage: (0, urls_1.getStage)(),
1487
1489
  firewallEnabled: true,
1488
1490
  pollingInterval: 60000,
1489
1491
  healthCheckTimeout: 5000,
@@ -36,6 +36,14 @@ export interface ApplicationService {
36
36
  createShortCode(applicationId: string, name: string, expiresAt?: string, maxUses?: number): Promise<any>;
37
37
  updateShortCode(applicationId: string, codeId: string, updates: any): Promise<any>;
38
38
  deleteShortCode(applicationId: string, codeId: string): Promise<void>;
39
+ updateApplication(applicationId: string, updates: {
40
+ name?: string;
41
+ description?: string;
42
+ authModes?: Array<'none' | 'org' | 'api-key'>;
43
+ allowedOrganizations?: string[];
44
+ targetState?: string;
45
+ dependsOnApplicationIds?: string[];
46
+ }): Promise<unknown>;
39
47
  }
40
48
  export declare class ApplicationServiceImpl implements ApplicationService {
41
49
  private apiClient;
@@ -95,5 +103,16 @@ export declare class ApplicationServiceImpl implements ApplicationService {
95
103
  * Delete a short code
96
104
  */
97
105
  deleteShortCode(applicationId: string, codeId: string): Promise<void>;
106
+ /**
107
+ * Update application (e.g. auth modes, name, description)
108
+ */
109
+ updateApplication(applicationId: string, updates: {
110
+ name?: string;
111
+ description?: string;
112
+ authModes?: Array<'none' | 'org' | 'api-key'>;
113
+ allowedOrganizations?: string[];
114
+ targetState?: 'running' | 'suspended';
115
+ dependsOnApplicationIds?: string[];
116
+ }): Promise<unknown>;
98
117
  }
99
118
  //# sourceMappingURL=ApplicationService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"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"}
@@ -293,7 +293,6 @@ class ApplicationServiceImpl {
293
293
  if (params.dependsOnApplicationIds !== undefined && params.dependsOnApplicationIds.length > 0) {
294
294
  createRequest.dependsOnApplicationIds = params.dependsOnApplicationIds;
295
295
  }
296
- console.log(`application: ${params}`);
297
296
  const response = await this.apiClient.createApplication(createRequest);
298
297
  return response.application;
299
298
  }
@@ -398,6 +397,20 @@ class ApplicationServiceImpl {
398
397
  throw new Error(`Failed to delete short code: ${error instanceof Error ? error.message : 'Unknown error'}`);
399
398
  }
400
399
  }
400
+ /**
401
+ * Update application (e.g. auth modes, name, description)
402
+ */
403
+ async updateApplication(applicationId, updates) {
404
+ try {
405
+ await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
406
+ const response = await this.apiClient.updateApplication({ applicationId, ...updates });
407
+ return response.application;
408
+ }
409
+ catch (error) {
410
+ this.logger.error('Failed to update application', error);
411
+ throw new Error(`Failed to update application: ${error instanceof Error ? error.message : 'Unknown error'}`);
412
+ }
413
+ }
401
414
  }
402
415
  exports.ApplicationServiceImpl = ApplicationServiceImpl;
403
416
  //# sourceMappingURL=ApplicationService.js.map
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Device service
3
+ * Handles device list and delete operations for the organization
4
+ */
5
+ import { ConfigManager } from '../../state/config';
6
+ import { AuthService } from '../auth/AuthService';
7
+ import { TokenManager } from '../token/TokenManager';
8
+ import { Logger } from '../../utils/logger';
9
+ import { DeviceData } from '../../types/models/DeviceData';
10
+ import type { DeviceHealthStatus, DeviceApplicationHealthResponse } from '../../types/AgentConfig';
11
+ export type DeviceTypeFilter = 'serving' | 'gateway';
12
+ export interface ListDevicesOptions {
13
+ type?: DeviceTypeFilter;
14
+ }
15
+ export interface DeviceListResult {
16
+ devices: DeviceData[];
17
+ }
18
+ export interface DeviceTelemetryResult {
19
+ data: unknown;
20
+ status: number;
21
+ }
22
+ export interface DeviceService {
23
+ listDevices(options?: ListDevicesOptions): Promise<DeviceListResult>;
24
+ deleteDevice(deviceId: string): Promise<void>;
25
+ /** Get a single device by ID (includes telemetryUrl when set). */
26
+ getDevice(deviceId: string): Promise<DeviceData | null>;
27
+ /** Fetch JSON from a device telemetry endpoint using current auth token. */
28
+ fetchTelemetry(telemetryBaseUrl: string, endpoint: string): Promise<DeviceTelemetryResult>;
29
+ /** Resolve device by ID or name; returns device ID or null if not found / not selected. */
30
+ resolveDeviceId(options: {
31
+ deviceId?: string;
32
+ name?: string;
33
+ interactive?: boolean;
34
+ message?: string;
35
+ }): Promise<string | null>;
36
+ /** Fetch device health from telemetry endpoint (uses telemetry session token). */
37
+ getDeviceHealth(deviceId: string): Promise<DeviceHealthStatus>;
38
+ /** Fetch application health for a device from telemetry GET /health/applications (uses telemetry session). */
39
+ getDeviceApplicationHealth(deviceId: string): Promise<DeviceApplicationHealthResponse>;
40
+ }
41
+ export declare class DeviceServiceImpl implements DeviceService {
42
+ private apiClient;
43
+ private configManager;
44
+ private authService;
45
+ private tokenManager;
46
+ private logger;
47
+ private baseUrl;
48
+ constructor(baseUrl: string, configManager: ConfigManager, authService: AuthService, tokenManager: TokenManager, logger: Logger);
49
+ listDevices(options?: ListDevicesOptions): Promise<DeviceListResult>;
50
+ deleteDevice(deviceId: string): Promise<void>;
51
+ getDevice(deviceId: string): Promise<DeviceData | null>;
52
+ fetchTelemetry(telemetryBaseUrl: string, endpoint: string): Promise<DeviceTelemetryResult>;
53
+ resolveDeviceId(options: {
54
+ deviceId?: string;
55
+ name?: string;
56
+ interactive?: boolean;
57
+ message?: string;
58
+ }): Promise<string | null>;
59
+ getDeviceHealth(deviceId: string): Promise<DeviceHealthStatus>;
60
+ getDeviceApplicationHealth(deviceId: string): Promise<DeviceApplicationHealthResponse>;
61
+ }
62
+ //# sourceMappingURL=DeviceService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceService.d.ts","sourceRoot":"","sources":["../../../src/services/device/DeviceService.ts"],"names":[],"mappings":"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"}