@docker-digital/dockernet-agent 0.1.5 → 0.1.7

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 (122) hide show
  1. package/dist/apps/agent/src/agent/agent.module.js +21 -4
  2. package/dist/apps/agent/src/agent/agent.module.js.map +1 -1
  3. package/dist/apps/agent/src/agent/commands/agent.command.d.ts +3 -3
  4. package/dist/apps/agent/src/agent/commands/agent.command.js +2 -3
  5. package/dist/apps/agent/src/agent/commands/agent.command.js.map +1 -1
  6. package/dist/apps/agent/src/agent/commands/apikey.command.d.ts +3 -3
  7. package/dist/apps/agent/src/agent/commands/apikey.command.js +2 -3
  8. package/dist/apps/agent/src/agent/commands/apikey.command.js.map +1 -1
  9. package/dist/apps/agent/src/agent/commands/config.command.d.ts +3 -3
  10. package/dist/apps/agent/src/agent/commands/config.command.js +2 -3
  11. package/dist/apps/agent/src/agent/commands/config.command.js.map +1 -1
  12. package/dist/apps/agent/src/agent/commands/log.command.d.ts +3 -3
  13. package/dist/apps/agent/src/agent/commands/log.command.js +2 -3
  14. package/dist/apps/agent/src/agent/commands/log.command.js.map +1 -1
  15. package/dist/apps/agent/src/agent/commands/profiles.command.d.ts +3 -3
  16. package/dist/apps/agent/src/agent/commands/profiles.command.js +2 -3
  17. package/dist/apps/agent/src/agent/commands/profiles.command.js.map +1 -1
  18. package/dist/apps/agent/src/agent/commands/restart.command.d.ts +1 -1
  19. package/dist/apps/agent/src/agent/commands/restart.command.js +1 -2
  20. package/dist/apps/agent/src/agent/commands/restart.command.js.map +1 -1
  21. package/dist/apps/agent/src/agent/commands/run.command.d.ts +14 -7
  22. package/dist/apps/agent/src/agent/commands/run.command.js +332 -50
  23. package/dist/apps/agent/src/agent/commands/run.command.js.map +1 -1
  24. package/dist/apps/agent/src/agent/commands/service.command.d.ts +14 -0
  25. package/dist/apps/agent/src/agent/commands/service.command.js +132 -0
  26. package/dist/apps/agent/src/agent/commands/service.command.js.map +1 -0
  27. package/dist/apps/agent/src/agent/commands/stop.command.d.ts +3 -3
  28. package/dist/apps/agent/src/agent/commands/stop.command.js +2 -3
  29. package/dist/apps/agent/src/agent/commands/stop.command.js.map +1 -1
  30. package/dist/apps/agent/src/agent/commands/upgrade.command.d.ts +3 -3
  31. package/dist/apps/agent/src/agent/commands/upgrade.command.js +2 -3
  32. package/dist/apps/agent/src/agent/commands/upgrade.command.js.map +1 -1
  33. package/dist/apps/agent/src/agent/commands/version.command.d.ts +1 -1
  34. package/dist/apps/agent/src/agent/commands/version.command.js +1 -1
  35. package/dist/apps/agent/src/agent/commands/version.command.js.map +1 -1
  36. package/dist/apps/agent/src/agent/services/api.service.d.ts +2 -2
  37. package/dist/apps/agent/src/agent/services/api.service.js +87 -27
  38. package/dist/apps/agent/src/agent/services/api.service.js.map +1 -1
  39. package/dist/apps/agent/src/agent/services/config.service.d.ts +3 -3
  40. package/dist/apps/agent/src/agent/services/config.service.js +6 -7
  41. package/dist/apps/agent/src/agent/services/config.service.js.map +1 -1
  42. package/dist/apps/agent/src/agent/services/docker-event.service.js +17 -2
  43. package/dist/apps/agent/src/agent/services/docker-event.service.js.map +1 -1
  44. package/dist/apps/agent/src/agent/services/docker.service.d.ts +6 -2
  45. package/dist/apps/agent/src/agent/services/docker.service.js +120 -10
  46. package/dist/apps/agent/src/agent/services/docker.service.js.map +1 -1
  47. package/dist/apps/agent/src/agent/services/event-websocket-client.service.d.ts +14 -2
  48. package/dist/apps/agent/src/agent/services/event-websocket-client.service.js +438 -37
  49. package/dist/apps/agent/src/agent/services/event-websocket-client.service.js.map +1 -1
  50. package/dist/apps/agent/src/agent/services/event.service.d.ts +2 -2
  51. package/dist/apps/agent/src/agent/services/event.service.js +271 -39
  52. package/dist/apps/agent/src/agent/services/event.service.js.map +1 -1
  53. package/dist/apps/agent/src/agent/services/index.d.ts +14 -0
  54. package/dist/apps/agent/src/agent/services/index.js +31 -0
  55. package/dist/apps/agent/src/agent/services/index.js.map +1 -0
  56. package/dist/apps/agent/src/agent/services/log.service.d.ts +11 -4
  57. package/dist/apps/agent/src/agent/services/log.service.js +41 -11
  58. package/dist/apps/agent/src/agent/services/log.service.js.map +1 -1
  59. package/dist/apps/agent/src/agent/services/machine.service.d.ts +2 -2
  60. package/dist/apps/agent/src/agent/services/machine.service.js +174 -40
  61. package/dist/apps/agent/src/agent/services/machine.service.js.map +1 -1
  62. package/dist/apps/agent/src/agent/services/nebula.service.d.ts +2 -2
  63. package/dist/apps/agent/src/agent/services/nebula.service.js +124 -25
  64. package/dist/apps/agent/src/agent/services/nebula.service.js.map +1 -1
  65. package/dist/apps/agent/src/agent/services/profile.service.d.ts +11 -2
  66. package/dist/apps/agent/src/agent/services/profile.service.js +829 -117
  67. package/dist/apps/agent/src/agent/services/profile.service.js.map +1 -1
  68. package/dist/apps/agent/src/agent/services/terminal.service.d.ts +2 -2
  69. package/dist/apps/agent/src/agent/services/terminal.service.js +107 -12
  70. package/dist/apps/agent/src/agent/services/terminal.service.js.map +1 -1
  71. package/dist/apps/agent/src/agent/services/volume-backup.service.d.ts +2 -2
  72. package/dist/apps/agent/src/agent/services/volume-backup.service.js +1 -1
  73. package/dist/apps/agent/src/agent/services/volume-backup.service.js.map +1 -1
  74. package/dist/apps/agent/src/agent/services/volume-sync.service.d.ts +2 -2
  75. package/dist/apps/agent/src/agent/services/volume-sync.service.js +1 -1
  76. package/dist/apps/agent/src/agent/services/volume-sync.service.js.map +1 -1
  77. package/dist/apps/agent/src/agent/services/websocket-client.service.d.ts +11 -3
  78. package/dist/apps/agent/src/agent/services/websocket-client.service.js +2 -2
  79. package/dist/apps/agent/src/agent/services/websocket-client.service.js.map +1 -1
  80. package/dist/apps/agent/src/api/agent-control.controller.d.ts +43 -0
  81. package/dist/apps/agent/src/api/agent-control.controller.js +123 -0
  82. package/dist/apps/agent/src/api/agent-control.controller.js.map +1 -0
  83. package/dist/apps/agent/src/api/api.module.d.ts +2 -0
  84. package/dist/apps/agent/src/api/api.module.js +62 -0
  85. package/dist/apps/agent/src/api/api.module.js.map +1 -0
  86. package/dist/apps/agent/src/api/health.controller.d.ts +9 -0
  87. package/dist/apps/agent/src/api/health.controller.js +36 -0
  88. package/dist/apps/agent/src/api/health.controller.js.map +1 -0
  89. package/dist/apps/agent/src/api/logs.controller.d.ts +11 -0
  90. package/dist/apps/agent/src/api/logs.controller.js +50 -0
  91. package/dist/apps/agent/src/api/logs.controller.js.map +1 -0
  92. package/dist/apps/agent/src/api/machine.controller.d.ts +21 -0
  93. package/dist/apps/agent/src/api/machine.controller.js +48 -0
  94. package/dist/apps/agent/src/api/machine.controller.js.map +1 -0
  95. package/dist/apps/agent/src/api/metrics.controller.d.ts +17 -0
  96. package/dist/apps/agent/src/api/metrics.controller.js +48 -0
  97. package/dist/apps/agent/src/api/metrics.controller.js.map +1 -0
  98. package/dist/apps/agent/src/api/network.controller.d.ts +15 -0
  99. package/dist/apps/agent/src/api/network.controller.js +50 -0
  100. package/dist/apps/agent/src/api/network.controller.js.map +1 -0
  101. package/dist/apps/agent/src/api/profiles.controller.d.ts +16 -0
  102. package/dist/apps/agent/src/api/profiles.controller.js +71 -0
  103. package/dist/apps/agent/src/api/profiles.controller.js.map +1 -0
  104. package/dist/apps/agent/src/api/services.controller.d.ts +10 -0
  105. package/dist/apps/agent/src/api/services.controller.js +77 -0
  106. package/dist/apps/agent/src/api/services.controller.js.map +1 -0
  107. package/dist/apps/agent/src/api/status.controller.d.ts +53 -0
  108. package/dist/apps/agent/src/api/status.controller.js +157 -0
  109. package/dist/apps/agent/src/api/status.controller.js.map +1 -0
  110. package/dist/apps/agent/src/app.module.js +2 -0
  111. package/dist/apps/agent/src/app.module.js.map +1 -1
  112. package/dist/shared/common/utils/cli-logger.util.d.ts +10 -1
  113. package/dist/shared/common/utils/cli-logger.util.js +48 -5
  114. package/dist/shared/common/utils/cli-logger.util.js.map +1 -1
  115. package/dist/shared/common/utils/constant.d.ts +22 -0
  116. package/dist/shared/common/utils/constant.js +26 -0
  117. package/dist/shared/common/utils/constant.js.map +1 -0
  118. package/dist/shared/common/utils/index.d.ts +2 -1
  119. package/dist/shared/common/utils/index.js +2 -1
  120. package/dist/shared/common/utils/index.js.map +1 -1
  121. package/dist/tsconfig.tsbuildinfo +1 -1
  122. package/package.json +27 -7
@@ -0,0 +1,43 @@
1
+ import { ConfigAgentService } from '../agent/services/config.service';
2
+ export declare class AgentControlController {
3
+ private readonly configService;
4
+ constructor(configService: ConfigAgentService);
5
+ getAgentRuntimeStatus(): Promise<{
6
+ daemon: {
7
+ pid: number;
8
+ state: string;
9
+ };
10
+ api: {
11
+ pid: number;
12
+ uptime_seconds: number;
13
+ };
14
+ version: string;
15
+ }>;
16
+ startAgent(): Promise<{
17
+ ok: boolean;
18
+ }>;
19
+ stopAgent(): Promise<{
20
+ ok: boolean;
21
+ stopped: boolean;
22
+ reason: string;
23
+ pid?: undefined;
24
+ error?: undefined;
25
+ } | {
26
+ ok: boolean;
27
+ stopped: boolean;
28
+ pid: number;
29
+ reason?: undefined;
30
+ error?: undefined;
31
+ } | {
32
+ ok: boolean;
33
+ stopped: boolean;
34
+ pid: number;
35
+ error: any;
36
+ reason?: undefined;
37
+ }>;
38
+ restartAgent(body?: {
39
+ delay_ms?: number;
40
+ }): Promise<{
41
+ ok: boolean;
42
+ }>;
43
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AgentControlController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const fs = require("fs-extra");
18
+ const child_process_1 = require("child_process");
19
+ const config_service_1 = require("../agent/services/config.service");
20
+ let AgentControlController = class AgentControlController {
21
+ constructor(configService) {
22
+ this.configService = configService;
23
+ }
24
+ async getAgentRuntimeStatus() {
25
+ const pidFile = this.configService.pidFilePath;
26
+ let daemonPid = null;
27
+ if (await fs.pathExists(pidFile)) {
28
+ const content = await fs.readFile(pidFile, 'utf-8').catch(() => '');
29
+ const pid = parseInt(content.trim(), 10);
30
+ if (pid && !Number.isNaN(pid))
31
+ daemonPid = pid;
32
+ }
33
+ let daemonRunning = false;
34
+ if (daemonPid) {
35
+ try {
36
+ process.kill(daemonPid, 0);
37
+ daemonRunning = true;
38
+ }
39
+ catch {
40
+ daemonRunning = false;
41
+ }
42
+ }
43
+ return {
44
+ daemon: {
45
+ pid: daemonPid,
46
+ state: daemonRunning ? 'RUNNING' : 'STOPPED',
47
+ },
48
+ api: {
49
+ pid: process.pid,
50
+ uptime_seconds: Math.floor(process.uptime()),
51
+ },
52
+ version: process.env.npm_package_version || 'unknown',
53
+ };
54
+ }
55
+ async startAgent() {
56
+ const execPath = process.execPath;
57
+ const entry = process.argv[1];
58
+ const child = (0, child_process_1.spawn)(execPath, [entry, 'run'], {
59
+ detached: true,
60
+ stdio: 'ignore',
61
+ env: process.env,
62
+ });
63
+ child.unref();
64
+ return { ok: true };
65
+ }
66
+ async stopAgent() {
67
+ const pidFile = this.configService.pidFilePath;
68
+ if (!(await fs.pathExists(pidFile))) {
69
+ return { ok: true, stopped: false, reason: 'pid_file_not_found' };
70
+ }
71
+ const content = await fs.readFile(pidFile, 'utf-8').catch(() => '');
72
+ const pid = parseInt(content.trim(), 10);
73
+ if (!pid || Number.isNaN(pid)) {
74
+ await fs.remove(pidFile);
75
+ return { ok: true, stopped: false, reason: 'invalid_pid_file' };
76
+ }
77
+ try {
78
+ process.kill(pid, 'SIGTERM');
79
+ await fs.remove(pidFile);
80
+ return { ok: true, stopped: true, pid };
81
+ }
82
+ catch (e) {
83
+ return { ok: false, stopped: false, pid, error: e?.message || 'kill_failed' };
84
+ }
85
+ }
86
+ async restartAgent(body) {
87
+ await this.stopAgent();
88
+ const delay = Math.min(Math.max(body?.delay_ms || 1500, 0), 5000);
89
+ await new Promise((r) => setTimeout(r, delay));
90
+ return this.startAgent();
91
+ }
92
+ };
93
+ exports.AgentControlController = AgentControlController;
94
+ __decorate([
95
+ (0, common_1.Get)('status'),
96
+ __metadata("design:type", Function),
97
+ __metadata("design:paramtypes", []),
98
+ __metadata("design:returntype", Promise)
99
+ ], AgentControlController.prototype, "getAgentRuntimeStatus", null);
100
+ __decorate([
101
+ (0, common_1.Post)('start'),
102
+ __metadata("design:type", Function),
103
+ __metadata("design:paramtypes", []),
104
+ __metadata("design:returntype", Promise)
105
+ ], AgentControlController.prototype, "startAgent", null);
106
+ __decorate([
107
+ (0, common_1.Post)('stop'),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", []),
110
+ __metadata("design:returntype", Promise)
111
+ ], AgentControlController.prototype, "stopAgent", null);
112
+ __decorate([
113
+ (0, common_1.Post)('restart'),
114
+ __param(0, (0, common_1.Body)()),
115
+ __metadata("design:type", Function),
116
+ __metadata("design:paramtypes", [Object]),
117
+ __metadata("design:returntype", Promise)
118
+ ], AgentControlController.prototype, "restartAgent", null);
119
+ exports.AgentControlController = AgentControlController = __decorate([
120
+ (0, common_1.Controller)(),
121
+ __metadata("design:paramtypes", [config_service_1.ConfigAgentService])
122
+ ], AgentControlController);
123
+ //# sourceMappingURL=agent-control.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-control.controller.js","sourceRoot":"","sources":["../../../../../src/api/agent-control.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare class ApiModule {
2
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ApiModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const profiles_controller_1 = require("./profiles.controller");
13
+ const services_controller_1 = require("./services.controller");
14
+ const status_controller_1 = require("./status.controller");
15
+ const health_controller_1 = require("./health.controller");
16
+ const machine_controller_1 = require("./machine.controller");
17
+ const metrics_controller_1 = require("./metrics.controller");
18
+ const network_controller_1 = require("./network.controller");
19
+ const logs_controller_1 = require("./logs.controller");
20
+ const agent_control_controller_1 = require("./agent-control.controller");
21
+ const api_service_1 = require("../agent/services/api.service");
22
+ const services_1 = require("../agent/services");
23
+ let ApiModule = class ApiModule {
24
+ };
25
+ exports.ApiModule = ApiModule;
26
+ exports.ApiModule = ApiModule = __decorate([
27
+ (0, common_1.Module)({
28
+ imports: [
29
+ config_1.ConfigModule.forRoot({
30
+ isGlobal: true,
31
+ envFilePath: ['.env.local', '.env'],
32
+ }),
33
+ ],
34
+ providers: [
35
+ api_service_1.ApiService,
36
+ services_1.ConfigAgentService,
37
+ services_1.DockerService,
38
+ services_1.DockerEventService,
39
+ services_1.EventService,
40
+ services_1.LogService,
41
+ services_1.MachineService,
42
+ services_1.ProfileService,
43
+ services_1.VolumeSyncService,
44
+ services_1.VolumeBackupService,
45
+ services_1.WebSocketClientService,
46
+ services_1.EventWebSocketClientService,
47
+ services_1.NebulaService,
48
+ ],
49
+ controllers: [
50
+ profiles_controller_1.ProfilesController,
51
+ services_controller_1.ServicesController,
52
+ status_controller_1.StatusController,
53
+ health_controller_1.HealthController,
54
+ machine_controller_1.MachineController,
55
+ metrics_controller_1.MetricsController,
56
+ network_controller_1.NetworkController,
57
+ logs_controller_1.LogsController,
58
+ agent_control_controller_1.AgentControlController,
59
+ ],
60
+ })
61
+ ], ApiModule);
62
+ //# sourceMappingURL=api.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.module.js","sourceRoot":"","sources":["../../../../../src/api/api.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,2CAA8C;AAE9C,+DAA2D;AAC3D,+DAA2D;AAC3D,2DAAuD;AACvD,2DAAuD;AACvD,6DAAyD;AACzD,6DAAyD;AACzD,6DAAyD;AACzD,uDAAmD;AACnD,yEAAoE;AACpE,+DAA2D;AAC3D,gDAAiQ;AAsC1P,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IApCrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YAEP,qBAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC;aACpC,CAAC;SAEH;QACD,SAAS,EAAC;YACR,wBAAU;YACV,6BAAkB;YAClB,wBAAa;YACb,6BAAkB;YAClB,uBAAY;YACZ,qBAAU;YACV,yBAAc;YACd,yBAAc;YACd,4BAAiB;YACjB,8BAAmB;YACnB,iCAAsB;YACtB,sCAA2B;YAC3B,wBAAa;SACd;QACD,WAAW,EAAE;YACX,wCAAkB;YAClB,wCAAkB;YAClB,oCAAgB;YAChB,oCAAgB;YAChB,sCAAiB;YACjB,sCAAiB;YACjB,sCAAiB;YACjB,gCAAc;YACd,iDAAsB;SACvB;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -0,0 +1,9 @@
1
+ export declare class HealthController {
2
+ health(): Promise<{
3
+ status: string;
4
+ pid: number;
5
+ uptime_seconds: number;
6
+ hostname: string;
7
+ timestamp: string;
8
+ }>;
9
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HealthController = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const os = require("os");
15
+ let HealthController = class HealthController {
16
+ async health() {
17
+ return {
18
+ status: 'ok',
19
+ pid: process.pid,
20
+ uptime_seconds: Math.floor(process.uptime()),
21
+ hostname: os.hostname(),
22
+ timestamp: new Date().toISOString(),
23
+ };
24
+ }
25
+ };
26
+ exports.HealthController = HealthController;
27
+ __decorate([
28
+ (0, common_1.Get)('health'),
29
+ __metadata("design:type", Function),
30
+ __metadata("design:paramtypes", []),
31
+ __metadata("design:returntype", Promise)
32
+ ], HealthController.prototype, "health", null);
33
+ exports.HealthController = HealthController = __decorate([
34
+ (0, common_1.Controller)()
35
+ ], HealthController);
36
+ //# sourceMappingURL=health.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../../../../src/api/health.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AAGlB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAErB,AAAN,KAAK,CAAC,MAAM;QACV,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5C,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AAXY,4CAAgB;AAErB;IADL,IAAA,YAAG,EAAC,QAAQ,CAAC;;;;8CASb;2BAVU,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;GACA,gBAAgB,CAW5B"}
@@ -0,0 +1,11 @@
1
+ import { ConfigAgentService } from '../agent/services/config.service';
2
+ export declare class LogsController {
3
+ private readonly configService;
4
+ constructor(configService: ConfigAgentService);
5
+ getLogs(limit?: string): Promise<{
6
+ file: string;
7
+ entries: {
8
+ line: string;
9
+ }[];
10
+ }>;
11
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LogsController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const fs = require("fs-extra");
18
+ const config_service_1 = require("../agent/services/config.service");
19
+ let LogsController = class LogsController {
20
+ constructor(configService) {
21
+ this.configService = configService;
22
+ }
23
+ async getLogs(limit) {
24
+ const filePath = this.configService.logFilePath;
25
+ const maxLines = Math.min(parseInt(limit || '200', 10) || 200, 2000);
26
+ if (!(await fs.pathExists(filePath))) {
27
+ return { entries: [], file: filePath };
28
+ }
29
+ const content = await fs.readFile(filePath, 'utf-8');
30
+ const lines = content.split('\n').filter(Boolean);
31
+ const tail = lines.slice(-maxLines);
32
+ return {
33
+ file: filePath,
34
+ entries: tail.map((line) => ({ line })),
35
+ };
36
+ }
37
+ };
38
+ exports.LogsController = LogsController;
39
+ __decorate([
40
+ (0, common_1.Get)('logs'),
41
+ __param(0, (0, common_1.Query)('limit')),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", [String]),
44
+ __metadata("design:returntype", Promise)
45
+ ], LogsController.prototype, "getLogs", null);
46
+ exports.LogsController = LogsController = __decorate([
47
+ (0, common_1.Controller)(),
48
+ __metadata("design:paramtypes", [config_service_1.ConfigAgentService])
49
+ ], LogsController);
50
+ //# sourceMappingURL=logs.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.controller.js","sourceRoot":"","sources":["../../../../../src/api/logs.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,+BAA+B;AAC/B,qEAAsE;AAG/D,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,aAAiC;QAAjC,kBAAa,GAAb,aAAa,CAAoB;IAAG,CAAC;IAG5D,AAAN,KAAK,CAAC,OAAO,CAAiB,KAAc;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;QAErE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEpC,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,wCAAc;AAInB;IADL,IAAA,YAAG,EAAC,MAAM,CAAC;IACG,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;;;;6CAgB5B;yBApBU,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEiC,mCAAkB;GADnD,cAAc,CAqB1B"}
@@ -0,0 +1,21 @@
1
+ export declare class MachineController {
2
+ getMachine(): Promise<{
3
+ os: string;
4
+ hostname: string;
5
+ arch: string;
6
+ platform: NodeJS.Platform;
7
+ release: string;
8
+ cpu: {
9
+ model: string;
10
+ cores: number;
11
+ };
12
+ memory: {
13
+ total_bytes: number;
14
+ };
15
+ agent: {
16
+ version: string;
17
+ pid: number;
18
+ uptime_seconds: number;
19
+ };
20
+ }>;
21
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MachineController = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const os = require("os");
15
+ let MachineController = class MachineController {
16
+ async getMachine() {
17
+ return {
18
+ os: `${os.platform()} ${os.release()}`,
19
+ hostname: os.hostname(),
20
+ arch: os.arch(),
21
+ platform: os.platform(),
22
+ release: os.release(),
23
+ cpu: {
24
+ model: os.cpus()?.[0]?.model || 'Unknown',
25
+ cores: os.cpus()?.length || 0,
26
+ },
27
+ memory: {
28
+ total_bytes: os.totalmem(),
29
+ },
30
+ agent: {
31
+ version: process.env.npm_package_version || 'unknown',
32
+ pid: process.pid,
33
+ uptime_seconds: Math.floor(process.uptime()),
34
+ },
35
+ };
36
+ }
37
+ };
38
+ exports.MachineController = MachineController;
39
+ __decorate([
40
+ (0, common_1.Get)('machine'),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", []),
43
+ __metadata("design:returntype", Promise)
44
+ ], MachineController.prototype, "getMachine", null);
45
+ exports.MachineController = MachineController = __decorate([
46
+ (0, common_1.Controller)()
47
+ ], MachineController);
48
+ //# sourceMappingURL=machine.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine.controller.js","sourceRoot":"","sources":["../../../../../src/api/machine.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AAGlB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,UAAU;QACd,OAAO;YACL,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YACtC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;YACf,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;YACrB,GAAG,EAAE;gBACH,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS;gBACzC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;aAC9B;YACD,MAAM,EAAE;gBACN,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE;aAC3B;YACD,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,SAAS;gBACrD,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;aAC7C;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAvBY,8CAAiB;AAEtB;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;;;;mDAqBd;4BAtBU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAuB7B"}
@@ -0,0 +1,17 @@
1
+ export declare class MetricsController {
2
+ getMetrics(): Promise<{
3
+ cpu: {
4
+ usage_percent: number;
5
+ };
6
+ memory: {
7
+ usage_percent: number;
8
+ used_bytes: number;
9
+ total_bytes: number;
10
+ };
11
+ network: {
12
+ rx_bytes: any;
13
+ tx_bytes: any;
14
+ };
15
+ timestamp: string;
16
+ }>;
17
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MetricsController = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const os = require("os");
15
+ let MetricsController = class MetricsController {
16
+ async getMetrics() {
17
+ const cpus = os.cpus();
18
+ const loadAvg = os.loadavg();
19
+ const cpuUsage = Math.min(100, (loadAvg[0] / Math.max(cpus.length, 1)) * 100);
20
+ const totalMem = os.totalmem();
21
+ const freeMem = os.freemem();
22
+ const usedMem = totalMem - freeMem;
23
+ return {
24
+ cpu: { usage_percent: Math.round(cpuUsage) },
25
+ memory: {
26
+ usage_percent: Math.round((usedMem / totalMem) * 100),
27
+ used_bytes: usedMem,
28
+ total_bytes: totalMem,
29
+ },
30
+ network: {
31
+ rx_bytes: null,
32
+ tx_bytes: null,
33
+ },
34
+ timestamp: new Date().toISOString(),
35
+ };
36
+ }
37
+ };
38
+ exports.MetricsController = MetricsController;
39
+ __decorate([
40
+ (0, common_1.Get)('metrics'),
41
+ __metadata("design:type", Function),
42
+ __metadata("design:paramtypes", []),
43
+ __metadata("design:returntype", Promise)
44
+ ], MetricsController.prototype, "getMetrics", null);
45
+ exports.MetricsController = MetricsController = __decorate([
46
+ (0, common_1.Controller)()
47
+ ], MetricsController);
48
+ //# sourceMappingURL=metrics.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.controller.js","sourceRoot":"","sources":["../../../../../src/api/metrics.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AAGlB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAEtB,AAAN,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;QAGnC,OAAO;YACL,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC5C,MAAM,EAAE;gBACN,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC;gBACrD,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,QAAQ;aACtB;YACD,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAA;AA1BY,8CAAiB;AAEtB;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;;;;mDAwBd;4BAzBU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CA0B7B"}
@@ -0,0 +1,15 @@
1
+ import { NebulaService } from '../agent/services/nebula.service';
2
+ export declare class NetworkController {
3
+ private readonly nebulaService;
4
+ constructor(nebulaService: NebulaService);
5
+ getNetwork(): Promise<{
6
+ nebula_ip: string;
7
+ tailscale_ip: any;
8
+ public_ip: any;
9
+ local_ips: {
10
+ name: string;
11
+ address: string;
12
+ family: string;
13
+ }[];
14
+ }>;
15
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NetworkController = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const os = require("os");
15
+ const nebula_service_1 = require("../agent/services/nebula.service");
16
+ let NetworkController = class NetworkController {
17
+ constructor(nebulaService) {
18
+ this.nebulaService = nebulaService;
19
+ }
20
+ async getNetwork() {
21
+ const interfaces = os.networkInterfaces();
22
+ const localIps = [];
23
+ for (const [name, addrs] of Object.entries(interfaces)) {
24
+ for (const addr of addrs || []) {
25
+ if (addr.internal)
26
+ continue;
27
+ localIps.push({ name, address: addr.address, family: addr.family });
28
+ }
29
+ }
30
+ const nebulaIp = await this.nebulaService.getNebulaIP();
31
+ return {
32
+ nebula_ip: nebulaIp,
33
+ tailscale_ip: null,
34
+ public_ip: null,
35
+ local_ips: localIps,
36
+ };
37
+ }
38
+ };
39
+ exports.NetworkController = NetworkController;
40
+ __decorate([
41
+ (0, common_1.Get)('network'),
42
+ __metadata("design:type", Function),
43
+ __metadata("design:paramtypes", []),
44
+ __metadata("design:returntype", Promise)
45
+ ], NetworkController.prototype, "getNetwork", null);
46
+ exports.NetworkController = NetworkController = __decorate([
47
+ (0, common_1.Controller)(),
48
+ __metadata("design:paramtypes", [nebula_service_1.NebulaService])
49
+ ], NetworkController);
50
+ //# sourceMappingURL=network.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.controller.js","sourceRoot":"","sources":["../../../../../src/api/network.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiD;AACjD,yBAAyB;AACzB,qEAAiE;AAG1D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAGvD,AAAN,KAAK,CAAC,UAAU;QACd,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAA6D,EAAE,CAAC;QAE9E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAGxD,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,QAAQ;SACpB,CAAC;IACJ,CAAC;CACF,CAAA;AAzBY,8CAAiB;AAItB;IADL,IAAA,YAAG,EAAC,SAAS,CAAC;;;;mDAqBd;4BAxBU,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEiC,8BAAa;GAD9C,iBAAiB,CAyB7B"}
@@ -0,0 +1,16 @@
1
+ import { ProfileService } from '../agent/services/profile.service';
2
+ export declare class ProfilesController {
3
+ private readonly profileService;
4
+ constructor(profileService: ProfileService);
5
+ getProfiles(): Promise<{
6
+ key: string;
7
+ workspace_id: string;
8
+ services?: Array<{
9
+ name: string;
10
+ key: string;
11
+ }>;
12
+ }[]>;
13
+ getProfile(key: string): Promise<any>;
14
+ startProfile(key: string, body: any): Promise<void>;
15
+ stopProfile(key: string, body: any): Promise<void>;
16
+ }