@intutic/mcp-governance-proxy 2.2.0 → 2.4.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.
Files changed (137) hide show
  1. package/README.md +8 -7
  2. package/dist/agentTools.d.ts +83 -0
  3. package/dist/agentTools.d.ts.map +1 -0
  4. package/dist/agentTools.js +170 -0
  5. package/dist/agentTools.js.map +1 -0
  6. package/dist/anomaly/detectors.js +1 -1
  7. package/dist/anomaly/detectors.js.map +1 -1
  8. package/dist/approvalHold.d.ts +8 -7
  9. package/dist/approvalHold.d.ts.map +1 -1
  10. package/dist/approvalHold.js +7 -6
  11. package/dist/approvalHold.js.map +1 -1
  12. package/dist/budget.d.ts +133 -0
  13. package/dist/budget.d.ts.map +1 -0
  14. package/dist/budget.js +191 -0
  15. package/dist/budget.js.map +1 -0
  16. package/dist/config.d.ts +1 -1
  17. package/dist/config.js +1 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/daemon/healthMonitor.d.ts.map +1 -1
  20. package/dist/daemon/healthMonitor.js +0 -1
  21. package/dist/daemon/healthMonitor.js.map +1 -1
  22. package/dist/daemon/index.d.ts +0 -2
  23. package/dist/daemon/index.d.ts.map +1 -1
  24. package/dist/daemon/index.js +0 -2
  25. package/dist/daemon/index.js.map +1 -1
  26. package/dist/daemon/policyCache.d.ts +22 -3
  27. package/dist/daemon/policyCache.d.ts.map +1 -1
  28. package/dist/daemon/policyCache.js +38 -15
  29. package/dist/daemon/policyCache.js.map +1 -1
  30. package/dist/daemon/socketServer.d.ts +0 -1
  31. package/dist/daemon/socketServer.d.ts.map +1 -1
  32. package/dist/daemon/socketServer.js +0 -1
  33. package/dist/daemon/socketServer.js.map +1 -1
  34. package/dist/daemon/statusReporter.d.ts.map +1 -1
  35. package/dist/daemon/statusReporter.js +0 -1
  36. package/dist/daemon/statusReporter.js.map +1 -1
  37. package/dist/daemon/telemetryBatcher.d.ts.map +1 -1
  38. package/dist/daemon/telemetryBatcher.js +0 -1
  39. package/dist/daemon/telemetryBatcher.js.map +1 -1
  40. package/dist/daemonClient.d.ts.map +1 -1
  41. package/dist/daemonClient.js +0 -1
  42. package/dist/daemonClient.js.map +1 -1
  43. package/dist/dlp.d.ts +32 -3
  44. package/dist/dlp.d.ts.map +1 -1
  45. package/dist/dlp.js +116 -18
  46. package/dist/dlp.js.map +1 -1
  47. package/dist/dlpPii.d.ts +66 -0
  48. package/dist/dlpPii.d.ts.map +1 -0
  49. package/dist/dlpPii.js +235 -0
  50. package/dist/dlpPii.js.map +1 -0
  51. package/dist/emitter.d.ts +65 -3
  52. package/dist/emitter.d.ts.map +1 -1
  53. package/dist/emitter.js +13 -1
  54. package/dist/emitter.js.map +1 -1
  55. package/dist/guardedValkey.d.ts +40 -0
  56. package/dist/guardedValkey.d.ts.map +1 -0
  57. package/dist/guardedValkey.js +84 -0
  58. package/dist/guardedValkey.js.map +1 -0
  59. package/dist/httpJson.d.ts +7 -0
  60. package/dist/httpJson.d.ts.map +1 -1
  61. package/dist/httpJson.js +39 -0
  62. package/dist/httpJson.js.map +1 -1
  63. package/dist/injection.js +1 -1
  64. package/dist/interceptor.d.ts +65 -10
  65. package/dist/interceptor.d.ts.map +1 -1
  66. package/dist/interceptor.js +190 -69
  67. package/dist/interceptor.js.map +1 -1
  68. package/dist/policy.d.ts +37 -1
  69. package/dist/policy.d.ts.map +1 -1
  70. package/dist/policy.js +62 -3
  71. package/dist/policy.js.map +1 -1
  72. package/dist/proxy.d.ts +30 -9
  73. package/dist/proxy.d.ts.map +1 -1
  74. package/dist/proxy.js +127 -57
  75. package/dist/proxy.js.map +1 -1
  76. package/dist/refusals.d.ts +26 -0
  77. package/dist/refusals.d.ts.map +1 -0
  78. package/dist/refusals.js +43 -0
  79. package/dist/refusals.js.map +1 -0
  80. package/dist/registryObserver.d.ts +9 -5
  81. package/dist/registryObserver.d.ts.map +1 -1
  82. package/dist/registryObserver.js +19 -8
  83. package/dist/registryObserver.js.map +1 -1
  84. package/dist/session.d.ts +1 -1
  85. package/dist/session.js +1 -1
  86. package/dist/sessionScope.d.ts +1 -1
  87. package/dist/sessionScope.js +1 -1
  88. package/dist/sessionStore.d.ts +10 -23
  89. package/dist/sessionStore.d.ts.map +1 -1
  90. package/dist/sessionStore.js +17 -76
  91. package/dist/sessionStore.js.map +1 -1
  92. package/dist/wasm/cloudRules.d.ts +138 -0
  93. package/dist/wasm/cloudRules.d.ts.map +1 -0
  94. package/dist/wasm/cloudRules.js +242 -0
  95. package/dist/wasm/cloudRules.js.map +1 -0
  96. package/dist/wasm/context.d.ts +10 -0
  97. package/dist/wasm/context.d.ts.map +1 -1
  98. package/dist/wasm/context.js +27 -0
  99. package/dist/wasm/context.js.map +1 -1
  100. package/dist/wasm/hostImports.d.ts +3 -3
  101. package/dist/wasm/hostImports.d.ts.map +1 -1
  102. package/dist/wasm/hostImports.js +8 -7
  103. package/dist/wasm/hostImports.js.map +1 -1
  104. package/dist/wasm/loader.d.ts +10 -1
  105. package/dist/wasm/loader.d.ts.map +1 -1
  106. package/dist/wasm/loader.js +2 -0
  107. package/dist/wasm/loader.js.map +1 -1
  108. package/dist/wasm/referencedFiles.d.ts +29 -4
  109. package/dist/wasm/referencedFiles.d.ts.map +1 -1
  110. package/dist/wasm/referencedFiles.js +48 -21
  111. package/dist/wasm/referencedFiles.js.map +1 -1
  112. package/dist/wasm/runner.d.ts +169 -31
  113. package/dist/wasm/runner.d.ts.map +1 -1
  114. package/dist/wasm/runner.js +298 -83
  115. package/dist/wasm/runner.js.map +1 -1
  116. package/dist/wasm/watch.js +1 -1
  117. package/dist/wasm/worker.d.ts +10 -6
  118. package/dist/wasm/worker.d.ts.map +1 -1
  119. package/dist/wasm/worker.js +93 -9
  120. package/dist/wasm/worker.js.map +1 -1
  121. package/package.json +5 -4
  122. package/dist/toolPoison.d.ts +0 -32
  123. package/dist/toolPoison.d.ts.map +0 -1
  124. package/dist/toolPoison.js +0 -81
  125. package/dist/toolPoison.js.map +0 -1
  126. package/dist/wasm/fuel.d.ts +0 -35
  127. package/dist/wasm/fuel.d.ts.map +0 -1
  128. package/dist/wasm/fuel.js +0 -299
  129. package/dist/wasm/fuel.js.map +0 -1
  130. package/dist/wasm/memoryCap.d.ts +0 -21
  131. package/dist/wasm/memoryCap.d.ts.map +0 -1
  132. package/dist/wasm/memoryCap.js +0 -54
  133. package/dist/wasm/memoryCap.js.map +0 -1
  134. package/dist/wasm/wasmBinary.d.ts +0 -25
  135. package/dist/wasm/wasmBinary.d.ts.map +0 -1
  136. package/dist/wasm/wasmBinary.js +0 -100
  137. package/dist/wasm/wasmBinary.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * wasm/referencedFiles.ts — The MCP-side resolver behind the
3
- * `read_referenced_file` host import (TD-441). A 1:1 port of
3
+ * `read_referenced_file` host import. A 1:1 port of
4
4
  * `packages/proxy/src/wasm/referenced_files.rs`: same constants, same error
5
5
  * codes, same candidate-token rules, same six guards, same realpath
6
6
  * confinement. Where the two differ it is stated at the site.
@@ -56,6 +56,14 @@ export const ERR_NOT_FOUND = -3;
56
56
  export const ERR_TOO_LARGE = -4;
57
57
  export const ERR_BUFFER_TOO_SMALL = -5;
58
58
  export const ERR_BUDGET = -6;
59
+ /**
60
+ * Not read, and not because the call never named it: the tool calls name
61
+ * more manifests than the host reads (`MAX_REFERENCED_FILES`), or carry a
62
+ * command longer than it scans, and this path is not among those read. Kept
63
+ * apart from `ERR_REFUSED` so decoy paths cannot make the manifest that
64
+ * matters look like one the call never named.
65
+ */
66
+ export const ERR_NOT_READ = -7;
59
67
  /** Host calls one evaluation may make, charged before argument validation. */
60
68
  export const MAX_READS_PER_EVALUATION = 64;
61
69
  /** The operator-configured root. Unset means the capability is off. */
@@ -69,17 +77,23 @@ const COMMAND_ARG_KEYS = ['command', 'cmd', 'script'];
69
77
  */
70
78
  export class ReferencedFiles {
71
79
  entries;
72
- constructor(entries) {
80
+ pastLimits;
81
+ constructor(entries, pastLimits) {
73
82
  this.entries = entries;
83
+ this.pastLimits = pastLimits;
74
84
  }
75
85
  static empty() {
76
- return new ReferencedFiles([]);
86
+ return new ReferencedFiles([], false);
77
87
  }
78
88
  static fromTable(table) {
79
- return new ReferencedFiles(table ? table.map(([t, o]) => [t, o]) : []);
89
+ return new ReferencedFiles(table ? table.entries.map(([t, o]) => [t, o]) : [], table?.pastLimits ?? false);
80
90
  }
81
91
  toTable() {
82
- return this.entries.map(([t, o]) => [t, o]);
92
+ return { entries: this.entries.map(([t, o]) => [t, o]), pastLimits: this.pastLimits };
93
+ }
94
+ /** The same entries, recording whether the request named more than was read. */
95
+ withPastLimits(pastLimits) {
96
+ return new ReferencedFiles(this.entries, pastLimits);
83
97
  }
84
98
  isEmpty() {
85
99
  return this.entries.length === 0;
@@ -91,7 +105,7 @@ export class ReferencedFiles {
91
105
  lookup(requested) {
92
106
  const hit = this.entries.find(([t]) => t === requested);
93
107
  if (!hit)
94
- return { ok: false, code: ERR_REFUSED };
108
+ return { ok: false, code: this.pastLimits ? ERR_NOT_READ : ERR_REFUSED };
95
109
  const o = hit[1];
96
110
  switch (o.kind) {
97
111
  case 'content':
@@ -107,8 +121,11 @@ export class ReferencedFiles {
107
121
  /** Operator-facing reason. Never handed to the guest. */
108
122
  refusalReason(requested) {
109
123
  const hit = this.entries.find(([t]) => t === requested);
110
- if (!hit)
111
- return "not referenced by this request's tool calls";
124
+ if (!hit) {
125
+ return this.pastLimits
126
+ ? 'not read: the request names more files, or a longer command, than the host reads'
127
+ : "not referenced by this request's tool calls";
128
+ }
112
129
  const o = hit[1];
113
130
  switch (o.kind) {
114
131
  case 'refused':
@@ -150,10 +167,11 @@ export function resolveRoot(env = process.env) {
150
167
  }
151
168
  /**
152
169
  * Guard 1 and 2: every manifest-shaped path the tool calls literally name,
153
- * deduped, capped at `MAX_REFERENCED_FILES`, in first-seen order.
170
+ * deduped, capped at `MAX_REFERENCED_FILES`, in first-seen order, and whether
171
+ * they named more than that.
154
172
  */
155
173
  export function candidateTokens(toolCalls) {
156
- const out = [];
174
+ const out = { tokens: [], pastLimits: false };
157
175
  for (const call of toolCalls) {
158
176
  const args = call.arguments;
159
177
  if (typeof args !== 'object' || args === null || Array.isArray(args))
@@ -167,19 +185,17 @@ export function candidateTokens(toolCalls) {
167
185
  for (const key of COMMAND_ARG_KEYS) {
168
186
  const value = map[key];
169
187
  if (typeof value === 'string') {
188
+ if (value.length > MAX_COMMAND_SCAN_BYTES)
189
+ out.pastLimits = true;
170
190
  const scanned = value.length > MAX_COMMAND_SCAN_BYTES ? value.slice(0, MAX_COMMAND_SCAN_BYTES) : value;
171
191
  for (const token of shellTokens(scanned))
172
192
  consider(token, out);
173
193
  }
174
194
  }
175
- if (out.length >= MAX_REFERENCED_FILES)
176
- break;
177
195
  }
178
196
  return out;
179
197
  }
180
198
  function consider(raw, out) {
181
- if (out.length >= MAX_REFERENCED_FILES)
182
- return;
183
199
  const trimmed = raw.replace(/^["']+|["']+$/g, '');
184
200
  // `--values=charts/prod.yaml` is one shell word carrying one path. Only
185
201
  // option-shaped words are split, so a filename that legitimately contains
@@ -190,9 +206,13 @@ function consider(raw, out) {
190
206
  candidate = trimmed.slice(eq + 1);
191
207
  if (candidate.length === 0 || Buffer.byteLength(candidate) > MAX_GUEST_PATH_BYTES || !hasManifestExtension(candidate))
192
208
  return;
193
- if (out.includes(candidate))
209
+ if (out.tokens.includes(candidate))
210
+ return;
211
+ if (out.tokens.length >= MAX_REFERENCED_FILES) {
212
+ out.pastLimits = true;
194
213
  return;
195
- out.push(candidate);
214
+ }
215
+ out.tokens.push(candidate);
196
216
  }
197
217
  function hasManifestExtension(token) {
198
218
  const ext = path.extname(token);
@@ -249,9 +269,12 @@ export async function readTokens(tokens, root) {
249
269
  }
250
270
  catch (err) {
251
271
  log.warn({ action: 'wasm_manifest_root_unresolvable', root, err: err instanceof Error ? err.message : String(err) }, `${MANIFEST_ROOT_ENV} does not resolve — every referenced-file read will be refused`);
252
- return ReferencedFiles.fromTable(tokens.map((t) => [t, { kind: 'refused', why: 'the configured manifest root does not resolve' }]));
272
+ return ReferencedFiles.fromTable({
273
+ entries: tokens.map((t) => [t, { kind: 'refused', why: 'the configured manifest root does not resolve' }]),
274
+ pastLimits: false,
275
+ });
253
276
  }
254
- const table = [];
277
+ const entries = [];
255
278
  for (const token of tokens) {
256
279
  const outcome = await readOne(canonicalRoot, token);
257
280
  if (outcome.kind === 'content') {
@@ -268,9 +291,9 @@ export async function readTokens(tokens, root) {
268
291
  else {
269
292
  log.debug({ action: 'wasm_referenced_file_withheld', path: token, reason: describeOutcome(outcome) }, 'referenced file withheld from WASM rules');
270
293
  }
271
- table.push([token, outcome]);
294
+ entries.push([token, outcome]);
272
295
  }
273
- return ReferencedFiles.fromTable(table);
296
+ return ReferencedFiles.fromTable({ entries, pastLimits: false });
274
297
  }
275
298
  function describeOutcome(o) {
276
299
  switch (o.kind) {
@@ -284,9 +307,13 @@ function describeOutcome(o) {
284
307
  return 'readable';
285
308
  }
286
309
  }
310
+ /** `readTokens` for a request's candidates, keeping whether it named more than was read. */
311
+ export async function readCandidates(candidates, root) {
312
+ return (await readTokens(candidates.tokens, root)).withPastLimits(candidates.pastLimits);
313
+ }
287
314
  /** Convenience for callers with tool calls in hand. */
288
315
  export function prefetch(toolCalls, root) {
289
- return readTokens(candidateTokens(toolCalls), root);
316
+ return readCandidates(candidateTokens(toolCalls), root);
290
317
  }
291
318
  /**
292
319
  * Guards 3–6 on one candidate. Ordered so nothing touches the filesystem
@@ -1 +1 @@
1
- {"version":3,"file":"referencedFiles.js","sourceRoot":"","sources":["../../src/wasm/referencedFiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"referencedFiles.js","sourceRoot":"","sources":["../../src/wasm/referencedFiles.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,40 @@
1
1
  /**
2
2
  * wasm/runner.ts — WasmRunner: owns the one dedicated `worker_threads`
3
- * Worker (worker.ts), the local-rules loader (loader.ts), and the
4
- * evaluate-all-rules union logic ported from
5
- * `packages/proxy/src/wasm/registry.rs`'s `evaluate_inner` (most-restrictive-
6
- * wins, short-circuit on a block, carry the first reask through).
3
+ * Worker (worker.ts), the local-rules loader (loader.ts), the workspace's
4
+ * control-plane rules (cloudRules.ts), and the evaluate-all-rules union logic
5
+ * ported from `packages/proxy/src/wasm/registry.rs`'s `evaluate_inner`
6
+ * (most-restrictive-wins, short-circuit on a block, carry the first reask
7
+ * through).
8
+ *
9
+ * Both sources run as one list in priority order, lower first; on a tie a
10
+ * control-plane rule runs before a local one, as in `registry.rs`. Local rules
11
+ * are `local:<file name>`; a control-plane rule keeps the control plane's id,
12
+ * the one the LLM proxy and the dashboard name it by. A control-plane rule in
13
+ * `SHADOW` mode is evaluated like any other and logged, and never decides the
14
+ * call — not even when it reaches no verdict.
7
15
  *
8
16
  * ## Divergences from the Rust runner (all recorded as TD entries)
9
17
  *
10
18
  * - **Fuel: the same 1,000,000-instruction budget, metered a different
11
- * way.** V8 has no fuel hook, so `fuel.ts` rewrites each rule at load to
12
- * count its own instructions and trap when the budget runs out (TD-440).
13
- * A rule that exhausts it fails open for that call, as under Wasmtime.
14
- * - **50ms per-rule deadline, not 5ms.** Fuel bounds the guest's own work;
15
- * the deadline is the backstop for everything else, and it races a
16
- * `postMessage` round trip that pays IPC overhead the in-process Wasmtime
17
- * call never did. 50ms, not 5ms, keeps that overhead from
18
- * false-positiving a legitimate rule under normal load.
19
+ * way.** V8 has no fuel hook, so `wasmFuel.ts` (shared-types) rewrites each rule at load to
20
+ * count its own instructions and trap when the budget runs out.
21
+ * A rule that exhausts it reaches no verdict, as under Wasmtime.
22
+ * - **The deadline is a backstop, not the limit.** Fuel is the limit: it is
23
+ * deterministic, so a rule within budget is never refused because the
24
+ * machine is busy. The deadline catches what fuel cannot see — a bulk
25
+ * `memory.fill` costs one instruction whatever its length, a host call
26
+ * costs none — and it races a `postMessage` round trip that the
27
+ * in-process Wasmtime call never pays. See {@link EVALUATE_TIMEOUT_MS}.
19
28
  * - **Guest memory ceiling: the same 16MB, enforced a different way.**
20
29
  * `runner.rs` sets a `StoreLimits` cap; V8 has no such hook, but it does
21
30
  * enforce the maximum a module declares, so `worker.ts` rewrites the
22
31
  * module's memory section to declare 16MB as its maximum before compiling
23
- * (`memoryCap.ts`). A `memory.grow` past it returns -1 as it would under
24
- * Wasmtime. Not a divergence any more; TD-440 records how it got here.
32
+ * (`wasmMemoryCap.ts`). A `memory.grow` past it returns -1 as it would under
33
+ * Wasmtime. Not a divergence any more.
34
+ * - **Rego rules (OPA builds) run through `@intutic/shared-types`' Rego
35
+ * host**, with their own instruction budget (`wasmFuel.ts`'s
36
+ * `REGO_FUEL_BUDGET`) and deadline (`REGO_EVALUATE_TIMEOUT_MS`), and
37
+ * reply with a decision instead of a verdict code — a hold has none.
25
38
  * - **`read_referenced_file` is served from a pre-read table**
26
39
  * (`referencedFiles.ts`, the port of `referenced_files.rs`), prefetched
27
40
  * once per `evaluate()` only when a loaded rule imports the function and
@@ -30,8 +43,43 @@
30
43
  *
31
44
  * @module
32
45
  */
33
- import { type CompileBridge, type CompileOutcome } from './loader.js';
46
+ import type { WasmRuleDescriptor } from '@intutic/shared-types';
47
+ import { type CompileOutcome } from './loader.js';
48
+ import type { CloudRuleBridge, CloudRuleSet } from './cloudRules.js';
34
49
  import { type WasmContextInput } from './context.js';
50
+ /**
51
+ * A native rule's deadline: a backstop for stalls the instruction budget
52
+ * cannot see, set well above the time any rule within budget takes on a busy
53
+ * machine, because a rule that reaches no verdict refuses the call.
54
+ *
55
+ * Measured on a 14-core machine, idle and with 100 busy threads (about the
56
+ * oversubscription of a 4-vCPU CI runner running every package's suite): the
57
+ * 1,000,000-instruction budget runs out in at most 2 ms either way, and a
58
+ * worker round trip for a 60 KB context takes at most 0.5 ms idle and 3.9 ms
59
+ * loaded. The Rego round trip below shows the loaded machine also stalls a
60
+ * thread for hundreds of milliseconds, which is what one second covers.
61
+ */
62
+ export declare const EVALUATE_TIMEOUT_MS = 1000;
63
+ /**
64
+ * A Rego rule's deadline, on the same reasoning with the Rego budget
65
+ * (`REGO_FUEL_BUDGET`): the destructive-shell example on the largest input
66
+ * (64 KB) takes at most 6 ms idle and 430 ms loaded, round trip included, and
67
+ * a loop using up the whole budget takes up to 350 ms idle and 4.4 s loaded.
68
+ * Ten seconds is over twice that, so on a loaded machine the budget still
69
+ * stops a runaway rule first, and only a stall fuel cannot see waits this long.
70
+ */
71
+ export declare const REGO_EVALUATE_TIMEOUT_MS = 10000;
72
+ /**
73
+ * Consecutive per-rule runaways (a timeout, or the instruction budget running
74
+ * out) before that rule is quarantined until the next rescan.
75
+ */
76
+ export declare const MAX_CONSECUTIVE_RUNAWAYS = 3;
77
+ /**
78
+ * Why a rule reached no verdict, in the one word a refusal and a log line use
79
+ * — the Rust proxy's `limits::Stop` — plus `quarantined`: not evaluated at
80
+ * all, after {@link MAX_CONSECUTIVE_RUNAWAYS} runaways in a row.
81
+ */
82
+ export type RuleStop = 'deadline' | 'budget' | 'error' | 'result' | 'quarantined';
35
83
  export type WasmVerdict = {
36
84
  code: 'allow';
37
85
  } | {
@@ -42,48 +90,138 @@ export type WasmVerdict = {
42
90
  code: 'reask';
43
91
  reason: string;
44
92
  ruleId: string;
93
+ }
94
+ /** A Rego rule's `hold`: the interceptor puts the call through the decisions API. */
95
+ | {
96
+ code: 'hold';
97
+ reason: string;
98
+ ruleId: string;
99
+ riskTier?: string;
100
+ }
101
+ /**
102
+ * A rule reached no verdict: the call is refused as `GOVERNANCE_UNAVAILABLE`,
103
+ * whatever the proxy's fail setting (see {@link WasmRunner.evaluate}).
104
+ */
105
+ | {
106
+ code: 'unavailable';
107
+ reason: string;
108
+ ruleId: string;
109
+ stop: RuleStop;
45
110
  };
46
- export declare class WasmRunner implements CompileBridge {
111
+ /**
112
+ * One shadowed rule's outcome on one call, as the LLM proxy reports it on a
113
+ * trace (`registry.rs`'s `ShadowReport`): the bypasses are reported too,
114
+ * because they are the denominator promotion divides by.
115
+ */
116
+ export interface ShadowReport {
117
+ ruleId: string;
118
+ /** False when the rule allowed the call; true for a block, a reask, a hold, or no verdict. */
119
+ wouldAct: boolean;
120
+ }
121
+ export declare class WasmRunner implements CloudRuleBridge {
122
+ private readonly cloud?;
47
123
  private readonly loader;
48
124
  private worker;
49
125
  private nextRequestId;
50
126
  private pending;
51
- private consecutiveTimeouts;
52
- private disabledRuleIds;
53
- constructor(dirOverride?: string);
127
+ private consecutiveRunaways;
128
+ /** The worker replacing one that missed a deadline, while its rules recompile. */
129
+ private respawning;
130
+ private quarantined;
131
+ /**
132
+ * @param dirOverride - the local rules directory (see `resolveWasmDir`).
133
+ * @param cloud - the workspace's control-plane rules; absent where there is
134
+ * no control plane to fetch them from (tests, local-only use).
135
+ */
136
+ constructor(dirOverride?: string, cloud?: CloudRuleSet | undefined);
54
137
  /** The resolved local rules directory, for logging. */
55
138
  getDir(): string;
56
- /** Currently loaded rule ids (`local:<file name>`), priority order — observability for callers/tests. */
139
+ /** Currently loaded rule ids, in evaluation order — observability for callers/tests. */
57
140
  getLoadedRuleIds(): string[];
141
+ /**
142
+ * Every loaded rule in evaluation order: by priority, and on a tie the
143
+ * control-plane rules first (a stable sort over cloud-then-local, as
144
+ * `registry.rs` sorts).
145
+ */
146
+ private activeRules;
147
+ /**
148
+ * Brings the control-plane rules in line with the descriptors the policy
149
+ * carries. `undefined` — no policy from the control plane yet — leaves them
150
+ * as they are. See `CloudRuleSet.sync` for when this waits.
151
+ */
152
+ syncCloudRules(descriptors: readonly WasmRuleDescriptor[] | undefined): Promise<void>;
153
+ /**
154
+ * Whether the workspace's control-plane rules are known: a descriptor list
155
+ * has been applied (or this runner has no control plane to ask). Until then,
156
+ * a call is judged without them, which the interceptor allows only under
157
+ * the fail-open setting.
158
+ */
159
+ cloudRulesLoaded(): boolean;
58
160
  private ensureWorker;
59
161
  /** Send one message and wait for its correlated reply, or `null` on timeout. */
60
162
  private send;
61
163
  private allocId;
62
164
  compile(ruleId: string, bytes: Uint8Array): Promise<CompileOutcome>;
63
165
  remove(ruleId: string): void;
166
+ /** A control-plane rule's version changed: the old version's runaways do not count against the new one. */
167
+ replaced(ruleId: string): void;
64
168
  /**
65
169
  * Rescans `~/.intutic/wasm/` and (re)compiles anything changed. Also
66
- * clears every rule's disabled-by-timeout status — "disable that rule
67
- * until the next policy-driven rescan" is this call.
170
+ * releases every quarantined rule — "quarantined until the next
171
+ * policy-driven rescan" is this call.
68
172
  */
69
173
  rescan(): Promise<void>;
70
- /** Terminates the worker and respawns a fresh one, resending every currently-loaded rule's bytes so its module cache is rebuilt. */
174
+ /**
175
+ * Replaces the worker, resending every currently-loaded rule's bytes so the
176
+ * new one's module cache is rebuilt, without waiting for the old one to stop.
177
+ *
178
+ * `Worker.terminate()` can take seconds: V8 stops a guest only at an
179
+ * interrupt check, and a loop around a bulk `memory.fill` reaches one
180
+ * rarely — measured, 1.5 s on an idle machine and 16 s on a loaded one. The
181
+ * call that missed its deadline is refused at the deadline; the old worker
182
+ * stops whenever V8 gets to it, and the next evaluation waits only for the
183
+ * new worker's recompile (`respawning`, about 50 ms for three Rego rules).
184
+ */
71
185
  private respawnWorker;
72
186
  /**
73
- * Evaluates every currently loaded, non-disabled rule (priority order)
74
- * against one context, mirroring `registry.rs`'s `evaluate_inner`:
75
- * short-circuit on the first block, carry the first reask through in case
76
- * a later, higher-priority rule still blocks, `allow` when nothing fired
77
- * or every loaded rule was fail-open (timeout/trap/unmapped code).
187
+ * Evaluates every currently loaded rule (priority order) against one
188
+ * context, as `registry.rs`'s `evaluate_inner` does: short-circuit on the
189
+ * first block, carry the first hold and reask through in case a later rule
190
+ * still blocks, `allow` when nothing fired.
191
+ *
192
+ * A rule that reaches no verdict — its deadline, its instruction budget, a
193
+ * trap or other error, or a result that is not a verdict — refuses the call
194
+ * (`unavailable`), whatever `mcpProxyFailBehavior` or
195
+ * `INTUTIC_MCP_FAIL_OPEN` say. That setting exists for control-plane
196
+ * outages, which an agent cannot cause; a rule's timeout an agent can cause
197
+ * by padding its input, so it must never become an allow. The refusal
198
+ * outranks a hold and a reask, since neither an approval nor a retry can
199
+ * clear a call a rule never judged; a later rule's block still wins,
200
+ * because it says what is wrong with the call.
201
+ *
202
+ * A quarantined rule (see {@link countRunaway}) refuses at once, without
203
+ * anything being evaluated, until the next rescan.
204
+ *
205
+ * A `SHADOW` rule is evaluated in its place and decides nothing: what it
206
+ * would have done, a refusal for reaching no verdict included, leaves the
207
+ * call as the other rules decide it. Each evaluation is appended to
208
+ * `shadowOut`, the evidence promotion out of shadow is judged on, and a
209
+ * would-act is logged. A quarantined one is skipped, and reported as
210
+ * nothing, since nothing ran.
78
211
  */
79
- evaluate(input: WasmContextInput): Promise<WasmVerdict>;
212
+ evaluate(input: WasmContextInput, shadowOut?: ShadowReport[]): Promise<WasmVerdict>;
80
213
  /**
81
- * The referenced-files table for this evaluation (TD-441). With no
214
+ * The referenced-files table for this evaluation. With no
82
215
  * `INTUTIC_WASM_MANIFEST_ROOT` the table is empty and every read refuses.
83
216
  */
84
217
  private prefetchReferencedFiles;
85
- /** One rule's evaluation, raced against `EVALUATE_TIMEOUT_MS`. `null` means fail-open (timeout, worker error, or guest trap). */
218
+ /** One rule's evaluation, raced against its deadline: its answer, or why it reached none. */
86
219
  private evaluateOne;
220
+ /**
221
+ * Counts one runaway (deadline or budget) against `ruleId`, quarantining
222
+ * the rule at {@link MAX_CONSECUTIVE_RUNAWAYS} in a row. Logged once, at the
223
+ * transition; what a quarantined rule means for a call is `evaluate`'s.
224
+ */
87
225
  private countRunaway;
88
226
  /** Terminates the worker. Safe to call even if one was never spawned. */
89
227
  shutdown(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/wasm/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,OAAO,EAA8B,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjG,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAqBtE,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAyCrD,qBAAa,UAAW,YAAW,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,eAAe,CAAoB;gBAE/B,WAAW,CAAC,EAAE,MAAM;IAIhC,uDAAuD;IACvD,MAAM,IAAI,MAAM;IAIhB,yGAAyG;IACzG,gBAAgB,IAAI,MAAM,EAAE;IAI5B,OAAO,CAAC,YAAY;IAmBpB,gFAAgF;IAChF,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,OAAO;IAQT,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAmBzE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,oIAAoI;YACtH,aAAa;IAqB3B;;;;;;OAMG;IACG,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAuD7D;;;OAGG;YACW,uBAAuB;IAUrC,iIAAiI;YACnH,WAAW;IA+CzB,OAAO,CAAC,YAAY;IAYpB,yEAAyE;IACnE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAUhC;AAWD,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/wasm/runner.ts"],"names":[],"mappings":"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"}