@mario.andreschak/mcp-bash 3.43.0 → 3.45.0

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 CHANGED
@@ -66,17 +66,38 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
66
66
  });
67
67
  const transport = new StdioServerTransport();
68
68
  let closing = false;
69
- async function shutdown() {
69
+ /**
70
+ * Idempotent shutdown (issue #413).
71
+ *
72
+ * Every way this process can be told to stop must land here, because the ONLY
73
+ * thing that kills a live session's descendant tree is `shutdownBashSessions()`.
74
+ * The critical addition is stdin EOF: the MCP stdio convention is that the host
75
+ * closes stdin to request shutdown, and a host that then exits (or is killed)
76
+ * never sends a signal at all. Without an EOF path this server — and every
77
+ * background command and PTY it had spawned — survived its own host.
78
+ */
79
+ async function shutdown(reason) {
70
80
  if (closing)
71
81
  return;
72
82
  closing = true;
73
- shutdownBashSessions();
83
+ process.stderr.write(`@mario.andreschak/mcp-bash shutting down (${reason})\n`);
84
+ // Stop accepting new work BEFORE tearing anything down, so a request that
85
+ // arrives mid-shutdown cannot start a process nothing will ever kill.
74
86
  configureRootsProvider(undefined);
87
+ shutdownBashSessions();
75
88
  await server.close().catch(() => undefined);
76
89
  }
77
- process.once('SIGINT', () => void shutdown());
78
- process.once('SIGTERM', () => void shutdown());
79
- process.once('SIGHUP', () => void shutdown());
90
+ process.once('SIGINT', () => void shutdown('SIGINT'));
91
+ process.once('SIGTERM', () => void shutdown('SIGTERM'));
92
+ process.once('SIGHUP', () => void shutdown('SIGHUP'));
93
+ // stdio EOF: the host closed our input, so no further request can arrive.
94
+ process.stdin.once('end', () => void shutdown('stdin end'));
95
+ process.stdin.once('close', () => void shutdown('stdin close'));
96
+ // Transport close covers the SDK-side teardown (host closed the session). This
97
+ // must hook the SERVER's callback, not the transport's: Protocol.connect()
98
+ // installs its own transport.onclose, so assigning that directly would be
99
+ // silently overwritten by server.connect() below.
100
+ server.onclose = () => void shutdown('transport close');
80
101
  server.connect(transport).catch((error) => {
81
102
  shutdownBashSessions();
82
103
  process.stderr.write(`@mario.andreschak/mcp-bash failed: ${error instanceof Error ? error.stack ?? error.message : String(error)}\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,kCAAkC,EAClC,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,4BAA4B,EAAE,OAAO,EAAE,OAAO,EAAE,EACxD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,UAAU,EAAE;YACV,4BAA4B,EAAE;gBAC5B,SAAS,EAAE,CAAC,2BAA2B,CAAC;aACzC;SACF;KACF;CACF,CACF,CAAC;AAEF,sBAAsB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AAErE,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,KAAK,GAAI,IAAgC,CAAC,KAAK,CAAC;IACtD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAC5F,CAAC,CAAC,MAAM,CAAC,YAAY;QACrB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACtF,CAAC,CAAC,MAAM,CAAC,UAAU;QACnB,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjG,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IACvE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;IAC1D,OAAO,YAAY,CACjB,OAAO,CAAC,MAAM,CAAC,IAAI,EACnB,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAC9B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,EACf;QACE,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,aAAa,KAAK,SAAS;YAC7B,CAAC,CAAC;gBACE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC7B,MAAM,MAAM,CAAC,YAAY,CACvB;wBACE,MAAM,EAAE,wBAAwB;wBAChC,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAE;qBACvC,EACD,EAAE,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,CACtC,CAAC;gBACJ,CAAC;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AACH,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACtF,MAAM,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtG,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;QAC9B,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC;QACvB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IAChF,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,kBAAkB,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC7C,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,KAAK,UAAU,QAAQ;IACrB,IAAI,OAAO;QAAE,OAAO;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,oBAAoB,EAAE,CAAC;IACvB,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AACD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;AAC9C,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;AAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;AAE9C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACxC,oBAAoB,EAAE,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtI,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -2,6 +2,8 @@ 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
4
  export declare const BASH_TERMINAL_APP_URI = "ui://bash/terminal";
5
+ /** Test seam for the public timeout contract; not used by the runtime. */
6
+ export declare function _resolveCommandTimeoutMsForTests(value: unknown): number | undefined;
5
7
  type EffectiveShell = 'pwsh' | 'powershell' | 'bash' | 'cmd' | 'sh';
6
8
  export interface BashToolProgress {
7
9
  progress: number;
@@ -54,6 +56,14 @@ interface BashSession {
54
56
  reapTimer?: NodeJS.Timeout;
55
57
  /** Preflight found a command head that cannot be resolved on PATH. */
56
58
  missingExecutableWarning?: boolean;
59
+ /**
60
+ * Explicit opt-in to surviving owner release (issue #413). Default false: a
61
+ * session outliving its run must be a deliberate choice, not the accident that
62
+ * made every `start` a permanent process.
63
+ */
64
+ detached?: boolean;
65
+ /** Last output/read/write — drives idle expiry. */
66
+ lastActivityAt: number;
57
67
  }
58
68
  interface TerminalSession {
59
69
  id: string;
@@ -69,14 +79,68 @@ interface TerminalSession {
69
79
  startedAt: number;
70
80
  endedAt?: number;
71
81
  reapTimer?: NodeJS.Timeout;
82
+ /** Explicit opt-in to surviving owner release (issue #413). */
83
+ detached?: boolean;
84
+ /** Last output/read/write — drives idle expiry. */
85
+ lastActivityAt: number;
72
86
  }
73
87
  declare global {
74
88
  var __flujo_bash_sessions: Map<string, BashSession> | undefined;
75
89
  var __flujo_terminal_sessions: Map<string, TerminalSession> | undefined;
76
90
  var __flujo_bash_foreground_children: Set<ChildProcess> | undefined;
77
91
  var __flujo_bash_cleanup_registered: boolean | undefined;
92
+ var __flujo_bash_sweep_timer: NodeJS.Timeout | undefined;
78
93
  }
79
- /** Kill every live session's process tree — used on FLUJO process exit. */
94
+ export interface OwnerReleaseResult {
95
+ ownerScope: string;
96
+ /** Background session ids that were killed. */
97
+ killedSessions: string[];
98
+ /** PTY session ids that were closed. */
99
+ closedTerminals: string[];
100
+ /** Sessions deliberately left alive because they opted into `detached`. */
101
+ retainedDetached: string[];
102
+ }
103
+ /**
104
+ * Atomically remove and terminate every NON-DETACHED session of one owner.
105
+ *
106
+ * Called when the owning FLUJO run reaches a terminal state. Removing the map
107
+ * entry BEFORE killing means a concurrent release (or a second call from a retry
108
+ * path) cannot observe the same session twice, so the operation is idempotent -
109
+ * repeated releases of the same scope are a no-op instead of a double kill
110
+ * against a possibly-recycled pid.
111
+ */
112
+ export declare function releaseOwnerScope(ownerScope: string): OwnerReleaseResult;
113
+ /**
114
+ * Expire live sessions that exceeded the idle timeout or the absolute lifetime.
115
+ *
116
+ * Detached sessions are exempt from IDLE expiry (being idle is often the point of
117
+ * a detached watcher) but NOT from the absolute lifetime ceiling - otherwise
118
+ * `detached` would be an unbounded leak with extra steps.
119
+ */
120
+ export declare function expireStaleSessions(now?: number): string[];
121
+ /** Bounded per-session diagnostics: identity/state only, never output. */
122
+ export declare function bashSessionDiagnostics(): {
123
+ liveSessions: number;
124
+ maxLiveSessions: number;
125
+ sessions: Array<{
126
+ sessionId: string;
127
+ type: 'background' | 'terminal';
128
+ ownerScope: string;
129
+ running: boolean;
130
+ detached: boolean;
131
+ ageMs: number;
132
+ idleMs: number;
133
+ }>;
134
+ };
135
+ /**
136
+ * Kill every live session's process tree - used on Bash server shutdown and on
137
+ * FLUJO process exit.
138
+ *
139
+ * Idempotent and DETACHED-INCLUSIVE: a detached session survives owner release,
140
+ * but nothing survives the death of the server that owns its pipes. Timers are
141
+ * cleared too, so a repeated call cannot leave a handle keeping the event loop
142
+ * alive after "shutdown".
143
+ */
80
144
  export declare function shutdownBashSessions(): void;
81
145
  export declare function wrapPowerShellCommand(command: string): string;
82
146
  /** `chcp 65001` forces UTF-8 output for cmd.exe children (issue #364). */
package/dist/tools.js CHANGED
@@ -40,17 +40,71 @@ const BASH_SERVER_NAME = 'bash';
40
40
  export const BASH_TERMINAL_APP_URI = 'ui://bash/terminal';
41
41
  const log = createLogger('backend/services/mcp/internal/bashTools');
42
42
  const DEFAULT_TIMEOUT_MS = 60_000;
43
- const MAX_TIMEOUT_MS = 600_000;
43
+ /**
44
+ * Foreground commands and `wait` calls may wrap builds, renders, migrations,
45
+ * and other jobs that take far longer than the historical ten-minute ceiling.
46
+ * Keep a finite default safety ceiling, aligned with the background-session
47
+ * lifetime, while allowing deployments to lower or raise it. Passing -1
48
+ * disables this Bash-side timer; cancellation and shutdown still clean up.
49
+ */
50
+ const DEFAULT_MAX_TIMEOUT_MS = 12 * 60 * 60_000;
44
51
  const MAX_OUTPUT_CHARS = 100_000;
45
52
  const MAX_SESSIONS = 25;
46
53
  const MAX_TERMINAL_OUTPUT_CHARS = 2_000_000;
47
54
  /**
48
- * Lifecycle: live sessions end only by process exit, explicit kill, or Bash
49
- * server shutdown. Finished owner-scoped records remain readable for ten
50
- * minutes, then are reaped. An MCP View teardown may be an inline→dock handoff,
51
- * so it is not treated as an owner disconnect signal.
55
+ * Lifecycle (issue #413): a live session ends by process exit, explicit kill,
56
+ * OWNER RELEASE when its run finishes, idle/max-lifetime expiry, or Bash server
57
+ * shutdown. Finished owner-scoped records remain readable for ten minutes, then
58
+ * are reaped. An MCP View teardown may be an inline-to-dock handoff, so it is
59
+ * still not treated as an owner disconnect signal.
60
+ *
61
+ * Owner release is what closes the original leak: nothing used to tell this
62
+ * server that the run which started a background command had ended, so a
63
+ * `start`ed process (and its whole descendant tree) outlived its run and stayed
64
+ * resident for the lifetime of the FLUJO process.
52
65
  */
53
66
  const SESSION_TTL_MS = 10 * 60_000;
67
+ /**
68
+ * Host-wide cap across background AND terminal sessions. The per-owner cap alone
69
+ * could not bound the machine: N concurrent runs each stayed under their own
70
+ * limit while together they forked an unbounded number of live trees.
71
+ */
72
+ const MAX_LIVE_SESSIONS_HOST = 50;
73
+ /** A live session with no reads/writes/output for this long is expired. */
74
+ const SESSION_IDLE_TIMEOUT_MS = 60 * 60_000;
75
+ /** Absolute ceiling on a live session's age, idle or not. */
76
+ const SESSION_MAX_LIFETIME_MS = 12 * 60 * 60_000;
77
+ /** How often the expiry sweep runs. */
78
+ const SESSION_SWEEP_INTERVAL_MS = 60_000;
79
+ function positiveEnvNumber(name, fallback) {
80
+ const raw = Number(process.env[name]);
81
+ return Number.isFinite(raw) && raw > 0 ? raw : fallback;
82
+ }
83
+ function maxLiveSessionsHost() {
84
+ return Math.floor(positiveEnvNumber('FLUJO_BASH_MAX_LIVE_SESSIONS', MAX_LIVE_SESSIONS_HOST));
85
+ }
86
+ function sessionIdleTimeoutMs() {
87
+ return positiveEnvNumber('FLUJO_BASH_SESSION_IDLE_MS', SESSION_IDLE_TIMEOUT_MS);
88
+ }
89
+ function sessionMaxLifetimeMs() {
90
+ return positiveEnvNumber('FLUJO_BASH_SESSION_MAX_LIFETIME_MS', SESSION_MAX_LIFETIME_MS);
91
+ }
92
+ function commandMaxTimeoutMs() {
93
+ return positiveEnvNumber('FLUJO_BASH_COMMAND_MAX_TIMEOUT_MS', DEFAULT_MAX_TIMEOUT_MS);
94
+ }
95
+ /** `undefined` means no Bash-side timeout (the explicit timeout=-1 contract). */
96
+ function resolveCommandTimeoutMs(value) {
97
+ if (value === -1)
98
+ return undefined;
99
+ const requested = typeof value === 'number' && Number.isFinite(value) && value > 0
100
+ ? value * 1_000
101
+ : DEFAULT_TIMEOUT_MS;
102
+ return Math.min(requested, commandMaxTimeoutMs());
103
+ }
104
+ /** Test seam for the public timeout contract; not used by the runtime. */
105
+ export function _resolveCommandTimeoutMsForTests(value) {
106
+ return resolveCommandTimeoutMs(value);
107
+ }
54
108
  /**
55
109
  * Locate an executable by name on `PATH` ourselves (rather than relying on
56
110
  * `spawn`'s own resolution) so we can know in advance whether `pwsh`/`bash`
@@ -334,11 +388,203 @@ function ownedSession(id, ownerScope) {
334
388
  const session = sessions().get(id);
335
389
  return session?.ownerScope === ownerScope ? session : undefined;
336
390
  }
391
+ /** Mark a session as active so the idle sweep leaves it alone. */
392
+ function touchSession(session) {
393
+ session.lastActivityAt = Date.now();
394
+ }
395
+ /** Live sessions across BOTH tables — the quantity the host cap bounds. */
396
+ function liveSessionCount() {
397
+ let count = 0;
398
+ for (const session of sessions().values())
399
+ if (session.running)
400
+ count += 1;
401
+ for (const terminal of terminalSessions().values())
402
+ if (terminal.running)
403
+ count += 1;
404
+ return count;
405
+ }
406
+ /** Live sessions for one owner across both tables. */
407
+ function ownerLiveSessionCount(ownerScope) {
408
+ let count = 0;
409
+ for (const session of sessions().values()) {
410
+ if (session.running && session.ownerScope === ownerScope)
411
+ count += 1;
412
+ }
413
+ for (const terminal of terminalSessions().values()) {
414
+ if (terminal.running && terminal.ownerScope === ownerScope)
415
+ count += 1;
416
+ }
417
+ return count;
418
+ }
419
+ /** Terminate one background session's whole process tree and drop its timers. */
420
+ function terminateSession(session) {
421
+ if (session.running) {
422
+ try {
423
+ session.cancelEscalation = killProcessTree(session.child);
424
+ }
425
+ catch {
426
+ /* best-effort */
427
+ }
428
+ }
429
+ if (session.reapTimer) {
430
+ clearTimeout(session.reapTimer);
431
+ session.reapTimer = undefined;
432
+ }
433
+ }
434
+ /** Terminate one PTY session and drop its timers. */
435
+ function terminateTerminal(terminal) {
436
+ try {
437
+ if (terminal.running) {
438
+ terminal.running = false;
439
+ terminal.pty.kill();
440
+ }
441
+ }
442
+ catch {
443
+ /* best-effort */
444
+ }
445
+ if (terminal.reapTimer) {
446
+ clearTimeout(terminal.reapTimer);
447
+ terminal.reapTimer = undefined;
448
+ }
449
+ }
450
+ /**
451
+ * Atomically remove and terminate every NON-DETACHED session of one owner.
452
+ *
453
+ * Called when the owning FLUJO run reaches a terminal state. Removing the map
454
+ * entry BEFORE killing means a concurrent release (or a second call from a retry
455
+ * path) cannot observe the same session twice, so the operation is idempotent -
456
+ * repeated releases of the same scope are a no-op instead of a double kill
457
+ * against a possibly-recycled pid.
458
+ */
459
+ export function releaseOwnerScope(ownerScope) {
460
+ const result = {
461
+ ownerScope,
462
+ killedSessions: [],
463
+ closedTerminals: [],
464
+ retainedDetached: [],
465
+ };
466
+ for (const [id, session] of Array.from(sessions())) {
467
+ if (session.ownerScope !== ownerScope)
468
+ continue;
469
+ if (session.detached) {
470
+ if (session.running)
471
+ result.retainedDetached.push(id);
472
+ continue;
473
+ }
474
+ sessions().delete(id);
475
+ if (session.running)
476
+ result.killedSessions.push(id);
477
+ terminateSession(session);
478
+ }
479
+ for (const [id, terminal] of Array.from(terminalSessions())) {
480
+ if (terminal.ownerScope !== ownerScope)
481
+ continue;
482
+ if (terminal.detached) {
483
+ if (terminal.running)
484
+ result.retainedDetached.push(id);
485
+ continue;
486
+ }
487
+ terminalSessions().delete(id);
488
+ if (terminal.running)
489
+ result.closedTerminals.push(id);
490
+ terminateTerminal(terminal);
491
+ }
492
+ if (result.killedSessions.length || result.closedTerminals.length) {
493
+ log.info('Released owner-scoped bash sessions', {
494
+ ownerScope,
495
+ killed: result.killedSessions.length,
496
+ closedTerminals: result.closedTerminals.length,
497
+ retainedDetached: result.retainedDetached.length,
498
+ });
499
+ }
500
+ return result;
501
+ }
502
+ /**
503
+ * Expire live sessions that exceeded the idle timeout or the absolute lifetime.
504
+ *
505
+ * Detached sessions are exempt from IDLE expiry (being idle is often the point of
506
+ * a detached watcher) but NOT from the absolute lifetime ceiling - otherwise
507
+ * `detached` would be an unbounded leak with extra steps.
508
+ */
509
+ export function expireStaleSessions(now = Date.now()) {
510
+ const idleLimit = sessionIdleTimeoutMs();
511
+ const lifetimeLimit = sessionMaxLifetimeMs();
512
+ const expired = [];
513
+ for (const [id, session] of Array.from(sessions())) {
514
+ if (!session.running)
515
+ continue;
516
+ const tooOld = now - session.startedAt >= lifetimeLimit;
517
+ const tooIdle = !session.detached && now - session.lastActivityAt >= idleLimit;
518
+ if (!tooOld && !tooIdle)
519
+ continue;
520
+ sessions().delete(id);
521
+ terminateSession(session);
522
+ expired.push(id);
523
+ }
524
+ for (const [id, terminal] of Array.from(terminalSessions())) {
525
+ if (!terminal.running)
526
+ continue;
527
+ const tooOld = now - terminal.startedAt >= lifetimeLimit;
528
+ const tooIdle = !terminal.detached && now - terminal.lastActivityAt >= idleLimit;
529
+ if (!tooOld && !tooIdle)
530
+ continue;
531
+ terminalSessions().delete(id);
532
+ terminateTerminal(terminal);
533
+ expired.push(id);
534
+ }
535
+ if (expired.length)
536
+ log.info('Expired stale bash sessions', { count: expired.length });
537
+ return expired;
538
+ }
539
+ /** Bounded per-session diagnostics: identity/state only, never output. */
540
+ export function bashSessionDiagnostics() {
541
+ const now = Date.now();
542
+ const rows = [];
543
+ for (const session of sessions().values()) {
544
+ rows.push({
545
+ sessionId: session.id,
546
+ type: 'background',
547
+ ownerScope: session.ownerScope,
548
+ running: session.running,
549
+ detached: session.detached === true,
550
+ ageMs: now - session.startedAt,
551
+ idleMs: now - session.lastActivityAt,
552
+ });
553
+ }
554
+ for (const terminal of terminalSessions().values()) {
555
+ rows.push({
556
+ sessionId: terminal.id,
557
+ type: 'terminal',
558
+ ownerScope: terminal.ownerScope,
559
+ running: terminal.running,
560
+ detached: terminal.detached === true,
561
+ ageMs: now - terminal.startedAt,
562
+ idleMs: now - terminal.lastActivityAt,
563
+ });
564
+ }
565
+ return {
566
+ liveSessions: liveSessionCount(),
567
+ maxLiveSessions: maxLiveSessionsHost(),
568
+ sessions: rows,
569
+ };
570
+ }
337
571
  function terminalMeta(visibility = ['model', 'app']) {
338
572
  return { ui: { resourceUri: BASH_TERMINAL_APP_URI, visibility } };
339
573
  }
340
- /** Kill every live session's process tree — used on FLUJO process exit. */
574
+ /**
575
+ * Kill every live session's process tree - used on Bash server shutdown and on
576
+ * FLUJO process exit.
577
+ *
578
+ * Idempotent and DETACHED-INCLUSIVE: a detached session survives owner release,
579
+ * but nothing survives the death of the server that owns its pipes. Timers are
580
+ * cleared too, so a repeated call cannot leave a handle keeping the event loop
581
+ * alive after "shutdown".
582
+ */
341
583
  export function shutdownBashSessions() {
584
+ if (global.__flujo_bash_sweep_timer) {
585
+ clearInterval(global.__flujo_bash_sweep_timer);
586
+ global.__flujo_bash_sweep_timer = undefined;
587
+ }
342
588
  for (const child of foregroundChildren()) {
343
589
  try {
344
590
  killProcessTree(child);
@@ -356,8 +602,10 @@ export function shutdownBashSessions() {
356
602
  /* best-effort */
357
603
  }
358
604
  }
359
- if (s.reapTimer)
605
+ if (s.reapTimer) {
360
606
  clearTimeout(s.reapTimer);
607
+ s.reapTimer = undefined;
608
+ }
361
609
  }
362
610
  for (const terminal of terminalSessions().values()) {
363
611
  try {
@@ -369,11 +617,27 @@ export function shutdownBashSessions() {
369
617
  catch {
370
618
  /* best-effort */
371
619
  }
372
- if (terminal.reapTimer)
620
+ if (terminal.reapTimer) {
373
621
  clearTimeout(terminal.reapTimer);
622
+ terminal.reapTimer = undefined;
623
+ }
374
624
  }
375
625
  }
376
626
  function registerExitCleanup() {
627
+ if (!global.__flujo_bash_sweep_timer) {
628
+ // Idle/max-lifetime expiry needs a periodic sweep: a session that simply
629
+ // stops producing output never fires an event we could hang the check on.
630
+ const timer = setInterval(() => {
631
+ try {
632
+ expireStaleSessions();
633
+ }
634
+ catch {
635
+ /* a sweep failure must never crash the server */
636
+ }
637
+ }, SESSION_SWEEP_INTERVAL_MS);
638
+ timer.unref?.();
639
+ global.__flujo_bash_sweep_timer = timer;
640
+ }
377
641
  if (global.__flujo_bash_cleanup_registered)
378
642
  return;
379
643
  global.__flujo_bash_cleanup_registered = true;
@@ -1128,6 +1392,9 @@ function createCommandProgressReporter(context) {
1128
1392
  return { push: () => undefined, stop: async () => undefined };
1129
1393
  const startedAt = Date.now();
1130
1394
  const maxMessageChars = 4_000;
1395
+ // MCP requires `progress` to increase with every notification. It is a
1396
+ // notification sequence here (not a byte count), because silent-command
1397
+ // heartbeats must advance it too.
1131
1398
  let progress = 0;
1132
1399
  let pending = '';
1133
1400
  let flushTimer;
@@ -1138,7 +1405,7 @@ function createCommandProgressReporter(context) {
1138
1405
  const deliver = (message) => {
1139
1406
  if (!message)
1140
1407
  return;
1141
- const snapshot = progress;
1408
+ const snapshot = ++progress;
1142
1409
  chain = chain
1143
1410
  .then(() => report({ progress: snapshot, message }))
1144
1411
  .catch((error) => {
@@ -1168,7 +1435,6 @@ function createCommandProgressReporter(context) {
1168
1435
  push: (chunk) => {
1169
1436
  if (stopped || !chunk)
1170
1437
  return;
1171
- progress += Buffer.byteLength(chunk, 'utf8');
1172
1438
  const remaining = Math.max(0, MAX_OUTPUT_CHARS - forwardedChars);
1173
1439
  if (remaining > 0) {
1174
1440
  const accepted = chunk.slice(0, remaining);
@@ -1253,6 +1519,10 @@ export function bashToolDefinitions() {
1253
1519
  env: envProp,
1254
1520
  cols: { type: 'number', description: 'Initial terminal columns (20-400, default 100).' },
1255
1521
  rows: { type: 'number', description: 'Initial terminal rows (5-200, default 30).' },
1522
+ detached: {
1523
+ type: 'boolean',
1524
+ description: 'Keep the terminal alive after the run that opened it finishes (default false). Still bounded by the host session cap and the absolute max lifetime.',
1525
+ },
1256
1526
  },
1257
1527
  },
1258
1528
  },
@@ -1317,7 +1587,11 @@ export function bashToolDefinitions() {
1317
1587
  cwd: cwdProp,
1318
1588
  shell: shellProp,
1319
1589
  env: envProp,
1320
- timeout: { type: 'number', description: 'Timeout in seconds (default 60, max 600). On timeout the whole process tree is killed and elapsedMs/timeoutMs are reported.' },
1590
+ timeout: {
1591
+ type: 'number',
1592
+ description: 'Bash-side timeout in seconds (default 60; -1 disables it; positive values are capped at 12 hours by default). '
1593
+ + 'While running, output and 10-second liveness heartbeats are sent as MCP progress. On timeout the whole process tree is killed.',
1594
+ },
1321
1595
  normalizeNewlines: { type: 'boolean', description: 'If true, CRLF/CR in the captured output are normalized to LF.' },
1322
1596
  encoding: encodingProp,
1323
1597
  maxOutputChars: maxOutputCharsProp,
@@ -1339,6 +1613,10 @@ export function bashToolDefinitions() {
1339
1613
  encoding: encodingProp,
1340
1614
  maxOutputChars: maxOutputCharsProp,
1341
1615
  outputFile: outputFileProp,
1616
+ detached: {
1617
+ type: 'boolean',
1618
+ description: 'Survive the end of the run that started it (default false). Detached sessions are still bounded by the host session cap and the absolute max lifetime, and are always killed when the bash server shuts down.',
1619
+ },
1342
1620
  },
1343
1621
  required: ['command'],
1344
1622
  },
@@ -1359,7 +1637,10 @@ export function bashToolDefinitions() {
1359
1637
  type: 'object',
1360
1638
  properties: {
1361
1639
  sessionId: { type: 'string', description: 'The id returned by start.' },
1362
- timeout: { type: 'number', description: 'Max seconds to wait (default 60, max 600).' },
1640
+ timeout: {
1641
+ type: 'number',
1642
+ description: 'Max seconds to wait (default 60; -1 waits until completion or cancellation; positive values are capped at 12 hours by default).',
1643
+ },
1363
1644
  },
1364
1645
  required: ['sessionId'],
1365
1646
  },
@@ -1388,7 +1669,12 @@ export function bashToolDefinitions() {
1388
1669
  },
1389
1670
  {
1390
1671
  name: 'list_sessions',
1391
- description: 'List background sessions owned by this caller scope. Returns { sessions: [{ sessionId, command, running, exitCode, startedAt, endedAt }] }.',
1672
+ description: 'List background sessions owned by this caller scope. Returns { sessions: [{ sessionId, command, running, exitCode, detached, startedAt, endedAt }] }.',
1673
+ inputSchema: { type: 'object', properties: {} },
1674
+ },
1675
+ {
1676
+ name: 'release_owner',
1677
+ description: 'Kill and forget every non-detached background and terminal session owned by this caller scope. Idempotent. Sessions started with "detached": true are retained. FLUJO calls this when a run finishes; the scope is host-derived, so a caller can only release its own sessions. Returns { ownerScope, killedSessions, closedTerminals, retainedDetached }.',
1392
1678
  inputSchema: { type: 'object', properties: {} },
1393
1679
  },
1394
1680
  ];
@@ -1480,8 +1766,7 @@ async function runTool(args, roots, context) {
1480
1766
  const warnings = await scanCommandForExternalPaths(command, cwd, roots);
1481
1767
  const warn = warnings.length ? { warnings } : {};
1482
1768
  const normalize = args.normalizeNewlines === true;
1483
- const timeoutSec = typeof args.timeout === 'number' && args.timeout > 0 ? args.timeout : DEFAULT_TIMEOUT_MS / 1000;
1484
- const timeoutMs = Math.min(timeoutSec * 1000, MAX_TIMEOUT_MS);
1769
+ const timeoutMs = resolveCommandTimeoutMs(args.timeout);
1485
1770
  const maxOutputChars = resolveMaxOutputChars(args.maxOutputChars);
1486
1771
  let outputFilePath;
1487
1772
  if (args.outputFile !== undefined) {
@@ -1575,31 +1860,33 @@ async function runTool(args, roots, context) {
1575
1860
  await progress.stop();
1576
1861
  resolve(result);
1577
1862
  };
1578
- timer = setTimeout(() => {
1579
- cancelEscalation = killProcessTree(child);
1580
- const finalOut = maybeNormalize(output, normalize);
1581
- const hangHints = detectInteractiveHangRisk(command);
1582
- void finish(textResult({
1583
- timedOut: true,
1584
- cwd,
1585
- requestedShell,
1586
- shell: effectiveShell,
1587
- exitCode: null,
1588
- timeoutMs,
1589
- elapsedMs: Date.now() - startedAt,
1590
- killedProcessTree: true,
1591
- suggestion: `Command exceeded ${timeoutMs / 1000}s and its process tree was killed. `
1592
- + 'Raise "timeout" (max 600s) or run it via "start" + "wait" for long jobs.',
1593
- output: `${finalOut}${finalOut ? '\n' : ''}[killed after ${timeoutMs / 1000}s timeout]`,
1594
- ...outputStats(),
1595
- ...spoolInfo(),
1596
- ...(hangHints.length ? { hangHints } : {}),
1597
- ...dialect,
1598
- ...substitution,
1599
- ...auto,
1600
- ...warn,
1601
- }, true), true);
1602
- }, timeoutMs);
1863
+ if (timeoutMs !== undefined) {
1864
+ timer = setTimeout(() => {
1865
+ cancelEscalation = killProcessTree(child);
1866
+ const finalOut = maybeNormalize(output, normalize);
1867
+ const hangHints = detectInteractiveHangRisk(command);
1868
+ void finish(textResult({
1869
+ timedOut: true,
1870
+ cwd,
1871
+ requestedShell,
1872
+ shell: effectiveShell,
1873
+ exitCode: null,
1874
+ timeoutMs,
1875
+ elapsedMs: Date.now() - startedAt,
1876
+ killedProcessTree: true,
1877
+ suggestion: `Command exceeded ${timeoutMs / 1000}s and its process tree was killed. `
1878
+ + `Raise "timeout" (positive values cap at ${commandMaxTimeoutMs() / 1000}s), pass -1, or use "start" + "wait" for a persistent job.`,
1879
+ output: `${finalOut}${finalOut ? '\n' : ''}[killed after ${timeoutMs / 1000}s timeout]`,
1880
+ ...outputStats(),
1881
+ ...spoolInfo(),
1882
+ ...(hangHints.length ? { hangHints } : {}),
1883
+ ...dialect,
1884
+ ...substitution,
1885
+ ...auto,
1886
+ ...warn,
1887
+ }, true), true);
1888
+ }, timeoutMs);
1889
+ }
1603
1890
  child.stdout?.on('data', (d) => {
1604
1891
  const chunk = decodeStdout(d);
1605
1892
  append(chunk);
@@ -1679,6 +1966,23 @@ async function startTool(args, roots, ownerScope, context) {
1679
1966
  if (table.size >= MAX_SESSIONS) {
1680
1967
  return textResult({ error: `Too many active background sessions (max ${MAX_SESSIONS}). Kill some first.` }, true);
1681
1968
  }
1969
+ // Issue #413: the HOST-wide live cap spans background and terminal sessions.
1970
+ // A per-owner limit alone let N concurrent runs each stay legal while together
1971
+ // forking an unbounded number of live process trees on one machine. Expire
1972
+ // stale sessions first so the cap is measured against genuinely live work.
1973
+ expireStaleSessions();
1974
+ const hostLimit = maxLiveSessionsHost();
1975
+ if (liveSessionCount() >= hostLimit) {
1976
+ return textResult({
1977
+ error: `Too many live sessions on this host (max ${hostLimit} across background and terminal sessions). Wait for one to finish or kill one first.`,
1978
+ liveSessions: liveSessionCount(),
1979
+ }, true);
1980
+ }
1981
+ if (ownerLiveSessionCount(ownerScope) >= MAX_SESSIONS) {
1982
+ return textResult({ error: `Too many live sessions for this caller (max ${MAX_SESSIONS}). Kill some first.` }, true);
1983
+ }
1984
+ // Surviving the owning run must be an explicit choice (see releaseOwnerScope).
1985
+ const detached = args.detached === true || args.persistAfterRun === true;
1682
1986
  registerExitCleanup();
1683
1987
  const encodingMode = validateEncoding(args.encoding);
1684
1988
  if (!encodingMode) {
@@ -1724,6 +2028,8 @@ async function startTool(args, roots, ownerScope, context) {
1724
2028
  running: true,
1725
2029
  exitCode: null,
1726
2030
  startedAt: Date.now(),
2031
+ lastActivityAt: Date.now(),
2032
+ ...(detached ? { detached: true } : {}),
1727
2033
  };
1728
2034
  table.set(id, session);
1729
2035
  const append = makeAppender(() => session.output, (v, t) => { session.output = v; session.truncated = t || session.truncated; }, maxOutputChars);
@@ -1732,12 +2038,14 @@ async function startTool(args, roots, ownerScope, context) {
1732
2038
  const decodeStderr = createStreamDecoder(encodingMode);
1733
2039
  child.stdout?.on('data', (d) => {
1734
2040
  const chunk = decodeStdout(d);
2041
+ touchSession(session);
1735
2042
  append(chunk);
1736
2043
  spool.write(chunk);
1737
2044
  });
1738
2045
  child.stderr?.on('data', (d) => {
1739
2046
  const chunk = decodeStderr(d);
1740
2047
  session.stderrChars = (session.stderrChars ?? 0) + chunk.length;
2048
+ touchSession(session);
1741
2049
  append(chunk);
1742
2050
  spool.write(chunk);
1743
2051
  });
@@ -1761,6 +2069,7 @@ async function startTool(args, roots, ownerScope, context) {
1761
2069
  cwd,
1762
2070
  requestedShell,
1763
2071
  shell: effectiveShell,
2072
+ ...(detached ? { detached: true } : {}),
1764
2073
  ...(shellSubstitution ? { shellSubstitution } : {}),
1765
2074
  ...(selection.autoSelected ? { shellAutoSelected: true } : {}),
1766
2075
  ...(dialectWarnings.length ? { dialectWarnings } : {}),
@@ -1798,8 +2107,7 @@ async function waitTool(args, ownerScope, context) {
1798
2107
  if (context?.signal?.aborted) {
1799
2108
  return textResult(snapshot(session, { timedOut: false, cancelled: true }), true);
1800
2109
  }
1801
- const timeoutSec = typeof args.timeout === 'number' && args.timeout > 0 ? args.timeout : DEFAULT_TIMEOUT_MS / 1000;
1802
- const timeoutMs = Math.min(timeoutSec * 1000, MAX_TIMEOUT_MS);
2110
+ const timeoutMs = resolveCommandTimeoutMs(args.timeout);
1803
2111
  const progress = createCommandProgressReporter(context);
1804
2112
  const outcome = await new Promise((resolve) => {
1805
2113
  let settled = false;
@@ -1832,7 +2140,9 @@ async function waitTool(args, ownerScope, context) {
1832
2140
  }
1833
2141
  pollTimer = setTimeout(poll, 100);
1834
2142
  };
1835
- timeoutTimer = setTimeout(() => void finish('timedOut'), timeoutMs);
2143
+ if (timeoutMs !== undefined) {
2144
+ timeoutTimer = setTimeout(() => void finish('timedOut'), timeoutMs);
2145
+ }
1836
2146
  context?.signal?.addEventListener('abort', onAbort, { once: true });
1837
2147
  poll();
1838
2148
  });
@@ -1866,6 +2176,7 @@ function killTool(args, ownerScope) {
1866
2176
  if (session.running) {
1867
2177
  session.cancelEscalation = killProcessTree(session.child);
1868
2178
  }
2179
+ touchSession(session);
1869
2180
  return textResult({ sessionId: id, killed: true });
1870
2181
  }
1871
2182
  function listSessionsTool(ownerScope) {
@@ -1876,11 +2187,28 @@ function listSessionsTool(ownerScope) {
1876
2187
  command: s.command,
1877
2188
  running: s.running,
1878
2189
  exitCode: s.exitCode,
2190
+ detached: s.detached === true,
1879
2191
  startedAt: new Date(s.startedAt).toISOString(),
1880
2192
  endedAt: s.endedAt ? new Date(s.endedAt).toISOString() : undefined,
1881
2193
  }));
1882
2194
  return textResult({ sessions: list });
1883
2195
  }
2196
+ /**
2197
+ * Release every non-detached session of the CALLING scope.
2198
+ *
2199
+ * The scope is host-derived (`_meta.flujo.ownerScope`), never a tool argument, so
2200
+ * a caller can only ever release its own sessions - releasing by arbitrary scope
2201
+ * would be a cross-run kill primitive.
2202
+ */
2203
+ function releaseOwnerTool(ownerScope) {
2204
+ const released = releaseOwnerScope(ownerScope);
2205
+ return textResult({
2206
+ ownerScope: released.ownerScope,
2207
+ killedSessions: released.killedSessions,
2208
+ closedTerminals: released.closedTerminals,
2209
+ retainedDetached: released.retainedDetached,
2210
+ });
2211
+ }
1884
2212
  function terminalSnapshot(session) {
1885
2213
  return {
1886
2214
  sessionId: session.id,
@@ -1918,6 +2246,20 @@ async function openTerminalTool(args, roots, ownerScope) {
1918
2246
  if (ownedRunning.length >= MAX_SESSIONS) {
1919
2247
  return textResult({ error: `Too many active terminal sessions (max ${MAX_SESSIONS}). Close one first.` }, true);
1920
2248
  }
2249
+ // Issue #413: PTY sessions count against the SAME host-wide live cap as
2250
+ // background sessions - a terminal is just as much a live process tree.
2251
+ expireStaleSessions();
2252
+ const hostLimit = maxLiveSessionsHost();
2253
+ if (liveSessionCount() >= hostLimit) {
2254
+ return textResult({
2255
+ error: `Too many live sessions on this host (max ${hostLimit} across background and terminal sessions). Close one first.`,
2256
+ liveSessions: liveSessionCount(),
2257
+ }, true);
2258
+ }
2259
+ if (ownerLiveSessionCount(ownerScope) >= MAX_SESSIONS) {
2260
+ return textResult({ error: `Too many live sessions for this caller (max ${MAX_SESSIONS}). Close one first.` }, true);
2261
+ }
2262
+ registerExitCleanup();
1921
2263
  const cwd = await resolveCwd(args.cwd, roots);
1922
2264
  const plan = buildPtySpawn(shellValidation.shell);
1923
2265
  if (plan.unavailableShell) {
@@ -1966,9 +2308,14 @@ async function openTerminalTool(args, roots, ownerScope) {
1966
2308
  running: true,
1967
2309
  exitCode: null,
1968
2310
  startedAt: Date.now(),
2311
+ lastActivityAt: Date.now(),
2312
+ ...(args.detached === true || args.persistAfterRun === true ? { detached: true } : {}),
1969
2313
  };
1970
2314
  terminalSessions().set(id, session);
1971
- pty.onData((chunk) => appendTerminalOutput(session, chunk));
2315
+ pty.onData((chunk) => {
2316
+ touchSession(session);
2317
+ appendTerminalOutput(session, chunk);
2318
+ });
1972
2319
  pty.onExit(({ exitCode }) => {
1973
2320
  session.running = false;
1974
2321
  session.exitCode = exitCode;
@@ -1986,6 +2333,7 @@ function readTerminalTool(args, ownerScope) {
1986
2333
  const session = ownedTerminal(id, ownerScope);
1987
2334
  if (!session)
1988
2335
  return textResult({ error: `No terminal session with id "${id}".` }, true);
2336
+ touchSession(session);
1989
2337
  const requested = Number.isFinite(args.cursor) ? Math.max(0, Math.floor(Number(args.cursor))) : session.outputStart;
1990
2338
  const reset = requested < session.outputStart || requested > session.nextCursor;
1991
2339
  const cursor = reset ? session.outputStart : requested;
@@ -2007,6 +2355,7 @@ function writeTerminalTool(args, ownerScope) {
2007
2355
  if (data.length > 65_536)
2008
2356
  return textResult({ error: 'Terminal input is limited to 65,536 characters per write.' }, true);
2009
2357
  try {
2358
+ touchSession(session);
2010
2359
  session.pty.write(data);
2011
2360
  return textResult({ sessionId: id, written: Buffer.byteLength(data, 'utf8') });
2012
2361
  }
@@ -2097,6 +2446,8 @@ export async function bashCallTool(toolName, args, callerNodeId, ownerScope, con
2097
2446
  return killTool(args, scope);
2098
2447
  case 'list_sessions':
2099
2448
  return listSessionsTool(scope);
2449
+ case 'release_owner':
2450
+ return releaseOwnerTool(scope);
2100
2451
  default:
2101
2452
  return textResult({ error: `Unknown tool on the built-in bash server: ${toolName}` }, true);
2102
2453
  }
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mario.andreschak/mcp-bash",
3
- "version": "3.43.0",
3
+ "version": "3.45.0",
4
4
  "description": "FLUJO's standalone cross-platform shell MCP server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",