negotium 0.6.7 → 0.6.9
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/agent-helpers.js +2 -2
- package/dist/agent-helpers.js.map +2 -2
- package/dist/{chunk-f124y9d0.js → chunk-bhxdah5c.js} +2 -2
- package/dist/{chunk-f124y9d0.js.map → chunk-bhxdah5c.js.map} +2 -2
- package/dist/hosted-agent.js +2 -2
- package/dist/hosted-agent.js.map +2 -2
- package/dist/main.js +73 -20
- package/dist/main.js.map +5 -5
- package/dist/mcp-factories.js +68 -16
- package/dist/mcp-factories.js.map +4 -4
- package/dist/registry.js +1 -1
- package/dist/runtime/src/mcp/factories/system-health.ts +118 -16
- package/dist/runtime/src/version.ts +1 -1
- package/dist/types/packages/core/src/mcp/factories/system-health.d.ts +23 -3
- package/dist/types/packages/core/src/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/mcp-factories.js
CHANGED
|
@@ -3019,7 +3019,7 @@ var init_codex = __esm(async () => {
|
|
|
3019
3019
|
});
|
|
3020
3020
|
|
|
3021
3021
|
// ../../packages/core/src/version.ts
|
|
3022
|
-
var NEGOTIUM_VERSION = "0.6.
|
|
3022
|
+
var NEGOTIUM_VERSION = "0.6.9";
|
|
3023
3023
|
|
|
3024
3024
|
// ../../packages/core/src/agents/codex-native-multi-agent.ts
|
|
3025
3025
|
import { spawn as spawn2 } from "child_process";
|
|
@@ -21185,7 +21185,7 @@ function protectMcpStdio(target) {
|
|
|
21185
21185
|
// ../../packages/core/src/mcp/factories/system-health.ts
|
|
21186
21186
|
init_mcp_helpers();
|
|
21187
21187
|
import { execFile } from "child_process";
|
|
21188
|
-
import { cpus,
|
|
21188
|
+
import { cpus, loadavg } from "os";
|
|
21189
21189
|
import { promisify } from "util";
|
|
21190
21190
|
import { McpServer as McpServer5 } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
21191
21191
|
var execFileAsync = promisify(execFile);
|
|
@@ -21198,13 +21198,58 @@ async function shell(command, args) {
|
|
|
21198
21198
|
return stdout.trim();
|
|
21199
21199
|
}
|
|
21200
21200
|
async function getMemoryPressure() {
|
|
21201
|
+
let level = "unknown";
|
|
21201
21202
|
try {
|
|
21202
|
-
const
|
|
21203
|
-
|
|
21203
|
+
const l = await shell("sysctl", ["-n", "kern.memorystatus_vm_pressure_level"]);
|
|
21204
|
+
level = l === "4" ? "critical" : l === "2" ? "warning" : "normal";
|
|
21205
|
+
} catch {}
|
|
21206
|
+
let freePct = null;
|
|
21207
|
+
try {
|
|
21208
|
+
const out = await shell("memory_pressure", []);
|
|
21209
|
+
const m = out.match(/System-wide memory free percentage:\s*(\d+)%/);
|
|
21210
|
+
if (m)
|
|
21211
|
+
freePct = Number(m[1]);
|
|
21212
|
+
} catch {}
|
|
21213
|
+
return { level, freePct };
|
|
21214
|
+
}
|
|
21215
|
+
async function getTotalMemBytes() {
|
|
21216
|
+
try {
|
|
21217
|
+
return Number(await shell("sysctl", ["-n", "hw.memsize"]));
|
|
21204
21218
|
} catch {
|
|
21205
|
-
return
|
|
21219
|
+
return 0;
|
|
21206
21220
|
}
|
|
21207
21221
|
}
|
|
21222
|
+
async function getVmStatMemory() {
|
|
21223
|
+
const [out, totalFromSysctl] = await Promise.all([shell("vm_stat", []), getTotalMemBytes()]);
|
|
21224
|
+
const extract = (label) => {
|
|
21225
|
+
const m = out.match(new RegExp(`${label.replace(/\s/g, "\\s")}:\\s+(\\d+)`));
|
|
21226
|
+
return m ? Number(m[1]) : 0;
|
|
21227
|
+
};
|
|
21228
|
+
const pageSize = Number(out.match(/page size of (\d+) bytes/)?.[1]) || 16384;
|
|
21229
|
+
const pagesFree = extract("Pages free");
|
|
21230
|
+
const pagesActive = extract("Pages active");
|
|
21231
|
+
const pagesInactive = extract("Pages inactive");
|
|
21232
|
+
const pagesSpeculative = extract("Pages speculative");
|
|
21233
|
+
const pagesWired = extract("Pages wired down");
|
|
21234
|
+
const pagesPurgeable = extract("Pages purgeable");
|
|
21235
|
+
const pagesCompressor = extract("Pages occupied by compressor");
|
|
21236
|
+
const activeBytes = pagesActive * pageSize;
|
|
21237
|
+
const wiredBytes = pagesWired * pageSize;
|
|
21238
|
+
const usedBytes = activeBytes + wiredBytes;
|
|
21239
|
+
const cacheBytes = (pagesInactive + pagesSpeculative + pagesPurgeable) * pageSize;
|
|
21240
|
+
const compressorBytes = pagesCompressor * pageSize;
|
|
21241
|
+
const totalBytes = totalFromSysctl || (pagesFree + pagesActive + pagesInactive + pagesSpeculative + pagesWired + pagesPurgeable + pagesCompressor) * pageSize;
|
|
21242
|
+
const availableBytes = Math.max(0, totalBytes - usedBytes);
|
|
21243
|
+
return {
|
|
21244
|
+
usedBytes,
|
|
21245
|
+
cacheBytes,
|
|
21246
|
+
compressorBytes,
|
|
21247
|
+
availableBytes,
|
|
21248
|
+
totalBytes,
|
|
21249
|
+
activeBytes,
|
|
21250
|
+
wiredBytes
|
|
21251
|
+
};
|
|
21252
|
+
}
|
|
21208
21253
|
async function getSwapUsage() {
|
|
21209
21254
|
try {
|
|
21210
21255
|
const output = await shell("sysctl", ["vm.swapusage"]);
|
|
@@ -21258,19 +21303,19 @@ async function getDisk() {
|
|
|
21258
21303
|
}
|
|
21259
21304
|
var defaultSystemHealthMcpHost = {
|
|
21260
21305
|
async readSystemHealth() {
|
|
21261
|
-
const [memoryPressure, swap, thermal, disk, processCount] = await Promise.all([
|
|
21306
|
+
const [memoryPressure, swap, thermal, disk, processCount, memory] = await Promise.all([
|
|
21262
21307
|
getMemoryPressure(),
|
|
21263
21308
|
getSwapUsage(),
|
|
21264
21309
|
getThermal(),
|
|
21265
21310
|
getDisk(),
|
|
21266
|
-
getProcessCount()
|
|
21311
|
+
getProcessCount(),
|
|
21312
|
+
getVmStatMemory()
|
|
21267
21313
|
]);
|
|
21268
21314
|
const load = loadavg();
|
|
21269
21315
|
return {
|
|
21270
21316
|
cpuLoad: [load[0] ?? 0, load[1] ?? 0, load[2] ?? 0],
|
|
21271
21317
|
cpuCount: cpus().length,
|
|
21272
|
-
|
|
21273
|
-
memoryFree: freemem(),
|
|
21318
|
+
memory,
|
|
21274
21319
|
memoryPressure,
|
|
21275
21320
|
swap,
|
|
21276
21321
|
disk,
|
|
@@ -21284,23 +21329,30 @@ function createSystemHealthMcpServer(host = defaultSystemHealthMcpHost) {
|
|
|
21284
21329
|
server.tool("get_system_health", [
|
|
21285
21330
|
"\uC2DC\uC2A4\uD15C \uC0C1\uD0DC\uB97C \uC870\uD68C\uD569\uB2C8\uB2E4.",
|
|
21286
21331
|
"- CPU \uBD80\uD558 (load average 1/5/15\uBD84)",
|
|
21287
|
-
"- \uBA54\uBAA8\uB9AC \uC0AC\uC6A9\
|
|
21332
|
+
"- \uBA54\uBAA8\uB9AC: \uC571 \uC2E4\uC0AC\uC6A9(active+wired) / \uD30C\uC77C\uCE90\uC2DC(\uBC18\uD658\uAC00\uB2A5) / available / \uC555\uB825(free%\xB7level)",
|
|
21288
21333
|
"- \uC2A4\uC651 \uC0AC\uC6A9\uB7C9",
|
|
21289
21334
|
"- \uB514\uC2A4\uD06C \uC0AC\uC6A9\uB960 (/)",
|
|
21290
21335
|
"- \uC5F4 \uC0C1\uD0DC (thermal)",
|
|
21291
|
-
"- \uD504\uB85C\uC138\uC2A4 \uC218"
|
|
21336
|
+
"- \uD504\uB85C\uC138\uC2A4 \uC218",
|
|
21337
|
+
"",
|
|
21338
|
+
"\u26A0\uFE0F Chromium/playwright \uB4F1 \uBB34\uAC70\uC6B4 \uD504\uB85C\uC138\uC2A4 \uC2E4\uD589 \uAC00\uB2A5 \uC5EC\uBD80\uB294 '\uBA54\uBAA8\uB9AC \uC0AC\uC6A9%'\uAC00 \uC544\uB2C8\uB77C",
|
|
21339
|
+
" \uBA54\uBAA8\uB9AC \uC555\uB825 \uB808\uBCA8(normal/warning/critical) + available GB \uB85C \uD310\uB2E8\uD560 \uAC83.",
|
|
21340
|
+
" (\uD30C\uC77C \uCE90\uC2DC\uB294 \uC555\uBC15 \uC2DC \uC989\uC2DC \uBC18\uD658\uB418\uBBC0\uB85C used%\uC5D0 \uAC81\uBA39\uC9C0 \uB9D0 \uAC83)"
|
|
21292
21341
|
].join(`
|
|
21293
21342
|
`), {}, async () => {
|
|
21294
21343
|
const snapshot = await host.readSystemHealth();
|
|
21295
|
-
const
|
|
21296
|
-
const
|
|
21344
|
+
const { memory } = snapshot;
|
|
21345
|
+
const usedPct = memory.totalBytes > 0 ? (memory.usedBytes / memory.totalBytes * 100).toFixed(1) : "0.0";
|
|
21297
21346
|
const [load1, load5, load15] = snapshot.cpuLoad;
|
|
21347
|
+
const pressureStr = snapshot.memoryPressure.freePct !== null ? `${snapshot.memoryPressure.level} (free ${snapshot.memoryPressure.freePct}%)` : snapshot.memoryPressure.level;
|
|
21298
21348
|
return mcpOk([
|
|
21299
21349
|
"\uC2DC\uC2A4\uD15C \uC0C1\uD0DC",
|
|
21300
21350
|
"",
|
|
21301
21351
|
`CPU \uBD80\uD558: ${load1.toFixed(2)} / ${load5.toFixed(2)} / ${load15.toFixed(2)} (1/5/15\uBD84, \uCF54\uC5B4 ${snapshot.cpuCount}\uAC1C)`,
|
|
21302
|
-
`\uBA54\uBAA8\uB9AC:
|
|
21303
|
-
|
|
21352
|
+
`\uBA54\uBAA8\uB9AC \uC2E4\uC0AC\uC6A9: ${fmtBytes(memory.usedBytes)} / ${fmtBytes(memory.totalBytes)} (${usedPct}%) available: ${fmtBytes(memory.availableBytes)}`,
|
|
21353
|
+
` (active ${fmtBytes(memory.activeBytes)} + wired ${fmtBytes(memory.wiredBytes)})`,
|
|
21354
|
+
`\uD30C\uC77C \uCE90\uC2DC: ${fmtBytes(memory.cacheBytes)} (\uC555\uBC15 \uC2DC \uBC18\uD658 \uAC00\uB2A5) | \uC555\uCD95 ${fmtBytes(memory.compressorBytes)}`,
|
|
21355
|
+
`\uBA54\uBAA8\uB9AC \uC555\uB825: ${pressureStr}`,
|
|
21304
21356
|
`\uC2A4\uC651: ${snapshot.swap}`,
|
|
21305
21357
|
`\uB514\uC2A4\uD06C(/): ${snapshot.disk}`,
|
|
21306
21358
|
`\uC5F4 \uC0C1\uD0DC: ${snapshot.thermal}`,
|
|
@@ -21568,4 +21620,4 @@ export {
|
|
|
21568
21620
|
createAgentHealthMcpServer
|
|
21569
21621
|
};
|
|
21570
21622
|
|
|
21571
|
-
//# debugId=
|
|
21623
|
+
//# debugId=CB128C8A11D2F7DC64756E2164756E21
|