just-bash-mcp 2.6.0 → 2.7.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/build/config/index.d.ts +79 -0
- package/build/config/index.d.ts.map +1 -0
- package/build/config/index.js +178 -0
- package/build/config/index.js.map +1 -0
- package/build/index.d.ts +9 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +23 -439
- package/build/index.js.map +1 -1
- package/build/tools/bash-instance.d.ts +26 -0
- package/build/tools/bash-instance.d.ts.map +1 -0
- package/build/tools/bash-instance.js +106 -0
- package/build/tools/bash-instance.js.map +1 -0
- package/build/tools/exec-tools.d.ts +10 -0
- package/build/tools/exec-tools.d.ts.map +1 -0
- package/build/tools/exec-tools.js +98 -0
- package/build/tools/exec-tools.js.map +1 -0
- package/build/tools/file-tools.d.ts +10 -0
- package/build/tools/file-tools.d.ts.map +1 -0
- package/build/tools/file-tools.js +171 -0
- package/build/tools/file-tools.js.map +1 -0
- package/build/tools/index.d.ts +15 -0
- package/build/tools/index.d.ts.map +1 -0
- package/build/tools/index.js +29 -0
- package/build/tools/index.js.map +1 -0
- package/build/tools/info-tools.d.ts +10 -0
- package/build/tools/info-tools.d.ts.map +1 -0
- package/build/tools/info-tools.js +95 -0
- package/build/tools/info-tools.js.map +1 -0
- package/build/tools/sandbox-tools.d.ts +10 -0
- package/build/tools/sandbox-tools.d.ts.map +1 -0
- package/build/tools/sandbox-tools.js +124 -0
- package/build/tools/sandbox-tools.js.map +1 -0
- package/build/utils/index.d.ts +52 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +56 -0
- package/build/utils/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration module for just-bash-mcp
|
|
3
|
+
* Handles environment variable parsing and configuration building
|
|
4
|
+
*/
|
|
5
|
+
import { type BashLogger, type BashOptions, type CommandName, type MountConfig, type NetworkConfig } from "just-bash";
|
|
6
|
+
export type HttpMethod = "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS";
|
|
7
|
+
export interface TraceEvent {
|
|
8
|
+
category: string;
|
|
9
|
+
name: string;
|
|
10
|
+
durationMs: number;
|
|
11
|
+
details?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export type TraceCallback = (event: TraceEvent) => void;
|
|
14
|
+
export interface Config {
|
|
15
|
+
readonly VERSION: string;
|
|
16
|
+
readonly SERVER_NAME: string;
|
|
17
|
+
readonly OVERLAY_ROOT: string | undefined;
|
|
18
|
+
readonly READ_WRITE_ROOT: string | undefined;
|
|
19
|
+
readonly MOUNTS_CONFIG: string | undefined;
|
|
20
|
+
readonly INITIAL_CWD: string;
|
|
21
|
+
readonly ALLOW_NETWORK: boolean;
|
|
22
|
+
readonly ALLOWED_URL_PREFIXES: string[];
|
|
23
|
+
readonly ALLOWED_METHODS: HttpMethod[];
|
|
24
|
+
readonly MAX_REDIRECTS: number;
|
|
25
|
+
readonly NETWORK_TIMEOUT_MS: number;
|
|
26
|
+
readonly MAX_CALL_DEPTH: number;
|
|
27
|
+
readonly MAX_COMMAND_COUNT: number;
|
|
28
|
+
readonly MAX_LOOP_ITERATIONS: number;
|
|
29
|
+
readonly MAX_SQLITE_TIMEOUT_MS: number;
|
|
30
|
+
readonly MAX_PYTHON_TIMEOUT_MS: number;
|
|
31
|
+
readonly MAX_OUTPUT_LENGTH: number;
|
|
32
|
+
readonly ENABLE_LOGGING: boolean;
|
|
33
|
+
readonly ENABLE_TRACING: boolean;
|
|
34
|
+
readonly ALLOWED_COMMANDS: CommandName[] | undefined;
|
|
35
|
+
}
|
|
36
|
+
export declare const config: Config;
|
|
37
|
+
export declare const bashLogger: BashLogger | undefined;
|
|
38
|
+
export declare const traceCallback: TraceCallback | undefined;
|
|
39
|
+
export declare function buildNetworkConfig(): NetworkConfig | undefined;
|
|
40
|
+
export declare function buildExecutionLimits(): NonNullable<BashOptions["executionLimits"]>;
|
|
41
|
+
export declare function parseMountsConfig(): MountConfig[];
|
|
42
|
+
export declare const ENVIRONMENT_VARIABLES: {
|
|
43
|
+
readonly JUST_BASH_OVERLAY_ROOT: "Real directory to mount as overlay (read from disk, write to memory)";
|
|
44
|
+
readonly JUST_BASH_READ_WRITE_ROOT: "Real directory with read-write access";
|
|
45
|
+
readonly JUST_BASH_MOUNTS: "JSON array of mount configurations";
|
|
46
|
+
readonly JUST_BASH_CWD: "Initial working directory (default: /home/user)";
|
|
47
|
+
readonly JUST_BASH_ALLOW_NETWORK: "Enable network access (default: false)";
|
|
48
|
+
readonly JUST_BASH_ALLOWED_URLS: "Comma-separated URL prefixes to allow";
|
|
49
|
+
readonly JUST_BASH_ALLOWED_METHODS: "Comma-separated HTTP methods (default: GET,HEAD)";
|
|
50
|
+
readonly JUST_BASH_ALLOWED_COMMANDS: "Comma-separated list of allowed commands";
|
|
51
|
+
readonly JUST_BASH_MAX_REDIRECTS: "Max HTTP redirects (default: 20)";
|
|
52
|
+
readonly JUST_BASH_NETWORK_TIMEOUT_MS: "Network timeout (default: 30000)";
|
|
53
|
+
readonly JUST_BASH_MAX_CALL_DEPTH: "Max recursion depth (default: 100)";
|
|
54
|
+
readonly JUST_BASH_MAX_COMMAND_COUNT: "Max commands per execution (default: 10000)";
|
|
55
|
+
readonly JUST_BASH_MAX_LOOP_ITERATIONS: "Max loop iterations (default: 10000)";
|
|
56
|
+
readonly JUST_BASH_MAX_SQLITE_TIMEOUT_MS: "SQLite timeout (default: 5000)";
|
|
57
|
+
readonly JUST_BASH_MAX_PYTHON_TIMEOUT_MS: "Python timeout (default: 30000)";
|
|
58
|
+
readonly JUST_BASH_MAX_OUTPUT_LENGTH: "Max output length (default: 30000)";
|
|
59
|
+
readonly JUST_BASH_ENABLE_LOGGING: "Enable debug logging (default: false)";
|
|
60
|
+
readonly JUST_BASH_ENABLE_TRACING: "Enable performance tracing (default: false)";
|
|
61
|
+
};
|
|
62
|
+
export declare const COMMAND_CATEGORIES: {
|
|
63
|
+
readonly fileOperations: "cat, cp, file, ln, ls, mkdir, mv, readlink, rm, rmdir, split, stat, touch, tree";
|
|
64
|
+
readonly textProcessing: "awk, base64, column, comm, cut, diff, expand, fold, grep (egrep, fgrep), head, join, md5sum, nl, od, paste, printf, rev, rg (ripgrep), sed, sha1sum, sha256sum, sort, strings, tac, tail, tr, unexpand, uniq, wc, xargs";
|
|
65
|
+
readonly dataProcessing: "jq (JSON), python3/python (Python via Pyodide), sqlite3 (SQLite), xan (CSV), yq (YAML/XML/TOML/CSV)";
|
|
66
|
+
readonly compression: "gzip (gunzip, zcat), tar";
|
|
67
|
+
readonly navigation: "basename, cd, dirname, du, echo, env, export, find, hostname, printenv, pwd, tee, whoami";
|
|
68
|
+
readonly shellUtilities: "alias, bash, chmod, clear, date, expr, false, help, history, seq, sh, sleep, time, timeout, true, unalias, which";
|
|
69
|
+
readonly network: "curl, html-to-markdown (when network enabled)";
|
|
70
|
+
};
|
|
71
|
+
export declare const FEATURES: {
|
|
72
|
+
readonly customCommands: "Define custom TypeScript commands using defineCommand()";
|
|
73
|
+
readonly rawScript: "Preserve leading whitespace in scripts (useful for here-docs)";
|
|
74
|
+
readonly logger: "Optional execution logging via BashLogger interface";
|
|
75
|
+
readonly trace: "Performance profiling via TraceCallback";
|
|
76
|
+
readonly commandFilter: "Restrict available commands via JUST_BASH_ALLOWED_COMMANDS env var";
|
|
77
|
+
readonly sandboxApi: "Vercel Sandbox compatible API via bash_sandbox_* tools";
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAGhB,KAAK,WAAW,EAChB,KAAK,aAAa,EAGlB,MAAM,WAAW,CAAC;AAMnB,MAAM,MAAM,UAAU,GACnB,KAAK,GACL,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,CAAC;AAEb,MAAM,WAAW,UAAU;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AA6BxD,MAAM,WAAW,MAAM;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;CACrD;AAYD,eAAO,MAAM,MAAM,EAAE,MAkCpB,CAAC;AAMF,eAAO,MAAM,UAAU,EAAE,UAAU,GAAG,SAS1B,CAAC;AAEb,eAAO,MAAM,aAAa,EAAE,aAAa,GAAG,SAOhC,CAAC;AAMb,wBAAgB,kBAAkB,IAAI,aAAa,GAAG,SAAS,CAmB9D;AAED,wBAAgB,oBAAoB,IAAI,WAAW,CAClD,WAAW,CAAC,iBAAiB,CAAC,CAC9B,CAWA;AAED,wBAAgB,iBAAiB,IAAI,WAAW,EAAE,CAkBjD;AAMD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CAoBxB,CAAC;AAMX,eAAO,MAAM,kBAAkB;;;;;;;;CAarB,CAAC;AAMX,eAAO,MAAM,QAAQ;;;;;;;CAQX,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration module for just-bash-mcp
|
|
3
|
+
* Handles environment variable parsing and configuration building
|
|
4
|
+
*/
|
|
5
|
+
import { OverlayFs, ReadWriteFs, } from "just-bash";
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Environment Variable Parsing
|
|
8
|
+
// ============================================================================
|
|
9
|
+
function parseEnvString(key, defaultValue) {
|
|
10
|
+
return process.env[key] || defaultValue;
|
|
11
|
+
}
|
|
12
|
+
function parseEnvBoolean(key, defaultValue) {
|
|
13
|
+
return process.env[key] === "true" ? true : defaultValue;
|
|
14
|
+
}
|
|
15
|
+
function parseEnvInt(key, defaultValue) {
|
|
16
|
+
const value = process.env[key];
|
|
17
|
+
if (!value)
|
|
18
|
+
return defaultValue;
|
|
19
|
+
const parsed = Number.parseInt(value, 10);
|
|
20
|
+
return Number.isNaN(parsed) ? defaultValue : parsed;
|
|
21
|
+
}
|
|
22
|
+
function parseEnvStringArray(key) {
|
|
23
|
+
return process.env[key]?.split(",").filter(Boolean) || [];
|
|
24
|
+
}
|
|
25
|
+
function getAllowedMethods() {
|
|
26
|
+
const methods = parseEnvStringArray("JUST_BASH_ALLOWED_METHODS");
|
|
27
|
+
return methods.length > 0 ? methods : ["GET", "HEAD"];
|
|
28
|
+
}
|
|
29
|
+
function getAllowedCommands() {
|
|
30
|
+
const commands = parseEnvStringArray("JUST_BASH_ALLOWED_COMMANDS");
|
|
31
|
+
return commands.length > 0 ? commands : undefined;
|
|
32
|
+
}
|
|
33
|
+
export const config = {
|
|
34
|
+
// Server info
|
|
35
|
+
VERSION: "2.7.0",
|
|
36
|
+
SERVER_NAME: "just-bash-mcp",
|
|
37
|
+
// Filesystem configuration
|
|
38
|
+
OVERLAY_ROOT: process.env.JUST_BASH_OVERLAY_ROOT,
|
|
39
|
+
READ_WRITE_ROOT: process.env.JUST_BASH_READ_WRITE_ROOT,
|
|
40
|
+
MOUNTS_CONFIG: process.env.JUST_BASH_MOUNTS,
|
|
41
|
+
INITIAL_CWD: parseEnvString("JUST_BASH_CWD", "/home/user"),
|
|
42
|
+
// Network configuration
|
|
43
|
+
ALLOW_NETWORK: parseEnvBoolean("JUST_BASH_ALLOW_NETWORK", false),
|
|
44
|
+
ALLOWED_URL_PREFIXES: parseEnvStringArray("JUST_BASH_ALLOWED_URLS"),
|
|
45
|
+
ALLOWED_METHODS: getAllowedMethods(),
|
|
46
|
+
MAX_REDIRECTS: parseEnvInt("JUST_BASH_MAX_REDIRECTS", 20),
|
|
47
|
+
NETWORK_TIMEOUT_MS: parseEnvInt("JUST_BASH_NETWORK_TIMEOUT_MS", 30000),
|
|
48
|
+
// Execution limits
|
|
49
|
+
MAX_CALL_DEPTH: parseEnvInt("JUST_BASH_MAX_CALL_DEPTH", 100),
|
|
50
|
+
MAX_COMMAND_COUNT: parseEnvInt("JUST_BASH_MAX_COMMAND_COUNT", 10000),
|
|
51
|
+
MAX_LOOP_ITERATIONS: parseEnvInt("JUST_BASH_MAX_LOOP_ITERATIONS", 10000),
|
|
52
|
+
MAX_SQLITE_TIMEOUT_MS: parseEnvInt("JUST_BASH_MAX_SQLITE_TIMEOUT_MS", 5000),
|
|
53
|
+
MAX_PYTHON_TIMEOUT_MS: parseEnvInt("JUST_BASH_MAX_PYTHON_TIMEOUT_MS", 30000),
|
|
54
|
+
// Output limits
|
|
55
|
+
MAX_OUTPUT_LENGTH: parseEnvInt("JUST_BASH_MAX_OUTPUT_LENGTH", 30000),
|
|
56
|
+
// Debugging
|
|
57
|
+
ENABLE_LOGGING: parseEnvBoolean("JUST_BASH_ENABLE_LOGGING", false),
|
|
58
|
+
ENABLE_TRACING: parseEnvBoolean("JUST_BASH_ENABLE_TRACING", false),
|
|
59
|
+
// Command filtering
|
|
60
|
+
ALLOWED_COMMANDS: getAllowedCommands(),
|
|
61
|
+
};
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Logger and Trace Callback
|
|
64
|
+
// ============================================================================
|
|
65
|
+
export const bashLogger = config.ENABLE_LOGGING
|
|
66
|
+
? {
|
|
67
|
+
info(message, data) {
|
|
68
|
+
console.error(`[just-bash] INFO: ${message}`, data || "");
|
|
69
|
+
},
|
|
70
|
+
debug(message, data) {
|
|
71
|
+
console.error(`[just-bash] DEBUG: ${message}`, data || "");
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
: undefined;
|
|
75
|
+
export const traceCallback = config.ENABLE_TRACING
|
|
76
|
+
? (event) => {
|
|
77
|
+
console.error(`[just-bash] TRACE: ${event.category}/${event.name} ${event.durationMs}ms`, event.details ? JSON.stringify(event.details) : "");
|
|
78
|
+
}
|
|
79
|
+
: undefined;
|
|
80
|
+
// ============================================================================
|
|
81
|
+
// Configuration Builders
|
|
82
|
+
// ============================================================================
|
|
83
|
+
export function buildNetworkConfig() {
|
|
84
|
+
if (!config.ALLOW_NETWORK) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (config.ALLOWED_URL_PREFIXES.length > 0) {
|
|
88
|
+
return {
|
|
89
|
+
allowedUrlPrefixes: config.ALLOWED_URL_PREFIXES,
|
|
90
|
+
allowedMethods: config.ALLOWED_METHODS,
|
|
91
|
+
maxRedirects: config.MAX_REDIRECTS,
|
|
92
|
+
timeoutMs: config.NETWORK_TIMEOUT_MS,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
dangerouslyAllowFullInternetAccess: true,
|
|
97
|
+
maxRedirects: config.MAX_REDIRECTS,
|
|
98
|
+
timeoutMs: config.NETWORK_TIMEOUT_MS,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export function buildExecutionLimits() {
|
|
102
|
+
return {
|
|
103
|
+
maxCallDepth: config.MAX_CALL_DEPTH,
|
|
104
|
+
maxCommandCount: config.MAX_COMMAND_COUNT,
|
|
105
|
+
maxLoopIterations: config.MAX_LOOP_ITERATIONS,
|
|
106
|
+
maxAwkIterations: config.MAX_LOOP_ITERATIONS,
|
|
107
|
+
maxSedIterations: config.MAX_LOOP_ITERATIONS,
|
|
108
|
+
maxJqIterations: config.MAX_LOOP_ITERATIONS,
|
|
109
|
+
maxSqliteTimeoutMs: config.MAX_SQLITE_TIMEOUT_MS,
|
|
110
|
+
maxPythonTimeoutMs: config.MAX_PYTHON_TIMEOUT_MS,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export function parseMountsConfig() {
|
|
114
|
+
if (!config.MOUNTS_CONFIG)
|
|
115
|
+
return [];
|
|
116
|
+
try {
|
|
117
|
+
const parsed = JSON.parse(config.MOUNTS_CONFIG);
|
|
118
|
+
if (!Array.isArray(parsed))
|
|
119
|
+
return [];
|
|
120
|
+
return parsed.map((mount) => {
|
|
121
|
+
const fsType = mount.type || "overlay";
|
|
122
|
+
const filesystem = fsType === "readwrite"
|
|
123
|
+
? new ReadWriteFs({ root: mount.root })
|
|
124
|
+
: new OverlayFs({ root: mount.root });
|
|
125
|
+
return { mountPoint: mount.mountPoint, filesystem };
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return [];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// ============================================================================
|
|
133
|
+
// Environment Variables Documentation
|
|
134
|
+
// ============================================================================
|
|
135
|
+
export const ENVIRONMENT_VARIABLES = {
|
|
136
|
+
JUST_BASH_OVERLAY_ROOT: "Real directory to mount as overlay (read from disk, write to memory)",
|
|
137
|
+
JUST_BASH_READ_WRITE_ROOT: "Real directory with read-write access",
|
|
138
|
+
JUST_BASH_MOUNTS: "JSON array of mount configurations",
|
|
139
|
+
JUST_BASH_CWD: "Initial working directory (default: /home/user)",
|
|
140
|
+
JUST_BASH_ALLOW_NETWORK: "Enable network access (default: false)",
|
|
141
|
+
JUST_BASH_ALLOWED_URLS: "Comma-separated URL prefixes to allow",
|
|
142
|
+
JUST_BASH_ALLOWED_METHODS: "Comma-separated HTTP methods (default: GET,HEAD)",
|
|
143
|
+
JUST_BASH_ALLOWED_COMMANDS: "Comma-separated list of allowed commands",
|
|
144
|
+
JUST_BASH_MAX_REDIRECTS: "Max HTTP redirects (default: 20)",
|
|
145
|
+
JUST_BASH_NETWORK_TIMEOUT_MS: "Network timeout (default: 30000)",
|
|
146
|
+
JUST_BASH_MAX_CALL_DEPTH: "Max recursion depth (default: 100)",
|
|
147
|
+
JUST_BASH_MAX_COMMAND_COUNT: "Max commands per execution (default: 10000)",
|
|
148
|
+
JUST_BASH_MAX_LOOP_ITERATIONS: "Max loop iterations (default: 10000)",
|
|
149
|
+
JUST_BASH_MAX_SQLITE_TIMEOUT_MS: "SQLite timeout (default: 5000)",
|
|
150
|
+
JUST_BASH_MAX_PYTHON_TIMEOUT_MS: "Python timeout (default: 30000)",
|
|
151
|
+
JUST_BASH_MAX_OUTPUT_LENGTH: "Max output length (default: 30000)",
|
|
152
|
+
JUST_BASH_ENABLE_LOGGING: "Enable debug logging (default: false)",
|
|
153
|
+
JUST_BASH_ENABLE_TRACING: "Enable performance tracing (default: false)",
|
|
154
|
+
};
|
|
155
|
+
// ============================================================================
|
|
156
|
+
// Command Categories Documentation
|
|
157
|
+
// ============================================================================
|
|
158
|
+
export const COMMAND_CATEGORIES = {
|
|
159
|
+
fileOperations: "cat, cp, file, ln, ls, mkdir, mv, readlink, rm, rmdir, split, stat, touch, tree",
|
|
160
|
+
textProcessing: "awk, base64, column, comm, cut, diff, expand, fold, grep (egrep, fgrep), head, join, md5sum, nl, od, paste, printf, rev, rg (ripgrep), sed, sha1sum, sha256sum, sort, strings, tac, tail, tr, unexpand, uniq, wc, xargs",
|
|
161
|
+
dataProcessing: "jq (JSON), python3/python (Python via Pyodide), sqlite3 (SQLite), xan (CSV), yq (YAML/XML/TOML/CSV)",
|
|
162
|
+
compression: "gzip (gunzip, zcat), tar",
|
|
163
|
+
navigation: "basename, cd, dirname, du, echo, env, export, find, hostname, printenv, pwd, tee, whoami",
|
|
164
|
+
shellUtilities: "alias, bash, chmod, clear, date, expr, false, help, history, seq, sh, sleep, time, timeout, true, unalias, which",
|
|
165
|
+
network: "curl, html-to-markdown (when network enabled)",
|
|
166
|
+
};
|
|
167
|
+
// ============================================================================
|
|
168
|
+
// Features Documentation
|
|
169
|
+
// ============================================================================
|
|
170
|
+
export const FEATURES = {
|
|
171
|
+
customCommands: "Define custom TypeScript commands using defineCommand()",
|
|
172
|
+
rawScript: "Preserve leading whitespace in scripts (useful for here-docs)",
|
|
173
|
+
logger: "Optional execution logging via BashLogger interface",
|
|
174
|
+
trace: "Performance profiling via TraceCallback",
|
|
175
|
+
commandFilter: "Restrict available commands via JUST_BASH_ALLOWED_COMMANDS env var",
|
|
176
|
+
sandboxApi: "Vercel Sandbox compatible API via bash_sandbox_* tools",
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* just-bash-mcp - MCP Server for sandboxed bash execution
|
|
4
|
+
*
|
|
5
|
+
* A Model Context Protocol (MCP) server that provides AI agents with a
|
|
6
|
+
* secure, sandboxed bash environment powered by just-bash from Vercel Labs.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/vercel-labs/just-bash
|
|
9
|
+
* @see https://modelcontextprotocol.io
|
|
10
|
+
*/
|
|
2
11
|
export {};
|
|
3
12
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG"}
|