@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.
- package/README.md +32 -3
- package/dist/api/types.d.ts +27 -0
- package/dist/approval/policy.js +7 -2
- package/dist/approval/policy.js.map +1 -1
- package/dist/attack/agentCorroboration.d.ts +14 -0
- package/dist/attack/agentCorroboration.js +98 -0
- package/dist/attack/agentCorroboration.js.map +1 -0
- package/dist/attack/agentLoop.js +9 -6
- package/dist/attack/agentLoop.js.map +1 -1
- package/dist/attack/agentScanBatchProtocol.d.ts +1 -1
- package/dist/attack/agentScanBatchProtocol.js.map +1 -1
- package/dist/attack/agentScanExecutor.d.ts +6 -2
- package/dist/attack/agentScanExecutor.js +62 -21
- package/dist/attack/agentScanExecutor.js.map +1 -1
- package/dist/attack/agentScanLoop.js +265 -151
- package/dist/attack/agentScanLoop.js.map +1 -1
- package/dist/attack/agentScanProtocol.d.ts +14 -5
- package/dist/attack/agentScanProtocol.js.map +1 -1
- package/dist/attack/architectureScoutLoop.js +1 -1
- package/dist/attack/architectureScoutLoop.js.map +1 -1
- package/dist/attack/investigationState.d.ts +32 -4
- package/dist/attack/investigationState.js +98 -10
- package/dist/attack/investigationState.js.map +1 -1
- package/dist/attack/llmHealth.d.ts +53 -0
- package/dist/attack/llmHealth.js +100 -0
- package/dist/attack/llmHealth.js.map +1 -0
- package/dist/attack/observationLimits.d.ts +12 -0
- package/dist/attack/observationLimits.js +16 -0
- package/dist/attack/observationLimits.js.map +1 -0
- package/dist/attack/policy.d.ts +1 -0
- package/dist/attack/policy.js +1 -0
- package/dist/attack/policy.js.map +1 -1
- package/dist/attack/probeRules.d.ts +51 -0
- package/dist/attack/probeRules.js +291 -0
- package/dist/attack/probeRules.js.map +1 -0
- package/dist/attack/protocol.d.ts +16 -0
- package/dist/attack/qualityMetrics.js +3 -0
- package/dist/attack/qualityMetrics.js.map +1 -1
- package/dist/attack/report.d.ts +3 -1
- package/dist/attack/report.js +4 -2
- package/dist/attack/report.js.map +1 -1
- package/dist/attack/runtimeProbe.d.ts +71 -0
- package/dist/attack/runtimeProbe.js +300 -0
- package/dist/attack/runtimeProbe.js.map +1 -0
- package/dist/attack/scanScheduler.d.ts +7 -0
- package/dist/attack/scanScheduler.js +58 -33
- package/dist/attack/scanScheduler.js.map +1 -1
- package/dist/attack/scanState.d.ts +1 -1
- package/dist/attack/scanState.js.map +1 -1
- package/dist/audit/findingReviewQueue.d.ts +1 -1
- package/dist/audit/findingReviewQueue.js.map +1 -1
- package/dist/auth/credentialStore.js +1 -1
- package/dist/auth/credentialStore.js.map +1 -1
- package/dist/auth/keychain.js +80 -80
- package/dist/auth/keychain.js.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.js +8 -9
- package/dist/mcp/tools.js.map +1 -1
- package/dist/project-map/architectureContext.d.ts +1 -1
- package/dist/project-map/architectureContext.js +1 -1
- package/dist/project-map/scanCache.d.ts +6 -1
- package/dist/project-map/scanCache.js +6 -1
- package/dist/project-map/scanCache.js.map +1 -1
- package/dist/tools/agentScan.d.ts +9 -1
- package/dist/tools/agentScan.js +160 -7
- package/dist/tools/agentScan.js.map +1 -1
- package/dist/tools/agentScanBatch.js +7 -1
- package/dist/tools/agentScanBatch.js.map +1 -1
- package/dist/tools/attack.js +1 -1
- package/dist/tools/attack.js.map +1 -1
- package/dist/tools/map.js +1 -1
- package/dist/utils/verificationSandbox.js +43 -2
- package/dist/utils/verificationSandbox.js.map +1 -1
- 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
|
|
255
|
-
*
|
|
256
|
-
*
|
|
257
|
-
*
|
|
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
|
-
//
|
|
276
|
-
//
|
|
277
|
-
//
|
|
278
|
-
|
|
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 ??
|
|
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 ??
|
|
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"}
|
package/dist/attack/policy.d.ts
CHANGED
package/dist/attack/policy.js
CHANGED
|
@@ -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":";;;
|
|
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;
|