77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
import path from 'node:path';
|
|
function resolveWorkspaceRoot() {
|
|
const fromEnv = process.env.WORKSPACE_ROOT;
|
|
const raw = fromEnv && fromEnv.trim().length > 0 ? fromEnv : process.cwd();
|
|
return path.resolve(raw);
|
|
}
|
|
export const config = {
|
|
/** Absolute path every tool call is confined to. */
|
|
workspaceRoot: resolveWorkspaceRoot(),
|
|
/** HTTP transport settings (only used by transports/http.ts). */
|
|
httpHost: process.env.MCP_HTTP_HOST ?? '127.0.0.1',
|
|
httpPort: Number.parseInt(process.env.MCP_HTTP_PORT ?? '3939', 10),
|
|
httpToken: process.env.MCP_HTTP_TOKEN,
|
|
/** Binaries the server is ever allowed to spawn. Basenames only (extension-insensitive). */
|
|
allowedBinaries: [
|
|
'npm',
|
|
'pnpm',
|
|
'yarn',
|
|
'bun',
|
|
'node',
|
|
'npx',
|
|
'git',
|
|
'php',
|
|
'composer',
|
|
'powershell',
|
|
'sh',
|
|
'bash',
|
|
// Composer vendor/bin tools invoked by the Laravel/CodeIgniter adapters.
|
|
// These are only ever resolved to a path inside the detected project's
|
|
// own vendor/bin directory (see PhpFrameworkAdapter.vendorBin), never
|
|
// taken verbatim from tool-call input.
|
|
'phpunit',
|
|
'pest',
|
|
'pint',
|
|
'phpcs',
|
|
'phpcbf',
|
|
// Docker CLI used by docker_compose_up/down.
|
|
'docker',
|
|
// Lighthouse CLI used by lighthouse_audit (also invokable via npx).
|
|
'lighthouse',
|
|
// v1.4 adapters: Django / Rails tooling.
|
|
'python',
|
|
'pip',
|
|
'poetry',
|
|
'uv',
|
|
'ruby',
|
|
'bundle',
|
|
'rails',
|
|
'gem',
|
|
],
|
|
/** Hard caps to keep tool output/process usage bounded. */
|
|
maxBufferedLogLines: 2000,
|
|
maxToolOutputChars: 20_000,
|
|
defaultCommandTimeoutMs: 120_000,
|
|
scaffoldCommandTimeoutMs: 5 * 60_000,
|
|
defaultReadyTimeoutMs: 30_000,
|
|
maxConcurrentProcesses: 10,
|
|
/** Docker-specific guardrails. */
|
|
dockerAllowedBaseImages: [
|
|
'node',
|
|
'nginx',
|
|
'postgres',
|
|
'redis',
|
|
'mysql',
|
|
'mariadb',
|
|
'mongo',
|
|
'php',
|
|
'composer',
|
|
'python',
|
|
'alpine',
|
|
'busybox',
|
|
],
|
|
maxConcurrentContainers: 10,
|
|
defaultContainerMemory: '512m',
|
|
defaultContainerCpus: '1.0',
|
|
};
|
|
//# sourceMappingURL=config.js.map
|