@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,15 @@
1
+ /**
2
+ * Dependency injection bindings
3
+ * Registers all services with the container
4
+ */
5
+ import { Container } from './container';
6
+ /**
7
+ * Bind all services to the container
8
+ */
9
+ export declare function bindServices(container?: Container): void;
10
+ /**
11
+ * Initialize container with all bindings
12
+ * Should be called once at application startup
13
+ */
14
+ export declare function initializeContainer(): Container;
15
+ //# sourceMappingURL=bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/di/bindings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAkBtD;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,GAAE,SAA0B,GAAG,IAAI,CA+ExE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAI/C"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Simple dependency injection container
3
+ * Supports singleton and transient bindings
4
+ */
5
+ type ServiceIdentifier = symbol;
6
+ type Factory<T> = () => T;
7
+ export declare class Container {
8
+ private bindings;
9
+ private singletons;
10
+ /**
11
+ * Register a service binding
12
+ */
13
+ bind<T>(identifier: ServiceIdentifier, factory: Factory<T>, singleton?: boolean): void;
14
+ /**
15
+ * Get a service instance
16
+ */
17
+ get<T>(identifier: ServiceIdentifier): T;
18
+ /**
19
+ * Check if a service is bound
20
+ */
21
+ isBound(identifier: ServiceIdentifier): boolean;
22
+ /**
23
+ * Clear all bindings and singletons (useful for testing)
24
+ */
25
+ reset(): void;
26
+ /**
27
+ * Unbind a specific service
28
+ */
29
+ unbind(identifier: ServiceIdentifier): void;
30
+ }
31
+ /**
32
+ * Get default container instance
33
+ */
34
+ export declare function getContainer(): Container;
35
+ /**
36
+ * Set container instance (useful for testing)
37
+ */
38
+ export declare function setContainer(container: Container): void;
39
+ /**
40
+ * Reset default container
41
+ */
42
+ export declare function resetContainer(): void;
43
+ export {};
44
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,KAAK,iBAAiB,GAAG,MAAM,CAAC;AAChC,KAAK,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAM1B,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAyD;IACzE,OAAO,CAAC,UAAU,CAAyC;IAE3D;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,GAAE,OAAc,GAAG,IAAI;IAI5F;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,GAAG,CAAC;IAkBxC;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO;IAI/C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;CAI5C;AAOD;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAKxC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Dependency injection type identifiers
3
+ * Uses symbol-based keys for type safety
4
+ */
5
+ export declare const TYPES: {
6
+ readonly Logger: symbol;
7
+ readonly EdgibleService: symbol;
8
+ readonly AuthService: symbol;
9
+ readonly GatewayService: symbol;
10
+ readonly ApplicationService: symbol;
11
+ readonly GatewaySshService: symbol;
12
+ readonly GatewayDiagnosticsService: symbol;
13
+ readonly LocalAgentManager: symbol;
14
+ readonly ConnectivityTester: symbol;
15
+ readonly AWSService: symbol;
16
+ readonly ConfigRepository: symbol;
17
+ readonly GatewayRepository: symbol;
18
+ readonly ConfigManager: symbol;
19
+ readonly WorkloadDetector: symbol;
20
+ readonly ToolDetector: symbol;
21
+ readonly AppConfig: symbol;
22
+ };
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;CA4BR,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -44,7 +44,14 @@ program
44
44
  (0, connectivity_1.setupConnectivityCommands)(program);
45
45
  (0, ai_1.setupAiCommands)(program);
46
46
  (0, agent_1.setupAgentCommands)(program);
47
- if (process.env.NODE_ENV !== 'production') {
47
+ // Only load debug commands in development (not in npm releases)
48
+ // Debug commands are available when:
49
+ // - NODE_ENV is explicitly set to 'development' or 'test'
50
+ // - ENABLE_DEBUG_COMMANDS is set to 'true'
51
+ const isDevEnvironment = process.env.NODE_ENV === 'development' ||
52
+ process.env.NODE_ENV === 'test' ||
53
+ process.env.ENABLE_DEBUG_COMMANDS === 'true';
54
+ if (isDevEnvironment) {
48
55
  (0, debug_1.setupDebugCommands)(program);
49
56
  (0, managedGateway_1.setupManagedGatewayCommands)(program);
50
57
  }
@@ -0,0 +1,67 @@
1
+ export interface DaemonStatus {
2
+ running: boolean;
3
+ enabled: boolean;
4
+ pid?: number;
5
+ uptime?: number;
6
+ message: string;
7
+ }
8
+ export interface DaemonConfig {
9
+ deviceId: string;
10
+ devicePassword: string;
11
+ deviceType: 'gateway' | 'serving';
12
+ apiBaseUrl: string;
13
+ organizationId?: string;
14
+ configPath: string;
15
+ agentPath: string;
16
+ logPath?: string;
17
+ }
18
+ export interface IDaemonManager {
19
+ /**
20
+ * Install and configure the daemon
21
+ */
22
+ install(config: DaemonConfig): Promise<void>;
23
+ /**
24
+ * Start the daemon
25
+ */
26
+ start(): Promise<void>;
27
+ /**
28
+ * Stop the daemon
29
+ */
30
+ stop(): Promise<void>;
31
+ /**
32
+ * Restart the daemon
33
+ */
34
+ restart(): Promise<void>;
35
+ /**
36
+ * Get daemon status
37
+ */
38
+ status(): Promise<DaemonStatus>;
39
+ /**
40
+ * View daemon logs
41
+ * @param follow - If true, continuously stream logs (returns empty string and streams to stdout)
42
+ * @param lines - Number of log lines to retrieve
43
+ * @returns Log content as string (empty if follow mode)
44
+ */
45
+ logs(follow: boolean, lines?: number): Promise<string>;
46
+ /**
47
+ * Enable daemon to start on boot
48
+ */
49
+ enable(): Promise<void>;
50
+ /**
51
+ * Disable daemon from starting on boot
52
+ */
53
+ disable(): Promise<void>;
54
+ /**
55
+ * Uninstall the daemon
56
+ */
57
+ uninstall(): Promise<void>;
58
+ /**
59
+ * Get the platform this daemon manager supports
60
+ */
61
+ getPlatform(): string;
62
+ /**
63
+ * Get the installation type
64
+ */
65
+ getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
66
+ }
67
+ //# sourceMappingURL=IDaemonManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDaemonManager.d.ts","sourceRoot":"","sources":["../../src/interfaces/IDaemonManager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC5E"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Configuration repository
3
+ * Abstracts config access for better testability and centralized state management
4
+ */
5
+ import { UserConfig } from '../state/config';
6
+ import { ConfigManager } from '../state/config';
7
+ export interface ConfigRepository {
8
+ getConfig(): UserConfig;
9
+ updateConfig(updates: Partial<UserConfig>): void;
10
+ isFirstRun(): boolean;
11
+ setFirstRunComplete(): void;
12
+ setEmail(email: string): void;
13
+ getEmail(): string | undefined;
14
+ setAccountStatus(exists: boolean): void;
15
+ hasAccount(): boolean;
16
+ clearConfig(): void;
17
+ setAWSProfile(profile: string): void;
18
+ getAWSProfile(): string | undefined;
19
+ setAWSRegion(region: string): void;
20
+ getAWSRegion(): string | undefined;
21
+ setDeviceType(deviceType: 'gateway' | 'serving'): void;
22
+ getDeviceType(): 'gateway' | 'serving' | undefined;
23
+ }
24
+ /**
25
+ * ConfigRepository implementation using ConfigManager
26
+ */
27
+ export declare class ConfigRepositoryImpl implements ConfigRepository {
28
+ private configManager;
29
+ constructor(configManager: ConfigManager);
30
+ getConfig(): UserConfig;
31
+ updateConfig(updates: Partial<UserConfig>): void;
32
+ isFirstRun(): boolean;
33
+ setFirstRunComplete(): void;
34
+ setEmail(email: string): void;
35
+ getEmail(): string | undefined;
36
+ setAccountStatus(exists: boolean): void;
37
+ hasAccount(): boolean;
38
+ clearConfig(): void;
39
+ setAWSProfile(profile: string): void;
40
+ getAWSProfile(): string | undefined;
41
+ setAWSRegion(region: string): void;
42
+ getAWSRegion(): string | undefined;
43
+ setDeviceType(deviceType: 'gateway' | 'serving'): void;
44
+ getDeviceType(): 'gateway' | 'serving' | undefined;
45
+ }
46
+ //# sourceMappingURL=config-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-repository.d.ts","sourceRoot":"","sources":["../../src/repositories/config-repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,IAAI,UAAU,CAAC;IACxB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACjD,UAAU,IAAI,OAAO,CAAC;IACtB,mBAAmB,IAAI,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,MAAM,GAAG,SAAS,CAAC;IAC/B,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,UAAU,IAAI,OAAO,CAAC;IACtB,WAAW,IAAI,IAAI,CAAC;IACpB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,aAAa,IAAI,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IACvD,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CACpD;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIxC,SAAS,IAAI,UAAU;IAIvB,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAIhD,UAAU,IAAI,OAAO;IAIrB,mBAAmB,IAAI,IAAI;IAI3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIvC,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI,IAAI;IAInB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,aAAa,CAAC,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAItD,aAAa,IAAI,SAAS,GAAG,SAAS,GAAG,SAAS;CAInD"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Gateway repository
3
+ * Manages gateway state and configuration
4
+ */
5
+ export interface GatewayInfo {
6
+ name: string;
7
+ deviceId: string;
8
+ ec2InstanceId: string;
9
+ publicIp: string;
10
+ privateIp: string;
11
+ keyPairName: string;
12
+ keyPath: string;
13
+ region: string;
14
+ createdAt: string;
15
+ }
16
+ export interface GatewayRepository {
17
+ addGateway(gatewayId: string, gatewayInfo: Omit<GatewayInfo, 'createdAt'>): void;
18
+ getGateway(gatewayId: string): GatewayInfo | undefined;
19
+ getGateways(): Record<string, GatewayInfo>;
20
+ removeGateway(gatewayId: string): void;
21
+ hasGateway(gatewayId: string): boolean;
22
+ listGatewayIds(): string[];
23
+ }
24
+ /**
25
+ * GatewayRepository implementation using ConfigManager
26
+ */
27
+ export declare class GatewayRepositoryImpl implements GatewayRepository {
28
+ private configManager;
29
+ constructor(configManager: import('../state/config').ConfigManager);
30
+ addGateway(gatewayId: string, gatewayInfo: Omit<GatewayInfo, 'createdAt'>): void;
31
+ getGateway(gatewayId: string): GatewayInfo | undefined;
32
+ getGateways(): Record<string, GatewayInfo>;
33
+ removeGateway(gatewayId: string): void;
34
+ hasGateway(gatewayId: string): boolean;
35
+ listGatewayIds(): string[];
36
+ }
37
+ //# sourceMappingURL=gateway-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-repository.d.ts","sourceRoot":"","sources":["../../src/repositories/gateway-repository.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;IACjF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACvD,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,cAAc,IAAI,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,aAAa,CAA0C;gBAEnD,aAAa,EAAE,OAAO,iBAAiB,EAAE,aAAa;IAIlE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,IAAI;IAIhF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAItD,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;IAI1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAItC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,cAAc,IAAI,MAAM,EAAE;CAG3B"}
@@ -0,0 +1,30 @@
1
+ import { EventEmitter } from 'events';
2
+ import { UnifiedAgentStatus, UnifiedAgentStatusResult } from '../types/UnifiedAgentStatus';
3
+ export declare class AgentStatusManager extends EventEmitter {
4
+ private statusFile;
5
+ private configFile;
6
+ private watchInterval?;
7
+ private isWatching;
8
+ private lastStatus;
9
+ private readonly watchIntervalMs;
10
+ private readonly maxRetries;
11
+ private readonly retryDelay;
12
+ constructor();
13
+ getStatus(): Promise<UnifiedAgentStatusResult>;
14
+ updateConfig(config: any): Promise<void>;
15
+ startWatching(callback: (result: UnifiedAgentStatusResult) => void): void;
16
+ stopWatching(): void;
17
+ private fileExists;
18
+ private readStatusFileWithRetry;
19
+ private validateStatusFile;
20
+ private calculateChecksum;
21
+ getStatusFilePath(): string;
22
+ getConfigFilePath(): string;
23
+ isAgentRunning(): Promise<boolean>;
24
+ getAgentPID(): Promise<number | null>;
25
+ getAgentUptime(): Promise<number>;
26
+ getAgentVersion(): Promise<string | null>;
27
+ getAgentHealth(): Promise<'healthy' | 'unhealthy' | 'degraded' | 'unknown'>;
28
+ getCurrentStatus(): Promise<UnifiedAgentStatus | null>;
29
+ }
30
+ //# sourceMappingURL=AgentStatusManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentStatusManager.d.ts","sourceRoot":"","sources":["../../src/services/AgentStatusManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAA4C,MAAM,6BAA6B,CAAC;AAKrI,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;;IAmB5B,SAAS,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAgE9C,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB9C,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,GAAG,IAAI;IAqBzE,YAAY,IAAI,IAAI;YAUN,UAAU;YASV,uBAAuB;YAoBvB,kBAAkB;IA4ChC,OAAO,CAAC,iBAAiB;IAMzB,iBAAiB,IAAI,MAAM;IAK3B,iBAAiB,IAAI,MAAM;IAKrB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAUlC,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUrC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAUjC,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUzC,cAAc,IAAI,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IAU3E,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAQ7D"}
@@ -0,0 +1,30 @@
1
+ import { ConnectivityResult, HttpTestResult, ApplicationTestResult, ConnectivityReport, DiagnosticReport } from '../types/connectivity';
2
+ import { Application, Gateway } from '../types/validation';
3
+ import { Workload } from '../detection/WorkloadDetector';
4
+ export declare class ConnectivityTester {
5
+ /**
6
+ * Test TCP/UDP port connectivity
7
+ */
8
+ testPortConnectivity(host: string, port: number, protocol: 'tcp' | 'udp', timeout?: number): Promise<ConnectivityResult>;
9
+ /**
10
+ * Test HTTP/HTTPS endpoint health
11
+ */
12
+ testHttpEndpoint(url: string, expectedStatus?: number, timeout?: number): Promise<HttpTestResult>;
13
+ /**
14
+ * Test application-specific endpoints
15
+ */
16
+ testApplicationEndpoint(application: Application, gatewayIp: string): Promise<ApplicationTestResult>;
17
+ /**
18
+ * Comprehensive connectivity test from gateway to workload
19
+ */
20
+ testGatewayToWorkloadConnectivity(gateway: Gateway, workload: Workload, port: number): Promise<ConnectivityReport>;
21
+ /**
22
+ * Network diagnostics and troubleshooting
23
+ */
24
+ diagnoseConnectivityIssues(application: Application): Promise<DiagnosticReport>;
25
+ /**
26
+ * Generate diagnostics from test results
27
+ */
28
+ private generateDiagnostics;
29
+ }
30
+ //# sourceMappingURL=ConnectivityTester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectivityTester.d.ts","sourceRoot":"","sources":["../../src/services/ConnectivityTester.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAKjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,oBAAoB,CACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,KAAK,GAAG,KAAK,EACvB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAsB9B;;OAEG;IACG,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,cAAc,CAAC;IAiB1B;;OAEG;IACG,uBAAuB,CAC3B,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,qBAAqB,CAAC;IAiBjC;;OAEG;IACG,iCAAiC,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,CAAC;IAmG9B;;OAEG;IACG,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuFrF;;OAEG;YACW,mBAAmB;CA+ClC"}
@@ -0,0 +1,32 @@
1
+ export declare class DependencyInstaller {
2
+ /**
3
+ * Get the original user when running under sudo
4
+ * @returns The SUDO_USER if running as root via sudo, otherwise undefined
5
+ */
6
+ private getSudoUser;
7
+ /**
8
+ * Execute a command, running as the original user if executed via sudo
9
+ * This is particularly important for Homebrew, which refuses to run as root
10
+ * @param command The command to execute
11
+ * @returns The stdout from execSync
12
+ */
13
+ private execAsRealUser;
14
+ checkAndInstallDependencies(options?: {
15
+ includeWireGuardGo?: boolean;
16
+ includeIptables?: boolean;
17
+ autoInstall?: boolean;
18
+ }): Promise<void>;
19
+ private promptForInstallation;
20
+ private detectPackageManager;
21
+ private isWireGuardInstalled;
22
+ private isCaddyInstalled;
23
+ private installWireGuard;
24
+ private installCaddy;
25
+ private isHAProxyInstalled;
26
+ private installHAProxy;
27
+ private isWireGuardGoInstalled;
28
+ private installWireGuardGo;
29
+ private isIptablesInstalled;
30
+ private installIptables;
31
+ }
32
+ //# sourceMappingURL=DependencyInstaller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyInstaller.d.ts","sourceRoot":"","sources":["../../src/services/DependencyInstaller.ts"],"names":[],"mappings":"AAQA,qBAAa,mBAAmB;IAC9B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAYnB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAehB,2BAA2B,CAAC,OAAO,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YA2CpI,qBAAqB;YAYrB,oBAAoB;YA6CpB,oBAAoB;YAkBpB,gBAAgB;YAkBhB,gBAAgB;YAuChB,YAAY;YAuCZ,kBAAkB;YAkBlB,cAAc;YAmCd,sBAAsB;YAkBtB,kBAAkB;YA2ClB,mBAAmB;YAoBnB,eAAe;CAgC9B"}
@@ -0,0 +1,220 @@
1
+ import { UnifiedAgentStatus } from '../types/UnifiedAgentStatus';
2
+ import { InstallationResult, UpdateResult, ConfigurationResult, LocalAgentHealthStatus, AgentInstallationOptions, AgentUpdateOptions } from '../types/agent';
3
+ import { Application } from '../types/validation';
4
+ export declare class LocalAgentManager {
5
+ private configPath;
6
+ private agentPath;
7
+ private serviceName;
8
+ private statePath;
9
+ private agentProcess;
10
+ private configManager;
11
+ private statusManager;
12
+ constructor();
13
+ /**
14
+ * Update agent configuration with current CLI device credentials
15
+ * @param configPath Optional config path to use. If not provided, uses the instance's configPath.
16
+ */
17
+ updateAgentConfig(configPath?: string): Promise<void>;
18
+ /**
19
+ * Check if agent is running in Docker
20
+ */
21
+ private isDockerAgentRunning;
22
+ /**
23
+ * Check if local agent is installed and running using file-based status
24
+ */
25
+ checkLocalAgentStatus(): Promise<UnifiedAgentStatus>;
26
+ /**
27
+ * Check if agent process is running (cross-platform method)
28
+ * Prioritizes status file PID validation over process detection
29
+ */
30
+ private isProcessRunning;
31
+ /**
32
+ * Check if a specific PID is currently running
33
+ */
34
+ private isPidRunning;
35
+ /**
36
+ * Validate agent configuration before starting
37
+ */
38
+ private validateAgentConfig;
39
+ /**
40
+ * Install local serving agent
41
+ */
42
+ installLocalAgent(options?: AgentInstallationOptions): Promise<InstallationResult>;
43
+ /**
44
+ * Start local agent service
45
+ */
46
+ startLocalAgent(options?: {
47
+ passthrough?: boolean;
48
+ debug?: boolean;
49
+ docker?: boolean;
50
+ root?: boolean;
51
+ }): Promise<boolean>;
52
+ /**
53
+ * Spawn the agent process
54
+ */
55
+ private spawnAgentProcess;
56
+ /**
57
+ * Wait for agent to be ready
58
+ */
59
+ private waitForAgentReady;
60
+ /**
61
+ * Provide troubleshooting steps based on error message
62
+ */
63
+ private provideTroubleshootingSteps;
64
+ /**
65
+ * Log debug information
66
+ */
67
+ private logDebugInfo;
68
+ /**
69
+ * Wait for status file to be created and valid
70
+ */
71
+ private waitForStatusFile;
72
+ /**
73
+ * Stop local agent service using hybrid approach
74
+ */
75
+ stopLocalAgent(): Promise<boolean>;
76
+ /**
77
+ * Wait for status file to show agent is stopped
78
+ */
79
+ private waitForStoppedStatus;
80
+ /**
81
+ * Restart local agent service
82
+ */
83
+ restartLocalAgent(): Promise<boolean>;
84
+ /**
85
+ * Update local agent to latest version
86
+ */
87
+ updateLocalAgent(options?: AgentUpdateOptions): Promise<UpdateResult>;
88
+ /**
89
+ * Configure local agent for specific applications
90
+ */
91
+ configureAgentForApplication(application: Application): Promise<ConfigurationResult>;
92
+ /**
93
+ * Monitor local agent health
94
+ */
95
+ monitorAgentHealth(): Promise<LocalAgentHealthStatus>;
96
+ private saveAgentState;
97
+ private loadAgentState;
98
+ private detectPlatform;
99
+ private isAgentRunning;
100
+ private getAgentVersion;
101
+ private getAgentPID;
102
+ private getAgentUptime;
103
+ private performHealthCheck;
104
+ private copyDirectory;
105
+ private copyDirectoryManual;
106
+ private installAgentForPlatform;
107
+ private installFromS3;
108
+ private installFromLocalBuild;
109
+ private createDefaultConfig;
110
+ private setupService;
111
+ private backupCurrentInstallation;
112
+ private migrateConfiguration;
113
+ private startMacOSService;
114
+ private stopMacOSService;
115
+ private isMacOSServiceRunning;
116
+ private getMacOSServicePID;
117
+ private getMacOSProcessUptime;
118
+ private startLinuxService;
119
+ private stopLinuxService;
120
+ private isLinuxServiceRunning;
121
+ private getLinuxServicePID;
122
+ private getLinuxProcessUptime;
123
+ private startWindowsService;
124
+ private stopWindowsService;
125
+ private isWindowsServiceRunning;
126
+ private getWindowsServicePID;
127
+ private getWindowsProcessUptime;
128
+ private startDockerService;
129
+ private stopDockerService;
130
+ private isDockerServiceRunning;
131
+ private checkProcessHealth;
132
+ private validateConfiguration;
133
+ private checkNetworkHealth;
134
+ private determineOverallHealth;
135
+ /**
136
+ * Display agent status in a user-friendly format
137
+ */
138
+ displayAgentStatus(status: UnifiedAgentStatus): void;
139
+ /**
140
+ * Kill a process by PID using cross-platform approach
141
+ */
142
+ private killProcessByPid;
143
+ /**
144
+ * Find and kill any running agent processes using cross-platform process search
145
+ */
146
+ private findAndKillAgentProcess;
147
+ /**
148
+ * Clean up any existing agent processes
149
+ */
150
+ private cleanupExistingAgents;
151
+ /**
152
+ * Get current log configuration
153
+ */
154
+ getLogConfiguration(): Promise<{
155
+ globalLevel: string;
156
+ moduleLevels: Map<string, string>;
157
+ }>;
158
+ /**
159
+ * Update global log level
160
+ */
161
+ updateGlobalLogLevel(level: string): Promise<void>;
162
+ /**
163
+ * Update module-specific log level
164
+ */
165
+ updateModuleLogLevel(module: string, level: string): Promise<void>;
166
+ /**
167
+ * Reset module to use global log level
168
+ */
169
+ resetModuleLogLevel(module: string): Promise<void>;
170
+ /**
171
+ * Reset all modules to use global log level
172
+ */
173
+ resetAllModuleLogLevels(): Promise<void>;
174
+ getStartCommand(): Promise<string>;
175
+ /**
176
+ * Get the path to the agent log file
177
+ */
178
+ getLogFilePath(): string;
179
+ /**
180
+ * Check if Docker is available
181
+ */
182
+ private checkDockerAvailable;
183
+ /**
184
+ * Check if Docker image exists locally
185
+ */
186
+ private checkDockerImageExists;
187
+ /**
188
+ * Recursively copy a directory
189
+ */
190
+ private copyDirectorySync;
191
+ /**
192
+ * Copy backend directories to temp-sst-copy (required for Docker build)
193
+ */
194
+ private copySstDirectories;
195
+ /**
196
+ * Build Docker image
197
+ */
198
+ private buildDockerImage;
199
+ /**
200
+ * Get Docker container name for device
201
+ */
202
+ private getDockerContainerName;
203
+ /**
204
+ * Spawn agent in Docker container
205
+ */
206
+ private spawnDockerAgent;
207
+ /**
208
+ * Stop Docker agent container
209
+ */
210
+ private stopDockerAgent;
211
+ /**
212
+ * Check Docker agent container status
213
+ */
214
+ private checkDockerAgentStatus;
215
+ /**
216
+ * Get Docker agent container logs
217
+ */
218
+ private getDockerAgentLogs;
219
+ }
220
+ //# sourceMappingURL=LocalAgentManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalAgentManager.d.ts","sourceRoot":"","sources":["../../src/services/LocalAgentManager.ts"],"names":[],"mappings":"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"}
@@ -1288,14 +1288,14 @@ class LocalAgentManager {
1288
1288
  `To deploy the agent:\n` +
1289
1289
  ` 1. Navigate to agent-v2 directory\n` +
1290
1290
  ` 2. Run: npm run build\n` +
1291
- ` 3. Run: ./scripts/deploy-to-s3.sh --env production\n\n` +
1291
+ ` 3. Run: ./scripts/deploy-to-s3.sh --env prod\n\n` +
1292
1292
  `Expected path: ${version}.zip`;
1293
1293
  }
1294
1294
  else if (response.status === 403) {
1295
1295
  errorMessage = `Access denied to ${downloadUrl}\n\n` +
1296
1296
  `This usually means:\n` +
1297
1297
  ` 1. Agent not deployed: The file doesn't exist\n` +
1298
- ` → Deploy agent: cd agent-v2 && ./scripts/deploy-to-s3.sh --env production\n\n` +
1298
+ ` → Deploy agent: cd agent-v2 && ./scripts/deploy-to-s3.sh --env prod\n\n` +
1299
1299
  ` 2. CloudFront misconfiguration: OAC or bucket policy issue\n` +
1300
1300
  ` → Check backend Pulumi outputs for distribution status`;
1301
1301
  }
@@ -1309,9 +1309,7 @@ class LocalAgentManager {
1309
1309
  const extractPath = path.join(tempDir, 'extracted');
1310
1310
  await mkdir(extractPath, { recursive: true });
1311
1311
  // Use unzip command (available on most systems)
1312
- (0, child_process_1.execSync)(`unzip -q "${zipPath}" -d "${extractPath}"`, {
1313
- stdio: 'pipe'
1314
- });
1312
+ (0, child_process_1.execSync)(`unzip -q "${zipPath}" -d "${extractPath}"`, {});
1315
1313
  // Copy extracted files to agent directory
1316
1314
  await this.copyDirectory(extractPath, targetConfigPath);
1317
1315
  // Make the agent binary executable