@intutic/mcp-governance-proxy 2.4.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/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/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptor.d.ts +12 -0
- package/dist/interceptor.d.ts.map +1 -1
- package/dist/interceptor.js +21 -6
- package/dist/interceptor.js.map +1 -1
- package/dist/policy.d.ts +9 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +16 -2
- package/dist/policy.js.map +1 -1
- package/dist/proxy.d.ts +27 -3
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +92 -48
- 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/package.json +4 -4
package/dist/refusals.js
CHANGED
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
* `holdId` and `status`, a budget's `budgetId`, `limit`, `used` and
|
|
11
11
|
* `resetAt`.
|
|
12
12
|
*
|
|
13
|
+
* In an OPAQUE workspace a refusal on workspace policy
|
|
14
|
+
* ({@link OPAQUE_REFUSAL_CODES}) is sent with `OPAQUE_REFUSAL_MESSAGE`
|
|
15
|
+
* (`@intutic/shared-types`) in place of its reason, and `error.data` keeps
|
|
16
|
+
* its `code` but names no rule: `ruleId` is `''` (the field stays, as a
|
|
17
|
+
* string, so a client that reads it still parses), and the detail is dropped
|
|
18
|
+
* except a hold's `holdId` and `status`, which name the hold, not the policy.
|
|
19
|
+
*
|
|
13
20
|
* Held to `packages/shared-types/fixtures/refusal-codes.json` (`mcp`) by a
|
|
14
21
|
* test, as the MCP proxy reference's table is.
|
|
15
22
|
*
|
|
@@ -40,4 +47,47 @@ export const MCP_REFUSAL_CODES = [
|
|
|
40
47
|
'RESULT_WITHHELD_DLP',
|
|
41
48
|
'RESULT_WITHHELD_INJECTION',
|
|
42
49
|
];
|
|
50
|
+
/**
|
|
51
|
+
* The refusals on workspace policy: in an OPAQUE workspace the agent is not
|
|
52
|
+
* told which rule, setting or detector refused it. The rest are operational —
|
|
53
|
+
* the control plane or a store unreachable, a pin check that could not run,
|
|
54
|
+
* a server whose tools changed, a budget used up (whose detail says when it
|
|
55
|
+
* resets) — and name no rule an agent could route around, so they are sent
|
|
56
|
+
* unchanged.
|
|
57
|
+
*/
|
|
58
|
+
export const OPAQUE_REFUSAL_CODES = new Set([
|
|
59
|
+
'SERVER_BLOCKED',
|
|
60
|
+
'SERVER_HELD',
|
|
61
|
+
'SERVER_NOT_APPROVED',
|
|
62
|
+
'TOOL_DISABLED',
|
|
63
|
+
'SERVER_NOT_ALLOWED',
|
|
64
|
+
'TOOL_NOT_ALLOWED',
|
|
65
|
+
'SSO_GROUP',
|
|
66
|
+
'DLP',
|
|
67
|
+
'SOP_RULE',
|
|
68
|
+
'HELD',
|
|
69
|
+
'INJECTION',
|
|
70
|
+
'ANOMALY',
|
|
71
|
+
'WASM_RULE',
|
|
72
|
+
'REASK',
|
|
73
|
+
'REASK_EXHAUSTED',
|
|
74
|
+
'RESULT_WITHHELD_DLP',
|
|
75
|
+
'RESULT_WITHHELD_INJECTION',
|
|
76
|
+
]);
|
|
77
|
+
/**
|
|
78
|
+
* Whether an OPAQUE workspace's agent is told the generic sentence for this
|
|
79
|
+
* refusal: a code in {@link OPAQUE_REFUSAL_CODES}, or a custom rule that
|
|
80
|
+
* reached no verdict (`GOVERNANCE_UNAVAILABLE` with a `wasm:` rule id), whose
|
|
81
|
+
* message names the rule. The LLM proxy hides the same one.
|
|
82
|
+
*/
|
|
83
|
+
export function isOpaqueRefusal(data) {
|
|
84
|
+
return OPAQUE_REFUSAL_CODES.has(data.code) ||
|
|
85
|
+
(data.code === 'GOVERNANCE_UNAVAILABLE' && data.ruleId.startsWith('wasm:'));
|
|
86
|
+
}
|
|
87
|
+
/** `error.data` as an OPAQUE workspace's agent receives it: the code, no rule. */
|
|
88
|
+
export function opaqueRefusalData(data) {
|
|
89
|
+
return data.code === 'HELD'
|
|
90
|
+
? { code: 'HELD', ruleId: '', status: data['status'], holdId: data['holdId'] }
|
|
91
|
+
: { code: data.code, ruleId: '' };
|
|
92
|
+
}
|
|
43
93
|
//# sourceMappingURL=refusals.js.map
|
package/dist/refusals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refusals.js","sourceRoot":"","sources":["../src/refusals.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"refusals.js","sourceRoot":"","sources":["../src/refusals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,sBAAsB;IACtB,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,WAAW;IACX,KAAK;IACL,UAAU;IACV,MAAM;IACN,WAAW;IACX,SAAS;IACT,WAAW;IACX,OAAO;IACP,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,wBAAwB;IACxB,kBAAkB;IAClB,0BAA0B;IAC1B,qBAAqB;IACrB,2BAA2B;CACnB,CAAA;AAWV;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgC,IAAI,GAAG,CAAiB;IACvF,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,WAAW;IACX,KAAK;IACL,UAAU;IACV,MAAM;IACN,WAAW;IACX,SAAS;IACT,WAAW;IACX,OAAO;IACP,iBAAiB;IACjB,qBAAqB;IACrB,2BAA2B;CAC5B,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAiB;IAC/C,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,iBAAiB,CAAC,IAAiB;IACjD,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM;QACzB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC9E,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;AACrC,CAAC"}
|
package/dist/remoteBridge.d.ts
CHANGED
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
* @module
|
|
33
33
|
*/
|
|
34
34
|
import type { ProxyConfig } from './config.js';
|
|
35
|
+
import type { ChaosInjector } from './chaos.js';
|
|
35
36
|
/**
|
|
36
37
|
* Run the proxy in remote bridge mode: connect to `config.remoteUrl` over
|
|
37
38
|
* HTTP or SSE and proxy the harness's stdio traffic through it, applying the
|
|
@@ -47,5 +48,5 @@ import type { ProxyConfig } from './config.js';
|
|
|
47
48
|
* block rather than calling `process.exit` itself, so both failure modes
|
|
48
49
|
* surface through one place with one log shape.
|
|
49
50
|
*/
|
|
50
|
-
export declare function runRemoteProxy(config: ProxyConfig): Promise<void>;
|
|
51
|
+
export declare function runRemoteProxy(config: ProxyConfig, chaos?: ChaosInjector | null): Promise<void>;
|
|
51
52
|
//# sourceMappingURL=remoteBridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteBridge.d.ts","sourceRoot":"","sources":["../src/remoteBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"remoteBridge.d.ts","sourceRoot":"","sources":["../src/remoteBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAM9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AA0B/C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,GAAE,aAAa,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuI3G"}
|
package/dist/remoteBridge.js
CHANGED
|
@@ -72,7 +72,7 @@ function buildRemoteTransport(config) {
|
|
|
72
72
|
* block rather than calling `process.exit` itself, so both failure modes
|
|
73
73
|
* surface through one place with one log shape.
|
|
74
74
|
*/
|
|
75
|
-
export async function runRemoteProxy(config) {
|
|
75
|
+
export async function runRemoteProxy(config, chaos = null) {
|
|
76
76
|
if (config.remoteUrl === undefined) {
|
|
77
77
|
throw new Error('runRemoteProxy called without config.remoteUrl');
|
|
78
78
|
}
|
|
@@ -83,12 +83,13 @@ export async function runRemoteProxy(config) {
|
|
|
83
83
|
workspaceId: config.workspaceId,
|
|
84
84
|
serverName: config.serverName,
|
|
85
85
|
}, 'Starting MCP governance remote bridge');
|
|
86
|
-
const proxy = new McpGovernanceProxy(config);
|
|
86
|
+
const proxy = new McpGovernanceProxy(config, chaos);
|
|
87
87
|
const interceptor = proxy.getInterceptor();
|
|
88
88
|
const session = proxy.getSessionState();
|
|
89
89
|
// Requests whose responses this proxy must inspect on the way back — same
|
|
90
90
|
// role, same shape, as `runProxy`'s own `pending` map.
|
|
91
91
|
const pending = new Map();
|
|
92
|
+
const chaosHooks = proxy.chaosHooks(pending);
|
|
92
93
|
const transport = buildRemoteTransport(config);
|
|
93
94
|
let shuttingDown = false;
|
|
94
95
|
// Callbacks MUST be installed before `transport.start()` — the `Transport`
|
|
@@ -161,7 +162,7 @@ export async function runRemoteProxy(config) {
|
|
|
161
162
|
transport.send(message).catch((err) => {
|
|
162
163
|
log.error({ action: 'remote_send_error', err: err.message }, 'Failed to send message to remote MCP server');
|
|
163
164
|
});
|
|
164
|
-
}, session);
|
|
165
|
+
}, session, chaosHooks);
|
|
165
166
|
});
|
|
166
167
|
rl.on('close', () => {
|
|
167
168
|
log.info({ action: 'stdin_closed' }, 'Harness stdin closed — shutting down remote bridge');
|
package/dist/remoteBridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteBridge.js","sourceRoot":"","sources":["../src/remoteBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,aAAa,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEnE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAA;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAA;
|
|
1
|
+
{"version":3,"file":"remoteBridge.js","sourceRoot":"","sources":["../src/remoteBridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intutic/mcp-governance-proxy",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "Intutic MCP Governance Proxy — transparent stdio proxy that intercepts all tools/call JSON-RPC messages and applies workspace SOP policy before forwarding to real MCP servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,9 +33,9 @@
|
|
|
33
33
|
"@opentelemetry/semantic-conventions": "^1.43.0",
|
|
34
34
|
"ioredis": "^5",
|
|
35
35
|
"zod": "^3",
|
|
36
|
-
"@intutic/
|
|
37
|
-
"@intutic/shared-types": "2.
|
|
38
|
-
"@intutic/
|
|
36
|
+
"@intutic/logger": "2.5.0",
|
|
37
|
+
"@intutic/shared-types": "2.5.0",
|
|
38
|
+
"@intutic/id": "2.5.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/node": "^22",
|