@edgible-team/cli 1.0.1 → 1.0.2

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 (228) 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 +1660 -274
  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/di/bindings.d.ts +15 -0
  60. package/dist/di/bindings.d.ts.map +1 -0
  61. package/dist/di/container.d.ts +44 -0
  62. package/dist/di/container.d.ts.map +1 -0
  63. package/dist/di/types.d.ts +23 -0
  64. package/dist/di/types.d.ts.map +1 -0
  65. package/dist/index.d.ts +3 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +8 -1
  68. package/dist/interfaces/IDaemonManager.d.ts +67 -0
  69. package/dist/interfaces/IDaemonManager.d.ts.map +1 -0
  70. package/dist/repositories/config-repository.d.ts +46 -0
  71. package/dist/repositories/config-repository.d.ts.map +1 -0
  72. package/dist/repositories/gateway-repository.d.ts +37 -0
  73. package/dist/repositories/gateway-repository.d.ts.map +1 -0
  74. package/dist/services/AgentStatusManager.d.ts +30 -0
  75. package/dist/services/AgentStatusManager.d.ts.map +1 -0
  76. package/dist/services/ConnectivityTester.d.ts +30 -0
  77. package/dist/services/ConnectivityTester.d.ts.map +1 -0
  78. package/dist/services/DependencyInstaller.d.ts +32 -0
  79. package/dist/services/DependencyInstaller.d.ts.map +1 -0
  80. package/dist/services/LocalAgentManager.d.ts +220 -0
  81. package/dist/services/LocalAgentManager.d.ts.map +1 -0
  82. package/dist/services/LocalAgentManager.js +2 -2
  83. package/dist/services/application/ApplicationService.d.ts +54 -0
  84. package/dist/services/application/ApplicationService.d.ts.map +1 -0
  85. package/dist/services/application/ApplicationService.js +10 -3
  86. package/dist/services/auth/AuthService.d.ts +42 -0
  87. package/dist/services/auth/AuthService.d.ts.map +1 -0
  88. package/dist/services/aws.d.ts +136 -0
  89. package/dist/services/aws.d.ts.map +1 -0
  90. package/dist/services/aws.js +2 -2
  91. package/dist/services/daemon/DaemonManagerFactory.d.ts +17 -0
  92. package/dist/services/daemon/DaemonManagerFactory.d.ts.map +1 -0
  93. package/dist/services/daemon/DockerDaemonManager.d.ts +26 -0
  94. package/dist/services/daemon/DockerDaemonManager.d.ts.map +1 -0
  95. package/dist/services/daemon/LaunchdDaemonManager.d.ts +20 -0
  96. package/dist/services/daemon/LaunchdDaemonManager.d.ts.map +1 -0
  97. package/dist/services/daemon/LaunchdDaemonManager.js +6 -0
  98. package/dist/services/daemon/PodmanDaemonManager.d.ts +24 -0
  99. package/dist/services/daemon/PodmanDaemonManager.d.ts.map +1 -0
  100. package/dist/services/daemon/SystemdDaemonManager.d.ts +20 -0
  101. package/dist/services/daemon/SystemdDaemonManager.d.ts.map +1 -0
  102. package/dist/services/daemon/WindowsServiceDaemonManager.d.ts +19 -0
  103. package/dist/services/daemon/WindowsServiceDaemonManager.d.ts.map +1 -0
  104. package/dist/services/daemon/index.d.ts +7 -0
  105. package/dist/services/daemon/index.d.ts.map +1 -0
  106. package/dist/services/edgible.d.ts +304 -0
  107. package/dist/services/edgible.d.ts.map +1 -0
  108. package/dist/services/edgible.js +53 -4
  109. package/dist/services/gateway/GatewayService.d.ts +88 -0
  110. package/dist/services/gateway/GatewayService.d.ts.map +1 -0
  111. package/dist/state/config.d.ts +96 -0
  112. package/dist/state/config.d.ts.map +1 -0
  113. package/dist/types/AgentConfig.d.ts +126 -0
  114. package/dist/types/AgentConfig.d.ts.map +1 -0
  115. package/dist/types/AgentStatus.d.ts +30 -0
  116. package/dist/types/AgentStatus.d.ts.map +1 -0
  117. package/dist/types/ApiClient.d.ts +36 -0
  118. package/dist/types/ApiClient.d.ts.map +1 -0
  119. package/dist/types/ApiRequests.d.ts +269 -0
  120. package/dist/types/ApiRequests.d.ts.map +1 -0
  121. package/dist/types/ApiResponses.d.ts +348 -0
  122. package/dist/types/ApiResponses.d.ts.map +1 -0
  123. package/dist/types/Application.d.ts +13 -0
  124. package/dist/types/Application.d.ts.map +1 -0
  125. package/dist/types/CaddyJson.d.ts +231 -0
  126. package/dist/types/CaddyJson.d.ts.map +1 -0
  127. package/dist/types/DeviceMetrics.d.ts +95 -0
  128. package/dist/types/DeviceMetrics.d.ts.map +1 -0
  129. package/dist/types/DeviceMetrics.js +5 -0
  130. package/dist/types/LogAggregation.d.ts +106 -0
  131. package/dist/types/LogAggregation.d.ts.map +1 -0
  132. package/dist/types/LogAggregation.js +5 -0
  133. package/dist/types/LogEntry.d.ts +60 -0
  134. package/dist/types/LogEntry.d.ts.map +1 -0
  135. package/dist/types/LogEntry.js +5 -0
  136. package/dist/types/UnifiedAgentStatus.d.ts +28 -0
  137. package/dist/types/UnifiedAgentStatus.d.ts.map +1 -0
  138. package/dist/types/WireGuard.d.ts +36 -0
  139. package/dist/types/WireGuard.d.ts.map +1 -0
  140. package/dist/types/Workload.d.ts +9 -0
  141. package/dist/types/Workload.d.ts.map +1 -0
  142. package/dist/types/agent.d.ts +120 -0
  143. package/dist/types/agent.d.ts.map +1 -0
  144. package/dist/types/command-options.d.ts +115 -0
  145. package/dist/types/command-options.d.ts.map +1 -0
  146. package/dist/types/connectivity.d.ts +80 -0
  147. package/dist/types/connectivity.d.ts.map +1 -0
  148. package/dist/types/errors.d.ts +97 -0
  149. package/dist/types/errors.d.ts.map +1 -0
  150. package/dist/types/gateway-types.d.ts +46 -0
  151. package/dist/types/gateway-types.d.ts.map +1 -0
  152. package/dist/types/index.d.ts +28 -0
  153. package/dist/types/index.d.ts.map +1 -0
  154. package/dist/types/models/ApplicationData.d.ts +78 -0
  155. package/dist/types/models/ApplicationData.d.ts.map +1 -0
  156. package/dist/types/models/CertificateData.d.ts +44 -0
  157. package/dist/types/models/CertificateData.d.ts.map +1 -0
  158. package/dist/types/models/DeviceData.d.ts +29 -0
  159. package/dist/types/models/DeviceData.d.ts.map +1 -0
  160. package/dist/types/models/DevicePoolData.d.ts +47 -0
  161. package/dist/types/models/DevicePoolData.d.ts.map +1 -0
  162. package/dist/types/models/LifecycleEvent.d.ts +27 -0
  163. package/dist/types/models/LifecycleEvent.d.ts.map +1 -0
  164. package/dist/types/models/LifecycleEvent.js +5 -0
  165. package/dist/types/models/OrganizationData.d.ts +53 -0
  166. package/dist/types/models/OrganizationData.d.ts.map +1 -0
  167. package/dist/types/models/OrganizationInviteData.d.ts +39 -0
  168. package/dist/types/models/OrganizationInviteData.d.ts.map +1 -0
  169. package/dist/types/models/ProviderConfiguration.d.ts +37 -0
  170. package/dist/types/models/ProviderConfiguration.d.ts.map +1 -0
  171. package/dist/types/models/ResourceData.d.ts +18 -0
  172. package/dist/types/models/ResourceData.d.ts.map +1 -0
  173. package/dist/types/models/ServiceResourceData.d.ts +5 -0
  174. package/dist/types/models/ServiceResourceData.d.ts.map +1 -0
  175. package/dist/types/models/UserData.d.ts +12 -0
  176. package/dist/types/models/UserData.d.ts.map +1 -0
  177. package/dist/types/route.d.ts +67 -0
  178. package/dist/types/route.d.ts.map +1 -0
  179. package/dist/types/validation/schemas.d.ts +606 -0
  180. package/dist/types/validation/schemas.d.ts.map +1 -0
  181. package/dist/types/validation/schemas.js +46 -4
  182. package/dist/types/validation.d.ts +68 -0
  183. package/dist/types/validation.d.ts.map +1 -0
  184. package/dist/utils/FileIntegrityManager.d.ts +37 -0
  185. package/dist/utils/FileIntegrityManager.d.ts.map +1 -0
  186. package/dist/utils/PathMigration.d.ts +45 -0
  187. package/dist/utils/PathMigration.d.ts.map +1 -0
  188. package/dist/utils/PathResolver.d.ts +76 -0
  189. package/dist/utils/PathResolver.d.ts.map +1 -0
  190. package/dist/utils/PlatformDetector.d.ts +60 -0
  191. package/dist/utils/PlatformDetector.d.ts.map +1 -0
  192. package/dist/utils/console-logger.d.ts +37 -0
  193. package/dist/utils/console-logger.d.ts.map +1 -0
  194. package/dist/utils/docker-compose-parser.d.ts +28 -0
  195. package/dist/utils/docker-compose-parser.d.ts.map +1 -0
  196. package/dist/utils/errors.d.ts +63 -0
  197. package/dist/utils/errors.d.ts.map +1 -0
  198. package/dist/utils/health-checker.d.ts +34 -0
  199. package/dist/utils/health-checker.d.ts.map +1 -0
  200. package/dist/utils/json-logger.d.ts +23 -0
  201. package/dist/utils/json-logger.d.ts.map +1 -0
  202. package/dist/utils/log-formatter.d.ts +85 -0
  203. package/dist/utils/log-formatter.d.ts.map +1 -0
  204. package/dist/utils/log-formatter.js +39 -11
  205. package/dist/utils/logger.d.ts +34 -0
  206. package/dist/utils/logger.d.ts.map +1 -0
  207. package/dist/utils/network-utils.d.ts +56 -0
  208. package/dist/utils/network-utils.d.ts.map +1 -0
  209. package/dist/utils/output.d.ts +73 -0
  210. package/dist/utils/output.d.ts.map +1 -0
  211. package/dist/utils/passwordValidation.d.ts +32 -0
  212. package/dist/utils/passwordValidation.d.ts.map +1 -0
  213. package/dist/utils/progress.d.ts +74 -0
  214. package/dist/utils/progress.d.ts.map +1 -0
  215. package/dist/utils/sudo-checker.d.ts +9 -0
  216. package/dist/utils/sudo-checker.d.ts.map +1 -0
  217. package/dist/utils/urls.d.ts +19 -0
  218. package/dist/utils/urls.d.ts.map +1 -0
  219. package/dist/utils/urls.js +3 -3
  220. package/dist/utils/validation.d.ts +19 -0
  221. package/dist/utils/validation.d.ts.map +1 -0
  222. package/dist/validation/schemas.d.ts +197 -0
  223. package/dist/validation/schemas.d.ts.map +1 -0
  224. package/dist/validation/schemas.js +1 -1
  225. package/dist/validation/validator.d.ts +22 -0
  226. package/dist/validation/validator.d.ts.map +1 -0
  227. package/package.json +8 -3
  228. package/recipes/compose/open-webui/docker-compose.yml +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-parser.d.ts","sourceRoot":"","sources":["../../../src/commands/utils/input-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAepE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAMzF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAOnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAWzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CA4BlG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,CAAC,CAaH"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Output formatting utilities
3
+ * Provides consistent formatting across commands
4
+ */
5
+ export interface FormatOptions {
6
+ json?: boolean;
7
+ plain?: boolean;
8
+ }
9
+ /**
10
+ * Format application output
11
+ */
12
+ export declare function formatApplication(app: {
13
+ id: string;
14
+ name: string;
15
+ servingIp: string;
16
+ port: number;
17
+ protocol: string;
18
+ status: string;
19
+ workloadId?: string;
20
+ createdAt: string;
21
+ description?: string;
22
+ }): string;
23
+ /**
24
+ * Format gateway output
25
+ */
26
+ export declare function formatGateway(gateway: {
27
+ device: {
28
+ id: string;
29
+ name: string;
30
+ description: string;
31
+ createdAt: string;
32
+ };
33
+ ec2Instance?: {
34
+ instanceId: string;
35
+ publicIp: string;
36
+ privateIp: string;
37
+ state: string;
38
+ region: string;
39
+ };
40
+ applicationCount?: number;
41
+ }): string;
42
+ /**
43
+ * Format list of items as table-like output
44
+ */
45
+ export declare function formatList<T>(items: T[], formatItem: (item: T, index: number) => string, header?: string, emptyMessage?: string): string;
46
+ /**
47
+ * Format error message with context
48
+ */
49
+ export declare function formatError(message: string, suggestion?: string): string;
50
+ /**
51
+ * Format success message
52
+ */
53
+ export declare function formatSuccess(message: string): string;
54
+ /**
55
+ * Format warning message
56
+ */
57
+ export declare function formatWarning(message: string): string;
58
+ /**
59
+ * Format info message
60
+ */
61
+ export declare function formatInfo(message: string): string;
62
+ //# sourceMappingURL=output-formatter.d.ts.map
@@ -0,0 +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;CACtB,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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Application configuration management
3
+ * Centralizes all configuration loading and validation
4
+ */
5
+ export interface AppConfig {
6
+ apiBaseUrl: string;
7
+ logLevel: string;
8
+ colorEnabled: boolean;
9
+ plain: boolean;
10
+ defaultRegion: string;
11
+ defaultInstanceType: string;
12
+ }
13
+ /**
14
+ * Load configuration from environment variables and defaults
15
+ *
16
+ * Environment variable precedence:
17
+ * 1. User's environment variables (process.env.*) - highest priority
18
+ * 2. Production defaults (constants above) - fallback
19
+ *
20
+ * Note: Environment variables are read directly from process.env at runtime.
21
+ * Users can set these via shell/system environment variables.
22
+ *
23
+ * Available environment variables:
24
+ * - LOG_LEVEL: Set log level (default: 'INFO')
25
+ * Note: API_BASE_URL is now hardcoded based on stage (STAGE or SST_STAGE env var)
26
+ * - NO_COLOR: Disable colored output (set to '1' or 'true')
27
+ * - PLAIN_OUTPUT: Enable plain text output (set to '1' or 'true')
28
+ * - DEFAULT_REGION: Default AWS region (default: 'us-east-1')
29
+ * - DEFAULT_INSTANCE_TYPE: Default EC2 instance type (default: 't3.micro')
30
+ */
31
+ export declare function loadConfig(): AppConfig;
32
+ /**
33
+ * Validate configuration
34
+ */
35
+ export declare function validateConfig(config: AppConfig): {
36
+ valid: boolean;
37
+ errors: string[];
38
+ };
39
+ export declare function getConfig(): AppConfig;
40
+ /**
41
+ * Reset configuration (useful for testing)
42
+ */
43
+ export declare function resetConfig(): void;
44
+ //# sourceMappingURL=app-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../src/config/app-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,IAAI,SAAS,CAgBtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA8BtF;AAOD,wBAAgB,SAAS,IAAI,SAAS,CASrC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -0,0 +1,139 @@
1
+ export interface CpuInfo {
2
+ model: string;
3
+ cores: number;
4
+ threads: number;
5
+ architecture: string;
6
+ speed: number;
7
+ }
8
+ export interface MemoryInfo {
9
+ total: number;
10
+ free: number;
11
+ used: number;
12
+ totalGB: number;
13
+ freeGB: number;
14
+ usedGB: number;
15
+ }
16
+ export interface GpuInfo {
17
+ name: string;
18
+ vendor: string;
19
+ vramGB?: number;
20
+ driverVersion?: string;
21
+ available: boolean;
22
+ }
23
+ export interface GpuDriverSupport {
24
+ cuda: {
25
+ available: boolean;
26
+ version?: string;
27
+ toolkitAvailable: boolean;
28
+ };
29
+ rocm: {
30
+ available: boolean;
31
+ version?: string;
32
+ };
33
+ metal: {
34
+ available: boolean;
35
+ };
36
+ dockerGpuSupport: {
37
+ available: boolean;
38
+ runtime?: string;
39
+ nvidiaContainerRuntime?: boolean;
40
+ nvidiaDocker?: boolean;
41
+ };
42
+ ollamaGpuReady: boolean;
43
+ ollamaGpuReason?: string;
44
+ }
45
+ export interface SystemCapabilities {
46
+ cpu: CpuInfo;
47
+ memory: MemoryInfo;
48
+ gpu: GpuInfo | null;
49
+ platform: string;
50
+ hasEnoughResources: boolean;
51
+ recommendedModels: LLMModelRecommendation[];
52
+ gpuDriverSupport: GpuDriverSupport;
53
+ }
54
+ export interface LLMModelRecommendation {
55
+ modelName: string;
56
+ size: string;
57
+ parameters: string;
58
+ minRamGB: number;
59
+ minVramGB?: number;
60
+ recommendedRamGB: number;
61
+ recommendedVramGB?: number;
62
+ suitability: 'excellent' | 'good' | 'marginal' | 'insufficient';
63
+ reasoning: string;
64
+ }
65
+ export declare class SystemCapabilityDetector {
66
+ /**
67
+ * Detect all system capabilities
68
+ */
69
+ static detectCapabilities(): Promise<SystemCapabilities>;
70
+ /**
71
+ * Detect CPU information
72
+ */
73
+ private static detectCpu;
74
+ /**
75
+ * Detect memory information
76
+ */
77
+ private static detectMemory;
78
+ /**
79
+ * Detect GPU information
80
+ */
81
+ private static detectGpu;
82
+ /**
83
+ * Detect NVIDIA GPU using nvidia-smi
84
+ */
85
+ private static detectNvidiaGpu;
86
+ /**
87
+ * Detect AMD GPU using rocm-smi (ROCm drivers, typically data center GPUs)
88
+ */
89
+ private static detectAmdGpu;
90
+ /**
91
+ * Detect AMD GPU on Linux using amdgpu driver (consumer GPUs)
92
+ */
93
+ private static detectAmdGpuLinux;
94
+ /**
95
+ * Detect GPU via lspci (Linux)
96
+ */
97
+ private static detectGpuViaLspci;
98
+ /**
99
+ * Detect GPU on macOS (Apple Silicon or Intel)
100
+ */
101
+ private static detectMacOSGpu;
102
+ /**
103
+ * Detect GPU via WMIC (Windows) - includes VRAM for AMD and NVIDIA
104
+ */
105
+ private static detectGpuViaWmic;
106
+ /**
107
+ * Detect GPU driver support and Docker GPU runtime availability
108
+ */
109
+ private static detectGpuDriverSupport;
110
+ /**
111
+ * Check if a command is available
112
+ */
113
+ private static hasCommand;
114
+ /**
115
+ * Recommend LLM models based on system capabilities
116
+ */
117
+ private static recommendLLMModels;
118
+ /**
119
+ * Calculate suitability for a model
120
+ */
121
+ private static calculateSuitability;
122
+ /**
123
+ * Generate reasoning for recommendation
124
+ */
125
+ private static generateReasoning;
126
+ /**
127
+ * Convert bytes to GB
128
+ */
129
+ private static bytesToGB;
130
+ /**
131
+ * Display system capabilities
132
+ */
133
+ static displayCapabilities(capabilities: SystemCapabilities): void;
134
+ /**
135
+ * Get summary of capabilities
136
+ */
137
+ static getCapabilitySummary(capabilities: SystemCapabilities): string;
138
+ }
139
+ //# sourceMappingURL=SystemCapabilityDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemCapabilityDetector.d.ts","sourceRoot":"","sources":["../../src/detection/SystemCapabilityDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface DetectedTool {
2
+ name: string;
3
+ version?: string;
4
+ available: boolean;
5
+ command: string;
6
+ category: 'container' | 'vm' | 'orchestration' | 'cloud' | 'other';
7
+ description: string;
8
+ }
9
+ export declare class ToolDetector {
10
+ private static tools;
11
+ static detectTools(): Promise<DetectedTool[]>;
12
+ private static getToolVersion;
13
+ static displayDetectedTools(tools: DetectedTool[]): void;
14
+ static getToolSummary(tools: DetectedTool[]): string;
15
+ }
16
+ //# sourceMappingURL=ToolDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolDetector.d.ts","sourceRoot":"","sources":["../../src/detection/ToolDetector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,eAAe,GAAG,OAAO,GAAG,OAAO,CAAC;IACnE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAkLlB;WAEkB,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA8B1D,OAAO,CAAC,MAAM,CAAC,cAAc;WA6Df,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI;WAqCjD,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM;CAM5D"}
@@ -0,0 +1,62 @@
1
+ export interface Workload {
2
+ id: string;
3
+ name: string;
4
+ type: 'docker' | 'kubernetes' | 'vm' | 'process';
5
+ status: 'running' | 'stopped' | 'paused' | 'unknown';
6
+ image?: string;
7
+ ports?: PortMapping[];
8
+ ipAddress?: string;
9
+ namespace?: string;
10
+ labels?: Record<string, string>;
11
+ createdAt?: string;
12
+ description?: string;
13
+ }
14
+ export interface PortMapping {
15
+ hostPort?: number;
16
+ containerPort: number;
17
+ protocol: 'tcp' | 'udp';
18
+ hostIp?: string;
19
+ }
20
+ export interface Application {
21
+ id: string;
22
+ name: string;
23
+ workloadId?: string;
24
+ servingIp: string;
25
+ port: number;
26
+ protocol: 'http' | 'https' | 'tcp' | 'udp';
27
+ status: 'active' | 'inactive' | 'pending';
28
+ createdAt: string;
29
+ description?: string;
30
+ url?: string;
31
+ }
32
+ export declare class WorkloadDetector {
33
+ /**
34
+ * Detect all running workloads from various sources
35
+ */
36
+ static detectWorkloads(): Promise<Workload[]>;
37
+ /**
38
+ * Detect Docker containers
39
+ */
40
+ private static detectDockerWorkloads;
41
+ /**
42
+ * Detect Kubernetes workloads
43
+ */
44
+ private static detectKubernetesWorkloads;
45
+ /**
46
+ * Detect VM workloads
47
+ */
48
+ private static detectVMWorkloads;
49
+ /**
50
+ * Detect process-based workloads (web servers, databases, etc.)
51
+ */
52
+ private static detectProcessWorkloads;
53
+ /**
54
+ * Display detected workloads
55
+ */
56
+ static displayWorkloads(workloads: Workload[]): void;
57
+ /**
58
+ * Get workload summary
59
+ */
60
+ static getWorkloadSummary(workloads: Workload[]): string;
61
+ }
62
+ //# sourceMappingURL=WorkloadDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkloadDetector.d.ts","sourceRoot":"","sources":["../../src/detection/WorkloadDetector.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3C,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,gBAAgB;IAC3B;;OAEG;WACiB,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA2B1D;;OAEG;mBACkB,qBAAqB;IAmE1C;;OAEG;mBACkB,yBAAyB;IA4D9C;;OAEG;mBACkB,iBAAiB;IAsDtC;;OAEG;mBACkB,sBAAsB;IAyD3C;;OAEG;WACW,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAwD3D;;OAEG;WACW,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM;CAMhE"}
@@ -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"}