@securecode-ai/mcp 0.5.4 → 0.5.6

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 (188) hide show
  1. package/dist/api/types.d.ts +7 -0
  2. package/dist/approval/auditLog.d.ts +1 -1
  3. package/dist/approval/auditLog.js +11 -3
  4. package/dist/approval/auditLog.js.map +1 -1
  5. package/dist/approval/broker.d.ts +7 -2
  6. package/dist/approval/broker.js +239 -110
  7. package/dist/approval/broker.js.map +1 -1
  8. package/dist/approval/policy.d.ts +10 -0
  9. package/dist/approval/policy.js +104 -0
  10. package/dist/approval/policy.js.map +1 -0
  11. package/dist/approval/types.d.ts +11 -2
  12. package/dist/approval/types.js +10 -1
  13. package/dist/approval/types.js.map +1 -1
  14. package/dist/attack/agentScanExecutor.d.ts +35 -1
  15. package/dist/attack/agentScanExecutor.js +405 -76
  16. package/dist/attack/agentScanExecutor.js.map +1 -1
  17. package/dist/attack/agentScanLoop.d.ts +20 -0
  18. package/dist/attack/agentScanLoop.js +1264 -60
  19. package/dist/attack/agentScanLoop.js.map +1 -1
  20. package/dist/attack/agentScanProtocol.d.ts +382 -6
  21. package/dist/attack/agentScanProtocol.js +110 -4
  22. package/dist/attack/agentScanProtocol.js.map +1 -1
  23. package/dist/attack/agentTrace.d.ts +73 -0
  24. package/dist/attack/agentTrace.js +228 -0
  25. package/dist/attack/agentTrace.js.map +1 -0
  26. package/dist/attack/architectureScoutExecutor.d.ts +18 -0
  27. package/dist/attack/architectureScoutExecutor.js +211 -0
  28. package/dist/attack/architectureScoutExecutor.js.map +1 -0
  29. package/dist/attack/architectureScoutLoop.d.ts +36 -0
  30. package/dist/attack/architectureScoutLoop.js +403 -0
  31. package/dist/attack/architectureScoutLoop.js.map +1 -0
  32. package/dist/attack/architectureScoutProtocol.d.ts +209 -0
  33. package/dist/attack/architectureScoutProtocol.js +47 -0
  34. package/dist/attack/architectureScoutProtocol.js.map +1 -0
  35. package/dist/attack/candidateStore.d.ts +95 -0
  36. package/dist/attack/candidateStore.js +231 -0
  37. package/dist/attack/candidateStore.js.map +1 -0
  38. package/dist/attack/evidenceLedger.d.ts +67 -0
  39. package/dist/attack/evidenceLedger.js +192 -0
  40. package/dist/attack/evidenceLedger.js.map +1 -0
  41. package/dist/attack/finishGate.d.ts +62 -0
  42. package/dist/attack/finishGate.js +209 -0
  43. package/dist/attack/finishGate.js.map +1 -0
  44. package/dist/attack/fixCodeMerge.d.ts +27 -0
  45. package/dist/attack/fixCodeMerge.js +42 -0
  46. package/dist/attack/fixCodeMerge.js.map +1 -0
  47. package/dist/attack/fixVerifyLoop.d.ts +55 -0
  48. package/dist/attack/fixVerifyLoop.js +187 -0
  49. package/dist/attack/fixVerifyLoop.js.map +1 -0
  50. package/dist/attack/investigationProfiles.d.ts +36 -0
  51. package/dist/attack/investigationProfiles.js +144 -0
  52. package/dist/attack/investigationProfiles.js.map +1 -0
  53. package/dist/attack/investigationState.d.ts +227 -0
  54. package/dist/attack/investigationState.js +666 -0
  55. package/dist/attack/investigationState.js.map +1 -0
  56. package/dist/attack/mutationOperators.d.ts +22 -0
  57. package/dist/attack/mutationOperators.js +170 -0
  58. package/dist/attack/mutationOperators.js.map +1 -0
  59. package/dist/attack/mutationTest.d.ts +33 -0
  60. package/dist/attack/mutationTest.js +110 -0
  61. package/dist/attack/mutationTest.js.map +1 -0
  62. package/dist/attack/proofGate.d.ts +20 -0
  63. package/dist/attack/proofGate.js +104 -0
  64. package/dist/attack/proofGate.js.map +1 -0
  65. package/dist/attack/proofTypes.d.ts +57 -0
  66. package/dist/attack/proofTypes.js +32 -0
  67. package/dist/attack/proofTypes.js.map +1 -0
  68. package/dist/attack/protocolValidator.d.ts +50 -0
  69. package/dist/attack/protocolValidator.js +427 -0
  70. package/dist/attack/protocolValidator.js.map +1 -0
  71. package/dist/attack/qualityMetrics.d.ts +133 -0
  72. package/dist/attack/qualityMetrics.js +226 -0
  73. package/dist/attack/qualityMetrics.js.map +1 -0
  74. package/dist/attack/scanScheduler.d.ts +52 -0
  75. package/dist/attack/scanScheduler.js +265 -0
  76. package/dist/attack/scanScheduler.js.map +1 -0
  77. package/dist/attack/scanState.d.ts +58 -0
  78. package/dist/attack/scanState.js +102 -0
  79. package/dist/attack/scanState.js.map +1 -0
  80. package/dist/attack/searchIntent.d.ts +16 -0
  81. package/dist/attack/searchIntent.js +57 -0
  82. package/dist/attack/searchIntent.js.map +1 -0
  83. package/dist/attack/verifyLoop.d.ts +43 -0
  84. package/dist/attack/verifyLoop.js +329 -15
  85. package/dist/attack/verifyLoop.js.map +1 -1
  86. package/dist/attack/workItem.d.ts +57 -0
  87. package/dist/attack/workItem.js +225 -0
  88. package/dist/attack/workItem.js.map +1 -0
  89. package/dist/audit/findingReviewQueue.d.ts +109 -0
  90. package/dist/audit/findingReviewQueue.js +335 -0
  91. package/dist/audit/findingReviewQueue.js.map +1 -0
  92. package/dist/audit/scanAuditLog.d.ts +160 -0
  93. package/dist/audit/scanAuditLog.js +404 -0
  94. package/dist/audit/scanAuditLog.js.map +1 -0
  95. package/dist/dependency/dependencyChecker.js +35 -9
  96. package/dist/dependency/dependencyChecker.js.map +1 -1
  97. package/dist/dependency/exploitPriority.d.ts +33 -0
  98. package/dist/dependency/exploitPriority.js +78 -0
  99. package/dist/dependency/exploitPriority.js.map +1 -0
  100. package/dist/dependency/finding.d.ts +16 -0
  101. package/dist/dependency/osvClient.js +2 -0
  102. package/dist/dependency/osvClient.js.map +1 -1
  103. package/dist/dependency/types.d.ts +12 -1
  104. package/dist/mcp/server.js +13 -2
  105. package/dist/mcp/server.js.map +1 -1
  106. package/dist/mcp/tools.d.ts +1 -0
  107. package/dist/mcp/tools.js +127 -6
  108. package/dist/mcp/tools.js.map +1 -1
  109. package/dist/project-map/agentMemory.d.ts +83 -1
  110. package/dist/project-map/agentMemory.js +197 -7
  111. package/dist/project-map/agentMemory.js.map +1 -1
  112. package/dist/project-map/architectureContext.d.ts +202 -0
  113. package/dist/project-map/architectureContext.js +421 -0
  114. package/dist/project-map/architectureContext.js.map +1 -0
  115. package/dist/project-map/blastRadius.d.ts +54 -0
  116. package/dist/project-map/blastRadius.js +196 -0
  117. package/dist/project-map/blastRadius.js.map +1 -0
  118. package/dist/project-map/callGraphExtractor.d.ts +13 -0
  119. package/dist/project-map/callGraphExtractor.js +222 -0
  120. package/dist/project-map/callGraphExtractor.js.map +1 -0
  121. package/dist/project-map/capabilityRegistry.d.ts +46 -0
  122. package/dist/project-map/capabilityRegistry.js +91 -0
  123. package/dist/project-map/capabilityRegistry.js.map +1 -0
  124. package/dist/project-map/findTests.d.ts +29 -0
  125. package/dist/project-map/findTests.js +236 -0
  126. package/dist/project-map/findTests.js.map +1 -0
  127. package/dist/project-map/handlerInventory.d.ts +112 -0
  128. package/dist/project-map/handlerInventory.js +184 -0
  129. package/dist/project-map/handlerInventory.js.map +1 -0
  130. package/dist/project-map/implementationResolver.d.ts +43 -0
  131. package/dist/project-map/implementationResolver.js +217 -0
  132. package/dist/project-map/implementationResolver.js.map +1 -0
  133. package/dist/project-map/mapContext.d.ts +6 -1
  134. package/dist/project-map/mapContext.js +1 -0
  135. package/dist/project-map/mapContext.js.map +1 -1
  136. package/dist/project-map/scanCache.d.ts +57 -3
  137. package/dist/project-map/scanCache.js +61 -2
  138. package/dist/project-map/scanCache.js.map +1 -1
  139. package/dist/project-map/symbolIndex.d.ts +39 -0
  140. package/dist/project-map/symbolIndex.js +385 -0
  141. package/dist/project-map/symbolIndex.js.map +1 -0
  142. package/dist/tooling/agentEvalScoring.d.ts +77 -0
  143. package/dist/tooling/agentEvalScoring.js +140 -0
  144. package/dist/tooling/agentEvalScoring.js.map +1 -0
  145. package/dist/tooling/agentRegression.d.ts +53 -0
  146. package/dist/tooling/agentRegression.js +99 -0
  147. package/dist/tooling/agentRegression.js.map +1 -0
  148. package/dist/tools/agentScan.d.ts +69 -0
  149. package/dist/tools/agentScan.js +702 -43
  150. package/dist/tools/agentScan.js.map +1 -1
  151. package/dist/tools/findingReviewTools.d.ts +22 -0
  152. package/dist/tools/findingReviewTools.js +121 -0
  153. package/dist/tools/findingReviewTools.js.map +1 -0
  154. package/dist/tools/fix.js +1 -1
  155. package/dist/tools/fix.js.map +1 -1
  156. package/dist/tools/map.js +191 -1
  157. package/dist/tools/map.js.map +1 -1
  158. package/dist/tools/runTests.d.ts +2 -0
  159. package/dist/tools/runTests.js +29 -0
  160. package/dist/tools/runTests.js.map +1 -0
  161. package/dist/utils/effectMock.d.ts +1 -0
  162. package/dist/utils/effectMock.js +162 -0
  163. package/dist/utils/effectMock.js.map +1 -0
  164. package/dist/utils/gitContext.d.ts +26 -0
  165. package/dist/utils/gitContext.js +317 -0
  166. package/dist/utils/gitContext.js.map +1 -0
  167. package/dist/utils/localTestRunner.d.ts +57 -2
  168. package/dist/utils/localTestRunner.js +122 -101
  169. package/dist/utils/localTestRunner.js.map +1 -1
  170. package/dist/utils/runtimeDetect.d.ts +12 -2
  171. package/dist/utils/runtimeDetect.js +247 -10
  172. package/dist/utils/runtimeDetect.js.map +1 -1
  173. package/dist/utils/securityConfig.d.ts +17 -0
  174. package/dist/utils/securityConfig.js +192 -0
  175. package/dist/utils/securityConfig.js.map +1 -0
  176. package/dist/utils/testCommandPolicy.d.ts +36 -0
  177. package/dist/utils/testCommandPolicy.js +252 -0
  178. package/dist/utils/testCommandPolicy.js.map +1 -0
  179. package/dist/utils/testRunner.d.ts +56 -0
  180. package/dist/utils/testRunner.js +246 -0
  181. package/dist/utils/testRunner.js.map +1 -0
  182. package/dist/utils/testSafety.d.ts +40 -2
  183. package/dist/utils/testSafety.js +205 -26
  184. package/dist/utils/testSafety.js.map +1 -1
  185. package/dist/utils/verificationSandbox.d.ts +113 -0
  186. package/dist/utils/verificationSandbox.js +656 -0
  187. package/dist/utils/verificationSandbox.js.map +1 -0
  188. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"verifyLoop.js","sourceRoot":"","sources":["../../src/attack/verifyLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyLoop.js","sourceRoot":"","sources":["../../src/attack/verifyLoop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Work item — a structured unit of investigation work that the scheduler
3
+ * can prioritize. Work items are derived from profile requirements and
4
+ * architecture-risk tasks.
5
+ */
6
+ import type { EvidenceRequirement } from './evidenceLedger';
7
+ export type WorkItemKind = 'profile-requirement' | 'architecture-risk' | 'handler-review' | 'implementation-review' | 'candidate-evidence' | 'verification-recovery';
8
+ export type WorkItemPriority = 'critical' | 'high' | 'medium' | 'low';
9
+ export type WorkItemStatus = 'pending' | 'active' | 'resolved' | 'refuted' | 'blocked';
10
+ export type RequirementStatus = 'missing' | 'satisfied' | 'refuted' | 'blocked';
11
+ export interface RequirementEvidence {
12
+ requirementId: string;
13
+ evidenceRefs: string[];
14
+ status: RequirementStatus;
15
+ }
16
+ export interface WorkItem {
17
+ id: string;
18
+ kind: WorkItemKind;
19
+ title: string;
20
+ priority: WorkItemPriority;
21
+ targetFiles: string[];
22
+ requirements: EvidenceRequirement[];
23
+ evidenceRefs: string[];
24
+ requirementEvidence: Map<string, RequirementEvidence>;
25
+ status: WorkItemStatus;
26
+ attempts: number;
27
+ blockedReason?: string;
28
+ maxAttempts: number;
29
+ }
30
+ export declare function createProfileWorkItem(requirement: EvidenceRequirement, targetFiles: string[]): WorkItem;
31
+ export declare function createArchitectureRiskWorkItem(title: string, targetFiles: string[], requirements: EvidenceRequirement[]): WorkItem;
32
+ export declare function createHandlerReviewWorkItem(filePath: string, symbol: string): WorkItem;
33
+ export declare function createImplementationReviewWorkItem(filePath: string, symbol: string): WorkItem;
34
+ export declare class WorkItemQueue {
35
+ private items;
36
+ add(item: WorkItem): void;
37
+ addAll(items: WorkItem[]): void;
38
+ get(id: string): WorkItem | undefined;
39
+ update(id: string, update: Partial<WorkItem>): void;
40
+ addEvidence(id: string, evidenceRef: string): void;
41
+ addEvidenceForRequirement(id: string, requirementId: string, evidenceRef: string): void;
42
+ isRequirementSatisfied(id: string, requirementId: string): boolean;
43
+ isFullyResolved(id: string): boolean;
44
+ getUnsatisfiedRequirements(id: string): EvidenceRequirement[];
45
+ incrementAttempt(id: string): void;
46
+ resolve(id: string): void;
47
+ forceResolve(id: string): void;
48
+ refute(id: string): void;
49
+ getPending(): WorkItem[];
50
+ getActive(): WorkItem[];
51
+ getBlocked(): WorkItem[];
52
+ getUnresolved(): WorkItem[];
53
+ getExecutable(): WorkItem[];
54
+ highestPriority(): WorkItem | null;
55
+ all(): WorkItem[];
56
+ size(): number;
57
+ }
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ /**
3
+ * Work item — a structured unit of investigation work that the scheduler
4
+ * can prioritize. Work items are derived from profile requirements and
5
+ * architecture-risk tasks.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.WorkItemQueue = void 0;
9
+ exports.createProfileWorkItem = createProfileWorkItem;
10
+ exports.createArchitectureRiskWorkItem = createArchitectureRiskWorkItem;
11
+ exports.createHandlerReviewWorkItem = createHandlerReviewWorkItem;
12
+ exports.createImplementationReviewWorkItem = createImplementationReviewWorkItem;
13
+ let idCounter = 0;
14
+ function nextId(prefix) {
15
+ idCounter++;
16
+ return `${prefix}-${idCounter}`;
17
+ }
18
+ function createProfileWorkItem(requirement, targetFiles) {
19
+ return {
20
+ id: nextId('profile'),
21
+ kind: 'profile-requirement',
22
+ title: requirement.description,
23
+ priority: 'high',
24
+ targetFiles,
25
+ requirements: [requirement],
26
+ evidenceRefs: [],
27
+ requirementEvidence: new Map([[requirement.id, { requirementId: requirement.id, evidenceRefs: [], status: 'missing' }]]),
28
+ status: 'pending',
29
+ attempts: 0,
30
+ maxAttempts: 3,
31
+ };
32
+ }
33
+ function createArchitectureRiskWorkItem(title, targetFiles, requirements) {
34
+ const requirementEvidence = new Map();
35
+ for (const req of requirements) {
36
+ requirementEvidence.set(req.id, { requirementId: req.id, evidenceRefs: [], status: 'missing' });
37
+ }
38
+ return {
39
+ id: nextId('arch-risk'),
40
+ kind: 'architecture-risk',
41
+ title,
42
+ priority: 'high',
43
+ targetFiles,
44
+ requirements,
45
+ evidenceRefs: [],
46
+ requirementEvidence,
47
+ status: 'pending',
48
+ attempts: 0,
49
+ maxAttempts: 3,
50
+ };
51
+ }
52
+ function createHandlerReviewWorkItem(filePath, symbol) {
53
+ const reqId = nextId('handler-req');
54
+ const requirement = {
55
+ id: reqId,
56
+ description: `Review handler ${symbol}`,
57
+ acceptedKinds: ['source-range', 'policy-result'],
58
+ minimumCount: 1,
59
+ };
60
+ return {
61
+ id: nextId('handler'),
62
+ kind: 'handler-review',
63
+ title: `Review handler: ${symbol}`,
64
+ priority: 'medium',
65
+ targetFiles: [filePath],
66
+ requirements: [requirement],
67
+ evidenceRefs: [],
68
+ requirementEvidence: new Map([[reqId, { requirementId: reqId, evidenceRefs: [], status: 'missing' }]]),
69
+ status: 'pending',
70
+ attempts: 0,
71
+ maxAttempts: 2,
72
+ };
73
+ }
74
+ function createImplementationReviewWorkItem(filePath, symbol) {
75
+ const reqId = nextId('impl-req');
76
+ const requirement = {
77
+ id: reqId,
78
+ description: `Resolve implementation of ${symbol}`,
79
+ acceptedKinds: ['implementation-resolution'],
80
+ minimumCount: 1,
81
+ };
82
+ return {
83
+ id: nextId('impl'),
84
+ kind: 'implementation-review',
85
+ title: `Resolve implementation for: ${symbol}`,
86
+ priority: 'critical',
87
+ targetFiles: [filePath],
88
+ requirements: [requirement],
89
+ evidenceRefs: [],
90
+ requirementEvidence: new Map([[reqId, { requirementId: reqId, evidenceRefs: [], status: 'missing' }]]),
91
+ status: 'pending',
92
+ attempts: 0,
93
+ maxAttempts: 2,
94
+ };
95
+ }
96
+ class WorkItemQueue {
97
+ items = new Map();
98
+ add(item) {
99
+ if (!this.items.has(item.id)) {
100
+ this.items.set(item.id, item);
101
+ }
102
+ }
103
+ addAll(items) {
104
+ for (const item of items)
105
+ this.add(item);
106
+ }
107
+ get(id) {
108
+ return this.items.get(id);
109
+ }
110
+ update(id, update) {
111
+ const item = this.items.get(id);
112
+ if (item) {
113
+ Object.assign(item, update);
114
+ }
115
+ }
116
+ addEvidence(id, evidenceRef) {
117
+ const item = this.items.get(id);
118
+ if (item && !item.evidenceRefs.includes(evidenceRef)) {
119
+ item.evidenceRefs.push(evidenceRef);
120
+ }
121
+ }
122
+ addEvidenceForRequirement(id, requirementId, evidenceRef) {
123
+ const item = this.items.get(id);
124
+ if (!item)
125
+ return;
126
+ if (!item.evidenceRefs.includes(evidenceRef)) {
127
+ item.evidenceRefs.push(evidenceRef);
128
+ }
129
+ const reqEv = item.requirementEvidence.get(requirementId);
130
+ if (reqEv && !reqEv.evidenceRefs.includes(evidenceRef)) {
131
+ reqEv.evidenceRefs.push(evidenceRef);
132
+ if (reqEv.status === 'missing') {
133
+ const req = item.requirements.find(r => r.id === requirementId);
134
+ if (req && reqEv.evidenceRefs.length >= req.minimumCount) {
135
+ reqEv.status = 'satisfied';
136
+ }
137
+ }
138
+ }
139
+ }
140
+ isRequirementSatisfied(id, requirementId) {
141
+ const item = this.items.get(id);
142
+ if (!item)
143
+ return false;
144
+ const reqEv = item.requirementEvidence.get(requirementId);
145
+ return reqEv?.status === 'satisfied' || reqEv?.status === 'refuted';
146
+ }
147
+ isFullyResolved(id) {
148
+ const item = this.items.get(id);
149
+ if (!item)
150
+ return false;
151
+ for (const req of item.requirements) {
152
+ const reqEv = item.requirementEvidence.get(req.id);
153
+ if (!reqEv || (reqEv.status !== 'satisfied' && reqEv.status !== 'refuted')) {
154
+ return false;
155
+ }
156
+ }
157
+ return true;
158
+ }
159
+ getUnsatisfiedRequirements(id) {
160
+ const item = this.items.get(id);
161
+ if (!item)
162
+ return [];
163
+ const unsatisfied = [];
164
+ for (const req of item.requirements) {
165
+ const reqEv = item.requirementEvidence.get(req.id);
166
+ if (!reqEv || (reqEv.status !== 'satisfied' && reqEv.status !== 'refuted')) {
167
+ unsatisfied.push(req);
168
+ }
169
+ }
170
+ return unsatisfied;
171
+ }
172
+ incrementAttempt(id) {
173
+ const item = this.items.get(id);
174
+ if (item) {
175
+ item.attempts++;
176
+ if (item.attempts >= item.maxAttempts) {
177
+ item.status = 'blocked';
178
+ item.blockedReason = `Max attempts (${item.maxAttempts}) reached`;
179
+ }
180
+ }
181
+ }
182
+ resolve(id) {
183
+ const item = this.items.get(id);
184
+ if (item && this.isFullyResolved(id)) {
185
+ item.status = 'resolved';
186
+ }
187
+ }
188
+ forceResolve(id) {
189
+ this.update(id, { status: 'resolved' });
190
+ }
191
+ refute(id) {
192
+ this.update(id, { status: 'refuted' });
193
+ }
194
+ getPending() {
195
+ return [...this.items.values()].filter(i => i.status === 'pending');
196
+ }
197
+ getActive() {
198
+ return [...this.items.values()].filter(i => i.status === 'active');
199
+ }
200
+ getBlocked() {
201
+ return [...this.items.values()].filter(i => i.status === 'blocked');
202
+ }
203
+ getUnresolved() {
204
+ return [...this.items.values()].filter(i => i.status === 'pending' || i.status === 'active' || i.status === 'blocked');
205
+ }
206
+ getExecutable() {
207
+ return [...this.items.values()].filter(i => i.status === 'pending' || i.status === 'active');
208
+ }
209
+ highestPriority() {
210
+ const executable = this.getExecutable();
211
+ if (executable.length === 0)
212
+ return null;
213
+ const priorityOrder = { critical: 0, high: 1, medium: 2, low: 3 };
214
+ executable.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
215
+ return executable[0];
216
+ }
217
+ all() {
218
+ return [...this.items.values()];
219
+ }
220
+ size() {
221
+ return this.items.size;
222
+ }
223
+ }
224
+ exports.WorkItemQueue = WorkItemQueue;
225
+ //# sourceMappingURL=workItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workItem.js","sourceRoot":"","sources":["../../src/attack/workItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Finding review queue — non-blocking human review for INCONCLUSIVE findings.
3
+ *
4
+ * When the verify subagent cannot prove or disprove a finding (sandbox
5
+ * unavailable, budget exhausted, test couldn't run), the finding is added
6
+ * to this local review queue. The scan completes without blocking — the
7
+ * user can later adjudicate each item as confirmed, rejected, or deferred.
8
+ *
9
+ * Privacy contract (same as scanAuditLog.ts + agentMemory.ts):
10
+ * - Source code NEVER leaves the machine.
11
+ * - Evidence strings, `why` explanations, fix code, full test scripts,
12
+ * and full API responses are NOT recorded. Only hashes, counts,
13
+ * verdicts, file paths, and line numbers are stored.
14
+ * - The review queue is per-workspace, stored at
15
+ * `<workspaceRoot>/.securecode/finding-review-queue.json`.
16
+ *
17
+ * Retention:
18
+ * - 500 review items per workspace.
19
+ * - Resolved items pruned after 90 days.
20
+ * - Unresolved items kept until explicitly resolved.
21
+ *
22
+ * Dedup: identical findings (fileHash + filePath + line + findingType +
23
+ * evidenceHash) are not re-enqueued — the existing item is returned.
24
+ */
25
+ export type ReviewDecision = 'confirmed' | 'rejected' | 'deferred';
26
+ export type ReviewReason = 'inconclusive-verification' | 'sandbox-unavailable' | 'verification-budget-exhausted' | 'runtime-blocked' | 'test-generation-failed' | 'manual-request';
27
+ export interface FindingReviewItem {
28
+ id: string;
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ workspaceRelativePath: string;
32
+ fileHash: string;
33
+ line: number;
34
+ lineEnd?: number;
35
+ findingType: string;
36
+ severity: string;
37
+ confidence: number;
38
+ proven: 'INCONCLUSIVE' | 'SKIPPED' | 'UNPROVEN';
39
+ reviewReason: ReviewReason;
40
+ /** Short verification reason, truncated to a safe length. */
41
+ verificationReason?: string;
42
+ /** SHA-256 of the evidence string — for dedup + privacy. */
43
+ evidenceHash: string;
44
+ decision?: ReviewDecision;
45
+ decisionReason?: string;
46
+ decidedAt?: string;
47
+ }
48
+ export interface FindingReviewQueueFile {
49
+ version: number;
50
+ items: FindingReviewItem[];
51
+ }
52
+ /**
53
+ * Load the review queue for a workspace. Returns an empty queue
54
+ * (version + empty array) if the file doesn't exist or is corrupt.
55
+ */
56
+ export declare function loadReviewQueue(workspaceRoot: string): FindingReviewQueueFile;
57
+ export interface EnqueueFindingReviewInput {
58
+ workspaceRelativePath: string;
59
+ fileContent: string;
60
+ line: number;
61
+ lineEnd?: number;
62
+ findingType: string;
63
+ severity: string;
64
+ confidence: number;
65
+ proven: 'INCONCLUSIVE' | 'SKIPPED' | 'UNPROVEN';
66
+ reviewReason: ReviewReason;
67
+ verificationReason?: string;
68
+ evidence: string;
69
+ }
70
+ /**
71
+ * Enqueue a finding for human review. Dedupes by
72
+ * (fileHash + filePath + line + findingType + evidenceHash).
73
+ * Returns the item (existing if duplicate, new otherwise).
74
+ *
75
+ * Re-enqueuing a previously-resolved item with the same dedup key
76
+ * reopens it (clears the decision) — the finding reappeared and needs
77
+ * re-review.
78
+ */
79
+ export declare function enqueueFindingReview(workspaceRoot: string, input: EnqueueFindingReviewInput): FindingReviewItem;
80
+ export interface ListFindingReviewsOptions {
81
+ decision?: ReviewDecision | 'pending';
82
+ filePath?: string;
83
+ }
84
+ /**
85
+ * List review items, optionally filtered by decision status and/or file path.
86
+ */
87
+ export declare function listFindingReviews(workspaceRoot: string, options?: ListFindingReviewsOptions): FindingReviewItem[];
88
+ /**
89
+ * Mark a review item as confirmed, rejected, or deferred.
90
+ * Returns the updated item, or null if the ID was not found.
91
+ */
92
+ export declare function decideFindingReview(workspaceRoot: string, id: string, decision: ReviewDecision, reason?: string): FindingReviewItem | null;
93
+ /**
94
+ * Remove a single review item by ID. Returns true if removed.
95
+ */
96
+ export declare function removeFindingReview(workspaceRoot: string, id: string): boolean;
97
+ export interface ClearFindingReviewsOptions {
98
+ id?: string;
99
+ resolvedOnly?: boolean;
100
+ }
101
+ /**
102
+ * Clear review items. If `id` is given, removes just that item.
103
+ * If `resolvedOnly` is true, removes only items with a decision set.
104
+ * Otherwise removes ALL items.
105
+ * Returns the count of items removed.
106
+ */
107
+ export declare function clearFindingReviews(workspaceRoot: string, options?: ClearFindingReviewsOptions): number;
108
+ export declare function formatReviewItem(item: FindingReviewItem): string;
109
+ export declare function formatReviewList(items: FindingReviewItem[]): string;