@owasp-aghast/aghast 0.8.4 → 0.9.0-rc.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.
- package/dist/build-config.d.ts.map +1 -1
- package/dist/build-config.js +101 -2
- package/dist/build-config.js.map +1 -1
- package/dist/check-library.d.ts +25 -0
- package/dist/check-library.d.ts.map +1 -1
- package/dist/check-library.js +165 -0
- package/dist/check-library.js.map +1 -1
- package/dist/ci-metadata.d.ts +42 -0
- package/dist/ci-metadata.d.ts.map +1 -0
- package/dist/ci-metadata.js +131 -0
- package/dist/ci-metadata.js.map +1 -0
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/concurrency.d.ts +18 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +39 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/cost-tracker.d.ts +45 -0
- package/dist/cost-tracker.d.ts.map +1 -0
- package/dist/cost-tracker.js +56 -0
- package/dist/cost-tracker.js.map +1 -0
- package/dist/discoveries/glob-discovery.d.ts +21 -0
- package/dist/discoveries/glob-discovery.d.ts.map +1 -0
- package/dist/discoveries/glob-discovery.js +215 -0
- package/dist/discoveries/glob-discovery.js.map +1 -0
- package/dist/discoveries/script-discovery.d.ts +117 -0
- package/dist/discoveries/script-discovery.d.ts.map +1 -0
- package/dist/discoveries/script-discovery.js +593 -0
- package/dist/discoveries/script-discovery.js.map +1 -0
- package/dist/docs-url.d.ts +14 -0
- package/dist/docs-url.d.ts.map +1 -0
- package/dist/docs-url.js +17 -0
- package/dist/docs-url.js.map +1 -0
- package/dist/error-codes.d.ts +12 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +16 -2
- package/dist/error-codes.js.map +1 -1
- package/dist/formatters/csv-formatter.d.ts +12 -1
- package/dist/formatters/csv-formatter.d.ts.map +1 -1
- package/dist/formatters/csv-formatter.js +64 -2
- package/dist/formatters/csv-formatter.js.map +1 -1
- package/dist/formatters/html-formatter.d.ts.map +1 -1
- package/dist/formatters/html-formatter.js +43 -3
- package/dist/formatters/html-formatter.js.map +1 -1
- package/dist/formatters/index.d.ts.map +1 -1
- package/dist/formatters/index.js +2 -0
- package/dist/formatters/index.js.map +1 -1
- package/dist/formatters/markdown-formatter.d.ts +61 -0
- package/dist/formatters/markdown-formatter.d.ts.map +1 -0
- package/dist/formatters/markdown-formatter.js +557 -0
- package/dist/formatters/markdown-formatter.js.map +1 -0
- package/dist/formatters/sarif-formatter.d.ts +7 -0
- package/dist/formatters/sarif-formatter.d.ts.map +1 -1
- package/dist/formatters/sarif-formatter.js +80 -0
- package/dist/formatters/sarif-formatter.js.map +1 -1
- package/dist/formatters/types.d.ts +24 -0
- package/dist/formatters/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +342 -9
- package/dist/index.js.map +1 -1
- package/dist/issue-file-writer.d.ts +21 -0
- package/dist/issue-file-writer.d.ts.map +1 -0
- package/dist/issue-file-writer.js +307 -0
- package/dist/issue-file-writer.js.map +1 -0
- package/dist/judge.d.ts +62 -0
- package/dist/judge.d.ts.map +1 -0
- package/dist/judge.js +305 -0
- package/dist/judge.js.map +1 -0
- package/dist/mock-agent-provider.d.ts +3 -0
- package/dist/mock-agent-provider.d.ts.map +1 -1
- package/dist/mock-agent-provider.js +13 -0
- package/dist/mock-agent-provider.js.map +1 -1
- package/dist/new-check.d.ts.map +1 -1
- package/dist/new-check.js +322 -13
- package/dist/new-check.js.map +1 -1
- package/dist/opencode-provider.d.ts.map +1 -1
- package/dist/opencode-provider.js +33 -0
- package/dist/opencode-provider.js.map +1 -1
- package/dist/repo-scan.d.ts +80 -0
- package/dist/repo-scan.d.ts.map +1 -0
- package/dist/repo-scan.js +250 -0
- package/dist/repo-scan.js.map +1 -0
- package/dist/result-handlers/pr-comment-handler.d.ts +136 -0
- package/dist/result-handlers/pr-comment-handler.d.ts.map +1 -0
- package/dist/result-handlers/pr-comment-handler.js +381 -0
- package/dist/result-handlers/pr-comment-handler.js.map +1 -0
- package/dist/retry.d.ts +128 -0
- package/dist/retry.d.ts.map +1 -0
- package/dist/retry.js +261 -0
- package/dist/retry.js.map +1 -0
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +62 -0
- package/dist/runtime-config.js.map +1 -1
- package/dist/scan-runner.d.ts +31 -22
- package/dist/scan-runner.d.ts.map +1 -1
- package/dist/scan-runner.js +145 -100
- package/dist/scan-runner.js.map +1 -1
- package/dist/semgrep-runner.js +6 -4
- package/dist/semgrep-runner.js.map +1 -1
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +4 -1
- package/dist/stats.js.map +1 -1
- package/dist/types.d.ts +149 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/scan-runner.js
CHANGED
|
@@ -21,20 +21,33 @@ import { openantDiscovery } from './discoveries/openant-discovery.js';
|
|
|
21
21
|
import { sarifDiscovery } from './discoveries/sarif-discovery.js';
|
|
22
22
|
import { applyDiffFilter } from './diff-filter.js';
|
|
23
23
|
import { runOpenAnt } from './openant-runner.js';
|
|
24
|
+
import { globDiscovery } from './discoveries/glob-discovery.js';
|
|
25
|
+
import { scriptDiscovery } from './discoveries/script-discovery.js';
|
|
24
26
|
import { DEFAULT_MODEL, FatalProviderError, } from './types.js';
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
+
import { BudgetExceededError } from './budget.js';
|
|
28
|
+
import { collectCIMetadata } from './ci-metadata.js';
|
|
29
|
+
import { createCostTracker, recordUsage, preflightBudget } from './cost-tracker.js';
|
|
30
|
+
import { mapWithConcurrency } from './concurrency.js';
|
|
31
|
+
import { withRetry, defaultIsRetryable, CircuitBreaker, DEFAULT_RETRY, isRetryEnabled, AgentTimeoutError } from './retry.js';
|
|
32
|
+
import { runJudge, applyJudgeResults } from './judge.js';
|
|
27
33
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
28
34
|
const TAG = 'scan';
|
|
29
35
|
const DEFAULT_CONCURRENCY = 5;
|
|
30
36
|
// Per-target AI call timeout. Without this, a single hung provider request stalls
|
|
31
37
|
// the worker indefinitely; with concurrency=N hangs, the entire check freezes.
|
|
32
38
|
const DEFAULT_TARGET_TIMEOUT_MS = 5 * 60 * 1000;
|
|
39
|
+
// Consecutive transient failures across the whole scan before we stop retrying.
|
|
40
|
+
// Scan-wide rather than per-target: if the provider is failing repeatedly,
|
|
41
|
+
// every remaining target will fail too, and retrying each one wastes both
|
|
42
|
+
// wall-clock time and quota.
|
|
43
|
+
const DEFAULT_CIRCUIT_BREAKER_THRESHOLD = 5;
|
|
33
44
|
// --- Register built-in discovery implementations ---
|
|
34
45
|
registerDiscovery(semgrepDiscovery);
|
|
35
46
|
registerDiscovery(opengrepDiscovery);
|
|
36
47
|
registerDiscovery(openantDiscovery);
|
|
37
48
|
registerDiscovery(sarifDiscovery);
|
|
49
|
+
registerDiscovery(globDiscovery);
|
|
50
|
+
registerDiscovery(scriptDiscovery);
|
|
38
51
|
/**
|
|
39
52
|
* Decide whether to apply the diff filter to a check's discovered targets.
|
|
40
53
|
*
|
|
@@ -132,89 +145,6 @@ async function getVersion() {
|
|
|
132
145
|
return '0.0.0';
|
|
133
146
|
}
|
|
134
147
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Run an async function over items with bounded concurrency.
|
|
137
|
-
* Spawns min(concurrency, items.length) workers that pull from a shared index.
|
|
138
|
-
* Results are written to a pre-allocated array to preserve input order.
|
|
139
|
-
*
|
|
140
|
-
* If abortHandle is provided, workers stop picking up new items once
|
|
141
|
-
* abortHandle.aborted is set to true. In-flight items complete naturally.
|
|
142
|
-
*/
|
|
143
|
-
async function mapWithConcurrency(items, concurrency, fn, abortHandle) {
|
|
144
|
-
const results = new Array(items.length);
|
|
145
|
-
let nextIndex = 0;
|
|
146
|
-
async function worker() {
|
|
147
|
-
while (nextIndex < items.length) {
|
|
148
|
-
if (abortHandle?.aborted)
|
|
149
|
-
break;
|
|
150
|
-
// Safe without atomics: Node.js is single-threaded, so nextIndex++ is
|
|
151
|
-
// not interleaved — each worker awaits before looping, yielding to the
|
|
152
|
-
// event loop where the next worker reads and increments the same variable.
|
|
153
|
-
const i = nextIndex++;
|
|
154
|
-
results[i] = await fn(items[i], i);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
const workerCount = Math.min(concurrency, items.length);
|
|
158
|
-
const workers = [];
|
|
159
|
-
for (let w = 0; w < workerCount; w++) {
|
|
160
|
-
workers.push(worker());
|
|
161
|
-
}
|
|
162
|
-
// Use allSettled so in-flight items complete before we propagate errors
|
|
163
|
-
const settled = await Promise.allSettled(workers);
|
|
164
|
-
const firstRejection = settled.find((r) => r.status === 'rejected');
|
|
165
|
-
if (firstRejection && firstRejection.status === 'rejected') {
|
|
166
|
-
throw firstRejection.reason;
|
|
167
|
-
}
|
|
168
|
-
return results;
|
|
169
|
-
}
|
|
170
|
-
function createCostTracker(options) {
|
|
171
|
-
return {
|
|
172
|
-
pricing: options.pricing,
|
|
173
|
-
budgetLimits: options.budgetLimits,
|
|
174
|
-
scanHistory: options.scanHistory,
|
|
175
|
-
totalTokens: 0,
|
|
176
|
-
totalCostUsd: 0,
|
|
177
|
-
warned: false,
|
|
178
|
-
lastAction: 'continue',
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Record an AI call's token usage against the tracker. Called after each
|
|
183
|
-
* successful executeCheck().
|
|
184
|
-
*/
|
|
185
|
-
function recordUsage(tracker, usage, model) {
|
|
186
|
-
if (!usage || !tracker.pricing)
|
|
187
|
-
return;
|
|
188
|
-
const cost = calculateCost(usage, model, tracker.pricing);
|
|
189
|
-
tracker.totalTokens += usage.totalTokens;
|
|
190
|
-
tracker.totalCostUsd += cost.totalCost;
|
|
191
|
-
tracker.lastCostSource = cost.source;
|
|
192
|
-
tracker.lastCostReportedBy = cost.reportedBy;
|
|
193
|
-
tracker.lastCostCoveredBySubscription = cost.coveredBySubscription;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Check the budget before an AI call. Logs a warning the first time the warn
|
|
197
|
-
* threshold is crossed; throws BudgetExceededError when the abort threshold is
|
|
198
|
-
* crossed.
|
|
199
|
-
*/
|
|
200
|
-
function preflightBudget(tracker) {
|
|
201
|
-
if (!tracker.budgetLimits)
|
|
202
|
-
return;
|
|
203
|
-
const status = checkBudget({
|
|
204
|
-
currentScanCostUsd: tracker.totalCostUsd,
|
|
205
|
-
currentScanTokens: tracker.totalTokens,
|
|
206
|
-
history: tracker.scanHistory,
|
|
207
|
-
}, tracker.budgetLimits);
|
|
208
|
-
tracker.lastAction = status.action;
|
|
209
|
-
tracker.lastReason = status.reason;
|
|
210
|
-
if (status.action === 'abort') {
|
|
211
|
-
throw new BudgetExceededError(status.reason ?? 'Budget limit exceeded');
|
|
212
|
-
}
|
|
213
|
-
if (status.action === 'warn' && !tracker.warned) {
|
|
214
|
-
tracker.warned = true;
|
|
215
|
-
logProgress(TAG, `Budget warning: ${status.reason ?? 'approaching limit'}`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
148
|
/**
|
|
219
149
|
* Generate a scanId in the format: scan-<timestamp>-<hash>
|
|
220
150
|
*/
|
|
@@ -350,14 +280,14 @@ async function mapTargetToIssue(target, checkId, checkName, repositoryPath, chec
|
|
|
350
280
|
* Execute a single check against a repository.
|
|
351
281
|
* Routes to the appropriate execution path based on check type.
|
|
352
282
|
*/
|
|
353
|
-
async function executeSingleCheck(check, checkName, checkInstructions, repositoryPath, agentProvider, costTracker, checkMetadata, concurrency, configDir, genericPrompt, diffRef, diffFile, openantAvailable = true) {
|
|
283
|
+
async function executeSingleCheck(check, checkName, checkInstructions, repositoryPath, agentProvider, costTracker, checkMetadata, concurrency, configDir, genericPrompt, diffRef, diffFile, openantAvailable = true, resilience) {
|
|
354
284
|
const checkId = check.id;
|
|
355
285
|
// Route to targeted execution (discovery + AI analysis)
|
|
356
286
|
if (check.checkTarget?.type === CHECK_TYPE.TARGETED) {
|
|
357
287
|
if (!agentProvider) {
|
|
358
288
|
throw new Error(`Check "${checkId}" requires an agent provider but none was configured`);
|
|
359
289
|
}
|
|
360
|
-
return executeTargetedCheck(check, checkName, checkInstructions, repositoryPath, agentProvider, costTracker, checkMetadata, concurrency, configDir, genericPrompt, diffRef, diffFile, openantAvailable);
|
|
290
|
+
return executeTargetedCheck(check, checkName, checkInstructions, repositoryPath, agentProvider, costTracker, checkMetadata, concurrency, configDir, genericPrompt, diffRef, diffFile, openantAvailable, resilience);
|
|
361
291
|
}
|
|
362
292
|
// Route to static execution (discovery + direct mapping, no AI)
|
|
363
293
|
if (check.checkTarget?.type === CHECK_TYPE.STATIC) {
|
|
@@ -367,6 +297,8 @@ async function executeSingleCheck(check, checkName, checkInstructions, repositor
|
|
|
367
297
|
if (!agentProvider) {
|
|
368
298
|
throw new Error(`Check "${checkId}" requires an agent provider but none was configured`);
|
|
369
299
|
}
|
|
300
|
+
const retryConfig = resilience?.retry ?? DEFAULT_RETRY;
|
|
301
|
+
const breaker = resilience?.breaker;
|
|
370
302
|
logProgress(TAG, `Running check: ${checkName}`);
|
|
371
303
|
const prompt = await buildPrompt(checkInstructions, configDir, genericPrompt);
|
|
372
304
|
logDebug(TAG, `Prompt built: ${prompt.length} chars`);
|
|
@@ -375,7 +307,9 @@ async function executeSingleCheck(check, checkName, checkInstructions, repositor
|
|
|
375
307
|
const checkTimer = createTimer();
|
|
376
308
|
try {
|
|
377
309
|
preflightBudget(costTracker);
|
|
378
|
-
|
|
310
|
+
// Repository checks retry on the same terms as targeted ones — a transient
|
|
311
|
+
// provider failure should not turn a whole-repo check into an ERROR.
|
|
312
|
+
const agentResponse = await withRetry(() => agentProvider.executeCheck(prompt, repositoryPath), { ...retryConfig, breaker, label: checkId });
|
|
379
313
|
const model = agentProvider.getModelName?.() ?? DEFAULT_MODEL;
|
|
380
314
|
recordUsage(costTracker, agentResponse.tokenUsage, model);
|
|
381
315
|
const executionTime = checkTimer.elapsed();
|
|
@@ -453,9 +387,14 @@ async function executeSingleCheck(check, checkName, checkInstructions, repositor
|
|
|
453
387
|
* The execution pipeline is generic — all discovery-specific behavior is
|
|
454
388
|
* encapsulated in the DiscoveredTarget data from the discovery implementation.
|
|
455
389
|
*/
|
|
456
|
-
async function executeTargetedCheck(check, checkName, checkInstructions, repositoryPath, agentProvider, costTracker, checkMetadata, optionsConcurrency, configDir, genericPromptOverride, diffRef, diffFile, openantAvailable = true
|
|
390
|
+
async function executeTargetedCheck(check, checkName, checkInstructions, repositoryPath, agentProvider, costTracker, checkMetadata, optionsConcurrency, configDir, genericPromptOverride, diffRef, diffFile, openantAvailable = true,
|
|
391
|
+
// Bundled rather than two more positional parameters — this signature is
|
|
392
|
+
// already long enough that another pair would be easy to mis-order.
|
|
393
|
+
resilience) {
|
|
457
394
|
const checkId = check.id;
|
|
458
395
|
const checkTarget = check.checkTarget;
|
|
396
|
+
const retryConfig = resilience?.retry ?? DEFAULT_RETRY;
|
|
397
|
+
const breaker = resilience?.breaker;
|
|
459
398
|
const discoveryName = checkTarget.discovery;
|
|
460
399
|
if (!discoveryName) {
|
|
461
400
|
throw new Error(`Check "${checkId}" is targeted but has no "discovery" specified`);
|
|
@@ -545,15 +484,30 @@ async function executeTargetedCheck(check, checkName, checkInstructions, reposit
|
|
|
545
484
|
}
|
|
546
485
|
const prompt = basePrompt + (target.promptEnrichment ?? '');
|
|
547
486
|
logDebug(TAG, `${target.label} Analyzing: ${target.file}:${target.startLine}-${target.endLine}`);
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
487
|
+
// One attempt: the provider call raced against a per-target timeout.
|
|
488
|
+
// Declared as a function so each retry gets a fresh timer — reusing a
|
|
489
|
+
// single handle across attempts would leave the first attempt's
|
|
490
|
+
// timeout armed and abort a later, healthy one.
|
|
491
|
+
const analyzeOnce = async () => {
|
|
492
|
+
let timeoutHandle;
|
|
493
|
+
return Promise.race([
|
|
494
|
+
agentProvider.executeCheck(prompt, repositoryPath, target.label, target.agentOptions),
|
|
495
|
+
new Promise((_, reject) => {
|
|
496
|
+
timeoutHandle = setTimeout(() => reject(new AgentTimeoutError(`Agent provider timed out after ${DEFAULT_TARGET_TIMEOUT_MS / 1000}s on target ${target.label}`)), DEFAULT_TARGET_TIMEOUT_MS);
|
|
497
|
+
}),
|
|
498
|
+
]).finally(() => {
|
|
499
|
+
if (timeoutHandle)
|
|
500
|
+
clearTimeout(timeoutHandle);
|
|
501
|
+
});
|
|
502
|
+
};
|
|
503
|
+
const agentResponse = await withRetry(analyzeOnce, {
|
|
504
|
+
...retryConfig,
|
|
505
|
+
breaker,
|
|
506
|
+
label: target.label,
|
|
507
|
+
// Stop retrying the moment another worker has aborted the scan
|
|
508
|
+
// (budget exceeded, or a fatal provider error). Without this a
|
|
509
|
+
// long backoff would keep a doomed scan alive.
|
|
510
|
+
isRetryable: (err) => !abortHandle.aborted && defaultIsRetryable(err),
|
|
557
511
|
});
|
|
558
512
|
const model = agentProvider.getModelName?.() ?? DEFAULT_MODEL;
|
|
559
513
|
recordUsage(costTracker, agentResponse.tokenUsage, model);
|
|
@@ -839,6 +793,21 @@ export async function runMultiScan(options) {
|
|
|
839
793
|
export async function runMultiScanWithCost(options) {
|
|
840
794
|
const { repositoryPath, checks, agentProvider, modelName, agentProviderName, concurrency, configDir, genericPrompt, diffRef, diffFile } = options;
|
|
841
795
|
const openantAvailable = options.openantAvailable ?? true;
|
|
796
|
+
// Resilience is scan-scoped. One breaker is shared across every check and
|
|
797
|
+
// every target, so N consecutive transient failures anywhere stop the scan
|
|
798
|
+
// retrying rather than each target independently burning its own attempts
|
|
799
|
+
// against a provider that is plainly unwell.
|
|
800
|
+
const retryOptions = { ...DEFAULT_RETRY, ...options.retry };
|
|
801
|
+
// The breaker exists to stop a scan hammering a provider that is plainly
|
|
802
|
+
// unwell *across retries*. With retry off there are no retries to stop, and
|
|
803
|
+
// an open breaker would replace the real provider error with CircuitOpenError
|
|
804
|
+
// — a behaviour change in its own right. So it is created only when the
|
|
805
|
+
// caller has opted into retry.
|
|
806
|
+
const scanBreaker = isRetryEnabled(retryOptions.maxAttempts)
|
|
807
|
+
? new CircuitBreaker({
|
|
808
|
+
threshold: options.retry?.circuitBreakerThreshold ?? DEFAULT_CIRCUIT_BREAKER_THRESHOLD,
|
|
809
|
+
})
|
|
810
|
+
: undefined;
|
|
842
811
|
const scanTimer = createTimer();
|
|
843
812
|
const scanId = generateScanId();
|
|
844
813
|
const startTime = new Date();
|
|
@@ -863,7 +832,11 @@ export async function runMultiScanWithCost(options) {
|
|
|
863
832
|
let budgetAborted = false;
|
|
864
833
|
let budgetAbortReason;
|
|
865
834
|
// Cost / budget tracking spans all checks in the scan.
|
|
866
|
-
const costTracker = createCostTracker(
|
|
835
|
+
const costTracker = createCostTracker({
|
|
836
|
+
pricing: options.pricing,
|
|
837
|
+
budgetLimits: options.budgetLimits,
|
|
838
|
+
scanHistory: options.scanHistory,
|
|
839
|
+
});
|
|
867
840
|
// Track all models used during the scan
|
|
868
841
|
const modelsUsed = new Set();
|
|
869
842
|
if (modelName)
|
|
@@ -880,7 +853,7 @@ export async function runMultiScanWithCost(options) {
|
|
|
880
853
|
if (check.model)
|
|
881
854
|
modelsUsed.add(check.model);
|
|
882
855
|
try {
|
|
883
|
-
const { summary: checkSummary, issues, validations } = await executeSingleCheck(check, details.name, details.content, repositoryPath, agentProvider, costTracker, checkMetadata, concurrency, configDir, genericPrompt, diffRef, diffFile, openantAvailable);
|
|
856
|
+
const { summary: checkSummary, issues, validations } = await executeSingleCheck(check, details.name, details.content, repositoryPath, agentProvider, costTracker, checkMetadata, concurrency, configDir, genericPrompt, diffRef, diffFile, openantAvailable, { retry: retryOptions, breaker: scanBreaker });
|
|
884
857
|
allCheckSummaries.push(checkSummary);
|
|
885
858
|
// Offset each validation's check-local issueIndex into the global issues
|
|
886
859
|
// array before appending this check's issues.
|
|
@@ -956,6 +929,60 @@ export async function runMultiScanWithCost(options) {
|
|
|
956
929
|
restoreModel(agentProvider, previousModel);
|
|
957
930
|
}
|
|
958
931
|
}
|
|
932
|
+
// ─── Judge stage ─────────────────────────────────────────────────────────────
|
|
933
|
+
// Runs after all checks complete (including budget-aborted scans — partial
|
|
934
|
+
// results still benefit from judging). Budget abort during the judge stage
|
|
935
|
+
// sets budgetAborted=true; partially-judged issues retain their verdicts.
|
|
936
|
+
let judgeSummary;
|
|
937
|
+
if (options.judge && allIssues.length > 0) {
|
|
938
|
+
// Only record the judge model when the judge actually runs (allIssues.length > 0)
|
|
939
|
+
modelsUsed.add(options.judge.model);
|
|
940
|
+
// Build a map of checkId → { check, instructions } for judge prompt context
|
|
941
|
+
const checksById = new Map();
|
|
942
|
+
for (const { check, details } of checks) {
|
|
943
|
+
checksById.set(check.id, { check, instructions: details.content || undefined });
|
|
944
|
+
}
|
|
945
|
+
// Also merge in any additional instructions provided via judgeCheckInstructions
|
|
946
|
+
if (options.judgeCheckInstructions) {
|
|
947
|
+
for (const [id, instr] of options.judgeCheckInstructions) {
|
|
948
|
+
const existing = checksById.get(id);
|
|
949
|
+
if (existing) {
|
|
950
|
+
existing.instructions = instr;
|
|
951
|
+
}
|
|
952
|
+
else {
|
|
953
|
+
checksById.set(id, { check: {}, instructions: instr });
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
try {
|
|
958
|
+
// Share the scan's resolved retry settings and breaker with the judge, so
|
|
959
|
+
// opting into retry covers the judge's AI calls too rather than leaving
|
|
960
|
+
// them as the one unprotected call site.
|
|
961
|
+
await runJudge(allIssues, checksById, repositoryPath, { ...options.judge, retry: retryOptions, breaker: scanBreaker }, costTracker);
|
|
962
|
+
}
|
|
963
|
+
catch (err) {
|
|
964
|
+
if (err instanceof BudgetExceededError) {
|
|
965
|
+
budgetAborted = true;
|
|
966
|
+
budgetAbortReason = err.message;
|
|
967
|
+
logProgress(TAG, `Budget exceeded during judge stage: ${err.message}`);
|
|
968
|
+
}
|
|
969
|
+
else {
|
|
970
|
+
throw err;
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
const judgeResult = applyJudgeResults(allIssues, allCheckSummaries, {
|
|
974
|
+
dropFalsePositives: options.judge.dropFalsePositives,
|
|
975
|
+
});
|
|
976
|
+
// Replace allIssues contents with filtered set
|
|
977
|
+
allIssues.splice(0, allIssues.length, ...judgeResult.filteredIssues);
|
|
978
|
+
judgeSummary = {
|
|
979
|
+
judgedIssues: judgeResult.judgedIssues,
|
|
980
|
+
falsePositives: judgeResult.falsePositives,
|
|
981
|
+
uncertainJudgements: judgeResult.uncertainJudgements,
|
|
982
|
+
};
|
|
983
|
+
logProgress(TAG, `Judge: ${judgeResult.judgedIssues} judged, ${judgeResult.falsePositives} false positives, ${judgeResult.uncertainJudgements} uncertain`);
|
|
984
|
+
}
|
|
985
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
959
986
|
const endTime = new Date();
|
|
960
987
|
const executionTime = endTime.getTime() - startTime.getTime();
|
|
961
988
|
const summary = {
|
|
@@ -965,10 +992,25 @@ export async function runMultiScanWithCost(options) {
|
|
|
965
992
|
flaggedChecks: allCheckSummaries.filter((c) => c.status === 'FLAG').length,
|
|
966
993
|
errorChecks: allCheckSummaries.filter((c) => c.status === 'ERROR').length,
|
|
967
994
|
totalIssues: allIssues.length,
|
|
995
|
+
...(judgeSummary ? {
|
|
996
|
+
judgedIssues: judgeSummary.judgedIssues,
|
|
997
|
+
falsePositives: judgeSummary.falsePositives,
|
|
998
|
+
uncertainJudgements: judgeSummary.uncertainJudgements,
|
|
999
|
+
// flaggedByCheck counts FLAG checks whose issues carry flagSource:'check'.
|
|
1000
|
+
// No scan path currently sets flagSource:'check'; this is reserved for a
|
|
1001
|
+
// future pre-judge FLAG escalation path (issue #290 decision #5 / v2).
|
|
1002
|
+
// Until then this will always be 0 — intentional, not a bug.
|
|
1003
|
+
flaggedByCheck: allCheckSummaries.filter((c) => c.status === 'FLAG' && allIssues.some((i) => i.checkId === c.checkId && i.flagSource === 'check')).length,
|
|
1004
|
+
flaggedByJudge: allCheckSummaries.filter((c) => c.status === 'FLAG' && allIssues.some((i) => i.checkId === c.checkId && i.flagSource === 'judge')).length,
|
|
1005
|
+
} : {}),
|
|
968
1006
|
};
|
|
969
1007
|
logProgress(TAG, `Scan completed in ${scanTimer.elapsedStr()}`);
|
|
970
1008
|
// Aggregate token usage across all checks
|
|
971
1009
|
const aggregateTokenUsage = sumTokenUsage(allCheckSummaries.map((c) => c.tokenUsage));
|
|
1010
|
+
// Spec E.4: capture CI/CD pipeline context when running in a supported CI
|
|
1011
|
+
// environment. Returns undefined locally so we omit `metadata` entirely.
|
|
1012
|
+
const ciMetadata = collectCIMetadata();
|
|
1013
|
+
const metadata = ciMetadata ? { ciMetadata } : undefined;
|
|
972
1014
|
const results = {
|
|
973
1015
|
scanId,
|
|
974
1016
|
timestamp: startTime.toISOString(),
|
|
@@ -985,6 +1027,7 @@ export async function runMultiScanWithCost(options) {
|
|
|
985
1027
|
? { name: agentProviderName ?? DEFAULT_PROVIDER_NAME, models: modelsUsed.size > 0 ? [...modelsUsed] : [DEFAULT_MODEL] }
|
|
986
1028
|
: { name: 'none', models: [] },
|
|
987
1029
|
tokenUsage: aggregateTokenUsage,
|
|
1030
|
+
...(metadata ? { metadata } : {}),
|
|
988
1031
|
};
|
|
989
1032
|
// Attach cost metadata when pricing was provided.
|
|
990
1033
|
if (options.pricing) {
|
|
@@ -1006,6 +1049,8 @@ export async function runMultiScanWithCost(options) {
|
|
|
1006
1049
|
costCoveredBySubscription: costTracker.lastCostCoveredBySubscription,
|
|
1007
1050
|
budgetAborted,
|
|
1008
1051
|
budgetAbortReason,
|
|
1052
|
+
judgeModel: options.judge?.model,
|
|
1053
|
+
judgeSummary,
|
|
1009
1054
|
};
|
|
1010
1055
|
}
|
|
1011
1056
|
//# sourceMappingURL=scan-runner.js.map
|
package/dist/scan-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan-runner.js","sourceRoot":"","sources":["../src/scan-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan-runner.js","sourceRoot":"","sources":["../src/scan-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/semgrep-runner.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* differ between them.
|
|
10
10
|
*/
|
|
11
11
|
import { execFile } from 'node:child_process';
|
|
12
|
-
import { readFile, mkdtemp, rm
|
|
12
|
+
import { readFile, mkdtemp, rm } from 'node:fs/promises';
|
|
13
13
|
import { join } from 'node:path';
|
|
14
14
|
import { tmpdir } from 'node:os';
|
|
15
15
|
import { logProgress, logDebug } from './logging.js';
|
|
@@ -110,11 +110,13 @@ export async function runSarifScanner(options, tool) {
|
|
|
110
110
|
if (hadError) {
|
|
111
111
|
throw new Error(`${tool.displayName} execution failed${stderrContent.trim() ? `: ${stderrContent.trim()}` : ''}`);
|
|
112
112
|
}
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
let sarifContent;
|
|
114
|
+
try {
|
|
115
|
+
sarifContent = await readFile(outputFile, 'utf-8');
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
115
118
|
throw new Error(`${tool.displayName} did not produce output`);
|
|
116
119
|
}
|
|
117
|
-
const sarifContent = await readFile(outputFile, 'utf-8');
|
|
118
120
|
logDebug(tool.tag, `SARIF output: ${sarifContent.length} chars`);
|
|
119
121
|
return sarifContent;
|
|
120
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semgrep-runner.js","sourceRoot":"","sources":["../src/semgrep-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"semgrep-runner.js","sourceRoot":"","sources":["../src/semgrep-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/stats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,eAAe,CAAC;AA4KvB,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD5D"}
|
package/dist/stats.js
CHANGED
|
@@ -10,6 +10,7 @@ import 'dotenv/config';
|
|
|
10
10
|
import { ERROR_CODES, formatError } from './error-codes.js';
|
|
11
11
|
import { queryScanHistory } from './scan-history.js';
|
|
12
12
|
import { formatCostSourceLabel } from './cost-calculator.js';
|
|
13
|
+
import { docsFooter } from './docs-url.js';
|
|
13
14
|
const STATS_HELP = `Usage: aghast stats [options]
|
|
14
15
|
|
|
15
16
|
Print a cost summary from the scan history (~/.aghast/history.json).
|
|
@@ -29,7 +30,9 @@ Options:
|
|
|
29
30
|
Examples:
|
|
30
31
|
aghast stats
|
|
31
32
|
aghast stats --repo my-org/my-repo --since 2026-01-01
|
|
32
|
-
aghast stats --model claude-sonnet --json
|
|
33
|
+
aghast stats --model claude-sonnet --json
|
|
34
|
+
|
|
35
|
+
${docsFooter('cost-tracking.md')}`;
|
|
33
36
|
function parseStatsArgs(args) {
|
|
34
37
|
if (args.includes('--help') || args.includes('-h')) {
|
|
35
38
|
console.log(STATS_HELP);
|
package/dist/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAwC,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
|