@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
@@ -569,7 +569,7 @@ echo "Edgible Agent setup complete"
569
569
  `To deploy the agent:\n` +
570
570
  ` 1. Navigate to agent-v2 directory\n` +
571
571
  ` 2. Run: npm run build\n` +
572
- ` 3. Run: ./scripts/deploy-to-s3.sh --env production\n\n` +
572
+ ` 3. Run: ./scripts/deploy-to-s3.sh --env prod\n\n` +
573
573
  `Expected S3 path: s3://${bucketName}/${keyPath}\n` +
574
574
  `Current environment: ${keyPath.split('/')[0] || 'unknown'}`;
575
575
  }
@@ -577,7 +577,7 @@ echo "Edgible Agent setup complete"
577
577
  errorMessage = `Access denied to ${url}\n\n` +
578
578
  `This usually means one of:\n` +
579
579
  ` 1. Agent not deployed: The file doesn't exist at s3://${bucketName}/${keyPath}\n` +
580
- ` → Deploy agent: cd agent-v2 && ./scripts/deploy-to-s3.sh --env production\n\n` +
580
+ ` → Deploy agent: cd agent-v2 && ./scripts/deploy-to-s3.sh --env prod\n\n` +
581
581
  ` 2. CloudFront misconfiguration: OAC or bucket policy issue\n` +
582
582
  ` → Check backend Pulumi outputs for distribution status\n\n` +
583
583
  ` 3. Wrong bucket: Using bucket "${bucketName}" but file may be in different bucket\n` +
@@ -0,0 +1,17 @@
1
+ import { IDaemonManager } from '../../interfaces/IDaemonManager';
2
+ export type DaemonType = 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
3
+ export declare class DaemonManagerFactory {
4
+ /**
5
+ * Create a daemon manager instance based on the type
6
+ */
7
+ static create(type: DaemonType): IDaemonManager;
8
+ /**
9
+ * Get daemon manager from stored config type
10
+ */
11
+ static fromConfig(installationType?: string): IDaemonManager | null;
12
+ /**
13
+ * Get the recommended daemon manager for the current platform
14
+ */
15
+ static getRecommended(): Promise<IDaemonManager | null>;
16
+ }
17
+ //# sourceMappingURL=DaemonManagerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaemonManagerFactory.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/DaemonManagerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQjE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzF,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;IAiC/C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAanE;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAS9D"}
@@ -0,0 +1,26 @@
1
+ import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
2
+ export declare class DockerDaemonManager implements IDaemonManager {
3
+ private containerName;
4
+ private imageName;
5
+ private platform;
6
+ constructor();
7
+ install(config: DaemonConfig): Promise<void>;
8
+ start(): Promise<void>;
9
+ stop(): Promise<void>;
10
+ restart(): Promise<void>;
11
+ status(): Promise<DaemonStatus>;
12
+ logs(follow: boolean, lines?: number): Promise<string>;
13
+ enable(): Promise<void>;
14
+ disable(): Promise<void>;
15
+ uninstall(): Promise<void>;
16
+ getPlatform(): string;
17
+ getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
18
+ private checkImageExists;
19
+ private buildImage;
20
+ private generateDockerRunCommand;
21
+ private createServiceWrapper;
22
+ private createSystemdWrapper;
23
+ private createLaunchdWrapper;
24
+ private removeServiceWrapper;
25
+ }
26
+ //# sourceMappingURL=DockerDaemonManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DockerDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/DockerDaemonManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,QAAQ,CAA+B;;IAMzC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA0C/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;YAI5D,gBAAgB;YAShB,UAAU;IAqBxB,OAAO,CAAC,wBAAwB;YA+DlB,oBAAoB;YASpB,oBAAoB;YAwBpB,oBAAoB;YA+BpB,oBAAoB;CAkBnC"}
@@ -0,0 +1,20 @@
1
+ import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
2
+ export declare class LaunchdDaemonManager implements IDaemonManager {
3
+ private serviceName;
4
+ private plistPath;
5
+ private logPath;
6
+ constructor();
7
+ install(config: DaemonConfig): Promise<void>;
8
+ start(): Promise<void>;
9
+ stop(): Promise<void>;
10
+ restart(): Promise<void>;
11
+ status(): Promise<DaemonStatus>;
12
+ logs(follow: boolean, lines?: number): Promise<string>;
13
+ enable(): Promise<void>;
14
+ disable(): Promise<void>;
15
+ uninstall(): Promise<void>;
16
+ getPlatform(): string;
17
+ getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
18
+ private generatePlistFile;
19
+ }
20
+ //# sourceMappingURL=LaunchdDaemonManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LaunchdDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/LaunchdDaemonManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;;IAYlB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAiC/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAsD3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAUvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;IAI1E,OAAO,CAAC,iBAAiB;CA8C1B"}
@@ -39,6 +39,7 @@ const util_1 = require("util");
39
39
  const fs = __importStar(require("fs/promises"));
40
40
  const path = __importStar(require("path"));
41
41
  const PlatformDetector_1 = require("../../utils/PlatformDetector");
42
+ const PathResolver_1 = require("../../utils/PathResolver");
42
43
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
43
44
  class LaunchdDaemonManager {
44
45
  constructor() {
@@ -215,6 +216,9 @@ class LaunchdDaemonManager {
215
216
  }
216
217
  generatePlistFile(config) {
217
218
  const nodePath = process.execPath; // Path to current Node.js executable
219
+ // Get the real user's home directory (even when running as root via sudo)
220
+ // This ensures applications like ollama can find their config/data directories
221
+ const userHome = PathResolver_1.PathResolver.getRealUserHome();
218
222
  return `<?xml version="1.0" encoding="UTF-8"?>
219
223
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
220
224
  <plist version="1.0">
@@ -245,6 +249,8 @@ class LaunchdDaemonManager {
245
249
  <string>production</string>
246
250
  <key>EDGIBLE_CONFIG_PATH</key>
247
251
  <string>${config.configPath}</string>
252
+ <key>HOME</key>
253
+ <string>${userHome}</string>
248
254
  </dict>
249
255
  <key>WorkingDirectory</key>
250
256
  <string>${config.agentPath}</string>
@@ -0,0 +1,24 @@
1
+ import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
2
+ export declare class PodmanDaemonManager implements IDaemonManager {
3
+ private containerName;
4
+ private imageName;
5
+ private platform;
6
+ private systemdUserPath;
7
+ constructor();
8
+ install(config: DaemonConfig): Promise<void>;
9
+ start(): Promise<void>;
10
+ stop(): Promise<void>;
11
+ restart(): Promise<void>;
12
+ status(): Promise<DaemonStatus>;
13
+ logs(follow: boolean, lines?: number): Promise<string>;
14
+ enable(): Promise<void>;
15
+ disable(): Promise<void>;
16
+ uninstall(): Promise<void>;
17
+ getPlatform(): string;
18
+ getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
19
+ private checkImageExists;
20
+ private buildImage;
21
+ private generatePodmanRunCommand;
22
+ private createUserService;
23
+ }
24
+ //# sourceMappingURL=PodmanDaemonManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PodmanDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/PodmanDaemonManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,eAAe,CAAS;;IAO1B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAkD/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAavB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;YAI5D,gBAAgB;YAShB,UAAU;IAqBxB,OAAO,CAAC,wBAAwB;YAyElB,iBAAiB;CAoChC"}
@@ -0,0 +1,20 @@
1
+ import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
2
+ export declare class SystemdDaemonManager implements IDaemonManager {
3
+ private serviceName;
4
+ private serviceFilePath;
5
+ constructor();
6
+ install(config: DaemonConfig): Promise<void>;
7
+ start(): Promise<void>;
8
+ stop(): Promise<void>;
9
+ restart(): Promise<void>;
10
+ status(): Promise<DaemonStatus>;
11
+ logs(follow: boolean, lines?: number): Promise<string>;
12
+ enable(): Promise<void>;
13
+ disable(): Promise<void>;
14
+ uninstall(): Promise<void>;
15
+ getPlatform(): string;
16
+ getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
17
+ private isEnabled;
18
+ private generateServiceFile;
19
+ }
20
+ //# sourceMappingURL=SystemdDaemonManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemdDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/SystemdDaemonManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAM7F,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,eAAe,CAA6D;;IAQ9E,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA0B/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;YAI5D,SAAS;IASvB,OAAO,CAAC,mBAAmB;CAuB5B"}
@@ -0,0 +1,19 @@
1
+ import { IDaemonManager, DaemonStatus, DaemonConfig } from '../../interfaces/IDaemonManager';
2
+ export declare class WindowsServiceDaemonManager implements IDaemonManager {
3
+ private serviceName;
4
+ private displayName;
5
+ private description;
6
+ constructor();
7
+ install(config: DaemonConfig): Promise<void>;
8
+ start(): Promise<void>;
9
+ stop(): Promise<void>;
10
+ restart(): Promise<void>;
11
+ status(): Promise<DaemonStatus>;
12
+ logs(follow: boolean, lines?: number): Promise<string>;
13
+ enable(): Promise<void>;
14
+ disable(): Promise<void>;
15
+ uninstall(): Promise<void>;
16
+ getPlatform(): string;
17
+ getType(): 'systemd' | 'launchd' | 'windows-service' | 'docker' | 'podman';
18
+ }
19
+ //# sourceMappingURL=WindowsServiceDaemonManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowsServiceDaemonManager.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/WindowsServiceDaemonManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAK7F,qBAAa,2BAA4B,YAAW,cAAc;IAChE,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,WAAW,CAAwE;;IAQrF,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA2B/B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAE,MAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA4C3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBhC,WAAW,IAAI,MAAM;IAIrB,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;CAG3E"}
@@ -0,0 +1,7 @@
1
+ export { SystemdDaemonManager } from './SystemdDaemonManager';
2
+ export { LaunchdDaemonManager } from './LaunchdDaemonManager';
3
+ export { WindowsServiceDaemonManager } from './WindowsServiceDaemonManager';
4
+ export { DockerDaemonManager } from './DockerDaemonManager';
5
+ export { PodmanDaemonManager } from './PodmanDaemonManager';
6
+ export { DaemonManagerFactory, DaemonType } from './DaemonManagerFactory';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/daemon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
@@ -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