@kevinrabun/judges 3.13.10 → 3.14.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to **@kevinrabun/judges** are documented here.
4
4
 
5
+ ## [3.14.0] — 2026-03-02
6
+
7
+ ### Added
8
+ - **LLM-based false positive filter** — When an OpenAI-compatible LLM is available, findings from static analysis are automatically reviewed by the LLM to identify and remove false positives before returning results. The filter is a no-op when no API key is configured and gracefully degrades on any error (network, parsing, timeout).
9
+ - New module `src/llm-fp-filter.ts` with `filterFalsePositivesWithLlm()`, `applyLlmFpFilterToVerdict()`, `detectLlmConfig()`, `isLlmAvailable()`, and `formatFilterResultAsMarkdown()`.
10
+ - Integrated into **4 MCP tool handlers**: `evaluate_code`, `evaluate_code_single_judge`, `evaluate_v2` (single-file mode), and `evaluate_diff`.
11
+ - Supports any OpenAI-compatible chat completion API (OpenAI, Azure OpenAI, Ollama, LM Studio, vLLM).
12
+ - Environment variables: `JUDGES_LLM_API_KEY` (fallback `OPENAI_API_KEY`), `JUDGES_LLM_BASE_URL`, `JUDGES_LLM_MODEL`, `JUDGES_LLM_FP_FILTER`, `JUDGES_LLM_MAX_FINDINGS`, `JUDGES_LLM_TIMEOUT_MS`.
13
+ - Deep review sections now indicate when LLM pre-filtering has been applied (updated `buildSingleJudgeDeepReviewSection` and `buildTribunalDeepReviewSection` with `llmFiltered` parameter).
14
+ - All new functions exported from the public programmatic API (`src/api.ts`).
15
+ - **15 new tests** covering config detection, passthrough behavior, verdict-level integration, and Markdown formatting.
16
+
5
17
  ## [3.13.10] — 2026-03-02
6
18
 
7
19
  ### Fixed
package/dist/api.d.ts CHANGED
@@ -38,6 +38,8 @@ export type { ToolProfile, ToolCapability, ComparisonResult } from "./comparison
38
38
  export { getLanguagePack, listLanguagePacks, suggestPack, LANGUAGE_PACKS } from "./commands/language-packs.js";
39
39
  export { formatSmartOutput, formatSmartSingleJudge } from "./commands/smart-output.js";
40
40
  export type { SmartOutputOptions } from "./commands/smart-output.js";
41
+ export { detectLlmConfig, isLlmAvailable, filterFalsePositivesWithLlm, applyLlmFpFilterToVerdict, formatFilterResultAsMarkdown, } from "./llm-fp-filter.js";
42
+ export type { LlmFpFilterConfig, LlmFpFilterResult } from "./llm-fp-filter.js";
41
43
  import type { EvaluationOptions } from "./evaluators/index.js";
42
44
  import type { JudgeEvaluation, TribunalVerdict } from "./types.js";
43
45
  /**
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -47,6 +47,8 @@ export { compareCapabilities, formatComparisonReport, formatFullComparisonMatrix
47
47
  export { getLanguagePack, listLanguagePacks, suggestPack, LANGUAGE_PACKS } from "./commands/language-packs.js";
48
48
  // ─── Smart Output ────────────────────────────────────────────────────────────
49
49
  export { formatSmartOutput, formatSmartSingleJudge } from "./commands/smart-output.js";
50
+ // ─── LLM False-Positive Filter ──────────────────────────────────────────────
51
+ export { detectLlmConfig, isLlmAvailable, filterFalsePositivesWithLlm, applyLlmFpFilterToVerdict, formatFilterResultAsMarkdown, } from "./llm-fp-filter.js";
50
52
  // ─── Convenience Aliases ─────────────────────────────────────────────────────
51
53
  import { evaluateWithTribunal, evaluateWithJudge } from "./evaluators/index.js";
52
54
  import { getJudge } from "./judges/index.js";
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import type { Finding, TribunalVerdict } from "./types.js";
2
+ export interface LlmFpFilterConfig {
3
+ /** API key for the LLM provider */
4
+ apiKey: string;
5
+ /** Base URL for the chat completions API (default: https://api.openai.com/v1) */
6
+ baseUrl: string;
7
+ /** Model identifier (default: gpt-4o-mini) */
8
+ model: string;
9
+ /** Maximum number of findings to send for review (default: 50) */
10
+ maxFindings: number;
11
+ /** Maximum source code length in characters to send (default: 15000) */
12
+ maxCodeLength: number;
13
+ /** HTTP request timeout in milliseconds (default: 30000) */
14
+ timeoutMs: number;
15
+ }
16
+ export interface LlmFpFilterResult {
17
+ /** Findings retained after FP removal */
18
+ filteredFindings: Finding[];
19
+ /** Findings removed as false positives, with LLM-provided reasons */
20
+ removedFindings: Array<Finding & {
21
+ fpReason: string;
22
+ }>;
23
+ /** Whether the LLM was actually called */
24
+ llmUsed: boolean;
25
+ /** Model used for filtering, if any */
26
+ model?: string;
27
+ /** Number of findings sent for review */
28
+ reviewedCount: number;
29
+ }
30
+ /**
31
+ * Detect LLM configuration from environment variables.
32
+ * Returns null if no API key is available or the filter is disabled.
33
+ */
34
+ export declare function detectLlmConfig(): LlmFpFilterConfig | null;
35
+ /**
36
+ * Quick check: is an LLM available for FP filtering?
37
+ */
38
+ export declare function isLlmAvailable(): boolean;
39
+ /**
40
+ * Filter false positives from findings using an LLM.
41
+ *
42
+ * If no LLM configuration is provided or detected, returns findings unchanged.
43
+ * On any error (network, parsing, timeout), gracefully degrades and returns
44
+ * all findings unmodified.
45
+ *
46
+ * @param findings - Static analysis findings to review
47
+ * @param code - The source code that was analyzed
48
+ * @param language - Programming language of the code
49
+ * @param config - Explicit LLM config, or null/undefined to auto-detect from env
50
+ */
51
+ export declare function filterFalsePositivesWithLlm(findings: Finding[], code: string, language: string, config?: LlmFpFilterConfig | null): Promise<LlmFpFilterResult>;
52
+ /**
53
+ * Apply LLM-based false positive filtering to a complete TribunalVerdict.
54
+ *
55
+ * Filters both the top-level findings and the per-judge evaluation findings,
56
+ * then recalculates scores and verdicts for consistency.
57
+ *
58
+ * If no LLM is available or no FPs are found, returns the verdict unchanged.
59
+ *
60
+ * @param verdict - The tribunal verdict from static analysis
61
+ * @param code - The source code that was analyzed
62
+ * @param language - Programming language
63
+ * @param config - Explicit LLM config, or undefined to auto-detect
64
+ */
65
+ export declare function applyLlmFpFilterToVerdict(verdict: TribunalVerdict, code: string, language: string, config?: LlmFpFilterConfig | null): Promise<{
66
+ verdict: TribunalVerdict;
67
+ filterResult: LlmFpFilterResult;
68
+ }>;
69
+ /**
70
+ * Format an LLM filter result section for appending to tool output.
71
+ * Used by MCP tool handlers to add filter information to the response.
72
+ */
73
+ export declare function formatFilterResultAsMarkdown(result: LlmFpFilterResult): string;
74
+ //# sourceMappingURL=llm-fp-filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-fp-filter.d.ts","sourceRoot":"","sources":["../src/llm-fp-filter.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAA4B,MAAM,YAAY,CAAC;AAKrF,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,qEAAqE;IACrE,eAAe,EAAE,KAAK,CAAC,OAAO,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;CACvB;AAID;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAgB1D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AA2JD;;;;;;;;;;;GAWG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAChC,OAAO,CAAC,iBAAiB,CAAC,CA6D5B;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,YAAY,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAgDxE;AAiCD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAE9E"}
@@ -0,0 +1,321 @@
1
+ // ─── LLM-Based False Positive Filter ─────────────────────────────────────────
2
+ // Post-processes static analysis findings through an LLM to identify and
3
+ // remove false positives. Gated on LLM availability — when no API key is
4
+ // configured the filter is a no-op and all findings pass through unchanged.
5
+ //
6
+ // Supports any OpenAI-compatible chat completion API (OpenAI, Azure OpenAI,
7
+ // Ollama, LM Studio, vLLM, etc.)
8
+ //
9
+ // Environment variables:
10
+ // JUDGES_LLM_API_KEY — API key (falls back to OPENAI_API_KEY)
11
+ // JUDGES_LLM_BASE_URL — API base URL (default: https://api.openai.com/v1)
12
+ // JUDGES_LLM_MODEL — Model name (default: gpt-4o-mini)
13
+ // JUDGES_LLM_FP_FILTER — Set to "false" or "0" to disable even when key exists
14
+ // JUDGES_LLM_MAX_FINDINGS — Max findings to send for review (default: 50)
15
+ // JUDGES_LLM_TIMEOUT_MS — Request timeout in ms (default: 30000)
16
+ // ──────────────────────────────────────────────────────────────────────────────
17
+ import { calculateScore, deriveVerdict } from "./evaluators/shared.js";
18
+ // ─── LLM Availability Detection ─────────────────────────────────────────────
19
+ /**
20
+ * Detect LLM configuration from environment variables.
21
+ * Returns null if no API key is available or the filter is disabled.
22
+ */
23
+ export function detectLlmConfig() {
24
+ const apiKey = process.env.JUDGES_LLM_API_KEY || process.env.OPENAI_API_KEY;
25
+ if (!apiKey)
26
+ return null;
27
+ // Allow explicit disable via env var
28
+ const filterFlag = process.env.JUDGES_LLM_FP_FILTER;
29
+ if (filterFlag === "false" || filterFlag === "0")
30
+ return null;
31
+ return {
32
+ apiKey,
33
+ baseUrl: process.env.JUDGES_LLM_BASE_URL || "https://api.openai.com/v1",
34
+ model: process.env.JUDGES_LLM_MODEL || "gpt-4o-mini",
35
+ maxFindings: safeParseInt(process.env.JUDGES_LLM_MAX_FINDINGS, 50),
36
+ maxCodeLength: safeParseInt(process.env.JUDGES_LLM_MAX_CODE_LENGTH, 15000),
37
+ timeoutMs: safeParseInt(process.env.JUDGES_LLM_TIMEOUT_MS, 30000),
38
+ };
39
+ }
40
+ /**
41
+ * Quick check: is an LLM available for FP filtering?
42
+ */
43
+ export function isLlmAvailable() {
44
+ return detectLlmConfig() !== null;
45
+ }
46
+ function safeParseInt(value, fallback) {
47
+ if (!value)
48
+ return fallback;
49
+ const parsed = parseInt(value, 10);
50
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
51
+ }
52
+ function buildFpReviewPrompt(findings, code, language) {
53
+ const summaries = findings.map((f, i) => ({
54
+ index: i,
55
+ ruleId: f.ruleId,
56
+ severity: f.severity,
57
+ title: f.title,
58
+ description: f.description,
59
+ lineNumbers: f.lineNumbers,
60
+ confidence: f.confidence,
61
+ }));
62
+ return `You are a code review expert specializing in false positive detection for static analysis tools.
63
+
64
+ Below is source code and a list of static analysis findings. Review each finding against the actual code and identify FALSE POSITIVES — findings that are incorrect, misleading, or do not represent real issues.
65
+
66
+ A finding is a FALSE POSITIVE if:
67
+ - The flagged pattern appears only in a string literal, comment, or documentation
68
+ - The code has adequate mitigation or handling nearby that the static analyzer missed
69
+ - The finding is based on a keyword match that doesn't apply in this context (e.g., "age" in cache TTL context flagged as age discrimination)
70
+ - The code is in a test file and the pattern is intentionally used for testing
71
+ - The variable/function name matches a keyword but has no actual security/quality implications
72
+ - The finding flags something that is standard practice for the framework being used
73
+ - The flagged code is dead code, unreachable, or in an exception handler that appropriately handles the concern
74
+
75
+ A finding is NOT a false positive if:
76
+ - There is a genuine security, quality, or compliance concern
77
+ - The code could be improved even if not currently exploitable
78
+ - The finding identifies a real missing best practice
79
+
80
+ SOURCE CODE (${language}):
81
+ \`\`\`${language}
82
+ ${code}
83
+ \`\`\`
84
+
85
+ FINDINGS TO REVIEW:
86
+ ${JSON.stringify(summaries, null, 2)}
87
+
88
+ Respond with ONLY a JSON object in this exact format:
89
+ {
90
+ "false_positives": [
91
+ {
92
+ "index": 0,
93
+ "reason": "Brief explanation of why this is a false positive"
94
+ }
95
+ ]
96
+ }
97
+
98
+ Rules:
99
+ - Only include findings you are CONFIDENT are false positives
100
+ - When in doubt, do NOT mark a finding as a false positive (err on the side of caution)
101
+ - The "index" field must match the 0-based index in the FINDINGS array above
102
+ - Keep reasons concise (1-2 sentences)
103
+ - If no findings are false positives, return {"false_positives": []}`;
104
+ }
105
+ // ─── LLM API Call ────────────────────────────────────────────────────────────
106
+ async function callLlm(config, prompt) {
107
+ const url = `${config.baseUrl.replace(/\/+$/, "")}/chat/completions`;
108
+ const controller = new AbortController();
109
+ const timeout = setTimeout(() => controller.abort(), config.timeoutMs);
110
+ try {
111
+ const response = await fetch(url, {
112
+ method: "POST",
113
+ headers: {
114
+ "Content-Type": "application/json",
115
+ Authorization: `Bearer ${config.apiKey}`,
116
+ },
117
+ body: JSON.stringify({
118
+ model: config.model,
119
+ messages: [
120
+ {
121
+ role: "system",
122
+ content: "You are a precise code review expert. Respond only with valid JSON.",
123
+ },
124
+ {
125
+ role: "user",
126
+ content: prompt,
127
+ },
128
+ ],
129
+ temperature: 0,
130
+ max_tokens: 2000,
131
+ }),
132
+ signal: controller.signal,
133
+ });
134
+ if (!response.ok) {
135
+ const errorText = await response.text().catch(() => "unknown error");
136
+ throw new Error(`LLM API returned ${response.status}: ${errorText}`);
137
+ }
138
+ const data = (await response.json());
139
+ return data.choices?.[0]?.message?.content ?? "";
140
+ }
141
+ finally {
142
+ clearTimeout(timeout);
143
+ }
144
+ }
145
+ function parseFpResponse(responseText) {
146
+ const fpMap = new Map();
147
+ try {
148
+ // Extract JSON from markdown code blocks if the LLM wrapped it
149
+ const jsonMatch = responseText.match(/```(?:json)?\s*([\s\S]*?)```/);
150
+ const jsonText = jsonMatch ? jsonMatch[1].trim() : responseText.trim();
151
+ const parsed = JSON.parse(jsonText);
152
+ if (Array.isArray(parsed.false_positives)) {
153
+ for (const fp of parsed.false_positives) {
154
+ if (typeof fp.index === "number" && typeof fp.reason === "string") {
155
+ fpMap.set(fp.index, fp.reason);
156
+ }
157
+ }
158
+ }
159
+ }
160
+ catch {
161
+ // If parsing fails, return empty map — no findings are removed
162
+ }
163
+ return fpMap;
164
+ }
165
+ // ─── Core Filter Function ────────────────────────────────────────────────────
166
+ /**
167
+ * Filter false positives from findings using an LLM.
168
+ *
169
+ * If no LLM configuration is provided or detected, returns findings unchanged.
170
+ * On any error (network, parsing, timeout), gracefully degrades and returns
171
+ * all findings unmodified.
172
+ *
173
+ * @param findings - Static analysis findings to review
174
+ * @param code - The source code that was analyzed
175
+ * @param language - Programming language of the code
176
+ * @param config - Explicit LLM config, or null/undefined to auto-detect from env
177
+ */
178
+ export async function filterFalsePositivesWithLlm(findings, code, language, config) {
179
+ const resolvedConfig = config === undefined ? detectLlmConfig() : config;
180
+ // No LLM available or no findings to review
181
+ if (!resolvedConfig || findings.length === 0) {
182
+ return {
183
+ filteredFindings: findings,
184
+ removedFindings: [],
185
+ llmUsed: false,
186
+ reviewedCount: 0,
187
+ };
188
+ }
189
+ // Truncate code if too long
190
+ const truncatedCode = code.length > resolvedConfig.maxCodeLength
191
+ ? code.slice(0, resolvedConfig.maxCodeLength) + "\n// ... [truncated for review] ..."
192
+ : code;
193
+ // Limit findings count for cost/latency control
194
+ const findingsToReview = findings.slice(0, resolvedConfig.maxFindings);
195
+ const findingsPassthrough = findings.slice(resolvedConfig.maxFindings);
196
+ try {
197
+ const prompt = buildFpReviewPrompt(findingsToReview, truncatedCode, language);
198
+ const responseText = await callLlm(resolvedConfig, prompt);
199
+ const fpMap = parseFpResponse(responseText);
200
+ const removed = [];
201
+ const kept = [];
202
+ for (let i = 0; i < findingsToReview.length; i++) {
203
+ const reason = fpMap.get(i);
204
+ if (reason) {
205
+ removed.push({ ...findingsToReview[i], fpReason: reason });
206
+ }
207
+ else {
208
+ kept.push(findingsToReview[i]);
209
+ }
210
+ }
211
+ // Append any findings that exceeded the review limit (kept as-is)
212
+ kept.push(...findingsPassthrough);
213
+ return {
214
+ filteredFindings: kept,
215
+ removedFindings: removed,
216
+ llmUsed: true,
217
+ model: resolvedConfig.model,
218
+ reviewedCount: findingsToReview.length,
219
+ };
220
+ }
221
+ catch (error) {
222
+ // Graceful degradation — log and return all findings unchanged
223
+ console.error(`[judges] LLM FP filter error: ${error instanceof Error ? error.message : String(error)}`);
224
+ return {
225
+ filteredFindings: findings,
226
+ removedFindings: [],
227
+ llmUsed: false,
228
+ reviewedCount: 0,
229
+ };
230
+ }
231
+ }
232
+ // ─── Verdict-Level Integration ───────────────────────────────────────────────
233
+ /**
234
+ * Apply LLM-based false positive filtering to a complete TribunalVerdict.
235
+ *
236
+ * Filters both the top-level findings and the per-judge evaluation findings,
237
+ * then recalculates scores and verdicts for consistency.
238
+ *
239
+ * If no LLM is available or no FPs are found, returns the verdict unchanged.
240
+ *
241
+ * @param verdict - The tribunal verdict from static analysis
242
+ * @param code - The source code that was analyzed
243
+ * @param language - Programming language
244
+ * @param config - Explicit LLM config, or undefined to auto-detect
245
+ */
246
+ export async function applyLlmFpFilterToVerdict(verdict, code, language, config) {
247
+ const result = await filterFalsePositivesWithLlm(verdict.findings, code, language, config);
248
+ if (!result.llmUsed || result.removedFindings.length === 0) {
249
+ return { verdict, filterResult: result };
250
+ }
251
+ // Build a set of removed finding identifiers for fast lookup
252
+ const removedKeys = new Set(result.removedFindings.map((f) => findingKey(f)));
253
+ // Update per-judge evaluations: remove filtered findings, recalculate scores
254
+ const updatedEvaluations = verdict.evaluations.map((evaluation) => {
255
+ const filtered = evaluation.findings.filter((f) => !removedKeys.has(findingKey(f)));
256
+ const score = calculateScore(filtered, code);
257
+ const evalVerdict = deriveVerdict(filtered, score);
258
+ return {
259
+ ...evaluation,
260
+ findings: filtered,
261
+ score,
262
+ verdict: evalVerdict,
263
+ };
264
+ });
265
+ // Recalculate overall metrics
266
+ const criticalCount = result.filteredFindings.filter((f) => f.severity === "critical").length;
267
+ const highCount = result.filteredFindings.filter((f) => f.severity === "high").length;
268
+ const overallScore = Math.round(updatedEvaluations.reduce((sum, e) => sum + e.score, 0) / updatedEvaluations.length);
269
+ const overallVerdict = updatedEvaluations.some((e) => e.verdict === "fail")
270
+ ? "fail"
271
+ : updatedEvaluations.some((e) => e.verdict === "warning")
272
+ ? "warning"
273
+ : "pass";
274
+ // Build filter summary section
275
+ const filterSummary = buildFilterSummary(result);
276
+ const updatedVerdict = {
277
+ ...verdict,
278
+ findings: result.filteredFindings,
279
+ evaluations: updatedEvaluations,
280
+ overallScore,
281
+ overallVerdict,
282
+ criticalCount,
283
+ highCount,
284
+ summary: verdict.summary + filterSummary,
285
+ };
286
+ return { verdict: updatedVerdict, filterResult: result };
287
+ }
288
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
289
+ /**
290
+ * Generate a stable key for a finding to enable set-based lookup.
291
+ */
292
+ function findingKey(f) {
293
+ return `${f.ruleId}|${f.title}|${(f.lineNumbers ?? []).join(",")}`;
294
+ }
295
+ /**
296
+ * Build a Markdown section summarizing the LLM FP filter results.
297
+ */
298
+ function buildFilterSummary(result) {
299
+ if (!result.llmUsed || result.removedFindings.length === 0)
300
+ return "";
301
+ let md = `\n\n## LLM False Positive Filter\n\n`;
302
+ md += `- **Model:** ${result.model}\n`;
303
+ md += `- **Findings Reviewed:** ${result.reviewedCount}\n`;
304
+ md += `- **False Positives Removed:** ${result.removedFindings.length}\n\n`;
305
+ if (result.removedFindings.length > 0) {
306
+ md += `### Dismissed Findings\n\n`;
307
+ for (const f of result.removedFindings) {
308
+ md += `- **[${f.ruleId}] ${f.title}**: ${f.fpReason}\n`;
309
+ }
310
+ md += "\n";
311
+ }
312
+ return md;
313
+ }
314
+ /**
315
+ * Format an LLM filter result section for appending to tool output.
316
+ * Used by MCP tool handlers to add filter information to the response.
317
+ */
318
+ export function formatFilterResultAsMarkdown(result) {
319
+ return buildFilterSummary(result);
320
+ }
321
+ //# sourceMappingURL=llm-fp-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-fp-filter.js","sourceRoot":"","sources":["../src/llm-fp-filter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type { JudgeDefinition } from "../types.js";
2
- export declare function buildSingleJudgeDeepReviewSection(judge: JudgeDefinition, language: string, context?: string): string;
3
- export declare function buildTribunalDeepReviewSection(judges: JudgeDefinition[], language: string, context?: string): string;
2
+ export declare function buildSingleJudgeDeepReviewSection(judge: JudgeDefinition, language: string, context?: string, llmFiltered?: boolean): string;
3
+ export declare function buildTribunalDeepReviewSection(judges: JudgeDefinition[], language: string, context?: string, llmFiltered?: boolean): string;
4
4
  //# sourceMappingURL=deep-review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep-review.d.ts","sourceRoot":"","sources":["../../src/tools/deep-review.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAqCpH;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CA0CpH"}
1
+ {"version":3,"file":"deep-review.d.ts","sourceRoot":"","sources":["../../src/tools/deep-review.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,CA0CR;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,eAAe,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,OAAO,GACpB,MAAM,CA+CR"}
@@ -4,7 +4,7 @@
4
4
  // uses these criteria to perform deep contextual analysis beyond static
5
5
  // pattern matching.
6
6
  // ──────────────────────────────────────────────────────────────────────────────
7
- export function buildSingleJudgeDeepReviewSection(judge, language, context) {
7
+ export function buildSingleJudgeDeepReviewSection(judge, language, context, llmFiltered) {
8
8
  let md = `\n\n---\n\n`;
9
9
  md += `## 🔍 Deep Contextual Review Required\n\n`;
10
10
  md += `> **The pattern-based findings above are a starting point only.** `;
@@ -18,6 +18,11 @@ export function buildSingleJudgeDeepReviewSection(judge, language, context) {
18
18
  md += `### ${judge.name} — ${judge.domain}\n\n`;
19
19
  md += `${judge.systemPrompt}\n\n`;
20
20
  md += `### False Positive Review\n\n`;
21
+ if (llmFiltered) {
22
+ md += `> **Note:** An LLM-based false positive filter has already been applied to the findings above. `;
23
+ md += `Some static analysis false positives have been automatically removed. `;
24
+ md += `You should still review the remaining findings for any additional false positives the filter may have missed.\n\n`;
25
+ }
21
26
  md += `Before adding new findings, **review each pattern-based finding above for false positives.** `;
22
27
  md += `Static pattern matching can flag code that is actually correct — for example:\n`;
23
28
  md += `- String literals or comments that contain keywords (e.g. a regex containing "DELETE" flagged as an unaudited SQL operation)\n`;
@@ -37,7 +42,7 @@ export function buildSingleJudgeDeepReviewSection(judge, language, context) {
37
42
  md += `- The final verdict must account for BOTH the pattern findings AND your contextual findings, minus any dismissed false positives\n`;
38
43
  return md;
39
44
  }
40
- export function buildTribunalDeepReviewSection(judges, language, context) {
45
+ export function buildTribunalDeepReviewSection(judges, language, context, llmFiltered) {
41
46
  let md = `\n\n---\n\n`;
42
47
  md += `## 🔍 Deep Contextual Review Required\n\n`;
43
48
  md += `> **The pattern-based tribunal findings above are a starting point only.** `;
@@ -54,6 +59,11 @@ export function buildTribunalDeepReviewSection(judges, language, context) {
54
59
  md += `---\n\n`;
55
60
  }
56
61
  md += `### False Positive Review\n\n`;
62
+ if (llmFiltered) {
63
+ md += `> **Note:** An LLM-based false positive filter has already been applied to the findings above. `;
64
+ md += `Some static analysis false positives have been automatically removed (see the "LLM False Positive Filter" section above for details). `;
65
+ md += `You should still review the remaining findings for any additional false positives the filter may have missed.\n\n`;
66
+ }
57
67
  md += `Before adding new findings, **review each pattern-based finding above for false positives.** `;
58
68
  md += `Static pattern matching can flag code that is actually correct — for example:\n`;
59
69
  md += `- String literals or comments that contain keywords (e.g. a regex containing "DELETE" flagged as an unaudited SQL operation)\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"deep-review.js","sourceRoot":"","sources":["../../src/tools/deep-review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deep-review.js","sourceRoot":"","sources":["../../src/tools/deep-review.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-evaluation.d.ts","sourceRoot":"","sources":["../../src/tools/register-evaluation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAK/D"}
1
+ {"version":3,"file":"register-evaluation.d.ts","sourceRoot":"","sources":["../../src/tools/register-evaluation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmBzE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAK/D"}
@@ -7,6 +7,7 @@ import { evaluateWithJudge, evaluateWithTribunal, formatVerdictAsMarkdown, forma
7
7
  import { evaluateCodeV2, evaluateProjectV2, getSupportedPolicyProfiles } from "../evaluators/v2.js";
8
8
  import { configSchema, toJudgesConfig } from "./schemas.js";
9
9
  import { buildSingleJudgeDeepReviewSection, buildTribunalDeepReviewSection } from "./deep-review.js";
10
+ import { applyLlmFpFilterToVerdict, filterFalsePositivesWithLlm, formatFilterResultAsMarkdown, } from "../llm-fp-filter.js";
10
11
  /**
11
12
  * Register evaluation-focused tools: get_judges, evaluate_code,
12
13
  * evaluate_code_single_judge, and evaluate_v2.
@@ -55,18 +56,21 @@ function registerEvaluateCode(server) {
55
56
  config: configSchema,
56
57
  }, async ({ code, language, context, includeAstFindings, minConfidence, config }) => {
57
58
  try {
58
- const verdict = evaluateWithTribunal(code, language, context, {
59
+ const rawVerdict = evaluateWithTribunal(code, language, context, {
59
60
  includeAstFindings,
60
61
  minConfidence,
61
62
  config: toJudgesConfig(config),
62
63
  });
64
+ // Apply LLM-based false positive filtering if an LLM is available
65
+ const { verdict, filterResult } = await applyLlmFpFilterToVerdict(rawVerdict, code, language);
63
66
  const patternResults = formatVerdictAsMarkdown(verdict);
64
- const deepReview = buildTribunalDeepReviewSection(JUDGES, language, context);
67
+ const filterSection = formatFilterResultAsMarkdown(filterResult);
68
+ const deepReview = buildTribunalDeepReviewSection(JUDGES, language, context, filterResult.llmUsed);
65
69
  return {
66
70
  content: [
67
71
  {
68
72
  type: "text",
69
- text: patternResults + deepReview,
73
+ text: patternResults + filterSection + deepReview,
70
74
  },
71
75
  ],
72
76
  };
@@ -122,13 +126,19 @@ function registerEvaluateSingleJudge(server) {
122
126
  minConfidence,
123
127
  config: toJudgesConfig(config),
124
128
  });
125
- const patternResults = formatEvaluationAsMarkdown(evaluation);
126
- const deepReview = buildSingleJudgeDeepReviewSection(judge, language, context);
129
+ // Apply LLM-based false positive filtering if an LLM is available
130
+ const filterResult = await filterFalsePositivesWithLlm(evaluation.findings, code, language);
131
+ const filteredEvaluation = filterResult.llmUsed && filterResult.removedFindings.length > 0
132
+ ? { ...evaluation, findings: filterResult.filteredFindings }
133
+ : evaluation;
134
+ const patternResults = formatEvaluationAsMarkdown(filteredEvaluation);
135
+ const filterSection = formatFilterResultAsMarkdown(filterResult);
136
+ const deepReview = buildSingleJudgeDeepReviewSection(judge, language, context, filterResult.llmUsed);
127
137
  return {
128
138
  content: [
129
139
  {
130
140
  type: "text",
131
- text: patternResults + deepReview,
141
+ text: patternResults + filterSection + deepReview,
132
142
  },
133
143
  ],
134
144
  };
@@ -218,7 +228,7 @@ function registerEvaluateV2(server) {
218
228
  };
219
229
  }
220
230
  const supportedProfiles = getSupportedPolicyProfiles();
221
- const result = files && files.length > 0
231
+ let result = files && files.length > 0
222
232
  ? evaluateProjectV2({
223
233
  files,
224
234
  context,
@@ -238,6 +248,16 @@ function registerEvaluateV2(server) {
238
248
  evaluationContext,
239
249
  evidence,
240
250
  });
251
+ // Apply LLM-based false positive filtering for single-file mode
252
+ if (code && language && result.findings.length > 0) {
253
+ const filterResult = await filterFalsePositivesWithLlm(result.findings, code, language);
254
+ if (filterResult.llmUsed && filterResult.removedFindings.length > 0) {
255
+ result = {
256
+ ...result,
257
+ findings: filterResult.filteredFindings,
258
+ };
259
+ }
260
+ }
241
261
  let md = `# V2 Tribunal Evaluation\n\n`;
242
262
  md += `**Policy Profile:** ${result.policyProfile}\n`;
243
263
  md += `**Calibrated Verdict:** ${result.calibratedVerdict.toUpperCase()} (${result.calibratedScore}/100)\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"register-evaluation.js","sourceRoot":"","sources":["../../src/tools/register-evaluation.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,iFAAiF;AAGjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAErG;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,gFAAgF;AAEhF,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,mHAAmH,EACnH,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM;aAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;aACxF,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,qBAAqB,IAAI,EAAE;iBAClC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,oBAAoB,CAAC,MAAiB;IAC7C,MAAM,CAAC,IAAI,CACT,eAAe,EACf,4DAA4D,MAAM,CAAC,MAAM,gOAAgO,EACzS;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;QACzG,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,sGAAsG,CACvG;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2HAA2H,CAC5H;QACH,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC1G,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,YAAY;KACrB,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC5D,kBAAkB;gBAClB,aAAa;gBACb,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;aAC/B,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE7E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,cAAc,GAAG,UAAU;qBAClC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,gCAAgC;qBAC5F;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,2BAA2B,CAAC,MAAiB;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzC,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,qHAAqH,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC1I;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;QACzG,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,sGAAsG,CACvG;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2HAA2H,CAC5H;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,MAAM,EAAE,YAAY;KACrB,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE;QACpE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,4BAA4B,OAAO,wBAAwB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBACvF;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACnE,aAAa;gBACb,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;aAC/B,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,iCAAiC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE/E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,cAAc,GAAG,UAAU;qBAClC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EACF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,kDAAkD;qBAC1G;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,SAAS,kBAAkB,CAAC,MAAiB;IAC3C,MAAM,CAAC,IAAI,CACT,aAAa,EACb,yJAAyJ,EACzJ;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QACzE,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC5C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;SACtD,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CAAC,mCAAmC,CAAC;QAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACtE,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC1G,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,aAAa,EAAE,CAAC;aACb,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;aACnF,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,iBAAiB,EAAE,CAAC;aACjB,MAAM,CAAC;YACN,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC3C,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YACzC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC1C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACzC,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC;YACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAClC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACvC,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACnD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACvC,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;KAC5E,EACD,KAAK,EAAE,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,QAAQ,GACT,EAAE,EAAE;QACH,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,wFAAwF;yBAC/F;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oDAAoD,EAAE,CAAC;oBAChG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2DAA2D,EAAE,CAAC;oBACvG,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,iBAAiB,GAAG,0BAA0B,EAAE,CAAC;YACvD,MAAM,MAAM,GACV,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBACvB,CAAC,CAAC,iBAAiB,CAAC;oBAChB,KAAK;oBACL,OAAO;oBACP,kBAAkB;oBAClB,aAAa;oBACb,aAAa;oBACb,iBAAiB;oBACjB,QAAQ;iBACT,CAAC;gBACJ,CAAC,CAAC,cAAc,CAAC;oBACb,IAAI,EAAE,IAAK;oBACX,QAAQ,EAAE,QAAS;oBACnB,OAAO;oBACP,kBAAkB;oBAClB,aAAa;oBACb,aAAa;oBACb,iBAAiB;oBACjB,QAAQ;iBACT,CAAC,CAAC;YAET,IAAI,EAAE,GAAG,8BAA8B,CAAC;YACxC,EAAE,IAAI,uBAAuB,MAAM,CAAC,aAAa,IAAI,CAAC;YACtD,EAAE,IAAI,2BAA2B,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,eAAe,SAAS,CAAC;YAC5G,EAAE,IAAI,qBAAqB,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC,YAAY,SAAS,CAAC;YACxH,EAAE,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;YAClE,EAAE,IAAI,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC;YACpD,EAAE,IAAI,GAAG,MAAM,CAAC,OAAO,MAAM,CAAC;YAE9B,EAAE,IAAI,2BAA2B,CAAC;YAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC1D,EAAE,IAAI,OAAO,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC;gBACnD,EAAE,IAAI,eAAe,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,iBAAiB,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,CAAC;gBACpG,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACjD,EAAE,IAAI,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC3I,CAAC;gBACD,EAAE,IAAI,IAAI,CAAC;YACb,CAAC;YAED,EAAE,IAAI,2BAA2B,CAAC;YAClC,EAAE,IAAI,mBAAmB,CAAC;YAC1B,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,EAAE,IAAI,UAAU,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;oBAClD,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,EAAE,IAAI,0BAA0B,CAAC;YACjC,IAAI,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,EAAE,IAAI,UAAU,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;oBACtD,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,EAAE,IAAI,oCAAoC,CAAC;YAC3C,IAAI,MAAM,CAAC,WAAW,CAAC,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9D,EAAE,IAAI,UAAU,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC;oBAChE,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,EAAE,IAAI,oCAAoC,CAAC;YAC3C,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,EAAE,IAAI,IAAI,CAAC;YAEX,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,oCAAoC;qBAChG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-evaluation.js","sourceRoot":"","sources":["../../src/tools/register-evaluation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-workflow.d.ts","sourceRoot":"","sources":["../../src/tools/register-workflow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAM7D"}
1
+ {"version":3,"file":"register-workflow.d.ts","sourceRoot":"","sources":["../../src/tools/register-workflow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAM7D"}
@@ -7,6 +7,7 @@ import { JUDGES } from "../judges/index.js";
7
7
  import { evaluateProject, evaluateDiff, analyzeDependencies, runAppBuilderWorkflow } from "../evaluators/index.js";
8
8
  import { generatePublicRepoReport } from "../reports/public-repo-report.js";
9
9
  import { configSchema, toJudgesConfig } from "./schemas.js";
10
+ import { filterFalsePositivesWithLlm, formatFilterResultAsMarkdown } from "../llm-fp-filter.js";
10
11
  /**
11
12
  * Register workflow-focused tools: evaluate_public_repo_report, evaluate_project,
12
13
  * evaluate_diff, evaluate_app_builder_flow, and analyze_dependencies.
@@ -314,21 +315,26 @@ function registerEvaluateDiff(server) {
314
315
  minConfidence,
315
316
  config: toJudgesConfig(config),
316
317
  });
318
+ // Apply LLM false-positive filter when available
319
+ const filterResult = await filterFalsePositivesWithLlm(result.findings, code, language);
320
+ const activeFindings = filterResult.llmUsed ? filterResult.filteredFindings : result.findings;
321
+ const filterSection = formatFilterResultAsMarkdown(filterResult);
317
322
  let md = `# Diff Analysis\n\n`;
318
323
  md += `**Verdict:** ${result.verdict.toUpperCase()} (${result.score}/100)\n`;
319
324
  md += `**Changed lines analyzed:** ${result.linesAnalyzed}\n`;
320
- md += `**Findings in changed code:** ${result.findings.length}\n\n`;
321
- if (result.findings.length === 0) {
325
+ md += `**Findings in changed code:** ${activeFindings.length}\n\n`;
326
+ if (activeFindings.length === 0) {
322
327
  md += `No issues found in the changed lines.\n`;
323
328
  }
324
329
  else {
325
- for (const f of result.findings) {
330
+ for (const f of activeFindings) {
326
331
  md += `### ${f.ruleId}: ${f.title}\n`;
327
332
  md += `**Severity:** ${f.severity} | **Lines:** ${f.lineNumbers?.join(", ") ?? "N/A"}\n\n`;
328
333
  md += `${f.description}\n\n`;
329
334
  md += `**Recommendation:** ${f.recommendation}\n\n`;
330
335
  }
331
336
  }
337
+ md += filterSection;
332
338
  return { content: [{ type: "text", text: md }] };
333
339
  }
334
340
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"register-workflow.js","sourceRoot":"","sources":["../../src/tools/register-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-workflow.js","sourceRoot":"","sources":["../../src/tools/register-workflow.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kevinrabun/judges",
3
- "version": "3.13.10",
3
+ "version": "3.14.0",
4
4
  "description": "35 specialized judges that evaluate AI-generated code for security, cost, and quality.",
5
5
  "mcpName": "io.github.KevinRabun/judges",
6
6
  "type": "module",
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "url": "https://github.com/kevinrabun/judges",
8
8
  "source": "github"
9
9
  },
10
- "version": "3.13.10",
10
+ "version": "3.14.0",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@kevinrabun/judges",
15
- "version": "3.13.10",
15
+ "version": "3.14.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  }