@securecode-ai/mcp 0.5.8 → 0.6.1

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 (45) hide show
  1. package/README.md +2 -1
  2. package/dist/api/client.d.ts +11 -1
  3. package/dist/api/client.js +93 -8
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/types.d.ts +24 -0
  6. package/dist/approval/policy.js +5 -0
  7. package/dist/approval/policy.js.map +1 -1
  8. package/dist/attack/agentScanBatchProtocol.d.ts +98 -0
  9. package/dist/attack/agentScanBatchProtocol.js +125 -0
  10. package/dist/attack/agentScanBatchProtocol.js.map +1 -0
  11. package/dist/attack/agentScanBatchSelection.d.ts +38 -0
  12. package/dist/attack/agentScanBatchSelection.js +167 -0
  13. package/dist/attack/agentScanBatchSelection.js.map +1 -0
  14. package/dist/attack/agentScanCoordinator.d.ts +33 -0
  15. package/dist/attack/agentScanCoordinator.js +116 -0
  16. package/dist/attack/agentScanCoordinator.js.map +1 -0
  17. package/dist/attack/agentScanCreditPlan.d.ts +40 -0
  18. package/dist/attack/agentScanCreditPlan.js +50 -0
  19. package/dist/attack/agentScanCreditPlan.js.map +1 -0
  20. package/dist/attack/agentScanLoop.js +205 -111
  21. package/dist/attack/agentScanLoop.js.map +1 -1
  22. package/dist/attack/agentScanProtocol.d.ts +2 -2
  23. package/dist/attack/agentScanProtocol.js.map +1 -1
  24. package/dist/attack/investigationState.d.ts +1 -0
  25. package/dist/attack/investigationState.js +20 -7
  26. package/dist/attack/investigationState.js.map +1 -1
  27. package/dist/attack/scanScheduler.d.ts +5 -0
  28. package/dist/attack/scanScheduler.js +37 -2
  29. package/dist/attack/scanScheduler.js.map +1 -1
  30. package/dist/attack/scanState.d.ts +6 -0
  31. package/dist/attack/scanState.js +5 -0
  32. package/dist/attack/scanState.js.map +1 -1
  33. package/dist/mcp/server.js +2 -0
  34. package/dist/mcp/server.js.map +1 -1
  35. package/dist/mcp/tools.js +35 -0
  36. package/dist/mcp/tools.js.map +1 -1
  37. package/dist/project-map/scanCache.d.ts +4 -1
  38. package/dist/project-map/scanCache.js +15 -0
  39. package/dist/project-map/scanCache.js.map +1 -1
  40. package/dist/tools/agentScan.js +10 -1
  41. package/dist/tools/agentScan.js.map +1 -1
  42. package/dist/tools/agentScanBatch.d.ts +18 -0
  43. package/dist/tools/agentScanBatch.js +178 -0
  44. package/dist/tools/agentScanBatch.js.map +1 -0
  45. package/package.json +1 -1
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ /**
3
+ * securecode.agent-scan-batch MCP tool — sequential batch agent scanning.
4
+ *
5
+ * Maps the project, runs architecture scout, selects the top N
6
+ * security-relevant files, and scans them ONE AT A TIME. Stops after
7
+ * the first incomplete or failed scan and reports remaining files
8
+ * as not-started.
9
+ *
10
+ * Rules:
11
+ * - Scans are strictly sequential (for...of + await, never Promise.all).
12
+ * - _skipFix is always true (no fix generation in batch mode).
13
+ * - Stops on incomplete, failed, cancelled, or thrown errors.
14
+ * - Does NOT stop merely because a completed scan has findings.
15
+ * - Does NOT include full transcripts in batch output.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.toolAgentScanBatch = toolAgentScanBatch;
19
+ const map_1 = require("./map");
20
+ const agentScan_1 = require("./agentScan");
21
+ const client_1 = require("../api/client");
22
+ const agentScanBatchSelection_1 = require("../attack/agentScanBatchSelection");
23
+ const agentScanCreditPlan_1 = require("../attack/agentScanCreditPlan");
24
+ const agentScanCoordinator_1 = require("../attack/agentScanCoordinator");
25
+ const agentScanBatchProtocol_1 = require("../attack/agentScanBatchProtocol");
26
+ async function toolAgentScanBatch(ctx, args) {
27
+ return agentScanCoordinator_1.globalScanCoordinator.runExclusive(ctx.workspaceRoot, () => toolAgentScanBatchInner(ctx, args), {
28
+ signal: args._signal,
29
+ });
30
+ }
31
+ async function toolAgentScanBatchInner(ctx, args) {
32
+ const progress = args._progress;
33
+ const signal = args._signal;
34
+ const topN = args.topN ?? 3;
35
+ const architectureDepth = args.architectureDepth ?? 'standard';
36
+ const fileSelection = args.fileSelection ?? 'recommendedScanOrder';
37
+ const noCache = !!args.noCache;
38
+ const stopOnIncomplete = args.stopOnIncomplete !== false;
39
+ const stopOnFailure = args.stopOnFailure !== false;
40
+ if (progress)
41
+ progress(0, 3, 'Mapping project + running architecture scout...');
42
+ let architecture = null;
43
+ let archCached = false;
44
+ try {
45
+ const archResult = await (0, map_1.toolMap)(ctx, {
46
+ action: 'architecture',
47
+ depth: architectureDepth,
48
+ _noCache: noCache,
49
+ _signal: signal,
50
+ _progress: progress ? (p, t, m) => {
51
+ progress(Math.min(p, 1), 3, `Architecture: ${m}`);
52
+ } : undefined,
53
+ });
54
+ architecture = archResult.architecture ?? null;
55
+ archCached = archResult.cached === true;
56
+ if (!architecture) {
57
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('architecture-failed', topN, [], []);
58
+ }
59
+ if (architecture.completeness === 'failed') {
60
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('architecture-incomplete', topN, [], []);
61
+ }
62
+ }
63
+ catch (err) {
64
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('architecture-failed', topN, [], []);
65
+ }
66
+ if (signal?.aborted) {
67
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('cancelled', topN, [], []);
68
+ }
69
+ if (progress)
70
+ progress(1, 3, 'Selecting files for sequential scanning...');
71
+ const selection = (0, agentScanBatchSelection_1.selectAgentScanBatchFiles)(ctx.workspaceRoot, architecture, {
72
+ topN,
73
+ fileSelection,
74
+ });
75
+ if (selection.selected.length === 0) {
76
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('completed', topN, [], []);
77
+ }
78
+ const selectedFiles = selection.selected.map(f => f.filePath);
79
+ if (progress)
80
+ progress(2, 3, `Preflight credit check for ${selectedFiles.length} file(s)...`);
81
+ const creditPlan = (0, agentScanCreditPlan_1.calculateBatchCredits)({
82
+ depth: architectureDepth,
83
+ architectureCacheHit: archCached,
84
+ uncachedFileCount: selection.selected.length,
85
+ cachedFileCount: 0,
86
+ });
87
+ try {
88
+ const client = new client_1.ApiClient({ baseUrl: ctx.apiUrl, token: ctx.apiToken });
89
+ const balance = await client.getJson('/credits/balance', signal);
90
+ if (balance.scanCredits < creditPlan.total) {
91
+ if (progress)
92
+ progress(3, 3, `Insufficient credits: have ${balance.scanCredits}, need ${creditPlan.total}.`);
93
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('insufficient-credits', topN, selectedFiles, selection.selected.map((f, i) => (0, agentScanBatchProtocol_1.buildNotStartedFileResult)(f.filePath, f.rank, f.role, f.importance)));
94
+ }
95
+ }
96
+ catch (err) {
97
+ if (signal?.aborted) {
98
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)('cancelled', topN, [], []);
99
+ }
100
+ }
101
+ const fileResults = [];
102
+ let stopReason = 'completed';
103
+ let shouldStop = false;
104
+ for (const file of selection.selected) {
105
+ if (shouldStop) {
106
+ fileResults.push((0, agentScanBatchProtocol_1.buildNotStartedFileResult)(file.filePath, file.rank, file.role, file.importance));
107
+ continue;
108
+ }
109
+ if (signal?.aborted) {
110
+ fileResults.push((0, agentScanBatchProtocol_1.buildNotStartedFileResult)(file.filePath, file.rank, file.role, file.importance));
111
+ stopReason = 'cancelled';
112
+ shouldStop = true;
113
+ continue;
114
+ }
115
+ if (progress) {
116
+ progress(file.rank, selection.selected.length, `Scanning ${file.filePath} (${file.rank}/${selection.selected.length})...`);
117
+ }
118
+ try {
119
+ const scanResult = await (0, agentScan_1.toolAgentScan)(ctx, {
120
+ filePath: file.filePath,
121
+ _skipFix: true,
122
+ _skipCoordinator: true,
123
+ _noCache: noCache,
124
+ _signal: signal,
125
+ _progress: progress ? (p, t, m) => {
126
+ progress(file.rank, selection.selected.length, `${file.filePath}: ${m}`);
127
+ } : undefined,
128
+ });
129
+ const batchFile = (0, agentScanBatchProtocol_1.buildBatchFileResult)(file.filePath, file.rank, file.role, file.importance, {
130
+ status: scanResult.status,
131
+ findings: scanResult.agentFindings || [],
132
+ investigationNotes: scanResult.investigationNotes || [],
133
+ coverageGaps: scanResult.coverageGaps || [],
134
+ stepsUsed: scanResult.stepsUsed,
135
+ stepsGranted: 40,
136
+ extensionsGranted: 0,
137
+ costSpentUsd: scanResult.costSpentUsd,
138
+ transcript: [],
139
+ terminationReason: scanResult.terminationReason,
140
+ error: scanResult.error,
141
+ }, scanResult.cached);
142
+ fileResults.push(batchFile);
143
+ if (batchFile.status === 'incomplete' && stopOnIncomplete) {
144
+ stopReason = 'scan-incomplete';
145
+ shouldStop = true;
146
+ }
147
+ else if (batchFile.status === 'failed' && stopOnFailure) {
148
+ stopReason = 'scan-failed';
149
+ shouldStop = true;
150
+ }
151
+ }
152
+ catch (err) {
153
+ const batchFile = {
154
+ filePath: file.filePath,
155
+ rank: file.rank,
156
+ role: file.role,
157
+ importance: file.importance,
158
+ status: 'failed',
159
+ findings: [],
160
+ investigationNotes: [],
161
+ coverageGaps: [],
162
+ stepsUsed: 0,
163
+ costSpentUsd: 0,
164
+ error: { message: err?.message || String(err) },
165
+ };
166
+ fileResults.push(batchFile);
167
+ if (stopOnFailure) {
168
+ stopReason = 'scan-failed';
169
+ shouldStop = true;
170
+ }
171
+ }
172
+ }
173
+ if (progress && !shouldStop) {
174
+ progress(selection.selected.length, selection.selected.length, 'Batch complete.');
175
+ }
176
+ return (0, agentScanBatchProtocol_1.aggregateBatchResult)(stopReason, topN, selectedFiles, fileResults);
177
+ }
178
+ //# sourceMappingURL=agentScanBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentScanBatch.js","sourceRoot":"","sources":["../../src/tools/agentScanBatch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@securecode-ai/mcp",
3
- "version": "0.5.8",
3
+ "version": "0.6.1",
4
4
  "description": "Standalone SecureCode MCP server — scan, map, fix, and attack tools for AI coding assistants. Works without the VS Code extension.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {