orbitx 0.2.7 → 0.2.9
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/core/base-agent.d.ts +1 -1
- package/dist/core/base-agent.d.ts.map +1 -1
- package/dist/core/base-agent.js +5 -1
- package/dist/core/base-agent.js.map +1 -1
- package/dist/core/mcp-client.d.ts +3 -2
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +13 -4
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/mcp-execution-policy.d.ts +14 -0
- package/dist/core/mcp-execution-policy.d.ts.map +1 -0
- package/dist/core/mcp-execution-policy.js +9 -0
- package/dist/core/mcp-execution-policy.js.map +1 -0
- package/dist/core/mcp-filter.d.ts +6 -2
- package/dist/core/mcp-filter.d.ts.map +1 -1
- package/dist/core/mcp-filter.js +4 -2
- package/dist/core/mcp-filter.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/tests/core/mcp-execution-policy.test.d.ts +2 -0
- package/dist/tests/core/mcp-execution-policy.test.d.ts.map +1 -0
- package/dist/tests/core/mcp-execution-policy.test.js +77 -0
- package/dist/tests/core/mcp-execution-policy.test.js.map +1 -0
- package/dist/tests/core/mcp-output-filter.test.d.ts +2 -0
- package/dist/tests/core/mcp-output-filter.test.d.ts.map +1 -0
- package/dist/tests/core/mcp-output-filter.test.js +43 -0
- package/dist/tests/core/mcp-output-filter.test.js.map +1 -0
- package/dist/tests/index.d.ts +2 -0
- package/dist/tests/index.d.ts.map +1 -1
- package/dist/tests/index.js +2 -0
- package/dist/tests/index.js.map +1 -1
- package/docs/agents.md +17 -1
- package/docs/api-reference.md +2 -1
- package/docs/mcp-architecture.md +38 -4
- package/docs/tools.md +2 -2
- package/package.json +1 -1
|
@@ -42,7 +42,7 @@ export declare class BaseAgent {
|
|
|
42
42
|
stop(): Promise<void>;
|
|
43
43
|
safeStop(): Promise<void>;
|
|
44
44
|
immediateStop(): void;
|
|
45
|
-
run(prompt: string, streamCallback?: StreamCallback): Promise<
|
|
45
|
+
run(prompt: string, streamCallback?: StreamCallback): Promise<boolean>;
|
|
46
46
|
getCurrentAgentStates(): {
|
|
47
47
|
compactMemory: string;
|
|
48
48
|
retiredMessages: Message[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,cAAc,EAA2D,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnJ,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAyB,KAAK,mBAAmB,EAAyB,MAAM,sBAAsB,CAAC;AAE9G,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AA2BhD,qBAAa,SAAS;;gBAqCN,EACR,cAAmB,EACnB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAIC,EACD,MAAW,EACX,gBAAgB,EAChB,QAAQ,EAAE,EACN,0BAAkC,EAGrC,EACJ,EAAE;QACC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,OAAO,EAAE,CAAC;QACxB,UAAU,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,0NAA0N;QAC1N,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE;YACP,aAAa,EAAE,MAAM,CAAC;YACtB,gQAAgQ;YAChQ,eAAe,EAAE,OAAO,EAAE,CAAC;YAC3B,yEAAyE;YACzE,eAAe,EAAE,OAAO,EAAE,CAAC;SAC9B,CAAC;QACF,4GAA4G;QAC5G,QAAQ,CAAC,EAAE;YACP,2VAA2V;YAC3V,0BAA0B,CAAC,EAAE,OAAO,CAAC;SACxC,CAAA;KACJ;IAsIK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB/B,aAAa,IAAI,IAAI;IAKf,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"base-agent.d.ts","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,cAAc,EAA2D,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnJ,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAyB,KAAK,mBAAmB,EAAyB,MAAM,sBAAsB,CAAC;AAE9G,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AA2BhD,qBAAa,SAAS;;gBAqCN,EACR,cAAmB,EACnB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAIC,EACD,MAAW,EACX,gBAAgB,EAChB,QAAQ,EAAE,EACN,0BAAkC,EAGrC,EACJ,EAAE;QACC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,OAAO,EAAE,CAAC;QACxB,UAAU,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,0NAA0N;QAC1N,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,EAAE;YACP,aAAa,EAAE,MAAM,CAAC;YACtB,gQAAgQ;YAChQ,eAAe,EAAE,OAAO,EAAE,CAAC;YAC3B,yEAAyE;YACzE,eAAe,EAAE,OAAO,EAAE,CAAC;SAC9B,CAAC;QACF,4GAA4G;QAC5G,QAAQ,CAAC,EAAE;YACP,2VAA2V;YAC3V,0BAA0B,CAAC,EAAE,OAAO,CAAC;SACxC,CAAA;KACJ;IAsIK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB/B,aAAa,IAAI,IAAI;IAKf,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAkK5E,qBAAqB;;;;;IAQrB,qBAAqB,CAAC,IAAI,EAAE,YAAY;;;;;;IAKxC,iBAAiB,CAAC,IAAI,EAAE,YAAY;;;;;;IAKpC,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAI/C,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;CAG/C;AAED,eAAe,SAAS,CAAC"}
|
package/dist/core/base-agent.js
CHANGED
|
@@ -204,7 +204,7 @@ ${this.#buildSkillsAndMemoryBlock(skills)}`;
|
|
|
204
204
|
this.#incomingRun.push({ prompt, timeout, interval, res });
|
|
205
205
|
});
|
|
206
206
|
if (result)
|
|
207
|
-
return;
|
|
207
|
+
return false;
|
|
208
208
|
else {
|
|
209
209
|
this.#incomingRun = [];
|
|
210
210
|
}
|
|
@@ -295,6 +295,10 @@ ${this.#buildSkillsAndMemoryBlock(skills)}`;
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
this.#runningProcess = false;
|
|
298
|
+
if (this.#incomingRun.length == 0)
|
|
299
|
+
return true;
|
|
300
|
+
else
|
|
301
|
+
return false;
|
|
298
302
|
}
|
|
299
303
|
#sumTokensForType(type, messages) {
|
|
300
304
|
let inputMiss = 0, inputCache = 0, output = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-agent.js","sourceRoot":"","sources":["../../src/core/base-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,15 @@ import type MCPConnection from "./mcp-connection.js";
|
|
|
3
3
|
import { MCP } from "./mcp.js";
|
|
4
4
|
import MCPRNG from "./mcp-rng.js";
|
|
5
5
|
import type MCPStorage from "./mcp-storage.js";
|
|
6
|
-
import
|
|
6
|
+
import MCPOutputFilter from "./mcp-filter.js";
|
|
7
|
+
import MCPExecutionPolicy from "./mcp-execution-policy.js";
|
|
7
8
|
import type { ProviderType } from "./ai-provider.js";
|
|
8
9
|
type ExecuteProviderHandler = (toolCallId: string, type: ProviderType, input: Record<string, any>) => Promise<{
|
|
9
10
|
output: Record<string, any>;
|
|
10
11
|
}>;
|
|
11
12
|
export declare class MCPClient extends MCP {
|
|
12
13
|
#private;
|
|
13
|
-
constructor(envID: string, connection: MCPConnection | MCPConnection[], storage?: MCPStorage, rng?: MCPRNG, mcpFilter?:
|
|
14
|
+
constructor(envID: string, connection: MCPConnection | MCPConnection[], storage?: MCPStorage, rng?: MCPRNG, mcpFilter?: MCPOutputFilter, executionPolicy?: MCPExecutionPolicy);
|
|
14
15
|
getStorage(): MCPStorage;
|
|
15
16
|
getRNG(): MCPRNG;
|
|
16
17
|
setExecuteProviderHandler(handler: ExecuteProviderHandler): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAuB,MAAM,UAAU,CAAC;AACpD,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,GAAG,EAAuB,MAAM,UAAU,CAAC;AACpD,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAE/C,OAAO,eAAe,MAAM,iBAAiB,CAAC;AAC9C,OAAO,kBAAgD,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,KAAK,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CAAC,CAAC;AAE/I,qBAAa,SAAU,SAAQ,GAAG;;gBAUlB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,aAAa,EAAE,EAAE,OAAO,GAAE,UAA+B,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,kBAAkB;IA+BjM,UAAU,IAAI,UAAU;IAIxB,MAAM,IAAI,MAAM;IAIhB,yBAAyB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAIhE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAOvH,QAAQ;cAGI,MAAM;qBACC,MAAM;gBACX;YACJ,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;YAC3D,WAAW,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,OAAO,CAAC,EAAE,GAAG,CAAC;SACjB,EAAE;;IAwCT,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM;IAyCjF,YAAY,CAAC,IAAI,EAAE,OAAO;CAI7B;AAED,eAAe,SAAS,CAAC"}
|
package/dist/core/mcp-client.js
CHANGED
|
@@ -2,26 +2,31 @@ import { randomUUID } from "crypto";
|
|
|
2
2
|
import { MCP, normalizeToolOutput } from "./mcp.js";
|
|
3
3
|
import MCPRNG from "./mcp-rng.js";
|
|
4
4
|
import MCPFSStorage from "./mcp-fs-storage.js";
|
|
5
|
-
import
|
|
5
|
+
import MCPOutputFilter from "./mcp-filter.js";
|
|
6
|
+
import MCPExecutionPolicy, { MCPBypassExecutionPolicy } from "./mcp-execution-policy.js";
|
|
6
7
|
export class MCPClient extends MCP {
|
|
7
8
|
#connections;
|
|
8
9
|
#storage;
|
|
9
10
|
#rng;
|
|
10
11
|
#mcpFilter;
|
|
12
|
+
#executionPolicy;
|
|
11
13
|
#tools = [];
|
|
12
14
|
#envID;
|
|
13
15
|
#executeProviderHandler;
|
|
14
|
-
constructor(envID, connection, storage = new MCPFSStorage(), rng, mcpFilter) {
|
|
16
|
+
constructor(envID, connection, storage = new MCPFSStorage(), rng, mcpFilter, executionPolicy) {
|
|
15
17
|
super();
|
|
16
18
|
this.#storage = storage;
|
|
17
19
|
if (!rng)
|
|
18
20
|
rng = new MCPRNG(storage);
|
|
19
21
|
if (!mcpFilter)
|
|
20
|
-
mcpFilter = new
|
|
21
|
-
// /\b(?:10\.|172\.(?:1[6-9]|2\d|3[01])\.|192\.168\.)\d{1,3}\.\d{1,3}\b/g // Prevent any local ip leakage by default you can pass empty
|
|
22
|
+
mcpFilter = new MCPOutputFilter([
|
|
23
|
+
// /\b(?:10\.|172\.(?:1[6-9]|2\d|3[01])\.|192\.168\.)\d{1,3}\.\d{1,3}\b/g // Prevent any local ip leakage by default you can pass empty MCPOutputFilter to disable it
|
|
22
24
|
// we add some default security roles after this feature become stable
|
|
23
25
|
]);
|
|
26
|
+
if (!executionPolicy)
|
|
27
|
+
executionPolicy = new MCPBypassExecutionPolicy();
|
|
24
28
|
this.#mcpFilter = mcpFilter;
|
|
29
|
+
this.#executionPolicy = executionPolicy;
|
|
25
30
|
this.#rng = rng;
|
|
26
31
|
this.#connections = Array.isArray(connection) ? connection : [connection];
|
|
27
32
|
this.#envID = envID;
|
|
@@ -90,6 +95,10 @@ export class MCPClient extends MCP {
|
|
|
90
95
|
return [...clientTools, ...connectionsTools.filter(t => !clientToolNames.has(t.name))];
|
|
91
96
|
}
|
|
92
97
|
async callTool(toolName, inputs, toolCallId) {
|
|
98
|
+
const authorized = await this.#executionPolicy.authorize({ toolName, inputs, envID: this.#envID, toolCallId });
|
|
99
|
+
if (!authorized) {
|
|
100
|
+
throw new Error(`MCPExecutionPolicy denied tool call "${toolName}".`);
|
|
101
|
+
}
|
|
93
102
|
const clientTool = this.#tools.find(t => t.getOptions().name == toolName);
|
|
94
103
|
if (clientTool) {
|
|
95
104
|
const raw = await clientTool.getOptions().execute(this.#envID, inputs, toolCallId, clientTool.getMCP());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface MCPToolCallRequest {
|
|
2
|
+
toolName: string;
|
|
3
|
+
inputs: Record<string, any>;
|
|
4
|
+
envID: string;
|
|
5
|
+
toolCallId?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class MCPExecutionPolicy {
|
|
8
|
+
abstract authorize(request: MCPToolCallRequest): Promise<boolean> | boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class MCPBypassExecutionPolicy extends MCPExecutionPolicy {
|
|
11
|
+
authorize(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export default MCPExecutionPolicy;
|
|
14
|
+
//# sourceMappingURL=mcp-execution-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-execution-policy.d.ts","sourceRoot":"","sources":["../../src/core/mcp-execution-policy.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8BAAsB,kBAAkB;IACpC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;CAC9E;AAED,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC5D,SAAS,IAAI,OAAO;CAGvB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-execution-policy.js","sourceRoot":"","sources":["../../src/core/mcp-execution-policy.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,kBAAkB;CAEvC;AAED,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAC5D,SAAS;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class MCPOutputFilter {
|
|
2
2
|
#private;
|
|
3
3
|
constructor(values: (string | RegExp)[]);
|
|
4
4
|
filter(input: any): any;
|
|
5
5
|
}
|
|
6
|
-
|
|
6
|
+
/** @deprecated Renamed to `MCPOutputFilter` — this alias will be removed in 1.0.0. */
|
|
7
|
+
export declare const MCPFilter: typeof MCPOutputFilter;
|
|
8
|
+
/** @deprecated Renamed to `MCPOutputFilter` — this alias will be removed in 1.0.0. */
|
|
9
|
+
export type MCPFilter = MCPOutputFilter;
|
|
10
|
+
export default MCPOutputFilter;
|
|
7
11
|
//# sourceMappingURL=mcp-filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-filter.d.ts","sourceRoot":"","sources":["../../src/core/mcp-filter.ts"],"names":[],"mappings":"AAAA,qBAAa,
|
|
1
|
+
{"version":3,"file":"mcp-filter.d.ts","sourceRoot":"","sources":["../../src/core/mcp-filter.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;;gBAGZ,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;IAIvC,MAAM,CAAC,KAAK,EAAE,GAAG;CAoBpB;AAED,sFAAsF;AACtF,eAAO,MAAM,SAAS,wBAAkB,CAAC;AACzC,sFAAsF;AACtF,MAAM,MAAM,SAAS,GAAG,eAAe,CAAC;AAExC,eAAe,eAAe,CAAC"}
|
package/dist/core/mcp-filter.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export class
|
|
1
|
+
export class MCPOutputFilter {
|
|
2
2
|
#values;
|
|
3
3
|
constructor(values) {
|
|
4
4
|
this.#values = values;
|
|
@@ -24,5 +24,7 @@ export class MCPFilter {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
/** @deprecated Renamed to `MCPOutputFilter` — this alias will be removed in 1.0.0. */
|
|
28
|
+
export const MCPFilter = MCPOutputFilter;
|
|
29
|
+
export default MCPOutputFilter;
|
|
28
30
|
//# sourceMappingURL=mcp-filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-filter.js","sourceRoot":"","sources":["../../src/core/mcp-filter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-filter.js","sourceRoot":"","sources":["../../src/core/mcp-filter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IACxB,OAAO,CAAsB;IAE7B,YAAY,MAA2B;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAU;QACb,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;YAC3C,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEtD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;oBAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC1E,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACJ,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC;YAED,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC1C,CAAC;IACL,CAAC;CACJ;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAIzC,eAAe,eAAe,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,7 +23,9 @@ export type { AgentProviderEntry, AgentProvidersInput } from "./core/agent-provi
|
|
|
23
23
|
export { MCPRNG } from "./core/mcp-rng.js";
|
|
24
24
|
export { MCPStorage } from "./core/mcp-storage.js";
|
|
25
25
|
export { MCPFSStorage } from "./core/mcp-fs-storage.js";
|
|
26
|
-
export { MCPFilter } from "./core/mcp-filter.js";
|
|
26
|
+
export { MCPOutputFilter, MCPFilter } from "./core/mcp-filter.js";
|
|
27
|
+
export { MCPExecutionPolicy, MCPBypassExecutionPolicy } from "./core/mcp-execution-policy.js";
|
|
28
|
+
export type { MCPToolCallRequest } from "./core/mcp-execution-policy.js";
|
|
27
29
|
export { SimpleAgent } from "./templates/simple.js";
|
|
28
30
|
export { WorkerAgent } from "./core/worker-agent.js";
|
|
29
31
|
export type { WorkerAgentRating } from "./core/worker-agent.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5N,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACnF,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC5E,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEzF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,8 @@ export { resolveAgentProviders, ProviderRegistry } from "./core/agent-providers.
|
|
|
18
18
|
export { MCPRNG } from "./core/mcp-rng.js";
|
|
19
19
|
export { MCPStorage } from "./core/mcp-storage.js";
|
|
20
20
|
export { MCPFSStorage } from "./core/mcp-fs-storage.js";
|
|
21
|
-
export { MCPFilter } from "./core/mcp-filter.js";
|
|
21
|
+
export { MCPOutputFilter, MCPFilter } from "./core/mcp-filter.js";
|
|
22
|
+
export { MCPExecutionPolicy, MCPBypassExecutionPolicy } from "./core/mcp-execution-policy.js";
|
|
22
23
|
export { SimpleAgent } from "./templates/simple.js";
|
|
23
24
|
export { WorkerAgent } from "./core/worker-agent.js";
|
|
24
25
|
export { AgentTools, AgentListTool, AgentHireTool, AgentPromptTool, AgentReportTool, AgentRegistry, } from "./tools/agent/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-execution-policy.test.d.ts","sourceRoot":"","sources":["../../../src/tests/core/mcp-execution-policy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { test, before, after, describe } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { MCPClient, MCPConnection, MCPServer, MCPTool, MCPExecutionPolicy, MCPBypassExecutionPolicy, } from "../../index.js";
|
|
4
|
+
const EchoTool = () => new MCPTool({
|
|
5
|
+
name: "echo",
|
|
6
|
+
description: "echoes its input back",
|
|
7
|
+
inputs: [{ name: "value", type: "string", description: "value to echo" }],
|
|
8
|
+
execute: async (_envID, inputs) => ({ value: inputs.value }),
|
|
9
|
+
});
|
|
10
|
+
class AllowlistPolicy extends MCPExecutionPolicy {
|
|
11
|
+
#allowed;
|
|
12
|
+
calls = [];
|
|
13
|
+
constructor(allowed) {
|
|
14
|
+
super();
|
|
15
|
+
this.#allowed = new Set(allowed);
|
|
16
|
+
}
|
|
17
|
+
authorize(request) {
|
|
18
|
+
this.calls.push(request);
|
|
19
|
+
return this.#allowed.has(request.toolName);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
class AsyncDenyPolicy extends MCPExecutionPolicy {
|
|
23
|
+
async authorize() {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
describe("core/mcp-execution-policy", () => {
|
|
28
|
+
let mcpConnection;
|
|
29
|
+
let mcpServer;
|
|
30
|
+
before(async () => {
|
|
31
|
+
mcpConnection = new MCPConnection();
|
|
32
|
+
mcpServer = new MCPServer(mcpConnection);
|
|
33
|
+
mcpServer.registerTool(EchoTool());
|
|
34
|
+
});
|
|
35
|
+
after(async () => {
|
|
36
|
+
mcpConnection?.close();
|
|
37
|
+
});
|
|
38
|
+
test("MCPExecutionPolicy: defaults to MCPBypassExecutionPolicy, allowing every call", async () => {
|
|
39
|
+
const client = new MCPClient("policy-default", mcpConnection);
|
|
40
|
+
const result = await client.callTool("echo", { value: "hi" });
|
|
41
|
+
assert.equal(result.output.value, "hi");
|
|
42
|
+
});
|
|
43
|
+
test("MCPExecutionPolicy: MCPBypassExecutionPolicy.authorize() always returns true", () => {
|
|
44
|
+
const policy = new MCPBypassExecutionPolicy();
|
|
45
|
+
assert.equal(policy.authorize(), true);
|
|
46
|
+
});
|
|
47
|
+
test("MCPExecutionPolicy: a denying policy rejects the call before it reaches the tool", async () => {
|
|
48
|
+
const client = new MCPClient("policy-deny", mcpConnection, undefined, undefined, undefined, new AsyncDenyPolicy());
|
|
49
|
+
await assert.rejects(() => client.callTool("echo", { value: "hi" }), /MCPExecutionPolicy denied tool call "echo"/);
|
|
50
|
+
});
|
|
51
|
+
test("MCPExecutionPolicy: an allowlist policy only allows listed tool names", async () => {
|
|
52
|
+
const policy = new AllowlistPolicy(["echo"]);
|
|
53
|
+
const client = new MCPClient("policy-allowlist", mcpConnection, undefined, undefined, undefined, policy);
|
|
54
|
+
const result = await client.callTool("echo", { value: "ok" });
|
|
55
|
+
assert.equal(result.output.value, "ok");
|
|
56
|
+
await assert.rejects(() => client.callTool("not-a-real-tool", {}));
|
|
57
|
+
});
|
|
58
|
+
test("MCPExecutionPolicy: authorize() receives toolName, inputs, envID, and toolCallId", async () => {
|
|
59
|
+
const policy = new AllowlistPolicy(["echo"]);
|
|
60
|
+
const client = new MCPClient("policy-request-shape", mcpConnection, undefined, undefined, undefined, policy);
|
|
61
|
+
await client.callTool("echo", { value: "hi" }, "call-123");
|
|
62
|
+
assert.equal(policy.calls.length, 1);
|
|
63
|
+
assert.deepEqual(policy.calls[0], {
|
|
64
|
+
toolName: "echo",
|
|
65
|
+
inputs: { value: "hi" },
|
|
66
|
+
envID: "policy-request-shape",
|
|
67
|
+
toolCallId: "call-123",
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
test("MCPExecutionPolicy: also gates a locally client-registered tool", async () => {
|
|
71
|
+
const policy = new AllowlistPolicy([]);
|
|
72
|
+
const client = new MCPClient("policy-local-tool", mcpConnection, undefined, undefined, undefined, policy);
|
|
73
|
+
client.registerTool(EchoTool());
|
|
74
|
+
await assert.rejects(() => client.callTool("echo", { value: "hi" }), /MCPExecutionPolicy denied tool call "echo"/);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=mcp-execution-policy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-execution-policy.test.js","sourceRoot":"","sources":["../../../src/tests/core/mcp-execution-policy.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EACH,SAAS,EACT,aAAa,EACb,SAAS,EACT,OAAO,EACP,kBAAkB,EAClB,wBAAwB,GAE3B,MAAM,gBAAgB,CAAC;AAExB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC;IAC/B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uBAAuB;IACpC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IACzE,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,MAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;CAC5F,CAAC,CAAC;AAEH,MAAM,eAAgB,SAAQ,kBAAkB;IAC5C,QAAQ,CAAc;IACtB,KAAK,GAAyB,EAAE,CAAC;IAEjC,YAAY,OAAiB;QACzB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,OAA2B;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;CACJ;AAED,MAAM,eAAgB,SAAQ,kBAAkB;IAC5C,KAAK,CAAC,SAAS;QACX,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACvC,IAAI,aAAwC,CAAC;IAC7C,IAAI,SAAoB,CAAC;IAEzB,MAAM,CAAC,KAAK,IAAI,EAAE;QACd,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,SAAS,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;QACzC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,IAAI,EAAE;QACb,aAAa,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,gBAAgB,EAAE,aAAc,CAAC,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,aAAa,EAAE,aAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QAEpH,MAAM,MAAM,CAAC,OAAO,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC9C,4CAA4C,CAC/C,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,kBAAkB,EAAE,aAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAE1G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAExC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,sBAAsB,EAAE,aAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAE9G,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAE3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9B,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACvB,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,UAAU;SACzB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,mBAAmB,EAAE,aAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3G,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEhC,MAAM,MAAM,CAAC,OAAO,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC9C,4CAA4C,CAC/C,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-output-filter.test.d.ts","sourceRoot":"","sources":["../../../src/tests/core/mcp-output-filter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { test, before, after, describe } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { MCPClient, MCPConnection, MCPServer, MCPOutputFilter, MCPFilter, MCPTool } from "../../index.js";
|
|
4
|
+
const SecretTool = () => new MCPTool({
|
|
5
|
+
name: "get-secret",
|
|
6
|
+
description: "returns a value containing a secret token",
|
|
7
|
+
inputs: [],
|
|
8
|
+
execute: async () => ({ message: "your api key is sk-1234567890abcdef" }),
|
|
9
|
+
});
|
|
10
|
+
describe("core/mcp-output-filter", () => {
|
|
11
|
+
let mcpConnection;
|
|
12
|
+
let mcpServer;
|
|
13
|
+
before(async () => {
|
|
14
|
+
mcpConnection = new MCPConnection();
|
|
15
|
+
mcpServer = new MCPServer(mcpConnection);
|
|
16
|
+
mcpServer.registerTool(SecretTool());
|
|
17
|
+
});
|
|
18
|
+
after(async () => {
|
|
19
|
+
mcpConnection?.close();
|
|
20
|
+
});
|
|
21
|
+
test("MCPOutputFilter: redacts a literal string match in tool output", async () => {
|
|
22
|
+
const filter = new MCPOutputFilter(["sk-1234567890abcdef"]);
|
|
23
|
+
const client = new MCPClient("filter-literal", mcpConnection, undefined, undefined, filter);
|
|
24
|
+
const result = await client.callTool("get-secret", {});
|
|
25
|
+
assert.ok(!JSON.stringify(result.output).includes("sk-1234567890abcdef"), "secret should not appear in output");
|
|
26
|
+
assert.equal(result.output.message, "your api key is FILTERED_OUTPUT");
|
|
27
|
+
});
|
|
28
|
+
test("MCPOutputFilter: redacts a regex match in tool output", async () => {
|
|
29
|
+
const filter = new MCPOutputFilter([/sk-[a-zA-Z0-9]{10,}/]);
|
|
30
|
+
const client = new MCPClient("filter-regex", mcpConnection, undefined, undefined, filter);
|
|
31
|
+
const result = await client.callTool("get-secret", {});
|
|
32
|
+
assert.equal(result.output.message, "your api key is FILTERED_OUTPUT");
|
|
33
|
+
});
|
|
34
|
+
test("MCPOutputFilter: no values configured leaves output untouched", async () => {
|
|
35
|
+
const client = new MCPClient("filter-none", mcpConnection, undefined, undefined, new MCPOutputFilter([]));
|
|
36
|
+
const result = await client.callTool("get-secret", {});
|
|
37
|
+
assert.equal(result.output.message, "your api key is sk-1234567890abcdef");
|
|
38
|
+
});
|
|
39
|
+
test("MCPOutputFilter: MCPFilter is a deprecated alias for the same class", () => {
|
|
40
|
+
assert.equal(MCPFilter, MCPOutputFilter);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=mcp-output-filter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-output-filter.test.js","sourceRoot":"","sources":["../../../src/tests/core/mcp-output-filter.test.ts"],"names":[],"mappings":"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"}
|
package/dist/tests/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import "./core/mcp-computer.test.js";
|
|
|
2
2
|
import "./core/mcp-connection.test.js";
|
|
3
3
|
import "./core/mcp-ipc-connection.test.js";
|
|
4
4
|
import "./core/mcp-ws-connection.test.js";
|
|
5
|
+
import "./core/mcp-output-filter.test.js";
|
|
6
|
+
import "./core/mcp-execution-policy.test.js";
|
|
5
7
|
import "./tools/utils/delay.test.js";
|
|
6
8
|
import "./tools/utils/get-current-time.test.js";
|
|
7
9
|
import "./tools/utils/read-image.test.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAG7C,OAAO,6BAA6B,CAAC;AACrC,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,iCAAiC,CAAC;AAEzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC,OAAO,iDAAiD,CAAC;AAEzD,OAAO,uCAAuC,CAAC;AAE/C,OAAO,mCAAmC,CAAC"}
|
package/dist/tests/index.js
CHANGED
|
@@ -2,6 +2,8 @@ import "./core/mcp-computer.test.js";
|
|
|
2
2
|
import "./core/mcp-connection.test.js";
|
|
3
3
|
import "./core/mcp-ipc-connection.test.js";
|
|
4
4
|
import "./core/mcp-ws-connection.test.js";
|
|
5
|
+
import "./core/mcp-output-filter.test.js";
|
|
6
|
+
import "./core/mcp-execution-policy.test.js";
|
|
5
7
|
import "./tools/utils/delay.test.js";
|
|
6
8
|
import "./tools/utils/get-current-time.test.js";
|
|
7
9
|
import "./tools/utils/read-image.test.js";
|
package/dist/tests/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAG7C,OAAO,6BAA6B,CAAC;AACrC,OAAO,wCAAwC,CAAC;AAChD,OAAO,kCAAkC,CAAC;AAE1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,iCAAiC,CAAC;AAEzC,OAAO,6BAA6B,CAAC;AACrC,OAAO,+BAA+B,CAAC;AACvC,OAAO,kCAAkC,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAExC,OAAO,iDAAiD,CAAC;AAEzD,OAAO,uCAAuC,CAAC;AAE/C,OAAO,mCAAmC,CAAC"}
|
package/docs/agents.md
CHANGED
|
@@ -45,7 +45,7 @@ Token accounting no longer lives in `initData` as separate counters — every `M
|
|
|
45
45
|
## The run loop
|
|
46
46
|
|
|
47
47
|
```ts
|
|
48
|
-
await agent.run(prompt: string, streamCallback?: StreamCallback): Promise<
|
|
48
|
+
await agent.run(prompt: string, streamCallback?: StreamCallback): Promise<boolean>;
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Each call to `run()`:
|
|
@@ -66,6 +66,22 @@ This is a deliberate design for absorbing multiple user prompts that arrive whil
|
|
|
66
66
|
|
|
67
67
|
Practical implication: don't treat an early queued call's resolved `run()` promise as "the model has now answered this prompt" — for anything but the last queued call, it only means the prompt was recorded. Drive replies off `streamCallback` if you need to know when the model has actually responded.
|
|
68
68
|
|
|
69
|
+
### The resolved boolean: "was my call the one that actually finished last?"
|
|
70
|
+
|
|
71
|
+
`run()` resolves to `true` only for the call whose own loop iteration was the one still executing when the agent finally went idle (no other `run()` call queued behind it in the meantime); every other call — including every non-last call in a queued batch (see above) and a call that itself got superseded by a later one arriving while it ran — resolves to `false`.
|
|
72
|
+
|
|
73
|
+
This matters for anything that should only happen exactly once — when the agent has truly gone idle — not once per overlapping `run()` call. A `console.log`/notification saying "agent finished" is a clear example: with several `run()` calls overlapping (a user firing off a couple of follow-ups before the first reply lands, or several callers hitting the same agent instance), every one of those calls eventually resolves — so logging on every resolution logs "finished" 2-3 times for what was really one continuous stretch of work, and the last one can land a noticeable delay after the others since it's the one that actually drove a full model turn. Gating on the resolved value being `true` instead fires exactly once, at the moment the agent actually has nothing left queued:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
if (await agent.run(prompt, streamCallback)) {
|
|
77
|
+
console.log("agent finished"); // fires exactly once, when the agent is genuinely idle
|
|
78
|
+
}
|
|
79
|
+
// without the check: could log "finished" 2-3 times, with the last one arriving
|
|
80
|
+
// minutes after the others if the final queued call drove a long tool-heavy turn
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
A `false` result isn't an error — it just means another `run()` call (either one already queued when yours was called, or one that queued while yours was executing) is the one that ended up driving the agent's final state, and that call is the one whose `true` you should be waiting on instead.
|
|
84
|
+
|
|
69
85
|
`safeStop()` requests the current run stop at the next safe point; it resolves once the loop has actually stopped, or rejects if it doesn't stop within 4 minutes. It does not interrupt an in-flight model call — that call is left to finish normally, and the loop stops right after.
|
|
70
86
|
|
|
71
87
|
`immediateStop()` requests the same stop but returns right away without waiting for confirmation, **and** aborts the in-flight `chat()` call to the main provider immediately — the underlying HTTP request is cancelled rather than left to run to completion, so no further output tokens get generated (and billed) past that point. Input tokens, and any output already generated before the abort landed, are already committed — cancelling can't retroactively make those free. This is the one to reach for when a call has to be killed regardless of how far through it is (e.g. a credit balance that just went negative). A tool dispatch already in progress isn't aborted (tools have no generic cancellation hook) — the loop stops as soon as that call returns. Abort support is real for Anthropic, OpenAI, and DeepSeek (both streaming and non-streaming); for Ollama it only takes effect on streaming calls — see the note in `ollama-provider.ts`.
|
package/docs/api-reference.md
CHANGED
|
@@ -50,4 +50,5 @@ Built-in tool factories, grouped by domain (each domain also exports a `*Tools()
|
|
|
50
50
|
- `MCPComputer` *(experimental)*
|
|
51
51
|
- `MCPStorage`, `MCPFSStorage`
|
|
52
52
|
- `MCPRNG`
|
|
53
|
-
- `MCPFilter`
|
|
53
|
+
- `MCPOutputFilter` (`MCPFilter` is a deprecated alias, removed in `1.0.0`)
|
|
54
|
+
- `MCPExecutionPolicy`, `MCPBypassExecutionPolicy`, type `MCPToolCallRequest`
|
package/docs/mcp-architecture.md
CHANGED
|
@@ -24,7 +24,7 @@ Registers tools and listens on its `connection` for incoming tool-call requests,
|
|
|
24
24
|
### `MCPClient`
|
|
25
25
|
|
|
26
26
|
```ts
|
|
27
|
-
new MCPClient(envID: string, connection: MCPConnection | MCPConnection[], storage?: MCPStorage, rng?: MCPRNG, mcpFilter?:
|
|
27
|
+
new MCPClient(envID: string, connection: MCPConnection | MCPConnection[], storage?: MCPStorage, rng?: MCPRNG, mcpFilter?: MCPOutputFilter, executionPolicy?: MCPExecutionPolicy);
|
|
28
28
|
mcpClient.getTools(): Promise<ToolSchema[]>;
|
|
29
29
|
mcpClient.callTool(name: string, inputs: Record<string, any>, toolCallId?: string): Promise<MCPToolOutput>;
|
|
30
30
|
mcpClient.setExecuteProviderHandler(handler: (toolCallId: string, type: ProviderType, input: Record<string, any>) => Promise<{ output: Record<string, any> }>): void;
|
|
@@ -34,7 +34,9 @@ mcpClient.setExecuteProviderHandler(handler: (toolCallId: string, type: Provider
|
|
|
34
34
|
|
|
35
35
|
This is what you pass into `BaseAgent({ mcpClient, ... })`. `envID` scopes storage/RNG state per logical environment/session — pass a stable id (e.g. a user or conversation id) if you want isolated tool state per agent instance sharing a server. Accepting an array of connections lets one client fan out across multiple servers.
|
|
36
36
|
|
|
37
|
-
`mcpFilter` (an `
|
|
37
|
+
`mcpFilter` (an `MCPOutputFilter`) redacts sensitive substrings/patterns from tool output before it reaches the model — see [`MCPOutputFilter`](#mcpoutputfilter-redacting-tool-output) below.
|
|
38
|
+
|
|
39
|
+
`executionPolicy` (an `MCPExecutionPolicy`) decides whether a tool call is allowed to run at all, *before* it's dispatched — see [`MCPExecutionPolicy`](#mcpexecutionpolicy-gating-tool-calls) below.
|
|
38
40
|
|
|
39
41
|
#### Registering tools directly on the client (bypassing the connection)
|
|
40
42
|
|
|
@@ -92,15 +94,47 @@ Requires the `aliafsordeh/orbitx-sandbox:0.1` image (pull it, or build it yourse
|
|
|
92
94
|
- **`MCPStorage`** — abstract `{ get(key): Promise<string>; set(key, value): Promise<void> }`. `MCPFSStorage` is the default filesystem-backed implementation (`new MCPFSStorage(path?)`, defaults to a randomly-named folder under the OS temp directory). `MCPStorage` and `MCPFSStorage` are both exported if you want to implement your own backend (Redis, a database, etc.) or point the default one at a specific path.
|
|
93
95
|
- **`MCPRNG`** — deterministic-ish id generator backed by an `MCPStorage` instance (used internally for things like `generateRefId()`, the helper behind ref ids in `BrowserReadTool`'s output).
|
|
94
96
|
|
|
95
|
-
## `
|
|
97
|
+
## `MCPOutputFilter` — redacting tool output
|
|
96
98
|
|
|
97
99
|
```ts
|
|
98
|
-
new
|
|
100
|
+
new MCPOutputFilter(values: (string | RegExp)[]);
|
|
99
101
|
mcpFilter.filter(input: any): any; // replaces every match with "FILTERED_OUTPUT"
|
|
100
102
|
```
|
|
101
103
|
|
|
102
104
|
Pass literal strings (e.g. an API key you never want echoed back to the model) or regexes (e.g. `/sk-[a-zA-Z0-9]{20,}/`) as the `mcpFilter` argument to `MCPClient` to scrub tool output before it's returned — useful when a tool might read a file or environment variable containing a secret.
|
|
103
105
|
|
|
106
|
+
> `MCPOutputFilter` was named `MCPFilter` before. The old name is still exported as a deprecated alias (`export const MCPFilter = MCPOutputFilter`) and will be removed in `1.0.0` — switch to `MCPOutputFilter` in new code.
|
|
107
|
+
|
|
108
|
+
## `MCPExecutionPolicy` — gating tool calls
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
abstract class MCPExecutionPolicy {
|
|
112
|
+
abstract authorize(request: MCPToolCallRequest): Promise<boolean> | boolean;
|
|
113
|
+
}
|
|
114
|
+
// MCPToolCallRequest = { toolName: string; inputs: Record<string, any>; envID: string; toolCallId?: string };
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Checked by `MCPClient.callTool()` before every tool call is dispatched — whether the tool is registered locally on the client or routed across a connection to a remote `MCPServer`. Returning (or resolving to) `false` throws before the call reaches the tool, and that error surfaces to the model as a normal tool-error result (`BaseAgent`'s dispatch loop catches it the same way it catches any other `callTool()` rejection).
|
|
118
|
+
|
|
119
|
+
`MCPClient` defaults to `MCPBypassExecutionPolicy`, a built-in no-op that authorizes every call — so this is entirely opt-in. Implement your own subclass of `MCPExecutionPolicy` to add an allowlist, rate limiting, per-tool confirmation, or any other trust policy, and pass it as the `executionPolicy` argument to `MCPClient`'s constructor:
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
import { MCPClient, MCPExecutionPolicy, type MCPToolCallRequest } from "orbitx";
|
|
123
|
+
|
|
124
|
+
class AllowlistPolicy extends MCPExecutionPolicy {
|
|
125
|
+
#allowed: Set<string>;
|
|
126
|
+
constructor(allowed: string[]) {
|
|
127
|
+
super();
|
|
128
|
+
this.#allowed = new Set(allowed);
|
|
129
|
+
}
|
|
130
|
+
authorize({ toolName }: MCPToolCallRequest) {
|
|
131
|
+
return this.#allowed.has(toolName);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const mcpClient = new MCPClient(envID, connection, storage, rng, undefined, new AllowlistPolicy(["get_current_time"]));
|
|
136
|
+
```
|
|
137
|
+
|
|
104
138
|
## Custom `MCP` subclasses
|
|
105
139
|
|
|
106
140
|
Both `MCPServer` and `MCPClient` extend the abstract `MCP` class — `getStorage()`, `getRNG()`, and `executeProvider(toolCallId, type, input)`. Tool `execute` functions receive the calling `MCP` instance directly, as their 4th argument (after a `toolCallId` — see [Tools](./tools.md#the-mcptool-shape)), so a tool can reach storage/RNG scoped to whichever client dispatched the call.
|
package/docs/tools.md
CHANGED
|
@@ -75,7 +75,7 @@ Import a whole domain's tools at once (e.g. `FsTools()`), or import individual t
|
|
|
75
75
|
|
|
76
76
|
### Filesystem — `FsTools()`
|
|
77
77
|
|
|
78
|
-
> ⚠️ `FsWriteFileTool` and `FsDeleteTool` can permanently overwrite, delete, or corrupt existing files — no undo. Prefer routing filesystem access through `MCPComputer`'s sandbox (see [MCP Architecture](./mcp-architecture.md#mcpcomputer-sandboxed-execution)) to protect the host system.
|
|
78
|
+
> ⚠️ `FsWriteFileTool` and `FsDeleteTool` can permanently overwrite, delete, or corrupt existing files — no undo. Prefer routing filesystem access through `MCPComputer`'s sandbox (see [MCP Architecture](./mcp-architecture.md#mcpcomputer-sandboxed-execution)) to protect the host system, and/or gate these tools behind an `MCPExecutionPolicy` (see [`MCPExecutionPolicy`](./mcp-architecture.md#mcpexecutionpolicy-gating-tool-calls)) — e.g. denying `fs-write-file`/`fs-delete` outside an allowlisted directory, or requiring per-call confirmation.
|
|
79
79
|
|
|
80
80
|
| Tool | Purpose |
|
|
81
81
|
|---|---|
|
|
@@ -92,7 +92,7 @@ Import a whole domain's tools at once (e.g. `FsTools()`), or import individual t
|
|
|
92
92
|
|
|
93
93
|
### Bash / processes — `BashTools()`
|
|
94
94
|
|
|
95
|
-
> ⚠️ Shell commands can permanently delete files, corrupt data, modify system settings, or execute harmful operations — no undo. Same sandboxing recommendation as above.
|
|
95
|
+
> ⚠️ Shell commands can permanently delete files, corrupt data, modify system settings, or execute harmful operations — no undo. Same sandboxing recommendation as above, and the same `MCPExecutionPolicy` option — e.g. denying `bash-run` calls whose command matches a deny-list, or routing them through a human-confirmation policy.
|
|
96
96
|
|
|
97
97
|
| Tool | Purpose |
|
|
98
98
|
|---|---|
|