remote-access-mcp 3.0.1 → 3.1.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/AGENTS.md +5 -4
- package/CHANGELOG.md +45 -0
- package/CONTRIBUTING.md +35 -0
- package/README.fa.md +27 -6
- package/README.md +42 -7
- package/SECURITY.md +41 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +7 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/core/approvals.d.ts +12 -0
- package/dist/core/approvals.d.ts.map +1 -0
- package/dist/core/approvals.js +7 -0
- package/dist/core/approvals.js.map +1 -0
- package/dist/core/config.d.ts +10 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +3 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/integrations.d.ts +16 -0
- package/dist/core/integrations.d.ts.map +1 -1
- package/dist/core/integrations.js +45 -32
- package/dist/core/integrations.js.map +1 -1
- package/dist/core/jobs.d.ts +35 -0
- package/dist/core/jobs.d.ts.map +1 -0
- package/dist/core/jobs.js +122 -0
- package/dist/core/jobs.js.map +1 -0
- package/dist/core/policy.d.ts +5 -0
- package/dist/core/policy.d.ts.map +1 -1
- package/dist/core/policy.js +23 -1
- package/dist/core/policy.js.map +1 -1
- package/dist/core/webcrypto.d.ts +2 -0
- package/dist/core/webcrypto.d.ts.map +1 -0
- package/dist/core/webcrypto.js +15 -0
- package/dist/core/webcrypto.js.map +1 -0
- package/dist/server/app.d.ts +1 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +6 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/run.d.ts.map +1 -1
- package/dist/server/run.js +2 -0
- package/dist/server/run.js.map +1 -1
- package/dist/tools/changes.d.ts +4 -0
- package/dist/tools/changes.d.ts.map +1 -0
- package/dist/tools/changes.js +33 -0
- package/dist/tools/changes.js.map +1 -0
- package/dist/tools/database.d.ts +4 -0
- package/dist/tools/database.d.ts.map +1 -0
- package/dist/tools/database.js +29 -0
- package/dist/tools/database.js.map +1 -0
- package/dist/tools/diagnostics.d.ts +4 -0
- package/dist/tools/diagnostics.d.ts.map +1 -0
- package/dist/tools/diagnostics.js +23 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/{fleet.d.ts → jobs.d.ts} +2 -2
- package/dist/tools/jobs.d.ts.map +1 -0
- package/dist/tools/jobs.js +42 -0
- package/dist/tools/jobs.js.map +1 -0
- package/dist/tools/monitoring.d.ts +4 -0
- package/dist/tools/monitoring.d.ts.map +1 -0
- package/dist/tools/monitoring.js +16 -0
- package/dist/tools/monitoring.js.map +1 -0
- package/dist/tools/plugins.d.ts +5 -0
- package/dist/tools/plugins.d.ts.map +1 -0
- package/dist/tools/plugins.js +40 -0
- package/dist/tools/plugins.js.map +1 -0
- package/dist/tools/resources-prompts.d.ts +4 -0
- package/dist/tools/resources-prompts.d.ts.map +1 -0
- package/dist/tools/resources-prompts.js +20 -0
- package/dist/tools/resources-prompts.js.map +1 -0
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +24 -2
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/transfer.d.ts +4 -0
- package/dist/tools/transfer.d.ts.map +1 -0
- package/dist/tools/transfer.js +14 -0
- package/dist/tools/transfer.js.map +1 -0
- package/docs/ai/tools-and-cli.md +24 -2
- package/package.json +16 -9
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -7
- package/dist/cli.js.map +0 -1
- package/dist/core/fleet.d.ts +0 -71
- package/dist/core/fleet.d.ts.map +0 -1
- package/dist/core/fleet.js +0 -148
- package/dist/core/fleet.js.map +0 -1
- package/dist/tools/fleet.d.ts.map +0 -1
- package/dist/tools/fleet.js +0 -39
- package/dist/tools/fleet.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
const rows = new Map();
|
|
3
|
+
export function requestApproval(tokenId, command, cwd) { const a = { id: crypto.randomUUID().slice(0, 12), tokenId, command, cwd, created: new Date().toISOString(), status: 'pending' }; rows.set(a.id, a); return a; }
|
|
4
|
+
export function getApproval(id, tokenId) { const a = rows.get(id); return a && (!tokenId || a.tokenId === tokenId) ? a : undefined; }
|
|
5
|
+
export function decideApproval(id, tokenId, approved) { const a = getApproval(id, tokenId); if (!a || a.status !== 'pending')
|
|
6
|
+
return a; a.status = approved ? 'approved' : 'rejected'; return a; }
|
|
7
|
+
//# sourceMappingURL=approvals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/core/approvals.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;AACzC,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAe,EAAE,GAAY,IAAc,MAAM,CAAC,GAAC,EAAC,EAAE,EAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,OAAO,EAAC,OAAO,EAAC,GAAG,EAAC,OAAO,EAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAC,MAAM,EAAC,SAAkB,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtP,MAAM,UAAU,WAAW,CAAC,EAAS,EAAE,OAAe,IAAwB,MAAM,CAAC,GAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpK,MAAM,UAAU,cAAc,CAAC,EAAS,EAAE,OAAwB,EAAE,QAAgB,IAAwB,MAAM,CAAC,GAAC,WAAW,CAAC,EAAE,EAAC,OAAO,CAAC,CAAC,CAAC,IAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAG,SAAS;IAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,QAAQ,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ export interface TokenRecord {
|
|
|
10
10
|
shell_enabled: boolean;
|
|
11
11
|
allowed_paths: string[];
|
|
12
12
|
denied_paths: string[];
|
|
13
|
+
role?: 'auditor' | 'developer' | 'deployer' | 'admin';
|
|
14
|
+
command_allowlist?: string[];
|
|
15
|
+
approval_mode?: 'auto' | 'approval-required';
|
|
13
16
|
}
|
|
14
17
|
export interface RamcpConfig {
|
|
15
18
|
/** @deprecated v1 field — kept only for auto-migration */
|
|
@@ -38,6 +41,13 @@ export interface RamcpConfig {
|
|
|
38
41
|
};
|
|
39
42
|
read_only: boolean;
|
|
40
43
|
tokens: TokenRecord[];
|
|
44
|
+
roles?: Record<string, {
|
|
45
|
+
scopes: string[];
|
|
46
|
+
read_only?: boolean;
|
|
47
|
+
shell_enabled?: boolean;
|
|
48
|
+
command_allowlist?: string[];
|
|
49
|
+
approval_mode?: 'auto' | 'approval-required';
|
|
50
|
+
}>;
|
|
41
51
|
/** @deprecated v1 fields — migrated into tokens[0] */
|
|
42
52
|
shell_enabled?: boolean;
|
|
43
53
|
allowed_paths?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.js
CHANGED
|
@@ -153,6 +153,9 @@ export function newTokenRecord(partial) {
|
|
|
153
153
|
shell_enabled: partial.shell_enabled ?? false,
|
|
154
154
|
allowed_paths: partial.allowed_paths || [],
|
|
155
155
|
denied_paths: partial.denied_paths || [],
|
|
156
|
+
role: partial.role,
|
|
157
|
+
command_allowlist: partial.command_allowlist,
|
|
158
|
+
approval_mode: partial.approval_mode,
|
|
156
159
|
};
|
|
157
160
|
}
|
|
158
161
|
/** Resolve a presented secret to its token record (or null if invalid/expired). */
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,22 @@ interface IntegrationClient {
|
|
|
9
9
|
tools: Tool[];
|
|
10
10
|
}
|
|
11
11
|
declare function zodFromJsonSchema(schema: any): z.ZodTypeAny;
|
|
12
|
+
export interface CodebaseMemoryRuntimePaths {
|
|
13
|
+
root: string;
|
|
14
|
+
home: string;
|
|
15
|
+
cache: string;
|
|
16
|
+
data: string;
|
|
17
|
+
runtime: string;
|
|
18
|
+
binDir: string;
|
|
19
|
+
bin: string;
|
|
20
|
+
workspace: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the complete private filesystem layout for this gateway's
|
|
24
|
+
* Codebase Memory instance. These paths intentionally never fall back to the
|
|
25
|
+
* service user's normal HOME/XDG directories.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveCodebaseMemoryRuntimePaths(env?: NodeJS.ProcessEnv): CodebaseMemoryRuntimePaths;
|
|
12
28
|
declare class IntegrationManager {
|
|
13
29
|
private readonly clients;
|
|
14
30
|
get(name: IntegrationName): Promise<IntegrationClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/core/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAE7D,UAAU,iBAAiB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,UAAU,CAsEpD;AAMD,cAAM,kBAAkB;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0D;IAE5E,GAAG,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAS9C,KAAK;
|
|
1
|
+
{"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../src/core/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAE7D,UAAU,iBAAiB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;CACjB;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,UAAU,CAsEpD;AAMD,MAAM,WAAW,0BAA0B;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,0BAA0B,CAYlH;AAED,cAAM,kBAAkB;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0D;IAE5E,GAAG,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAS9C,KAAK;IA6EnB,OAAO,CAAC,aAAa;IAef,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAiB1F,IAAI,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAGrD;AAED,eAAO,MAAM,YAAY,oBAA2B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -82,6 +82,24 @@ function zodFromJsonSchema(schema) {
|
|
|
82
82
|
function packageScript(packageName, relativeEntry) {
|
|
83
83
|
return new URL(`../../node_modules/${packageName}/${relativeEntry}`, import.meta.url).pathname;
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Resolve the complete private filesystem layout for this gateway's
|
|
87
|
+
* Codebase Memory instance. These paths intentionally never fall back to the
|
|
88
|
+
* service user's normal HOME/XDG directories.
|
|
89
|
+
*/
|
|
90
|
+
export function resolveCodebaseMemoryRuntimePaths(env = process.env) {
|
|
91
|
+
const root = env.RAMCP_CODEBASE_RUNTIME || '/var/lib/remote-access-mcp/codebase-memory';
|
|
92
|
+
return {
|
|
93
|
+
root,
|
|
94
|
+
home: env.RAMCP_CODEBASE_HOME || path.join(root, 'home'),
|
|
95
|
+
cache: env.RAMCP_CODEBASE_CACHE || path.join(root, 'cache'),
|
|
96
|
+
data: env.RAMCP_CODEBASE_DATA || path.join(root, 'data'),
|
|
97
|
+
runtime: path.join(root, 'runtime'),
|
|
98
|
+
binDir: path.join(root, 'bin'),
|
|
99
|
+
bin: path.join(root, 'bin', 'codebase-memory-mcp'),
|
|
100
|
+
workspace: env.RAMCP_CODEBASE_WORKSPACE || path.join(root, 'workspace'),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
85
103
|
class IntegrationManager {
|
|
86
104
|
clients = new Map();
|
|
87
105
|
async get(name) {
|
|
@@ -104,70 +122,65 @@ class IntegrationManager {
|
|
|
104
122
|
// Codebase Memory gets a private runtime owned by Remote Access MCP.
|
|
105
123
|
// Never inherit the service user's normal HOME/cache/config: other
|
|
106
124
|
// agents on the host may have their own Codebase Memory instances.
|
|
107
|
-
const
|
|
108
|
-
const runtimeHome = process.env.RAMCP_CODEBASE_HOME || path.join(runtimeRoot, 'home');
|
|
109
|
-
const runtimeCache = process.env.RAMCP_CODEBASE_CACHE || path.join(runtimeRoot, 'cache');
|
|
110
|
-
const runtimeData = process.env.RAMCP_CODEBASE_DATA || path.join(runtimeRoot, 'data');
|
|
111
|
-
const runtimeBinDir = path.join(runtimeRoot, 'bin');
|
|
112
|
-
const runtimeBin = path.join(runtimeBinDir, 'codebase-memory-mcp');
|
|
125
|
+
const paths = resolveCodebaseMemoryRuntimePaths(process.env);
|
|
113
126
|
const sourceBin = packageScript('codebase-memory-mcp', 'bin/codebase-memory-mcp');
|
|
114
|
-
fs.mkdirSync(
|
|
115
|
-
fs.mkdirSync(
|
|
116
|
-
fs.mkdirSync(
|
|
117
|
-
fs.mkdirSync(
|
|
127
|
+
fs.mkdirSync(paths.home, { recursive: true, mode: 0o750 });
|
|
128
|
+
fs.mkdirSync(paths.cache, { recursive: true, mode: 0o750 });
|
|
129
|
+
fs.mkdirSync(paths.data, { recursive: true, mode: 0o750 });
|
|
130
|
+
fs.mkdirSync(paths.binDir, { recursive: true, mode: 0o750 });
|
|
118
131
|
const sourceStat = fs.statSync(sourceBin);
|
|
119
132
|
let needsRefresh = true;
|
|
120
133
|
try {
|
|
121
|
-
const runtimeStat = fs.statSync(
|
|
134
|
+
const runtimeStat = fs.statSync(paths.bin);
|
|
122
135
|
needsRefresh = runtimeStat.size !== sourceStat.size || runtimeStat.mtimeMs !== sourceStat.mtimeMs;
|
|
123
136
|
}
|
|
124
137
|
catch {
|
|
125
138
|
needsRefresh = true;
|
|
126
139
|
}
|
|
127
140
|
if (needsRefresh) {
|
|
128
|
-
const staged = `${
|
|
141
|
+
const staged = `${paths.bin}.new`;
|
|
129
142
|
fs.copyFileSync(sourceBin, staged);
|
|
130
143
|
fs.chmodSync(staged, 0o750);
|
|
131
|
-
fs.renameSync(staged,
|
|
144
|
+
fs.renameSync(staged, paths.bin);
|
|
132
145
|
}
|
|
133
|
-
fs.chmodSync(
|
|
146
|
+
fs.chmodSync(paths.bin, 0o750);
|
|
134
147
|
try {
|
|
135
|
-
fs.chownSync(
|
|
136
|
-
fs.chownSync(
|
|
137
|
-
fs.chownSync(
|
|
138
|
-
fs.chownSync(
|
|
139
|
-
fs.chownSync(
|
|
148
|
+
fs.chownSync(paths.home, 995, 987);
|
|
149
|
+
fs.chownSync(paths.cache, 995, 987);
|
|
150
|
+
fs.chownSync(paths.data, 995, 987);
|
|
151
|
+
fs.chownSync(paths.binDir, 995, 987);
|
|
152
|
+
fs.chownSync(paths.bin, 995, 987);
|
|
140
153
|
}
|
|
141
154
|
catch {
|
|
142
155
|
// Non-root local development can still use the isolated runtime.
|
|
143
156
|
}
|
|
144
157
|
const isolatedEnv = {
|
|
145
158
|
...env,
|
|
146
|
-
HOME:
|
|
147
|
-
XDG_CACHE_HOME:
|
|
148
|
-
XDG_DATA_HOME:
|
|
149
|
-
CODEBASE_MEMORY_HOME:
|
|
150
|
-
CBM_CACHE_DIR:
|
|
151
|
-
CBM_RUNTIME_DIR:
|
|
152
|
-
CBM_ALLOWED_ROOT:
|
|
159
|
+
HOME: paths.home,
|
|
160
|
+
XDG_CACHE_HOME: paths.cache,
|
|
161
|
+
XDG_DATA_HOME: paths.data,
|
|
162
|
+
CODEBASE_MEMORY_HOME: paths.home,
|
|
163
|
+
CBM_CACHE_DIR: paths.cache,
|
|
164
|
+
CBM_RUNTIME_DIR: paths.runtime,
|
|
165
|
+
CBM_ALLOWED_ROOT: paths.workspace,
|
|
153
166
|
CBM_MEM_BUDGET_MB: process.env.RAMCP_CODEBASE_MEM_BUDGET_MB || '512',
|
|
154
167
|
CBM_WORKERS: process.env.RAMCP_CODEBASE_WORKERS || '1',
|
|
155
168
|
CBM_LOG_LEVEL: process.env.RAMCP_CODEBASE_LOG_LEVEL || 'warn',
|
|
156
169
|
};
|
|
157
|
-
fs.mkdirSync(
|
|
158
|
-
fs.mkdirSync(
|
|
170
|
+
fs.mkdirSync(paths.runtime, { recursive: true, mode: 0o750 });
|
|
171
|
+
fs.mkdirSync(paths.workspace, { recursive: true, mode: 0o750 });
|
|
159
172
|
try {
|
|
160
|
-
fs.chownSync(
|
|
173
|
+
fs.chownSync(paths.workspace, 995, 987);
|
|
161
174
|
}
|
|
162
175
|
catch { /* non-root */ }
|
|
163
176
|
try {
|
|
164
|
-
fs.chownSync(
|
|
177
|
+
fs.chownSync(paths.runtime, 995, 987);
|
|
165
178
|
}
|
|
166
179
|
catch { /* non-root */ }
|
|
167
180
|
return {
|
|
168
181
|
command: '/usr/sbin/runuser',
|
|
169
|
-
args: ['-u', 'remote-access-mcp', '--',
|
|
170
|
-
cwd:
|
|
182
|
+
args: ['-u', 'remote-access-mcp', '--', paths.bin],
|
|
183
|
+
cwd: paths.workspace,
|
|
171
184
|
env: isolatedEnv,
|
|
172
185
|
};
|
|
173
186
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/core/integrations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"integrations.js","sourceRoot":"","sources":["../../src/core/integrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type JobStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled' | 'timed_out';
|
|
2
|
+
export interface JobRecord {
|
|
3
|
+
id: string;
|
|
4
|
+
command: string;
|
|
5
|
+
cwd?: string;
|
|
6
|
+
status: JobStatus;
|
|
7
|
+
created: string;
|
|
8
|
+
started?: string;
|
|
9
|
+
finished?: string;
|
|
10
|
+
exitCode?: number | null;
|
|
11
|
+
signal?: string | null;
|
|
12
|
+
output: string;
|
|
13
|
+
truncated: boolean;
|
|
14
|
+
error?: string;
|
|
15
|
+
tokenId: string;
|
|
16
|
+
timeoutMs: number;
|
|
17
|
+
attempts: number;
|
|
18
|
+
maxAttempts: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class JobManager {
|
|
21
|
+
private jobs;
|
|
22
|
+
private running;
|
|
23
|
+
private queue;
|
|
24
|
+
private readonly maxWorkers;
|
|
25
|
+
constructor(maxWorkers?: number);
|
|
26
|
+
create(command: string, tokenId: string, cwd?: string, timeoutMs?: number, maxAttempts?: number): JobRecord;
|
|
27
|
+
get(id: string, tokenId?: string): JobRecord | undefined;
|
|
28
|
+
list(tokenId?: string): JobRecord[];
|
|
29
|
+
cancel(id: string, tokenId: string): boolean;
|
|
30
|
+
shutdown(): void;
|
|
31
|
+
private pump;
|
|
32
|
+
private persist;
|
|
33
|
+
}
|
|
34
|
+
export declare const jobManager: JobManager;
|
|
35
|
+
//# sourceMappingURL=jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/core/jobs.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAClG,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IACnH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CACjL;AAQD,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBACxB,UAAU,SAAmE;IASzF,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,SAAU,EAAE,WAAW,SAAI,GAAG,SAAS;IAIvG,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IACxD,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAO5C,QAAQ,IAAI,IAAI;IAChB,OAAO,CAAC,IAAI;IAwBZ,OAAO,CAAC,OAAO;CAChB;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { spawn } from 'node:child_process';
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
5
|
+
import { dataDir, childEnv, shellCommand } from './platform.js';
|
|
6
|
+
const MAX_OUTPUT = 200_000;
|
|
7
|
+
const STORE = path.join(dataDir(), 'jobs.json');
|
|
8
|
+
function load() { try {
|
|
9
|
+
return JSON.parse(fs.readFileSync(STORE, 'utf8'));
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return [];
|
|
13
|
+
} }
|
|
14
|
+
function save(rows) { fs.mkdirSync(path.dirname(STORE), { recursive: true }); fs.writeFileSync(STORE, JSON.stringify(rows.slice(-500), null, 2), { mode: 0o600 }); }
|
|
15
|
+
export class JobManager {
|
|
16
|
+
jobs = new Map();
|
|
17
|
+
running = 0;
|
|
18
|
+
queue = [];
|
|
19
|
+
maxWorkers;
|
|
20
|
+
constructor(maxWorkers = Math.max(2, Math.min(8, Number(process.env.RAMCP_WORKERS || 4)))) {
|
|
21
|
+
this.maxWorkers = maxWorkers;
|
|
22
|
+
for (const j of load()) {
|
|
23
|
+
if (j.status === 'running') {
|
|
24
|
+
j.status = 'queued';
|
|
25
|
+
j.started = undefined;
|
|
26
|
+
j.finished = undefined;
|
|
27
|
+
}
|
|
28
|
+
this.jobs.set(j.id, j);
|
|
29
|
+
if (j.status === 'queued')
|
|
30
|
+
this.queue.push(j.id);
|
|
31
|
+
}
|
|
32
|
+
this.pump();
|
|
33
|
+
}
|
|
34
|
+
create(command, tokenId, cwd, timeoutMs = 600_000, maxAttempts = 1) {
|
|
35
|
+
const j = { id: randomUUID(), command, cwd, status: 'queued', created: new Date().toISOString(), output: '', truncated: false, tokenId, timeoutMs: Math.min(Math.max(1000, timeoutMs), 600_000), attempts: 0, maxAttempts: Math.min(Math.max(1, maxAttempts), 5) };
|
|
36
|
+
this.jobs.set(j.id, j);
|
|
37
|
+
this.queue.push(j.id);
|
|
38
|
+
this.persist();
|
|
39
|
+
this.pump();
|
|
40
|
+
return j;
|
|
41
|
+
}
|
|
42
|
+
get(id, tokenId) { const j = this.jobs.get(id); return j && (!tokenId || j.tokenId === tokenId) ? { ...j } : undefined; }
|
|
43
|
+
list(tokenId) { return [...this.jobs.values()].filter(j => !tokenId || j.tokenId === tokenId).sort((a, b) => b.created.localeCompare(a.created)).map(j => ({ ...j })); }
|
|
44
|
+
cancel(id, tokenId) {
|
|
45
|
+
const j = this.jobs.get(id);
|
|
46
|
+
if (!j || j.tokenId !== tokenId)
|
|
47
|
+
return false;
|
|
48
|
+
if (j.status === 'queued') {
|
|
49
|
+
j.status = 'cancelled';
|
|
50
|
+
j.finished = new Date().toISOString();
|
|
51
|
+
this.queue = this.queue.filter(x => x !== id);
|
|
52
|
+
this.persist();
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
const child = j.__child;
|
|
56
|
+
if (child && j.status === 'running')
|
|
57
|
+
child.kill('SIGTERM');
|
|
58
|
+
else
|
|
59
|
+
return false;
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
shutdown() { for (const j of this.jobs.values()) {
|
|
63
|
+
const child = j.__child;
|
|
64
|
+
if (child)
|
|
65
|
+
child.kill('SIGTERM');
|
|
66
|
+
} }
|
|
67
|
+
pump() {
|
|
68
|
+
while (this.running < this.maxWorkers && this.queue.length) {
|
|
69
|
+
const id = this.queue.shift();
|
|
70
|
+
const j = this.jobs.get(id);
|
|
71
|
+
if (!j || j.status !== 'queued')
|
|
72
|
+
continue;
|
|
73
|
+
this.running++;
|
|
74
|
+
j.status = 'running';
|
|
75
|
+
j.started = new Date().toISOString();
|
|
76
|
+
this.persist();
|
|
77
|
+
const { file, args } = shellCommand(j.command);
|
|
78
|
+
j.attempts++;
|
|
79
|
+
const child = spawn(file, args, { cwd: j.cwd || undefined, env: childEnv(), windowsHide: true });
|
|
80
|
+
j.__child = child;
|
|
81
|
+
const timer = setTimeout(() => { j.__timedOut = true; child.kill('SIGTERM'); }, j.timeoutMs);
|
|
82
|
+
const append = (chunk) => { if (j.output.length >= MAX_OUTPUT) {
|
|
83
|
+
j.truncated = true;
|
|
84
|
+
return;
|
|
85
|
+
} const s = String(chunk); const room = MAX_OUTPUT - j.output.length; j.output += s.slice(0, room); if (s.length > room)
|
|
86
|
+
j.truncated = true; this.persist(); };
|
|
87
|
+
child.stdout.on('data', append);
|
|
88
|
+
child.stderr.on('data', x => append(`\n--- stderr ---\n${x}`));
|
|
89
|
+
child.on('error', e => { j.error = e.message; });
|
|
90
|
+
child.on('close', (code, signal) => {
|
|
91
|
+
clearTimeout(timer);
|
|
92
|
+
delete j.__child;
|
|
93
|
+
j.exitCode = code;
|
|
94
|
+
j.signal = signal;
|
|
95
|
+
if (j.__timedOut) {
|
|
96
|
+
delete j.__timedOut;
|
|
97
|
+
j.status = 'timed_out';
|
|
98
|
+
j.error = `Job timed out after ${j.timeoutMs}ms`;
|
|
99
|
+
}
|
|
100
|
+
else if (signal === 'SIGTERM' && !code)
|
|
101
|
+
j.status = 'cancelled';
|
|
102
|
+
else if (code === 0)
|
|
103
|
+
j.status = 'succeeded';
|
|
104
|
+
else if (j.attempts < j.maxAttempts) {
|
|
105
|
+
j.status = 'queued';
|
|
106
|
+
this.queue.push(j.id);
|
|
107
|
+
}
|
|
108
|
+
else
|
|
109
|
+
j.status = 'failed';
|
|
110
|
+
j.finished = j.status === 'queued' ? undefined : new Date().toISOString();
|
|
111
|
+
if (!j.output)
|
|
112
|
+
j.output = '(no output)';
|
|
113
|
+
this.running--;
|
|
114
|
+
this.persist();
|
|
115
|
+
this.pump();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
persist() { save([...this.jobs.values()].map(j => { const c = { ...j }; delete c.__child; return c; })); }
|
|
120
|
+
}
|
|
121
|
+
export const jobManager = new JobManager();
|
|
122
|
+
//# sourceMappingURL=jobs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/core/jobs.ts"],"names":[],"mappings":"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"}
|
package/dist/core/policy.d.ts
CHANGED
|
@@ -33,6 +33,11 @@ export declare function shellAllowed(policy: PolicyConfig): boolean;
|
|
|
33
33
|
/** Map a tool name to its scope group (null = uncategorized). */
|
|
34
34
|
export declare function scopeOf(tool: string): string | null;
|
|
35
35
|
/** Full gate: scope + read-only + (for path tools) sandbox. */
|
|
36
|
+
export interface CommandPolicy {
|
|
37
|
+
command_allowlist?: string[];
|
|
38
|
+
approval_mode?: 'auto' | 'approval-required';
|
|
39
|
+
}
|
|
40
|
+
export declare function assertCommandPolicy(policy: CommandPolicy, command: string, approved?: boolean): void;
|
|
36
41
|
export declare function assertToolPermitted(opts: {
|
|
37
42
|
tool: string;
|
|
38
43
|
scopes: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+CAA+C;AAC/C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+CAA+C;AAC/C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA4BhD,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,cAAc,aAQzB,CAAC;AAEH,wEAAwE;AACxE,qBAAa,WAAY,SAAQ,KAAK;aACR,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI3C;AAED,qEAAqE;AACrE,qBAAa,UAAW,SAAQ,KAAK;gBACvB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAItC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB7C;AAUD,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAUtE;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKnD;AAED,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;CAAE;AAE9G,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,IAAI,CAOlG;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAClG,IAAI,CAcN"}
|
package/dist/core/policy.js
CHANGED
|
@@ -20,6 +20,16 @@ export const TOOL_SCOPES = {
|
|
|
20
20
|
formatting: ['format_python', 'lint_python'],
|
|
21
21
|
documents: ['create_document'],
|
|
22
22
|
ops: ['environment_inspect', 'nginx_inspect'],
|
|
23
|
+
jobs: ['run_background', 'job_status', 'job_output', 'job_list', 'job_cancel', 'run_parallel'],
|
|
24
|
+
transfer: ['upload_file', 'download_file'],
|
|
25
|
+
diagnostics: ['system_diagnostics', 'diagnose_service'],
|
|
26
|
+
monitoring: ['health_watch', 'health_status', 'health_stop'],
|
|
27
|
+
database: ['database_query', 'database_schema'],
|
|
28
|
+
changes: ['change_set_begin', 'change_set_add', 'change_set_status', 'change_set_commit', 'change_set_rollback'],
|
|
29
|
+
resources: ['system_resource', 'services_resource', 'network_resource', 'projects_resource', 'audit_resource'],
|
|
30
|
+
prompts: ['diagnose_prompt', 'deploy_prompt', 'security_audit_prompt', 'inspect_project_prompt'],
|
|
31
|
+
plugins: ['plugin_list', 'plugin_install', 'plugin_remove'],
|
|
32
|
+
approvals: ['approval_decide'],
|
|
23
33
|
};
|
|
24
34
|
/** Tools that mutate state — refused under read_only. */
|
|
25
35
|
export const MUTATING_TOOLS = new Set([
|
|
@@ -27,6 +37,9 @@ export const MUTATING_TOOLS = new Set([
|
|
|
27
37
|
'git', 'sqlite_query', 'allow_path', 'deny_path',
|
|
28
38
|
'package_install', 'package_remove', 'service_action',
|
|
29
39
|
'schedule_command', 'cancel_scheduled_task', 'workspace_snapshot', 'rollback_changes',
|
|
40
|
+
'run_background', 'job_cancel', 'run_parallel', 'upload_file',
|
|
41
|
+
'package_install', 'package_remove', 'service_action', 'change_set_begin', 'change_set_add', 'change_set_commit', 'change_set_rollback',
|
|
42
|
+
'health_watch', 'health_stop', 'plugin_install', 'plugin_remove',
|
|
30
43
|
]);
|
|
31
44
|
/** Thrown by tools when a target path is outside the policy sandbox. */
|
|
32
45
|
export class PolicyError extends Error {
|
|
@@ -114,7 +127,16 @@ export function scopeOf(tool) {
|
|
|
114
127
|
}
|
|
115
128
|
return null;
|
|
116
129
|
}
|
|
117
|
-
|
|
130
|
+
export function assertCommandPolicy(policy, command, approved = false) {
|
|
131
|
+
if (policy.approval_mode === 'approval-required' && !approved)
|
|
132
|
+
throw new ScopeError('run_command', 'approval is required for command execution');
|
|
133
|
+
const list = policy.command_allowlist || [];
|
|
134
|
+
if (list.length) {
|
|
135
|
+
const executable = command.trim().split(/\s+/)[0]?.replace(/^.*[\\/]/, '') || '';
|
|
136
|
+
if (!list.includes(executable) && !list.includes(command.trim()))
|
|
137
|
+
throw new ScopeError('run_command', `command is not in the allowlist (${list.join(', ')})`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
118
140
|
export function assertToolPermitted(opts) {
|
|
119
141
|
const { tool, scopes, readOnly, policy, target } = opts;
|
|
120
142
|
if (scopes.length > 0 && !scopes.includes(tool)) {
|
package/dist/core/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AASxD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,WAAW,GAA6B;IACnD,UAAU,EAAE,CAAC,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC;IACjH,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,CAAC;IACtD,MAAM,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,oBAAoB,CAAC;IAC3D,IAAI,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC;IACjD,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,MAAM,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;IACzC,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC;IAC1E,IAAI,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC;IAC7C,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC9C,QAAQ,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;IAC/D,QAAQ,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,OAAO,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;IACpD,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC5C,QAAQ,EAAE,CAAC,kBAAkB,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;IACvF,UAAU,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC;IAC5C,SAAS,EAAE,CAAC,iBAAiB,CAAC;IAC9B,GAAG,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/core/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webcrypto.d.ts","sourceRoot":"","sources":["../../src/core/webcrypto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { webcrypto } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* Node.js 18 does not guarantee a global `crypto` in every execution
|
|
4
|
+
* environment (notably some test/embedded runtimes). The MCP SDK uses the
|
|
5
|
+
* Web Crypto global, so provide the standards-compatible Node implementation
|
|
6
|
+
* when it is missing.
|
|
7
|
+
*/
|
|
8
|
+
if (!globalThis.crypto) {
|
|
9
|
+
Object.defineProperty(globalThis, 'crypto', {
|
|
10
|
+
value: webcrypto,
|
|
11
|
+
configurable: true,
|
|
12
|
+
enumerable: true,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=webcrypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webcrypto.js","sourceRoot":"","sources":["../../src/core/webcrypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE;QACxC,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;KACnB,CAAC,CAAC;AACP,CAAC"}
|
package/dist/server/app.d.ts
CHANGED