buildhive-agent 1.0.0-beta.1
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 +166 -0
- package/dist/__tests__/fakes/FakeDockerManager.d.ts +115 -0
- package/dist/__tests__/fakes/FakeDockerManager.d.ts.map +1 -0
- package/dist/__tests__/fakes/FakeDockerManager.js +203 -0
- package/dist/__tests__/fakes/FakeDockerManager.js.map +1 -0
- package/dist/acceptanceChecker.d.ts +26 -0
- package/dist/acceptanceChecker.d.ts.map +1 -0
- package/dist/acceptanceChecker.js +64 -0
- package/dist/acceptanceChecker.js.map +1 -0
- package/dist/advancedAgent.d.ts +161 -0
- package/dist/advancedAgent.d.ts.map +1 -0
- package/dist/advancedAgent.js +604 -0
- package/dist/advancedAgent.js.map +1 -0
- package/dist/agent.d.ts +101 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +490 -0
- package/dist/agent.js.map +1 -0
- package/dist/api/jobStatusApi.d.ts +88 -0
- package/dist/api/jobStatusApi.d.ts.map +1 -0
- package/dist/api/jobStatusApi.js +240 -0
- package/dist/api/jobStatusApi.js.map +1 -0
- package/dist/autoUpdater.d.ts +135 -0
- package/dist/autoUpdater.d.ts.map +1 -0
- package/dist/autoUpdater.js +494 -0
- package/dist/autoUpdater.js.map +1 -0
- package/dist/cacheManager.d.ts +108 -0
- package/dist/cacheManager.d.ts.map +1 -0
- package/dist/cacheManager.js +300 -0
- package/dist/cacheManager.js.map +1 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +749 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/index.d.ts +30 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +35 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +45 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +269 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +193 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +90 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/validation.d.ts +28 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +397 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/docker.d.ts +96 -0
- package/dist/docker.d.ts.map +1 -0
- package/dist/docker.js +411 -0
- package/dist/docker.js.map +1 -0
- package/dist/enhancedJobExecutor.d.ts +81 -0
- package/dist/enhancedJobExecutor.d.ts.map +1 -0
- package/dist/enhancedJobExecutor.js +223 -0
- package/dist/enhancedJobExecutor.js.map +1 -0
- package/dist/executors/executorFactory.d.ts +46 -0
- package/dist/executors/executorFactory.d.ts.map +1 -0
- package/dist/executors/executorFactory.js +80 -0
- package/dist/executors/executorFactory.js.map +1 -0
- package/dist/executors/index.d.ts +7 -0
- package/dist/executors/index.d.ts.map +1 -0
- package/dist/executors/index.js +6 -0
- package/dist/executors/index.js.map +1 -0
- package/dist/executors/nativeExecutor.d.ts +60 -0
- package/dist/executors/nativeExecutor.d.ts.map +1 -0
- package/dist/executors/nativeExecutor.js +311 -0
- package/dist/executors/nativeExecutor.js.map +1 -0
- package/dist/executors/types.d.ts +38 -0
- package/dist/executors/types.d.ts.map +1 -0
- package/dist/executors/types.js +9 -0
- package/dist/executors/types.js.map +1 -0
- package/dist/healthMonitor.d.ts +213 -0
- package/dist/healthMonitor.d.ts.map +1 -0
- package/dist/healthMonitor.js +547 -0
- package/dist/healthMonitor.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/jobExecutor.d.ts +117 -0
- package/dist/jobExecutor.d.ts.map +1 -0
- package/dist/jobExecutor.js +458 -0
- package/dist/jobExecutor.js.map +1 -0
- package/dist/lifecycleExecutor.d.ts +54 -0
- package/dist/lifecycleExecutor.d.ts.map +1 -0
- package/dist/lifecycleExecutor.js +230 -0
- package/dist/lifecycleExecutor.js.map +1 -0
- package/dist/main.d.ts +15 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +77 -0
- package/dist/main.js.map +1 -0
- package/dist/metrics.d.ts +103 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +360 -0
- package/dist/metrics.js.map +1 -0
- package/dist/recipes/builtinRecipes.d.ts +11 -0
- package/dist/recipes/builtinRecipes.d.ts.map +1 -0
- package/dist/recipes/builtinRecipes.js +688 -0
- package/dist/recipes/builtinRecipes.js.map +1 -0
- package/dist/recipes/index.d.ts +18 -0
- package/dist/recipes/index.d.ts.map +1 -0
- package/dist/recipes/index.js +17 -0
- package/dist/recipes/index.js.map +1 -0
- package/dist/recipes/recipeRegistry.d.ts +49 -0
- package/dist/recipes/recipeRegistry.d.ts.map +1 -0
- package/dist/recipes/recipeRegistry.js +264 -0
- package/dist/recipes/recipeRegistry.js.map +1 -0
- package/dist/recipes/types.d.ts +116 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +10 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/recovery.d.ts +133 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +299 -0
- package/dist/recovery.js.map +1 -0
- package/dist/registration/apiClient.d.ts +44 -0
- package/dist/registration/apiClient.d.ts.map +1 -0
- package/dist/registration/apiClient.js +149 -0
- package/dist/registration/apiClient.js.map +1 -0
- package/dist/registration/index.d.ts +41 -0
- package/dist/registration/index.d.ts.map +1 -0
- package/dist/registration/index.js +141 -0
- package/dist/registration/index.js.map +1 -0
- package/dist/registration/machineId.d.ts +30 -0
- package/dist/registration/machineId.d.ts.map +1 -0
- package/dist/registration/machineId.js +89 -0
- package/dist/registration/machineId.js.map +1 -0
- package/dist/registration/types.d.ts +32 -0
- package/dist/registration/types.d.ts.map +1 -0
- package/dist/registration/types.js +9 -0
- package/dist/registration/types.js.map +1 -0
- package/dist/resourceGovernor.d.ts +57 -0
- package/dist/resourceGovernor.d.ts.map +1 -0
- package/dist/resourceGovernor.js +125 -0
- package/dist/resourceGovernor.js.map +1 -0
- package/dist/security/secretManager.d.ts +107 -0
- package/dist/security/secretManager.d.ts.map +1 -0
- package/dist/security/secretManager.js +361 -0
- package/dist/security/secretManager.js.map +1 -0
- package/dist/security.d.ts +134 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +470 -0
- package/dist/security.js.map +1 -0
- package/dist/storage/artifactUploader.d.ts +155 -0
- package/dist/storage/artifactUploader.d.ts.map +1 -0
- package/dist/storage/artifactUploader.js +554 -0
- package/dist/storage/artifactUploader.js.map +1 -0
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/capabilities.d.ts +23 -0
- package/dist/utils/capabilities.d.ts.map +1 -0
- package/dist/utils/capabilities.js +200 -0
- package/dist/utils/capabilities.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +188 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/sdkScanner.d.ts +105 -0
- package/dist/utils/sdkScanner.d.ts.map +1 -0
- package/dist/utils/sdkScanner.js +459 -0
- package/dist/utils/sdkScanner.js.map +1 -0
- package/dist/websocketClient.d.ts +154 -0
- package/dist/websocketClient.d.ts.map +1 -0
- package/dist/websocketClient.js +422 -0
- package/dist/websocketClient.js.map +1 -0
- package/package.json +64 -0
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metrics Collector - System metrics collection and reporting
|
|
3
|
+
*
|
|
4
|
+
* Collects system performance metrics including CPU, memory, disk usage,
|
|
5
|
+
* and network statistics for monitoring and load balancing decisions.
|
|
6
|
+
*
|
|
7
|
+
* Requirements: 1.5, 1.6, 5.1, 5.2
|
|
8
|
+
*/
|
|
9
|
+
import { createLogger } from './utils/logger.js';
|
|
10
|
+
import { promises as fs } from 'fs';
|
|
11
|
+
import { exec } from 'child_process';
|
|
12
|
+
import { promisify } from 'util';
|
|
13
|
+
import os from 'os';
|
|
14
|
+
const execAsync = promisify(exec);
|
|
15
|
+
const logger = createLogger('metrics');
|
|
16
|
+
export class MetricsCollector {
|
|
17
|
+
config;
|
|
18
|
+
isRunning = false;
|
|
19
|
+
metricsHistory = [];
|
|
20
|
+
maxHistorySize = 100;
|
|
21
|
+
lastNetworkStats = null;
|
|
22
|
+
jobStats = {
|
|
23
|
+
active: 0,
|
|
24
|
+
queued: 0,
|
|
25
|
+
completed: 0,
|
|
26
|
+
failed: 0
|
|
27
|
+
};
|
|
28
|
+
constructor(config) {
|
|
29
|
+
this.config = config;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Start metrics collection
|
|
33
|
+
*/
|
|
34
|
+
async start() {
|
|
35
|
+
if (this.isRunning) {
|
|
36
|
+
logger.warn('Metrics collector is already running');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
logger.info('Starting metrics collector');
|
|
40
|
+
this.isRunning = true;
|
|
41
|
+
// Initialize network stats
|
|
42
|
+
await this.initializeNetworkStats();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Stop metrics collection
|
|
46
|
+
*/
|
|
47
|
+
async stop() {
|
|
48
|
+
if (!this.isRunning) {
|
|
49
|
+
logger.warn('Metrics collector is not running');
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
logger.info('Stopping metrics collector');
|
|
53
|
+
this.isRunning = false;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get current system metrics
|
|
57
|
+
*/
|
|
58
|
+
async getCurrentMetrics() {
|
|
59
|
+
const metrics = {
|
|
60
|
+
cpuUsage: await this.getCpuUsage(),
|
|
61
|
+
memoryUsage: await this.getMemoryUsage(),
|
|
62
|
+
diskUsage: await this.getDiskUsage(),
|
|
63
|
+
networkIn: 0,
|
|
64
|
+
networkOut: 0,
|
|
65
|
+
activeJobs: this.jobStats.active,
|
|
66
|
+
queuedJobs: this.jobStats.queued,
|
|
67
|
+
completedJobs: this.jobStats.completed,
|
|
68
|
+
failedJobs: this.jobStats.failed,
|
|
69
|
+
timestamp: new Date()
|
|
70
|
+
};
|
|
71
|
+
// Get network stats
|
|
72
|
+
const networkStats = await this.getNetworkStats();
|
|
73
|
+
metrics.networkIn = networkStats.bytesIn;
|
|
74
|
+
metrics.networkOut = networkStats.bytesOut;
|
|
75
|
+
// Add to history
|
|
76
|
+
this.addToHistory(metrics);
|
|
77
|
+
return metrics;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get metrics history
|
|
81
|
+
*/
|
|
82
|
+
getMetricsHistory() {
|
|
83
|
+
return [...this.metricsHistory];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Update job statistics
|
|
87
|
+
*/
|
|
88
|
+
updateJobStats(stats) {
|
|
89
|
+
Object.assign(this.jobStats, stats);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get CPU usage percentage
|
|
93
|
+
*/
|
|
94
|
+
async getCpuUsage() {
|
|
95
|
+
try {
|
|
96
|
+
const cpus = os.cpus();
|
|
97
|
+
// Calculate CPU usage over a short interval
|
|
98
|
+
const startMeasure = this.getCpuTimes();
|
|
99
|
+
// Wait 100ms for measurement
|
|
100
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
101
|
+
const endMeasure = this.getCpuTimes();
|
|
102
|
+
const idleDiff = endMeasure.idle - startMeasure.idle;
|
|
103
|
+
const totalDiff = endMeasure.total - startMeasure.total;
|
|
104
|
+
const usage = 100 - (100 * idleDiff / totalDiff);
|
|
105
|
+
return Math.max(0, Math.min(100, usage));
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
logger.error('Failed to get CPU usage:', error);
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get CPU times for usage calculation
|
|
114
|
+
*/
|
|
115
|
+
getCpuTimes() {
|
|
116
|
+
const cpus = os.cpus();
|
|
117
|
+
let idle = 0;
|
|
118
|
+
let total = 0;
|
|
119
|
+
for (const cpu of cpus) {
|
|
120
|
+
for (const type of Object.keys(cpu.times)) {
|
|
121
|
+
total += cpu.times[type];
|
|
122
|
+
}
|
|
123
|
+
idle += cpu.times.idle;
|
|
124
|
+
}
|
|
125
|
+
return { idle, total };
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get memory usage percentage
|
|
129
|
+
*/
|
|
130
|
+
async getMemoryUsage() {
|
|
131
|
+
try {
|
|
132
|
+
const totalMemory = os.totalmem();
|
|
133
|
+
const freeMemory = os.freemem();
|
|
134
|
+
const usedMemory = totalMemory - freeMemory;
|
|
135
|
+
return (usedMemory / totalMemory) * 100;
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
logger.error('Failed to get memory usage:', error);
|
|
139
|
+
return 0;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get disk usage percentage
|
|
144
|
+
*/
|
|
145
|
+
async getDiskUsage() {
|
|
146
|
+
try {
|
|
147
|
+
const platform = os.platform();
|
|
148
|
+
if (platform === 'win32') {
|
|
149
|
+
return await this.getDiskUsageWindows();
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
return await this.getDiskUsageUnix();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
logger.error('Failed to get disk usage:', error);
|
|
157
|
+
return 0;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Get disk usage on Unix-like systems
|
|
162
|
+
*/
|
|
163
|
+
async getDiskUsageUnix() {
|
|
164
|
+
try {
|
|
165
|
+
const { stdout } = await execAsync('df -h / | tail -1');
|
|
166
|
+
const parts = stdout.trim().split(/\s+/);
|
|
167
|
+
if (parts.length >= 5) {
|
|
168
|
+
const usageStr = parts[4];
|
|
169
|
+
const usage = parseInt(usageStr.replace('%', ''));
|
|
170
|
+
return isNaN(usage) ? 0 : usage;
|
|
171
|
+
}
|
|
172
|
+
return 0;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
logger.error('Failed to get Unix disk usage:', error);
|
|
176
|
+
return 0;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get disk usage on Windows
|
|
181
|
+
*/
|
|
182
|
+
async getDiskUsageWindows() {
|
|
183
|
+
try {
|
|
184
|
+
const { stdout } = await execAsync('wmic logicaldisk where size!=0 get size,freespace,caption');
|
|
185
|
+
const lines = stdout.trim().split('\n').slice(1);
|
|
186
|
+
let totalSize = 0;
|
|
187
|
+
let totalFree = 0;
|
|
188
|
+
for (const line of lines) {
|
|
189
|
+
const parts = line.trim().split(/\s+/);
|
|
190
|
+
if (parts.length >= 3) {
|
|
191
|
+
const freeSpace = parseInt(parts[1]);
|
|
192
|
+
const size = parseInt(parts[2]);
|
|
193
|
+
if (!isNaN(freeSpace) && !isNaN(size)) {
|
|
194
|
+
totalFree += freeSpace;
|
|
195
|
+
totalSize += size;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (totalSize > 0) {
|
|
200
|
+
return ((totalSize - totalFree) / totalSize) * 100;
|
|
201
|
+
}
|
|
202
|
+
return 0;
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
logger.error('Failed to get Windows disk usage:', error);
|
|
206
|
+
return 0;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Initialize network statistics
|
|
211
|
+
*/
|
|
212
|
+
async initializeNetworkStats() {
|
|
213
|
+
try {
|
|
214
|
+
const stats = await this.readNetworkStats();
|
|
215
|
+
this.lastNetworkStats = {
|
|
216
|
+
bytesIn: stats.bytesIn,
|
|
217
|
+
bytesOut: stats.bytesOut,
|
|
218
|
+
timestamp: Date.now()
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
logger.error('Failed to initialize network stats:', error);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Get network statistics
|
|
227
|
+
*/
|
|
228
|
+
async getNetworkStats() {
|
|
229
|
+
try {
|
|
230
|
+
const currentStats = await this.readNetworkStats();
|
|
231
|
+
const currentTime = Date.now();
|
|
232
|
+
if (!this.lastNetworkStats) {
|
|
233
|
+
this.lastNetworkStats = {
|
|
234
|
+
bytesIn: currentStats.bytesIn,
|
|
235
|
+
bytesOut: currentStats.bytesOut,
|
|
236
|
+
timestamp: currentTime
|
|
237
|
+
};
|
|
238
|
+
return { bytesIn: 0, bytesOut: 0 };
|
|
239
|
+
}
|
|
240
|
+
const timeDiff = (currentTime - this.lastNetworkStats.timestamp) / 1000; // seconds
|
|
241
|
+
const bytesInDiff = currentStats.bytesIn - this.lastNetworkStats.bytesIn;
|
|
242
|
+
const bytesOutDiff = currentStats.bytesOut - this.lastNetworkStats.bytesOut;
|
|
243
|
+
// Calculate bytes per second
|
|
244
|
+
const bytesInPerSec = timeDiff > 0 ? bytesInDiff / timeDiff : 0;
|
|
245
|
+
const bytesOutPerSec = timeDiff > 0 ? bytesOutDiff / timeDiff : 0;
|
|
246
|
+
// Update last stats
|
|
247
|
+
this.lastNetworkStats = {
|
|
248
|
+
bytesIn: currentStats.bytesIn,
|
|
249
|
+
bytesOut: currentStats.bytesOut,
|
|
250
|
+
timestamp: currentTime
|
|
251
|
+
};
|
|
252
|
+
return {
|
|
253
|
+
bytesIn: Math.max(0, bytesInPerSec),
|
|
254
|
+
bytesOut: Math.max(0, bytesOutPerSec)
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
logger.error('Failed to get network stats:', error);
|
|
259
|
+
return { bytesIn: 0, bytesOut: 0 };
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Read network statistics from system
|
|
264
|
+
*/
|
|
265
|
+
async readNetworkStats() {
|
|
266
|
+
const platform = os.platform();
|
|
267
|
+
if (platform === 'linux') {
|
|
268
|
+
return await this.readNetworkStatsLinux();
|
|
269
|
+
}
|
|
270
|
+
else if (platform === 'darwin') {
|
|
271
|
+
return await this.readNetworkStatsMacOS();
|
|
272
|
+
}
|
|
273
|
+
else if (platform === 'win32') {
|
|
274
|
+
return await this.readNetworkStatsWindows();
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
return { bytesIn: 0, bytesOut: 0 };
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Read network stats on Linux
|
|
282
|
+
*/
|
|
283
|
+
async readNetworkStatsLinux() {
|
|
284
|
+
try {
|
|
285
|
+
const data = await fs.readFile('/proc/net/dev', 'utf8');
|
|
286
|
+
const lines = data.split('\n').slice(2); // Skip header lines
|
|
287
|
+
let totalBytesIn = 0;
|
|
288
|
+
let totalBytesOut = 0;
|
|
289
|
+
for (const line of lines) {
|
|
290
|
+
const parts = line.trim().split(/\s+/);
|
|
291
|
+
if (parts.length >= 10 && !parts[0].includes('lo:')) { // Skip loopback
|
|
292
|
+
totalBytesIn += parseInt(parts[1]) || 0;
|
|
293
|
+
totalBytesOut += parseInt(parts[9]) || 0;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return { bytesIn: totalBytesIn, bytesOut: totalBytesOut };
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
logger.error('Failed to read Linux network stats:', error);
|
|
300
|
+
return { bytesIn: 0, bytesOut: 0 };
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Read network stats on macOS
|
|
305
|
+
*/
|
|
306
|
+
async readNetworkStatsMacOS() {
|
|
307
|
+
try {
|
|
308
|
+
const { stdout } = await execAsync('netstat -ibn | grep -v lo0');
|
|
309
|
+
const lines = stdout.trim().split('\n');
|
|
310
|
+
let totalBytesIn = 0;
|
|
311
|
+
let totalBytesOut = 0;
|
|
312
|
+
for (const line of lines) {
|
|
313
|
+
const parts = line.trim().split(/\s+/);
|
|
314
|
+
if (parts.length >= 7) {
|
|
315
|
+
totalBytesIn += parseInt(parts[6]) || 0;
|
|
316
|
+
totalBytesOut += parseInt(parts[9]) || 0;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return { bytesIn: totalBytesIn, bytesOut: totalBytesOut };
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
logger.error('Failed to read macOS network stats:', error);
|
|
323
|
+
return { bytesIn: 0, bytesOut: 0 };
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Read network stats on Windows
|
|
328
|
+
*/
|
|
329
|
+
async readNetworkStatsWindows() {
|
|
330
|
+
try {
|
|
331
|
+
const { stdout } = await execAsync('wmic path Win32_NetworkAdapter where "NetConnectionStatus=2" get BytesReceivedPerSec,BytesSentPerSec /format:csv');
|
|
332
|
+
const lines = stdout.trim().split('\n').slice(1);
|
|
333
|
+
let totalBytesIn = 0;
|
|
334
|
+
let totalBytesOut = 0;
|
|
335
|
+
for (const line of lines) {
|
|
336
|
+
const parts = line.split(',');
|
|
337
|
+
if (parts.length >= 3) {
|
|
338
|
+
totalBytesIn += parseInt(parts[1]) || 0;
|
|
339
|
+
totalBytesOut += parseInt(parts[2]) || 0;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return { bytesIn: totalBytesIn, bytesOut: totalBytesOut };
|
|
343
|
+
}
|
|
344
|
+
catch (error) {
|
|
345
|
+
logger.error('Failed to read Windows network stats:', error);
|
|
346
|
+
return { bytesIn: 0, bytesOut: 0 };
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Add metrics to history
|
|
351
|
+
*/
|
|
352
|
+
addToHistory(metrics) {
|
|
353
|
+
this.metricsHistory.push(metrics);
|
|
354
|
+
// Keep only the last N metrics
|
|
355
|
+
if (this.metricsHistory.length > this.maxHistorySize) {
|
|
356
|
+
this.metricsHistory = this.metricsHistory.slice(-this.maxHistorySize);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in Recipe Definitions
|
|
3
|
+
*
|
|
4
|
+
* 15 production-ready recipes covering the most common CI ecosystems.
|
|
5
|
+
* Each recipe provides sensible defaults for detection, execution,
|
|
6
|
+
* caching, artifacts, and lifecycle hooks.
|
|
7
|
+
*/
|
|
8
|
+
import { Recipe } from './types.js';
|
|
9
|
+
/** All built-in recipes, keyed by name. */
|
|
10
|
+
export declare const BUILTIN_RECIPES: Recipe[];
|
|
11
|
+
//# sourceMappingURL=builtinRecipes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtinRecipes.d.ts","sourceRoot":"","sources":["../../src/recipes/builtinRecipes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAyqBpC,2CAA2C;AAC3C,eAAO,MAAM,eAAe,EAAE,MAAM,EAgBnC,CAAC"}
|