@edgible-team/cli 1.2.13 → 1.2.17
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.
- package/README.md +5 -3
- package/dist/client/api-client.d.ts +13 -1
- package/dist/client/api-client.d.ts.map +1 -1
- package/dist/client/api-client.js +19 -0
- package/dist/commands/agent/install.d.ts +2 -1
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +24 -7
- package/dist/commands/agent/start.d.ts +5 -1
- package/dist/commands/agent/start.d.ts.map +1 -1
- package/dist/commands/agent/start.js +19 -280
- package/dist/commands/agent/uninstall.d.ts.map +1 -1
- package/dist/commands/agent/uninstall.js +14 -7
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +3 -2
- package/dist/commands/ai/setup.d.ts +1 -1
- package/dist/commands/ai/setup.d.ts.map +1 -1
- package/dist/commands/ai.js +1 -1
- package/dist/commands/application/create-docker-compose.d.ts +3 -1
- package/dist/commands/application/create-docker-compose.d.ts.map +1 -1
- package/dist/commands/application/create-docker-compose.js +25 -69
- package/dist/commands/application/create-existing.d.ts +2 -2
- package/dist/commands/application/create-existing.d.ts.map +1 -1
- package/dist/commands/application/create-existing.js +27 -132
- package/dist/commands/application/create-managed-process.d.ts +3 -1
- package/dist/commands/application/create-managed-process.d.ts.map +1 -1
- package/dist/commands/application/create-managed-process.js +31 -75
- package/dist/commands/application/delete.d.ts +2 -1
- package/dist/commands/application/delete.d.ts.map +1 -1
- package/dist/commands/application/delete.js +19 -5
- package/dist/commands/application/update.d.ts +3 -0
- package/dist/commands/application/update.d.ts.map +1 -1
- package/dist/commands/application/update.js +45 -1
- package/dist/commands/application.d.ts.map +1 -1
- package/dist/commands/application.js +33 -19
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +44 -0
- package/dist/commands/debug.js +1 -1
- package/dist/commands/device/application-health.d.ts +7 -0
- package/dist/commands/device/application-health.d.ts.map +1 -0
- package/dist/commands/device/application-health.js +103 -0
- package/dist/commands/device/delete.d.ts +7 -0
- package/dist/commands/device/delete.d.ts.map +1 -0
- package/dist/commands/device/delete.js +69 -0
- package/dist/commands/device/health.d.ts +7 -0
- package/dist/commands/device/health.d.ts.map +1 -0
- package/dist/commands/device/health.js +78 -0
- package/dist/commands/device/list.d.ts +5 -0
- package/dist/commands/device/list.d.ts.map +1 -0
- package/dist/commands/device/list.js +46 -0
- package/dist/commands/device/telemetry.d.ts +8 -0
- package/dist/commands/device/telemetry.d.ts.map +1 -0
- package/dist/commands/device/telemetry.js +59 -0
- package/dist/commands/device.d.ts +6 -0
- package/dist/commands/device.d.ts.map +1 -0
- package/dist/commands/device.js +86 -0
- package/dist/commands/stack/deploy.d.ts +8 -0
- package/dist/commands/stack/deploy.d.ts.map +1 -0
- package/dist/commands/stack/deploy.js +61 -0
- package/dist/commands/stack/diff.d.ts +7 -0
- package/dist/commands/stack/diff.d.ts.map +1 -0
- package/dist/commands/stack/diff.js +66 -0
- package/dist/commands/stack/status.d.ts +9 -0
- package/dist/commands/stack/status.d.ts.map +1 -0
- package/dist/commands/stack/status.js +55 -0
- package/dist/commands/stack/teardown.d.ts +8 -0
- package/dist/commands/stack/teardown.d.ts.map +1 -0
- package/dist/commands/stack/teardown.js +107 -0
- package/dist/commands/stack/validate.d.ts +7 -0
- package/dist/commands/stack/validate.d.ts.map +1 -0
- package/dist/commands/stack/validate.js +44 -0
- package/dist/commands/stack.d.ts +10 -0
- package/dist/commands/stack.d.ts.map +1 -0
- package/dist/commands/stack.js +117 -0
- package/dist/commands/utils/auth-prompt.d.ts +25 -0
- package/dist/commands/utils/auth-prompt.d.ts.map +1 -0
- package/dist/commands/utils/auth-prompt.js +115 -0
- package/dist/commands/utils/device-prompt.d.ts +18 -0
- package/dist/commands/utils/device-prompt.d.ts.map +1 -0
- package/dist/commands/utils/device-prompt.js +58 -0
- package/dist/commands/utils/output-formatter.d.ts +13 -0
- package/dist/commands/utils/output-formatter.d.ts.map +1 -1
- package/dist/commands/utils/output-formatter.js +21 -0
- package/dist/index.js +4 -0
- package/dist/services/LocalAgentManager.d.ts +2 -1
- package/dist/services/LocalAgentManager.d.ts.map +1 -1
- package/dist/services/LocalAgentManager.js +6 -4
- package/dist/services/application/ApplicationService.d.ts +19 -0
- package/dist/services/application/ApplicationService.d.ts.map +1 -1
- package/dist/services/application/ApplicationService.js +14 -1
- package/dist/services/device/DeviceService.d.ts +62 -0
- package/dist/services/device/DeviceService.d.ts.map +1 -0
- package/dist/services/device/DeviceService.js +235 -0
- package/dist/services/edgible.d.ts +3 -1
- package/dist/services/edgible.d.ts.map +1 -1
- package/dist/services/edgible.js +5 -4
- package/dist/services/instances.d.ts +27 -1
- package/dist/services/instances.d.ts.map +1 -1
- package/dist/services/instances.js +53 -4
- package/dist/services/stack/DependencyGraphManager.d.ts +69 -0
- package/dist/services/stack/DependencyGraphManager.d.ts.map +1 -0
- package/dist/services/stack/DependencyGraphManager.js +204 -0
- package/dist/services/stack/DeviceResolver.d.ts +63 -0
- package/dist/services/stack/DeviceResolver.d.ts.map +1 -0
- package/dist/services/stack/DeviceResolver.js +147 -0
- package/dist/services/stack/GatewayResolver.d.ts +84 -0
- package/dist/services/stack/GatewayResolver.d.ts.map +1 -0
- package/dist/services/stack/GatewayResolver.js +179 -0
- package/dist/services/stack/StackParser.d.ts +38 -0
- package/dist/services/stack/StackParser.d.ts.map +1 -0
- package/dist/services/stack/StackParser.js +234 -0
- package/dist/services/stack/StackService.d.ts +76 -0
- package/dist/services/stack/StackService.d.ts.map +1 -0
- package/dist/services/stack/StackService.js +476 -0
- package/dist/types/AgentConfig.d.ts +26 -0
- package/dist/types/AgentConfig.d.ts.map +1 -1
- package/dist/types/ApiRequests.d.ts +5 -1
- package/dist/types/ApiRequests.d.ts.map +1 -1
- package/dist/types/ApiResponses.d.ts +5 -0
- package/dist/types/ApiResponses.d.ts.map +1 -1
- package/dist/types/JobTypes.d.ts +103 -0
- package/dist/types/JobTypes.d.ts.map +1 -0
- package/dist/types/JobTypes.js +80 -0
- package/dist/types/WebSocketMessages.d.ts +89 -0
- package/dist/types/WebSocketMessages.d.ts.map +1 -0
- package/dist/types/WebSocketMessages.js +5 -0
- package/dist/types/backendJobs.d.ts +102 -0
- package/dist/types/backendJobs.d.ts.map +1 -0
- package/dist/types/backendJobs.js +5 -0
- package/dist/types/models/ApplicationData.d.ts +1 -1
- package/dist/types/models/ApplicationData.d.ts.map +1 -1
- package/dist/types/models/DeviceData.d.ts +4 -0
- package/dist/types/models/DeviceData.d.ts.map +1 -1
- package/dist/types/stack.d.ts +191 -0
- package/dist/types/stack.d.ts.map +1 -0
- package/dist/types/stack.js +5 -0
- package/dist/types/validation/schemas.d.ts +20 -20
- package/dist/types/validation/schemas.js +1 -1
- package/dist/utils/stack-errors.d.ts +103 -0
- package/dist/utils/stack-errors.d.ts.map +1 -0
- package/dist/utils/stack-errors.js +158 -0
- package/dist/utils/stack-file.d.ts +11 -0
- package/dist/utils/stack-file.d.ts.map +1 -0
- package/dist/utils/stack-file.js +66 -0
- package/dist/validation/stack-schemas.d.ts +535 -0
- package/dist/validation/stack-schemas.d.ts.map +1 -0
- package/dist/validation/stack-schemas.js +178 -0
- package/package.json +4 -2
- package/dist/commands/agent/agent-handlers.d.ts +0 -45
- package/dist/commands/agent/agent-handlers.d.ts.map +0 -1
- package/dist/commands/agent/agent-handlers.js +0 -1159
- package/dist/commands/application/api-keys.d.ts +0 -3
- package/dist/commands/application/api-keys.d.ts.map +0 -1
- package/dist/commands/application/api-keys.js +0 -227
- package/dist/commands/application/create-compose.d.ts +0 -3
- package/dist/commands/application/create-compose.d.ts.map +0 -1
- package/dist/commands/application/create-compose.js +0 -381
- package/dist/commands/application/create-interactive.d.ts +0 -3
- package/dist/commands/application/create-interactive.d.ts.map +0 -1
- package/dist/commands/application/create-interactive.js +0 -326
- package/dist/commands/application/create-workload.d.ts +0 -5
- package/dist/commands/application/create-workload.d.ts.map +0 -1
- package/dist/commands/application/create-workload.js +0 -48
- package/dist/commands/application/short-codes.d.ts +0 -3
- package/dist/commands/application/short-codes.d.ts.map +0 -1
- package/dist/commands/application/short-codes.js +0 -226
- package/dist/commands/application/toggle.d.ts +0 -2
- package/dist/commands/application/toggle.d.ts.map +0 -1
- package/dist/commands/application/toggle.js +0 -78
- package/dist/commands/examples/migrated-command-example.d.ts +0 -31
- package/dist/commands/examples/migrated-command-example.d.ts.map +0 -1
- package/dist/commands/examples/migrated-command-example.js +0 -180
- package/dist/commands/managedGateway/create.d.ts +0 -6
- package/dist/commands/managedGateway/create.d.ts.map +0 -1
- package/dist/commands/managedGateway/create.js +0 -50
- package/dist/commands/managedGateway/delete.d.ts +0 -5
- package/dist/commands/managedGateway/delete.d.ts.map +0 -1
- package/dist/commands/managedGateway/delete.js +0 -57
- package/dist/commands/managedGateway/get.d.ts +0 -4
- package/dist/commands/managedGateway/get.d.ts.map +0 -1
- package/dist/commands/managedGateway/get.js +0 -71
- package/dist/commands/managedGateway/haproxy-stats.d.ts +0 -6
- package/dist/commands/managedGateway/haproxy-stats.d.ts.map +0 -1
- package/dist/commands/managedGateway/haproxy-stats.js +0 -131
- package/dist/commands/managedGateway/list.d.ts +0 -4
- package/dist/commands/managedGateway/list.d.ts.map +0 -1
- package/dist/commands/managedGateway/list.js +0 -50
- package/dist/commands/managedGateway/logs.d.ts +0 -10
- package/dist/commands/managedGateway/logs.d.ts.map +0 -1
- package/dist/commands/managedGateway/logs.js +0 -100
- package/dist/commands/managedGateway/reboot.d.ts +0 -5
- package/dist/commands/managedGateway/reboot.d.ts.map +0 -1
- package/dist/commands/managedGateway/reboot.js +0 -95
- package/dist/commands/managedGateway/resync.d.ts +0 -10
- package/dist/commands/managedGateway/resync.d.ts.map +0 -1
- package/dist/commands/managedGateway/resync.js +0 -69
- package/dist/commands/managedGateway/ssh.d.ts +0 -4
- package/dist/commands/managedGateway/ssh.d.ts.map +0 -1
- package/dist/commands/managedGateway/ssh.js +0 -130
- package/dist/commands/managedGateway/wipe-logs.d.ts +0 -4
- package/dist/commands/managedGateway/wipe-logs.d.ts.map +0 -1
- package/dist/commands/managedGateway/wipe-logs.js +0 -67
- package/dist/commands/managedGateway/wireguard.d.ts +0 -4
- package/dist/commands/managedGateway/wireguard.d.ts.map +0 -1
- package/dist/commands/managedGateway/wireguard.js +0 -68
- package/dist/di/bindings.d.ts +0 -15
- package/dist/di/bindings.d.ts.map +0 -1
- package/dist/di/bindings.js +0 -99
- package/dist/di/container.d.ts +0 -44
- package/dist/di/container.d.ts.map +0 -1
- package/dist/di/container.js +0 -88
- package/dist/di/types.d.ts +0 -23
- package/dist/di/types.d.ts.map +0 -1
- package/dist/di/types.js +0 -32
- package/dist/repositories/config-repository.d.ts +0 -46
- package/dist/repositories/config-repository.d.ts.map +0 -1
- package/dist/repositories/config-repository.js +0 -62
- package/dist/repositories/gateway-repository.d.ts +0 -37
- package/dist/repositories/gateway-repository.d.ts.map +0 -1
- package/dist/repositories/gateway-repository.js +0 -35
|
@@ -55,11 +55,12 @@ const writeFile = (0, util_1.promisify)(fs.writeFile);
|
|
|
55
55
|
const readFile = (0, util_1.promisify)(fs.readFile);
|
|
56
56
|
const mkdir = (0, util_1.promisify)(fs.mkdir);
|
|
57
57
|
class LocalAgentManager {
|
|
58
|
-
constructor() {
|
|
58
|
+
constructor(configManager) {
|
|
59
59
|
this.agentProcess = null;
|
|
60
|
+
// Use provided configManager or create a new one (for backwards compatibility)
|
|
61
|
+
this.configManager = configManager || new config_1.ConfigManager();
|
|
60
62
|
// Get user config to determine installation type
|
|
61
|
-
const
|
|
62
|
-
const userConfig = tempConfigManager.getConfig();
|
|
63
|
+
const userConfig = this.configManager.getConfig();
|
|
63
64
|
// Resolve agent config path based on installation type
|
|
64
65
|
this.configPath = PathResolver_1.PathResolver.resolveAgentConfigPath(userConfig.agentInstallationType);
|
|
65
66
|
// Check for the actual agent binary location
|
|
@@ -71,7 +72,6 @@ class LocalAgentManager {
|
|
|
71
72
|
this.agentPath = possibleAgentPaths.find(p => fs.existsSync(p)) || possibleAgentPaths[0];
|
|
72
73
|
this.serviceName = 'edgible-agent';
|
|
73
74
|
this.statePath = path.join(this.configPath, 'state.json');
|
|
74
|
-
this.configManager = new config_1.ConfigManager();
|
|
75
75
|
this.statusManager = new AgentStatusManager_1.AgentStatusManager();
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
@@ -91,6 +91,7 @@ class LocalAgentManager {
|
|
|
91
91
|
devicePassword: cliConfig.devicePassword,
|
|
92
92
|
deviceType: cliConfig.deviceType || 'serving',
|
|
93
93
|
apiBaseUrl: (0, urls_1.getApiBaseUrl)(),
|
|
94
|
+
stage: (0, urls_1.getStage)(),
|
|
94
95
|
organizationId: cliConfig.organizationId,
|
|
95
96
|
firewallEnabled: true,
|
|
96
97
|
pollingInterval: 60000,
|
|
@@ -1484,6 +1485,7 @@ class LocalAgentManager {
|
|
|
1484
1485
|
devicePassword: cliConfig.devicePassword || 'edgible-password-' + Math.random().toString(36).substr(2, 9),
|
|
1485
1486
|
deviceType: cliConfig.deviceType || 'serving',
|
|
1486
1487
|
apiBaseUrl: (0, urls_1.getApiBaseUrl)(),
|
|
1488
|
+
stage: (0, urls_1.getStage)(),
|
|
1487
1489
|
firewallEnabled: true,
|
|
1488
1490
|
pollingInterval: 60000,
|
|
1489
1491
|
healthCheckTimeout: 5000,
|
|
@@ -36,6 +36,14 @@ export interface ApplicationService {
|
|
|
36
36
|
createShortCode(applicationId: string, name: string, expiresAt?: string, maxUses?: number): Promise<any>;
|
|
37
37
|
updateShortCode(applicationId: string, codeId: string, updates: any): Promise<any>;
|
|
38
38
|
deleteShortCode(applicationId: string, codeId: string): Promise<void>;
|
|
39
|
+
updateApplication(applicationId: string, updates: {
|
|
40
|
+
name?: string;
|
|
41
|
+
description?: string;
|
|
42
|
+
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
43
|
+
allowedOrganizations?: string[];
|
|
44
|
+
targetState?: string;
|
|
45
|
+
dependsOnApplicationIds?: string[];
|
|
46
|
+
}): Promise<unknown>;
|
|
39
47
|
}
|
|
40
48
|
export declare class ApplicationServiceImpl implements ApplicationService {
|
|
41
49
|
private apiClient;
|
|
@@ -95,5 +103,16 @@ export declare class ApplicationServiceImpl implements ApplicationService {
|
|
|
95
103
|
* Delete a short code
|
|
96
104
|
*/
|
|
97
105
|
deleteShortCode(applicationId: string, codeId: string): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Update application (e.g. auth modes, name, description)
|
|
108
|
+
*/
|
|
109
|
+
updateApplication(applicationId: string, updates: {
|
|
110
|
+
name?: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
authModes?: Array<'none' | 'org' | 'api-key'>;
|
|
113
|
+
allowedOrganizations?: string[];
|
|
114
|
+
targetState?: 'running' | 'suspended';
|
|
115
|
+
dependsOnApplicationIds?: string[];
|
|
116
|
+
}): Promise<unknown>;
|
|
98
117
|
}
|
|
99
118
|
//# sourceMappingURL=ApplicationService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CACd,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,EAC1C,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,iCAAiC,CAAC,MAAM,EAAE;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;QACnG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,CAAC;QAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;QAChC,2FAA2F;QAC3F,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpF,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACzG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnF,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicationService.d.ts","sourceRoot":"","sources":["../../../src/services/application/ApplicationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -293,7 +293,6 @@ class ApplicationServiceImpl {
|
|
|
293
293
|
if (params.dependsOnApplicationIds !== undefined && params.dependsOnApplicationIds.length > 0) {
|
|
294
294
|
createRequest.dependsOnApplicationIds = params.dependsOnApplicationIds;
|
|
295
295
|
}
|
|
296
|
-
console.log(`application: ${params}`);
|
|
297
296
|
const response = await this.apiClient.createApplication(createRequest);
|
|
298
297
|
return response.application;
|
|
299
298
|
}
|
|
@@ -398,6 +397,20 @@ class ApplicationServiceImpl {
|
|
|
398
397
|
throw new Error(`Failed to delete short code: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
399
398
|
}
|
|
400
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Update application (e.g. auth modes, name, description)
|
|
402
|
+
*/
|
|
403
|
+
async updateApplication(applicationId, updates) {
|
|
404
|
+
try {
|
|
405
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
406
|
+
const response = await this.apiClient.updateApplication({ applicationId, ...updates });
|
|
407
|
+
return response.application;
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
this.logger.error('Failed to update application', error);
|
|
411
|
+
throw new Error(`Failed to update application: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
401
414
|
}
|
|
402
415
|
exports.ApplicationServiceImpl = ApplicationServiceImpl;
|
|
403
416
|
//# sourceMappingURL=ApplicationService.js.map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device service
|
|
3
|
+
* Handles device list and delete operations for the organization
|
|
4
|
+
*/
|
|
5
|
+
import { ConfigManager } from '../../state/config';
|
|
6
|
+
import { AuthService } from '../auth/AuthService';
|
|
7
|
+
import { TokenManager } from '../token/TokenManager';
|
|
8
|
+
import { Logger } from '../../utils/logger';
|
|
9
|
+
import { DeviceData } from '../../types/models/DeviceData';
|
|
10
|
+
import type { DeviceHealthStatus, DeviceApplicationHealthResponse } from '../../types/AgentConfig';
|
|
11
|
+
export type DeviceTypeFilter = 'serving' | 'gateway';
|
|
12
|
+
export interface ListDevicesOptions {
|
|
13
|
+
type?: DeviceTypeFilter;
|
|
14
|
+
}
|
|
15
|
+
export interface DeviceListResult {
|
|
16
|
+
devices: DeviceData[];
|
|
17
|
+
}
|
|
18
|
+
export interface DeviceTelemetryResult {
|
|
19
|
+
data: unknown;
|
|
20
|
+
status: number;
|
|
21
|
+
}
|
|
22
|
+
export interface DeviceService {
|
|
23
|
+
listDevices(options?: ListDevicesOptions): Promise<DeviceListResult>;
|
|
24
|
+
deleteDevice(deviceId: string): Promise<void>;
|
|
25
|
+
/** Get a single device by ID (includes telemetryUrl when set). */
|
|
26
|
+
getDevice(deviceId: string): Promise<DeviceData | null>;
|
|
27
|
+
/** Fetch JSON from a device telemetry endpoint using current auth token. */
|
|
28
|
+
fetchTelemetry(telemetryBaseUrl: string, endpoint: string): Promise<DeviceTelemetryResult>;
|
|
29
|
+
/** Resolve device by ID or name; returns device ID or null if not found / not selected. */
|
|
30
|
+
resolveDeviceId(options: {
|
|
31
|
+
deviceId?: string;
|
|
32
|
+
name?: string;
|
|
33
|
+
interactive?: boolean;
|
|
34
|
+
message?: string;
|
|
35
|
+
}): Promise<string | null>;
|
|
36
|
+
/** Fetch device health from telemetry endpoint (uses telemetry session token). */
|
|
37
|
+
getDeviceHealth(deviceId: string): Promise<DeviceHealthStatus>;
|
|
38
|
+
/** Fetch application health for a device from telemetry GET /health/applications (uses telemetry session). */
|
|
39
|
+
getDeviceApplicationHealth(deviceId: string): Promise<DeviceApplicationHealthResponse>;
|
|
40
|
+
}
|
|
41
|
+
export declare class DeviceServiceImpl implements DeviceService {
|
|
42
|
+
private apiClient;
|
|
43
|
+
private configManager;
|
|
44
|
+
private authService;
|
|
45
|
+
private tokenManager;
|
|
46
|
+
private logger;
|
|
47
|
+
private baseUrl;
|
|
48
|
+
constructor(baseUrl: string, configManager: ConfigManager, authService: AuthService, tokenManager: TokenManager, logger: Logger);
|
|
49
|
+
listDevices(options?: ListDevicesOptions): Promise<DeviceListResult>;
|
|
50
|
+
deleteDevice(deviceId: string): Promise<void>;
|
|
51
|
+
getDevice(deviceId: string): Promise<DeviceData | null>;
|
|
52
|
+
fetchTelemetry(telemetryBaseUrl: string, endpoint: string): Promise<DeviceTelemetryResult>;
|
|
53
|
+
resolveDeviceId(options: {
|
|
54
|
+
deviceId?: string;
|
|
55
|
+
name?: string;
|
|
56
|
+
interactive?: boolean;
|
|
57
|
+
message?: string;
|
|
58
|
+
}): Promise<string | null>;
|
|
59
|
+
getDeviceHealth(deviceId: string): Promise<DeviceHealthStatus>;
|
|
60
|
+
getDeviceApplicationHealth(deviceId: string): Promise<DeviceApplicationHealthResponse>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=DeviceService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceService.d.ts","sourceRoot":"","sources":["../../../src/services/device/DeviceService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Device service
|
|
4
|
+
* Handles device list and delete operations for the organization
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.DeviceServiceImpl = void 0;
|
|
8
|
+
const client_1 = require("../../client");
|
|
9
|
+
class DeviceServiceImpl {
|
|
10
|
+
constructor(baseUrl, configManager, authService, tokenManager, logger) {
|
|
11
|
+
this.baseUrl = baseUrl;
|
|
12
|
+
this.configManager = configManager;
|
|
13
|
+
this.authService = authService;
|
|
14
|
+
this.tokenManager = tokenManager;
|
|
15
|
+
this.logger = logger;
|
|
16
|
+
this.apiClient = (0, client_1.createApiClient)(baseUrl);
|
|
17
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
18
|
+
}
|
|
19
|
+
async listDevices(options) {
|
|
20
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
21
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
22
|
+
const config = this.configManager.getConfig();
|
|
23
|
+
if (!config.organizationId) {
|
|
24
|
+
throw new Error('No organization ID found. Please login first.');
|
|
25
|
+
}
|
|
26
|
+
this.logger.debug('Fetching organization devices', { organizationId: config.organizationId });
|
|
27
|
+
const response = await this.apiClient.getOrganizationDevices(config.organizationId);
|
|
28
|
+
let devices = response.devices || [];
|
|
29
|
+
if (options?.type) {
|
|
30
|
+
if (options.type === 'serving') {
|
|
31
|
+
devices = devices.filter((d) => d.type === 'server');
|
|
32
|
+
}
|
|
33
|
+
else if (options.type === 'gateway') {
|
|
34
|
+
devices = devices.filter((d) => d.type === 'gateway');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { devices };
|
|
38
|
+
}
|
|
39
|
+
async deleteDevice(deviceId) {
|
|
40
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
41
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
42
|
+
this.logger.debug('Deleting device', { deviceId });
|
|
43
|
+
await this.apiClient.deleteDevice(deviceId);
|
|
44
|
+
const config = this.configManager.getConfig();
|
|
45
|
+
if (config.deviceId === deviceId) {
|
|
46
|
+
this.configManager.updateConfig({
|
|
47
|
+
deviceId: undefined,
|
|
48
|
+
deviceName: undefined,
|
|
49
|
+
devicePassword: undefined,
|
|
50
|
+
deviceType: undefined,
|
|
51
|
+
});
|
|
52
|
+
this.logger.debug('Cleared current device from config after deletion');
|
|
53
|
+
}
|
|
54
|
+
this.configManager.removeGateway(deviceId);
|
|
55
|
+
}
|
|
56
|
+
async getDevice(deviceId) {
|
|
57
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
58
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
59
|
+
this.logger.debug('Fetching device', { deviceId });
|
|
60
|
+
const response = await this.apiClient.getDevice(deviceId);
|
|
61
|
+
return response.device ?? null;
|
|
62
|
+
}
|
|
63
|
+
async fetchTelemetry(telemetryBaseUrl, endpoint) {
|
|
64
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
65
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
66
|
+
const token = this.apiClient.getIdToken() ?? this.apiClient.getAccessToken();
|
|
67
|
+
if (!token) {
|
|
68
|
+
throw new Error('No auth token available. Please run "edgible login" first.');
|
|
69
|
+
}
|
|
70
|
+
const base = telemetryBaseUrl.replace(/\/$/, '');
|
|
71
|
+
const path = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;
|
|
72
|
+
const url = `${base}${path}`;
|
|
73
|
+
this.logger.debug('Fetching device telemetry', { url });
|
|
74
|
+
const controller = new AbortController();
|
|
75
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
76
|
+
let response;
|
|
77
|
+
try {
|
|
78
|
+
response = await fetch(url, {
|
|
79
|
+
method: 'GET',
|
|
80
|
+
headers: {
|
|
81
|
+
Accept: 'application/json',
|
|
82
|
+
Authorization: `Bearer ${token}`,
|
|
83
|
+
},
|
|
84
|
+
signal: controller.signal,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
clearTimeout(timeoutId);
|
|
89
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
90
|
+
throw new Error('Telemetry request timed out after 15 seconds.');
|
|
91
|
+
}
|
|
92
|
+
throw new Error(`Failed to reach telemetry endpoint: ${err instanceof Error ? err.message : String(err)}`);
|
|
93
|
+
}
|
|
94
|
+
clearTimeout(timeoutId);
|
|
95
|
+
const text = await response.text();
|
|
96
|
+
let data;
|
|
97
|
+
try {
|
|
98
|
+
data = text ? JSON.parse(text) : {};
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
data = { raw: text };
|
|
102
|
+
}
|
|
103
|
+
if (!response.ok) {
|
|
104
|
+
throw new Error(`Telemetry request failed (${response.status}): ${response.statusText}${text ? ` - ${text.slice(0, 200)}` : ''}`);
|
|
105
|
+
}
|
|
106
|
+
return { data, status: response.status };
|
|
107
|
+
}
|
|
108
|
+
async resolveDeviceId(options) {
|
|
109
|
+
if (options.name && !options.deviceId) {
|
|
110
|
+
const { devices } = await this.listDevices();
|
|
111
|
+
const device = devices.find((d) => d.name === options.name);
|
|
112
|
+
if (!device) {
|
|
113
|
+
throw new Error(`Device with name "${options.name}" not found. Use "edgible device list" to see available devices.`);
|
|
114
|
+
}
|
|
115
|
+
this.logger.debug('Resolved device name to ID', { name: options.name, deviceId: device.id });
|
|
116
|
+
return device.id;
|
|
117
|
+
}
|
|
118
|
+
if (options.deviceId) {
|
|
119
|
+
return options.deviceId;
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
async getDeviceHealth(deviceId) {
|
|
124
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
125
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
126
|
+
const device = await this.getDevice(deviceId);
|
|
127
|
+
if (!device) {
|
|
128
|
+
throw new Error(`Device not found: ${deviceId}`);
|
|
129
|
+
}
|
|
130
|
+
if (!device.telemetryUrl?.trim()) {
|
|
131
|
+
throw new Error(`No telemetry URL configured for device "${device.name}" (${deviceId}). Telemetry may not be set up for this device.`);
|
|
132
|
+
}
|
|
133
|
+
// Use same token as rest of CLI (config is source of truth; restore again before backend call)
|
|
134
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
135
|
+
const { sessionToken } = await this.apiClient.createTelemetrySession(deviceId);
|
|
136
|
+
const base = device.telemetryUrl.trim().replace(/\/$/, '');
|
|
137
|
+
const url = `${base}/health/device`;
|
|
138
|
+
this.logger.debug('Fetching device health via telemetry session', { deviceId, url });
|
|
139
|
+
const controller = new AbortController();
|
|
140
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
141
|
+
let response;
|
|
142
|
+
try {
|
|
143
|
+
response = await fetch(url, {
|
|
144
|
+
method: 'GET',
|
|
145
|
+
headers: {
|
|
146
|
+
Accept: 'application/json',
|
|
147
|
+
'X-Session-Token': sessionToken,
|
|
148
|
+
},
|
|
149
|
+
signal: controller.signal,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
clearTimeout(timeoutId);
|
|
154
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
155
|
+
throw new Error('Device health request timed out after 15 seconds.');
|
|
156
|
+
}
|
|
157
|
+
throw new Error(`Failed to reach device health endpoint: ${err instanceof Error ? err.message : String(err)}`);
|
|
158
|
+
}
|
|
159
|
+
clearTimeout(timeoutId);
|
|
160
|
+
const text = await response.text();
|
|
161
|
+
let data;
|
|
162
|
+
try {
|
|
163
|
+
data = text ? JSON.parse(text) : {};
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
throw new Error(`Invalid JSON from device health endpoint: ${text.slice(0, 200)}`);
|
|
167
|
+
}
|
|
168
|
+
if (!response.ok) {
|
|
169
|
+
throw new Error(`Device health request failed (${response.status}): ${response.statusText}${text ? ` - ${text.slice(0, 200)}` : ''}`);
|
|
170
|
+
}
|
|
171
|
+
const health = data;
|
|
172
|
+
if (typeof health.cpuUsage !== 'number' ||
|
|
173
|
+
typeof health.memoryUsage !== 'number' ||
|
|
174
|
+
typeof health.diskUsage !== 'number' ||
|
|
175
|
+
typeof health.uptime !== 'number') {
|
|
176
|
+
throw new Error('Device health endpoint returned unexpected shape (missing cpuUsage, memoryUsage, diskUsage, or uptime).');
|
|
177
|
+
}
|
|
178
|
+
return health;
|
|
179
|
+
}
|
|
180
|
+
async getDeviceApplicationHealth(deviceId) {
|
|
181
|
+
await this.tokenManager.ensureValidToken(this.apiClient, this.authService.loginDevice.bind(this.authService));
|
|
182
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
183
|
+
const device = await this.getDevice(deviceId);
|
|
184
|
+
if (!device) {
|
|
185
|
+
throw new Error(`Device not found: ${deviceId}`);
|
|
186
|
+
}
|
|
187
|
+
if (!device.telemetryUrl?.trim()) {
|
|
188
|
+
throw new Error(`No telemetry URL configured for device "${device.name}" (${deviceId}). Telemetry may not be set up for this device.`);
|
|
189
|
+
}
|
|
190
|
+
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
191
|
+
const { sessionToken } = await this.apiClient.createTelemetrySession(deviceId);
|
|
192
|
+
const base = device.telemetryUrl.trim().replace(/\/$/, '');
|
|
193
|
+
const url = `${base}/health/applications`;
|
|
194
|
+
this.logger.debug('Fetching device application health via telemetry session', { deviceId, url });
|
|
195
|
+
const controller = new AbortController();
|
|
196
|
+
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
|
197
|
+
let response;
|
|
198
|
+
try {
|
|
199
|
+
response = await fetch(url, {
|
|
200
|
+
method: 'GET',
|
|
201
|
+
headers: {
|
|
202
|
+
Accept: 'application/json',
|
|
203
|
+
'X-Session-Token': sessionToken,
|
|
204
|
+
},
|
|
205
|
+
signal: controller.signal,
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
clearTimeout(timeoutId);
|
|
210
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
211
|
+
throw new Error('Application health request timed out after 15 seconds.');
|
|
212
|
+
}
|
|
213
|
+
throw new Error(`Failed to reach application health endpoint: ${err instanceof Error ? err.message : String(err)}`);
|
|
214
|
+
}
|
|
215
|
+
clearTimeout(timeoutId);
|
|
216
|
+
const text = await response.text();
|
|
217
|
+
let data;
|
|
218
|
+
try {
|
|
219
|
+
data = text ? JSON.parse(text) : {};
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
throw new Error(`Invalid JSON from application health endpoint: ${text.slice(0, 200)}`);
|
|
223
|
+
}
|
|
224
|
+
if (!response.ok) {
|
|
225
|
+
throw new Error(`Application health request failed (${response.status}): ${response.statusText}${text ? ` - ${text.slice(0, 200)}` : ''}`);
|
|
226
|
+
}
|
|
227
|
+
const body = data;
|
|
228
|
+
if (!Array.isArray(body?.applications)) {
|
|
229
|
+
throw new Error('Application health endpoint returned unexpected shape (missing applications array).');
|
|
230
|
+
}
|
|
231
|
+
return body;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.DeviceServiceImpl = DeviceServiceImpl;
|
|
235
|
+
//# sourceMappingURL=DeviceService.js.map
|
|
@@ -4,6 +4,7 @@ import { CreateDeviceWithOrphanedOrganizationResponse, GetUserOrganizationsRespo
|
|
|
4
4
|
import { ConfigManager } from '../state/config';
|
|
5
5
|
import { TokenManager } from './token/TokenManager';
|
|
6
6
|
import { Logger } from '../utils/logger';
|
|
7
|
+
import { LocalAgentManager } from './LocalAgentManager';
|
|
7
8
|
import { ApplicationSetupResult, ValidationResult } from '../types/validation';
|
|
8
9
|
import { LocalAgentHealthStatus } from '../types/agent';
|
|
9
10
|
/**
|
|
@@ -17,7 +18,8 @@ export declare class EdgibleService {
|
|
|
17
18
|
private tokenManager;
|
|
18
19
|
private logger;
|
|
19
20
|
private baseUrl;
|
|
20
|
-
|
|
21
|
+
private localAgentManager?;
|
|
22
|
+
constructor(baseUrl: string, configManager: ConfigManager, tokenManager: TokenManager, logger: Logger, localAgentManager?: LocalAgentManager);
|
|
21
23
|
/**
|
|
22
24
|
* Authenticate user with email and password
|
|
23
25
|
* @param email - Email address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgible.d.ts","sourceRoot":"","sources":["../../src/services/edgible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAA4C,aAAa,EAAE,MAAM,WAAW,CAAC;AAEpF,OAAO,EAAE,4CAA4C,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAEnH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"edgible.d.ts","sourceRoot":"","sources":["../../src/services/edgible.ts"],"names":[],"mappings":"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"}
|
package/dist/services/edgible.js
CHANGED
|
@@ -53,12 +53,13 @@ const PathResolver_1 = require("../utils/PathResolver");
|
|
|
53
53
|
* Uses the real API client for authentication and device management
|
|
54
54
|
*/
|
|
55
55
|
class EdgibleService {
|
|
56
|
-
constructor(baseUrl, configManager, tokenManager, logger) {
|
|
56
|
+
constructor(baseUrl, configManager, tokenManager, logger, localAgentManager) {
|
|
57
57
|
this.applications = [];
|
|
58
58
|
this.baseUrl = baseUrl;
|
|
59
59
|
this.configManager = configManager;
|
|
60
60
|
this.tokenManager = tokenManager;
|
|
61
61
|
this.logger = logger;
|
|
62
|
+
this.localAgentManager = localAgentManager;
|
|
62
63
|
this.apiClient = (0, client_1.createApiClient)(this.baseUrl);
|
|
63
64
|
// Restore tokens from config if available
|
|
64
65
|
this.tokenManager.restoreTokensFromConfig(this.apiClient);
|
|
@@ -2642,7 +2643,7 @@ console.log('Edgible Agent started successfully');
|
|
|
2642
2643
|
console.log(chalk_1.default.blue('Setting up application with validation...'));
|
|
2643
2644
|
// Step 1: Check local agent status
|
|
2644
2645
|
console.log(chalk_1.default.gray('Checking local agent status...'));
|
|
2645
|
-
const localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
2646
|
+
const localAgentManager = this.localAgentManager || new LocalAgentManager_1.LocalAgentManager(this.configManager);
|
|
2646
2647
|
let localAgentStatus = await localAgentManager.checkLocalAgentStatus();
|
|
2647
2648
|
if (!localAgentStatus.installed) {
|
|
2648
2649
|
warnings.push('Local serving agent is not installed');
|
|
@@ -2915,7 +2916,7 @@ console.log('Edgible Agent started successfully');
|
|
|
2915
2916
|
});
|
|
2916
2917
|
}
|
|
2917
2918
|
// Check 4: Local agent status
|
|
2918
|
-
const localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
2919
|
+
const localAgentManager = this.localAgentManager || new LocalAgentManager_1.LocalAgentManager(this.configManager);
|
|
2919
2920
|
const agentStatus = await localAgentManager.checkLocalAgentStatus();
|
|
2920
2921
|
checks.push({
|
|
2921
2922
|
name: 'local_agent',
|
|
@@ -2959,7 +2960,7 @@ console.log('Edgible Agent started successfully');
|
|
|
2959
2960
|
*/
|
|
2960
2961
|
async getApplicationHealth(applicationId) {
|
|
2961
2962
|
try {
|
|
2962
|
-
const localAgentManager = new LocalAgentManager_1.LocalAgentManager();
|
|
2963
|
+
const localAgentManager = this.localAgentManager || new LocalAgentManager_1.LocalAgentManager(this.configManager);
|
|
2963
2964
|
return await localAgentManager.monitorAgentHealth();
|
|
2964
2965
|
}
|
|
2965
2966
|
catch (error) {
|
|
@@ -10,11 +10,13 @@ import { EdgibleService } from './edgible';
|
|
|
10
10
|
import { LocalAgentManager } from './LocalAgentManager';
|
|
11
11
|
import { ConnectivityTester } from './ConnectivityTester';
|
|
12
12
|
import { WorkloadDetector } from '../detection/WorkloadDetector';
|
|
13
|
+
import { StackService } from './stack/StackService';
|
|
13
14
|
import type { Logger } from '../utils/logger';
|
|
14
15
|
import type { TokenManager } from './token/TokenManager';
|
|
15
16
|
import type { AuthService } from './auth/AuthService';
|
|
16
17
|
import type { ApplicationService } from './application/ApplicationService';
|
|
17
18
|
import type { GatewayService } from './gateway/GatewayService';
|
|
19
|
+
import type { DeviceService } from './device/DeviceService';
|
|
18
20
|
import type { ManagedGatewayService } from './managedGateway/ManagedGatewayService';
|
|
19
21
|
import type { DiagnosticsService } from './diagnostics/DiagnosticsService';
|
|
20
22
|
import type { AgentDeploymentService } from './agentDeployment/AgentDeploymentService';
|
|
@@ -24,11 +26,35 @@ export declare const tokenManager: TokenManager;
|
|
|
24
26
|
export declare const authService: AuthService;
|
|
25
27
|
export declare const applicationService: ApplicationService;
|
|
26
28
|
export declare const gatewayService: GatewayService;
|
|
27
|
-
export declare const
|
|
29
|
+
export declare const deviceService: DeviceService;
|
|
28
30
|
export declare const localAgentManager: LocalAgentManager;
|
|
31
|
+
export declare const edgibleService: EdgibleService;
|
|
29
32
|
export declare const managedGatewayService: ManagedGatewayService;
|
|
30
33
|
export declare const diagnosticsService: DiagnosticsService;
|
|
31
34
|
export declare const agentDeploymentService: AgentDeploymentService;
|
|
35
|
+
export declare function getStackService(): StackService;
|
|
36
|
+
export declare const stackService: {
|
|
37
|
+
readonly instance: StackService;
|
|
38
|
+
};
|
|
32
39
|
export declare function createConnectivityTester(): ConnectivityTester;
|
|
33
40
|
export declare function createWorkloadDetector(): WorkloadDetector;
|
|
41
|
+
/**
|
|
42
|
+
* Get all service instances
|
|
43
|
+
* Convenience function for commands that need multiple services
|
|
44
|
+
*/
|
|
45
|
+
export declare function getServiceInstances(): {
|
|
46
|
+
logger: Logger;
|
|
47
|
+
configManager: ConfigManager;
|
|
48
|
+
tokenManager: TokenManager;
|
|
49
|
+
authService: AuthService;
|
|
50
|
+
applicationService: ApplicationService;
|
|
51
|
+
gatewayService: GatewayService;
|
|
52
|
+
deviceService: DeviceService;
|
|
53
|
+
edgibleService: EdgibleService;
|
|
54
|
+
localAgentManager: LocalAgentManager;
|
|
55
|
+
managedGatewayService: ManagedGatewayService;
|
|
56
|
+
diagnosticsService: DiagnosticsService;
|
|
57
|
+
agentDeploymentService: AgentDeploymentService;
|
|
58
|
+
stackService: StackService;
|
|
59
|
+
};
|
|
34
60
|
//# sourceMappingURL=instances.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/services/instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"instances.d.ts","sourceRoot":"","sources":["../../src/services/instances.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAMvF,eAAO,MAAM,MAAM,EAAE,MAInB,CAAC;AAGH,eAAO,MAAM,aAAa,eAAsB,CAAC;AAGjD,eAAO,MAAM,YAAY,EAAE,YAA0D,CAAC;AAGtF,eAAO,MAAM,WAAW,EAAE,WAKzB,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,kBAMhC,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,cAM5B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,aAM3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,mBAAuC,CAAC;AAGtE,eAAO,MAAM,cAAc,gBAM1B,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,qBAAqE,CAAC;AAG1G,eAAO,MAAM,kBAAkB,EAAE,kBAA+D,CAAC;AAGjG,eAAO,MAAM,sBAAsB,EAAE,sBAAuE,CAAC;AAI7G,wBAAgB,eAAe,IAAI,YAAY,CAoB9C;AAGD,eAAO,MAAM,YAAY;;CAIxB,CAAC;AAGF,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAGD,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB;;;;;;;;;;;;;;EAgBlC"}
|