@securecode-ai/mcp 0.6.1 → 0.9.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 (75) hide show
  1. package/README.md +32 -3
  2. package/dist/api/types.d.ts +27 -0
  3. package/dist/approval/policy.js +7 -2
  4. package/dist/approval/policy.js.map +1 -1
  5. package/dist/attack/agentCorroboration.d.ts +14 -0
  6. package/dist/attack/agentCorroboration.js +98 -0
  7. package/dist/attack/agentCorroboration.js.map +1 -0
  8. package/dist/attack/agentLoop.js +9 -6
  9. package/dist/attack/agentLoop.js.map +1 -1
  10. package/dist/attack/agentScanBatchProtocol.d.ts +1 -1
  11. package/dist/attack/agentScanBatchProtocol.js.map +1 -1
  12. package/dist/attack/agentScanExecutor.d.ts +6 -2
  13. package/dist/attack/agentScanExecutor.js +62 -21
  14. package/dist/attack/agentScanExecutor.js.map +1 -1
  15. package/dist/attack/agentScanLoop.js +265 -151
  16. package/dist/attack/agentScanLoop.js.map +1 -1
  17. package/dist/attack/agentScanProtocol.d.ts +14 -5
  18. package/dist/attack/agentScanProtocol.js.map +1 -1
  19. package/dist/attack/architectureScoutLoop.js +1 -1
  20. package/dist/attack/architectureScoutLoop.js.map +1 -1
  21. package/dist/attack/investigationState.d.ts +32 -4
  22. package/dist/attack/investigationState.js +98 -10
  23. package/dist/attack/investigationState.js.map +1 -1
  24. package/dist/attack/llmHealth.d.ts +53 -0
  25. package/dist/attack/llmHealth.js +100 -0
  26. package/dist/attack/llmHealth.js.map +1 -0
  27. package/dist/attack/observationLimits.d.ts +12 -0
  28. package/dist/attack/observationLimits.js +16 -0
  29. package/dist/attack/observationLimits.js.map +1 -0
  30. package/dist/attack/policy.d.ts +1 -0
  31. package/dist/attack/policy.js +1 -0
  32. package/dist/attack/policy.js.map +1 -1
  33. package/dist/attack/probeRules.d.ts +51 -0
  34. package/dist/attack/probeRules.js +291 -0
  35. package/dist/attack/probeRules.js.map +1 -0
  36. package/dist/attack/protocol.d.ts +16 -0
  37. package/dist/attack/qualityMetrics.js +3 -0
  38. package/dist/attack/qualityMetrics.js.map +1 -1
  39. package/dist/attack/report.d.ts +3 -1
  40. package/dist/attack/report.js +4 -2
  41. package/dist/attack/report.js.map +1 -1
  42. package/dist/attack/runtimeProbe.d.ts +71 -0
  43. package/dist/attack/runtimeProbe.js +300 -0
  44. package/dist/attack/runtimeProbe.js.map +1 -0
  45. package/dist/attack/scanScheduler.d.ts +7 -0
  46. package/dist/attack/scanScheduler.js +58 -33
  47. package/dist/attack/scanScheduler.js.map +1 -1
  48. package/dist/attack/scanState.d.ts +1 -1
  49. package/dist/attack/scanState.js.map +1 -1
  50. package/dist/audit/findingReviewQueue.d.ts +1 -1
  51. package/dist/audit/findingReviewQueue.js.map +1 -1
  52. package/dist/auth/credentialStore.js +1 -1
  53. package/dist/auth/credentialStore.js.map +1 -1
  54. package/dist/auth/keychain.js +80 -80
  55. package/dist/auth/keychain.js.map +1 -1
  56. package/dist/mcp/server.js +5 -1
  57. package/dist/mcp/server.js.map +1 -1
  58. package/dist/mcp/tools.js +8 -9
  59. package/dist/mcp/tools.js.map +1 -1
  60. package/dist/project-map/architectureContext.d.ts +1 -1
  61. package/dist/project-map/architectureContext.js +1 -1
  62. package/dist/project-map/scanCache.d.ts +6 -1
  63. package/dist/project-map/scanCache.js +6 -1
  64. package/dist/project-map/scanCache.js.map +1 -1
  65. package/dist/tools/agentScan.d.ts +9 -1
  66. package/dist/tools/agentScan.js +160 -7
  67. package/dist/tools/agentScan.js.map +1 -1
  68. package/dist/tools/agentScanBatch.js +7 -1
  69. package/dist/tools/agentScanBatch.js.map +1 -1
  70. package/dist/tools/attack.js +1 -1
  71. package/dist/tools/attack.js.map +1 -1
  72. package/dist/tools/map.js +1 -1
  73. package/dist/utils/verificationSandbox.js +43 -2
  74. package/dist/utils/verificationSandbox.js.map +1 -1
  75. package/package.json +62 -62
@@ -18,6 +18,7 @@
18
18
  */
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.InvestigationState = void 0;
21
+ const observationLimits_1 = require("./observationLimits");
21
22
  const SECURITY_KEYWORD_WEIGHTS = [
22
23
  ['authenticat', 30], ['authorize', 30], ['authorization', 30],
23
24
  ['permission', 25], ['ownership', 25], ['owner', 20],
@@ -51,6 +52,8 @@ class InvestigationState {
51
52
  symbolsSearched = new Set();
52
53
  rootCauses = new Map();
53
54
  duplicateReadKeys = new Set();
55
+ functionMapReads = new Set();
56
+ lineDensities = new Map();
54
57
  tasks = new Map();
55
58
  flowVerifications = [];
56
59
  constructor() {
@@ -154,6 +157,22 @@ class InvestigationState {
154
157
  nextUnreadRange: null,
155
158
  };
156
159
  }
160
+ // Whole-file no-range reads on large files return a function map,
161
+ // not content. The first delivery records a fnmap key; an identical
162
+ // repeat is classified here so the loop blocks it with a hint to
163
+ // read ranged sections instead of re-fetching the same map — which
164
+ // would make zero progress since fnmap reads record no coverage.
165
+ const isWholeFileRead = (startLine === undefined || startLine === null) &&
166
+ (endLine === undefined || endLine === null);
167
+ if (isWholeFileRead && this.functionMapReads.has(normalized)) {
168
+ return {
169
+ classification: 'function-map',
170
+ overlapFraction: 0,
171
+ newLines: 0,
172
+ coverageAfter: coverage ? [...coverage.ranges] : [],
173
+ nextUnreadRange: this.getNextUnreadRange(filePath),
174
+ };
175
+ }
157
176
  if (this.duplicateReadKeys.has(rangeKey)) {
158
177
  return {
159
178
  classification: 'duplicate',
@@ -251,10 +270,16 @@ class InvestigationState {
251
270
  * Record a read using the ACTUAL delivered range (not the requested range).
252
271
  *
253
272
  * Use this when the executor returns structured metadata telling you
254
- * exactly which lines were delivered. A large-file read that returns a
255
- * function map (truncated=true, actualStart=0, actualEnd=0) does NOT
256
- * record any content coverage — the agent must still read specific
257
- * line ranges.
273
+ * exactly which lines were delivered:
274
+ *
275
+ * - A large-file read that returns a function map (truncated=true,
276
+ * actualStart=0, actualEnd=0) records NO content coverage — it only
277
+ * registers the fnmap key so an immediate identical repeat is blocked
278
+ * with a hint to use ranged reads. The agent must still read specific
279
+ * line ranges.
280
+ * - A truncated RANGED read (content cut at the observation cap) DOES
281
+ * deliver real lines — the delivered range is recorded so the cut-off
282
+ * tail stays re-readable as new coverage.
258
283
  */
259
284
  recordActualRead(filePath, actualStart, actualEnd, totalLines, truncated) {
260
285
  const normalized = InvestigationState.normalizePath(filePath);
@@ -272,10 +297,21 @@ class InvestigationState {
272
297
  coverage.readCount++;
273
298
  if (totalLines)
274
299
  coverage.totalLines = totalLines;
275
- // Truncated reads (function map) deliver no content lines — don't
276
- // record any range coverage and don't complete initial-read. The
277
- // agent must still read specific sections with actual content.
278
- if (truncated || actualStart === 0 || actualEnd === 0) {
300
+ // No content lines delivered. Function-map results also register
301
+ // the fnmap key so classifyRead can block an identical whole-file
302
+ // repeat with a ranged-read hint. Neither records range coverage
303
+ // or completes initial-read.
304
+ if (actualStart === 0 && actualEnd === 0) {
305
+ if (truncated)
306
+ this.functionMapReads.add(normalized);
307
+ this.filesRead.add(normalized);
308
+ return {
309
+ overlapping: false,
310
+ overlapFraction: 0,
311
+ coverageAfter: [...coverage.ranges],
312
+ };
313
+ }
314
+ if (actualStart === 0 || actualEnd === 0) {
279
315
  this.filesRead.add(normalized);
280
316
  return {
281
317
  overlapping: false,
@@ -363,13 +399,16 @@ class InvestigationState {
363
399
  * 1,000-5,000 300-line chunks
364
400
  * > 5,000 lines 400-line chunks
365
401
  *
402
+ * The chunk is shrunk by the file's average chars/line (when known) so
403
+ * the expected observation fits under the executor's char cap.
404
+ *
366
405
  * Returns null if the file is fully covered or not tracked.
367
406
  */
368
407
  getNextUnreadRange(filePath, chunkSize) {
369
408
  const coverage = this.getCoverage(filePath);
370
409
  if (!coverage || !coverage.totalLines)
371
410
  return null;
372
- const chunk = chunkSize ?? InvestigationState.chunkSizeForLines(coverage.totalLines);
411
+ const chunk = chunkSize ?? this.effectiveChunkSize(filePath, coverage.totalLines);
373
412
  const gaps = this.getUncoveredRanges(filePath);
374
413
  if (gaps.length === 0)
375
414
  return null;
@@ -381,7 +420,7 @@ class InvestigationState {
381
420
  const coverage = this.getCoverage(filePath);
382
421
  if (!coverage || !coverage.totalLines)
383
422
  return null;
384
- const chunk = chunkSize ?? InvestigationState.chunkSizeForLines(coverage.totalLines);
423
+ const chunk = chunkSize ?? this.effectiveChunkSize(filePath, coverage.totalLines, fileContent);
385
424
  const gaps = this.getUncoveredRanges(filePath);
386
425
  if (gaps.length === 0)
387
426
  return null;
@@ -469,6 +508,55 @@ class InvestigationState {
469
508
  return 300;
470
509
  return 400;
471
510
  }
511
+ /**
512
+ * Record a file's average chars-per-line (sampled from up to 200
513
+ * lines) so chunk sizing can shrink read ranges on dense files whose
514
+ * observations would otherwise be cut at the executor's char cap.
515
+ */
516
+ recordLineDensity(filePath, content) {
517
+ const lines = content.split('\n');
518
+ const sampleCount = Math.min(lines.length, 200);
519
+ if (sampleCount === 0)
520
+ return;
521
+ let chars = 0;
522
+ for (let i = 0; i < sampleCount; i++)
523
+ chars += lines[i].length;
524
+ const avg = chars / sampleCount;
525
+ if (avg > 0)
526
+ this.lineDensities.set(InvestigationState.normalizePath(filePath), avg);
527
+ }
528
+ /**
529
+ * Char-aware chunk sizing: shrink the line chunk so the expected
530
+ * observation (line content + line-number prefixes) fits under the
531
+ * executor's observation cap. Dense files (long average lines) get
532
+ * smaller chunks so a ranged read is never silently truncated.
533
+ * Clamped to a 60-line minimum so progress still happens on
534
+ * extremely dense files. Falls back to the line-count-only policy
535
+ * when no density information is available.
536
+ */
537
+ static chunkSizeForContent(totalLines, content, avgCharsPerLine) {
538
+ const base = InvestigationState.chunkSizeForLines(totalLines);
539
+ let avg = avgCharsPerLine;
540
+ if (avg === undefined && content) {
541
+ const lines = content.split('\n');
542
+ const sampleCount = Math.min(lines.length, 200);
543
+ if (sampleCount > 0) {
544
+ let chars = 0;
545
+ for (let i = 0; i < sampleCount; i++)
546
+ chars += lines[i].length;
547
+ avg = chars / sampleCount;
548
+ }
549
+ }
550
+ if (avg === undefined || avg <= 0)
551
+ return base;
552
+ const LINE_NUMBER_OVERHEAD = 8;
553
+ const maxLines = Math.floor((observationLimits_1.MAX_OBSERVATION_CHARS * 0.9) / (avg + LINE_NUMBER_OVERHEAD));
554
+ return Math.max(60, Math.min(base, maxLines));
555
+ }
556
+ effectiveChunkSize(filePath, totalLines, content) {
557
+ const normalized = InvestigationState.normalizePath(filePath);
558
+ return InvestigationState.chunkSizeForContent(totalLines, content, this.lineDensities.get(normalized));
559
+ }
472
560
  recordToolUse(toolType) {
473
561
  this.toolsUsed.add(toolType);
474
562
  switch (toolType) {
@@ -1 +1 @@
1
- {"version":3,"file":"investigationState.js","sourceRoot":"","sources":["../../src/attack/investigationState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"investigationState.js","sourceRoot":"","sources":["../../src/attack/investigationState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * LLM health monitor — detects degraded-model behavior that the
3
+ * consecutive-blocked-read counters provably miss.
4
+ *
5
+ * Scope (deliberately narrow — the blocked-read machinery already owns
6
+ * pure repeats):
7
+ *
8
+ * 1. A/B alternation — the model ping-pongs between two actions
9
+ * (read_config:all <-> read_file) where each action often executes
10
+ * or resets recovery counters, so blocked-read accounting never
11
+ * accumulates. Observed in production (synara audit, 2026-09-30):
12
+ * scans burned 16-29 steps oscillating before dying.
13
+ *
14
+ * 2. Provider degraded streak — the API reports degraded/fallback
15
+ * serving for many consecutive steps (both primary and fallback
16
+ * struggling).
17
+ *
18
+ * NOT covered here on purpose: identical repeat bursts. The loop already
19
+ * blocks the 3rd identical tool call, recovers deterministically, and
20
+ * terminates via blocked_read_recovery — adding a breaker on top would
21
+ * kill the recovery machinery's own working scenarios.
22
+ *
23
+ * The monitor watches the stream of MODEL-proposed actions (stepResp.next)
24
+ * and per-step telemetry (degraded/fallback flags from the API). A trip is
25
+ * terminal for the scan: the loop terminates with 'llm_degraded' instead of
26
+ * burning the remaining budget against a degraded model.
27
+ */
28
+ export interface LlmHealthConfig {
29
+ /** Ring-buffer size for model action fingerprints. */
30
+ windowSize: number;
31
+ /** Full A/B alternation cycles required inside the window before tripping. */
32
+ alternationCycles: number;
33
+ /** Consecutive degraded/fallback steps before tripping on telemetry alone. */
34
+ degradedStreakLimit: number;
35
+ /** Minimum recorded model actions before action-based tripwires evaluate. */
36
+ minActions: number;
37
+ }
38
+ export declare const DEFAULT_LLM_HEALTH_CONFIG: LlmHealthConfig;
39
+ export type LlmHealthSignal = 'alternation' | 'degraded-streak';
40
+ export interface LlmHealthTrip {
41
+ tripped: boolean;
42
+ signal: LlmHealthSignal | null;
43
+ detail: string;
44
+ }
45
+ export interface LlmHealthMonitor {
46
+ /** Record one model-proposed action (fingerprinted). */
47
+ recordModelAction(fingerprint: string): void;
48
+ /** Record per-step provider telemetry. */
49
+ recordStepTelemetry(degraded: boolean): void;
50
+ /** Evaluate all tripwires; a tripped monitor stays tripped. */
51
+ evaluate(): LlmHealthTrip;
52
+ }
53
+ export declare function createLlmHealthMonitor(config?: Partial<LlmHealthConfig>): LlmHealthMonitor;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ /**
3
+ * LLM health monitor — detects degraded-model behavior that the
4
+ * consecutive-blocked-read counters provably miss.
5
+ *
6
+ * Scope (deliberately narrow — the blocked-read machinery already owns
7
+ * pure repeats):
8
+ *
9
+ * 1. A/B alternation — the model ping-pongs between two actions
10
+ * (read_config:all <-> read_file) where each action often executes
11
+ * or resets recovery counters, so blocked-read accounting never
12
+ * accumulates. Observed in production (synara audit, 2026-09-30):
13
+ * scans burned 16-29 steps oscillating before dying.
14
+ *
15
+ * 2. Provider degraded streak — the API reports degraded/fallback
16
+ * serving for many consecutive steps (both primary and fallback
17
+ * struggling).
18
+ *
19
+ * NOT covered here on purpose: identical repeat bursts. The loop already
20
+ * blocks the 3rd identical tool call, recovers deterministically, and
21
+ * terminates via blocked_read_recovery — adding a breaker on top would
22
+ * kill the recovery machinery's own working scenarios.
23
+ *
24
+ * The monitor watches the stream of MODEL-proposed actions (stepResp.next)
25
+ * and per-step telemetry (degraded/fallback flags from the API). A trip is
26
+ * terminal for the scan: the loop terminates with 'llm_degraded' instead of
27
+ * burning the remaining budget against a degraded model.
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.DEFAULT_LLM_HEALTH_CONFIG = void 0;
31
+ exports.createLlmHealthMonitor = createLlmHealthMonitor;
32
+ exports.DEFAULT_LLM_HEALTH_CONFIG = {
33
+ windowSize: 8,
34
+ alternationCycles: 2,
35
+ degradedStreakLimit: 6,
36
+ minActions: 6,
37
+ };
38
+ function hasAlternationPattern(window, cyclesNeeded) {
39
+ // A full A/B cycle = 2 occurrences of each of two distinct fingerprints
40
+ // in strict alternation: A,B,A,B. cyclesNeeded cycles = A,B repeated
41
+ // cyclesNeeded+1 times (a cycle needs 2*(cyclesNeeded+1) entries).
42
+ const span = 2 * (cyclesNeeded + 1);
43
+ for (let i = 0; i + span <= window.length; i++) {
44
+ const a = window[i];
45
+ const b = window[i + 1];
46
+ if (a === b)
47
+ continue;
48
+ let ok = true;
49
+ for (let j = 2; j < span; j++) {
50
+ if (window[i + j] !== (j % 2 === 0 ? a : b)) {
51
+ ok = false;
52
+ break;
53
+ }
54
+ }
55
+ if (ok)
56
+ return a;
57
+ }
58
+ return null;
59
+ }
60
+ function createLlmHealthMonitor(config = {}) {
61
+ const cfg = { ...exports.DEFAULT_LLM_HEALTH_CONFIG, ...config };
62
+ const window = [];
63
+ let degradedStreak = 0;
64
+ let tripped = null;
65
+ const recordModelAction = (fingerprint) => {
66
+ window.push(fingerprint);
67
+ if (window.length > cfg.windowSize)
68
+ window.shift();
69
+ };
70
+ const recordStepTelemetry = (degraded) => {
71
+ degradedStreak = degraded ? degradedStreak + 1 : 0;
72
+ };
73
+ const evaluate = () => {
74
+ if (tripped)
75
+ return tripped;
76
+ if (degradedStreak >= cfg.degradedStreakLimit) {
77
+ tripped = {
78
+ tripped: true,
79
+ signal: 'degraded-streak',
80
+ detail: `Provider reported degraded/fallback for ${degradedStreak} consecutive steps.`,
81
+ };
82
+ return tripped;
83
+ }
84
+ if (window.length < cfg.minActions) {
85
+ return { tripped: false, signal: null, detail: 'not enough actions yet' };
86
+ }
87
+ const alt = hasAlternationPattern(window, cfg.alternationCycles);
88
+ if (alt !== null) {
89
+ tripped = {
90
+ tripped: true,
91
+ signal: 'alternation',
92
+ detail: `Model is stuck alternating between two actions (${alt} <-> other) for ${cfg.alternationCycles}+ full cycles.`,
93
+ };
94
+ return tripped;
95
+ }
96
+ return { tripped: false, signal: null, detail: 'healthy' };
97
+ };
98
+ return { recordModelAction, recordStepTelemetry, evaluate };
99
+ }
100
+ //# sourceMappingURL=llmHealth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llmHealth.js","sourceRoot":"","sources":["../../src/attack/llmHealth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Observation size limits shared by the scan executor and the
3
+ * investigation state.
4
+ *
5
+ * Lives in a leaf module (not the executor) so pure state code can import
6
+ * the cap without pulling in the executor's tool-dependency graph — and so
7
+ * test suites that mock the executor don't have to re-export it.
8
+ */
9
+ /** Hard cap on a single tool observation's character count. */
10
+ export declare const MAX_OBSERVATION_CHARS = 16000;
11
+ /** Files above this line count return a function map instead of raw content. */
12
+ export declare const LARGE_FILE_THRESHOLD = 300;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * Observation size limits shared by the scan executor and the
4
+ * investigation state.
5
+ *
6
+ * Lives in a leaf module (not the executor) so pure state code can import
7
+ * the cap without pulling in the executor's tool-dependency graph — and so
8
+ * test suites that mock the executor don't have to re-export it.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.LARGE_FILE_THRESHOLD = exports.MAX_OBSERVATION_CHARS = void 0;
12
+ /** Hard cap on a single tool observation's character count. */
13
+ exports.MAX_OBSERVATION_CHARS = 16000;
14
+ /** Files above this line count return a function map instead of raw content. */
15
+ exports.LARGE_FILE_THRESHOLD = 300;
16
+ //# sourceMappingURL=observationLimits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observationLimits.js","sourceRoot":"","sources":["../../src/attack/observationLimits.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,+DAA+D;AAClD,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C,gFAAgF;AACnE,QAAA,oBAAoB,GAAG,GAAG,CAAC"}
@@ -4,6 +4,7 @@ export interface AttackBudget {
4
4
  wallClockMs: number;
5
5
  maxResponseBytes: number;
6
6
  requestTimeoutMs: number;
7
+ costCapUsd: number;
7
8
  }
8
9
  export declare const DEFAULT_BUDGET: AttackBudget;
9
10
  export declare class PolicyError extends Error {
@@ -11,6 +11,7 @@ exports.DEFAULT_BUDGET = {
11
11
  wallClockMs: 90_000,
12
12
  maxResponseBytes: 1_000_000,
13
13
  requestTimeoutMs: 10_000,
14
+ costCapUsd: 1.00,
14
15
  };
15
16
  const ALLOWED_HOSTS = new Set(['127.0.0.1', 'localhost', '::1', '0:0:0:0:0:0:0:1']);
16
17
  class PolicyError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/attack/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/attack/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Runtime probe verdict rules — port of api/src/services/sandboxRules.ts.
3
+ *
4
+ * Seven deterministic response rules (zero LLM) that evaluate whether a probe
5
+ * plan's attack request actually worked against the user's local dev server.
6
+ * Pure functions: (attack request, attack response, baseline) → verdict.
7
+ * No side effects, no I/O. Kept in semantic parity with the API's sandbox
8
+ * rules — the same inputs must yield the same verdicts and rule identifiers.
9
+ *
10
+ * Verdict vocabulary:
11
+ * 'confirmed-bypass' → PROVEN (the exploit worked)
12
+ * 'refuted' → UNPROVEN (the control held)
13
+ * 'inconclusive' → needs AI adjudicator
14
+ * 'spawn-failed' → server never came up
15
+ */
16
+ export type ProbeVerdict = 'confirmed-bypass' | 'refuted' | 'inconclusive' | 'spawn-failed';
17
+ export type ConfirmationBasis = 'signature' | 'latency' | 'multi-request';
18
+ export interface ProbeRuleRequest {
19
+ method: string;
20
+ path: string;
21
+ headers?: Record<string, string>;
22
+ body?: unknown;
23
+ expectedStatus?: number[];
24
+ successStatus?: number[];
25
+ successBodyPattern?: string;
26
+ successHeaders?: Record<string, string>;
27
+ successLatencyMs?: {
28
+ gte?: number;
29
+ lte?: number;
30
+ };
31
+ successConfirmedBy?: ConfirmationBasis;
32
+ successEvidenceNeeded?: string;
33
+ authRequired?: boolean;
34
+ authEnvVars?: string[];
35
+ }
36
+ export interface ProbeRuleResponse {
37
+ statusCode: number;
38
+ headers: Record<string, string>;
39
+ body: string;
40
+ latencyMs: number;
41
+ }
42
+ export interface ProbeRuleResult {
43
+ verdict: ProbeVerdict;
44
+ rule: string;
45
+ reason: string;
46
+ requiredEvidence?: string[];
47
+ }
48
+ export declare const REJECTION_STATUSES: number[];
49
+ export declare const SECRET_PATTERN: string;
50
+ export declare function passesLuhn(digits: string): boolean;
51
+ export declare function applyProbeRules(attack: ProbeRuleRequest, attackResp: ProbeRuleResponse | null, baseline?: ProbeRuleRequest | null, baselineResp?: ProbeRuleResponse | null, env?: Record<string, string | undefined>): ProbeRuleResult;