@intutic/gate 2.4.0 → 2.5.1
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 +42 -10
- package/dist/actions.d.ts +1 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +1 -0
- package/dist/actions.js.map +1 -1
- package/dist/chaosGate.d.ts +166 -0
- package/dist/chaosGate.d.ts.map +1 -0
- package/dist/chaosGate.js +372 -0
- package/dist/chaosGate.js.map +1 -0
- package/dist/client.d.ts +85 -17
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +129 -34
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -0
- package/dist/errors.js.map +1 -1
- package/dist/eve.d.ts +1 -1
- package/dist/eve.d.ts.map +1 -1
- package/dist/eve.js +1 -1
- package/dist/eve.js.map +1 -1
- package/dist/gate.d.ts +81 -2
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +167 -17
- package/dist/gate.js.map +1 -1
- package/dist/harness.d.ts +0 -38
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +17 -6
- package/dist/harness.js.map +1 -1
- package/dist/hold.d.ts.map +1 -1
- package/dist/hold.js +5 -2
- package/dist/hold.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/opaqueRefusal.d.ts +40 -0
- package/dist/opaqueRefusal.d.ts.map +1 -0
- package/dist/opaqueRefusal.js +47 -0
- package/dist/opaqueRefusal.js.map +1 -0
- package/dist/registry.d.ts +2 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -1
- package/dist/snapshot.d.ts +15 -0
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +20 -0
- package/dist/snapshot.js.map +1 -1
- package/dist/soprules.d.ts +24 -2
- package/dist/soprules.d.ts.map +1 -1
- package/dist/soprules.js +35 -6
- package/dist/soprules.js.map +1 -1
- package/dist/vercel.d.ts +19 -5
- package/dist/vercel.d.ts.map +1 -1
- package/dist/vercel.js +27 -6
- package/dist/vercel.js.map +1 -1
- package/dist/wrapTools.d.ts +1 -0
- package/dist/wrapTools.d.ts.map +1 -1
- package/dist/wrapTools.js.map +1 -1
- package/package.json +11 -10
package/dist/client.js
CHANGED
|
@@ -5,23 +5,33 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Endpoints used:
|
|
7
7
|
*
|
|
8
|
-
* POST /api/v1/hook-gate synchronous allow/deny -> {allowed, reason, incidentId?, code?}
|
|
8
|
+
* POST /api/v1/hook-gate synchronous allow/deny -> {allowed, reason, incidentId?, code?, degraded?, decisionId?}
|
|
9
9
|
* POST /api/v1/hook-events batched telemetry -> creates governance_incidents rows
|
|
10
10
|
* POST /api/v1/decisions record a hold -> joins the review queue (hold.ts)
|
|
11
11
|
* GET /api/v1/decisions/approved-bypasses -> approvals that let a held call through
|
|
12
12
|
*
|
|
13
13
|
* Two behaviours that must not be "improved":
|
|
14
14
|
*
|
|
15
|
-
* * The hook
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* `
|
|
22
|
-
* tier as advisory
|
|
15
|
+
* * The hook gate fails CLOSED, on both sides. The server refuses a call
|
|
16
|
+
* whose checks could not run (403 `GOVERNANCE_UNAVAILABLE`; a shadow-mode
|
|
17
|
+
* workspace gets a degraded allow instead) and a body it cannot read
|
|
18
|
+
* (400 `INVALID_REQUEST`). This client treats `GOVERNANCE_UNAVAILABLE`
|
|
19
|
+
* exactly as it treats a control plane it cannot reach, a non-2xx answer,
|
|
20
|
+
* or an answer with no boolean `allowed`: there is no verdict to defer to,
|
|
21
|
+
* and `failClosed` (default true) decides, reporting `allowed=false`. Set
|
|
22
|
+
* `failClosed=false` to treat the tier as advisory during an outage. A 400
|
|
23
|
+
* is refused whatever `failClosed` says: it is this client's request that
|
|
24
|
+
* is wrong, not the control plane that is down, and allowing would hide it.
|
|
23
25
|
* * `emit` NEVER throws. Telemetry that can break a run is worse than no
|
|
24
26
|
* telemetry.
|
|
27
|
+
*
|
|
28
|
+
* A client with no API key is LOCAL-ONLY ({@link GateClient.localOnly}): it
|
|
29
|
+
* cannot authenticate, so it makes no request at all. Its hook gate answers
|
|
30
|
+
* allow with code `LOCAL_ONLY` and says why, its events and holds are not
|
|
31
|
+
* sent, and the `Gate` skips the SOP register. The local tiers (policy
|
|
32
|
+
* snapshot, SSO groups from the snapshot, MCP registry, image integrity) are
|
|
33
|
+
* unaffected. A client WITH a key that the control plane refuses (401) is not
|
|
34
|
+
* local-only: that is an authentication fault, and fails closed as above.
|
|
25
35
|
*/
|
|
26
36
|
import { randomBytes } from 'node:crypto';
|
|
27
37
|
import { readFileSync } from 'node:fs';
|
|
@@ -46,6 +56,28 @@ const VALID_EVENTS = new Set([
|
|
|
46
56
|
'tool_held',
|
|
47
57
|
'hold_approved_bypass_used',
|
|
48
58
|
]);
|
|
59
|
+
/** The hook gate's code for a call whose checks could not run. */
|
|
60
|
+
const GOVERNANCE_UNAVAILABLE = 'GOVERNANCE_UNAVAILABLE';
|
|
61
|
+
/** The code on a local-only client's hook-gate answer: no key, so no call was made. */
|
|
62
|
+
const LOCAL_ONLY = 'LOCAL_ONLY';
|
|
63
|
+
/** Thrown before any request a local-only client would otherwise send. */
|
|
64
|
+
class LocalOnlyError extends Error {
|
|
65
|
+
constructor(path) {
|
|
66
|
+
super(`no API key: ${path} not called (local-only client)`);
|
|
67
|
+
this.name = 'LocalOnlyError';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** A non-2xx answer, with its status and whatever JSON body it carried. */
|
|
71
|
+
class HttpStatusError extends Error {
|
|
72
|
+
status;
|
|
73
|
+
body;
|
|
74
|
+
constructor(path, status, body) {
|
|
75
|
+
super(`HTTP ${status} from ${path}`);
|
|
76
|
+
this.status = status;
|
|
77
|
+
this.body = body;
|
|
78
|
+
this.name = 'HttpStatusError';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
49
81
|
/**
|
|
50
82
|
* Control-plane client for the pre-execution gate.
|
|
51
83
|
*
|
|
@@ -71,10 +103,20 @@ export class GateClient {
|
|
|
71
103
|
this.failClosed = opts.failClosed ?? true;
|
|
72
104
|
this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
73
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* True when there is no API key. Such a client cannot authenticate, so it
|
|
108
|
+
* sends nothing: the control-plane tiers (SOP register, hook gate) are
|
|
109
|
+
* skipped, events and holds are not reported, and the local tiers decide.
|
|
110
|
+
*/
|
|
111
|
+
get localOnly() {
|
|
112
|
+
return this.apiKey === '';
|
|
113
|
+
}
|
|
74
114
|
async post(path, body, timeoutMs) {
|
|
75
115
|
return this.request('POST', path, body, timeoutMs);
|
|
76
116
|
}
|
|
77
117
|
async request(method, path, body, timeoutMs) {
|
|
118
|
+
if (this.localOnly)
|
|
119
|
+
throw new LocalOnlyError(path);
|
|
78
120
|
const controller = new AbortController();
|
|
79
121
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
80
122
|
try {
|
|
@@ -88,9 +130,17 @@ export class GateClient {
|
|
|
88
130
|
...(body === undefined ? {} : { body: JSON.stringify(body) }),
|
|
89
131
|
signal: controller.signal,
|
|
90
132
|
});
|
|
91
|
-
if (!res.ok)
|
|
92
|
-
throw new Error(`HTTP ${res.status} from ${path}`);
|
|
93
133
|
const text = await res.text();
|
|
134
|
+
if (!res.ok) {
|
|
135
|
+
let body = null;
|
|
136
|
+
try {
|
|
137
|
+
body = text ? JSON.parse(text) : null;
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
// Not JSON: the status alone is the answer.
|
|
141
|
+
}
|
|
142
|
+
throw new HttpStatusError(path, res.status, body !== null && typeof body === 'object' ? body : {});
|
|
143
|
+
}
|
|
94
144
|
return text ? JSON.parse(text) : {};
|
|
95
145
|
}
|
|
96
146
|
finally {
|
|
@@ -104,51 +154,93 @@ export class GateClient {
|
|
|
104
154
|
* plus SOP rules. It is defence in depth on top of the local tiers, not a
|
|
105
155
|
* replacement for them.
|
|
106
156
|
*
|
|
107
|
-
* When
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
157
|
+
* When there is no verdict (the control plane cannot be reached, answers
|
|
158
|
+
* non-2xx or without a boolean `allowed`, or answers
|
|
159
|
+
* `GOVERNANCE_UNAVAILABLE` because its own checks could not run), the
|
|
160
|
+
* verdict is decided by `failClosed`: true (the default) reports BLOCK,
|
|
161
|
+
* because a client with no verdict has nothing to defer to; false reports
|
|
162
|
+
* allow. A 400 `INVALID_REQUEST` is a BLOCK whatever `failClosed` says. A
|
|
163
|
+
* shadow-mode workspace's `{allowed: true, degraded: true}` is an allow.
|
|
164
|
+
*
|
|
165
|
+
* A {@link localOnly} client makes no call and answers allow with code
|
|
166
|
+
* `LOCAL_ONLY`, whatever `failClosed` says: with no key there is no
|
|
167
|
+
* control-plane tier to fail, only local ones, which have already run.
|
|
111
168
|
*/
|
|
112
169
|
async hookGate(toolName, toolInput) {
|
|
170
|
+
if (this.localOnly) {
|
|
171
|
+
return {
|
|
172
|
+
allowed: true,
|
|
173
|
+
reason: 'hook-gate skipped — no API key, so this client is local-only: the control-plane ' +
|
|
174
|
+
'tiers (SOP register, hook gate) did not run; the policy snapshot, SSO-group and ' +
|
|
175
|
+
'image tiers did',
|
|
176
|
+
code: LOCAL_ONLY,
|
|
177
|
+
reached: false,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
let d;
|
|
113
181
|
try {
|
|
114
|
-
|
|
182
|
+
d = await this.post('/api/v1/hook-gate', {
|
|
115
183
|
toolName,
|
|
116
184
|
toolInput,
|
|
117
185
|
workspaceId: this.workspaceId,
|
|
118
186
|
sessionId: this.sessionId,
|
|
119
187
|
harnessType: this.harness,
|
|
120
188
|
}, this.timeoutMs);
|
|
121
|
-
return {
|
|
122
|
-
allowed: Boolean(d.allowed ?? true),
|
|
123
|
-
reason: String(d.reason ?? ''),
|
|
124
|
-
incidentId: typeof d.incidentId === 'string' ? d.incidentId : undefined,
|
|
125
|
-
code: typeof d.code === 'string' ? d.code : undefined,
|
|
126
|
-
reached: true,
|
|
127
|
-
};
|
|
128
189
|
}
|
|
129
190
|
catch (exc) {
|
|
130
|
-
|
|
131
|
-
|
|
191
|
+
if (exc instanceof HttpStatusError && exc.status === 400) {
|
|
192
|
+
const why = typeof exc.body.reason === 'string' ? exc.body.reason : exc.message;
|
|
132
193
|
return {
|
|
133
194
|
allowed: false,
|
|
134
|
-
reason: `hook-gate
|
|
135
|
-
|
|
195
|
+
reason: `hook-gate rejected the request (INVALID_REQUEST): ${why}`,
|
|
196
|
+
code: 'INVALID_REQUEST',
|
|
197
|
+
reached: true,
|
|
136
198
|
};
|
|
137
199
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
};
|
|
200
|
+
if (exc instanceof HttpStatusError && exc.body.code === GOVERNANCE_UNAVAILABLE) {
|
|
201
|
+
return this.noVerdict(`governance check unavailable (${GOVERNANCE_UNAVAILABLE})`, GOVERNANCE_UNAVAILABLE, exc.body.decisionId);
|
|
202
|
+
}
|
|
203
|
+
const name = exc instanceof Error ? exc.constructor.name : 'Error';
|
|
204
|
+
return this.noVerdict(`unreachable (${name})`);
|
|
205
|
+
}
|
|
206
|
+
if (d.allowed === false && d.code === GOVERNANCE_UNAVAILABLE) {
|
|
207
|
+
return this.noVerdict(`governance check unavailable (${GOVERNANCE_UNAVAILABLE})`, GOVERNANCE_UNAVAILABLE, d.decisionId);
|
|
143
208
|
}
|
|
209
|
+
if (typeof d.allowed !== 'boolean')
|
|
210
|
+
return this.noVerdict('answered without a verdict');
|
|
211
|
+
return {
|
|
212
|
+
allowed: d.allowed,
|
|
213
|
+
reason: String(d.reason ?? ''),
|
|
214
|
+
incidentId: typeof d.incidentId === 'string' ? d.incidentId : undefined,
|
|
215
|
+
code: typeof d.code === 'string' ? d.code : undefined,
|
|
216
|
+
reached: true,
|
|
217
|
+
decisionId: typeof d.decisionId === 'string' ? d.decisionId : undefined,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* The answer when the hook gate gave no verdict: `failClosed` decides. A
|
|
222
|
+
* `GOVERNANCE_UNAVAILABLE` refusal's `decisionId` is kept when failing
|
|
223
|
+
* closed, which refuses as the hook gate did, and dropped when failing open:
|
|
224
|
+
* the call then runs, and its report must not stand for the refusal.
|
|
225
|
+
*/
|
|
226
|
+
noVerdict(what, code, decisionId) {
|
|
227
|
+
return this.failClosed
|
|
228
|
+
? {
|
|
229
|
+
allowed: false, reason: `hook-gate ${what} — failing closed (failClosed=true)`, code, reached: false,
|
|
230
|
+
decisionId: typeof decisionId === 'string' ? decisionId : undefined,
|
|
231
|
+
}
|
|
232
|
+
: { allowed: true, reason: `hook-gate ${what} — failing open (failClosed=false)`, code, reached: false };
|
|
144
233
|
}
|
|
145
234
|
/**
|
|
146
235
|
* Fire-and-forget telemetry. Never throws.
|
|
147
236
|
*
|
|
148
237
|
* A `tool_blocked` event creates a `governance_incidents` row whose
|
|
149
|
-
* description embeds the reason verbatim.
|
|
238
|
+
* description embeds the reason verbatim. `gateDecisionId` is the hook
|
|
239
|
+
* gate's `decisionId` for the call this event reports: the control plane
|
|
240
|
+
* then files the decision's incident once and does not export it to SIEM a
|
|
241
|
+
* second time.
|
|
150
242
|
*/
|
|
151
|
-
async emit(event, toolName, reason = '', toolInput, incidentId, filePath) {
|
|
243
|
+
async emit(event, toolName, reason = '', toolInput, incidentId, filePath, gateDecisionId) {
|
|
152
244
|
if (!VALID_EVENTS.has(event))
|
|
153
245
|
return false;
|
|
154
246
|
const ev = {
|
|
@@ -170,6 +262,8 @@ export class GateClient {
|
|
|
170
262
|
ev.toolInput = toolInput;
|
|
171
263
|
if (incidentId)
|
|
172
264
|
ev.incidentId = incidentId;
|
|
265
|
+
if (gateDecisionId)
|
|
266
|
+
ev.gateDecisionId = gateDecisionId;
|
|
173
267
|
if (filePath)
|
|
174
268
|
ev.filePath = filePath.slice(0, 512);
|
|
175
269
|
try {
|
|
@@ -214,6 +308,7 @@ export class GateClient {
|
|
|
214
308
|
*
|
|
215
309
|
* Reading `~/.intutic/credentials.json` means the gate works with whatever
|
|
216
310
|
* workspace `intutic login` already bound, instead of duplicating the key.
|
|
311
|
+
* With no key in either place the client is {@link localOnly}.
|
|
217
312
|
*/
|
|
218
313
|
static fromEnv(opts = {}) {
|
|
219
314
|
const base = process.env.INTUTIC_CONTROL_PLANE_URL || 'https://api.intutic.ai';
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export declare class GateConnectionError extends GateError {
|
|
|
31
31
|
* `packages/shared-types/fixtures/refusal-codes.json` (`gate`) by a test, as
|
|
32
32
|
* the Python gate's list and the gate SDK reference are.
|
|
33
33
|
*/
|
|
34
|
-
export declare const GATE_REFUSAL_CODES: readonly ["SSO_GROUP", "SNAPSHOT", "HELD", "SERVER_BLOCKED", "SERVER_HELD", "SERVER_NOT_APPROVED", "TOOL_DISABLED", "SERVER_NOT_ALLOWED", "POLICY_SNAPSHOT_UNVERIFIED", "SOP_RULE", "HOOK_GATE", "COMMAND_TOO_LARGE", "E_UNPINNED_LATEST", "E_UNPINNED_TAG", "E_UNKNOWN_REGISTRY", "E_UNKNOWN_IMAGE", "E_DIGEST_MISMATCH", "E_MANIFEST_UNPARSEABLE", "WORKFLOW_SANDBOX", "NO_GATE"];
|
|
34
|
+
export declare const GATE_REFUSAL_CODES: readonly ["SSO_GROUP", "SNAPSHOT", "HELD", "SERVER_BLOCKED", "SERVER_HELD", "SERVER_NOT_APPROVED", "TOOL_DISABLED", "SERVER_NOT_ALLOWED", "POLICY_SNAPSHOT_UNVERIFIED", "SOP_RULE", "HOOK_GATE", "COMMAND_TOO_LARGE", "CHAOS_FAULT", "E_UNPINNED_LATEST", "E_UNPINNED_TAG", "E_UNKNOWN_REGISTRY", "E_UNKNOWN_IMAGE", "E_DIGEST_MISMATCH", "E_MANIFEST_UNPARSEABLE", "WORKFLOW_SANDBOX", "NO_GATE"];
|
|
35
35
|
export type GateRefusalCode = (typeof GATE_REFUSAL_CODES)[number];
|
|
36
36
|
/**
|
|
37
37
|
* Raised when a tool call must not run.
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sDAAsD;AACtD,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sDAAsD;AACtD,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,oYA6BrB,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEjE;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,SAAgB,MAAM,EAAE,MAAM,CAAA;IAC9B,SAAgB,IAAI,EAAE,eAAe,CAAA;IACrC,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;gBAElC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM;CAOvE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAgB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;gBAE9B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;CAMvD"}
|
package/dist/errors.js
CHANGED
|
@@ -54,6 +54,9 @@ export const GATE_REFUSAL_CODES = [
|
|
|
54
54
|
'HOOK_GATE',
|
|
55
55
|
// The call is too large to evaluate (limits.ts), before any tier runs.
|
|
56
56
|
'COMMAND_TOO_LARGE',
|
|
57
|
+
// A chaos run's fault, injected after every tier allowed the call, or its
|
|
58
|
+
// unreadable plan (chaosGate.ts). Never a governance decision.
|
|
59
|
+
'CHAOS_FAULT',
|
|
57
60
|
'E_UNPINNED_LATEST',
|
|
58
61
|
'E_UNPINNED_TAG',
|
|
59
62
|
'E_UNKNOWN_REGISTRY',
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sDAAsD;AACtD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;IACzB,CAAC;CACF;AAED,kEAAkE;AAClE,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW;IACX,UAAU;IACV,MAAM;IACN,yEAAyE;IACzE,6BAA6B;IAC7B,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,qEAAqE;IACrE,4BAA4B;IAC5B,UAAU;IACV,WAAW;IACX,uEAAuE;IACvE,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,mEAAmE;IACnE,kBAAkB;IAClB,SAAS;CACD,CAAA;AAIV;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/B,MAAM,CAAQ;IACd,IAAI,CAAiB;IACrB,UAAU,CAAoB;IAE9C,YAAY,MAAc,EAAE,IAAqB,EAAE,UAAmB;QACpE,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IACrC,MAAM,CAAoB;IAE1C,YAAY,MAAc,EAAE,MAA0B;QACpD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,IAAI,CAAC,OAAO,GAAG,8BAA8B,MAAM,EAAE,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,sDAAsD;AACtD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;IACzB,CAAC;CACF;AAED,kEAAkE;AAClE,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW;IACX,UAAU;IACV,MAAM;IACN,yEAAyE;IACzE,6BAA6B;IAC7B,gBAAgB;IAChB,aAAa;IACb,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,qEAAqE;IACrE,4BAA4B;IAC5B,UAAU;IACV,WAAW;IACX,uEAAuE;IACvE,mBAAmB;IACnB,0EAA0E;IAC1E,+DAA+D;IAC/D,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,mEAAmE;IACnE,kBAAkB;IAClB,SAAS;CACD,CAAA;AAIV;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/B,MAAM,CAAQ;IACd,IAAI,CAAiB;IACrB,UAAU,CAAoB;IAE9C,YAAY,MAAc,EAAE,IAAqB,EAAE,UAAmB;QACpE,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAA;QAChD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IACrC,MAAM,CAAoB;IAE1C,YAAY,MAAc,EAAE,MAA0B;QACpD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAC7B,IAAI,CAAC,OAAO,GAAG,8BAA8B,MAAM,EAAE,CAAA;QACrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF"}
|
package/dist/eve.d.ts
CHANGED
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
*/
|
|
160
160
|
import { type Gate } from './gate.js';
|
|
161
161
|
import { GateClient } from './client.js';
|
|
162
|
-
export { intuticProxyUrl, withIntuticProxy } from './vercel.js';
|
|
162
|
+
export { intuticProxyBaseUrl, intuticProxyUrl, withIntuticProxy } from './vercel.js';
|
|
163
163
|
/** Synthetic tool name used by {@link intuticAuditHooks} — eve's
|
|
164
164
|
* `approval.candidate`/`approval.settled` events do not carry the real tool
|
|
165
165
|
* name (verified against `dist/src/protocol/message.d.ts`; see module doc). */
|
package/dist/eve.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eve.d.ts","sourceRoot":"","sources":["../src/eve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8JG;AAEH,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAMxC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"eve.d.ts","sourceRoot":"","sources":["../src/eve.ts"],"names":[],"mappings":"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"}
|
package/dist/eve.js
CHANGED
|
@@ -163,7 +163,7 @@ import { IntuticGateRefusal } from './errors.js';
|
|
|
163
163
|
// One routing story, one implementation: eve's direct-provider path is the
|
|
164
164
|
// Vercel AI SDK's (eve is built on `ai` v7), so the helper is re-exported
|
|
165
165
|
// rather than duplicated. See vercel.ts for the full module doc.
|
|
166
|
-
export { intuticProxyUrl, withIntuticProxy } from './vercel.js';
|
|
166
|
+
export { intuticProxyBaseUrl, intuticProxyUrl, withIntuticProxy } from './vercel.js';
|
|
167
167
|
/** Synthetic tool name used by {@link intuticAuditHooks} — eve's
|
|
168
168
|
* `approval.candidate`/`approval.settled` events do not carry the real tool
|
|
169
169
|
* name (verified against `dist/src/protocol/message.d.ts`; see module doc). */
|
package/dist/eve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eve.js","sourceRoot":"","sources":["../src/eve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8JG;AAEH,OAAO,EAAE,MAAM,IAAI,UAAU,EAAa,MAAM,WAAW,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD,2EAA2E;AAC3E,0EAA0E;AAC1E,iEAAiE;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"eve.js","sourceRoot":"","sources":["../src/eve.ts"],"names":[],"mappings":"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"}
|
package/dist/gate.d.ts
CHANGED
|
@@ -36,9 +36,22 @@
|
|
|
36
36
|
* call through — the hook gates' and the MCP proxy's mechanism, through the
|
|
37
37
|
* same decisions API. See hold.ts.
|
|
38
38
|
*
|
|
39
|
+
* Under a chaos run (`intutic chaos run`, which sets `INTUTIC_CHAOS_PLAN` and
|
|
40
|
+
* `INTUTIC_CHAOS_EVENTS`), {@link Gate.guard} reports each call to the run's
|
|
41
|
+
* events file and injects the plan's `tool.error` and
|
|
42
|
+
* `permission.deny_or_delay` faults into a call every tier allowed, exactly
|
|
43
|
+
* as the hook gates do: the same plan decoding and counter files
|
|
44
|
+
* (`chaosGate.ts`, a byte-identical copy of `@intutic/shared-types`'
|
|
45
|
+
* module). A fault refuses with `CHAOS_FAULT`; a held call throws
|
|
46
|
+
* {@link IntuticGateHold} with no `holdId`, until its identical retry is
|
|
47
|
+
* let through or denied.
|
|
48
|
+
*
|
|
39
49
|
* A1 and A2 are load-bearing and local. Tier B contributes the DLP regexes
|
|
40
50
|
* and workspace policy from the control plane; whether an unreachable control
|
|
41
|
-
* plane
|
|
51
|
+
* plane, or one whose checks could not run (`GOVERNANCE_UNAVAILABLE`), blocks
|
|
52
|
+
* is the client's `failClosed` setting (default true). A client with no API
|
|
53
|
+
* key is local-only (`GateClient.localOnly`): A3 and B are skipped and the
|
|
54
|
+
* hook-gate answer says so (code `LOCAL_ONLY`), while A0, A1, M and A2 run.
|
|
42
55
|
*
|
|
43
56
|
* Tier A3 applies rules written in the SOP register rather than in code. It
|
|
44
57
|
* runs BEFORE A2 so that a block, when both would fire, is attributed to the
|
|
@@ -71,12 +84,38 @@ import * as soprules from './soprules.js';
|
|
|
71
84
|
/** Tools that cannot change anything. They still get the local snapshot check
|
|
72
85
|
* (Tier A1), but skip the remote gate call (Tier B). */
|
|
73
86
|
export declare const READ_ONLY_TOOLS: ReadonlySet<string>;
|
|
87
|
+
/** How a {@link Gate} evaluates calls. Every field is optional. */
|
|
74
88
|
export interface GateConfig {
|
|
89
|
+
/**
|
|
90
|
+
* Where relative manifest and allowlist paths resolve from.
|
|
91
|
+
* @defaultValue `'.'`
|
|
92
|
+
*/
|
|
75
93
|
repoRoot?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Compared with the workspace the policy snapshot was compiled for, and
|
|
96
|
+
* scopes the SOP-rule fetch.
|
|
97
|
+
* @defaultValue `''`
|
|
98
|
+
*/
|
|
76
99
|
workspaceId?: string;
|
|
100
|
+
/**
|
|
101
|
+
* The image allowlist, relative to `repoRoot` unless absolute.
|
|
102
|
+
* @defaultValue `'.intutic/image-allowlist.json'`
|
|
103
|
+
*/
|
|
77
104
|
allowlistPath?: string;
|
|
105
|
+
/**
|
|
106
|
+
* `false` turns {@link Gate.guard} into a no-op.
|
|
107
|
+
* @defaultValue `true`
|
|
108
|
+
*/
|
|
78
109
|
enforce?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Call the control plane's hook gate (needs a client).
|
|
112
|
+
* @defaultValue `true`
|
|
113
|
+
*/
|
|
79
114
|
useHookGate?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Fetch and apply the workspace's SOP rules (needs a client).
|
|
117
|
+
* @defaultValue `true`
|
|
118
|
+
*/
|
|
80
119
|
useSopRules?: boolean;
|
|
81
120
|
}
|
|
82
121
|
interface ResolvedConfig {
|
|
@@ -88,6 +127,13 @@ interface ResolvedConfig {
|
|
|
88
127
|
useSopRules: boolean;
|
|
89
128
|
}
|
|
90
129
|
export type ToolInput = Record<string, unknown>;
|
|
130
|
+
/**
|
|
131
|
+
* The pre-execution gate. {@link Gate.guard} evaluates one tool call against
|
|
132
|
+
* the local tiers (SSO group policy, policy snapshot, MCP servers, image
|
|
133
|
+
* integrity) and, with a {@link GateClient}, the control-plane tiers (SOP
|
|
134
|
+
* rules, hook gate), and throws {@link IntuticGateRefusal} to refuse it.
|
|
135
|
+
* Without a client only the local tiers run.
|
|
136
|
+
*/
|
|
91
137
|
export declare class Gate {
|
|
92
138
|
readonly cfg: ResolvedConfig;
|
|
93
139
|
readonly client: GateClient | null;
|
|
@@ -97,6 +143,9 @@ export declare class Gate {
|
|
|
97
143
|
/** `null` = not fetched yet. A failed fetch caches `[]` so one unreachable
|
|
98
144
|
* control plane does not add a timeout to every subsequent tool call. */
|
|
99
145
|
private _sopRules;
|
|
146
|
+
/** The SOP register said the workspace is OPAQUE (read with its rules). */
|
|
147
|
+
private _registerOpaque;
|
|
148
|
+
private _chaos;
|
|
100
149
|
constructor(cfg?: GateConfig, client?: GateClient | null);
|
|
101
150
|
private allowlistAbs;
|
|
102
151
|
getSnapshot(): snapshot.Snapshot;
|
|
@@ -117,6 +166,21 @@ export declare class Gate {
|
|
|
117
166
|
* (or clear the cache) to refresh.
|
|
118
167
|
*/
|
|
119
168
|
getSopRules(): Promise<soprules.SopRule[]>;
|
|
169
|
+
/**
|
|
170
|
+
* What the agent is told of a refusal on workspace policy: the reason, or in
|
|
171
|
+
* an OPAQUE workspace (the snapshot's `@intervention_mode` record) the
|
|
172
|
+
* generic sentence, so it cannot learn the rule to route around it. The
|
|
173
|
+
* code is unchanged, and the event is always emitted with the full reason.
|
|
174
|
+
*/
|
|
175
|
+
private shown;
|
|
176
|
+
/**
|
|
177
|
+
* Whether the workspace is OPAQUE: the policy snapshot's record when there
|
|
178
|
+
* is a snapshot, and the SOP register's `interventionMode` when there is
|
|
179
|
+
* none. Without a snapshot the only tiers that refuse on workspace policy
|
|
180
|
+
* are the register's (A3, which reads the mode with its rules) and the hook
|
|
181
|
+
* gate, which applies the mode itself.
|
|
182
|
+
*/
|
|
183
|
+
private opaque;
|
|
120
184
|
private emit;
|
|
121
185
|
/**
|
|
122
186
|
* Report snapshot condition exactly once per process — otherwise these
|
|
@@ -124,8 +188,23 @@ export declare class Gate {
|
|
|
124
188
|
* "snapshot missing on 400 machines" from "snapshot healthy".
|
|
125
189
|
*/
|
|
126
190
|
private reportSnapshotHealthOnce;
|
|
127
|
-
/**
|
|
191
|
+
/** A chaos run's plan, from `INTUTIC_CHAOS_PLAN` and `INTUTIC_CHAOS_EVENTS`, read once. */
|
|
192
|
+
private chaos;
|
|
193
|
+
/** Reports one call to a chaos run's events file; returns the fault due on an allowed call. */
|
|
194
|
+
private chaosReport;
|
|
195
|
+
/**
|
|
196
|
+
* Throws {@link IntuticGateRefusal} if this call must not run. Resolves to allow.
|
|
197
|
+
*
|
|
198
|
+
* Under a chaos run's plan, the call is reported to the run's events file
|
|
199
|
+
* whatever the tiers decide, and a call they allowed can still be refused
|
|
200
|
+
* by the fault that is due (`CHAOS_FAULT`, or {@link IntuticGateHold} for
|
|
201
|
+
* a held one). A plan that is set but unreadable refuses every call: an
|
|
202
|
+
* experiment run without the faults it asked for reports a resilience it
|
|
203
|
+
* never measured.
|
|
204
|
+
*/
|
|
128
205
|
guard(toolName: string, toolInput: ToolInput): Promise<void>;
|
|
206
|
+
/** The tiers: throws to refuse, resolves to allow. `note` collects a chaos run's record of the call. */
|
|
207
|
+
private decide;
|
|
129
208
|
/**
|
|
130
209
|
* Throws when the workspace's MCP server registry or allowlist refuses an
|
|
131
210
|
* `mcp__<server>__<tool>` call: the registry first, as every gate orders
|
package/dist/gate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;yDACyD;AACzD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAM9C,CAAA;AAEF,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,OAAO,CAAA;CACrB;AAaD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAoB/C;;;;;;GAMG;AACH,qBAAa,IAAI;IACf,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAsC;IACrD;8EAC0E;IAC1E,OAAO,CAAC,SAAS,CAAkC;IACnD,2EAA2E;IAC3E,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,MAAM,CAA0B;gBAE5B,GAAG,GAAE,UAAe,EAAE,MAAM,GAAE,UAAU,GAAG,IAAW;IAKlE,OAAO,CAAC,YAAY;IAOpB,WAAW,IAAI,QAAQ,CAAC,QAAQ;IAOhC;;;;;;;OAOG;IACH,SAAS,IAAI,UAAU,CAAC,WAAW;IAwBnC;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;IA+BhD;;;;;OAKG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;YAOA,IAAI;IAclB;;;;OAIG;YACW,wBAAwB;IAStC,2FAA2F;IAC3F,OAAO,CAAC,KAAK;IAgBb,+FAA+F;IAC/F,OAAO,CAAC,WAAW;IAoBnB;;;;;;;;;OASG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BlE,wGAAwG;YAC1F,MAAM;IA0JpB;;;;;OAKG;YACW,QAAQ;IAkCtB;;;;OAIG;YACW,IAAI;CAqBnB;AAiCD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA"}
|