@mario.andreschak/mcp-bash 3.45.0 → 3.45.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 +5 -1
- package/dist/index.js.map +1 -1
- package/dist/resources.js +1 -1
- package/dist/shared.d.ts +0 -7
- package/dist/shared.js +0 -40
- package/dist/shared.js.map +1 -1
- package/dist/tools.d.ts +38 -0
- package/dist/tools.js +456 -370
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: bashToolD
|
|
|
38
38
|
server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
39
39
|
const meta = flujoMetaOf(request.params._meta);
|
|
40
40
|
const progressToken = request.params._meta?.progressToken;
|
|
41
|
-
|
|
41
|
+
const result = await bashCallTool(request.params.name, request.params.arguments ?? {}, meta.callerNodeId, meta.ownerScope, {
|
|
42
42
|
signal: extra.signal,
|
|
43
43
|
...(progressToken !== undefined
|
|
44
44
|
? {
|
|
@@ -51,6 +51,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
|
|
|
51
51
|
}
|
|
52
52
|
: {}),
|
|
53
53
|
});
|
|
54
|
+
if (progressToken !== undefined) {
|
|
55
|
+
await server.ping();
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
54
58
|
});
|
|
55
59
|
server.setRequestHandler(ListResourcesRequestSchema, async () => bashListResources());
|
|
56
60
|
server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({ resourceTemplates: [] }));
|
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/resources.js
CHANGED
|
@@ -81,7 +81,7 @@ const BASH_TERMINAL_APP_HTML = `<!doctype html>
|
|
|
81
81
|
</head>
|
|
82
82
|
<body>
|
|
83
83
|
<div id="toolbar">
|
|
84
|
-
<select id="shell" aria-label="Shell"><option value="default">Automatic</option><option value="pwsh">PowerShell</option><option value="bash">Bash</option><option value="cmd">cmd</option></select>
|
|
84
|
+
<select id="shell" aria-label="Shell"><option value="default">Automatic</option><option value="pwsh">PowerShell 7</option><option value="powershell">Windows PowerShell 5.1</option><option value="bash">Bash</option><option value="cmd">cmd</option></select>
|
|
85
85
|
<input id="cwd" aria-label="Working directory" value="." title="Working directory" />
|
|
86
86
|
<button id="new" type="button">New</button>
|
|
87
87
|
<button id="copy" type="button" title="Copy selection">Copy</button>
|
package/dist/shared.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ export type DiagnosticLogger = {
|
|
|
7
7
|
};
|
|
8
8
|
export declare function createLogger(scope: string): DiagnosticLogger;
|
|
9
9
|
export declare function getDataDir(): string;
|
|
10
|
-
export declare function getHomeDir(): string;
|
|
11
10
|
export declare function isInside(root: string, candidate: string): boolean;
|
|
12
11
|
export declare function envRoots(envVarNames: string | string[]): string[] | null;
|
|
13
12
|
export type RootsProvider = () => Promise<Array<{
|
|
@@ -15,10 +14,4 @@ export type RootsProvider = () => Promise<Array<{
|
|
|
15
14
|
}>>;
|
|
16
15
|
export declare function configureRootsProvider(provider: RootsProvider | undefined): void;
|
|
17
16
|
export declare function loadEffectiveRoots(_serverName: string, envVarNames: string | string[], _callerNodeId?: string): Promise<string[]>;
|
|
18
|
-
export declare const ALLOW_PROTECTED_PATHS_ENV = "FLUJO_ALLOW_PROTECTED_PATHS";
|
|
19
|
-
export declare function isProtectedPathsEnabled(): Promise<boolean>;
|
|
20
|
-
export declare function isProtected(candidate: string): {
|
|
21
|
-
denied: boolean;
|
|
22
|
-
matchedRoot?: string;
|
|
23
|
-
};
|
|
24
17
|
export declare function killProcessTree(child: ChildProcess, graceMs?: number): () => void;
|
package/dist/shared.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
-
import os from 'node:os';
|
|
3
2
|
import { spawn } from 'node:child_process';
|
|
4
3
|
import { fileURLToPath } from 'node:url';
|
|
5
4
|
function diagnostic(level, scope, message, detail) {
|
|
@@ -30,9 +29,6 @@ export function createLogger(scope) {
|
|
|
30
29
|
export function getDataDir() {
|
|
31
30
|
return path.resolve(process.env.FLUJO_DATA_DIR?.trim() || process.cwd());
|
|
32
31
|
}
|
|
33
|
-
export function getHomeDir() {
|
|
34
|
-
return path.resolve(process.env.FLUJO_HOME_DIR?.trim() || os.homedir());
|
|
35
|
-
}
|
|
36
32
|
export function isInside(root, candidate) {
|
|
37
33
|
const rel = path.relative(path.resolve(root), path.resolve(candidate));
|
|
38
34
|
return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
|
|
@@ -91,42 +87,6 @@ export async function loadEffectiveRoots(_serverName, envVarNames, _callerNodeId
|
|
|
91
87
|
const confined = configured.filter((candidate) => ceiling.some((root) => isInside(root, candidate)));
|
|
92
88
|
return confined.length > 0 ? confined : ceiling;
|
|
93
89
|
}
|
|
94
|
-
function truthy(value) {
|
|
95
|
-
return typeof value === 'string' && /^(1|true|yes|on)$/i.test(value.trim());
|
|
96
|
-
}
|
|
97
|
-
export const ALLOW_PROTECTED_PATHS_ENV = 'FLUJO_ALLOW_PROTECTED_PATHS';
|
|
98
|
-
export async function isProtectedPathsEnabled() {
|
|
99
|
-
if (truthy(process.env[ALLOW_PROTECTED_PATHS_ENV]))
|
|
100
|
-
return false;
|
|
101
|
-
return truthy(process.env.FLUJO_PROTECTED_PATHS_ENABLED);
|
|
102
|
-
}
|
|
103
|
-
function protectedPaths() {
|
|
104
|
-
if (truthy(process.env[ALLOW_PROTECTED_PATHS_ENV]))
|
|
105
|
-
return [];
|
|
106
|
-
const home = getHomeDir();
|
|
107
|
-
const underHome = (...segments) => path.resolve(home, ...segments);
|
|
108
|
-
if (process.platform === 'win32') {
|
|
109
|
-
return ['AppData', 'Downloads', 'Desktop', 'Documents', 'Pictures', 'Music', 'Videos', 'OneDrive'].map((item) => underHome(item));
|
|
110
|
-
}
|
|
111
|
-
if (process.platform === 'darwin') {
|
|
112
|
-
return [
|
|
113
|
-
'Downloads', 'Desktop', 'Documents', 'Pictures', 'Music', 'Movies',
|
|
114
|
-
'Library/Mail', 'Library/Messages', 'Library/Safari', 'Library/Cookies',
|
|
115
|
-
'Library/Calendars', 'Library/Application Support/AddressBook',
|
|
116
|
-
'Library/Application Support/com.apple.TCC', 'Library/PersonalizationPortrait',
|
|
117
|
-
'Library/Metadata/CoreSpotlight', 'Library/Suggestions',
|
|
118
|
-
].map((item) => underHome(item)).concat(['/.Spotlight-V100', '/.fseventsd', '/.DocumentRevisions-V100'].map((item) => path.resolve(item)));
|
|
119
|
-
}
|
|
120
|
-
return ['Documents', 'Downloads', 'Desktop', '.ssh', '.gnupg', '.aws', '.config'].map((item) => underHome(item));
|
|
121
|
-
}
|
|
122
|
-
export function isProtected(candidate) {
|
|
123
|
-
const resolved = path.resolve(candidate);
|
|
124
|
-
const exempt = [getDataDir(), os.tmpdir()].map((item) => path.resolve(item));
|
|
125
|
-
if (exempt.some((root) => isInside(root, resolved)))
|
|
126
|
-
return { denied: false };
|
|
127
|
-
const matchedRoot = protectedPaths().find((root) => isInside(root, resolved));
|
|
128
|
-
return matchedRoot ? { denied: true, matchedRoot } : { denied: false };
|
|
129
|
-
}
|
|
130
90
|
export function killProcessTree(child, graceMs = 2000) {
|
|
131
91
|
const pid = child.pid;
|
|
132
92
|
if (pid === undefined)
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { Tool, CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
|
4
4
|
export declare const BASH_TERMINAL_APP_URI = "ui://bash/terminal";
|
|
5
5
|
/** Test seam for the public timeout contract; not used by the runtime. */
|
|
6
6
|
export declare function _resolveCommandTimeoutMsForTests(value: unknown): number | undefined;
|
|
7
|
+
type ShellKind = 'default' | 'pwsh' | 'powershell' | 'bash' | 'cmd';
|
|
7
8
|
type EffectiveShell = 'pwsh' | 'powershell' | 'bash' | 'cmd' | 'sh';
|
|
8
9
|
export interface BashToolProgress {
|
|
9
10
|
progress: number;
|
|
@@ -43,9 +44,17 @@ interface BashSession {
|
|
|
43
44
|
ownerScope: string;
|
|
44
45
|
command: string;
|
|
45
46
|
cwd: string;
|
|
47
|
+
requestedShell: ShellKind;
|
|
48
|
+
shell: EffectiveShell;
|
|
49
|
+
shellPath: string;
|
|
50
|
+
shellSubstitution?: ResolvedShellPlan['shellSubstitution'];
|
|
46
51
|
child: ChildProcess;
|
|
47
52
|
output: string;
|
|
48
53
|
truncated: boolean;
|
|
54
|
+
/** Output accumulated since the most recent wait result, for output="delta". */
|
|
55
|
+
waitOutput: string;
|
|
56
|
+
waitOutputTruncated: boolean;
|
|
57
|
+
waitOutputLimit: number;
|
|
49
58
|
/** Characters that arrived on stderr (logging volume, not failure). */
|
|
50
59
|
stderrChars?: number;
|
|
51
60
|
running: boolean;
|
|
@@ -68,7 +77,10 @@ interface BashSession {
|
|
|
68
77
|
interface TerminalSession {
|
|
69
78
|
id: string;
|
|
70
79
|
ownerScope: string;
|
|
80
|
+
requestedShell: ShellKind;
|
|
71
81
|
shell: EffectiveShell;
|
|
82
|
+
shellPath: string;
|
|
83
|
+
shellSubstitution?: ResolvedShellPlan['shellSubstitution'];
|
|
72
84
|
cwd: string;
|
|
73
85
|
pty: IPty;
|
|
74
86
|
output: string;
|
|
@@ -142,9 +154,35 @@ export declare function bashSessionDiagnostics(): {
|
|
|
142
154
|
* alive after "shutdown".
|
|
143
155
|
*/
|
|
144
156
|
export declare function shutdownBashSessions(): void;
|
|
157
|
+
/** Remove exactly one caller-supplied leading U+FEFF from PowerShell source. */
|
|
158
|
+
export declare function normalizePowerShellSource(command: string): string;
|
|
145
159
|
export declare function wrapPowerShellCommand(command: string): string;
|
|
160
|
+
/**
|
|
161
|
+
* PowerShell's encoded-command transport is UTF-16LE without a BOM. Keeping the
|
|
162
|
+
* complete program in one base64 argv value avoids Windows command-line quoting
|
|
163
|
+
* ambiguities around nested quotes and literal `-c` arguments.
|
|
164
|
+
*/
|
|
165
|
+
export declare function encodePowerShellCommand(command: string): string;
|
|
146
166
|
/** `chcp 65001` forces UTF-8 output for cmd.exe children (issue #364). */
|
|
147
167
|
export declare function wrapCmdCommand(command: string): string;
|
|
168
|
+
type ShellLaunchMode = 'command' | 'pty';
|
|
169
|
+
interface ResolvedShellPlan {
|
|
170
|
+
requestedShell: ShellKind;
|
|
171
|
+
selectedShell: ShellKind;
|
|
172
|
+
file: string;
|
|
173
|
+
effectiveShell: EffectiveShell;
|
|
174
|
+
autoSelected: boolean;
|
|
175
|
+
/** Explicit shell lookup failed before any user command was executed. */
|
|
176
|
+
unavailableShell?: Exclude<ShellKind, 'default'>;
|
|
177
|
+
shellSubstitution?: {
|
|
178
|
+
requested: 'pwsh';
|
|
179
|
+
used: 'powershell';
|
|
180
|
+
reason: string;
|
|
181
|
+
};
|
|
182
|
+
startError?: string;
|
|
183
|
+
}
|
|
184
|
+
/** Test seam proving command and PTY entry points consume the same resolver. */
|
|
185
|
+
export declare function _resolveShellPlanForTests(command: string, shell: ShellKind, mode?: ShellLaunchMode): ResolvedShellPlan;
|
|
148
186
|
export interface OutputAppender {
|
|
149
187
|
(chunk: string): void;
|
|
150
188
|
/** Total characters ever appended, including any omitted middle. */
|