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