@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
@@ -174,7 +174,7 @@ class BaseApiClient {
174
174
  if (this.disableCaching) {
175
175
  config.cache = 'no-store';
176
176
  }
177
- if (data && (method === 'POST' || method === 'PUT')) {
177
+ if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH')) {
178
178
  config.body = JSON.stringify(data);
179
179
  }
180
180
  try {
@@ -406,6 +406,9 @@ class BaseApiClient {
406
406
  async put(path, data, requiresAuth = true) {
407
407
  return this.makeRequest('PUT', path, data, requiresAuth);
408
408
  }
409
+ async patch(path, data, requiresAuth = true) {
410
+ return this.makeRequest('PATCH', path, data, requiresAuth);
411
+ }
409
412
  async delete(path, data, requiresAuth = true) {
410
413
  return this.makeRequest('DELETE', path, data, requiresAuth);
411
414
  }
@@ -675,12 +678,64 @@ class ApiClient extends BaseApiClient {
675
678
  async updateApplication(request) {
676
679
  return this.put(`/applications/${request.applicationId}`, request);
677
680
  }
681
+ /**
682
+ * Update application status (for serving devices)
683
+ *
684
+ * @param applicationId - Application ID
685
+ * @param status - Application status ('deployed', 'error', 'shutdown', 'deploying', 'unknown')
686
+ */
687
+ async updateApplicationStatus(applicationId, status) {
688
+ return this.post(`/applications/${applicationId}/status`, { status });
689
+ }
678
690
  /**
679
691
  * Delete an application
680
692
  */
681
693
  async deleteApplication(applicationId) {
682
694
  return this.delete(`/applications/${applicationId}`);
683
695
  }
696
+ /**
697
+ * Check application reachability
698
+ */
699
+ async checkApplicationReachability(applicationId) {
700
+ return this.get(`/applications/${applicationId}/reachability`);
701
+ }
702
+ /**
703
+ * Update application deployment state
704
+ *
705
+ * @param applicationId - Application ID
706
+ * @param state - Deployment state
707
+ * @param metadata - Optional metadata for the state transition
708
+ * @param deviceId - Optional device ID that triggered the state change
709
+ * @param deviceType - Optional device type (gateway or serving)
710
+ */
711
+ async updateApplicationDeploymentState(applicationId, state, metadata, deviceId, deviceType, capabilities) {
712
+ // Build request body, filtering out undefined values
713
+ const body = {
714
+ deploymentState: state, // Use new field name
715
+ state // Keep old field for backward compatibility
716
+ };
717
+ if (metadata !== undefined) {
718
+ body['metadata'] = metadata;
719
+ }
720
+ if (deviceId !== undefined) {
721
+ body['deviceId'] = deviceId;
722
+ }
723
+ if (deviceType !== undefined) {
724
+ body['deviceType'] = deviceType;
725
+ }
726
+ if (capabilities !== undefined) {
727
+ body['capabilities'] = capabilities;
728
+ }
729
+ return this.patch(`/applications/${applicationId}/deployment-state`, body);
730
+ }
731
+ /**
732
+ * Get application deployment status including history
733
+ *
734
+ * @param applicationId - Application ID
735
+ */
736
+ async getApplicationDeploymentStatus(applicationId) {
737
+ return this.get(`/applications/${applicationId}/deployment-status`);
738
+ }
684
739
  // ============================================================================
685
740
  // CERTIFICATE METHODS
686
741
  // ============================================================================
@@ -742,11 +797,41 @@ class ApiClient extends BaseApiClient {
742
797
  return this.get(`/devices/${deviceId}/applications`);
743
798
  }
744
799
  /**
745
- * Get device pool for an organization
800
+ * Isolate device from network (disconnect from VPN/tunnel networks)
801
+ */
802
+ async isolateDeviceNetwork(deviceId) {
803
+ return this.post(`/devices/${deviceId}/network/isolate`, {});
804
+ }
805
+ /**
806
+ * Restore device network access (reconnect to VPN/tunnel networks)
807
+ */
808
+ async restoreDeviceNetwork(deviceId) {
809
+ return this.post(`/devices/${deviceId}/network/restore`, {});
810
+ }
811
+ /**
812
+ * Get device pool for an organization (returns first pool, for backward compatibility)
746
813
  */
747
814
  async getDevicePool(organizationId) {
748
815
  return this.get(`/organizations/${organizationId}/pools`);
749
816
  }
817
+ /**
818
+ * Get all device pools for an organization
819
+ */
820
+ async getDevicePools(organizationId) {
821
+ return this.get(`/organizations/${organizationId}/pools/all`);
822
+ }
823
+ /**
824
+ * Get device pool by poolId
825
+ */
826
+ async getPool(poolId) {
827
+ return this.get(`/pools/${poolId}`);
828
+ }
829
+ /**
830
+ * Get all device pools that contain a specific device
831
+ */
832
+ async getDevicePoolsByDevice(deviceId) {
833
+ return this.get(`/devices/${deviceId}/pools`);
834
+ }
750
835
  // WireGuard endpoints
751
836
  async postDeviceWireGuard(applicationId, deviceId, body) {
752
837
  return this.post(`/applications/${applicationId}/devices/${deviceId}/wireguard`, body);
@@ -768,6 +853,22 @@ class ApiClient extends BaseApiClient {
768
853
  throw error;
769
854
  }
770
855
  }
856
+ /**
857
+ * Post device pool traffic statistics
858
+ */
859
+ async postDevicePoolTraffic(poolId, traffic) {
860
+ return this.post(`/device-pools/${poolId}/traffic`, {
861
+ poolId,
862
+ ingressBytes: traffic.ingressBytes,
863
+ egressBytes: traffic.egressBytes
864
+ });
865
+ }
866
+ /**
867
+ * Update device's WireGuard config in pool (requires device to have assigned IP)
868
+ */
869
+ async postPoolDeviceWireGuard(poolId, deviceId, body) {
870
+ return this.post(`/pools/${poolId}/devices/${deviceId}/wireguard`, body);
871
+ }
771
872
  // ============================================================================
772
873
  // ORGANIZATION INVITE METHODS
773
874
  // ============================================================================
@@ -1028,6 +1129,99 @@ class ApiClient extends BaseApiClient {
1028
1129
  async getManagedGatewaySSHKey(request) {
1029
1130
  return this.get(`/admin/managed-gateways/${request.gatewayId}/ssh-key`);
1030
1131
  }
1132
+ // ============================================================================
1133
+ // METRICS METHODS
1134
+ // ============================================================================
1135
+ /**
1136
+ * Get metrics/log files for a device
1137
+ */
1138
+ async getDeviceMetricsFiles(organizationId, deviceId, startTime, endTime) {
1139
+ return this.get(`/organizations/${organizationId}/devices/${deviceId}/logs-files?startTime=${startTime}&endTime=${endTime}`);
1140
+ }
1141
+ /**
1142
+ * Ingest logs for a device
1143
+ */
1144
+ async ingestDeviceLogs(organizationId, deviceId, logs) {
1145
+ return this.post(`/organizations/${organizationId}/devices/${deviceId}/logs`, { logs });
1146
+ }
1147
+ /**
1148
+ * Ingest logs for an application (cross-org aware)
1149
+ */
1150
+ async ingestApplicationLogs(organizationId, applicationId, logs) {
1151
+ return this.post(`/organizations/${organizationId}/applications/${applicationId}/logs`, { logs });
1152
+ }
1153
+ /**
1154
+ * Log a lifecycle event
1155
+ *
1156
+ * @param organizationId - Organization ID
1157
+ * @param event - Lifecycle event data (without eventId and timestamp, which are auto-generated)
1158
+ */
1159
+ async logLifecycleEvent(organizationId, event) {
1160
+ return this.post(`/organizations/${organizationId}/lifecycle-events`, event);
1161
+ }
1162
+ /*
1163
+ * Get lifecycle events for an application
1164
+ */
1165
+ async getApplicationLifecycleEvents(organizationId, applicationId, limit, startTime, endTime) {
1166
+ const params = new URLSearchParams();
1167
+ if (limit !== undefined)
1168
+ params.append('limit', limit.toString());
1169
+ if (startTime !== undefined)
1170
+ params.append('startTime', startTime.toString());
1171
+ if (endTime !== undefined)
1172
+ params.append('endTime', endTime.toString());
1173
+ const queryString = params.toString();
1174
+ const url = `/organizations/${organizationId}/applications/${applicationId}/lifecycle-events${queryString ? `?${queryString}` : ''}`;
1175
+ return this.get(url);
1176
+ }
1177
+ /**
1178
+ * Get lifecycle events for a device
1179
+ */
1180
+ async getDeviceLifecycleEvents(organizationId, deviceId, limit, startTime, endTime) {
1181
+ const params = new URLSearchParams();
1182
+ if (limit !== undefined)
1183
+ params.append('limit', limit.toString());
1184
+ if (startTime !== undefined)
1185
+ params.append('startTime', startTime.toString());
1186
+ if (endTime !== undefined)
1187
+ params.append('endTime', endTime.toString());
1188
+ const queryString = params.toString();
1189
+ const url = `/organizations/${organizationId}/devices/${deviceId}/lifecycle-events${queryString ? `?${queryString}` : ''}`;
1190
+ return this.get(url);
1191
+ }
1192
+ /**
1193
+ * Get application metrics (cross-org aware)
1194
+ */
1195
+ async getApplicationMetrics(organizationId, applicationId, startTime, endTime) {
1196
+ return this.get(`/organizations/${organizationId}/applications/${applicationId}/metrics?startTime=${startTime}&endTime=${endTime}`);
1197
+ }
1198
+ /**
1199
+ * Get application metrics files (cross-org aware)
1200
+ */
1201
+ async getApplicationMetricsFiles(organizationId, applicationId, startTime, endTime, interval) {
1202
+ const params = new URLSearchParams({
1203
+ startTime: startTime.toString(),
1204
+ endTime: endTime.toString()
1205
+ });
1206
+ if (interval) {
1207
+ params.append('interval', interval);
1208
+ }
1209
+ return this.get(`/organizations/${organizationId}/applications/${applicationId}/metrics/files?${params.toString()}`);
1210
+ }
1211
+ /**
1212
+ * Get application logs (cross-org aware)
1213
+ */
1214
+ async getApplicationLogs(organizationId, applicationId, startTime, endTime, level, eventType) {
1215
+ const params = new URLSearchParams({
1216
+ startTime: startTime.toString(),
1217
+ endTime: endTime.toString()
1218
+ });
1219
+ if (level)
1220
+ params.append('level', level);
1221
+ if (eventType)
1222
+ params.append('eventType', eventType);
1223
+ return this.get(`/organizations/${organizationId}/applications/${applicationId}/logs?${params.toString()}`);
1224
+ }
1031
1225
  }
1032
1226
  exports.ApiClient = ApiClient;
1033
1227
  // ============================================================================
@@ -0,0 +1,10 @@
1
+ /**
2
+ * WireGuard Private MCP API Client
3
+ *
4
+ * Main entry point for the API client library.
5
+ * Re-exports all public types and functions for easy importing.
6
+ */
7
+ export { ApiClient, createApiClient, ApiClientError, LogFunction } from './api-client';
8
+ export { default } from './api-client';
9
+ export type { ApiConfig, AuthTokens, ApiError, LoginRequest, LoginResponse, RefreshTokenRequest, RefreshTokenResponse, LogoutResponse, GetChallengeSessionRequest, GetChallengeSessionResponse, ForceChangePasswordRequest, ForceChangePasswordResponse, CreateOrganizationRequest, CreateOrganizationResponse, UpdateOrganizationRequest, UpdateOrganizationResponse, GetOrganizationResponse, GetOrganizationUsersResponse, GetOrganizationDevicesResponse, GetOrganizationApplicationsResponse, DeleteOrganizationResponse, CreateUserRequest, CreateUserResponse, UpdateUserRequest, UpdateUserResponse, GetUserResponse, GetUserOrganizationsResponse, DeleteUserRequest, DeleteUserResponse, CreateApplicationRequest, CreateApplicationResponse, UpdateApplicationRequest, UpdateApplicationResponse, GetApplicationResponse, DeleteApplicationResponse, CreateDeviceRequest, CreateDeviceResponse, UpdateDeviceRequest, UpdateDeviceResponse, GetDeviceResponse, GetDeviceApplicationsResponse, DeleteDeviceResponse, CreateGatewayRequest, CreateGatewayResponse, GetGatewayRequest, GetGatewayResponse, ListGatewaysRequest, ListGatewaysResponse, DeleteGatewayRequest, DeleteGatewayResponse, ResyncGatewayAgentRequest, ResyncGatewayAgentResponse, GetGatewayApplicationsRequest, GetGatewayApplicationsResponse, } from '../types';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,YAAY,EAEV,SAAS,EACT,UAAU,EACV,QAAQ,EAGR,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAG3B,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,EAC5B,8BAA8B,EAC9B,mCAAmC,EACnC,0BAA0B,EAG1B,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,4BAA4B,EAC5B,iBAAiB,EACjB,kBAAkB,EAGlB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EAGzB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,EAGpB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupAgentCommands(program: Command): void;
3
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAs3CzD"}
@@ -884,48 +884,32 @@ function setupAgentCommands(program) {
884
884
  console.log(rawLogs);
885
885
  }
886
886
  else {
887
- // For launchd, logs are plain text, not JSON - output directly
888
- // unless filtering is requested
889
- const isLaunchd = config.agentInstallationType === 'launchd';
890
- if (isLaunchd && !module && level === 'all') {
891
- // Plain text logs without filtering - just output them
892
- console.log(rawLogs);
893
- }
894
- else if (isLaunchd) {
895
- // Launchd with filtering requested - try to parse JSON but fall back to raw
896
- const formattedLogs = (0, log_formatter_1.processLogs)(rawLogs, {
897
- module: module,
898
- level: level,
899
- singleLine: singleLine
900
- });
901
- // If no formatted logs, it means either no matches or non-JSON logs
902
- if (formattedLogs.trim()) {
903
- console.log(formattedLogs);
904
- }
905
- else {
906
- // No JSON found, just output raw logs
907
- console.log(chalk_1.default.yellow('Note: Filtering not available for plain text logs. Showing all logs:\n'));
908
- console.log(rawLogs);
909
- }
887
+ // Parse and format JSON logs (works for both systemd and launchd)
888
+ // Both output JSON in production mode, launchd just writes pure JSON lines
889
+ const formattedLogs = (0, log_formatter_1.processLogs)(rawLogs, {
890
+ module: module,
891
+ level: level,
892
+ singleLine: singleLine
893
+ });
894
+ if (formattedLogs.trim()) {
895
+ console.log(formattedLogs);
910
896
  }
911
897
  else {
912
- // Systemd/Docker/Podman - parse and format JSON logs
913
- const formattedLogs = (0, log_formatter_1.processLogs)(rawLogs, {
914
- module: module,
915
- level: level,
916
- singleLine: singleLine
917
- });
918
- if (formattedLogs.trim()) {
919
- console.log(formattedLogs);
920
- }
921
- else {
898
+ // No formatted logs found - could be no matches or non-JSON logs
899
+ if (module || (level && level !== 'all')) {
900
+ // Filters were applied but no matches
922
901
  if (module) {
923
902
  console.log(chalk_1.default.yellow(`No logs found for module(s): ${module}`));
924
903
  }
925
904
  else {
926
- console.log(chalk_1.default.yellow('No logs found'));
905
+ console.log(chalk_1.default.yellow(`No logs found for level: ${level}`));
927
906
  }
928
907
  }
908
+ else {
909
+ // No filters, but no JSON logs found - might be plain text logs
910
+ // Output raw logs as fallback
911
+ console.log(rawLogs);
912
+ }
929
913
  }
930
914
  }
931
915
  }
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function setupAiCommands(program: Command): void;
3
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/commands/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkCpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAioBtD"}