@mario.andreschak/mcp-bash 3.46.0 → 3.46.2
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.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/resources.js +242 -242
- package/dist/shared.d.ts +14 -0
- package/dist/shared.js +54 -2
- package/dist/shared.js.map +1 -1
- package/dist/tools.d.ts +5 -2
- package/dist/tools.js +48 -26
- package/dist/tools.js.map +1 -1
- package/package.json +6 -1
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ChildProcess } from 'node:child_process';
|
|
2
2
|
import { type IPty } from '@lydell/node-pty';
|
|
3
3
|
import type { Tool, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
import { type ProcessTreeTerminationResult } from '@flujo-ai/mcp-shared';
|
|
4
5
|
export declare const BASH_TERMINAL_APP_URI = "ui://bash/terminal";
|
|
5
6
|
/** Test seam for the public timeout contract; not used by the runtime. */
|
|
6
7
|
export declare function _resolveCommandTimeoutMsForTests(value: unknown): number | undefined;
|
|
@@ -62,6 +63,8 @@ interface BashSession {
|
|
|
62
63
|
startedAt: number;
|
|
63
64
|
endedAt?: number;
|
|
64
65
|
cancelEscalation?: () => void;
|
|
66
|
+
/** Shared by concurrent kill calls so a process tree is terminated once. */
|
|
67
|
+
terminationPromise?: Promise<ProcessTreeTerminationResult>;
|
|
65
68
|
reapTimer?: NodeJS.Timeout;
|
|
66
69
|
/** Preflight found a command head that cannot be resolved on PATH. */
|
|
67
70
|
missingExecutableWarning?: boolean;
|
|
@@ -153,7 +156,7 @@ export declare function bashSessionDiagnostics(): {
|
|
|
153
156
|
* cleared too, so a repeated call cannot leave a handle keeping the event loop
|
|
154
157
|
* alive after "shutdown".
|
|
155
158
|
*/
|
|
156
|
-
export declare function shutdownBashSessions(): void
|
|
159
|
+
export declare function shutdownBashSessions(): Promise<void>;
|
|
157
160
|
/** Remove exactly one caller-supplied leading U+FEFF from PowerShell source. */
|
|
158
161
|
export declare function normalizePowerShellSource(command: string): string;
|
|
159
162
|
export declare function wrapPowerShellCommand(command: string): string;
|
|
@@ -206,5 +209,5 @@ export declare function createStreamDecoder(mode?: OutputEncodingMode): (chunk:
|
|
|
206
209
|
export declare function bashToolDefinitions(): Tool[];
|
|
207
210
|
export declare function bashCallTool(toolName: string, args: Record<string, unknown>, callerNodeId?: string, ownerScope?: string, context?: BashExecutionContext): Promise<CallToolResult>;
|
|
208
211
|
/** Test-only: force-kill and clear all sessions. */
|
|
209
|
-
export declare function _resetBashSessionsForTests(): void
|
|
212
|
+
export declare function _resetBashSessionsForTests(): Promise<void>;
|
|
210
213
|
export {};
|
package/dist/tools.js
CHANGED
|
@@ -33,7 +33,7 @@ import path from 'node:path';
|
|
|
33
33
|
import fs from 'node:fs';
|
|
34
34
|
import { spawn, spawnSync } from 'node:child_process';
|
|
35
35
|
import { spawn as spawnPty } from '@lydell/node-pty';
|
|
36
|
-
import { createLogger, getDataDir, isInside, killProcessTree, loadEffectiveRoots, } from './shared.js';
|
|
36
|
+
import { createLogger, getDataDir, isInside, killProcessTree, killProcessTreeAndWait, loadEffectiveRoots, } from './shared.js';
|
|
37
37
|
const BASH_SERVER_NAME = 'bash';
|
|
38
38
|
export const BASH_TERMINAL_APP_URI = 'ui://bash/terminal';
|
|
39
39
|
const log = createLogger('backend/services/mcp/internal/bashTools');
|
|
@@ -462,7 +462,7 @@ function ownerLiveSessionCount(ownerScope) {
|
|
|
462
462
|
}
|
|
463
463
|
/** Terminate one background session's whole process tree and drop its timers. */
|
|
464
464
|
function terminateSession(session) {
|
|
465
|
-
if (session.running) {
|
|
465
|
+
if (session.running && !session.terminationPromise) {
|
|
466
466
|
try {
|
|
467
467
|
session.cancelEscalation = killProcessTree(session.child);
|
|
468
468
|
}
|
|
@@ -475,6 +475,24 @@ function terminateSession(session) {
|
|
|
475
475
|
session.reapTimer = undefined;
|
|
476
476
|
}
|
|
477
477
|
}
|
|
478
|
+
/** Terminate once and wait until the tracked child is observably closed. */
|
|
479
|
+
async function terminateSessionAndWait(session) {
|
|
480
|
+
if (!session.running) {
|
|
481
|
+
return { pid: session.child.pid, exited: true, durationMs: 0 };
|
|
482
|
+
}
|
|
483
|
+
const existing = session.terminationPromise;
|
|
484
|
+
if (existing)
|
|
485
|
+
return await existing;
|
|
486
|
+
const termination = killProcessTreeAndWait(session.child);
|
|
487
|
+
session.terminationPromise = termination;
|
|
488
|
+
try {
|
|
489
|
+
return await termination;
|
|
490
|
+
}
|
|
491
|
+
finally {
|
|
492
|
+
if (session.terminationPromise === termination)
|
|
493
|
+
session.terminationPromise = undefined;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
478
496
|
/** Terminate one PTY session and drop its timers. */
|
|
479
497
|
function terminateTerminal(terminal) {
|
|
480
498
|
try {
|
|
@@ -624,28 +642,18 @@ function terminalMeta(visibility = ['model', 'app']) {
|
|
|
624
642
|
* cleared too, so a repeated call cannot leave a handle keeping the event loop
|
|
625
643
|
* alive after "shutdown".
|
|
626
644
|
*/
|
|
627
|
-
export function shutdownBashSessions() {
|
|
645
|
+
export async function shutdownBashSessions() {
|
|
628
646
|
if (global.__flujo_bash_sweep_timer) {
|
|
629
647
|
clearInterval(global.__flujo_bash_sweep_timer);
|
|
630
648
|
global.__flujo_bash_sweep_timer = undefined;
|
|
631
649
|
}
|
|
650
|
+
const terminations = [];
|
|
632
651
|
for (const child of foregroundChildren()) {
|
|
633
|
-
|
|
634
|
-
killProcessTree(child);
|
|
635
|
-
}
|
|
636
|
-
catch {
|
|
637
|
-
/* best-effort */
|
|
638
|
-
}
|
|
652
|
+
terminations.push(killProcessTreeAndWait(child));
|
|
639
653
|
}
|
|
640
654
|
for (const s of sessions().values()) {
|
|
641
|
-
if (s.running)
|
|
642
|
-
|
|
643
|
-
killProcessTree(s.child);
|
|
644
|
-
}
|
|
645
|
-
catch {
|
|
646
|
-
/* best-effort */
|
|
647
|
-
}
|
|
648
|
-
}
|
|
655
|
+
if (s.running)
|
|
656
|
+
terminations.push(terminateSessionAndWait(s));
|
|
649
657
|
if (s.reapTimer) {
|
|
650
658
|
clearTimeout(s.reapTimer);
|
|
651
659
|
s.reapTimer = undefined;
|
|
@@ -666,6 +674,7 @@ export function shutdownBashSessions() {
|
|
|
666
674
|
terminal.reapTimer = undefined;
|
|
667
675
|
}
|
|
668
676
|
}
|
|
677
|
+
await Promise.allSettled(terminations);
|
|
669
678
|
}
|
|
670
679
|
function registerExitCleanup() {
|
|
671
680
|
if (!global.__flujo_bash_sweep_timer) {
|
|
@@ -685,7 +694,7 @@ function registerExitCleanup() {
|
|
|
685
694
|
if (global.__flujo_bash_cleanup_registered)
|
|
686
695
|
return;
|
|
687
696
|
global.__flujo_bash_cleanup_registered = true;
|
|
688
|
-
const handler = () => shutdownBashSessions();
|
|
697
|
+
const handler = () => { void shutdownBashSessions(); };
|
|
689
698
|
process.on('exit', handler);
|
|
690
699
|
process.on('SIGINT', handler);
|
|
691
700
|
process.on('SIGTERM', handler);
|
|
@@ -2019,12 +2028,16 @@ async function startTool(args, roots, ownerScope, context) {
|
|
|
2019
2028
|
appendSessionOutput(`\n${err.message}`);
|
|
2020
2029
|
session.running = false;
|
|
2021
2030
|
session.endedAt = Date.now();
|
|
2031
|
+
session.cancelEscalation?.();
|
|
2032
|
+
session.cancelEscalation = undefined;
|
|
2022
2033
|
scheduleReap(session);
|
|
2023
2034
|
});
|
|
2024
2035
|
child.on('close', (code) => {
|
|
2025
2036
|
session.running = false;
|
|
2026
2037
|
session.exitCode = code;
|
|
2027
2038
|
session.endedAt = Date.now();
|
|
2039
|
+
session.cancelEscalation?.();
|
|
2040
|
+
session.cancelEscalation = undefined;
|
|
2028
2041
|
spool.close();
|
|
2029
2042
|
scheduleReap(session);
|
|
2030
2043
|
});
|
|
@@ -2242,16 +2255,25 @@ function writeStdinTool(args, ownerScope) {
|
|
|
2242
2255
|
}
|
|
2243
2256
|
return textResult({ sessionId: id, written: payload.length, bomPolicy });
|
|
2244
2257
|
}
|
|
2245
|
-
function killTool(args, ownerScope) {
|
|
2258
|
+
async function killTool(args, ownerScope) {
|
|
2246
2259
|
const id = String(args?.sessionId ?? '');
|
|
2247
2260
|
const session = ownedSession(id, ownerScope);
|
|
2248
2261
|
if (!session)
|
|
2249
2262
|
return textResult({ error: `No background session with id "${id}".` }, true);
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
}
|
|
2263
|
+
const wasRunning = session.running;
|
|
2264
|
+
const termination = await terminateSessionAndWait(session);
|
|
2253
2265
|
touchSession(session);
|
|
2254
|
-
|
|
2266
|
+
const killed = termination.exited && !session.running;
|
|
2267
|
+
return textResult({
|
|
2268
|
+
sessionId: id,
|
|
2269
|
+
killed,
|
|
2270
|
+
running: session.running,
|
|
2271
|
+
terminationWaitMs: termination.durationMs,
|
|
2272
|
+
...(!wasRunning ? { alreadyExited: true } : {}),
|
|
2273
|
+
...(!killed ? {
|
|
2274
|
+
error: `Session "${id}" is still observable as running after process-tree termination.`,
|
|
2275
|
+
} : {}),
|
|
2276
|
+
}, !killed);
|
|
2255
2277
|
}
|
|
2256
2278
|
function listSessionsTool(ownerScope) {
|
|
2257
2279
|
const list = Array.from(sessions().values())
|
|
@@ -2529,7 +2551,7 @@ export async function bashCallTool(toolName, args, callerNodeId, ownerScope, con
|
|
|
2529
2551
|
case 'write_stdin':
|
|
2530
2552
|
return writeStdinTool(args, scope);
|
|
2531
2553
|
case 'kill':
|
|
2532
|
-
return killTool(args, scope);
|
|
2554
|
+
return await killTool(args, scope);
|
|
2533
2555
|
case 'list_sessions':
|
|
2534
2556
|
return listSessionsTool(scope);
|
|
2535
2557
|
case 'release_owner':
|
|
@@ -2544,8 +2566,8 @@ export async function bashCallTool(toolName, args, callerNodeId, ownerScope, con
|
|
|
2544
2566
|
}
|
|
2545
2567
|
}
|
|
2546
2568
|
/** Test-only: force-kill and clear all sessions. */
|
|
2547
|
-
export function _resetBashSessionsForTests() {
|
|
2548
|
-
shutdownBashSessions();
|
|
2569
|
+
export async function _resetBashSessionsForTests() {
|
|
2570
|
+
await shutdownBashSessions();
|
|
2549
2571
|
foregroundChildren().clear();
|
|
2550
2572
|
sessions().clear();
|
|
2551
2573
|
terminalSessions().clear();
|