@bouncesecurity/aghast 0.1.0 → 0.3.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.
Files changed (68) hide show
  1. package/README.md +14 -19
  2. package/config/prompts/false-positive-validation.md +58 -0
  3. package/config/prompts/general-vuln-discovery.md +94 -0
  4. package/config/prompts/generic-instructions.md +2 -0
  5. package/dist/check-library.d.ts.map +1 -1
  6. package/dist/check-library.js +57 -7
  7. package/dist/check-library.js.map +1 -1
  8. package/dist/check-types.d.ts +35 -0
  9. package/dist/check-types.d.ts.map +1 -0
  10. package/dist/check-types.js +66 -0
  11. package/dist/check-types.js.map +1 -0
  12. package/dist/claude-code-provider.d.ts +4 -1
  13. package/dist/claude-code-provider.d.ts.map +1 -1
  14. package/dist/claude-code-provider.js +18 -8
  15. package/dist/claude-code-provider.js.map +1 -1
  16. package/dist/discoveries/openant-discovery.d.ts +10 -0
  17. package/dist/discoveries/openant-discovery.d.ts.map +1 -0
  18. package/dist/discoveries/openant-discovery.js +44 -0
  19. package/dist/discoveries/openant-discovery.js.map +1 -0
  20. package/dist/discoveries/sarif-discovery.d.ts +9 -0
  21. package/dist/discoveries/sarif-discovery.d.ts.map +1 -0
  22. package/dist/discoveries/sarif-discovery.js +54 -0
  23. package/dist/discoveries/sarif-discovery.js.map +1 -0
  24. package/dist/discoveries/semgrep-discovery.d.ts +9 -0
  25. package/dist/discoveries/semgrep-discovery.d.ts.map +1 -0
  26. package/dist/discoveries/semgrep-discovery.js +51 -0
  27. package/dist/discoveries/semgrep-discovery.js.map +1 -0
  28. package/dist/discovery.d.ts +74 -0
  29. package/dist/discovery.d.ts.map +1 -0
  30. package/dist/discovery.js +41 -0
  31. package/dist/discovery.js.map +1 -0
  32. package/dist/error-codes.d.ts +3 -1
  33. package/dist/error-codes.d.ts.map +1 -1
  34. package/dist/error-codes.js +4 -1
  35. package/dist/error-codes.js.map +1 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +124 -30
  38. package/dist/index.js.map +1 -1
  39. package/dist/logging.d.ts +108 -8
  40. package/dist/logging.d.ts.map +1 -1
  41. package/dist/logging.js +269 -43
  42. package/dist/logging.js.map +1 -1
  43. package/dist/mock-ai-provider.d.ts +4 -1
  44. package/dist/mock-ai-provider.d.ts.map +1 -1
  45. package/dist/mock-ai-provider.js +4 -1
  46. package/dist/mock-ai-provider.js.map +1 -1
  47. package/dist/new-check.d.ts +3 -3
  48. package/dist/new-check.d.ts.map +1 -1
  49. package/dist/new-check.js +161 -52
  50. package/dist/new-check.js.map +1 -1
  51. package/dist/openant-loader.d.ts +105 -0
  52. package/dist/openant-loader.d.ts.map +1 -0
  53. package/dist/openant-loader.js +135 -0
  54. package/dist/openant-loader.js.map +1 -0
  55. package/dist/openant-runner.d.ts +22 -0
  56. package/dist/openant-runner.d.ts.map +1 -0
  57. package/dist/openant-runner.js +102 -0
  58. package/dist/openant-runner.js.map +1 -0
  59. package/dist/runtime-config.d.ts.map +1 -1
  60. package/dist/runtime-config.js +15 -0
  61. package/dist/runtime-config.js.map +1 -1
  62. package/dist/scan-runner.d.ts.map +1 -1
  63. package/dist/scan-runner.js +181 -142
  64. package/dist/scan-runner.js.map +1 -1
  65. package/dist/types.d.ts +26 -2
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/types.js.map +1 -1
  68. package/package.json +9 -9
@@ -11,13 +11,20 @@ import { buildPrompt } from './prompt-template.js';
11
11
  import { parseAIResponse } from './response-parser.js';
12
12
  import { extractSnippet } from './snippet-extractor.js';
13
13
  import { analyzeRepository } from './repository-analyzer.js';
14
- import { runSemgrep } from './semgrep-runner.js';
15
- import { parseSARIF, deduplicateTargets, limitTargets } from './sarif-parser.js';
16
14
  import { logProgress, logDebug, createTimer } from './logging.js';
15
+ import { CHECK_TYPE } from './check-types.js';
16
+ import { getDiscovery, registerDiscovery } from './discovery.js';
17
+ import { semgrepDiscovery } from './discoveries/semgrep-discovery.js';
18
+ import { openantDiscovery } from './discoveries/openant-discovery.js';
19
+ import { sarifDiscovery } from './discoveries/sarif-discovery.js';
17
20
  import { DEFAULT_AI_MODEL, FatalProviderError, } from './types.js';
18
21
  const __dirname = dirname(fileURLToPath(import.meta.url));
19
22
  const TAG = 'scan';
20
23
  const DEFAULT_CONCURRENCY = 5;
24
+ // --- Register built-in discovery implementations ---
25
+ registerDiscovery(semgrepDiscovery);
26
+ registerDiscovery(openantDiscovery);
27
+ registerDiscovery(sarifDiscovery);
21
28
  /**
22
29
  * Sum multiple TokenUsage values into one aggregate.
23
30
  * Returns undefined if no inputs have token usage.
@@ -60,6 +67,9 @@ async function mapWithConcurrency(items, concurrency, fn, abortHandle) {
60
67
  while (nextIndex < items.length) {
61
68
  if (abortHandle?.aborted)
62
69
  break;
70
+ // Safe without atomics: Node.js is single-threaded, so nextIndex++ is
71
+ // not interleaved — each worker awaits before looping, yielding to the
72
+ // event loop where the next worker reads and increments the same variable.
63
73
  const i = nextIndex++;
64
74
  results[i] = await fn(items[i], i);
65
75
  }
@@ -118,23 +128,68 @@ async function enrichIssue(aiIssue, checkId, checkName, repositoryPath, checkMet
118
128
  return issue;
119
129
  }
120
130
  /**
121
- * Execute a single check against a repository via the AI provider.
122
- * Routes to multi-target execution if checkTarget is configured.
123
- * Handles prompt building, AI call, response parsing, issue enrichment.
131
+ * If the check specifies a per-check model, switch the provider to that model
132
+ * and return the previous model name so it can be restored after execution.
133
+ */
134
+ function applyPerCheckModel(check, aiProvider, globalModelName) {
135
+ if (!check.model || !aiProvider?.setModel)
136
+ return undefined;
137
+ const previousModel = aiProvider.getModelName?.() ?? globalModelName;
138
+ aiProvider.setModel(check.model);
139
+ logProgress(TAG, `Using per-check model: ${check.model} (check: ${check.id})`);
140
+ return previousModel;
141
+ }
142
+ /**
143
+ * Restore the provider's model to the previous value after per-check override.
144
+ */
145
+ function restoreModel(aiProvider, previousModel) {
146
+ if (previousModel !== undefined && aiProvider?.setModel) {
147
+ aiProvider.setModel(previousModel);
148
+ }
149
+ }
150
+ /**
151
+ * Map a discovered target directly to a SecurityIssue (for static checks).
152
+ * Extracts code snippet from source file via extractSnippet().
153
+ */
154
+ async function mapTargetToIssue(target, checkId, checkName, repositoryPath, checkMetadata) {
155
+ const codeSnippet = await extractSnippet(repositoryPath, target.file, target.startLine, target.endLine);
156
+ const issue = {
157
+ checkId,
158
+ checkName,
159
+ file: target.file.replace(/\\/g, '/'),
160
+ startLine: target.startLine,
161
+ endLine: target.endLine,
162
+ description: target.message || 'Static finding',
163
+ };
164
+ if (codeSnippet !== undefined) {
165
+ issue.codeSnippet = codeSnippet;
166
+ }
167
+ if (checkMetadata?.severity !== undefined) {
168
+ issue.severity = checkMetadata.severity;
169
+ }
170
+ if (checkMetadata?.confidence !== undefined) {
171
+ issue.confidence = checkMetadata.confidence;
172
+ }
173
+ return issue;
174
+ }
175
+ /**
176
+ * Execute a single check against a repository.
177
+ * Routes to the appropriate execution path based on check type.
124
178
  */
125
179
  async function executeSingleCheck(check, checkName, checkInstructions, repositoryPath, aiProvider, checkMetadata, concurrency, configDir, genericPrompt) {
126
180
  const checkId = check.id;
127
- // Route to multi-target execution if configured
128
- if (check.checkTarget?.type === 'semgrep') {
181
+ // Route to targeted execution (discovery + AI analysis)
182
+ if (check.checkTarget?.type === CHECK_TYPE.TARGETED) {
129
183
  if (!aiProvider) {
130
184
  throw new Error(`Check "${checkId}" requires an AI provider but none was configured`);
131
185
  }
132
- return executeMultiTargetCheck(check, checkName, checkInstructions, repositoryPath, aiProvider, checkMetadata, concurrency, configDir, genericPrompt);
186
+ return executeTargetedCheck(check, checkName, checkInstructions, repositoryPath, aiProvider, checkMetadata, concurrency, configDir, genericPrompt);
133
187
  }
134
- // Route to semgrep-only execution (no AI)
135
- if (check.checkTarget?.type === 'semgrep-only') {
136
- return executeSemgrepOnlyCheck(check, checkName, repositoryPath, checkMetadata);
188
+ // Route to static execution (discovery + direct mapping, no AI)
189
+ if (check.checkTarget?.type === CHECK_TYPE.STATIC) {
190
+ return executeStaticCheck(check, checkName, repositoryPath, checkMetadata);
137
191
  }
192
+ // Repository check (no discovery, AI analyzes whole repo)
138
193
  if (!aiProvider) {
139
194
  throw new Error(`Check "${checkId}" requires an AI provider but none was configured`);
140
195
  }
@@ -217,120 +272,27 @@ async function executeSingleCheck(check, checkName, checkInstructions, repositor
217
272
  return { summary, issues };
218
273
  }
219
274
  /**
220
- * Map a SARIF CheckTarget directly to a SecurityIssue (for semgrep-only checks).
221
- * Extracts code snippet from source file via extractSnippet().
275
+ * Execute a targeted check: discovery finds targets, AI analyzes each.
276
+ * The execution pipeline is generic all discovery-specific behavior is
277
+ * encapsulated in the DiscoveredTarget data from the discovery implementation.
222
278
  */
223
- async function mapTargetToIssue(target, checkId, checkName, repositoryPath, checkMetadata) {
224
- const codeSnippet = await extractSnippet(repositoryPath, target.file, target.startLine, target.endLine);
225
- const issue = {
226
- checkId,
227
- checkName,
228
- file: target.file.replace(/\\/g, '/'),
229
- startLine: target.startLine,
230
- endLine: target.endLine,
231
- description: target.message || 'Semgrep finding',
232
- };
233
- if (codeSnippet !== undefined) {
234
- issue.codeSnippet = codeSnippet;
235
- }
236
- if (checkMetadata?.severity !== undefined) {
237
- issue.severity = checkMetadata.severity;
238
- }
239
- if (checkMetadata?.confidence !== undefined) {
240
- issue.confidence = checkMetadata.confidence;
241
- }
242
- return issue;
243
- }
244
- /**
245
- * Execute a semgrep-only check: Semgrep discovers findings, mapped directly
246
- * to issues with no AI involvement.
247
- */
248
- async function executeSemgrepOnlyCheck(check, checkName, repositoryPath, checkMetadata) {
279
+ async function executeTargetedCheck(check, checkName, checkInstructions, repositoryPath, aiProvider, checkMetadata, optionsConcurrency, configDir, genericPromptOverride) {
249
280
  const checkId = check.id;
250
281
  const checkTarget = check.checkTarget;
251
- logProgress(TAG, `Running semgrep-only check: ${checkName}`);
252
- const checkTimer = createTimer();
253
- try {
254
- // 1. Run Semgrep to discover findings
255
- const sarifContent = await runSemgrep({
256
- repositoryPath,
257
- rules: checkTarget.rules,
258
- config: checkTarget.config,
259
- });
260
- // 2. Parse, deduplicate, and limit targets
261
- let targets = parseSARIF(sarifContent);
262
- targets = deduplicateTargets(targets);
263
- if (checkTarget.maxTargets !== undefined) {
264
- targets = limitTargets(targets, checkTarget.maxTargets);
265
- }
266
- // 3. If no targets, return PASS
267
- if (targets.length === 0) {
268
- logProgress(TAG, 'Result: PASS (no findings)');
269
- return {
270
- summary: {
271
- checkId,
272
- checkName,
273
- status: 'PASS',
274
- issuesFound: 0,
275
- executionTime: checkTimer.elapsed(),
276
- targetsAnalyzed: 0,
277
- },
278
- issues: [],
279
- };
280
- }
281
- // 4. Map each target directly to a SecurityIssue (no AI)
282
- const issues = await Promise.all(targets.map((target) => mapTargetToIssue(target, checkId, checkName, repositoryPath, checkMetadata)));
283
- const executionTime = checkTimer.elapsed();
284
- logProgress(TAG, `Result: FAIL (${issues.length} findings, ${targets.length} targets)`);
285
- return {
286
- summary: {
287
- checkId,
288
- checkName,
289
- status: 'FAIL',
290
- issuesFound: issues.length,
291
- executionTime,
292
- targetsAnalyzed: targets.length,
293
- },
294
- issues,
295
- };
282
+ const discoveryName = checkTarget.discovery;
283
+ if (!discoveryName) {
284
+ throw new Error(`Check "${checkId}" is targeted but has no "discovery" specified`);
296
285
  }
297
- catch (err) {
298
- const executionTime = checkTimer.elapsed();
299
- const errorMsg = err instanceof Error ? err.message : String(err);
300
- logProgress(TAG, `Result: ERROR (${errorMsg})`);
301
- return {
302
- summary: {
303
- checkId,
304
- checkName,
305
- status: 'ERROR',
306
- issuesFound: 0,
307
- executionTime,
308
- error: errorMsg,
309
- },
310
- issues: [],
311
- };
312
- }
313
- }
314
- /**
315
- * Execute a multi-target check: Semgrep discovers targets, AI analyzes each.
316
- */
317
- async function executeMultiTargetCheck(check, checkName, checkInstructions, repositoryPath, aiProvider, checkMetadata, optionsConcurrency, configDir, genericPrompt) {
318
- const checkId = check.id;
319
- const checkTarget = check.checkTarget;
320
- logProgress(TAG, `Running multi-target check: ${checkName}`);
286
+ const discovery = getDiscovery(discoveryName);
287
+ logProgress(TAG, `Running targeted check: ${checkName} (discovery: ${discoveryName})`);
321
288
  const checkTimer = createTimer();
322
289
  try {
323
- // 1. Run Semgrep to discover targets
324
- const sarifContent = await runSemgrep({
325
- repositoryPath,
326
- rules: checkTarget.rules,
327
- config: checkTarget.config,
328
- });
329
- // 2. Parse, deduplicate, and limit targets
330
- let targets = parseSARIF(sarifContent);
331
- targets = deduplicateTargets(targets);
332
- if (checkTarget.maxTargets !== undefined) {
333
- targets = limitTargets(targets, checkTarget.maxTargets);
290
+ // 1. Discover targets
291
+ let targets = await discovery.discover(check, repositoryPath, { repositoryPath });
292
+ // 2. Apply maxTargets limit
293
+ if (checkTarget.maxTargets !== undefined && targets.length > checkTarget.maxTargets) {
294
+ targets = targets.slice(0, checkTarget.maxTargets);
295
+ logProgress(TAG, `Limited to ${targets.length} targets (maxTargets: ${checkTarget.maxTargets})`);
334
296
  }
335
297
  // 3. If no targets, return PASS
336
298
  if (targets.length === 0) {
@@ -350,30 +312,27 @@ async function executeMultiTargetCheck(check, checkName, checkInstructions, repo
350
312
  // 4. Resolve effective concurrency: per-check > options > default
351
313
  const effectiveConcurrency = checkTarget.concurrency ?? optionsConcurrency ?? DEFAULT_CONCURRENCY;
352
314
  logProgress(TAG, `Found ${targets.length} targets to analyze (concurrency: ${effectiveConcurrency})`);
353
- // 5. Analyze targets concurrently
354
- const basePrompt = await buildPrompt(checkInstructions, configDir, genericPrompt);
315
+ // 5. Resolve generic prompt: CLI override > analysisMode prompt > discovery default
316
+ const analysisModePrompts = {
317
+ 'false-positive-validation': 'false-positive-validation.md',
318
+ 'general-vuln-discovery': 'general-vuln-discovery.md',
319
+ };
320
+ const analysisModePrompt = checkTarget.analysisMode
321
+ ? analysisModePrompts[checkTarget.analysisMode]
322
+ : undefined;
323
+ const effectiveGenericPrompt = genericPromptOverride ?? analysisModePrompt ?? discovery.defaultGenericPrompt;
324
+ const basePrompt = await buildPrompt(checkInstructions, configDir, effectiveGenericPrompt);
355
325
  let completedCount = 0;
356
326
  const abortHandle = { aborted: false };
357
- const targetResults = await mapWithConcurrency(targets, effectiveConcurrency, async (target, idx) => {
358
- const label = `[target ${idx + 1}/${targets.length}]`;
327
+ // 6. Analyze targets concurrently pipeline is generic, no discovery conditionals
328
+ const targetResults = await mapWithConcurrency(targets, effectiveConcurrency, async (target, _idx) => {
359
329
  try {
360
- const prompt = basePrompt + `\n\nTARGET LOCATION:
361
-
362
- You are analyzing a specific code location:
363
- - File: ${target.file}
364
- - Lines: ${target.startLine}-${target.endLine}
365
-
366
- You MUST:
367
- - Analyze ONLY this specific target location — do not search for or report issues at other locations
368
- - You may read other files to understand context (e.g., imports, type definitions, data flow), but only report issues for this target
369
- - If the code at this location is not vulnerable, return {"issues": []}
370
- - Do NOT scan the broader repository for other instances of this vulnerability pattern
371
- `;
372
- logDebug(TAG, `${label} Analyzing target: ${target.file}:${target.startLine}-${target.endLine}`);
373
- const aiResponse = await aiProvider.executeCheck(prompt, repositoryPath, label);
330
+ const prompt = basePrompt + (target.promptEnrichment ?? '');
331
+ logDebug(TAG, `${target.label} Analyzing: ${target.file}:${target.startLine}-${target.endLine}`);
332
+ const aiResponse = await aiProvider.executeCheck(prompt, repositoryPath, target.label, target.aiOptions);
374
333
  const parsed = aiResponse.parsed ?? parseAIResponse(aiResponse.raw);
375
334
  if (!parsed) {
376
- logDebug(TAG, `${label} Target returned malformed response`);
335
+ logDebug(TAG, `${target.label} Returned malformed response`);
377
336
  return { issues: [], error: true, flagged: false, tokenUsage: aiResponse.tokenUsage };
378
337
  }
379
338
  const issues = await Promise.all(parsed.issues.map((aiIssue) => enrichIssue(aiIssue, checkId, checkName, repositoryPath, checkMetadata)));
@@ -387,7 +346,7 @@ You MUST:
387
346
  throw err;
388
347
  }
389
348
  const errorMsg = err instanceof Error ? err.message : String(err);
390
- logDebug(TAG, `${label} Target error: ${errorMsg}`);
349
+ logDebug(TAG, `${target.label} Error: ${errorMsg}`);
391
350
  return { issues: [], error: true, flagged: false, tokenUsage: undefined };
392
351
  }
393
352
  finally {
@@ -395,7 +354,7 @@ You MUST:
395
354
  logProgress(TAG, `Progress: ${completedCount}/${targets.length} targets analyzed`);
396
355
  }
397
356
  }, abortHandle);
398
- // 6. Aggregate results
357
+ // 7. Aggregate results
399
358
  const allIssues = [];
400
359
  let hasErrors = false;
401
360
  let hasFlagged = false;
@@ -408,7 +367,7 @@ You MUST:
408
367
  hasFlagged = true;
409
368
  targetTokenUsages.push(result.tokenUsage);
410
369
  }
411
- // 7. Determine status: FAIL > FLAG > ERROR > PASS
370
+ // 8. Determine status: FAIL > FLAG > ERROR > PASS
412
371
  const executionTime = checkTimer.elapsed();
413
372
  let status;
414
373
  if (allIssues.length > 0) {
@@ -458,6 +417,74 @@ You MUST:
458
417
  };
459
418
  }
460
419
  }
420
+ /**
421
+ * Execute a static check: discovery finds targets, mapped directly to issues (no AI).
422
+ */
423
+ async function executeStaticCheck(check, checkName, repositoryPath, checkMetadata) {
424
+ const checkId = check.id;
425
+ const checkTarget = check.checkTarget;
426
+ const discoveryName = checkTarget.discovery;
427
+ if (!discoveryName) {
428
+ throw new Error(`Check "${checkId}" is static but has no "discovery" specified`);
429
+ }
430
+ const discovery = getDiscovery(discoveryName);
431
+ logProgress(TAG, `Running static check: ${checkName} (discovery: ${discoveryName})`);
432
+ const checkTimer = createTimer();
433
+ try {
434
+ // 1. Discover targets
435
+ let targets = await discovery.discover(check, repositoryPath, { repositoryPath });
436
+ // 2. Apply maxTargets limit
437
+ if (checkTarget.maxTargets !== undefined && targets.length > checkTarget.maxTargets) {
438
+ targets = targets.slice(0, checkTarget.maxTargets);
439
+ }
440
+ // 3. If no targets, return PASS
441
+ if (targets.length === 0) {
442
+ logProgress(TAG, 'Result: PASS (no findings)');
443
+ return {
444
+ summary: {
445
+ checkId,
446
+ checkName,
447
+ status: 'PASS',
448
+ issuesFound: 0,
449
+ executionTime: checkTimer.elapsed(),
450
+ targetsAnalyzed: 0,
451
+ },
452
+ issues: [],
453
+ };
454
+ }
455
+ // 4. Map each target directly to a SecurityIssue (no AI)
456
+ const issues = await Promise.all(targets.map((target) => mapTargetToIssue(target, checkId, checkName, repositoryPath, checkMetadata)));
457
+ const executionTime = checkTimer.elapsed();
458
+ logProgress(TAG, `Result: FAIL (${issues.length} findings, ${targets.length} targets)`);
459
+ return {
460
+ summary: {
461
+ checkId,
462
+ checkName,
463
+ status: 'FAIL',
464
+ issuesFound: issues.length,
465
+ executionTime,
466
+ targetsAnalyzed: targets.length,
467
+ },
468
+ issues,
469
+ };
470
+ }
471
+ catch (err) {
472
+ const executionTime = checkTimer.elapsed();
473
+ const errorMsg = err instanceof Error ? err.message : String(err);
474
+ logProgress(TAG, `Result: ERROR (${errorMsg})`);
475
+ return {
476
+ summary: {
477
+ checkId,
478
+ checkName,
479
+ status: 'ERROR',
480
+ issuesFound: 0,
481
+ executionTime,
482
+ error: errorMsg,
483
+ },
484
+ issues: [],
485
+ };
486
+ }
487
+ }
461
488
  /**
462
489
  * Run multiple security checks and return aggregated ScanResults.
463
490
  */
@@ -480,6 +507,10 @@ export async function runMultiScan(options) {
480
507
  }
481
508
  const allCheckSummaries = [];
482
509
  const allIssues = [];
510
+ // Track all models used during the scan
511
+ const modelsUsed = new Set();
512
+ if (aiModelName)
513
+ modelsUsed.add(aiModelName);
483
514
  // Execute checks sequentially
484
515
  for (let ci = 0; ci < checks.length; ci++) {
485
516
  const { check, details } = checks[ci];
@@ -487,6 +518,10 @@ export async function runMultiScan(options) {
487
518
  severity: check.severity,
488
519
  confidence: check.confidence,
489
520
  };
521
+ // Apply per-check model override if specified
522
+ const previousModel = applyPerCheckModel(check, aiProvider, aiModelName);
523
+ if (check.model)
524
+ modelsUsed.add(check.model);
490
525
  try {
491
526
  const { summary: checkSummary, issues } = await executeSingleCheck(check, details.name, details.content, repositoryPath, aiProvider, checkMetadata, concurrency, configDir, genericPrompt);
492
527
  allCheckSummaries.push(checkSummary);
@@ -524,6 +559,10 @@ export async function runMultiScan(options) {
524
559
  // but handle gracefully just in case.
525
560
  throw err;
526
561
  }
562
+ finally {
563
+ // Restore the global model after per-check override
564
+ restoreModel(aiProvider, previousModel);
565
+ }
527
566
  }
528
567
  const endTime = new Date();
529
568
  const executionTime = endTime.getTime() - startTime.getTime();
@@ -550,7 +589,7 @@ export async function runMultiScan(options) {
550
589
  startTime: startTime.toISOString(),
551
590
  endTime: endTime.toISOString(),
552
591
  aiProvider: aiProvider
553
- ? { name: aiProviderName ?? 'claude-code', models: aiModelName ? [aiModelName] : [DEFAULT_AI_MODEL] }
592
+ ? { name: aiProviderName ?? 'claude-code', models: modelsUsed.size > 0 ? [...modelsUsed] : [DEFAULT_AI_MODEL] }
554
593
  : { name: 'none', models: [] },
555
594
  tokenUsage: aggregateTokenUsage,
556
595
  };
@@ -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/types.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface CheckDefinition {
20
20
  instructionsFile?: string;
21
21
  severity?: 'critical' | 'high' | 'medium' | 'low' | 'informational';
22
22
  confidence?: 'high' | 'medium' | 'low';
23
+ model?: string;
23
24
  checkTarget?: CheckTargetDefinition;
24
25
  applicablePaths?: string[];
25
26
  excludedPaths?: string[];
@@ -35,15 +36,30 @@ export interface SecurityCheck {
35
36
  enabled?: boolean;
36
37
  severity?: 'critical' | 'high' | 'medium' | 'low' | 'informational';
37
38
  confidence?: 'high' | 'medium' | 'low';
39
+ /** AI model override for this specific check. */
40
+ model?: string;
38
41
  /** Path to the check folder (set during resolution). */
39
42
  checkDir?: string;
40
43
  }
44
+ export interface OpenAntFilterConfig {
45
+ unitTypes?: string[];
46
+ excludeUnitTypes?: string[];
47
+ securityClassifications?: string[];
48
+ reachableOnly?: boolean;
49
+ entryPointsOnly?: boolean;
50
+ minConfidence?: number;
51
+ }
41
52
  export interface CheckTargetDefinition {
42
- type: 'semgrep' | 'semgrep-only' | 'repository';
53
+ type: 'targeted' | 'static' | 'repository';
54
+ discovery?: 'semgrep' | 'openant' | 'sarif';
43
55
  rules?: string | string[];
44
56
  config?: string;
57
+ sarifFile?: string;
45
58
  maxTargets?: number;
46
59
  concurrency?: number;
60
+ /** Analysis mode: determines the AI's approach to each target. */
61
+ analysisMode?: 'custom' | 'false-positive-validation' | 'general-vuln-discovery';
62
+ openant?: OpenAntFilterConfig;
47
63
  }
48
64
  export interface CheckTarget {
49
65
  file: string;
@@ -137,6 +153,11 @@ export interface RuntimeConfig {
137
153
  outputDirectory?: string;
138
154
  outputFormat?: string;
139
155
  };
156
+ logging?: {
157
+ logFile?: string;
158
+ logType?: string;
159
+ level?: string;
160
+ };
140
161
  genericPrompt?: string;
141
162
  failOnCheckFailure?: boolean;
142
163
  }
@@ -190,9 +211,12 @@ export interface AIResponse {
190
211
  }
191
212
  export interface AIProvider {
192
213
  initialize(config: ProviderConfig): Promise<void>;
193
- executeCheck(instructions: string, repositoryPath: string, logPrefix?: string): Promise<AIResponse>;
214
+ executeCheck(instructions: string, repositoryPath: string, logPrefix?: string, options?: {
215
+ maxTurns?: number;
216
+ }): Promise<AIResponse>;
194
217
  validateConfig(): Promise<boolean>;
195
218
  getModelName?(): string;
219
+ setModel?(model: string): void;
196
220
  enableDebug?(): void;
197
221
  }
198
222
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AA0PtC;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2BAA2B;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAkRtC;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}