@kevinrabun/judges 3.22.1 → 3.23.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 (64) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/api.d.ts +18 -5
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +15 -3
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +54 -36
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands/auto-detect.d.ts +62 -0
  10. package/dist/commands/auto-detect.d.ts.map +1 -0
  11. package/dist/commands/auto-detect.js +329 -0
  12. package/dist/commands/auto-detect.js.map +1 -0
  13. package/dist/commands/baseline.d.ts +46 -0
  14. package/dist/commands/baseline.d.ts.map +1 -1
  15. package/dist/commands/baseline.js +290 -27
  16. package/dist/commands/baseline.js.map +1 -1
  17. package/dist/commands/benchmark.d.ts +21 -3
  18. package/dist/commands/benchmark.d.ts.map +1 -1
  19. package/dist/commands/benchmark.js +365 -6
  20. package/dist/commands/benchmark.js.map +1 -1
  21. package/dist/commands/coverage.d.ts +41 -0
  22. package/dist/commands/coverage.d.ts.map +1 -0
  23. package/dist/commands/coverage.js +184 -0
  24. package/dist/commands/coverage.js.map +1 -0
  25. package/dist/commands/doctor.d.ts +56 -0
  26. package/dist/commands/doctor.d.ts.map +1 -0
  27. package/dist/commands/doctor.js +363 -0
  28. package/dist/commands/doctor.js.map +1 -0
  29. package/dist/commands/feedback.d.ts +42 -0
  30. package/dist/commands/feedback.d.ts.map +1 -1
  31. package/dist/commands/feedback.js +129 -0
  32. package/dist/commands/feedback.js.map +1 -1
  33. package/dist/commands/rule-metrics.d.ts +44 -0
  34. package/dist/commands/rule-metrics.d.ts.map +1 -0
  35. package/dist/commands/rule-metrics.js +114 -0
  36. package/dist/commands/rule-metrics.js.map +1 -0
  37. package/dist/commands/rule.d.ts +65 -0
  38. package/dist/commands/rule.d.ts.map +1 -1
  39. package/dist/commands/rule.js +94 -0
  40. package/dist/commands/rule.js.map +1 -1
  41. package/dist/commands/snapshot.d.ts +81 -0
  42. package/dist/commands/snapshot.d.ts.map +1 -0
  43. package/dist/commands/snapshot.js +189 -0
  44. package/dist/commands/snapshot.js.map +1 -0
  45. package/dist/config.d.ts +35 -3
  46. package/dist/config.d.ts.map +1 -1
  47. package/dist/config.js +187 -2
  48. package/dist/config.js.map +1 -1
  49. package/dist/dedup.d.ts +35 -0
  50. package/dist/dedup.d.ts.map +1 -1
  51. package/dist/dedup.js +96 -0
  52. package/dist/dedup.js.map +1 -1
  53. package/dist/evaluators/index.d.ts +22 -2
  54. package/dist/evaluators/index.d.ts.map +1 -1
  55. package/dist/evaluators/index.js +144 -52
  56. package/dist/evaluators/index.js.map +1 -1
  57. package/dist/patches/index.d.ts.map +1 -1
  58. package/dist/patches/index.js +426 -0
  59. package/dist/patches/index.js.map +1 -1
  60. package/dist/types.d.ts +43 -0
  61. package/dist/types.d.ts.map +1 -1
  62. package/judgesrc.schema.json +5 -0
  63. package/package.json +1 -1
  64. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/dedup.d.ts CHANGED
@@ -39,4 +39,39 @@ export declare function crossFileDedup(fileFindings: Array<{
39
39
  path: string;
40
40
  findings: Finding[];
41
41
  }>): Finding[];
42
+ /**
43
+ * Diff result comparing two sets of findings.
44
+ */
45
+ export interface FindingDiff {
46
+ /** Findings present in current but not in previous (new issues) */
47
+ newFindings: Finding[];
48
+ /** Findings present in previous but not in current (resolved) */
49
+ fixedFindings: Finding[];
50
+ /** Findings present in both runs */
51
+ recurringFindings: Finding[];
52
+ /** Summary statistics */
53
+ stats: {
54
+ totalPrevious: number;
55
+ totalCurrent: number;
56
+ newCount: number;
57
+ fixedCount: number;
58
+ recurringCount: number;
59
+ /** Net change: positive means more findings, negative means fewer */
60
+ delta: number;
61
+ };
62
+ }
63
+ /**
64
+ * Compare two sets of findings to identify new, fixed, and recurring issues.
65
+ * Useful for tracking regression between evaluation runs.
66
+ *
67
+ * @param previous - Findings from the previous run
68
+ * @param current - Findings from the current run
69
+ * @param filePath - Optional file path context (used when findings lack filePath)
70
+ * @returns Diff with new, fixed, and recurring findings plus stats
71
+ */
72
+ export declare function diffFindings(previous: Finding[], current: Finding[], filePath?: string): FindingDiff;
73
+ /**
74
+ * Format a finding diff as human-readable text.
75
+ */
76
+ export declare function formatFindingDiff(diff: FindingDiff): string;
42
77
  //# sourceMappingURL=dedup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAevD;AAsKD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAsHlE;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GAAG,OAAO,EAAE,CAyEpG"}
1
+ {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAevD;AAsKD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAsHlE;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GAAG,OAAO,EAAE,CAyEpG;AAID;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,WAAW,EAAE,OAAO,EAAE,CAAC;IACvB,iEAAiE;IACjE,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,oCAAoC;IACpC,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC7B,yBAAyB;IACzB,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,qEAAqE;QACrE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAYD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CA0CpG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAwC3D"}
package/dist/dedup.js CHANGED
@@ -377,4 +377,100 @@ export function crossFileDedup(fileFindings) {
377
377
  }
378
378
  return result;
379
379
  }
380
+ /**
381
+ * Generate a stable key for a finding to match across runs.
382
+ * Uses ruleId + file path + first line number for identity.
383
+ */
384
+ function findingDiffKey(f, filePath) {
385
+ const path = filePath || "";
386
+ const line = f.lineNumbers?.[0] ?? 0;
387
+ return `${f.ruleId}::${path}::${line}`;
388
+ }
389
+ /**
390
+ * Compare two sets of findings to identify new, fixed, and recurring issues.
391
+ * Useful for tracking regression between evaluation runs.
392
+ *
393
+ * @param previous - Findings from the previous run
394
+ * @param current - Findings from the current run
395
+ * @param filePath - Optional file path context (used when findings lack filePath)
396
+ * @returns Diff with new, fixed, and recurring findings plus stats
397
+ */
398
+ export function diffFindings(previous, current, filePath) {
399
+ const prevKeys = new Map();
400
+ for (const f of previous) {
401
+ prevKeys.set(findingDiffKey(f, filePath), f);
402
+ }
403
+ const currKeys = new Map();
404
+ for (const f of current) {
405
+ currKeys.set(findingDiffKey(f, filePath), f);
406
+ }
407
+ const newFindings = [];
408
+ const recurringFindings = [];
409
+ const fixedFindings = [];
410
+ for (const [key, f] of currKeys) {
411
+ if (prevKeys.has(key)) {
412
+ recurringFindings.push(f);
413
+ }
414
+ else {
415
+ newFindings.push(f);
416
+ }
417
+ }
418
+ for (const [key, f] of prevKeys) {
419
+ if (!currKeys.has(key)) {
420
+ fixedFindings.push(f);
421
+ }
422
+ }
423
+ return {
424
+ newFindings,
425
+ fixedFindings,
426
+ recurringFindings,
427
+ stats: {
428
+ totalPrevious: previous.length,
429
+ totalCurrent: current.length,
430
+ newCount: newFindings.length,
431
+ fixedCount: fixedFindings.length,
432
+ recurringCount: recurringFindings.length,
433
+ delta: current.length - previous.length,
434
+ },
435
+ };
436
+ }
437
+ /**
438
+ * Format a finding diff as human-readable text.
439
+ */
440
+ export function formatFindingDiff(diff) {
441
+ const lines = [];
442
+ lines.push("╔══════════════════════════════════════════════════════════════╗");
443
+ lines.push("║ Judges Panel — Finding Diff ║");
444
+ lines.push("╚══════════════════════════════════════════════════════════════╝");
445
+ lines.push("");
446
+ lines.push(` Previous run : ${diff.stats.totalPrevious} finding(s)`);
447
+ lines.push(` Current run : ${diff.stats.totalCurrent} finding(s)`);
448
+ lines.push(` Delta : ${diff.stats.delta >= 0 ? "+" : ""}${diff.stats.delta}`);
449
+ lines.push("");
450
+ if (diff.newFindings.length > 0) {
451
+ lines.push(` 🆕 New Findings (${diff.stats.newCount}):`);
452
+ lines.push(" " + "─".repeat(55));
453
+ for (const f of diff.newFindings) {
454
+ lines.push(` ${f.ruleId.padEnd(12)} [${f.severity}] ${f.title} (line ${f.lineNumbers?.[0] ?? "?"})`);
455
+ }
456
+ lines.push("");
457
+ }
458
+ if (diff.fixedFindings.length > 0) {
459
+ lines.push(` ✅ Fixed Findings (${diff.stats.fixedCount}):`);
460
+ lines.push(" " + "─".repeat(55));
461
+ for (const f of diff.fixedFindings) {
462
+ lines.push(` ${f.ruleId.padEnd(12)} [${f.severity}] ${f.title} (line ${f.lineNumbers?.[0] ?? "?"})`);
463
+ }
464
+ lines.push("");
465
+ }
466
+ if (diff.recurringFindings.length > 0) {
467
+ lines.push(` 🔄 Recurring Findings (${diff.stats.recurringCount}):`);
468
+ lines.push(" " + "─".repeat(55));
469
+ for (const f of diff.recurringFindings) {
470
+ lines.push(` ${f.ruleId.padEnd(12)} [${f.severity}] ${f.title} (line ${f.lineNumbers?.[0] ?? "?"})`);
471
+ }
472
+ lines.push("");
473
+ }
474
+ return lines.join("\n");
475
+ }
380
476
  //# sourceMappingURL=dedup.js.map
package/dist/dedup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import type { JudgeDefinition, JudgeEvaluation, TribunalVerdict, ProjectVerdict, DiffVerdict, Finding, MustFixGateOptions, JudgesConfig } from "../types.js";
1
+ import type { JudgeDefinition, JudgeEvaluation, TribunalVerdict, ProjectVerdict, DiffVerdict, Finding, MustFixGateOptions, JudgesConfig, SuppressionResult } from "../types.js";
2
2
  import type { CodeStructure } from "../ast/types.js";
3
3
  import type { TaintFlow } from "../ast/taint-tracker.js";
4
4
  import { formatVerdictAsMarkdown, formatEvaluationAsMarkdown } from "./shared.js";
5
+ import type { CalibrationOptions } from "../calibration.js";
5
6
  export interface EvaluationOptions {
6
7
  includeAstFindings?: boolean;
7
8
  minConfidence?: number;
@@ -24,6 +25,18 @@ export interface EvaluationOptions {
24
25
  * single file — the missing capability may exist in another module.
25
26
  */
26
27
  projectMode?: boolean;
28
+ /**
29
+ * Additional judges loaded from plugins (via config.plugins).
30
+ * These are appended to the built-in JUDGES array before evaluation.
31
+ */
32
+ pluginJudges?: JudgeDefinition[];
33
+ /**
34
+ * Enable feedback-driven confidence calibration.
35
+ * When true, loads the feedback store and adjusts finding confidence
36
+ * based on historical FP rates. Set to a CalibrationOptions object
37
+ * for fine-grained control (minSamples, maxReduction, maxBoost).
38
+ */
39
+ calibrate?: boolean | CalibrationOptions;
27
40
  /** @internal — pre-computed AST structure for the file (set by evaluateWithTribunal) */
28
41
  _astCache?: CodeStructure;
29
42
  /** @internal — pre-computed taint flows for the file (set by evaluateWithTribunal) */
@@ -31,8 +44,14 @@ export interface EvaluationOptions {
31
44
  }
32
45
  /** Clear all internal evaluation caches. Useful in tests or after large runs. */
33
46
  export declare function clearEvaluationCaches(): void;
47
+ /**
48
+ * Apply inline suppression comments and return both filtered findings
49
+ * and a full audit trail of what was suppressed.
50
+ */
51
+ export declare function applyInlineSuppressionsWithAudit(findings: Finding[], code: string): SuppressionResult;
34
52
  /**
35
53
  * Filter findings based on inline suppression comments in the source code.
54
+ * Drop-in backward-compatible wrapper around `applyInlineSuppressionsWithAudit`.
36
55
  */
37
56
  export declare function applyInlineSuppressions(findings: Finding[], code: string): Finding[];
38
57
  /**
@@ -58,5 +77,6 @@ import { runAppBuilderWorkflow as _runAppBuilderWorkflow } from "./app-builder.j
58
77
  export declare function runAppBuilderWorkflow(params: Parameters<typeof _runAppBuilderWorkflow>[1]): ReturnType<typeof _runAppBuilderWorkflow>;
59
78
  export { formatVerdictAsMarkdown, formatEvaluationAsMarkdown };
60
79
  export { enrichWithPatches } from "../patches/index.js";
61
- export { crossEvaluatorDedup, crossFileDedup } from "../dedup.js";
80
+ export { crossEvaluatorDedup, crossFileDedup, diffFindings, formatFindingDiff } from "../dedup.js";
81
+ export type { FindingDiff } from "../dedup.js";
62
82
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluators/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,OAAO,EAGP,kBAAkB,EAClB,YAAY,EACb,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIzD,OAAO,EAKL,uBAAuB,EACvB,0BAA0B,EAK3B,MAAM,aAAa,CAAC;AAgBrB,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,sFAAsF;IACtF,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC;CAC3B;AAQD,iFAAiF;AACjF,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAkOD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAwCpF;AAcD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,eAAe,CAyEjB;AA+BD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,eAAe,CAsFjB;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,EACjE,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,cAAc,CAIhB;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,WAAW,CAqBb;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAIxD,OAAO,EAAE,qBAAqB,IAAI,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAKnF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,GACnD,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAE3C;AAID,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evaluators/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { evaluateMustFixGate, clampConfidence, applyConfidenceThreshold, isAbsen
12
12
  import { enrichWithPatches } from "../patches/index.js";
13
13
  import { crossEvaluatorDedup, severityRank } from "../dedup.js";
14
14
  import { filterFalsePositiveHeuristics } from "./false-positive-review.js";
15
+ import { calibrateFindings, loadCalibrationProfile } from "../calibration.js";
15
16
  // ── AST-aware post-processing ───────────────────────────────────────────────
16
17
  // ── Module-level caches for AST/taint results ───────────────────────────────
17
18
  const astStructureCache = new LRUCache(256);
@@ -167,97 +168,168 @@ function findMatchingTaintFlows(finding, flowsBySinkLine) {
167
168
  }
168
169
  return matched;
169
170
  }
170
- // ── Inline suppression comment support ──────────────────────────────────────
171
171
  /**
172
- * Scan source code for inline `// judges-ignore RULE-ID` or
173
- * `// judges-ignore-next-line RULE-ID` comments. Returns a set of suppressed
174
- * {ruleId, line} pairs and a set of globally suppressed rule IDs.
172
+ * Parsed result of inline suppression comments in source code.
173
+ *
174
+ * Supports five directive styles:
175
+ * // judges-ignore RULE-ID → suppress on same line
176
+ * // judges-ignore-next-line RULE-ID → suppress on the next line
177
+ * // judges-ignore-block RULE-ID → suppress until matching end
178
+ * // judges-end-block → ends block suppression
179
+ * // judges-file-ignore RULE-ID → suppress across entire file
180
+ *
181
+ * All directive styles also accept # and /* comment prefixes for
182
+ * Python/YAML/CSS compatibility.
183
+ *
184
+ * An optional reason can be appended after " -- ":
185
+ * // judges-ignore SEC-001 -- legacy code, tracked in JIRA-123
175
186
  */
176
187
  function parseInlineSuppressions(code) {
177
188
  const lines = code.split("\n");
178
189
  const lineSuppressed = new Map();
179
- const globalSuppressed = new Set();
180
- // Pattern: // judges-ignore RULE-ID [, RULE-ID ...]
181
- // // judges-ignore-next-line RULE-ID [, RULE-ID ...]
182
- // # judges-ignore RULE-ID (Python, YAML, etc.)
183
- const suppressPattern = /(?:\/\/|#|\/\*)\s*judges-ignore(?:-next-line)?\s+([\w*,\s-]+)/gi;
184
- const isNextLine = /judges-ignore-next-line/i;
190
+ const globalSuppressed = [];
191
+ // Active block suppressions: ruleId { commentLine, reason }
192
+ const activeBlocks = new Map();
193
+ // Pattern: // judges-ignore[-next-line|-block] RULE-ID [, RULE-ID ...] [-- reason]
194
+ const suppressPattern = /(?:\/\/|#|\/\*)\s*judges-ignore(?:-(next-line|block))?\s+([\w*,\s-]+?)(?:\s+--\s+(.+?))?(?:\s*\*\/)?$/gi;
195
+ const endBlockPattern = /(?:\/\/|#|\/\*)\s*judges-end-block/i;
185
196
  for (let i = 0; i < lines.length; i++) {
186
197
  const line = lines[i];
198
+ const lineNum = i + 1; // 1-indexed
199
+ // Check for block-end
200
+ if (endBlockPattern.test(line)) {
201
+ activeBlocks.clear();
202
+ }
203
+ // Apply any active block suppressions to this line
204
+ for (const [ruleId, meta] of activeBlocks) {
205
+ const arr = lineSuppressed.get(lineNum) ?? [];
206
+ arr.push({ ruleId, kind: "block", commentLine: meta.commentLine, reason: meta.reason });
207
+ lineSuppressed.set(lineNum, arr);
208
+ }
209
+ // Parse suppression directives
187
210
  let match;
188
211
  suppressPattern.lastIndex = 0;
189
212
  while ((match = suppressPattern.exec(line)) !== null) {
190
- const ruleIds = match[1].split(/[,\s]+/).filter(Boolean);
191
- const targetLine = isNextLine.test(match[0]) ? i + 2 : i + 1; // 1-indexed
192
- for (const ruleId of ruleIds) {
193
- if (ruleId === "*") {
194
- // Wildcard: suppress all rules on this line
195
- const set = lineSuppressed.get(targetLine) ?? new Set();
196
- set.add("*");
197
- lineSuppressed.set(targetLine, set);
213
+ const modifier = match[1]?.toLowerCase(); // "next-line", "block", or undefined
214
+ const ruleIds = match[2].split(/[,\s]+/).filter(Boolean);
215
+ const reason = match[3]?.trim() || undefined;
216
+ const kind = modifier === "next-line" ? "next-line" : modifier === "block" ? "block" : "line";
217
+ const targetLine = kind === "next-line" ? lineNum + 1 : lineNum;
218
+ for (const rawId of ruleIds) {
219
+ const ruleId = rawId === "*" ? "*" : rawId.toUpperCase();
220
+ if (kind === "block") {
221
+ // Start block suppression — applies to all subsequent lines until end-block
222
+ activeBlocks.set(ruleId, { commentLine: lineNum, reason });
198
223
  }
199
224
  else {
200
- const set = lineSuppressed.get(targetLine) ?? new Set();
201
- set.add(ruleId.toUpperCase());
202
- lineSuppressed.set(targetLine, set);
225
+ const arr = lineSuppressed.get(targetLine) ?? [];
226
+ arr.push({ ruleId, kind, commentLine: lineNum, reason });
227
+ lineSuppressed.set(targetLine, arr);
203
228
  }
204
229
  }
205
230
  }
206
- // File-level suppression: // judges-file-ignore RULE-ID
207
- const filePattern = /(?:\/\/|#|\/\*)\s*judges-file-ignore\s+([\w*,\s-]+)/gi;
231
+ // File-level suppression: // judges-file-ignore RULE-ID [-- reason]
232
+ const filePattern = /(?:\/\/|#|\/\*)\s*judges-file-ignore\s+([\w*,\s-]+?)(?:\s+--\s+(.+?))?(?:\s*\*\/)?$/gi;
208
233
  let fileMatch;
209
234
  filePattern.lastIndex = 0;
210
235
  while ((fileMatch = filePattern.exec(line)) !== null) {
211
236
  const ruleIds = fileMatch[1].split(/[,\s]+/).filter(Boolean);
212
- for (const ruleId of ruleIds) {
213
- globalSuppressed.add(ruleId === "*" ? "*" : ruleId.toUpperCase());
237
+ const reason = fileMatch[2]?.trim() || undefined;
238
+ for (const rawId of ruleIds) {
239
+ const ruleId = rawId === "*" ? "*" : rawId.toUpperCase();
240
+ globalSuppressed.push({ ruleId, kind: "file", commentLine: lineNum, reason });
214
241
  }
215
242
  }
216
243
  }
217
244
  return { lineSuppressed, globalSuppressed };
218
245
  }
219
246
  /**
220
- * Filter findings based on inline suppression comments in the source code.
247
+ * Check whether a rule ID matches a set of suppression directives.
248
+ * Supports exact match, wildcard "*", and prefix wildcards like "AUTH-*".
221
249
  */
222
- export function applyInlineSuppressions(findings, code) {
250
+ function matchesSuppression(ruleUpper, directives) {
251
+ for (const d of directives) {
252
+ if (d.ruleId === "*" || d.ruleId === ruleUpper) {
253
+ return d;
254
+ }
255
+ if (d.ruleId.endsWith("-*") && ruleUpper.startsWith(d.ruleId.slice(0, -1))) {
256
+ return d;
257
+ }
258
+ }
259
+ return undefined;
260
+ }
261
+ /**
262
+ * Apply inline suppression comments and return both filtered findings
263
+ * and a full audit trail of what was suppressed.
264
+ */
265
+ export function applyInlineSuppressionsWithAudit(findings, code) {
223
266
  const { lineSuppressed, globalSuppressed } = parseInlineSuppressions(code);
224
- if (lineSuppressed.size === 0 && globalSuppressed.size === 0) {
225
- return findings;
267
+ if (lineSuppressed.size === 0 && globalSuppressed.length === 0) {
268
+ return { findings, suppressed: [] };
226
269
  }
227
- return findings.filter((f) => {
270
+ const kept = [];
271
+ const suppressed = [];
272
+ for (const f of findings) {
228
273
  const ruleUpper = f.ruleId.toUpperCase();
229
274
  // Check file-level suppression
230
- if (globalSuppressed.has("*") || globalSuppressed.has(ruleUpper)) {
231
- return false;
232
- }
233
- // Check prefix wildcards: "AUTH-*" suppresses "AUTH-001"
234
- for (const suppressed of globalSuppressed) {
235
- if (suppressed.endsWith("-*") && ruleUpper.startsWith(suppressed.slice(0, -1))) {
236
- return false;
237
- }
275
+ const globalMatch = matchesSuppression(ruleUpper, globalSuppressed);
276
+ if (globalMatch) {
277
+ suppressed.push({
278
+ ruleId: f.ruleId,
279
+ severity: f.severity,
280
+ title: f.title,
281
+ kind: globalMatch.kind,
282
+ commentLine: globalMatch.commentLine,
283
+ findingLines: f.lineNumbers,
284
+ reason: globalMatch.reason,
285
+ });
286
+ continue;
238
287
  }
239
288
  // Check line-level suppressions
289
+ let wasLineSuppressed = false;
240
290
  if (f.lineNumbers && f.lineNumbers.length > 0) {
241
291
  for (const lineNum of f.lineNumbers) {
242
- const suppressed = lineSuppressed.get(lineNum);
243
- if (suppressed) {
244
- if (suppressed.has("*") || suppressed.has(ruleUpper)) {
245
- return false;
246
- }
247
- for (const s of suppressed) {
248
- if (s.endsWith("-*") && ruleUpper.startsWith(s.slice(0, -1))) {
249
- return false;
250
- }
292
+ const directives = lineSuppressed.get(lineNum);
293
+ if (directives) {
294
+ const lineMatch = matchesSuppression(ruleUpper, directives);
295
+ if (lineMatch) {
296
+ suppressed.push({
297
+ ruleId: f.ruleId,
298
+ severity: f.severity,
299
+ title: f.title,
300
+ kind: lineMatch.kind,
301
+ commentLine: lineMatch.commentLine,
302
+ findingLines: f.lineNumbers,
303
+ reason: lineMatch.reason,
304
+ });
305
+ wasLineSuppressed = true;
306
+ break;
251
307
  }
252
308
  }
253
309
  }
254
310
  }
255
- return true;
256
- });
311
+ if (!wasLineSuppressed) {
312
+ kept.push(f);
313
+ }
314
+ }
315
+ return { findings: kept, suppressed };
316
+ }
317
+ /**
318
+ * Filter findings based on inline suppression comments in the source code.
319
+ * Drop-in backward-compatible wrapper around `applyInlineSuppressionsWithAudit`.
320
+ */
321
+ export function applyInlineSuppressions(findings, code) {
322
+ return applyInlineSuppressionsWithAudit(findings, code).findings;
257
323
  }
258
324
  function resolveJudgeSet(options) {
259
325
  const includeAstFindings = options?.includeAstFindings ?? true;
260
326
  let judges = includeAstFindings ? JUDGES : JUDGES.filter((judge) => judge.id !== "code-structure");
327
+ // Append plugin judges if provided
328
+ if (options?.pluginJudges && options.pluginJudges.length > 0) {
329
+ const builtInIds = new Set(judges.map((j) => j.id));
330
+ const uniquePlugins = options.pluginJudges.filter((j) => !builtInIds.has(j.id));
331
+ judges = [...judges, ...uniquePlugins];
332
+ }
261
333
  // Apply config-based judge filtering
262
334
  if (options?.config?.disabledJudges && options.config.disabledJudges.length > 0) {
263
335
  const disabled = new Set(options.config.disabledJudges);
@@ -315,7 +387,7 @@ export function evaluateWithJudge(judge, code, language, context, options) {
315
387
  ? applyAstRefinements(frameworkAware, astStructure, options?._taintFlows)
316
388
  : frameworkAware;
317
389
  // ── Inline suppression: respect // judges-ignore RULE-ID comments ──
318
- const unsuppressed = applyInlineSuppressions(refinedFindings, code);
390
+ const { findings: unsuppressed, suppressed: suppressionRecords } = applyInlineSuppressionsWithAudit(refinedFindings, code);
319
391
  // ── Auto-fix patches: attach machine-applicable patches where possible ──
320
392
  const patchEnriched = enrichWithPatches(unsuppressed, code);
321
393
  const filteredFindings = applyConfidenceThreshold(patchEnriched, options);
@@ -330,6 +402,7 @@ export function evaluateWithJudge(judge, code, language, context, options) {
330
402
  score,
331
403
  summary,
332
404
  findings: configFiltered,
405
+ suppressions: suppressionRecords.length > 0 ? suppressionRecords : undefined,
333
406
  };
334
407
  }
335
408
  // ─── Per-File Finding Cap ────────────────────────────────────────────────────
@@ -402,8 +475,24 @@ export function evaluateWithTribunal(code, language, context, options) {
402
475
  const dedupedFindings = crossEvaluatorDedup(rawFindings);
403
476
  const { filtered: fpFiltered } = filterFalsePositiveHeuristics(dedupedFindings, code, language, enrichedOptions?.filePath);
404
477
  const configFiltered = applyConfig(fpFiltered, options?.config);
478
+ // ── Feedback-driven confidence calibration ──
479
+ // When options.calibrate is set, load the feedback store and adjust
480
+ // confidence scores based on historical FP rates.
481
+ let calibrated = configFiltered;
482
+ if (enrichedOptions.calibrate) {
483
+ try {
484
+ const calOpts = typeof enrichedOptions.calibrate === "object" ? enrichedOptions.calibrate : undefined;
485
+ const profile = loadCalibrationProfile(calOpts);
486
+ if (profile.isActive) {
487
+ calibrated = calibrateFindings(calibrated, profile, calOpts);
488
+ }
489
+ }
490
+ catch {
491
+ // Calibration failure is non-fatal — continue with uncalibrated findings
492
+ }
493
+ }
405
494
  const maxFindings = options?.maxFindingsPerFile ?? DEFAULT_MAX_FINDINGS_PER_FILE;
406
- const cappedFindings = applyPerFileFindingCap(configFiltered, maxFindings);
495
+ const cappedFindings = applyPerFileFindingCap(calibrated, maxFindings);
407
496
  // ── Confidence-based tiering for progressive disclosure ──
408
497
  // Tag each finding with a disclosure tier so downstream consumers (CLI,
409
498
  // formatters, VS Code extension) can show only high-confidence findings
@@ -421,6 +510,8 @@ export function evaluateWithTribunal(code, language, context, options) {
421
510
  (mustFixGate
422
511
  ? `\n\n## Must-Fix Gate\n\n- Status: **${mustFixGate.triggered ? "TRIGGERED" : "PASS"}**\n- Minimum confidence: **${Math.round(mustFixGate.minConfidence * 100)}%**\n- Matched findings: **${mustFixGate.matchedCount}**\n- Matched rule IDs: ${mustFixGate.matchedRuleIds.length > 0 ? mustFixGate.matchedRuleIds.map((id) => `\`${id}\``).join(", ") : "none"}\n`
423
512
  : "");
513
+ // ── Aggregate suppression audit trail across all judges ──
514
+ const allSuppressions = evaluations.flatMap((e) => e.suppressions ?? []);
424
515
  return {
425
516
  overallVerdict: effectiveVerdict,
426
517
  overallScore,
@@ -431,6 +522,7 @@ export function evaluateWithTribunal(code, language, context, options) {
431
522
  highCount,
432
523
  timestamp: new Date().toISOString(),
433
524
  mustFixGate,
525
+ ...(allSuppressions.length > 0 ? { suppressions: allSuppressions } : {}),
434
526
  };
435
527
  }
436
528
  // ─── Project-level Multi-file Analysis (delegated to project.ts) ─────────────
@@ -476,5 +568,5 @@ export function runAppBuilderWorkflow(params) {
476
568
  // ─── Re-exports ──────────────────────────────────────────────────────────────
477
569
  export { formatVerdictAsMarkdown, formatEvaluationAsMarkdown };
478
570
  export { enrichWithPatches } from "../patches/index.js";
479
- export { crossEvaluatorDedup, crossFileDedup } from "../dedup.js";
571
+ export { crossEvaluatorDedup, crossFileDedup, diffFindings, formatFindingDiff } from "../dedup.js";
480
572
  //# sourceMappingURL=index.js.map