@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/gate.js
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
|
|
@@ -64,12 +77,16 @@
|
|
|
64
77
|
* package's Tier A1 DOES reproduce exactly (the destructive-command and
|
|
65
78
|
* skill-surface pattern tables, as they would arrive via a real snapshot).
|
|
66
79
|
*/
|
|
80
|
+
import { createHash } from 'node:crypto';
|
|
81
|
+
import * as fs from 'node:fs';
|
|
67
82
|
import { existsSync, readFileSync } from 'node:fs';
|
|
68
83
|
import { isDeploy, touchesInfra } from './actions.js';
|
|
84
|
+
import { chaosGateCall, chaosGateDecode } from './chaosGate.js';
|
|
69
85
|
import { IntuticGateHold, IntuticGateRefusal } from './errors.js';
|
|
70
|
-
import { holdMessage, requestHold } from './hold.js';
|
|
86
|
+
import { holdKey, holdMessage, requestHold } from './hold.js';
|
|
71
87
|
import { tooLargeReason } from './limits.js';
|
|
72
88
|
import { evaluateMcpAllowlist, evaluateMcpRegistry, mcpSnapshotUnverifiedRefusal } from './mcpRegistryRecord.js';
|
|
89
|
+
import { OPAQUE_REFUSAL_MESSAGE } from './opaqueRefusal.js';
|
|
73
90
|
import * as imagecheck from './imagecheck.js';
|
|
74
91
|
import * as snapshot from './snapshot.js';
|
|
75
92
|
import * as soprules from './soprules.js';
|
|
@@ -93,6 +110,13 @@ function resolveConfig(cfg) {
|
|
|
93
110
|
useSopRules: cfg.useSopRules ?? true,
|
|
94
111
|
};
|
|
95
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* The pre-execution gate. {@link Gate.guard} evaluates one tool call against
|
|
115
|
+
* the local tiers (SSO group policy, policy snapshot, MCP servers, image
|
|
116
|
+
* integrity) and, with a {@link GateClient}, the control-plane tiers (SOP
|
|
117
|
+
* rules, hook gate), and throws {@link IntuticGateRefusal} to refuse it.
|
|
118
|
+
* Without a client only the local tiers run.
|
|
119
|
+
*/
|
|
96
120
|
export class Gate {
|
|
97
121
|
cfg;
|
|
98
122
|
client;
|
|
@@ -102,6 +126,9 @@ export class Gate {
|
|
|
102
126
|
/** `null` = not fetched yet. A failed fetch caches `[]` so one unreachable
|
|
103
127
|
* control plane does not add a timeout to every subsequent tool call. */
|
|
104
128
|
_sopRules = null;
|
|
129
|
+
/** The SOP register said the workspace is OPAQUE (read with its rules). */
|
|
130
|
+
_registerOpaque = false;
|
|
131
|
+
_chaos = null;
|
|
105
132
|
constructor(cfg = {}, client = null) {
|
|
106
133
|
this.cfg = resolveConfig(cfg);
|
|
107
134
|
this.client = client;
|
|
@@ -153,8 +180,17 @@ export class Gate {
|
|
|
153
180
|
async getSopRules() {
|
|
154
181
|
if (this._sopRules === null) {
|
|
155
182
|
let fetched = null;
|
|
183
|
+
if (this.client !== null && this.client.localOnly) {
|
|
184
|
+
// No key: the register cannot be read, and saying so is not news.
|
|
185
|
+
this._sopRules = [];
|
|
186
|
+
return this._sopRules;
|
|
187
|
+
}
|
|
156
188
|
if (this.client !== null) {
|
|
157
|
-
|
|
189
|
+
const register = await soprules.fetchRegister(this.client.baseUrl, this.client.apiKey, this.cfg.workspaceId);
|
|
190
|
+
if (register !== null) {
|
|
191
|
+
fetched = register.rules;
|
|
192
|
+
this._registerOpaque = register.opaque;
|
|
193
|
+
}
|
|
158
194
|
}
|
|
159
195
|
if (fetched === null) {
|
|
160
196
|
// Could not read the register. Say so once, then stay quiet — Tier
|
|
@@ -167,10 +203,30 @@ export class Gate {
|
|
|
167
203
|
}
|
|
168
204
|
return this._sopRules;
|
|
169
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* What the agent is told of a refusal on workspace policy: the reason, or in
|
|
208
|
+
* an OPAQUE workspace (the snapshot's `@intervention_mode` record) the
|
|
209
|
+
* generic sentence, so it cannot learn the rule to route around it. The
|
|
210
|
+
* code is unchanged, and the event is always emitted with the full reason.
|
|
211
|
+
*/
|
|
212
|
+
shown(reason) {
|
|
213
|
+
return this.opaque() ? OPAQUE_REFUSAL_MESSAGE : reason;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Whether the workspace is OPAQUE: the policy snapshot's record when there
|
|
217
|
+
* is a snapshot, and the SOP register's `interventionMode` when there is
|
|
218
|
+
* none. Without a snapshot the only tiers that refuse on workspace policy
|
|
219
|
+
* are the register's (A3, which reads the mode with its rules) and the hook
|
|
220
|
+
* gate, which applies the mode itself.
|
|
221
|
+
*/
|
|
222
|
+
opaque() {
|
|
223
|
+
const snap = this.getSnapshot();
|
|
224
|
+
return snap.opaque || (snap.state === 'absent' && this._registerOpaque);
|
|
225
|
+
}
|
|
170
226
|
// ------------------------------------------------------------ emitting
|
|
171
|
-
async emit(event, tool, reason = '', toolInput, incidentId, filePath) {
|
|
227
|
+
async emit(event, tool, reason = '', toolInput, incidentId, filePath, gateDecisionId) {
|
|
172
228
|
if (this.client !== null) {
|
|
173
|
-
await this.client.emit(event, tool, reason, toolInput, incidentId, filePath);
|
|
229
|
+
await this.client.emit(event, tool, reason, toolInput, incidentId, filePath, gateDecisionId);
|
|
174
230
|
}
|
|
175
231
|
}
|
|
176
232
|
/**
|
|
@@ -187,11 +243,73 @@ export class Gate {
|
|
|
187
243
|
await this.emit(`snapshot_${snap.state}`, tool, snap.healthMessage);
|
|
188
244
|
}
|
|
189
245
|
}
|
|
246
|
+
/** A chaos run's plan, from `INTUTIC_CHAOS_PLAN` and `INTUTIC_CHAOS_EVENTS`, read once. */
|
|
247
|
+
chaos() {
|
|
248
|
+
if (this._chaos === null) {
|
|
249
|
+
const raw = process.env.INTUTIC_CHAOS_PLAN ?? '';
|
|
250
|
+
const events = process.env.INTUTIC_CHAOS_EVENTS ?? '';
|
|
251
|
+
const state = { plan: null, events, error: null };
|
|
252
|
+
if (raw) {
|
|
253
|
+
const decoded = chaosGateDecode(raw);
|
|
254
|
+
if (decoded.error !== null)
|
|
255
|
+
state.error = decoded.error;
|
|
256
|
+
else if (!events)
|
|
257
|
+
state.error = 'INTUTIC_CHAOS_PLAN is set but INTUTIC_CHAOS_EVENTS is not, so nothing the run does could be reported';
|
|
258
|
+
else
|
|
259
|
+
state.plan = decoded.plan;
|
|
260
|
+
}
|
|
261
|
+
this._chaos = state;
|
|
262
|
+
}
|
|
263
|
+
return this._chaos;
|
|
264
|
+
}
|
|
265
|
+
/** Reports one call to a chaos run's events file; returns the fault due on an allowed call. */
|
|
266
|
+
chaosReport(plan, events, toolName, decision, note, policyHit, key) {
|
|
267
|
+
return chaosGateCall(fs, plan, events, { tool: toolName, decision, ruleId: note.ruleId, destructive: note.destructive, policyHit: policyHit || note.policyHit, key }, new Date().toISOString());
|
|
268
|
+
}
|
|
190
269
|
// --------------------------------------------------------------- guard
|
|
191
|
-
/**
|
|
270
|
+
/**
|
|
271
|
+
* Throws {@link IntuticGateRefusal} if this call must not run. Resolves to allow.
|
|
272
|
+
*
|
|
273
|
+
* Under a chaos run's plan, the call is reported to the run's events file
|
|
274
|
+
* whatever the tiers decide, and a call they allowed can still be refused
|
|
275
|
+
* by the fault that is due (`CHAOS_FAULT`, or {@link IntuticGateHold} for
|
|
276
|
+
* a held one). A plan that is set but unreadable refuses every call: an
|
|
277
|
+
* experiment run without the faults it asked for reports a resilience it
|
|
278
|
+
* never measured.
|
|
279
|
+
*/
|
|
192
280
|
async guard(toolName, toolInput) {
|
|
193
281
|
if (!this.cfg.enforce)
|
|
194
282
|
return;
|
|
283
|
+
const chaos = this.chaos();
|
|
284
|
+
if (chaos.error !== null) {
|
|
285
|
+
const reason = `${chaos.error} — refusing the call rather than running the experiment without the faults it asked for`;
|
|
286
|
+
await this.emit('tool_blocked', toolName, reason);
|
|
287
|
+
throw new IntuticGateRefusal(reason, 'CHAOS_FAULT');
|
|
288
|
+
}
|
|
289
|
+
if (chaos.plan === null)
|
|
290
|
+
return this.decide(toolName, toolInput, null);
|
|
291
|
+
const note = { ruleId: null, destructive: false, policyHit: false };
|
|
292
|
+
try {
|
|
293
|
+
await this.decide(toolName, toolInput, note);
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
// A refusal a tier decided is a policy hit; a call too large to read, or
|
|
297
|
+
// a failure that is not a refusal, is not.
|
|
298
|
+
const refusal = err instanceof IntuticGateRefusal;
|
|
299
|
+
this.chaosReport(chaos.plan, chaos.events, toolName, err instanceof IntuticGateHold ? 'hold' : 'deny', note, refusal && err.code !== 'COMMAND_TOO_LARGE', '');
|
|
300
|
+
throw err;
|
|
301
|
+
}
|
|
302
|
+
const { toolNameNormalized, targetHash } = holdKey(toolName, toolInput);
|
|
303
|
+
const key = createHash('sha256').update(`${toolNameNormalized}\0${targetHash}`).digest('hex');
|
|
304
|
+
const fault = this.chaosReport(chaos.plan, chaos.events, toolName, 'allow', note, false, key);
|
|
305
|
+
if (fault === null)
|
|
306
|
+
return;
|
|
307
|
+
if (fault.kind === 'hold')
|
|
308
|
+
throw new IntuticGateHold(fault.reason, undefined);
|
|
309
|
+
throw new IntuticGateRefusal(fault.reason, 'CHAOS_FAULT');
|
|
310
|
+
}
|
|
311
|
+
/** The tiers: throws to refuse, resolves to allow. `note` collects a chaos run's record of the call. */
|
|
312
|
+
async decide(toolName, toolInput, note) {
|
|
195
313
|
const target = String(toolInput.path ?? toolInput.file_path ?? '');
|
|
196
314
|
const command = String(toolInput.command ?? '');
|
|
197
315
|
// ---- Size: refused before any tier reads the call ------------------
|
|
@@ -215,9 +333,11 @@ export class Gate {
|
|
|
215
333
|
if (sso) {
|
|
216
334
|
const d = evaluateSsoGroupClearance(sso.policy, toolName, sso.member ? sso.member.ssoGroups : null);
|
|
217
335
|
if (d.clearance !== 'GRANTED') {
|
|
336
|
+
if (note)
|
|
337
|
+
note.ruleId = d.ruleId;
|
|
218
338
|
const reason = `${d.reason} [${d.ruleId}]`;
|
|
219
339
|
await this.emit('tool_blocked', toolName, reason, toolInput);
|
|
220
|
-
throw new IntuticGateRefusal(reason, 'SSO_GROUP');
|
|
340
|
+
throw new IntuticGateRefusal(this.shown(reason), 'SSO_GROUP');
|
|
221
341
|
}
|
|
222
342
|
}
|
|
223
343
|
// ---- Tier A1: policy snapshot -------------------------------------
|
|
@@ -229,13 +349,24 @@ export class Gate {
|
|
|
229
349
|
// copy of the same rule in Tier A3 does not hold it a second time.
|
|
230
350
|
const approved = new Set();
|
|
231
351
|
const d = snapshot.evaluate(toolName, target, command, this.getSnapshot(), disabled);
|
|
352
|
+
if (note) {
|
|
353
|
+
if (d.ruleId)
|
|
354
|
+
note.ruleId = d.ruleId;
|
|
355
|
+
// Destructive whether or not a rule decided the call, the escape hatch
|
|
356
|
+
// included: what a chaos run's no_destructive_attempt probe reads.
|
|
357
|
+
const destructive = new snapshot.Snapshot();
|
|
358
|
+
destructive.rules = this.getSnapshot().rules.filter((r) => r.id.startsWith('destructive.'));
|
|
359
|
+
note.destructive = snapshot.evaluate(toolName, target, command, destructive, false).severity !== null;
|
|
360
|
+
}
|
|
232
361
|
if (d.severity === snapshot.SEV_HOLD) {
|
|
233
362
|
await this.hold({ id: d.ruleId, reason: d.reason }, toolName, toolInput);
|
|
234
363
|
approved.add(d.ruleId);
|
|
364
|
+
if (note)
|
|
365
|
+
note.policyHit = true;
|
|
235
366
|
}
|
|
236
367
|
else if (d.severity === snapshot.SEV_BLOCK) {
|
|
237
368
|
await this.emit('tool_blocked', toolName, d.reason, toolInput);
|
|
238
|
-
throw new IntuticGateRefusal(d.reason, 'SNAPSHOT');
|
|
369
|
+
throw new IntuticGateRefusal(this.shown(d.reason), 'SNAPSHOT');
|
|
239
370
|
}
|
|
240
371
|
if (d.severity === snapshot.SEV_WARN) {
|
|
241
372
|
await this.emit('tool_flagged', toolName, d.reason, toolInput);
|
|
@@ -244,7 +375,7 @@ export class Gate {
|
|
|
244
375
|
await this.emit('tool_would_block', toolName, d.reason, toolInput);
|
|
245
376
|
}
|
|
246
377
|
// ---- Tier M: the MCP server registry and allowlist ----------------
|
|
247
|
-
await this.guardMcp(toolName, toolInput);
|
|
378
|
+
await this.guardMcp(toolName, toolInput, note);
|
|
248
379
|
// ---- Tier A3: SOP rules authored in the product --------------------
|
|
249
380
|
//
|
|
250
381
|
// Runs before A2 on purpose. When both would fire, the block should be
|
|
@@ -253,10 +384,13 @@ export class Gate {
|
|
|
253
384
|
if (this.cfg.useSopRules && !READ_ONLY_TOOLS.has(toolName)) {
|
|
254
385
|
const rule = soprules.firstMatch(await this.getSopRules(), toolName, toolInput);
|
|
255
386
|
if (rule !== null) {
|
|
387
|
+
// The deciding rule's id, or the first that fired when none decides.
|
|
388
|
+
if (note && (rule.action !== soprules.ACTION_WARN || !note.ruleId))
|
|
389
|
+
note.ruleId = `sop.${rule.id}`;
|
|
256
390
|
const reason = `[sop:${rule.id}] ${rule.reason}`;
|
|
257
391
|
if (rule.action === soprules.ACTION_BLOCK) {
|
|
258
392
|
await this.emit('tool_blocked', toolName, reason, toolInput);
|
|
259
|
-
throw new IntuticGateRefusal(reason, 'SOP_RULE');
|
|
393
|
+
throw new IntuticGateRefusal(this.shown(reason), 'SOP_RULE');
|
|
260
394
|
}
|
|
261
395
|
if (rule.action === soprules.ACTION_APPROVAL) {
|
|
262
396
|
// Held for a person, under the id the snapshot gives the same rule
|
|
@@ -264,6 +398,8 @@ export class Gate {
|
|
|
264
398
|
const id = `sop.${rule.id}`;
|
|
265
399
|
if (!approved.has(id))
|
|
266
400
|
await this.hold({ id, reason: rule.reason }, toolName, toolInput);
|
|
401
|
+
if (note)
|
|
402
|
+
note.policyHit = true;
|
|
267
403
|
}
|
|
268
404
|
else {
|
|
269
405
|
await this.emit('tool_flagged', toolName, reason, toolInput);
|
|
@@ -293,18 +429,24 @@ export class Gate {
|
|
|
293
429
|
// Skipped for read-only tools — a network round trip whose checks are
|
|
294
430
|
// DLP regexes over the arguments and SOP rules, neither of which can say
|
|
295
431
|
// anything useful about a directory listing.
|
|
432
|
+
let decisionId;
|
|
296
433
|
if (this.cfg.useHookGate && this.client !== null && !READ_ONLY_TOOLS.has(toolName)) {
|
|
297
434
|
const resp = await this.client.hookGate(toolName, toolInput);
|
|
435
|
+
// Every answer is reported: the event drives the incident, rule
|
|
436
|
+
// evidence and plan tracking. It carries the hook gate's decision id,
|
|
437
|
+
// which the control plane exported to SIEM itself and filed its DLP
|
|
438
|
+
// refusal's incident under, so neither happens twice.
|
|
439
|
+
decisionId = resp.decisionId;
|
|
298
440
|
if (!resp.allowed) {
|
|
299
|
-
await this.emit('tool_blocked', toolName, resp.reason, toolInput, resp.
|
|
441
|
+
await this.emit('tool_blocked', toolName, resp.reason, toolInput, undefined, undefined, resp.decisionId);
|
|
300
442
|
// The hook gate names the MCP registry's own code when the registry
|
|
301
443
|
// refused; anything else it refuses is HOOK_GATE.
|
|
302
444
|
const code = MCP_CODES.has(resp.code ?? '') ? resp.code : 'HOOK_GATE';
|
|
303
|
-
throw new IntuticGateRefusal(resp.reason, code, resp.incidentId);
|
|
445
|
+
throw new IntuticGateRefusal(this.shown(resp.reason), code, resp.incidentId);
|
|
304
446
|
}
|
|
305
447
|
}
|
|
306
448
|
if (!READ_ONLY_TOOLS.has(toolName)) {
|
|
307
|
-
await this.emit('tool_allowed', toolName, '', toolInput);
|
|
449
|
+
await this.emit('tool_allowed', toolName, '', toolInput, undefined, undefined, decisionId);
|
|
308
450
|
}
|
|
309
451
|
}
|
|
310
452
|
/**
|
|
@@ -313,7 +455,7 @@ export class Gate {
|
|
|
313
455
|
* them. An allowlist in `shadow` records the refusal and lets the call on.
|
|
314
456
|
* A snapshot that failed its integrity check admits no MCP server.
|
|
315
457
|
*/
|
|
316
|
-
async guardMcp(toolName, toolInput) {
|
|
458
|
+
async guardMcp(toolName, toolInput, note) {
|
|
317
459
|
if (!toolName.startsWith('mcp__'))
|
|
318
460
|
return;
|
|
319
461
|
const rest = toolName.slice('mcp__'.length);
|
|
@@ -324,25 +466,31 @@ export class Gate {
|
|
|
324
466
|
const server = rest.slice(0, sep);
|
|
325
467
|
if (snap.state === 'invalid') {
|
|
326
468
|
const refusal = mcpSnapshotUnverifiedRefusal(server);
|
|
469
|
+
if (note)
|
|
470
|
+
note.ruleId = refusal.ruleId;
|
|
327
471
|
const reason = `${refusal.reason} [${refusal.ruleId}]`;
|
|
328
472
|
await this.emit('tool_blocked', toolName, reason, toolInput);
|
|
329
473
|
throw new IntuticGateRefusal(reason, refusal.code);
|
|
330
474
|
}
|
|
331
475
|
const registry = snap.mcpRegistry ? evaluateMcpRegistry(snap.mcpRegistry, server, rest.slice(sep + 2)) : null;
|
|
332
476
|
if (registry) {
|
|
477
|
+
if (note)
|
|
478
|
+
note.ruleId = registry.ruleId;
|
|
333
479
|
const reason = `${registry.reason} [${registry.ruleId}]`;
|
|
334
480
|
await this.emit('tool_blocked', toolName, reason, toolInput);
|
|
335
|
-
throw new IntuticGateRefusal(reason, registry.code);
|
|
481
|
+
throw new IntuticGateRefusal(this.shown(reason), registry.code);
|
|
336
482
|
}
|
|
337
483
|
const allowlist = snap.mcpAllowlist ? evaluateMcpAllowlist(snap.mcpAllowlist, server) : null;
|
|
338
484
|
if (allowlist) {
|
|
485
|
+
if (note && (snap.mcpAllowlist.severity !== 'shadow' || !note.ruleId))
|
|
486
|
+
note.ruleId = allowlist.ruleId;
|
|
339
487
|
const reason = `${allowlist.reason} [${allowlist.ruleId}]`;
|
|
340
488
|
if (snap.mcpAllowlist.severity === 'shadow') {
|
|
341
489
|
await this.emit('tool_would_block', toolName, reason, toolInput);
|
|
342
490
|
return;
|
|
343
491
|
}
|
|
344
492
|
await this.emit('tool_blocked', toolName, reason, toolInput);
|
|
345
|
-
throw new IntuticGateRefusal(reason, allowlist.code);
|
|
493
|
+
throw new IntuticGateRefusal(this.shown(reason), allowlist.code);
|
|
346
494
|
}
|
|
347
495
|
}
|
|
348
496
|
/**
|
|
@@ -359,7 +507,9 @@ export class Gate {
|
|
|
359
507
|
return;
|
|
360
508
|
}
|
|
361
509
|
await this.emit('tool_held', toolName, `${rule.reason} [${rule.id}]`, toolInput);
|
|
362
|
-
|
|
510
|
+
// An OPAQUE workspace's hold names the hold, not the rule.
|
|
511
|
+
const opaque = this.opaque();
|
|
512
|
+
throw new IntuticGateHold(holdMessage(opaque ? OPAQUE_REFUSAL_MESSAGE : rule.reason, opaque ? '' : rule.id, outcome), outcome.recorded ? outcome.holdId : undefined);
|
|
363
513
|
}
|
|
364
514
|
}
|
|
365
515
|
/** The refusal codes of the MCP registry and allowlist, which the hook gate may also return. */
|
package/dist/gate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../src/gate.ts"],"names":[],"mappings":"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"}
|
package/dist/harness.d.ts
CHANGED
|
@@ -472,38 +472,6 @@ export interface IntuticSandboxBootstrapOptions {
|
|
|
472
472
|
* the same relative location the laptop writer uses. */
|
|
473
473
|
bootstrapDir?: string;
|
|
474
474
|
}
|
|
475
|
-
declare function sandboxJoin(workDir: string, relative: string): string;
|
|
476
|
-
/**
|
|
477
|
-
* Self-contained (built-ins only, no npm install) hand-port of `snapshot.ts`'s
|
|
478
|
-
* `loadSnapshot`/`normalise`/`evaluate` and of `gate.ts`'s Tier M — the
|
|
479
|
-
* policy-snapshot rules and the MCP server registry and allowlist. See the
|
|
480
|
-
* module-level comment above for what this deliberately does and does not
|
|
481
|
-
* cover, and `__tests__/harness.test.ts` for the behavioural-parity check
|
|
482
|
-
* against the real `snapshot.evaluate()` this port is pinned to and the
|
|
483
|
-
* shared MCP registry vectors.
|
|
484
|
-
*
|
|
485
|
-
* The rules text is checked as every gate checks it: a missing or broken
|
|
486
|
-
* `#digest`, or a `#workspace` other than `workspaceId`, leaves only its
|
|
487
|
-
* SSO-group refusals, and refuses every MCP call (`POLICY_SNAPSHOT_UNVERIFIED`)
|
|
488
|
-
* because neither MCP record can be vouched for. An empty rules text is no
|
|
489
|
-
* snapshot at all, as an absent file is.
|
|
490
|
-
*
|
|
491
|
-
* Contract matches the laptop's `claude-code-check.js`
|
|
492
|
-
* (`services/sync-daemon/src/harness/claudeCodeHooks.ts`) deliberately:
|
|
493
|
-
* Claude Code's PreToolUse hook stdin carries `{tool_name, tool_input,
|
|
494
|
-
* session_id}` (this reads both the snake_case and camelCase field names,
|
|
495
|
-
* same as the laptop script); exit `2` blocks the call, exit `0` allows it;
|
|
496
|
-
* any parse/read error fails CLOSED (exit `2`), the same posture
|
|
497
|
-
* `emitJsFailClosedPrelude` documents for the laptop's version.
|
|
498
|
-
*/
|
|
499
|
-
declare function renderSandboxGateScript(rulesFileName: string, workspaceId?: string): string;
|
|
500
|
-
/**
|
|
501
|
-
* Compiles the `.claude/settings.json` content that registers the generated
|
|
502
|
-
* hook script — same matcher set and hook shape as the laptop writer's
|
|
503
|
-
* `hookEntry()` (`services/sync-daemon/src/harness/claudeCodeHooks.ts`):
|
|
504
|
-
* `Bash`, `Edit`, `Write`, `MultiEdit`, and `mcp__.*`.
|
|
505
|
-
*/
|
|
506
|
-
declare function renderSandboxClaudeSettings(hookScriptSandboxPath: string): string;
|
|
507
475
|
/**
|
|
508
476
|
* Builds `{ bootstrapHash, onBootstrap }` for
|
|
509
477
|
* `HarnessAgentSettings.sandboxConfig` — a channel the framework provides
|
|
@@ -536,10 +504,4 @@ declare function renderSandboxClaudeSettings(hookScriptSandboxPath: string): str
|
|
|
536
504
|
* not cover, and why.
|
|
537
505
|
*/
|
|
538
506
|
export declare function intuticSandboxBootstrap(opts?: IntuticSandboxBootstrapOptions): IntuticSandboxBootstrap;
|
|
539
|
-
export declare const _internal: {
|
|
540
|
-
renderSandboxGateScript: typeof renderSandboxGateScript;
|
|
541
|
-
renderSandboxClaudeSettings: typeof renderSandboxClaudeSettings;
|
|
542
|
-
sandboxJoin: typeof sandboxJoin;
|
|
543
|
-
};
|
|
544
|
-
export {};
|
|
545
507
|
//# sourceMappingURL=harness.d.ts.map
|
package/dist/harness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAGH,OAAO,EAAwB,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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"}
|
package/dist/harness.js
CHANGED
|
@@ -85,6 +85,7 @@ import { createHash } from 'node:crypto';
|
|
|
85
85
|
import { active as activeGate } from './gate.js';
|
|
86
86
|
import { IntuticGateRefusal } from './errors.js';
|
|
87
87
|
import { MCP_ALLOWLIST_JS_SOURCE, MCP_REGISTRY_JS_SOURCE, MCP_SNAPSHOT_UNVERIFIED_JS_SOURCE } from './mcpRegistryRecord.js';
|
|
88
|
+
import { INTERVENTION_MODE_RECORD_TAG, OPAQUE_REFUSAL_MESSAGE } from './opaqueRefusal.js';
|
|
88
89
|
import { PHRASES_JS_SOURCE } from './phrases.js';
|
|
89
90
|
import { SEQUENCE_JS_SOURCE } from './sequence.js';
|
|
90
91
|
import { ARGUMENTS_SIZE_LIMIT, COMMAND_SIZE_LIMIT, GATE_DEADLINE_MS, HOOK_TIMEOUT_SECONDS } from './limits.js';
|
|
@@ -373,6 +374,9 @@ const crypto = require('crypto');
|
|
|
373
374
|
|
|
374
375
|
const RULES_PATH = path.join(__dirname, ${JSON.stringify(rulesFileName)});
|
|
375
376
|
const WORKSPACE_ID = ${JSON.stringify(workspaceId)};
|
|
377
|
+
// What an OPAQUE workspace's agent is told of a refusal on its policy, in place
|
|
378
|
+
// of the rule (opaqueRefusal.ts).
|
|
379
|
+
const OPAQUE_MESSAGE = ${JSON.stringify(OPAQUE_REFUSAL_MESSAGE)};
|
|
376
380
|
|
|
377
381
|
function normalise(v) {
|
|
378
382
|
const s = v === null || v === undefined ? '' : String(v);
|
|
@@ -385,7 +389,9 @@ function stringList(v) {
|
|
|
385
389
|
|
|
386
390
|
/** The snapshot: its rules, MCP records and whether it verified. */
|
|
387
391
|
function loadSnapshot() {
|
|
388
|
-
|
|
392
|
+
// opaque: the @intervention_mode record of an OPAQUE workspace. Kept on a
|
|
393
|
+
// snapshot that fails its check: it only ever hides text.
|
|
394
|
+
const out = { rules: [], state: 'absent', mcpRegistry: null, mcpAllowlist: null, opaque: false };
|
|
389
395
|
let text;
|
|
390
396
|
try {
|
|
391
397
|
text = fs.readFileSync(RULES_PATH, 'utf-8');
|
|
@@ -417,6 +423,10 @@ function loadSnapshot() {
|
|
|
417
423
|
} catch (e) { /* a damaged record is no registry */ }
|
|
418
424
|
continue;
|
|
419
425
|
}
|
|
426
|
+
if (f[0] === '${INTERVENTION_MODE_RECORD_TAG}' && f.length === 2) {
|
|
427
|
+
out.opaque = f[1] === 'OPAQUE';
|
|
428
|
+
continue;
|
|
429
|
+
}
|
|
420
430
|
if (f[0] === '@mcp_allowlist' && f.length === 3) {
|
|
421
431
|
out.mcpAllowlist = { severity: f[1] === 'shadow' ? 'shadow' : 'block', servers: f[2].split(',').filter(Boolean) };
|
|
422
432
|
continue;
|
|
@@ -505,7 +515,8 @@ function evaluateMcp(toolName, snap) {
|
|
|
505
515
|
const server = rest.slice(0, sep);
|
|
506
516
|
if (snap.state === 'invalid') {
|
|
507
517
|
const u = mcpSnapshotUnverifiedRefusal(server);
|
|
508
|
-
|
|
518
|
+
// Says nothing about the workspace's policy, so an OPAQUE workspace sees it too.
|
|
519
|
+
return { severity: 'block', reason: u.reason + ' [' + u.ruleId + ']', code: u.code, operational: true };
|
|
509
520
|
}
|
|
510
521
|
const r = snap.mcpRegistry ? evaluateMcpRegistry(snap.mcpRegistry, server, rest.slice(sep + 2)) : null;
|
|
511
522
|
if (r) return { severity: 'block', reason: r.reason + ' [' + r.ruleId + ']', code: r.code };
|
|
@@ -553,18 +564,20 @@ process.stdin.on('end', () => {
|
|
|
553
564
|
${GATE_DEADLINE_MS} + ' ms, so the call is refused rather than left to the hook timeout');
|
|
554
565
|
process.exit(2);
|
|
555
566
|
}
|
|
567
|
+
// An OPAQUE workspace's agent reads the generic sentence, not the rule.
|
|
568
|
+
const shown = decision && snap.opaque && !decision.operational ? OPAQUE_MESSAGE : decision && decision.reason;
|
|
556
569
|
if (decision && (decision.severity === 'warn' || decision.severity === 'shadow')) {
|
|
557
570
|
console.error('[Intutic Guardrail] FLAGGED (' + decision.severity + '): ' + decision.reason);
|
|
558
571
|
} else if (decision && decision.severity === 'hold') {
|
|
559
572
|
// A hold asks a person first, and this script cannot reach the control
|
|
560
573
|
// plane to ask: it refuses, as every gate does with a hold it cannot record.
|
|
561
|
-
console.error('[Intutic Guardrail] HELD for approval: ' +
|
|
574
|
+
console.error('[Intutic Guardrail] HELD for approval: ' + shown +
|
|
562
575
|
' — approval cannot be requested from inside this sandbox, so the call is refused.');
|
|
563
576
|
process.exit(2);
|
|
564
577
|
} else if (decision) {
|
|
565
578
|
// block, or a severity this script does not know: never an allow. An
|
|
566
579
|
// MCP refusal names its code, as the other gates' refusals do.
|
|
567
|
-
console.error('[Intutic Guardrail] BLOCKED: ' + (decision.code ? decision.code + ': ' : '') +
|
|
580
|
+
console.error('[Intutic Guardrail] BLOCKED: ' + (decision.code ? decision.code + ': ' : '') + shown);
|
|
568
581
|
process.exit(2);
|
|
569
582
|
}
|
|
570
583
|
process.exit(0);
|
|
@@ -713,6 +726,4 @@ export function intuticSandboxBootstrap(opts = {}) {
|
|
|
713
726
|
},
|
|
714
727
|
};
|
|
715
728
|
}
|
|
716
|
-
// Exposed for the behavioural-parity tests — not part of the public surface.
|
|
717
|
-
export const _internal = { renderSandboxGateScript, renderSandboxClaudeSettings, sandboxJoin };
|
|
718
729
|
//# sourceMappingURL=harness.js.map
|
package/dist/harness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../src/harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,MAAM,IAAI,UAAU,EAA6B,MAAM,WAAW,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAA;AAC3H,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAmG9G;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,KAAkB,CAAA;IAC3B,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;AAC1B,CAAC;AAED;;0EAE0E;AAC1E,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAwC,EAAE;IAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,CAAA;QACnC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,8EAA8E;gBAC5E,sFAAsF,CACzF,CAAA;QACH,CAAC;QAED,MAAM,aAAa,GAAsC,EAAE,CAAA;QAC3D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,QAAQ,GAAG,IAAI,CAAA;YACnB,IAAI,MAA0B,CAAA;YAC9B,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,GAAG,KAAK,CAAA;gBAChB,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;oBACtC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;gBACtB,CAAC;qBAAM,CAAC;oBACN,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC/D,MAAM;wBACJ,+CAA+C,MAAM,4BAA4B;4BACjF,qCAAqC,CAAA;gBACzC,CAAC;YACH,CAAC;YACD,MAAM,gBAAgB,GAAgC;gBACpD,IAAI,EAAE,wBAAwB;gBAC9B,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,QAAQ;gBACR,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAA;YACD,aAAa,CAAC,IAAI,CAAC;gBACjB,GAAG,gBAAgB,EAAE,qCAAqC;gBAC1D,gBAAgB,EAAE,qCAAqC;gBACvD,QAAQ,EAAE;oBACR,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;oBAC7B,GAAG,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1F;aACF,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC,CAAA;AACH,CAAC;AAYD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA2B,EAC3B,QAA2C,EAC3C,OAAwC,EAAE;IAE1C,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC5C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,CAAC;YACX,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,UAAU;YACzC,QAAQ,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ;YACrC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAC3C,CAAC;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkD,EAClD,OAAsC,EAAE;IAExC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IACvC,MAAM,MAAM,GAA+C,EAAE,CAAA;IAC7D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAA;IAC9D,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAwFD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAA0C,EAAE;IAE5C,MAAM,aAAa,GACjB,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAC7D,CAAC,CAAC;YACE,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,iEAAiE;YACjE,kEAAkE;YAClE,WAAW,EAAE,CAAC,oBAAoB,CAAC;SACpC;QACH,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;IAC1B,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,aAAa;QACpD,aAAa;QACb,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAU,EAAE,CAAC;KAC3E,CAAA;AACH,CAAC;AAsLD,SAAS,WAAW,CAAC,OAAe,EAAE,QAAgB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACnE,OAAO,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAA;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,uBAAuB,CAAC,aAAqB,EAAE,WAAW,GAAG,EAAE;IACtE,OAAO;;;;;;;;;;;;;;;;0CAgBiC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;uBAChD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;yBAGzB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA+C3C,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwC9C,iBAAiB;;;;EAIjB,kBAAkB;;;;EAIlB,sBAAsB;;EAEtB,uBAAuB;;EAEvB,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAgEV,kBAAkB,uBAAuB,oBAAoB;;0BAE5D,kBAAkB;gDACI,kBAAkB,MAAM,kBAAkB,MAAM,oBAAoB;;;;;;;;;;;;;;+BAcrF,gBAAgB;;;;;UAKrC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzB,CAAA;AACD,CAAC;AAED;;;;;GAKG;AACH,SAAS,2BAA2B,CAAC,qBAA6B;IAChE,OAAO,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;AACrF,CAAC;AAED,SAAS,qBAAqB,CAAC,qBAA6B;IAI1D,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC;QACtC,OAAO;QACP,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,QAAQ,qBAAqB,EAAE;gBACxC,OAAO,EAAE,oBAAoB;gBAC7B,aAAa,EAAE,wDAAwD;aACxE;SACF;KACF,CAAC,CAAA;IACF,OAAO;QACL,WAAW,EAAE,EAAE,IAAI,EAAE,EAAc,EAAE;QACrC,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;SACrH;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAA4B,EAC5B,qBAA6B,EAC7B,WAAyB;IAEzB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAClC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,kEAAkE,IAAI,CAAC,QAAQ,uBAAuB;YACpG,mCAAmC,CACtC,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,CAAA;IACzD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAClG,IAAI,MAAM,GAA4B,IAAI,CAAA;IAC1C,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,IAAI,QAAiB,CAAA;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,0DAA0D,CAAC,CAAA;QAC7G,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,QAAoC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvI,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAA;QAC3D,MAAM,UAAU,GAAG,QAAQ,qBAAqB,EAAE,CAAA;QAClD,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE,CACzC,KAAK,CAAC,OAAO,CAAE,KAAoC,EAAE,KAAK,CAAC;YAC3D,CAAE,KAA8B,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAkC,EAAE,OAAO,KAAK,UAAU,CAAC,CAAA;QAClH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACxG,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAA;IAC3F,CAAC;IACD,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;AACxF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAuC,EAAE;IAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,gBAAgB,CAAA;IAC1D,MAAM,YAAY,GAAG,GAAG,YAAY,wBAAwB,CAAA;IAC5D,MAAM,aAAa,GAAG,GAAG,YAAY,uBAAuB,CAAA;IAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAA;IACnD,MAAM,aAAa,GAAG,uBAAuB,CAAC,uBAAuB,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;IAE9F,oEAAoE;IACpE,0EAA0E;IAC1E,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC;SACvC,MAAM,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,EAAE,GAAG,CAAC;SAC9C,MAAM,CAAC,GAAG,YAAY,OAAO,YAAY,OAAO,aAAa,OAAO,aAAa,EAAE,CAAC;SACpF,MAAM,CAAC,KAAK,CAAC,CAAA;IAEhB,OAAO;QACL,aAAa;QACb,WAAW,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;YACvD,8DAA8D;YAC9D,+DAA+D;YAC/D,sEAAsE;YACtE,oEAAoE;YACpE,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YACzD,MAAM,KAAK,GAAqD;gBAC9D,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE;gBACnE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE;gBAC/C,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,uBAAuB,CAAC,EAAE,OAAO,EAAE,2BAA2B,CAAC,aAAa,CAAC,EAAE;aAC7G,CAAA;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,wBAAwB,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,CAAA;QACrE,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/hold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hold.d.ts","sourceRoot":"","sources":["../src/hold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAK7C,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAA;AAEvD,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASpD;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAKhH;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"hold.d.ts","sourceRoot":"","sources":["../src/hold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAK7C,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAA;AAEvD,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASpD;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAKhH;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAkBtH;AAYD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,WAAW,CAAC,CAoBtB"}
|
package/dist/hold.js
CHANGED
|
@@ -63,12 +63,15 @@ function newHoldId() {
|
|
|
63
63
|
* default settings.
|
|
64
64
|
*/
|
|
65
65
|
export function holdMessage(ruleReason, ruleId, outcome) {
|
|
66
|
+
// An empty rule id names no rule: an OPAQUE workspace's hold, whose reason
|
|
67
|
+
// is the generic sentence (opaqueRefusal.ts).
|
|
68
|
+
const named = ruleId ? `${ruleReason} [${ruleId}]` : ruleReason;
|
|
66
69
|
if (!outcome.recorded) {
|
|
67
|
-
return (`HELD for approval: ${
|
|
70
|
+
return (`HELD for approval: ${named}, but the hold could not be recorded ` +
|
|
68
71
|
`(Intutic control plane unreachable), so there is nothing to approve yet. Do not retry ` +
|
|
69
72
|
`until the control plane is reachable; the retry then asks for approval.`);
|
|
70
73
|
}
|
|
71
|
-
return (`HELD for approval: ${
|
|
74
|
+
return (`HELD for approval: ${named}. Hold id: ${outcome.holdId}. ` +
|
|
72
75
|
`An owner, admin or engineering manager can approve it with: intutic decision approve ` +
|
|
73
76
|
`${outcome.holdId} (or reject it), or from the Slack card. Retry this exact call after ` +
|
|
74
77
|
`approval only if the workspace's review-hold bypass (reviewHoldBypassEnabled) is on; ` +
|