@securecode-ai/mcp 0.6.1 → 0.8.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/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 +130 -94
- package/dist/attack/agentScanLoop.js.map +1 -1
- package/dist/attack/agentScanProtocol.d.ts +13 -4
- 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/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/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 +156 -5
- package/dist/tools/agentScan.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
package/README.md
CHANGED
|
@@ -117,14 +117,14 @@ claude mcp add securecode -s user -- securecode-mcp serve --workspace /path/to/y
|
|
|
117
117
|
|
|
118
118
|
| Tool | Description | Approval |
|
|
119
119
|
|------|-------------|----------|
|
|
120
|
-
| `securecode.
|
|
120
|
+
| `securecode.architecture` | Run the AI architecture scout: ranked important files, trust boundaries, security controls, recommended scan order (uses AI credits, cached per depth) | No |
|
|
121
121
|
|
|
122
122
|
### Fixes & Testing
|
|
123
123
|
|
|
124
124
|
| Tool | Description | Approval |
|
|
125
125
|
|------|-------------|----------|
|
|
126
126
|
| `securecode.fix` | Generate a patch for a specific finding | Yes |
|
|
127
|
-
| `securecode.attack` | Endpoint red-team testing (beta) | Yes |
|
|
127
|
+
| `securecode.attack` | Endpoint red-team testing (beta) with deterministic corroboration — findings arrive confirmed/refuted with rule citations, not just "suspected" | Yes |
|
|
128
128
|
| `securecode.run-tests` | Run tests in sandbox for verification | Yes |
|
|
129
129
|
|
|
130
130
|
### Agent Memory (FP Learning)
|
|
@@ -167,7 +167,8 @@ The agent scan (`securecode.agent-scan`) is an AI security investigator that:
|
|
|
167
167
|
6. **Self-critiques** before reporting (selfCritique field)
|
|
168
168
|
7. **Gets reviewed** by an independent critique LLM
|
|
169
169
|
8. **Proves** findings in a sandbox (PROVEN/UNPROVEN)
|
|
170
|
-
9. **
|
|
170
|
+
9. **Runtime-verifies** HTTP findings the sandbox can't reach — with your approval, executes baseline + attack requests against your local dev server to confirm real-world impact
|
|
171
|
+
10. **Generates fixes** for proven findings
|
|
171
172
|
|
|
172
173
|
Agent tools (20+): `read_file`, `search_code`, `trace_flow`, `trace_flow_cross_file`, `check_guard`, `check_policy`, `get_endpoints`, `list_imports`, `list_files`, `call_graph`, `git_blame`, `git_history`, `git_diff`, `check_dependencies`, `read_config`, `find_definition`, `find_references`, `find_tests`, `run_tests`, `finish`.
|
|
173
174
|
|
|
@@ -179,6 +180,32 @@ The deterministic control plane enforces proof quality:
|
|
|
179
180
|
|
|
180
181
|
Languages: JavaScript, TypeScript, Python (partial).
|
|
181
182
|
|
|
183
|
+
## Runtime Verification
|
|
184
|
+
|
|
185
|
+
Some findings can't be proven in a sandbox — auth bypasses, runtime-dependent behavior, effects that only manifest in a live server. When an agent scan produces an HTTP-shaped finding that the sandbox couldn't prove, SecureCode can verify it against your **local dev server**:
|
|
186
|
+
|
|
187
|
+
1. The agent generates a minimal probe plan (a baseline request + attack requests) grounded in its attack library
|
|
188
|
+
2. You approve the probe once per scan (60-second approval window — silently skipped if you don't respond)
|
|
189
|
+
3. SecureCode executes the plan against `127.0.0.1:<port>` and maps the outcome to a deterministic verdict
|
|
190
|
+
|
|
191
|
+
Confirmed probes upgrade the finding to **impact-confirmed** with live response evidence.
|
|
192
|
+
|
|
193
|
+
**Safety rails:**
|
|
194
|
+
- Localhost only — no external traffic, ever
|
|
195
|
+
- Unauthenticated endpoints only; auth headers (`Authorization`, cookies, API keys) are stripped from generated plans
|
|
196
|
+
- Relative paths only, whitelisted methods, read-only payloads
|
|
197
|
+
- Max 8 requests per finding, max 3 probed findings per scan (severity-ordered)
|
|
198
|
+
- Plan credits are refunded if no probe can run
|
|
199
|
+
|
|
200
|
+
**Dev server discovery** (first match wins):
|
|
201
|
+
1. `SECURECODE_DEV_SERVER_PORT` environment variable
|
|
202
|
+
2. `.securecode/runtime-probe.json` in the workspace root: `{ "port": 3000 }`
|
|
203
|
+
3. Auto-detect across common dev ports (3000, 3001, 4000, 5173, 5174, 8000, 8080)
|
|
204
|
+
|
|
205
|
+
Disable entirely with `SECURECODE_DISABLE_RUNTIME_PROBE=1`.
|
|
206
|
+
|
|
207
|
+
> Note: probes currently fire for findings on endpoints the project map can detect (Express/Fastify-style routes). Support for other frameworks is on the roadmap.
|
|
208
|
+
|
|
182
209
|
## Environment Variables
|
|
183
210
|
|
|
184
211
|
| Variable | Default | Description |
|
|
@@ -186,6 +213,8 @@ Languages: JavaScript, TypeScript, Python (partial).
|
|
|
186
213
|
| `SECURECODE_API_TOKEN` | — | API token (alternative to login) |
|
|
187
214
|
| `SECURECODE_API_URL` | `https://api.usesecurecode.tech` | API base URL |
|
|
188
215
|
| `SECURECODE_ATTACK_ENABLED` | — | Set to `1` to enable the attack tool |
|
|
216
|
+
| `SECURECODE_DEV_SERVER_PORT` | auto | Local dev server port for runtime verification |
|
|
217
|
+
| `SECURECODE_DISABLE_RUNTIME_PROBE` | — | Set to `1` to disable runtime verification probes |
|
|
189
218
|
|
|
190
219
|
## Security
|
|
191
220
|
|
package/dist/api/types.d.ts
CHANGED
|
@@ -230,3 +230,30 @@ export interface VerifyAnalyzeResponse {
|
|
|
230
230
|
/** Dollar cost the API charged for this analyze call (credits → USD). */
|
|
231
231
|
costUsd?: number;
|
|
232
232
|
}
|
|
233
|
+
export interface VerifyProbePlanRequest {
|
|
234
|
+
finding: {
|
|
235
|
+
type: string;
|
|
236
|
+
line: number;
|
|
237
|
+
lineEnd?: number;
|
|
238
|
+
evidence: string;
|
|
239
|
+
why: string;
|
|
240
|
+
severity: string;
|
|
241
|
+
};
|
|
242
|
+
endpoint: {
|
|
243
|
+
method: string;
|
|
244
|
+
path: string;
|
|
245
|
+
mountedPath?: string;
|
|
246
|
+
params?: unknown[];
|
|
247
|
+
authScheme?: string;
|
|
248
|
+
middleware?: unknown[];
|
|
249
|
+
};
|
|
250
|
+
framework?: string;
|
|
251
|
+
devServerPort?: number;
|
|
252
|
+
}
|
|
253
|
+
export interface VerifyProbePlanResponse {
|
|
254
|
+
canProbe: boolean;
|
|
255
|
+
skipReason?: string;
|
|
256
|
+
plan: import('../attack/runtimeProbe').ProbePlan | null;
|
|
257
|
+
costUsd: number;
|
|
258
|
+
scanCredits: number;
|
|
259
|
+
}
|
package/dist/approval/policy.js
CHANGED
|
@@ -9,8 +9,8 @@ exports.TOOL_POLICIES = {
|
|
|
9
9
|
category: 'read-only',
|
|
10
10
|
requiresApproval: false,
|
|
11
11
|
},
|
|
12
|
-
'securecode.
|
|
13
|
-
name: 'securecode.
|
|
12
|
+
'securecode.architecture': {
|
|
13
|
+
name: 'securecode.architecture',
|
|
14
14
|
category: 'read-only',
|
|
15
15
|
requiresApproval: false,
|
|
16
16
|
},
|
|
@@ -93,6 +93,11 @@ exports.TOOL_POLICIES = {
|
|
|
93
93
|
requiresApproval: true,
|
|
94
94
|
approvalNote: 'Attack sends HTTP probes to a localhost server. Approval required. Currently disabled via SECURECODE_ATTACK_ENABLED.',
|
|
95
95
|
},
|
|
96
|
+
'securecode.runtime-probe': {
|
|
97
|
+
name: 'securecode.runtime-probe',
|
|
98
|
+
category: 'paid-generation',
|
|
99
|
+
requiresApproval: true,
|
|
100
|
+
},
|
|
96
101
|
};
|
|
97
102
|
function getToolPolicy(toolName) {
|
|
98
103
|
return exports.TOOL_POLICIES[toolName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/approval/policy.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/approval/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic finding corroboration — port of api/src/attacker/agentCorroboration.ts.
|
|
3
|
+
*
|
|
4
|
+
* assembleAgentFindings maps a finish action's findings onto the transcript and
|
|
5
|
+
* stamps each one via the full deterministic probe rules (probeRules.ts): a
|
|
6
|
+
* finding is only 'confirmed' when its cited step's observation satisfies the
|
|
7
|
+
* action's declared expect. corroborateStep keeps the API's per-step seam but
|
|
8
|
+
* is strengthened from the API's minimal rule-0 check to the full rule set.
|
|
9
|
+
*/
|
|
10
|
+
import type { AgentFinding, AgentTranscriptStep } from './protocol';
|
|
11
|
+
import { type ProbeRuleRequest, type ProbeRuleResponse, type ProbeRuleResult } from './probeRules';
|
|
12
|
+
import { type ReportedAgentFinding } from './report';
|
|
13
|
+
export declare function corroborateStep(attackReq: ProbeRuleRequest, attackResp: ProbeRuleResponse | null, baselineReq?: ProbeRuleRequest | null, baselineResp?: ProbeRuleResponse | null): ProbeRuleResult;
|
|
14
|
+
export declare function assembleAgentFindings(findings: AgentFinding[], transcript: AgentTranscriptStep[]): ReportedAgentFinding[];
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic finding corroboration — port of api/src/attacker/agentCorroboration.ts.
|
|
4
|
+
*
|
|
5
|
+
* assembleAgentFindings maps a finish action's findings onto the transcript and
|
|
6
|
+
* stamps each one via the full deterministic probe rules (probeRules.ts): a
|
|
7
|
+
* finding is only 'confirmed' when its cited step's observation satisfies the
|
|
8
|
+
* action's declared expect. corroborateStep keeps the API's per-step seam but
|
|
9
|
+
* is strengthened from the API's minimal rule-0 check to the full rule set.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.corroborateStep = corroborateStep;
|
|
13
|
+
exports.assembleAgentFindings = assembleAgentFindings;
|
|
14
|
+
const probeRules_1 = require("./probeRules");
|
|
15
|
+
const report_1 = require("./report");
|
|
16
|
+
const REFUTED_NOTE = 'Probe rules refuted the cited step — needs review';
|
|
17
|
+
function toRuleRequest(action) {
|
|
18
|
+
return {
|
|
19
|
+
method: action.method,
|
|
20
|
+
path: action.path,
|
|
21
|
+
headers: action.headers,
|
|
22
|
+
body: action.body,
|
|
23
|
+
successStatus: action.expect?.successStatus,
|
|
24
|
+
successBodyPattern: action.expect?.successBodyPattern,
|
|
25
|
+
successHeaders: action.expect?.successHeaders,
|
|
26
|
+
successLatencyMs: action.expect?.successLatencyMs,
|
|
27
|
+
successConfirmedBy: action.expect?.successConfirmedBy,
|
|
28
|
+
successEvidenceNeeded: action.expect?.successEvidenceNeeded,
|
|
29
|
+
expectedStatus: action.expect?.expectedStatus,
|
|
30
|
+
authRequired: action.expect?.authRequired,
|
|
31
|
+
authEnvVars: action.expect?.authEnvVars,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function toRuleResponse(observation) {
|
|
35
|
+
return {
|
|
36
|
+
statusCode: observation.statusCode,
|
|
37
|
+
headers: observation.headers,
|
|
38
|
+
body: observation.body,
|
|
39
|
+
latencyMs: observation.latencyMs,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function corroborateStep(attackReq, attackResp, baselineReq = null, baselineResp = null) {
|
|
43
|
+
return (0, probeRules_1.applyProbeRules)(attackReq, attackResp, baselineReq, baselineResp);
|
|
44
|
+
}
|
|
45
|
+
function baselinePair(evidenceStepIndex, transcript) {
|
|
46
|
+
if (evidenceStepIndex <= 0)
|
|
47
|
+
return null;
|
|
48
|
+
const first = transcript[0];
|
|
49
|
+
if (!first)
|
|
50
|
+
return null;
|
|
51
|
+
return {
|
|
52
|
+
req: toRuleRequest(first.action),
|
|
53
|
+
resp: first.observation.error ? null : toRuleResponse(first.observation),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function assembleAgentFindings(findings, transcript) {
|
|
57
|
+
return findings.map((finding) => {
|
|
58
|
+
const step = transcript[finding.evidenceStepIndex];
|
|
59
|
+
if (!step) {
|
|
60
|
+
return {
|
|
61
|
+
...finding,
|
|
62
|
+
confirmation: 'suspected',
|
|
63
|
+
reason: `Evidence step ${finding.evidenceStepIndex} missing`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (!step.action.expect) {
|
|
67
|
+
return {
|
|
68
|
+
...finding,
|
|
69
|
+
confirmation: 'suspected',
|
|
70
|
+
reason: report_1.SUSPECTED_FINDING_REASON,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const baseline = baselinePair(finding.evidenceStepIndex, transcript);
|
|
74
|
+
const result = corroborateStep(toRuleRequest(step.action), step.observation.error ? null : toRuleResponse(step.observation), baseline?.req ?? null, baseline?.resp ?? null);
|
|
75
|
+
if (result.verdict === 'confirmed-bypass') {
|
|
76
|
+
return {
|
|
77
|
+
...finding,
|
|
78
|
+
confirmation: 'confirmed',
|
|
79
|
+
rule: result.rule,
|
|
80
|
+
reason: result.reason,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (result.verdict === 'refuted') {
|
|
84
|
+
return {
|
|
85
|
+
...finding,
|
|
86
|
+
confirmation: 'suspected',
|
|
87
|
+
rule: result.rule,
|
|
88
|
+
reason: REFUTED_NOTE,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
...finding,
|
|
93
|
+
confirmation: 'suspected',
|
|
94
|
+
reason: report_1.SUSPECTED_FINDING_REASON,
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=agentCorroboration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentCorroboration.js","sourceRoot":"","sources":["../../src/attack/agentCorroboration.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAmCH,0CAOC;AAeD,sDAiDC;AAvGD,6CAAoH;AACpH,qCAA+E;AAE/E,MAAM,YAAY,GAAG,mDAAmD,CAAC;AAEzE,SAAS,aAAa,CAAC,MAA8B;IACjD,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa;QAC3C,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB;QACrD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc;QAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB;QACjD,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB;QACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB;QAC3D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc;QAC7C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY;QACzC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW;KAC1C,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAAC,WAA6B;IACjD,OAAO;QACH,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,SAAS,EAAE,WAAW,CAAC,SAAS;KACnC,CAAC;AACN,CAAC;AAED,SAAgB,eAAe,CAC3B,SAA2B,EAC3B,UAAoC,EACpC,cAAuC,IAAI,EAC3C,eAAyC,IAAI;IAE7C,OAAO,IAAA,4BAAe,EAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,YAAY,CACjB,iBAAyB,EACzB,UAAiC;IAEjC,IAAI,iBAAiB,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACH,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC;KAC3E,CAAC;AACN,CAAC;AAED,SAAgB,qBAAqB,CACjC,QAAwB,EACxB,UAAiC;IAEjC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,OAAO;gBACH,GAAG,OAAO;gBACV,YAAY,EAAE,WAAoB;gBAClC,MAAM,EAAE,iBAAiB,OAAO,CAAC,iBAAiB,UAAU;aAC/D,CAAC;QACN,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO;gBACH,GAAG,OAAO;gBACV,YAAY,EAAE,WAAoB;gBAClC,MAAM,EAAE,iCAAwB;aACnC,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,eAAe,CAC1B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAChE,QAAQ,EAAE,GAAG,IAAI,IAAI,EACrB,QAAQ,EAAE,IAAI,IAAI,IAAI,CACzB,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;YACxC,OAAO;gBACH,GAAG,OAAO;gBACV,YAAY,EAAE,WAAoB;gBAClC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;gBACH,GAAG,OAAO;gBACV,YAAY,EAAE,WAAoB;gBAClC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,YAAY;aACvB,CAAC;QACN,CAAC;QACD,OAAO;YACH,GAAG,OAAO;YACV,YAAY,EAAE,WAAoB;YAClC,MAAM,EAAE,iCAAwB;SACnC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/attack/agentLoop.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runAttack = runAttack;
|
|
4
4
|
const client_1 = require("../api/client");
|
|
5
|
+
const agentCorroboration_1 = require("./agentCorroboration");
|
|
5
6
|
const executor_1 = require("./executor");
|
|
6
7
|
const policy_1 = require("./policy");
|
|
7
8
|
const report_1 = require("./report");
|
|
@@ -72,18 +73,19 @@ async function runAttack(ctx, endpoint, code, language, options) {
|
|
|
72
73
|
runtimeConfirmed: false,
|
|
73
74
|
};
|
|
74
75
|
const transcript = [];
|
|
76
|
+
let costSpentUsd = 0;
|
|
75
77
|
while (true) {
|
|
76
78
|
const budgetCheck = (0, policy_1.checkBudget)(budget, state);
|
|
77
79
|
if (budgetCheck.exhausted) {
|
|
78
80
|
return {
|
|
79
81
|
status: 'capped',
|
|
80
|
-
report: (0, report_1.buildReport)('capped', [], transcript, stepsTaken,
|
|
82
|
+
report: (0, report_1.buildReport)('capped', [], transcript, stepsTaken, costSpentUsd, budgetCheck.reason),
|
|
81
83
|
};
|
|
82
84
|
}
|
|
83
85
|
if (options.signal?.aborted) {
|
|
84
86
|
return {
|
|
85
87
|
status: 'cancelled',
|
|
86
|
-
report: (0, report_1.buildReport)('cancelled', [], transcript, stepsTaken,
|
|
88
|
+
report: (0, report_1.buildReport)('cancelled', [], transcript, stepsTaken, costSpentUsd, 'Cancelled by user'),
|
|
87
89
|
};
|
|
88
90
|
}
|
|
89
91
|
const stepResp = await client.postJson('/attack/agent/step', {
|
|
@@ -94,14 +96,15 @@ async function runAttack(ctx, endpoint, code, language, options) {
|
|
|
94
96
|
transcript,
|
|
95
97
|
budget: {
|
|
96
98
|
stepsRemaining: budget.maxSteps - stepsTaken,
|
|
97
|
-
costSpentUsd
|
|
98
|
-
costCapUsd:
|
|
99
|
+
costSpentUsd,
|
|
100
|
+
costCapUsd: budget.costCapUsd,
|
|
99
101
|
},
|
|
100
102
|
});
|
|
103
|
+
costSpentUsd += stepResp.costUsd || 0;
|
|
101
104
|
if (!stepResp.next) {
|
|
102
105
|
return {
|
|
103
106
|
status: stepResp.costCapped ? 'capped' : (stepResp.degraded ? 'degraded' : 'completed'),
|
|
104
|
-
report: (0, report_1.buildReport)(stepResp.costCapped ? 'capped' : 'completed', [], transcript, stepsTaken,
|
|
107
|
+
report: (0, report_1.buildReport)(stepResp.costCapped ? 'capped' : 'completed', [], transcript, stepsTaken, costSpentUsd),
|
|
105
108
|
};
|
|
106
109
|
}
|
|
107
110
|
const action = stepResp.next;
|
|
@@ -110,7 +113,7 @@ async function runAttack(ctx, endpoint, code, language, options) {
|
|
|
110
113
|
if (action.type === 'finish') {
|
|
111
114
|
return {
|
|
112
115
|
status: 'completed',
|
|
113
|
-
report: (0, report_1.buildReport)('completed', action.findings || [], transcript, stepsTaken, stepResp.costUsd || 0, action.summary),
|
|
116
|
+
report: (0, report_1.buildReport)('completed', (0, agentCorroboration_1.assembleAgentFindings)(action.findings || [], transcript), transcript, stepsTaken, stepResp.costUsd || 0, action.summary),
|
|
114
117
|
};
|
|
115
118
|
}
|
|
116
119
|
if (action.type === 'http_request') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/attack/agentLoop.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"agentLoop.js","sourceRoot":"","sources":["../../src/attack/agentLoop.ts"],"names":[],"mappings":";;AAuBA,8BAmLC;AA1MD,0CAA0C;AAI1C,6DAA6D;AAC7D,yCAAgD;AAChD,qCAA0F;AAC1F,qCAAsE;AAgB/D,KAAK,UAAU,SAAS,CAC3B,GAAkB,EAClB,QAAmF,EACnF,IAAY,EACZ,QAAgB,EAChB,OAAsB;IAEtB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,EAAE,GAAG,uBAAc,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG;QACX,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,WAAW;QACvC,IAAI,EAAE,OAAO,CAAC,UAAU;QACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;KACtB,CAAC;IAEF,IAAA,uBAAc,EAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAEtD,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAe,OAAO,EAAE;YAC1D,IAAI;YACJ,QAAQ;YACR,QAAQ,EAAE,QAAQ,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC;YAC3G,CAAC,CAAC,QAAQ,CAAC,aAAa;YACxB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAEhC,MAAM,UAAU,GAAI,QAAkB,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC;YAClC,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;QAChG,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAQ,CAAC;QACrC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI;YAC5B,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI;YAC/B,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI;SACrD,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAc,MAAM,EAAE;YACvD,IAAI;YACJ,QAAQ;YACR,aAAa,EAAE;gBACX,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ;gBACtC,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC;gBAC/B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,UAAU,IAAI,CAAC;gBAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;aACnD;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC;QAC1F,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAqB,qBAAqB,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAE9B,MAAM,eAAe,GAAoB;YACrC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,CAAC;YACP,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,SAAS;YACpB,gBAAgB,EAAE,SAAS;YAC3B,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,KAAK;SAC1B,CAAC;QAEF,MAAM,UAAU,GAA0B,EAAE,CAAC;QAE7C,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBACxB,OAAO;oBACH,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,IAAA,oBAAW,EAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC;iBAC9F,CAAC;YACN,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC1B,OAAO;oBACH,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,IAAA,oBAAW,EAAC,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC;iBAClG,CAAC;YACN,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAoB,oBAAoB,EAAE;gBAC5E,KAAK;gBACL,eAAe;gBACf,QAAQ;gBACR,aAAa,EAAE,IAAI;gBACnB,UAAU;gBACV,MAAM,EAAE;oBACJ,cAAc,EAAE,MAAM,CAAC,QAAQ,GAAG,UAAU;oBAC5C,YAAY;oBACZ,UAAU,EAAE,MAAM,CAAC,UAAU;iBAChC;aACJ,CAAC,CAAC;YACH,YAAY,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;YAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO;oBACH,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;oBACvF,MAAM,EAAE,IAAA,oBAAW,EACf,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAC5C,EAAE,EACF,UAAU,EACV,UAAU,EACV,YAAY,CACf;iBACJ,CAAC;YACN,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC7B,UAAU,EAAE,CAAC;YACb,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;YAE9B,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO;oBACH,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,IAAA,oBAAW,EAAC,WAAW,EAAE,IAAA,0CAAqB,EAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;iBAC5J,CAAC;YACN,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC;gBACf,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;gBAElC,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAkB,EACrC;oBACI,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;iBACpB,EACD,MAAM,EACN,OAAO,CAAC,MAAM,CACjB,CAAC;gBAEF,UAAU,CAAC,IAAI,CAAC;oBACZ,MAAM;oBACN,WAAW,EAAE;wBACT,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,IAAI,EAAE,IAAA,mBAAU,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;wBAChD,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,KAAK,EAAE,QAAQ,CAAC,KAAK;qBACxB;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,OAAO;YACH,MAAM,EAAE,cAAc;YACtB,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;YACjC,MAAM,EAAE,IAAA,oBAAW,EAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;SAC1E,CAAC;IACN,CAAC;AACL,CAAC"}
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
import { ApiClient } from '../api/client';
|
|
10
10
|
import type { ServerContext } from '../mcp/types';
|
|
11
11
|
import type { AgentScanAction, AgentScanTarget, ReadFileObservation, StructuredFlowResult } from './agentScanProtocol';
|
|
12
|
-
export
|
|
13
|
-
export declare const LARGE_FILE_THRESHOLD = 300;
|
|
12
|
+
export { MAX_OBSERVATION_CHARS, LARGE_FILE_THRESHOLD } from './observationLimits';
|
|
14
13
|
export declare function truncate(text: string): string;
|
|
15
14
|
export declare function redact(text: string): string;
|
|
16
15
|
export declare function extractFunctionMap(content: string, relPath: string): Promise<string | null>;
|
|
@@ -36,6 +35,11 @@ export declare function extractFunctionBoundaries(content: string, relPath: stri
|
|
|
36
35
|
* and actualStart/actualEnd are 0 (no content lines delivered).
|
|
37
36
|
* 3. Small file with no startLine/endLine → full content returned,
|
|
38
37
|
* actualStart=1, actualEnd=totalLines, truncated=false.
|
|
38
|
+
* 4. Range (or small file) whose rendered content exceeds MAX_OBSERVATION_CHARS
|
|
39
|
+
* → the observation is cut at the last complete line that fits.
|
|
40
|
+
* `truncated === true` and actualEnd is the last DELIVERED line, not the
|
|
41
|
+
* requested end; the observation ends with a re-read note naming the
|
|
42
|
+
* undelivered remainder.
|
|
39
43
|
*/
|
|
40
44
|
export declare function executeReadFileAction(action: AgentScanAction, ctx: ServerContext): Promise<ReadFileObservation>;
|
|
41
45
|
export declare function executeAction(action: AgentScanAction, ctx: ServerContext, runId: string, client: ApiClient, target: AgentScanTarget): Promise<string>;
|
|
@@ -69,12 +69,53 @@ const symbolIndex_1 = require("../project-map/symbolIndex");
|
|
|
69
69
|
const findTests_1 = require("../project-map/findTests");
|
|
70
70
|
const testRunner_1 = require("../utils/testRunner");
|
|
71
71
|
const protocolValidator_1 = require("./protocolValidator");
|
|
72
|
-
|
|
73
|
-
exports.
|
|
72
|
+
var observationLimits_1 = require("./observationLimits");
|
|
73
|
+
Object.defineProperty(exports, "MAX_OBSERVATION_CHARS", { enumerable: true, get: function () { return observationLimits_1.MAX_OBSERVATION_CHARS; } });
|
|
74
|
+
Object.defineProperty(exports, "LARGE_FILE_THRESHOLD", { enumerable: true, get: function () { return observationLimits_1.LARGE_FILE_THRESHOLD; } });
|
|
75
|
+
const observationLimits_2 = require("./observationLimits");
|
|
74
76
|
function truncate(text) {
|
|
75
|
-
if (text.length <=
|
|
77
|
+
if (text.length <= observationLimits_2.MAX_OBSERVATION_CHARS)
|
|
76
78
|
return text;
|
|
77
|
-
return text.slice(0,
|
|
79
|
+
return text.slice(0, observationLimits_2.MAX_OBSERVATION_CHARS) + '\n… [truncated]';
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Render a numbered read observation that fits under MAX_OBSERVATION_CHARS,
|
|
83
|
+
* returning the last line actually delivered.
|
|
84
|
+
*
|
|
85
|
+
* When the requested range exceeds the char cap, the observation is cut at
|
|
86
|
+
* the last complete line that fits and ends with an explicit re-read note
|
|
87
|
+
* naming the undelivered remainder. The loop records coverage for the
|
|
88
|
+
* delivered range only (actualStart..deliveredEnd), so the cut-off tail
|
|
89
|
+
* stays re-readable instead of being silently marked as covered.
|
|
90
|
+
*/
|
|
91
|
+
function renderNumberedRead(header, allLines, start, end) {
|
|
92
|
+
// Reserve room for the re-read note appended when the range is cut.
|
|
93
|
+
const budget = observationLimits_2.MAX_OBSERVATION_CHARS - 120;
|
|
94
|
+
const parts = [];
|
|
95
|
+
let used = header.length + 2;
|
|
96
|
+
let deliveredEnd = start - 1;
|
|
97
|
+
let truncated = false;
|
|
98
|
+
for (let line = start; line <= end; line++) {
|
|
99
|
+
const rendered = `${line}: ${(0, report_1.redactText)(allLines[line - 1])}`;
|
|
100
|
+
const cost = rendered.length + (parts.length > 0 ? 1 : 0);
|
|
101
|
+
if (parts.length > 0 && used + cost > budget) {
|
|
102
|
+
truncated = true;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
parts.push(rendered);
|
|
106
|
+
used += cost;
|
|
107
|
+
deliveredEnd = line;
|
|
108
|
+
}
|
|
109
|
+
let observation = `${header}\n\n${parts.join('\n')}`;
|
|
110
|
+
if (truncated && deliveredEnd < end) {
|
|
111
|
+
observation += `\n\n[truncated at line ${deliveredEnd} — re-read lines ${deliveredEnd + 1}..${end} for the rest]`;
|
|
112
|
+
}
|
|
113
|
+
// Safety net for pathological single lines longer than the whole cap.
|
|
114
|
+
if (observation.length > observationLimits_2.MAX_OBSERVATION_CHARS) {
|
|
115
|
+
observation = truncate(observation);
|
|
116
|
+
truncated = true;
|
|
117
|
+
}
|
|
118
|
+
return { observation, deliveredEnd, truncated };
|
|
78
119
|
}
|
|
79
120
|
function redact(text) {
|
|
80
121
|
return truncate((0, report_1.redactText)(text));
|
|
@@ -202,6 +243,11 @@ async function extractFunctionBoundaries(content, relPath) {
|
|
|
202
243
|
* and actualStart/actualEnd are 0 (no content lines delivered).
|
|
203
244
|
* 3. Small file with no startLine/endLine → full content returned,
|
|
204
245
|
* actualStart=1, actualEnd=totalLines, truncated=false.
|
|
246
|
+
* 4. Range (or small file) whose rendered content exceeds MAX_OBSERVATION_CHARS
|
|
247
|
+
* → the observation is cut at the last complete line that fits.
|
|
248
|
+
* `truncated === true` and actualEnd is the last DELIVERED line, not the
|
|
249
|
+
* requested end; the observation ends with a re-read note naming the
|
|
250
|
+
* undelivered remainder.
|
|
205
251
|
*/
|
|
206
252
|
async function executeReadFileAction(action, ctx) {
|
|
207
253
|
try {
|
|
@@ -216,20 +262,17 @@ async function executeReadFileAction(action, ctx) {
|
|
|
216
262
|
if (startLine || endLine) {
|
|
217
263
|
const start = Math.max(1, startLine || 1);
|
|
218
264
|
const end = Math.min(totalLines, endLine || totalLines);
|
|
219
|
-
const
|
|
220
|
-
.map((line, i) => `${start + i}: ${line}`)
|
|
221
|
-
.join('\n');
|
|
222
|
-
const observation = redact(`File: ${rel} (lines ${start}-${end} of ${totalLines})\n\n${section}`);
|
|
265
|
+
const rendered = renderNumberedRead(`File: ${rel} (lines ${start}-${end} of ${totalLines})`, allLines, start, end);
|
|
223
266
|
return {
|
|
224
|
-
observation,
|
|
267
|
+
observation: rendered.observation,
|
|
225
268
|
actualStart: start,
|
|
226
|
-
actualEnd:
|
|
269
|
+
actualEnd: rendered.deliveredEnd,
|
|
227
270
|
totalLines,
|
|
228
|
-
truncated:
|
|
271
|
+
truncated: rendered.truncated,
|
|
229
272
|
};
|
|
230
273
|
}
|
|
231
274
|
// Case 2: large file, no range → function map (not raw content)
|
|
232
|
-
if (totalLines >
|
|
275
|
+
if (totalLines > observationLimits_2.LARGE_FILE_THRESHOLD) {
|
|
233
276
|
const funcMap = await extractFunctionMap(content, rel);
|
|
234
277
|
if (funcMap) {
|
|
235
278
|
const observation = redact(`File: ${rel} (${totalLines} lines — LARGE FILE)\n\nThis file is too large to show in full. Here is a function map. Use read_file with startLine/endLine to read specific sections.\n\n${funcMap}`);
|
|
@@ -242,17 +285,15 @@ async function executeReadFileAction(action, ctx) {
|
|
|
242
285
|
};
|
|
243
286
|
}
|
|
244
287
|
}
|
|
245
|
-
// Case 3: small file, no range → full content
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
.join('\n');
|
|
249
|
-
const observation = redact(`File: ${rel} (${totalLines} lines)\n\n${numbered}`);
|
|
288
|
+
// Case 3: small file, no range → full content (may still be cut at
|
|
289
|
+
// the char cap on dense files — same delivered-range reporting)
|
|
290
|
+
const rendered = renderNumberedRead(`File: ${rel} (${totalLines} lines)`, allLines, 1, totalLines);
|
|
250
291
|
return {
|
|
251
|
-
observation,
|
|
292
|
+
observation: rendered.observation,
|
|
252
293
|
actualStart: 1,
|
|
253
|
-
actualEnd:
|
|
294
|
+
actualEnd: rendered.deliveredEnd,
|
|
254
295
|
totalLines,
|
|
255
|
-
truncated:
|
|
296
|
+
truncated: rendered.truncated,
|
|
256
297
|
};
|
|
257
298
|
}
|
|
258
299
|
catch (e) {
|
|
@@ -664,7 +705,7 @@ async function executeFlowAction(action, ctx, runId, client, target) {
|
|
|
664
705
|
.join('\n');
|
|
665
706
|
return `${r.source} (${r.sourceFile}:${r.sourceLine}) → ${r.sink} (${r.sinkFile}:${r.sinkLine}) [${r.canonicalType}]\n${path}`;
|
|
666
707
|
}).join('\n\n');
|
|
667
|
-
const truncated = formatted.length >
|
|
708
|
+
const truncated = formatted.length > observationLimits_2.MAX_OBSERVATION_CHARS;
|
|
668
709
|
return {
|
|
669
710
|
observation: redact(formatted),
|
|
670
711
|
flowResult: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentScanExecutor.js","sourceRoot":"","sources":["../../src/attack/agentScanExecutor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentScanExecutor.js","sourceRoot":"","sources":["../../src/attack/agentScanExecutor.ts"],"names":[],"mappings":"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"}
|