@auxiora/os-bridge 1.10.19 → 1.10.20
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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/resource-probe.d.ts +13 -0
- package/dist/resource-probe.d.ts.map +1 -0
- package/dist/resource-probe.js +203 -0
- package/dist/resource-probe.js.map +1 -0
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export type { Platform, ClipboardEntry, FileEvent, FileClassification, AppInfo, SystemState, OsBridgeConfig, } from './types.js';
|
|
1
|
+
export type { Platform, ClipboardEntry, FileEvent, FileClassification, AppInfo, SystemState, OsBridgeConfig, GpuInfo, ResourceSnapshot, MachineClass, MachineProfile, } from './types.js';
|
|
2
2
|
export { ClipboardMonitor } from './clipboard.js';
|
|
3
3
|
export { FileWatcher } from './file-watcher.js';
|
|
4
4
|
export { AppController } from './app-controller.js';
|
|
5
5
|
export { SystemStateMonitor } from './system-state.js';
|
|
6
|
+
export { ResourceProbe } from './resource-probe.js';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,OAAO,EACP,WAAW,EACX,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { ClipboardMonitor } from './clipboard.js';
|
|
|
2
2
|
export { FileWatcher } from './file-watcher.js';
|
|
3
3
|
export { AppController } from './app-controller.js';
|
|
4
4
|
export { SystemStateMonitor } from './system-state.js';
|
|
5
|
+
export { ResourceProbe } from './resource-probe.js';
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ResourceSnapshot, MachineProfile } from './types.js';
|
|
2
|
+
export declare class ResourceProbe {
|
|
3
|
+
private gpuCache;
|
|
4
|
+
private gpuCacheTtlMs;
|
|
5
|
+
probe(): Promise<ResourceSnapshot>;
|
|
6
|
+
classify(snapshot: ResourceSnapshot): MachineProfile;
|
|
7
|
+
safeSlots(snapshot: ResourceSnapshot, profile: MachineProfile): number;
|
|
8
|
+
private readMemory;
|
|
9
|
+
private readSwap;
|
|
10
|
+
private readGpu;
|
|
11
|
+
private readDisk;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=resource-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-probe.d.ts","sourceRoot":"","sources":["../src/resource-probe.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,cAAc,EAAE,MAAM,YAAY,CAAC;AAkB1F,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAA8D;IAC9E,OAAO,CAAC,aAAa,CAAU;IAEzB,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA6BxC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,cAAc;IAkCpD,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM;YAMxD,UAAU;YAsBV,QAAQ;YAwCR,OAAO;YAgDP,QAAQ;CAYvB"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { readFile, statfs } from 'node:fs/promises';
|
|
4
|
+
function execFilePromise(cmd, args) {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
execFile(cmd, args, { timeout: 5000 }, (error, stdout) => {
|
|
7
|
+
if (error) {
|
|
8
|
+
reject(error);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
resolve(stdout);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function bytesToMB(bytes) {
|
|
16
|
+
return Math.round(bytes / 1024 / 1024);
|
|
17
|
+
}
|
|
18
|
+
export class ResourceProbe {
|
|
19
|
+
gpuCache = null;
|
|
20
|
+
gpuCacheTtlMs = 60_000;
|
|
21
|
+
async probe() {
|
|
22
|
+
const [memory, swap, gpu, disk] = await Promise.all([
|
|
23
|
+
this.readMemory(),
|
|
24
|
+
this.readSwap(),
|
|
25
|
+
this.readGpu(),
|
|
26
|
+
this.readDisk(),
|
|
27
|
+
]);
|
|
28
|
+
const cpus = os.cpus();
|
|
29
|
+
const [loadAvg1m, loadAvg5m] = os.loadavg();
|
|
30
|
+
const cores = cpus.length;
|
|
31
|
+
const utilization = Math.min(1, Math.max(0, loadAvg1m / cores));
|
|
32
|
+
return {
|
|
33
|
+
cpu: {
|
|
34
|
+
cores,
|
|
35
|
+
model: cpus[0]?.model ?? 'unknown',
|
|
36
|
+
loadAvg1m,
|
|
37
|
+
loadAvg5m,
|
|
38
|
+
utilization,
|
|
39
|
+
},
|
|
40
|
+
memory,
|
|
41
|
+
swap,
|
|
42
|
+
gpu,
|
|
43
|
+
disk,
|
|
44
|
+
timestamp: Date.now(),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
classify(snapshot) {
|
|
48
|
+
const cores = snapshot.cpu.cores;
|
|
49
|
+
const ramMB = snapshot.memory.totalMB;
|
|
50
|
+
const hasGpu = snapshot.gpu !== null;
|
|
51
|
+
let machineClass;
|
|
52
|
+
let recommendedMaxAgents;
|
|
53
|
+
if (cores <= 2 || ramMB <= 2048) {
|
|
54
|
+
machineClass = 'minimal';
|
|
55
|
+
recommendedMaxAgents = 1;
|
|
56
|
+
}
|
|
57
|
+
else if (cores <= 4 && ramMB <= 8192) {
|
|
58
|
+
machineClass = 'light';
|
|
59
|
+
recommendedMaxAgents = 2;
|
|
60
|
+
}
|
|
61
|
+
else if (cores <= 8 && ramMB <= 16384) {
|
|
62
|
+
machineClass = 'standard';
|
|
63
|
+
recommendedMaxAgents = 3;
|
|
64
|
+
}
|
|
65
|
+
else if (cores <= 16 && ramMB <= 65536) {
|
|
66
|
+
machineClass = 'workstation';
|
|
67
|
+
recommendedMaxAgents = 5;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
machineClass = 'server';
|
|
71
|
+
recommendedMaxAgents = 8;
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
machineClass,
|
|
75
|
+
hasGpu,
|
|
76
|
+
recommendedMaxAgents,
|
|
77
|
+
cpuCeiling: 0.8,
|
|
78
|
+
ramCeiling: 0.8,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
safeSlots(snapshot, profile) {
|
|
82
|
+
const memSlots = Math.floor(snapshot.memory.availableMB / 512);
|
|
83
|
+
const cpuSlots = Math.floor((1 - snapshot.cpu.utilization) * snapshot.cpu.cores);
|
|
84
|
+
return Math.max(1, Math.min(profile.recommendedMaxAgents, memSlots, cpuSlots));
|
|
85
|
+
}
|
|
86
|
+
async readMemory() {
|
|
87
|
+
const totalMB = bytesToMB(os.totalmem());
|
|
88
|
+
const freeMB = bytesToMB(os.freemem());
|
|
89
|
+
let availableMB = freeMB;
|
|
90
|
+
if (os.platform() === 'linux') {
|
|
91
|
+
try {
|
|
92
|
+
const meminfo = await readFile('/proc/meminfo', 'utf-8');
|
|
93
|
+
const match = meminfo.match(/MemAvailable:\s+(\d+)\s+kB/);
|
|
94
|
+
if (match) {
|
|
95
|
+
availableMB = Math.round(Number(match[1]) / 1024);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// fall back to freemem
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const usedPercent = totalMB > 0 ? Math.round(((totalMB - availableMB) / totalMB) * 100) : 0;
|
|
103
|
+
return { totalMB, freeMB, availableMB, usedPercent };
|
|
104
|
+
}
|
|
105
|
+
async readSwap() {
|
|
106
|
+
const platform = os.platform();
|
|
107
|
+
if (platform === 'linux') {
|
|
108
|
+
try {
|
|
109
|
+
const meminfo = await readFile('/proc/meminfo', 'utf-8');
|
|
110
|
+
const totalMatch = meminfo.match(/SwapTotal:\s+(\d+)\s+kB/);
|
|
111
|
+
const freeMatch = meminfo.match(/SwapFree:\s+(\d+)\s+kB/);
|
|
112
|
+
if (totalMatch && freeMatch) {
|
|
113
|
+
const totalMB = Math.round(Number(totalMatch[1]) / 1024);
|
|
114
|
+
const freeMB = Math.round(Number(freeMatch[1]) / 1024);
|
|
115
|
+
const usedMB = totalMB - freeMB;
|
|
116
|
+
const usedPercent = totalMB > 0 ? Math.round((usedMB / totalMB) * 100) : 0;
|
|
117
|
+
return { totalMB, usedMB, usedPercent };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// fall through
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (platform === 'darwin') {
|
|
125
|
+
try {
|
|
126
|
+
const output = await execFilePromise('sysctl', ['vm.swapusage']);
|
|
127
|
+
// Format: "vm.swapusage: total = 2048.00M used = 512.00M free = 1536.00M ..."
|
|
128
|
+
const totalMatch = output.match(/total\s*=\s*([\d.]+)M/);
|
|
129
|
+
const usedMatch = output.match(/used\s*=\s*([\d.]+)M/);
|
|
130
|
+
if (totalMatch && usedMatch) {
|
|
131
|
+
const totalMB = Math.round(Number(totalMatch[1]));
|
|
132
|
+
const usedMB = Math.round(Number(usedMatch[1]));
|
|
133
|
+
const usedPercent = totalMB > 0 ? Math.round((usedMB / totalMB) * 100) : 0;
|
|
134
|
+
return { totalMB, usedMB, usedPercent };
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
// fall through
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return { totalMB: 0, usedMB: 0, usedPercent: 0 };
|
|
142
|
+
}
|
|
143
|
+
async readGpu() {
|
|
144
|
+
const now = Date.now();
|
|
145
|
+
if (this.gpuCache && now - this.gpuCache.timestamp < this.gpuCacheTtlMs) {
|
|
146
|
+
return this.gpuCache.result;
|
|
147
|
+
}
|
|
148
|
+
let result = null;
|
|
149
|
+
// Try NVIDIA first
|
|
150
|
+
try {
|
|
151
|
+
const output = await execFilePromise('nvidia-smi', [
|
|
152
|
+
'--query-gpu=name,memory.total,memory.used,utilization.gpu',
|
|
153
|
+
'--format=csv,noheader,nounits',
|
|
154
|
+
]);
|
|
155
|
+
const parts = output.trim().split(',').map((s) => s.trim());
|
|
156
|
+
if (parts.length >= 4) {
|
|
157
|
+
result = {
|
|
158
|
+
name: parts[0],
|
|
159
|
+
memoryTotalMB: Number(parts[1]),
|
|
160
|
+
memoryUsedMB: Number(parts[2]),
|
|
161
|
+
utilizationPercent: Number(parts[3]),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// Try AMD ROCm
|
|
167
|
+
try {
|
|
168
|
+
const output = await execFilePromise('rocm-smi', ['--showmeminfo', 'vram', '--showuse']);
|
|
169
|
+
// Parse ROCm output — best effort
|
|
170
|
+
const usedMatch = output.match(/Used\s*:\s*(\d+)/);
|
|
171
|
+
const totalMatch = output.match(/Total\s*:\s*(\d+)/);
|
|
172
|
+
const utilMatch = output.match(/GPU use\s*\(%\)\s*:\s*(\d+)/i);
|
|
173
|
+
if (totalMatch) {
|
|
174
|
+
result = {
|
|
175
|
+
name: 'AMD GPU',
|
|
176
|
+
memoryTotalMB: Math.round(Number(totalMatch[1]) / (1024 * 1024)),
|
|
177
|
+
memoryUsedMB: usedMatch ? Math.round(Number(usedMatch[1]) / (1024 * 1024)) : 0,
|
|
178
|
+
utilizationPercent: utilMatch ? Number(utilMatch[1]) : 0,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// No GPU available
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
this.gpuCache = { result, timestamp: now };
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
async readDisk() {
|
|
190
|
+
try {
|
|
191
|
+
const stats = await statfs(process.cwd());
|
|
192
|
+
const blockSize = stats.bsize;
|
|
193
|
+
const totalMB = bytesToMB(stats.blocks * blockSize);
|
|
194
|
+
const freeMB = bytesToMB(stats.bavail * blockSize);
|
|
195
|
+
const usedPercent = totalMB > 0 ? Math.round(((totalMB - freeMB) / totalMB) * 100) : 0;
|
|
196
|
+
return { totalMB, freeMB, usedPercent };
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=resource-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-probe.js","sourceRoot":"","sources":["../src/resource-probe.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -40,6 +40,47 @@ export interface SystemState {
|
|
|
40
40
|
charging: boolean;
|
|
41
41
|
} | null;
|
|
42
42
|
}
|
|
43
|
+
export interface GpuInfo {
|
|
44
|
+
name: string;
|
|
45
|
+
memoryTotalMB: number;
|
|
46
|
+
memoryUsedMB: number;
|
|
47
|
+
utilizationPercent: number;
|
|
48
|
+
}
|
|
49
|
+
export interface ResourceSnapshot {
|
|
50
|
+
cpu: {
|
|
51
|
+
cores: number;
|
|
52
|
+
model: string;
|
|
53
|
+
loadAvg1m: number;
|
|
54
|
+
loadAvg5m: number;
|
|
55
|
+
utilization: number;
|
|
56
|
+
};
|
|
57
|
+
memory: {
|
|
58
|
+
totalMB: number;
|
|
59
|
+
freeMB: number;
|
|
60
|
+
availableMB: number;
|
|
61
|
+
usedPercent: number;
|
|
62
|
+
};
|
|
63
|
+
swap: {
|
|
64
|
+
totalMB: number;
|
|
65
|
+
usedMB: number;
|
|
66
|
+
usedPercent: number;
|
|
67
|
+
};
|
|
68
|
+
gpu: GpuInfo | null;
|
|
69
|
+
disk: {
|
|
70
|
+
totalMB: number;
|
|
71
|
+
freeMB: number;
|
|
72
|
+
usedPercent: number;
|
|
73
|
+
} | null;
|
|
74
|
+
timestamp: number;
|
|
75
|
+
}
|
|
76
|
+
export type MachineClass = 'minimal' | 'light' | 'standard' | 'workstation' | 'server';
|
|
77
|
+
export interface MachineProfile {
|
|
78
|
+
machineClass: MachineClass;
|
|
79
|
+
hasGpu: boolean;
|
|
80
|
+
recommendedMaxAgents: number;
|
|
81
|
+
cpuCeiling: number;
|
|
82
|
+
ramCeiling: number;
|
|
83
|
+
}
|
|
43
84
|
export interface OsBridgeConfig {
|
|
44
85
|
watchDirs?: string[];
|
|
45
86
|
clipboardPollMs?: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,SAAS,GACT,aAAa,GACb,cAAc,GACd,OAAO,CAAC;AAEZ,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,OAAO,CAAC;KACnB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auxiora/os-bridge",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.20",
|
|
4
4
|
"description": "Deep OS integration: clipboard, file watching, app control, system state",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"nanoid": "^5.1.2",
|
|
16
|
-
"@auxiora/logger": "1.10.
|
|
17
|
-
"@auxiora/audit": "1.10.
|
|
16
|
+
"@auxiora/logger": "1.10.20",
|
|
17
|
+
"@auxiora/audit": "1.10.20"
|
|
18
18
|
},
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=22.0.0"
|