@cybedefend/vibedefend 1.6.0 → 1.7.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 (44) hide show
  1. package/README.md +5 -1
  2. package/dist/commands/mcp/proxy.js +67 -11
  3. package/dist/commands/mcp/proxy.js.map +1 -1
  4. package/dist/hook-runner.js +1 -1
  5. package/dist/mcp/proxy/audit.js.map +1 -1
  6. package/dist/mcp/proxy/inject.js +20 -5
  7. package/dist/mcp/proxy/inject.js.map +1 -1
  8. package/dist/mcp/proxy/intercept.js +26 -0
  9. package/dist/mcp/proxy/intercept.js.map +1 -1
  10. package/dist/mcp/proxy/paths.js +4 -0
  11. package/dist/mcp/proxy/paths.js.map +1 -1
  12. package/dist/mcp/proxy/proxy.js +12 -2
  13. package/dist/mcp/proxy/proxy.js.map +1 -1
  14. package/dist/mcp/proxy/serverCheckTimer.js +75 -0
  15. package/dist/mcp/proxy/serverCheckTimer.js.map +1 -0
  16. package/dist/mcp/proxy/sessionLifecycle.js +29 -0
  17. package/dist/mcp/proxy/sessionLifecycle.js.map +1 -0
  18. package/dist/mcp/proxy/verifyInterceptor.js +186 -27
  19. package/dist/mcp/proxy/verifyInterceptor.js.map +1 -1
  20. package/dist/mcp/report/buffer.js +351 -0
  21. package/dist/mcp/report/buffer.js.map +1 -0
  22. package/dist/mcp/report/coalesce.js +165 -0
  23. package/dist/mcp/report/coalesce.js.map +1 -0
  24. package/dist/mcp/report/constants.js +51 -0
  25. package/dist/mcp/report/constants.js.map +1 -0
  26. package/dist/mcp/report/project.js +83 -0
  27. package/dist/mcp/report/project.js.map +1 -0
  28. package/dist/mcp/report/reporter.js +443 -0
  29. package/dist/mcp/report/reporter.js.map +1 -0
  30. package/dist/mcp/report/types.js +3 -0
  31. package/dist/mcp/report/types.js.map +1 -0
  32. package/dist/mcp/report/validate.js +179 -0
  33. package/dist/mcp/report/validate.js.map +1 -0
  34. package/dist/mcp/verify/api.js +39 -0
  35. package/dist/mcp/verify/api.js.map +1 -1
  36. package/dist/mcp/verify/cache.js +18 -0
  37. package/dist/mcp/verify/cache.js.map +1 -1
  38. package/dist/mcp/verify/identity.js +120 -7
  39. package/dist/mcp/verify/identity.js.map +1 -1
  40. package/dist/mcp/verify/policy.js +2 -0
  41. package/dist/mcp/verify/policy.js.map +1 -1
  42. package/dist/mcp/verify/verifier.js +189 -32
  43. package/dist/mcp/verify/verifier.js.map +1 -1
  44. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverCheckTimer.js","sourceRoot":"","sources":["../../../src/mcp/proxy/serverCheckTimer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAWlE,MAAM,UAAU,qBAAqB,CAAC,IAOrC;IACC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC;IACxD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC;IAC9D,IAAI,OAAkC,CAAC;IACvC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,UAAU,KAAK;QAClB,IAAI,KAAmD,CAAC;QACxD,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrG,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,CAAC;YAAE,OAAO;QACtE,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;oBAC9B,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACvF,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,SAAS,IAAI;QACX,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,OAAO,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7B,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,IAAI,EAAE,CAAC;IACZ,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE;QAChC,IAAI,OAAO;YAAE,OAAO;QACpB,KAAK,IAAI,EAAE,CAAC;IACd,CAAC,EAAE,IAAI,CAAC,UAAU,IAAI,wBAAwB,CAAC,CAAC;IAChD,MAAM,KAAK,GAAI,MAAgD,EAAE,KAAK,CAAC;IACvE,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEpD,OAAO;QACL,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;YACf,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,29 @@
1
+ export function createSessionLifecycle(deps) {
2
+ let timer;
3
+ let stopped = false;
4
+ function onChange() {
5
+ try {
6
+ void deps.refreshServerGate().catch(() => undefined);
7
+ }
8
+ catch {
9
+ // The gate stays as it was; the next check tries again.
10
+ }
11
+ deps.reporter?.noteServerChanged();
12
+ }
13
+ return {
14
+ start(client) {
15
+ if (stopped || timer)
16
+ return;
17
+ deps.reporter?.start(client);
18
+ timer = deps.startTimer(onChange);
19
+ },
20
+ stop() {
21
+ if (stopped)
22
+ return;
23
+ stopped = true;
24
+ timer?.stop();
25
+ deps.reporter?.stop();
26
+ },
27
+ };
28
+ }
29
+ //# sourceMappingURL=sessionLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionLifecycle.js","sourceRoot":"","sources":["../../../src/mcp/proxy/sessionLifecycle.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,IAAI,KAAmC,CAAC;IACxC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,SAAS,QAAQ;QACf,IAAI,CAAC;YACH,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,KAAK,CAAC,MAAM;YACV,IAAI,OAAO,IAAI,KAAK;gBAAE,OAAO;YAC7B,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,IAAI;YACF,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,KAAK,EAAE,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -62,7 +62,7 @@ class Cancellation {
62
62
  }
63
63
  cancel() {
64
64
  this.cancelled = true;
65
- this.settle({ proceed: false, remember: false });
65
+ this.settle({ proceed: false, remember: false, source: 'prompt' });
66
66
  }
67
67
  race(answer) {
68
68
  return Promise.race([answer, this.signal]);
@@ -103,6 +103,7 @@ export function createVerifyInterceptor(options) {
103
103
  return {
104
104
  name: 'verify',
105
105
  async fromAgent(message, context) {
106
+ guarded(() => options.report?.noteClient?.(context.client));
106
107
  const method = methodOf(message);
107
108
  if (method === 'notifications/cancelled') {
108
109
  const requestId = typeof message.params === 'object' && message.params !== null
@@ -142,17 +143,38 @@ export function createVerifyInterceptor(options) {
142
143
  };
143
144
  }
144
145
  const toolName = typeof name === 'string' ? name : '(unnamed)';
145
- // The SERVER-level gate, from the last list: a blocked server takes
146
- // every call with it, whatever the individual tool's record says.
147
- if (lastOutcome?.decision.action === 'block') {
146
+ const definition = knownTools.get(toolName);
147
+ const digest = definition ? safeDigest(definition) : undefined;
148
+ const argumentBytes = byteLength(params.arguments);
149
+ // The SERVER-level gate. First the organization: a block it decided
150
+ // takes every call with it, listed or not — a call before any
151
+ // `tools/list` is refused on a block already on record, and one that
152
+ // arrives mid-session is refused as soon as the periodic check has
153
+ // learned it. Read from the record, so a lifted block stops gating at
154
+ // once. Without a block on record the call goes on: the check is
155
+ // never waited for, and a block is never assumed.
156
+ if (activeOrganizationBlock()) {
157
+ logger.info('verify: refused a tools/call to a server blocked by the organization', { tool: toolName });
158
+ refuse('organization', toolName, digest, argumentBytes);
159
+ return {
160
+ action: 'respond',
161
+ message: refusedCallResponse(message.id, options.serverName, toolName, lastFinding, 'organization'),
162
+ reason: 'the server is blocked by the organization',
163
+ };
164
+ }
165
+ // Then the last list: a blocked server takes every call with it,
166
+ // whatever the individual tool's record says. A block that came from
167
+ // the organization is the organization's to keep, and it was checked
168
+ // just above: once lifted, it no longer gates.
169
+ if (lastOutcome?.decision.action === 'block' && lastOutcome.blockedBy !== 'organization') {
148
170
  logger.info('verify: refused a tools/call to a blocked server', { tool: toolName });
171
+ refuse(lastOutcome.blockedBy === 'advisory' ? 'advisory' : 'verdict', toolName, digest, argumentBytes);
149
172
  return {
150
173
  action: 'respond',
151
174
  message: refusedCallResponse(message.id, options.serverName, toolName, lastFinding, 'blocked'),
152
175
  reason: 'the server is blocked',
153
176
  };
154
177
  }
155
- const definition = knownTools.get(toolName);
156
178
  const findings = scanArguments(params.arguments, {
157
179
  spec: options.spec,
158
180
  inputSchema: definition?.inputSchema,
@@ -191,6 +213,7 @@ export function createVerifyInterceptor(options) {
191
213
  if (outcome.decision.action === 'block') {
192
214
  // Answered here, never forwarded: the call would have reached
193
215
  // a tool the verdict says must not run.
216
+ refuse(outcome.blockedBy ?? 'verdict', toolName, digest, argumentBytes, outcome);
194
217
  return {
195
218
  action: 'respond',
196
219
  message: refusedCallResponse(message.id, options.serverName, toolName, outcome.finding, 'blocked'),
@@ -201,10 +224,16 @@ export function createVerifyInterceptor(options) {
201
224
  // served from the dictionary. The user decides, once per server
202
225
  // and session on a yes.
203
226
  if (needsConfirmation(outcome)) {
204
- const refused = await confirmOrRefuse(message, toolName, outcome.finding, context.agent);
227
+ const confirmation = await confirmOrRefuse(message, toolName, outcome.finding, context.agent);
228
+ const refused = settleConfirmation(confirmation, toolName, digest, argumentBytes, outcome);
205
229
  if (refused)
206
230
  return refused;
207
231
  }
232
+ else if (outcome.decision.action === 'alert' && outcome.decision.rationale === 'malicious') {
233
+ // The organization only warns about this verdict: the call
234
+ // goes through, its result framed.
235
+ emit('warned', 'warn_mode', toolName, outcome);
236
+ }
208
237
  verdictFinding = verdictFindingOf(outcome);
209
238
  }
210
239
  }
@@ -223,7 +252,8 @@ export function createVerifyInterceptor(options) {
223
252
  // remembered. There is no definition to judge, but the SERVER's
224
253
  // verdict still stands, and a suspicious server is not vouched for
225
254
  // by the tool being new. The user decides, as for a listed tool.
226
- const refused = await confirmOrRefuse(message, toolName, lastFinding, context.agent);
255
+ const confirmation = await confirmOrRefuse(message, toolName, lastFinding, context.agent);
256
+ const refused = settleConfirmation(confirmation, toolName, digest, argumentBytes);
227
257
  if (refused)
228
258
  return refused;
229
259
  }
@@ -231,8 +261,8 @@ export function createVerifyInterceptor(options) {
231
261
  if (key) {
232
262
  pendingCalls.set(key, {
233
263
  tool: toolName,
234
- digest: definition ? safeDigest(definition) : undefined,
235
- argumentBytes: byteLength(params.arguments),
264
+ digest,
265
+ argumentBytes,
236
266
  findings,
237
267
  verdictFinding,
238
268
  withholdOnFinding: policy.mode === 'block',
@@ -242,6 +272,26 @@ export function createVerifyInterceptor(options) {
242
272
  }
243
273
  return { action: 'forward' };
244
274
  },
275
+ async refreshServerGate() {
276
+ // Before the first list there is no server verdict to refresh, and the
277
+ // organization gate reads the record directly.
278
+ if (!lastOutcome)
279
+ return;
280
+ try {
281
+ const outcome = await verifier.verify([...knownTools.values()]);
282
+ lastFinding = outcome.finding;
283
+ lastOutcome = outcome;
284
+ logger.info('verify: the server gate was refreshed', {
285
+ action: outcome.decision.action,
286
+ rationale: outcome.decision.rationale,
287
+ });
288
+ }
289
+ catch (error) {
290
+ logger.warn('verify: refreshing the server gate failed, the gate is unchanged', {
291
+ error: error instanceof Error ? error.message : String(error),
292
+ });
293
+ }
294
+ },
245
295
  async fromUpstream(message, context) {
246
296
  if (methodOf(message) === 'notifications/tools/list_changed') {
247
297
  // Noted, and forwarded: the client is the one that decides to ask
@@ -280,6 +330,7 @@ export function createVerifyInterceptor(options) {
280
330
  });
281
331
  lastFinding = outcome.finding;
282
332
  lastOutcome = outcome;
333
+ guarded(() => options.report?.noteListDecided?.());
283
334
  logger.info('verify: decided', {
284
335
  action: outcome.decision.action,
285
336
  rationale: outcome.decision.rationale,
@@ -315,13 +366,25 @@ export function createVerifyInterceptor(options) {
315
366
  };
316
367
  },
317
368
  };
369
+ /** Whether the organization blocks this server now. A record that cannot be read is no block. */
370
+ function activeOrganizationBlock() {
371
+ try {
372
+ return Boolean(verifier.organizationBlock?.());
373
+ }
374
+ catch (error) {
375
+ logger.warn('verify: the organization block could not be read, not gating on it', {
376
+ error: error instanceof Error ? error.message : String(error),
377
+ });
378
+ return false;
379
+ }
380
+ }
318
381
  /**
319
- * The confirmation step of a `tools/call`: the decision that ends the call
320
- * (refused, or dropped after a cancellation), or nothing when it may go on.
382
+ * The confirmation step of a `tools/call`: how it ended, with the decision
383
+ * that ends the call when it was refused or dropped after a cancellation.
321
384
  */
322
385
  async function confirmOrRefuse(message, toolName, finding, agent) {
323
386
  if (confirmed)
324
- return undefined;
387
+ return { kind: 'session-yes' };
325
388
  const { answer, cancelled } = await askAbout(message.id, toolName, finding, agent);
326
389
  if (cancelled) {
327
390
  // No response, on purpose: the spec has the receiver of a cancellation
@@ -329,25 +392,120 @@ export function createVerifyInterceptor(options) {
329
392
  // ignore one that arrives anyway. A late refusal text would land in
330
393
  // the agent's context as a fresh tool error for a call it already
331
394
  // wrote off.
332
- return { action: 'drop', reason: 'the agent cancelled the call before the user answered' };
395
+ return {
396
+ kind: 'cancelled',
397
+ decision: { action: 'drop', reason: 'the agent cancelled the call before the user answered' },
398
+ };
399
+ }
400
+ if (answer.proceed) {
401
+ switch (answer.source) {
402
+ case 'prompt':
403
+ return { kind: 'asked-yes' };
404
+ case 'shared':
405
+ return { kind: 'shared-yes' };
406
+ case 'session':
407
+ return { kind: 'session-yes' };
408
+ case 'cannot-ask':
409
+ return { kind: 'cannot-ask' };
410
+ }
333
411
  }
334
- if (answer.proceed)
335
- return undefined;
336
412
  if (answer.answered === false) {
337
413
  logger.info('verify: no answer to the confirmation, the tools/call is not sent', { tool: toolName });
338
414
  return {
339
- action: 'respond',
340
- message: refusedCallResponse(message.id, options.serverName, toolName, finding, 'unanswered'),
341
- reason: 'the confirmation got no answer',
415
+ kind: 'unanswered',
416
+ decision: {
417
+ action: 'respond',
418
+ message: refusedCallResponse(message.id, options.serverName, toolName, finding, 'unanswered'),
419
+ reason: 'the confirmation got no answer',
420
+ },
342
421
  };
343
422
  }
344
423
  logger.info('verify: the user declined a tools/call to a suspicious tool', { tool: toolName });
345
424
  return {
346
- action: 'respond',
347
- message: refusedCallResponse(message.id, options.serverName, toolName, finding, 'declined'),
348
- reason: 'the user declined to send the call',
425
+ kind: 'declined',
426
+ decision: {
427
+ action: 'respond',
428
+ message: refusedCallResponse(message.id, options.serverName, toolName, finding, 'declined'),
429
+ reason: 'the user declined to send the call',
430
+ },
349
431
  };
350
432
  }
433
+ /**
434
+ * Reports how a confirmation ended, and hands back the decision that ends
435
+ * the call, if any. A yes is reported only when the user gave it for this
436
+ * call: a session-wide earlier yes and a yes shared from another call's
437
+ * prompt were already reported once. A no shared from another call's
438
+ * prompt refuses this call too, and is reported for it. A cancellation is
439
+ * not a decision anybody took about the tool: nothing is reported.
440
+ */
441
+ function settleConfirmation(confirmation, toolName, digest, argumentBytes, outcome) {
442
+ switch (confirmation.kind) {
443
+ case 'asked-yes':
444
+ emit('accepted', 'asked', toolName, outcome);
445
+ return undefined;
446
+ case 'cannot-ask':
447
+ emit('warned', 'cannot_ask', toolName, outcome);
448
+ return undefined;
449
+ case 'session-yes':
450
+ case 'shared-yes':
451
+ return undefined;
452
+ case 'declined':
453
+ case 'unanswered':
454
+ refuse(confirmation.kind, toolName, digest, argumentBytes, outcome);
455
+ return confirmation.decision;
456
+ case 'cancelled':
457
+ return confirmation.decision;
458
+ }
459
+ }
460
+ /**
461
+ * A call that never left: reported, and written to the local audit with
462
+ * its reason and the size of its arguments, never the arguments.
463
+ */
464
+ function refuse(reason, toolName, digest, argumentBytes, outcome) {
465
+ emit('refused', reason, toolName, outcome);
466
+ options.audit?.record({
467
+ serverId: options.serverId,
468
+ serverName: options.serverName,
469
+ tool: toolName,
470
+ digest,
471
+ refused: reason,
472
+ argumentBytes,
473
+ });
474
+ }
475
+ /**
476
+ * Hands one event to the report. Copies only the called tool's identity
477
+ * from its own outcome (digest, verdict, category, severity) and, for an
478
+ * injection, the names of the rules that matched: never an argument, a
479
+ * result, a finding's reason or its detail.
480
+ */
481
+ function emit(kind, reason, toolName, outcome, rules) {
482
+ const report = options.report;
483
+ if (!report)
484
+ return;
485
+ const input = { kind, reason, tool: toolName };
486
+ const tool = outcome?.tools?.find((candidate) => candidate.name === toolName);
487
+ if (tool) {
488
+ if (tool.digest)
489
+ input.digest = tool.digest;
490
+ input.verdict = tool.verdict;
491
+ if (tool.category)
492
+ input.category = tool.category;
493
+ if (tool.severity)
494
+ input.severity = tool.severity;
495
+ }
496
+ if (rules && rules.length > 0)
497
+ input.rules = rules;
498
+ guarded(() => report.event(input));
499
+ }
500
+ /** Runs a report hook. A report that throws must never take a call with it. */
501
+ function guarded(hook) {
502
+ try {
503
+ hook();
504
+ }
505
+ catch {
506
+ logger.warn('report: a report hook failed, the call goes on');
507
+ }
508
+ }
351
509
  async function askAbout(requestId, toolName, finding, agent) {
352
510
  const cancellation = new Cancellation(toolName);
353
511
  const key = idKey(requestId);
@@ -385,17 +543,17 @@ export function createVerifyInterceptor(options) {
385
543
  warnedCannotAsk = true;
386
544
  logger.warn('verify: the agent cannot be asked (no elicitation capability), forwarding calls to a suspicious server');
387
545
  }
388
- return { proceed: true, remember: false };
546
+ return { proceed: true, remember: false, source: 'cannot-ask' };
389
547
  }
390
548
  for (;;) {
391
549
  if (confirmed)
392
- return { proceed: true, remember: true };
550
+ return { proceed: true, remember: true, source: 'session' };
393
551
  if (openQuestion) {
394
552
  // Somebody else's prompt. Its answer is ours only if it was a no, or
395
553
  // a yes for the whole session.
396
554
  const shared = await cancellation.race(openQuestion);
397
555
  if (!shared.proceed || shared.remember)
398
- return shared;
556
+ return { ...shared, source: 'shared' };
399
557
  continue;
400
558
  }
401
559
  openQuestion = ask(agent, toolName, finding)
@@ -433,17 +591,17 @@ export function createVerifyInterceptor(options) {
433
591
  logger.warn('verify: the confirmation prompt failed, refusing the call', {
434
592
  error: error instanceof Error ? error.message : String(error),
435
593
  });
436
- return { proceed: false, remember: false, answered: false };
594
+ return { proceed: false, remember: false, answered: false, source: 'prompt' };
437
595
  }
438
596
  const result = typeof response.result === 'object' && response.result !== null
439
597
  ? response.result
440
598
  : undefined;
441
599
  if (!result || result.action !== 'accept')
442
- return { proceed: false, remember: false };
600
+ return { proceed: false, remember: false, source: 'prompt' };
443
601
  const content = typeof result.content === 'object' && result.content !== null
444
602
  ? result.content
445
603
  : {};
446
- return { proceed: true, remember: content.remember !== false };
604
+ return { proceed: true, remember: content.remember !== false, source: 'prompt' };
447
605
  }
448
606
  /**
449
607
  * Scans a result, frames it if there is something to say, and writes the
@@ -470,6 +628,7 @@ export function createVerifyInterceptor(options) {
470
628
  if (resultFindings.length === 0 && !call.verdictFinding)
471
629
  return { action: 'forward' };
472
630
  if (resultFindings.length > 0) {
631
+ emit('injection', call.withholdOnFinding ? 'withheld' : 'framed', call.tool, undefined, resultFindings.map((finding) => finding.rule));
473
632
  logger.warn('scan: something in the result of a tools/call', {
474
633
  tool: call.tool,
475
634
  findings: resultFindings.map((finding) => finding.rule),
@@ -1 +1 @@
1
- {"version":3,"file":"verifyInterceptor.js","sourceRoot":"","sources":["../../../src/mcp/proxy/verifyInterceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyInterceptor.js","sourceRoot":"","sources":["../../../src/mcp/proxy/verifyInterceptor.ts"],"names":[],"mappings":"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"}