@intutic/mcp-governance-proxy 2.3.0 → 2.5.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/README.md +1 -1
- package/dist/agentTools.d.ts +15 -0
- package/dist/agentTools.d.ts.map +1 -1
- package/dist/agentTools.js +21 -1
- package/dist/agentTools.js.map +1 -1
- package/dist/chaos.d.ts +90 -0
- package/dist/chaos.d.ts.map +1 -0
- package/dist/chaos.js +174 -0
- package/dist/chaos.js.map +1 -0
- package/dist/daemon/policyCache.d.ts +7 -0
- package/dist/daemon/policyCache.d.ts.map +1 -1
- package/dist/daemon/policyCache.js +2 -0
- package/dist/daemon/policyCache.js.map +1 -1
- package/dist/emitter.d.ts +40 -2
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +7 -1
- package/dist/emitter.js.map +1 -1
- package/dist/httpJson.d.ts +7 -0
- package/dist/httpJson.d.ts.map +1 -1
- package/dist/httpJson.js +39 -0
- package/dist/httpJson.js.map +1 -1
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptor.d.ts +24 -0
- package/dist/interceptor.d.ts.map +1 -1
- package/dist/interceptor.js +58 -11
- package/dist/interceptor.js.map +1 -1
- package/dist/policy.d.ts +26 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +49 -3
- package/dist/policy.js.map +1 -1
- package/dist/proxy.d.ts +32 -6
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +107 -55
- package/dist/proxy.js.map +1 -1
- package/dist/refusals.d.ts +25 -0
- package/dist/refusals.d.ts.map +1 -1
- package/dist/refusals.js +50 -0
- package/dist/refusals.js.map +1 -1
- package/dist/remoteBridge.d.ts +2 -1
- package/dist/remoteBridge.d.ts.map +1 -1
- package/dist/remoteBridge.js +4 -3
- package/dist/remoteBridge.js.map +1 -1
- package/dist/wasm/cloudRules.d.ts +138 -0
- package/dist/wasm/cloudRules.d.ts.map +1 -0
- package/dist/wasm/cloudRules.js +242 -0
- package/dist/wasm/cloudRules.js.map +1 -0
- package/dist/wasm/loader.d.ts +3 -1
- package/dist/wasm/loader.d.ts.map +1 -1
- package/dist/wasm/loader.js.map +1 -1
- package/dist/wasm/runner.d.ts +63 -9
- package/dist/wasm/runner.d.ts.map +1 -1
- package/dist/wasm/runner.js +107 -12
- package/dist/wasm/runner.js.map +1 -1
- package/package.json +4 -4
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ import { type AnomalyFinding } from './anomaly/index.js';
|
|
|
34
34
|
import { SessionState } from './session.js';
|
|
35
35
|
import { type CallerIdentity } from './identity.js';
|
|
36
36
|
import { type McpToolDefinition } from '@intutic/shared-types';
|
|
37
|
+
import type { ChaosInjector } from './chaos.js';
|
|
37
38
|
/**
|
|
38
39
|
* Who a per-member MCP budget counts when the control plane has not named the
|
|
39
40
|
* member behind this proxy's key: the key's prefix, else the OS user. Callers
|
|
@@ -44,6 +45,17 @@ export declare function fallbackBudgetCaller(identity: CallerIdentity): string;
|
|
|
44
45
|
export interface PendingRequest {
|
|
45
46
|
method: 'tools/call' | 'tools/list' | 'resources/read';
|
|
46
47
|
toolName?: string;
|
|
48
|
+
/** A chaos `inject.tool_result` chosen for this call: appended to the server's result (chaos.ts). */
|
|
49
|
+
inject?: {
|
|
50
|
+
payload: string;
|
|
51
|
+
call: number;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** What `handleHarnessLine` needs to inject faults when a chaos plan is loaded (chaos.ts). */
|
|
55
|
+
export interface ChaosHooks {
|
|
56
|
+
injector: ChaosInjector;
|
|
57
|
+
/** Hand a synthesized upstream line to the response path, as if the server had sent it. */
|
|
58
|
+
respond: (line: string) => void;
|
|
47
59
|
}
|
|
48
60
|
/** The outcome of inspecting one server→harness line. */
|
|
49
61
|
export interface ServerLineOutcome {
|
|
@@ -143,7 +155,9 @@ export interface ServerLineOutcome {
|
|
|
143
155
|
* also the counter to a poisoned upstream description — the pin detects the
|
|
144
156
|
* change; the override controls what the agent actually reads.
|
|
145
157
|
*/
|
|
146
|
-
export declare function processServerLine(raw: string, pending: Map<string | number, PendingRequest>, allowedTools: readonly string[], overrides: Readonly<Record<string, string>>, injectionAction?: 'warn' | 'block', injectionPatterns?: readonly string[], disabledTools?: readonly string[]
|
|
158
|
+
export declare function processServerLine(raw: string, pending: Map<string | number, PendingRequest>, allowedTools: readonly string[], overrides: Readonly<Record<string, string>>, injectionAction?: 'warn' | 'block', injectionPatterns?: readonly string[], disabledTools?: readonly string[],
|
|
159
|
+
/** The workspace is OPAQUE: a withheld result does not say which pattern withheld it. */
|
|
160
|
+
opaque?: boolean): ServerLineOutcome;
|
|
147
161
|
/**
|
|
148
162
|
* Handle one harness→upstream line — shared, byte-for-byte, between stdio
|
|
149
163
|
* proxy mode (`McpGovernanceProxy.runProxy`, below) and the remote HTTP/SSE
|
|
@@ -161,9 +175,11 @@ export declare function processServerLine(raw: string, pending: Map<string | num
|
|
|
161
175
|
* so `remoteBridge.ts` can call it without needing a `McpGovernanceProxy`
|
|
162
176
|
* instance shaped for the stdio child-process lifecycle it doesn't have.
|
|
163
177
|
*/
|
|
164
|
-
export declare function handleHarnessLine(line: string, pending: Map<string | number, PendingRequest>, interceptor: ToolCallInterceptor, forward: (line: string) => void, session?: SessionState): void;
|
|
178
|
+
export declare function handleHarnessLine(line: string, pending: Map<string | number, PendingRequest>, interceptor: ToolCallInterceptor, forward: (line: string) => void, session?: SessionState, chaos?: ChaosHooks): void;
|
|
165
179
|
export declare class McpGovernanceProxy {
|
|
166
180
|
private readonly config;
|
|
181
|
+
/** The loaded chaos plan's injector; null (no plan) leaves every path as it is. */
|
|
182
|
+
private readonly chaos;
|
|
167
183
|
private readonly policy;
|
|
168
184
|
private readonly emitter;
|
|
169
185
|
private readonly interceptor;
|
|
@@ -188,15 +204,19 @@ export declare class McpGovernanceProxy {
|
|
|
188
204
|
private readonly sessionStore;
|
|
189
205
|
/**
|
|
190
206
|
* Phase 3's WASM custom-rule runner — owns the one dedicated
|
|
191
|
-
* `worker_threads` Worker
|
|
192
|
-
*
|
|
193
|
-
* runs, not a second one
|
|
207
|
+
* `worker_threads` Worker, the `~/.intutic/wasm/` directory loader and the
|
|
208
|
+
* workspace's control-plane rules. The directory is rescanned on the SAME
|
|
209
|
+
* 60s policy-tick timer `PolicyClient.start` already runs, not a second one
|
|
210
|
+
* (see `policy.ts`'s `start(onTick)`); the control-plane rules follow the
|
|
211
|
+
* policy itself (the interceptor syncs them before each evaluation).
|
|
194
212
|
*/
|
|
195
213
|
private readonly wasmRunner;
|
|
196
214
|
/** Reports this proxy's server to the registry; absent for the standalone `intutic` entry, which fronts none. */
|
|
197
215
|
private readonly registryObserver;
|
|
198
216
|
private realServer;
|
|
199
|
-
constructor(config: ProxyConfig
|
|
217
|
+
constructor(config: ProxyConfig,
|
|
218
|
+
/** The loaded chaos plan's injector; null (no plan) leaves every path as it is. */
|
|
219
|
+
chaos?: ChaosInjector | null);
|
|
200
220
|
/**
|
|
201
221
|
* The tools/call decision engine — exposed so `remoteBridge.ts` can drive
|
|
202
222
|
* `handleHarnessLine` (the exported free function above) against the SAME
|
|
@@ -211,6 +231,12 @@ export declare class McpGovernanceProxy {
|
|
|
211
231
|
* `handleHarnessLine` records into are never two different objects.
|
|
212
232
|
*/
|
|
213
233
|
getSessionState(): SessionState;
|
|
234
|
+
/**
|
|
235
|
+
* The chaos hooks for `handleHarnessLine`, bound to this proxy's response
|
|
236
|
+
* path and `pending` map; undefined without a plan. Shared by stdio mode
|
|
237
|
+
* and `remoteBridge.ts` for the same reason `getInterceptor` is.
|
|
238
|
+
*/
|
|
239
|
+
chaosHooks(pending: Map<string | number, PendingRequest>): ChaosHooks | undefined;
|
|
214
240
|
/**
|
|
215
241
|
* Start the policy client's background refresh timer. Exposed alongside
|
|
216
242
|
* `stopPolicy` so `remoteBridge.ts` can drive the same policy lifecycle
|
package/dist/proxy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy.js
CHANGED
|
@@ -32,8 +32,9 @@ import * as node_readline from 'node:readline';
|
|
|
32
32
|
import { createStderrLogger as createLogger } from './stderrLog.js';
|
|
33
33
|
import { PolicyClient } from './policy.js';
|
|
34
34
|
import { GovernanceEmitter, detectionFinding } from './emitter.js';
|
|
35
|
-
import { ToolCallInterceptor } from './interceptor.js';
|
|
36
|
-
import { budgetRemaining, describeFailure, holdStatus, readControlPlane, registryStatus } from './agentTools.js';
|
|
35
|
+
import { ToolCallInterceptor, holdReason } from './interceptor.js';
|
|
36
|
+
import { LIST_INCIDENTS_ARGS, budgetRemaining, describeFailure, holdStatus, incidentListPath, readControlPlane, registryStatus, } from './agentTools.js';
|
|
37
|
+
import { isOpaqueRefusal, opaqueRefusalData } from './refusals.js';
|
|
37
38
|
import { redactText as redactMcpText, setWorkspacePii } from './dlp.js';
|
|
38
39
|
import { scanText, injectionSeverity, setDynamicInjectionPatterns } from './injection.js';
|
|
39
40
|
import { toolPoisoning, dlpEscalation } from './anomaly/index.js';
|
|
@@ -42,11 +43,12 @@ import { ValkeySessionStore } from './sessionStore.js';
|
|
|
42
43
|
import { GuardedValkey } from './guardedValkey.js';
|
|
43
44
|
import { McpBudgetEnforcer, ValkeyBudgetStore } from './budget.js';
|
|
44
45
|
import { WasmRunner } from './wasm/runner.js';
|
|
46
|
+
import { CloudRuleSet, fetchRuleBinaryFrom, refusalDetail } from './wasm/cloudRules.js';
|
|
45
47
|
import { checkTofu, decideTofuAction } from './tofu.js';
|
|
46
48
|
import { RegistryObserver } from './registryObserver.js';
|
|
47
49
|
import { ApprovalHolds } from './approvalHold.js';
|
|
48
50
|
import { callerIdentity } from './identity.js';
|
|
49
|
-
import { normalizeToolDefinition } from '@intutic/shared-types';
|
|
51
|
+
import { OPAQUE_REFUSAL_MESSAGE, normalizeToolDefinition } from '@intutic/shared-types';
|
|
50
52
|
import { PACKAGE_VERSION } from './version.js';
|
|
51
53
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
52
54
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
@@ -54,20 +56,40 @@ import { z } from 'zod';
|
|
|
54
56
|
import { watchWasmDir } from './wasm/watch.js';
|
|
55
57
|
const log = createLogger('mcp-governance-proxy');
|
|
56
58
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
+
* A refusal frame, the one place that decides what the agent is told. In an
|
|
60
|
+
* OPAQUE workspace (`opaque`) a refusal on workspace policy
|
|
61
|
+
* (`isOpaqueRefusal`) is sent as `opaqueMessage`, built around
|
|
62
|
+
* `OPAQUE_REFUSAL_MESSAGE`, with `opaqueRefusalData`: the same JSON-RPC code
|
|
63
|
+
* and `error.data.code`, no rule. Otherwise `message` and `data`, exactly as
|
|
64
|
+
* before the mode existed. Only the frame changes; logs and emitted events
|
|
65
|
+
* keep the full reason.
|
|
59
66
|
*/
|
|
60
|
-
function
|
|
67
|
+
function refusalResponse(id, data, opaque, message, opaqueMessage) {
|
|
68
|
+
const hide = opaque && isOpaqueRefusal(data);
|
|
61
69
|
return {
|
|
62
70
|
jsonrpc: '2.0',
|
|
63
71
|
id,
|
|
64
72
|
error: {
|
|
65
73
|
code: -32603, // Internal error (closest standard code to "blocked")
|
|
66
|
-
message:
|
|
67
|
-
data,
|
|
74
|
+
message: hide ? opaqueMessage : message,
|
|
75
|
+
data: hide ? opaqueRefusalData(data) : data,
|
|
68
76
|
},
|
|
69
77
|
};
|
|
70
78
|
}
|
|
79
|
+
const BLOCKED = '[Intutic Governance] Tool call blocked: ';
|
|
80
|
+
/**
|
|
81
|
+
* A withheld result in an OPAQUE workspace: not which pattern, but still that
|
|
82
|
+
* the call already ran, so the agent does not run it again expecting output.
|
|
83
|
+
*/
|
|
84
|
+
const RESULT_WITHHELD_OPAQUE = `[Intutic Governance] Result withheld: ${OPAQUE_REFUSAL_MESSAGE} The tool call already ran; ` +
|
|
85
|
+
`its output was not delivered.`;
|
|
86
|
+
/**
|
|
87
|
+
* Build a JSON-RPC 2.0 error response for a blocked tool call. `data` names
|
|
88
|
+
* the refusal for a client that reads it programmatically (refusals.ts).
|
|
89
|
+
*/
|
|
90
|
+
function buildBlockResponse(id, reason, data, opaque) {
|
|
91
|
+
return refusalResponse(id, data, opaque, BLOCKED + reason, BLOCKED + OPAQUE_REFUSAL_MESSAGE);
|
|
92
|
+
}
|
|
71
93
|
/** The `error.data` of a block decision: its code, rule id and detail. */
|
|
72
94
|
function blockData(decision) {
|
|
73
95
|
return { code: decision.code, ruleId: decision.ruleId, ...decision.detail };
|
|
@@ -78,16 +100,10 @@ function blockData(decision) {
|
|
|
78
100
|
* the hold id in `data` for a client that reads it programmatically — empty
|
|
79
101
|
* when the hold could not be recorded, so there is nothing to approve yet.
|
|
80
102
|
*/
|
|
81
|
-
function buildHoldResponse(id, reason, holdId, ruleId) {
|
|
82
|
-
return {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
error: {
|
|
86
|
-
code: -32603,
|
|
87
|
-
message: `[Intutic Governance] Tool call ${reason}`,
|
|
88
|
-
data: { code: 'HELD', ruleId, status: 'pending_approval', holdId },
|
|
89
|
-
},
|
|
90
|
-
};
|
|
103
|
+
function buildHoldResponse(id, reason, holdId, ruleId, opaque) {
|
|
104
|
+
return refusalResponse(id, { code: 'HELD', ruleId, status: 'pending_approval', holdId }, opaque, `[Intutic Governance] Tool call ${reason}`,
|
|
105
|
+
// An OPAQUE workspace's hold names the hold, not the rule.
|
|
106
|
+
`[Intutic Governance] Tool call ${holdReason(OPAQUE_REFUSAL_MESSAGE, holdId)}`);
|
|
91
107
|
}
|
|
92
108
|
/**
|
|
93
109
|
* Who a per-member MCP budget counts when the control plane has not named the
|
|
@@ -134,7 +150,9 @@ function writeFrame(frame) {
|
|
|
134
150
|
* also the counter to a poisoned upstream description — the pin detects the
|
|
135
151
|
* change; the override controls what the agent actually reads.
|
|
136
152
|
*/
|
|
137
|
-
export function processServerLine(raw, pending, allowedTools, overrides, injectionAction = 'warn', injectionPatterns = [], disabledTools = []
|
|
153
|
+
export function processServerLine(raw, pending, allowedTools, overrides, injectionAction = 'warn', injectionPatterns = [], disabledTools = [],
|
|
154
|
+
/** The workspace is OPAQUE: a withheld result does not say which pattern withheld it. */
|
|
155
|
+
opaque = false) {
|
|
138
156
|
// Workspace-supplied injection patterns, on top of the floor.
|
|
139
157
|
// Idempotent when the list has not changed, so this is cheap per line.
|
|
140
158
|
setDynamicInjectionPatterns(injectionPatterns);
|
|
@@ -177,17 +195,9 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
177
195
|
resultText = redacted;
|
|
178
196
|
}
|
|
179
197
|
catch {
|
|
180
|
-
const withheld = {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
error: {
|
|
184
|
-
code: -32603,
|
|
185
|
-
message: `[Intutic Governance] Result withheld: it contained sensitive data ` +
|
|
186
|
-
`whose redaction did not survive re-parsing. The tool ran; its output ` +
|
|
187
|
-
`was not delivered. (${findings.map((f) => f.description).join('; ')})`,
|
|
188
|
-
data: { code: 'RESULT_WITHHELD_DLP', ruleId: `dlp.${findings[0]?.pattern ?? 'output'}` },
|
|
189
|
-
},
|
|
190
|
-
};
|
|
198
|
+
const withheld = refusalResponse(msg.id, { code: 'RESULT_WITHHELD_DLP', ruleId: `dlp.${findings[0]?.pattern ?? 'output'}` }, opaque, `[Intutic Governance] Result withheld: it contained sensitive data ` +
|
|
199
|
+
`whose redaction did not survive re-parsing. The tool ran; its output ` +
|
|
200
|
+
`was not delivered. (${findings.map((f) => f.description).join('; ')})`, RESULT_WITHHELD_OPAQUE);
|
|
191
201
|
return { line: JSON.stringify(withheld), redactedTool, redactions };
|
|
192
202
|
}
|
|
193
203
|
}
|
|
@@ -204,17 +214,9 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
204
214
|
// Response-side block never claims the CALL was refused — it
|
|
205
215
|
// already ran. Only the delivered output is withheld, worded the
|
|
206
216
|
// same way the DLP reparse-withheld frame above is.
|
|
207
|
-
const withheldInjection = {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
error: {
|
|
211
|
-
code: -32603,
|
|
212
|
-
message: `[Intutic Governance] Result withheld: it triggered prompt-injection ` +
|
|
213
|
-
`pattern(s) (${injectionPatterns.join(', ')}). The tool call already ran; ` +
|
|
214
|
-
`its output was not delivered.`,
|
|
215
|
-
data: { code: 'RESULT_WITHHELD_INJECTION', ruleId: 'injection.tool_result' },
|
|
216
|
-
},
|
|
217
|
-
};
|
|
217
|
+
const withheldInjection = refusalResponse(msg.id, { code: 'RESULT_WITHHELD_INJECTION', ruleId: 'injection.tool_result' }, opaque, `[Intutic Governance] Result withheld: it triggered prompt-injection ` +
|
|
218
|
+
`pattern(s) (${injectionPatterns.join(', ')}). The tool call already ran; ` +
|
|
219
|
+
`its output was not delivered.`, RESULT_WITHHELD_OPAQUE);
|
|
218
220
|
return {
|
|
219
221
|
line: JSON.stringify(withheldInjection),
|
|
220
222
|
redactedTool,
|
|
@@ -340,7 +342,7 @@ export function processServerLine(raw, pending, allowedTools, overrides, injecti
|
|
|
340
342
|
* so `remoteBridge.ts` can call it without needing a `McpGovernanceProxy`
|
|
341
343
|
* instance shaped for the stdio child-process lifecycle it doesn't have.
|
|
342
344
|
*/
|
|
343
|
-
export function handleHarnessLine(line, pending, interceptor, forward, session) {
|
|
345
|
+
export function handleHarnessLine(line, pending, interceptor, forward, session, chaos) {
|
|
344
346
|
const trimmed = line.trim();
|
|
345
347
|
if (!trimmed)
|
|
346
348
|
return;
|
|
@@ -370,10 +372,14 @@ export function handleHarnessLine(line, pending, interceptor, forward, session)
|
|
|
370
372
|
interceptor.decide(toolName, toolInput).then((decision) => {
|
|
371
373
|
if (decision.action === 'block') {
|
|
372
374
|
log.warn({ action: 'tool_blocked', toolName, reason: decision.reason }, 'Tool call blocked by governance proxy');
|
|
373
|
-
|
|
375
|
+
// Recorded before the answer goes out, as on the allowed path: a
|
|
376
|
+
// reader that acts on the answer must find the event already written.
|
|
377
|
+
chaos?.injector.emit({ type: 'tool_call', tool: toolName, ok: false });
|
|
378
|
+
writeFrame(buildBlockResponse(msg.id, decision.reason, blockData(decision), interceptor.opaque));
|
|
374
379
|
}
|
|
375
380
|
else if (decision.action === 'hold') {
|
|
376
|
-
|
|
381
|
+
chaos?.injector.emit({ type: 'tool_call', tool: toolName, ok: false });
|
|
382
|
+
writeFrame(buildHoldResponse(msg.id, decision.reason, decision.holdId, decision.ruleId, interceptor.opaque));
|
|
377
383
|
}
|
|
378
384
|
else {
|
|
379
385
|
// Allow: the response now needs inspecting on the way back —
|
|
@@ -388,6 +394,19 @@ export function handleHarnessLine(line, pending, interceptor, forward, session)
|
|
|
388
394
|
// tool_diversity_collapse, or an agent could be penalized for calls
|
|
389
395
|
// that never ran.
|
|
390
396
|
session?.recordCall(toolName);
|
|
397
|
+
// Chaos faults stand in for the upstream server, so they are
|
|
398
|
+
// considered only here, after governance allowed the call, and
|
|
399
|
+
// their results go back through the response path like a real one.
|
|
400
|
+
if (chaos && decision.action === 'allow' && msg.id !== null && msg.id !== undefined) {
|
|
401
|
+
const fault = chaos.injector.onAllowedCall(toolName, () => writeFrame({ jsonrpc: '2.0', method: 'notifications/tools/list_changed' }));
|
|
402
|
+
if (fault?.kind === 'respond') {
|
|
403
|
+
chaos.respond(JSON.stringify({ jsonrpc: '2.0', id: msg.id, result: fault.result }));
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
if (fault?.kind === 'append') {
|
|
407
|
+
pending.set(msg.id, { method: 'tools/call', toolName, inject: { payload: fault.payload, call: fault.call } });
|
|
408
|
+
}
|
|
409
|
+
}
|
|
391
410
|
forward(line);
|
|
392
411
|
}
|
|
393
412
|
}).catch((err) => {
|
|
@@ -403,6 +422,7 @@ export function handleHarnessLine(line, pending, interceptor, forward, session)
|
|
|
403
422
|
}
|
|
404
423
|
export class McpGovernanceProxy {
|
|
405
424
|
config;
|
|
425
|
+
chaos;
|
|
406
426
|
policy;
|
|
407
427
|
emitter;
|
|
408
428
|
interceptor;
|
|
@@ -427,16 +447,21 @@ export class McpGovernanceProxy {
|
|
|
427
447
|
sessionStore;
|
|
428
448
|
/**
|
|
429
449
|
* Phase 3's WASM custom-rule runner — owns the one dedicated
|
|
430
|
-
* `worker_threads` Worker
|
|
431
|
-
*
|
|
432
|
-
* runs, not a second one
|
|
450
|
+
* `worker_threads` Worker, the `~/.intutic/wasm/` directory loader and the
|
|
451
|
+
* workspace's control-plane rules. The directory is rescanned on the SAME
|
|
452
|
+
* 60s policy-tick timer `PolicyClient.start` already runs, not a second one
|
|
453
|
+
* (see `policy.ts`'s `start(onTick)`); the control-plane rules follow the
|
|
454
|
+
* policy itself (the interceptor syncs them before each evaluation).
|
|
433
455
|
*/
|
|
434
456
|
wasmRunner;
|
|
435
457
|
/** Reports this proxy's server to the registry; absent for the standalone `intutic` entry, which fronts none. */
|
|
436
458
|
registryObserver;
|
|
437
459
|
realServer = null;
|
|
438
|
-
constructor(config
|
|
460
|
+
constructor(config,
|
|
461
|
+
/** The loaded chaos plan's injector; null (no plan) leaves every path as it is. */
|
|
462
|
+
chaos = null) {
|
|
439
463
|
this.config = config;
|
|
464
|
+
this.chaos = chaos;
|
|
440
465
|
this.policy = new PolicyClient(config.controlPlaneUrl, config.apiKey, config.workspaceId, config.policyTtlMs, config.mcpProxyMode);
|
|
441
466
|
const identity = callerIdentity(config.apiKey, config.serverName, config.sessionScope);
|
|
442
467
|
this.emitter = new GovernanceEmitter(config.controlPlaneUrl, config.apiKey, config.eventsFilePath, config.workspaceId, config.mcpProxyMode, identity);
|
|
@@ -450,7 +475,12 @@ export class McpGovernanceProxy {
|
|
|
450
475
|
log.info({ action: 'session_scope', scope: config.sessionScope ?? null, shared: Boolean(this.sessionStore && config.sessionScope) }, this.sessionStore && config.sessionScope
|
|
451
476
|
? 'Anomaly session window shared with sibling proxies through Valkey'
|
|
452
477
|
: 'Anomaly session window is per-process');
|
|
453
|
-
this.wasmRunner = new WasmRunner(config.mcpWasmDir)
|
|
478
|
+
this.wasmRunner = new WasmRunner(config.mcpWasmDir, new CloudRuleSet(fetchRuleBinaryFrom(config.controlPlaneUrl, config.apiKey), (report) => {
|
|
479
|
+
// The hook-event ingest caps `reason` at 512 characters; an unloadable
|
|
480
|
+
// rule's compile error can run longer.
|
|
481
|
+
const reason = report.description.slice(0, 512);
|
|
482
|
+
this.emitter.emit('wasm_rule_refused', report.descriptor.ruleId, undefined, reason, undefined, undefined, { wasmRule: refusalDetail(report) });
|
|
483
|
+
}));
|
|
454
484
|
this.registryObserver = config.standalone
|
|
455
485
|
? undefined
|
|
456
486
|
: new RegistryObserver(config.controlPlaneUrl, config.apiKey, config.serverName, config.remoteTransport ?? 'stdio');
|
|
@@ -474,6 +504,17 @@ export class McpGovernanceProxy {
|
|
|
474
504
|
getSessionState() {
|
|
475
505
|
return this.session;
|
|
476
506
|
}
|
|
507
|
+
/**
|
|
508
|
+
* The chaos hooks for `handleHarnessLine`, bound to this proxy's response
|
|
509
|
+
* path and `pending` map; undefined without a plan. Shared by stdio mode
|
|
510
|
+
* and `remoteBridge.ts` for the same reason `getInterceptor` is.
|
|
511
|
+
*/
|
|
512
|
+
chaosHooks(pending) {
|
|
513
|
+
const injector = this.chaos;
|
|
514
|
+
if (!injector)
|
|
515
|
+
return undefined;
|
|
516
|
+
return { injector, respond: (line) => void this.handleServerLine(line, pending) };
|
|
517
|
+
}
|
|
477
518
|
/**
|
|
478
519
|
* Start the policy client's background refresh timer. Exposed alongside
|
|
479
520
|
* `stopPolicy` so `remoteBridge.ts` can drive the same policy lifecycle
|
|
@@ -564,8 +605,8 @@ export class McpGovernanceProxy {
|
|
|
564
605
|
};
|
|
565
606
|
});
|
|
566
607
|
// Tool: intutic_list_incidents
|
|
567
|
-
server.tool('intutic_list_incidents', 'Lists
|
|
568
|
-
const result = await callControlPlane(
|
|
608
|
+
server.tool('intutic_list_incidents', 'Lists governance incidents (policy violations, blocked tool calls, refused custom rules, unreachable dependencies) in this workspace, most in need of review first, optionally of one type.', LIST_INCIDENTS_ARGS, async (args) => {
|
|
609
|
+
const result = await callControlPlane(incidentListPath(workspaceId, args));
|
|
569
610
|
const text = result.ok
|
|
570
611
|
? JSON.stringify(result.data, null, 2)
|
|
571
612
|
: describeFailure(result, 'list incidents');
|
|
@@ -658,7 +699,15 @@ export class McpGovernanceProxy {
|
|
|
658
699
|
// Results are redacted with the workspace's PII detector actions too —
|
|
659
700
|
// a resources/read answer can arrive before any tools/call set them.
|
|
660
701
|
setWorkspacePii(this.policy.getPiiDetectors());
|
|
661
|
-
|
|
702
|
+
// A chaos plan's response-side faults rewrite the upstream line first,
|
|
703
|
+
// so every check below inspects the faulted response.
|
|
704
|
+
let chaosToolCall;
|
|
705
|
+
if (this.chaos) {
|
|
706
|
+
const faulted = this.chaos.faultServerLine(rawLine, pending);
|
|
707
|
+
rawLine = faulted.line;
|
|
708
|
+
chaosToolCall = faulted.toolCall;
|
|
709
|
+
}
|
|
710
|
+
const outcome = processServerLine(rawLine, pending, this.policy.getAllowedTools(), this.policy.getToolDescriptionOverrides(), injectionAction, this.policy.getInjectionPatterns(), this.policy.getRegistry()?.disabledTools[this.config.serverName] ?? [], this.policy.isOpaque());
|
|
662
711
|
if (outcome.injectionFindings) {
|
|
663
712
|
for (const finding of outcome.injectionFindings) {
|
|
664
713
|
const severity = injectionSeverity(finding.patterns, finding.source);
|
|
@@ -688,6 +737,8 @@ export class McpGovernanceProxy {
|
|
|
688
737
|
}
|
|
689
738
|
}
|
|
690
739
|
}
|
|
740
|
+
if (chaosToolCall !== undefined)
|
|
741
|
+
this.chaos?.recordToolCall(chaosToolCall, outcome.line);
|
|
691
742
|
if (outcome.redactedTool) {
|
|
692
743
|
log.warn({
|
|
693
744
|
action: 'result_redacted',
|
|
@@ -745,7 +796,7 @@ export class McpGovernanceProxy {
|
|
|
745
796
|
if (!this.interceptor.failOpen) {
|
|
746
797
|
writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, `TOFU pin check for MCP server "${serverName}" failed (could not read/write ` +
|
|
747
798
|
`~/.intutic/mcp-pins/). Blocked by workspace policy (fail-closed mode). ` +
|
|
748
|
-
`Contact your administrator or update mcpProxyFailBehavior to open.`, { code: 'TOFU_UNAVAILABLE', ruleId: 'mcpProxyFailBehavior' }));
|
|
799
|
+
`Contact your administrator or update mcpProxyFailBehavior to open.`, { code: 'TOFU_UNAVAILABLE', ruleId: 'mcpProxyFailBehavior' }, this.interceptor.opaque));
|
|
749
800
|
return;
|
|
750
801
|
}
|
|
751
802
|
process.stdout.write(outcome.line + '\n');
|
|
@@ -777,7 +828,7 @@ export class McpGovernanceProxy {
|
|
|
777
828
|
}, reason);
|
|
778
829
|
this.emitter.emit('mcp_server_definition_changed', serverName, undefined, reason);
|
|
779
830
|
if (action.block) {
|
|
780
|
-
writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, reason, { code: 'TOOL_DEFINITIONS_CHANGED', ruleId: `tofu.${serverName}` }));
|
|
831
|
+
writeFrame(buildBlockResponse(outcome.toolsListMsgId ?? null, reason, { code: 'TOOL_DEFINITIONS_CHANGED', ruleId: `tofu.${serverName}` }, this.interceptor.opaque));
|
|
781
832
|
return;
|
|
782
833
|
}
|
|
783
834
|
}
|
|
@@ -832,10 +883,11 @@ export class McpGovernanceProxy {
|
|
|
832
883
|
// remoteBridge.ts's remote bridge mode — only `forward` differs: here it
|
|
833
884
|
// writes to the spawned child process's stdin.
|
|
834
885
|
const rl = node_readline.createInterface({ input: process.stdin, terminal: false });
|
|
886
|
+
const chaosHooks = this.chaosHooks(pending);
|
|
835
887
|
rl.on('line', (line) => {
|
|
836
888
|
handleHarnessLine(line, pending, this.interceptor, (l) => {
|
|
837
889
|
realServer.stdin.write(l + '\n');
|
|
838
|
-
}, this.session);
|
|
890
|
+
}, this.session, chaosHooks);
|
|
839
891
|
});
|
|
840
892
|
rl.on('close', () => {
|
|
841
893
|
log.info({ action: 'stdin_closed' }, 'Harness stdin closed — shutting down');
|