@edgible-team/cli 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +114 -1
  3. package/dist/client/api-client.d.ts +575 -0
  4. package/dist/client/api-client.d.ts.map +1 -0
  5. package/dist/client/api-client.js +196 -2
  6. package/dist/client/index.d.ts +10 -0
  7. package/dist/client/index.d.ts.map +1 -0
  8. package/dist/commands/agent.d.ts +3 -0
  9. package/dist/commands/agent.d.ts.map +1 -0
  10. package/dist/commands/agent.js +18 -34
  11. package/dist/commands/ai.d.ts +3 -0
  12. package/dist/commands/ai.d.ts.map +1 -0
  13. package/dist/commands/ai.js +1661 -275
  14. package/dist/commands/application.d.ts +6 -0
  15. package/dist/commands/application.d.ts.map +1 -0
  16. package/dist/commands/application.js +377 -0
  17. package/dist/commands/auth.d.ts +3 -0
  18. package/dist/commands/auth.d.ts.map +1 -0
  19. package/dist/commands/base/BaseCommand.d.ts +53 -0
  20. package/dist/commands/base/BaseCommand.d.ts.map +1 -0
  21. package/dist/commands/base/CommandHandler.d.ts +28 -0
  22. package/dist/commands/base/CommandHandler.d.ts.map +1 -0
  23. package/dist/commands/base/command-wrapper.d.ts +21 -0
  24. package/dist/commands/base/command-wrapper.d.ts.map +1 -0
  25. package/dist/commands/base/middleware.d.ts +34 -0
  26. package/dist/commands/base/middleware.d.ts.map +1 -0
  27. package/dist/commands/config.d.ts +3 -0
  28. package/dist/commands/config.d.ts.map +1 -0
  29. package/dist/commands/connectivity.d.ts +3 -0
  30. package/dist/commands/connectivity.d.ts.map +1 -0
  31. package/dist/commands/debug.d.ts +3 -0
  32. package/dist/commands/debug.d.ts.map +1 -0
  33. package/dist/commands/debug.js +336 -0
  34. package/dist/commands/discover.d.ts +3 -0
  35. package/dist/commands/discover.d.ts.map +1 -0
  36. package/dist/commands/examples/migrated-command-example.d.ts +31 -0
  37. package/dist/commands/examples/migrated-command-example.d.ts.map +1 -0
  38. package/dist/commands/gateway.d.ts +6 -0
  39. package/dist/commands/gateway.d.ts.map +1 -0
  40. package/dist/commands/managedGateway.d.ts +6 -0
  41. package/dist/commands/managedGateway.d.ts.map +1 -0
  42. package/dist/commands/managedGateway.js +132 -0
  43. package/dist/commands/utils/config-validator.d.ts +29 -0
  44. package/dist/commands/utils/config-validator.d.ts.map +1 -0
  45. package/dist/commands/utils/gateway-prompt.d.ts +23 -0
  46. package/dist/commands/utils/gateway-prompt.d.ts.map +1 -0
  47. package/dist/commands/utils/input-parser.d.ts +34 -0
  48. package/dist/commands/utils/input-parser.d.ts.map +1 -0
  49. package/dist/commands/utils/output-formatter.d.ts +62 -0
  50. package/dist/commands/utils/output-formatter.d.ts.map +1 -0
  51. package/dist/config/app-config.d.ts +44 -0
  52. package/dist/config/app-config.d.ts.map +1 -0
  53. package/dist/detection/SystemCapabilityDetector.d.ts +139 -0
  54. package/dist/detection/SystemCapabilityDetector.d.ts.map +1 -0
  55. package/dist/detection/ToolDetector.d.ts +16 -0
  56. package/dist/detection/ToolDetector.d.ts.map +1 -0
  57. package/dist/detection/WorkloadDetector.d.ts +62 -0
  58. package/dist/detection/WorkloadDetector.d.ts.map +1 -0
  59. package/dist/detection/tools.d.ts +16 -0
  60. package/dist/detection/tools.d.ts.map +1 -0
  61. package/dist/detection/tools.js +305 -0
  62. package/dist/di/bindings.d.ts +15 -0
  63. package/dist/di/bindings.d.ts.map +1 -0
  64. package/dist/di/container.d.ts +44 -0
  65. package/dist/di/container.d.ts.map +1 -0
  66. package/dist/di/types.d.ts +23 -0
  67. package/dist/di/types.d.ts.map +1 -0
  68. package/dist/index.d.ts +3 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +8 -1
  71. package/dist/interfaces/IDaemonManager.d.ts +67 -0
  72. package/dist/interfaces/IDaemonManager.d.ts.map +1 -0
  73. package/dist/repositories/config-repository.d.ts +46 -0
  74. package/dist/repositories/config-repository.d.ts.map +1 -0
  75. package/dist/repositories/gateway-repository.d.ts +37 -0
  76. package/dist/repositories/gateway-repository.d.ts.map +1 -0
  77. package/dist/services/AgentStatusManager.d.ts +30 -0
  78. package/dist/services/AgentStatusManager.d.ts.map +1 -0
  79. package/dist/services/ConnectivityTester.d.ts +30 -0
  80. package/dist/services/ConnectivityTester.d.ts.map +1 -0
  81. package/dist/services/DependencyInstaller.d.ts +32 -0
  82. package/dist/services/DependencyInstaller.d.ts.map +1 -0
  83. package/dist/services/LocalAgentManager.d.ts +220 -0
  84. package/dist/services/LocalAgentManager.d.ts.map +1 -0
  85. package/dist/services/LocalAgentManager.js +3 -5
  86. package/dist/services/application/ApplicationService.d.ts +54 -0
  87. package/dist/services/application/ApplicationService.d.ts.map +1 -0
  88. package/dist/services/application/ApplicationService.js +10 -3
  89. package/dist/services/auth/AuthService.d.ts +42 -0
  90. package/dist/services/auth/AuthService.d.ts.map +1 -0
  91. package/dist/services/aws.d.ts +136 -0
  92. package/dist/services/aws.d.ts.map +1 -0
  93. package/dist/services/aws.js +2 -2
  94. package/dist/services/daemon/DaemonManagerFactory.d.ts +17 -0
  95. package/dist/services/daemon/DaemonManagerFactory.d.ts.map +1 -0
  96. package/dist/services/daemon/DockerDaemonManager.d.ts +26 -0
  97. package/dist/services/daemon/DockerDaemonManager.d.ts.map +1 -0
  98. package/dist/services/daemon/LaunchdDaemonManager.d.ts +20 -0
  99. package/dist/services/daemon/LaunchdDaemonManager.d.ts.map +1 -0
  100. package/dist/services/daemon/LaunchdDaemonManager.js +54 -6
  101. package/dist/services/daemon/PodmanDaemonManager.d.ts +24 -0
  102. package/dist/services/daemon/PodmanDaemonManager.d.ts.map +1 -0
  103. package/dist/services/daemon/SystemdDaemonManager.d.ts +20 -0
  104. package/dist/services/daemon/SystemdDaemonManager.d.ts.map +1 -0
  105. package/dist/services/daemon/WindowsServiceDaemonManager.d.ts +19 -0
  106. package/dist/services/daemon/WindowsServiceDaemonManager.d.ts.map +1 -0
  107. package/dist/services/daemon/index.d.ts +7 -0
  108. package/dist/services/daemon/index.d.ts.map +1 -0
  109. package/dist/services/edgible.d.ts +304 -0
  110. package/dist/services/edgible.d.ts.map +1 -0
  111. package/dist/services/edgible.js +53 -4
  112. package/dist/services/gateway/GatewayService.d.ts +88 -0
  113. package/dist/services/gateway/GatewayService.d.ts.map +1 -0
  114. package/dist/state/config.d.ts +96 -0
  115. package/dist/state/config.d.ts.map +1 -0
  116. package/dist/types/AgentConfig.d.ts +126 -0
  117. package/dist/types/AgentConfig.d.ts.map +1 -0
  118. package/dist/types/AgentStatus.d.ts +30 -0
  119. package/dist/types/AgentStatus.d.ts.map +1 -0
  120. package/dist/types/ApiClient.d.ts +36 -0
  121. package/dist/types/ApiClient.d.ts.map +1 -0
  122. package/dist/types/ApiRequests.d.ts +269 -0
  123. package/dist/types/ApiRequests.d.ts.map +1 -0
  124. package/dist/types/ApiResponses.d.ts +348 -0
  125. package/dist/types/ApiResponses.d.ts.map +1 -0
  126. package/dist/types/Application.d.ts +13 -0
  127. package/dist/types/Application.d.ts.map +1 -0
  128. package/dist/types/CaddyJson.d.ts +231 -0
  129. package/dist/types/CaddyJson.d.ts.map +1 -0
  130. package/dist/types/DeviceMetrics.d.ts +95 -0
  131. package/dist/types/DeviceMetrics.d.ts.map +1 -0
  132. package/dist/types/DeviceMetrics.js +5 -0
  133. package/dist/types/LogAggregation.d.ts +106 -0
  134. package/dist/types/LogAggregation.d.ts.map +1 -0
  135. package/dist/types/LogAggregation.js +5 -0
  136. package/dist/types/LogEntry.d.ts +60 -0
  137. package/dist/types/LogEntry.d.ts.map +1 -0
  138. package/dist/types/LogEntry.js +5 -0
  139. package/dist/types/UnifiedAgentStatus.d.ts +28 -0
  140. package/dist/types/UnifiedAgentStatus.d.ts.map +1 -0
  141. package/dist/types/WireGuard.d.ts +36 -0
  142. package/dist/types/WireGuard.d.ts.map +1 -0
  143. package/dist/types/Workload.d.ts +9 -0
  144. package/dist/types/Workload.d.ts.map +1 -0
  145. package/dist/types/agent.d.ts +120 -0
  146. package/dist/types/agent.d.ts.map +1 -0
  147. package/dist/types/command-options.d.ts +115 -0
  148. package/dist/types/command-options.d.ts.map +1 -0
  149. package/dist/types/connectivity.d.ts +80 -0
  150. package/dist/types/connectivity.d.ts.map +1 -0
  151. package/dist/types/errors.d.ts +97 -0
  152. package/dist/types/errors.d.ts.map +1 -0
  153. package/dist/types/gateway-types.d.ts +46 -0
  154. package/dist/types/gateway-types.d.ts.map +1 -0
  155. package/dist/types/index.d.ts +28 -0
  156. package/dist/types/index.d.ts.map +1 -0
  157. package/dist/types/models/ApplicationData.d.ts +78 -0
  158. package/dist/types/models/ApplicationData.d.ts.map +1 -0
  159. package/dist/types/models/CertificateData.d.ts +44 -0
  160. package/dist/types/models/CertificateData.d.ts.map +1 -0
  161. package/dist/types/models/DeviceData.d.ts +29 -0
  162. package/dist/types/models/DeviceData.d.ts.map +1 -0
  163. package/dist/types/models/DevicePoolData.d.ts +47 -0
  164. package/dist/types/models/DevicePoolData.d.ts.map +1 -0
  165. package/dist/types/models/LifecycleEvent.d.ts +27 -0
  166. package/dist/types/models/LifecycleEvent.d.ts.map +1 -0
  167. package/dist/types/models/LifecycleEvent.js +5 -0
  168. package/dist/types/models/OrganizationData.d.ts +53 -0
  169. package/dist/types/models/OrganizationData.d.ts.map +1 -0
  170. package/dist/types/models/OrganizationInviteData.d.ts +39 -0
  171. package/dist/types/models/OrganizationInviteData.d.ts.map +1 -0
  172. package/dist/types/models/ProviderConfiguration.d.ts +37 -0
  173. package/dist/types/models/ProviderConfiguration.d.ts.map +1 -0
  174. package/dist/types/models/ResourceData.d.ts +18 -0
  175. package/dist/types/models/ResourceData.d.ts.map +1 -0
  176. package/dist/types/models/ServiceResourceData.d.ts +5 -0
  177. package/dist/types/models/ServiceResourceData.d.ts.map +1 -0
  178. package/dist/types/models/UserData.d.ts +12 -0
  179. package/dist/types/models/UserData.d.ts.map +1 -0
  180. package/dist/types/route.d.ts +67 -0
  181. package/dist/types/route.d.ts.map +1 -0
  182. package/dist/types/validation/schemas.d.ts +606 -0
  183. package/dist/types/validation/schemas.d.ts.map +1 -0
  184. package/dist/types/validation/schemas.js +46 -4
  185. package/dist/types/validation.d.ts +68 -0
  186. package/dist/types/validation.d.ts.map +1 -0
  187. package/dist/utils/FileIntegrityManager.d.ts +37 -0
  188. package/dist/utils/FileIntegrityManager.d.ts.map +1 -0
  189. package/dist/utils/PathMigration.d.ts +45 -0
  190. package/dist/utils/PathMigration.d.ts.map +1 -0
  191. package/dist/utils/PathResolver.d.ts +76 -0
  192. package/dist/utils/PathResolver.d.ts.map +1 -0
  193. package/dist/utils/PlatformDetector.d.ts +60 -0
  194. package/dist/utils/PlatformDetector.d.ts.map +1 -0
  195. package/dist/utils/console-logger.d.ts +37 -0
  196. package/dist/utils/console-logger.d.ts.map +1 -0
  197. package/dist/utils/docker-compose-parser.d.ts +28 -0
  198. package/dist/utils/docker-compose-parser.d.ts.map +1 -0
  199. package/dist/utils/errors.d.ts +63 -0
  200. package/dist/utils/errors.d.ts.map +1 -0
  201. package/dist/utils/health-checker.d.ts +34 -0
  202. package/dist/utils/health-checker.d.ts.map +1 -0
  203. package/dist/utils/json-logger.d.ts +23 -0
  204. package/dist/utils/json-logger.d.ts.map +1 -0
  205. package/dist/utils/log-formatter.d.ts +85 -0
  206. package/dist/utils/log-formatter.d.ts.map +1 -0
  207. package/dist/utils/log-formatter.js +39 -11
  208. package/dist/utils/logger.d.ts +34 -0
  209. package/dist/utils/logger.d.ts.map +1 -0
  210. package/dist/utils/network-utils.d.ts +56 -0
  211. package/dist/utils/network-utils.d.ts.map +1 -0
  212. package/dist/utils/output.d.ts +73 -0
  213. package/dist/utils/output.d.ts.map +1 -0
  214. package/dist/utils/passwordValidation.d.ts +32 -0
  215. package/dist/utils/passwordValidation.d.ts.map +1 -0
  216. package/dist/utils/progress.d.ts +74 -0
  217. package/dist/utils/progress.d.ts.map +1 -0
  218. package/dist/utils/sudo-checker.d.ts +9 -0
  219. package/dist/utils/sudo-checker.d.ts.map +1 -0
  220. package/dist/utils/urls.d.ts +19 -0
  221. package/dist/utils/urls.d.ts.map +1 -0
  222. package/dist/utils/urls.js +3 -3
  223. package/dist/utils/validation.d.ts +19 -0
  224. package/dist/utils/validation.d.ts.map +1 -0
  225. package/dist/validation/schemas.d.ts +197 -0
  226. package/dist/validation/schemas.d.ts.map +1 -0
  227. package/dist/validation/schemas.js +1 -1
  228. package/dist/validation/validator.d.ts +22 -0
  229. package/dist/validation/validator.d.ts.map +1 -0
  230. package/package.json +9 -4
  231. package/recipes/compose/open-webui/.env +1 -0
  232. package/recipes/compose/open-webui/docker-compose.yml +17 -0
@@ -0,0 +1,304 @@
1
+ import { Workload, Application } from '../detection/WorkloadDetector';
2
+ import { LoginResponse } from '../client';
3
+ import { CreateDeviceWithOrphanedOrganizationResponse, GetUserOrganizationsResponse } from '../types/ApiResponses';
4
+ import { ApplicationSetupResult, ValidationResult } from '../types/validation';
5
+ import { LocalAgentHealthStatus } from '../types/agent';
6
+ /**
7
+ * Edgible service interface
8
+ * Uses the real API client for authentication and device management
9
+ */
10
+ export declare class EdgibleService {
11
+ private apiClient;
12
+ private applications;
13
+ private configManager;
14
+ private baseUrl;
15
+ constructor(baseUrl?: string);
16
+ private restoreTokensFromConfigSync;
17
+ private attemptAutoRelogin;
18
+ private saveTokensToConfig;
19
+ /**
20
+ * Authenticate user with email and password
21
+ * @param email - Email address
22
+ * @param password - Password
23
+ * @returns Promise<LoginResponse> - Login response with tokens
24
+ */
25
+ loginUser(email: string, password: string): Promise<LoginResponse>;
26
+ /**
27
+ * Create a device with orphaned organization (device login without user account)
28
+ * @param deviceName - Name of the device
29
+ * @param password - Password for the device (must meet Cognito requirements)
30
+ * @param userEmail - Optional user email for invite
31
+ * @returns Promise<CreateDeviceWithOrphanedOrganizationResponse> - Device creation response
32
+ */
33
+ createDeviceWithOrganization(deviceName: string, password: string, userEmail?: string): Promise<CreateDeviceWithOrphanedOrganizationResponse>;
34
+ /**
35
+ * Check if an account exists for the given email
36
+ * @param email - Email address to check
37
+ * @returns Promise<boolean> - True if account exists
38
+ */
39
+ checkAccount(email: string): Promise<boolean>;
40
+ /**
41
+ * Authenticate device with device ID and password
42
+ * This method is used when the CLI needs to authenticate as a device.
43
+ * NOTE: This will overwrite user tokens. Use verifyDeviceCredentials() for verification only.
44
+ * @param deviceId - Device ID
45
+ * @param password - Device password
46
+ * @returns Promise<LoginResponse> - Login response with tokens
47
+ */
48
+ loginDevice(deviceId: string, password: string): Promise<LoginResponse>;
49
+ /**
50
+ * Verify device credentials without overwriting user tokens
51
+ * This creates a temporary API client instance for verification
52
+ * @param deviceId - Device ID
53
+ * @param password - Device password
54
+ * @returns Promise<boolean> - True if credentials are valid
55
+ */
56
+ verifyDeviceCredentials(deviceId: string, password: string): Promise<boolean>;
57
+ /**
58
+ * Refresh authentication tokens
59
+ * @param refreshToken - Refresh token
60
+ * @returns Promise<RefreshTokenResponse> - New tokens
61
+ */
62
+ refreshToken(refreshToken: string): Promise<any>;
63
+ /**
64
+ * Get access token
65
+ * @returns string | undefined - Access token
66
+ */
67
+ getAccessToken(): string | undefined;
68
+ /**
69
+ * Get ID token
70
+ * @returns string | undefined - ID token
71
+ */
72
+ getIdToken(): string | undefined;
73
+ /**
74
+ * Get refresh token
75
+ * @returns string | undefined - Refresh token
76
+ */
77
+ getRefreshToken(): string | undefined;
78
+ /**
79
+ * Create a new account
80
+ * @param email - Email address
81
+ * @param name - Full name
82
+ * @returns Promise<boolean> - True if account created successfully
83
+ */
84
+ createAccount(email: string, name: string): Promise<boolean>;
85
+ /**
86
+ * Get account status
87
+ * @param email - Email address
88
+ * @returns Promise<object> - Account status information
89
+ */
90
+ getAccountStatus(email: string): Promise<object>;
91
+ /**
92
+ * Set up an application for a workload
93
+ * @param workload - The workload to set up an application for
94
+ * @param port - The port to expose
95
+ * @param protocol - The protocol to use
96
+ * @param description - Optional description
97
+ * @returns Promise<Application> - The created application
98
+ */
99
+ setupApplication(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<Application>;
100
+ /**
101
+ * Get all applications
102
+ * @returns Promise<Application[]> - List of applications
103
+ */
104
+ getApplications(): Promise<Application[]>;
105
+ /**
106
+ * Get application by ID
107
+ * @param id - Application ID
108
+ * @returns Promise<Application | null> - The application or null if not found
109
+ */
110
+ getApplication(id: string): Promise<Application>;
111
+ /**
112
+ * Delete an application
113
+ * @param id - Application ID
114
+ * @returns Promise<boolean> - True if deleted successfully
115
+ */
116
+ deleteApplication(id: string): Promise<boolean>;
117
+ /**
118
+ * Generate a mock serving IP address
119
+ * In a real implementation, this would be provided by the Edgible service
120
+ */
121
+ private generateServingIp;
122
+ /**
123
+ * Get user organizations
124
+ * @param email - Email address
125
+ * @returns Promise<GetUserOrganizationsResponse> - User organizations
126
+ */
127
+ getUserOrganizations(email: string): Promise<GetUserOrganizationsResponse>;
128
+ /**
129
+ * Create a gateway device and EC2 instance
130
+ */
131
+ createGateway(config: {
132
+ name: string;
133
+ description?: string;
134
+ awsProfile?: string;
135
+ region?: string;
136
+ instanceType?: string;
137
+ }): Promise<any>;
138
+ /**
139
+ * Create a serving device in the organization
140
+ */
141
+ createServingDevice(config: {
142
+ name: string;
143
+ description?: string;
144
+ }): Promise<any>;
145
+ /**
146
+ * List all serving devices
147
+ */
148
+ listServingDevices(): Promise<any>;
149
+ /**
150
+ * Get a specific device by ID
151
+ */
152
+ getDevice(deviceId: string): Promise<any>;
153
+ /**
154
+ * List all gateways
155
+ */
156
+ listGateways(): Promise<any>;
157
+ /**
158
+ * Delete a gateway
159
+ */
160
+ deleteGateway(gatewayId: string, force?: boolean): Promise<any>;
161
+ /**
162
+ * Resync agent on gateway
163
+ */
164
+ /**
165
+ * Create a managed gateway (admin only)
166
+ */
167
+ createManagedGateway(config: {
168
+ region?: string;
169
+ instanceType?: string;
170
+ name?: string;
171
+ }): Promise<any>;
172
+ /**
173
+ * List all managed gateways (admin only)
174
+ */
175
+ listManagedGateways(): Promise<any>;
176
+ /**
177
+ * Get managed gateway details (admin only)
178
+ */
179
+ getManagedGateway(gatewayId: string): Promise<any>;
180
+ /**
181
+ * Delete a managed gateway (admin only)
182
+ */
183
+ deleteManagedGateway(gatewayId: string, force?: boolean): Promise<any>;
184
+ /**
185
+ * Resync agent on a managed gateway (admin only)
186
+ */
187
+ resyncManagedGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean, reboot?: boolean, wipeLogs?: boolean, debug?: boolean): Promise<any>;
188
+ resyncGatewayAgent(gatewayId: string, agentVersion?: string, installFromLocal?: boolean): Promise<any>;
189
+ /**
190
+ * Get comprehensive gateway diagnostics including status, logs, and system info
191
+ */
192
+ getGatewayDiagnostics(gatewayId: string): Promise<{
193
+ status: string;
194
+ agentLogs: string;
195
+ systemInfo: string;
196
+ wireguardStatus: string;
197
+ caddyStatus: string;
198
+ serviceStatus: string;
199
+ networkInfo: string;
200
+ logPaths: string;
201
+ success: boolean;
202
+ }>;
203
+ /**
204
+ * Get agent logs from a gateway
205
+ */
206
+ /**
207
+ * Get logs from a managed gateway (admin only)
208
+ */
209
+ getManagedGatewayLogs(gatewayId: string, options: {
210
+ lines?: number;
211
+ follow?: boolean;
212
+ level?: 'error' | 'warn' | 'info' | 'debug' | 'all';
213
+ comprehensive?: boolean;
214
+ }): Promise<any>;
215
+ /**
216
+ * Execute a command on a managed gateway
217
+ */
218
+ executeManagedGatewayCommand(gatewayId: string, command: string): Promise<{
219
+ success: boolean;
220
+ output: string;
221
+ error?: string;
222
+ }>;
223
+ /**
224
+ * Execute gateway logs retrieval (internal method)
225
+ */
226
+ private executeGatewayLogs;
227
+ getGatewayLogs(gatewayId: string, options?: {
228
+ lines?: number;
229
+ follow?: boolean;
230
+ level?: 'error' | 'warn' | 'info' | 'debug' | 'all';
231
+ comprehensive?: boolean;
232
+ }): Promise<{
233
+ logs: string;
234
+ success: boolean;
235
+ }>;
236
+ /**
237
+ * Wipe agent log file on a gateway
238
+ */
239
+ wipeGatewayLogs(gatewayId: string): Promise<{
240
+ success: boolean;
241
+ message?: string;
242
+ logFile?: string;
243
+ }>;
244
+ /**
245
+ * Wipe agent log file on a managed gateway
246
+ */
247
+ wipeManagedGatewayLogs(gatewayId: string): Promise<{
248
+ success: boolean;
249
+ message?: string;
250
+ logFile?: string;
251
+ }>;
252
+ /**
253
+ * Get applications for a specific gateway
254
+ */
255
+ getGatewayApplications(gatewayId: string): Promise<Application[]>;
256
+ /**
257
+ * Generate user data script for agent
258
+ */
259
+ private generateAgentUserData;
260
+ /**
261
+ * Generate placeholder agent code
262
+ */
263
+ private generateAgentCode;
264
+ /**
265
+ * Enhanced setup with full validation
266
+ */
267
+ setupApplicationWithValidation(workload: Workload, port: number, protocol?: 'http' | 'https' | 'tcp' | 'udp', description?: string, gatewayId?: string): Promise<ApplicationSetupResult>;
268
+ /**
269
+ * Test application after setup
270
+ */
271
+ validateApplicationSetup(application: Application): Promise<ValidationResult>;
272
+ /**
273
+ * Get application health status
274
+ */
275
+ getApplicationHealth(applicationId: string): Promise<LocalAgentHealthStatus>;
276
+ /**
277
+ * Create application programmatically without interactive prompts
278
+ */
279
+ createApplicationProgrammatically(params: {
280
+ name: string;
281
+ description: string;
282
+ port: number;
283
+ protocol: 'http' | 'https' | 'tcp' | 'udp';
284
+ hostnames?: string[];
285
+ deviceIds: string[];
286
+ gatewayIds?: string[];
287
+ useManagedGateway?: boolean;
288
+ subtype: 'local-preexisting' | 'managed-docker' | 'systemd' | 'docker-compose' | 'managed-process';
289
+ configuration?: Record<string, unknown>;
290
+ }): Promise<any>;
291
+ /**
292
+ * Get application metrics (cross-org aware)
293
+ */
294
+ getApplicationMetrics(organizationId: string, applicationId: string, startTime: number, endTime: number): Promise<any>;
295
+ /**
296
+ * Get application metrics files (cross-org aware)
297
+ */
298
+ getApplicationMetricsFiles(organizationId: string, applicationId: string, startTime: number, endTime: number, interval?: '5min' | 'hourly'): Promise<any>;
299
+ /**
300
+ * Get application logs (cross-org aware)
301
+ */
302
+ getApplicationLogs(organizationId: string, applicationId: string, startTime: number, endTime: number, level?: string, eventType?: string): Promise<any>;
303
+ }
304
+ //# sourceMappingURL=edgible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edgible.d.ts","sourceRoot":"","sources":["../../src/services/edgible.ts"],"names":[],"mappings":"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"}
@@ -461,7 +461,7 @@ class EdgibleService {
461
461
  servingIp: app.url ? new URL(app.url).hostname : 'unknown',
462
462
  port: app.url ? parseInt(new URL(app.url).port) || 80 : 80,
463
463
  protocol: app.url && app.url.startsWith('https') ? 'https' : 'http',
464
- status: app.status === 'running' ? 'active' : 'inactive',
464
+ status: app.status === 'deployed' ? 'active' : 'inactive',
465
465
  createdAt: app.createdAt,
466
466
  description: app.description
467
467
  }));
@@ -494,7 +494,7 @@ class EdgibleService {
494
494
  servingIp: this.generateServingIp(),
495
495
  port: typeof port === 'number' ? port : 3000,
496
496
  protocol: protocol,
497
- status: appData.status === 'running' ? 'active' : 'inactive',
497
+ status: appData.status === 'deployed' ? 'active' : 'inactive',
498
498
  workloadId: workloadId || undefined,
499
499
  createdAt: appData.createdAt || new Date().toISOString(),
500
500
  url: appData.url
@@ -2569,7 +2569,7 @@ echo "OK"
2569
2569
  servingIp: app.url ? new URL(app.url).hostname : 'unknown',
2570
2570
  port: app.url ? parseInt(new URL(app.url).port) || 80 : 80,
2571
2571
  protocol: app.url && app.url.startsWith('https') ? 'https' : 'http',
2572
- status: app.status === 'running' ? 'active' : 'inactive',
2572
+ status: app.status === 'deployed' ? 'active' : 'inactive',
2573
2573
  createdAt: app.createdAt,
2574
2574
  description: app.description
2575
2575
  }));
@@ -3038,16 +3038,26 @@ console.log('Edgible Agent started successfully');
3038
3038
  if (!config.organizationId) {
3039
3039
  throw new Error('Not logged in. Please run "edgible login" first.');
3040
3040
  }
3041
+ // Build configuration object, merging provided configuration with port and protocol
3042
+ const configuration = {
3043
+ port: params.port,
3044
+ protocol: params.protocol,
3045
+ ...(params.configuration || {}),
3046
+ };
3041
3047
  const createRequest = {
3042
3048
  name: params.name,
3043
3049
  description: params.description,
3044
3050
  organizationId: config.organizationId,
3045
- configuration: { port: params.port, protocol: params.protocol },
3051
+ configuration,
3046
3052
  hostnames: params.hostnames,
3047
3053
  deviceIds: params.deviceIds,
3048
3054
  gatewayIds: params.gatewayIds,
3049
3055
  subtype: params.subtype
3050
3056
  };
3057
+ // Add useManagedGateway if specified
3058
+ if (params.useManagedGateway !== undefined) {
3059
+ createRequest.useManagedGateway = params.useManagedGateway;
3060
+ }
3051
3061
  const response = await this.apiClient.createApplication(createRequest);
3052
3062
  return response.application;
3053
3063
  }
@@ -3055,6 +3065,45 @@ console.log('Edgible Agent started successfully');
3055
3065
  throw new Error(`Failed to create application: ${error instanceof Error ? error.message : 'Unknown error'}`);
3056
3066
  }
3057
3067
  }
3068
+ /**
3069
+ * Get application metrics (cross-org aware)
3070
+ */
3071
+ async getApplicationMetrics(organizationId, applicationId, startTime, endTime) {
3072
+ try {
3073
+ // Attempt auto re-login if tokens are missing but credentials are available
3074
+ await this.attemptAutoRelogin();
3075
+ return await this.apiClient.getApplicationMetrics(organizationId, applicationId, startTime, endTime);
3076
+ }
3077
+ catch (error) {
3078
+ throw new Error(`Failed to get application metrics: ${error instanceof Error ? error.message : 'Unknown error'}`);
3079
+ }
3080
+ }
3081
+ /**
3082
+ * Get application metrics files (cross-org aware)
3083
+ */
3084
+ async getApplicationMetricsFiles(organizationId, applicationId, startTime, endTime, interval) {
3085
+ try {
3086
+ // Attempt auto re-login if tokens are missing but credentials are available
3087
+ await this.attemptAutoRelogin();
3088
+ return await this.apiClient.getApplicationMetricsFiles(organizationId, applicationId, startTime, endTime, interval);
3089
+ }
3090
+ catch (error) {
3091
+ throw new Error(`Failed to get application metrics files: ${error instanceof Error ? error.message : 'Unknown error'}`);
3092
+ }
3093
+ }
3094
+ /**
3095
+ * Get application logs (cross-org aware)
3096
+ */
3097
+ async getApplicationLogs(organizationId, applicationId, startTime, endTime, level, eventType) {
3098
+ try {
3099
+ // Attempt auto re-login if tokens are missing but credentials are available
3100
+ await this.attemptAutoRelogin();
3101
+ return await this.apiClient.getApplicationLogs(organizationId, applicationId, startTime, endTime, level, eventType);
3102
+ }
3103
+ catch (error) {
3104
+ throw new Error(`Failed to get application logs: ${error instanceof Error ? error.message : 'Unknown error'}`);
3105
+ }
3106
+ }
3058
3107
  }
3059
3108
  exports.EdgibleService = EdgibleService;
3060
3109
  //# sourceMappingURL=edgible.js.map
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Gateway service
3
+ * Handles gateway device management operations
4
+ */
5
+ import { ConfigRepository } from '../../repositories/config-repository';
6
+ import { GatewayRepository } from '../../repositories/gateway-repository';
7
+ import { AuthService } from '../auth/AuthService';
8
+ import { Logger } from '../../utils/logger';
9
+ import { ApplicationData } from '../../types/models/ApplicationData';
10
+ export interface GatewayCreateConfig {
11
+ name: string;
12
+ description?: string;
13
+ awsProfile?: string;
14
+ region?: string;
15
+ instanceType?: string;
16
+ }
17
+ export interface GatewayCreateResult {
18
+ message: string;
19
+ gateway: {
20
+ id: string;
21
+ name: string;
22
+ description: string;
23
+ organizationId: string;
24
+ createdAt: string;
25
+ };
26
+ ec2Instance: {
27
+ instanceId: string;
28
+ publicIp: string;
29
+ privateIp: string;
30
+ state: string;
31
+ keyPairName: string;
32
+ region: string;
33
+ };
34
+ sshKey: {
35
+ privateKey: string;
36
+ publicKey: string;
37
+ keyName: string;
38
+ };
39
+ }
40
+ export interface Gateway {
41
+ device: {
42
+ id: string;
43
+ name: string;
44
+ description: string;
45
+ type: 'gateway' | 'serving';
46
+ organizationId: string;
47
+ createdAt: string;
48
+ };
49
+ ec2Instance?: {
50
+ instanceId: string;
51
+ publicIp: string;
52
+ privateIp: string;
53
+ state: string;
54
+ region: string;
55
+ };
56
+ applicationCount?: number;
57
+ }
58
+ export interface GatewayListResult {
59
+ gateways: Gateway[];
60
+ }
61
+ export interface GatewayService {
62
+ createGateway(config: GatewayCreateConfig): Promise<GatewayCreateResult>;
63
+ listGateways(): Promise<GatewayListResult>;
64
+ deleteGateway(gatewayId: string, force: boolean): Promise<{
65
+ success: boolean;
66
+ message: string;
67
+ }>;
68
+ getGatewayApplications(gatewayId: string): Promise<ApplicationData[]>;
69
+ }
70
+ export declare class GatewayServiceImpl implements GatewayService {
71
+ private apiClient;
72
+ private configRepository;
73
+ private gatewayRepository;
74
+ private authService;
75
+ private logger;
76
+ private baseUrl;
77
+ constructor(baseUrl: string, configRepository: ConfigRepository, gatewayRepository: GatewayRepository, authService: AuthService, logger: Logger);
78
+ private restoreTokensFromApiClient;
79
+ private generateAgentUserData;
80
+ createGateway(config: GatewayCreateConfig): Promise<GatewayCreateResult>;
81
+ listGateways(): Promise<GatewayListResult>;
82
+ deleteGateway(gatewayId: string, force?: boolean): Promise<{
83
+ success: boolean;
84
+ message: string;
85
+ }>;
86
+ getGatewayApplications(gatewayId: string): Promise<ApplicationData[]>;
87
+ }
88
+ //# sourceMappingURL=GatewayService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GatewayService.d.ts","sourceRoot":"","sources":["../../../src/services/gateway/GatewayService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ export interface UserConfig {
2
+ email?: string;
3
+ isFirstRun: boolean;
4
+ lastLogin?: string;
5
+ accountExists?: boolean;
6
+ detectedTools?: string[];
7
+ toolDetectionDate?: string;
8
+ deviceId?: string;
9
+ deviceName?: string;
10
+ devicePassword?: string;
11
+ deviceType?: 'gateway' | 'serving';
12
+ organizationId?: string;
13
+ userEmail?: string;
14
+ accessToken?: string;
15
+ idToken?: string;
16
+ refreshToken?: string;
17
+ awsProfile?: string;
18
+ awsRegion?: string;
19
+ gateways?: {
20
+ [gatewayId: string]: {
21
+ name: string;
22
+ deviceId: string;
23
+ ec2InstanceId: string;
24
+ publicIp: string;
25
+ privateIp: string;
26
+ keyPairName: string;
27
+ keyPath: string;
28
+ region: string;
29
+ createdAt: string;
30
+ };
31
+ };
32
+ wireguardMode?: 'kernel' | 'userspace';
33
+ wireguardGoBinary?: string;
34
+ agentInstallationType?: 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
35
+ agentServiceName?: string;
36
+ agentContainerName?: string;
37
+ agentDataPath?: string;
38
+ }
39
+ export declare class ConfigManager {
40
+ private configPath;
41
+ private config;
42
+ constructor();
43
+ private loadConfig;
44
+ private saveConfig;
45
+ getConfig(): UserConfig;
46
+ updateConfig(updates: Partial<UserConfig>): void;
47
+ isFirstRun(): boolean;
48
+ setFirstRunComplete(): void;
49
+ setEmail(email: string): void;
50
+ getEmail(): string | undefined;
51
+ setAccountStatus(exists: boolean): void;
52
+ hasAccount(): boolean;
53
+ clearConfig(): void;
54
+ addGateway(gatewayId: string, gatewayInfo: {
55
+ name: string;
56
+ deviceId: string;
57
+ ec2InstanceId: string;
58
+ publicIp: string;
59
+ privateIp: string;
60
+ keyPairName: string;
61
+ keyPath: string;
62
+ region: string;
63
+ }): void;
64
+ getGateway(gatewayId: string): {
65
+ name: string;
66
+ deviceId: string;
67
+ ec2InstanceId: string;
68
+ publicIp: string;
69
+ privateIp: string;
70
+ keyPairName: string;
71
+ keyPath: string;
72
+ region: string;
73
+ createdAt: string;
74
+ } | undefined;
75
+ getGateways(): {
76
+ [gatewayId: string]: {
77
+ name: string;
78
+ deviceId: string;
79
+ ec2InstanceId: string;
80
+ publicIp: string;
81
+ privateIp: string;
82
+ keyPairName: string;
83
+ keyPath: string;
84
+ region: string;
85
+ createdAt: string;
86
+ };
87
+ };
88
+ removeGateway(gatewayId: string): void;
89
+ setAWSProfile(profile: string): void;
90
+ getAWSProfile(): string | undefined;
91
+ setAWSRegion(region: string): void;
92
+ getAWSRegion(): string | undefined;
93
+ setDeviceType(deviceType: 'gateway' | 'serving'): void;
94
+ getDeviceType(): 'gateway' | 'serving' | undefined;
95
+ }
96
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/state/config.ts"],"names":[],"mappings":"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"}