openmausbot 0.1.73 → 0.1.74
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/assets/index-BRLHsQ5g.js +298 -0
- package/dist/assets/index-ByLQ7a3F.css +1 -0
- package/dist/assets/{index-BYbK7ber.js → index-CwoQdM0z.js} +1 -1
- package/dist/index.html +2 -2
- package/dist-server/container-mcp.js +9 -0
- package/dist-server/index.js +592 -453
- package/dist-server/mcp-gate.js +58 -16
- package/dist-server/openmausbot.js +186 -64
- package/dist-server/pair-cli.js +186 -64
- package/dist-server/server/auto-approve.js +30 -206
- package/dist-server/server/channel-queue.js +20 -2
- package/dist-server/server/config.js +36 -1
- package/dist-server/server/drivers/acp/core.js +56 -3
- package/dist-server/server/drivers/acp/grok.js +3 -1
- package/dist-server/server/drivers/antigravity-acp.js +5 -4
- package/dist-server/server/drivers/antigravity.js +9 -4
- package/dist-server/server/drivers/claude.js +54 -11
- package/dist-server/server/drivers/codex.js +22 -11
- package/dist-server/server/engine-install.js +9 -5
- package/dist-server/server/index.js +185 -223
- package/dist-server/server/message-db.js +70 -3
- package/dist-server/server/procs.js +82 -23
- package/dist-server/server/routines.js +67 -8
- package/dist-server/server/steer-queue.js +27 -7
- package/dist-server/server/team-manifest.js +1 -1
- package/dist-server/server/webhooks.js +4 -1
- package/dist-server/server/workspace-backup.js +24 -9
- package/dist-server/shared/approval-mode.js +11 -10
- package/dist-server/vps-container-mcp.js +9 -0
- package/package.json +1 -1
- package/dist/assets/index-BLJ7byG3.js +0 -296
- package/dist/assets/index-De2TRLxu.css +0 -1
- package/dist-server/server/auto-review.js +0 -79
package/dist-server/mcp-gate.js
CHANGED
|
@@ -346,9 +346,62 @@ import {
|
|
|
346
346
|
spawn,
|
|
347
347
|
execFile as execFile2
|
|
348
348
|
} from "node:child_process";
|
|
349
|
+
var cliGroups = /* @__PURE__ */ new WeakSet();
|
|
350
|
+
var stopping = /* @__PURE__ */ new WeakMap();
|
|
349
351
|
function killCliTree(child2, timeoutMs = 5e3) {
|
|
352
|
+
const existing = stopping.get(child2);
|
|
353
|
+
if (existing) return existing;
|
|
350
354
|
const pid = child2.pid;
|
|
351
|
-
if (!pid
|
|
355
|
+
if (!pid) return Promise.resolve(true);
|
|
356
|
+
if (!Number.isInteger(pid) || pid <= 1 || pid === process.pid) return Promise.resolve(false);
|
|
357
|
+
const run = stopCliTree(child2, pid, Number.isFinite(timeoutMs) ? Math.max(0, timeoutMs) : 5e3);
|
|
358
|
+
stopping.set(child2, run);
|
|
359
|
+
void run.then((stopped) => {
|
|
360
|
+
if (!stopped) stopping.delete(child2);
|
|
361
|
+
});
|
|
362
|
+
return run;
|
|
363
|
+
}
|
|
364
|
+
async function stopCliTree(child2, pid, timeoutMs) {
|
|
365
|
+
const exited = () => child2.exitCode !== null || child2.signalCode !== null;
|
|
366
|
+
if (process.platform !== "win32") {
|
|
367
|
+
const group = cliGroups.has(child2);
|
|
368
|
+
const settled = () => {
|
|
369
|
+
if (!exited()) return false;
|
|
370
|
+
if (!group) return true;
|
|
371
|
+
try {
|
|
372
|
+
process.kill(-pid, 0);
|
|
373
|
+
return false;
|
|
374
|
+
} catch (error) {
|
|
375
|
+
return error.code === "ESRCH";
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
const signal = (value) => {
|
|
379
|
+
try {
|
|
380
|
+
if (group) process.kill(-pid, value);
|
|
381
|
+
else child2.kill(value);
|
|
382
|
+
} catch {
|
|
383
|
+
try {
|
|
384
|
+
child2.kill(value);
|
|
385
|
+
} catch {
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
const wait = async (ms) => {
|
|
390
|
+
const deadline = Date.now() + ms;
|
|
391
|
+
while (!settled()) {
|
|
392
|
+
const remaining = deadline - Date.now();
|
|
393
|
+
if (remaining <= 0) return false;
|
|
394
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(25, remaining)));
|
|
395
|
+
}
|
|
396
|
+
return true;
|
|
397
|
+
};
|
|
398
|
+
if (settled()) return true;
|
|
399
|
+
signal("SIGTERM");
|
|
400
|
+
if (await wait(timeoutMs)) return true;
|
|
401
|
+
signal("SIGKILL");
|
|
402
|
+
return wait(1e3);
|
|
403
|
+
}
|
|
404
|
+
if (exited()) return true;
|
|
352
405
|
return new Promise((resolve) => {
|
|
353
406
|
let timer;
|
|
354
407
|
const done = (stopped) => {
|
|
@@ -360,24 +413,13 @@ function killCliTree(child2, timeoutMs = 5e3) {
|
|
|
360
413
|
child2.once("close", closed);
|
|
361
414
|
timer = setTimeout(() => done(false), timeoutMs);
|
|
362
415
|
timer.unref?.();
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
if (!err) return;
|
|
366
|
-
try {
|
|
367
|
-
child2.kill();
|
|
368
|
-
} catch {
|
|
369
|
-
}
|
|
370
|
-
});
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
try {
|
|
374
|
-
process.kill(-pid, "SIGTERM");
|
|
375
|
-
} catch {
|
|
416
|
+
execFile2("taskkill", ["/PID", String(pid), "/T", "/F"], { windowsHide: true }, (err) => {
|
|
417
|
+
if (!err) return;
|
|
376
418
|
try {
|
|
377
|
-
child2.kill(
|
|
419
|
+
child2.kill();
|
|
378
420
|
} catch {
|
|
379
421
|
}
|
|
380
|
-
}
|
|
422
|
+
});
|
|
381
423
|
});
|
|
382
424
|
}
|
|
383
425
|
|