@kevinrabun/judges 3.20.13 → 3.21.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 (57) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/ast/taint-tracker.d.ts +3 -1
  3. package/dist/ast/taint-tracker.d.ts.map +1 -1
  4. package/dist/ast/taint-tracker.js +523 -12
  5. package/dist/ast/taint-tracker.js.map +1 -1
  6. package/dist/evaluators/authentication.d.ts +2 -2
  7. package/dist/evaluators/authentication.d.ts.map +1 -1
  8. package/dist/evaluators/authentication.js +26 -2
  9. package/dist/evaluators/authentication.js.map +1 -1
  10. package/dist/evaluators/cybersecurity.d.ts +2 -2
  11. package/dist/evaluators/cybersecurity.d.ts.map +1 -1
  12. package/dist/evaluators/cybersecurity.js +58 -5
  13. package/dist/evaluators/cybersecurity.js.map +1 -1
  14. package/dist/evaluators/false-positive-review.d.ts.map +1 -1
  15. package/dist/evaluators/false-positive-review.js +104 -10
  16. package/dist/evaluators/false-positive-review.js.map +1 -1
  17. package/dist/evaluators/framework-safety.d.ts.map +1 -1
  18. package/dist/evaluators/framework-safety.js +855 -365
  19. package/dist/evaluators/framework-safety.js.map +1 -1
  20. package/dist/evaluators/index.d.ts.map +1 -1
  21. package/dist/evaluators/index.js +5 -1
  22. package/dist/evaluators/index.js.map +1 -1
  23. package/dist/evaluators/performance.d.ts +2 -2
  24. package/dist/evaluators/performance.d.ts.map +1 -1
  25. package/dist/evaluators/performance.js +33 -4
  26. package/dist/evaluators/performance.js.map +1 -1
  27. package/dist/evaluators/project.d.ts.map +1 -1
  28. package/dist/evaluators/project.js +200 -0
  29. package/dist/evaluators/project.js.map +1 -1
  30. package/dist/evaluators/shared.d.ts +31 -3
  31. package/dist/evaluators/shared.d.ts.map +1 -1
  32. package/dist/evaluators/shared.js +145 -11
  33. package/dist/evaluators/shared.js.map +1 -1
  34. package/dist/language-patterns.d.ts +136 -0
  35. package/dist/language-patterns.d.ts.map +1 -1
  36. package/dist/language-patterns.js +155 -1
  37. package/dist/language-patterns.js.map +1 -1
  38. package/dist/patches/index.d.ts.map +1 -1
  39. package/dist/patches/index.js +210 -0
  40. package/dist/patches/index.js.map +1 -1
  41. package/dist/tools/register-fix.d.ts +6 -0
  42. package/dist/tools/register-fix.d.ts.map +1 -0
  43. package/dist/tools/register-fix.js +153 -0
  44. package/dist/tools/register-fix.js.map +1 -0
  45. package/dist/tools/register-workspace.d.ts +3 -0
  46. package/dist/tools/register-workspace.d.ts.map +1 -0
  47. package/dist/tools/register-workspace.js +215 -0
  48. package/dist/tools/register-workspace.js.map +1 -0
  49. package/dist/tools/register.d.ts +1 -1
  50. package/dist/tools/register.d.ts.map +1 -1
  51. package/dist/tools/register.js +5 -1
  52. package/dist/tools/register.js.map +1 -1
  53. package/dist/tools/schemas.d.ts +2 -2
  54. package/dist/types.d.ts +18 -2
  55. package/dist/types.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/server.json +18 -2
@@ -0,0 +1,215 @@
1
+ // ─── MCP Workspace & Streaming Tools ─────────────────────────────────────────
2
+ // Provides file-browsing MCP tools (list_files, read_file) so that AI agents
3
+ // can explore the workspace being evaluated, plus a streaming progress helper
4
+ // for long-running evaluations.
5
+ // ──────────────────────────────────────────────────────────────────────────────
6
+ import { z } from "zod";
7
+ import { readdirSync, readFileSync, statSync, existsSync } from "fs";
8
+ import { join, resolve } from "path";
9
+ // ─── Constants ───────────────────────────────────────────────────────────────
10
+ /** Maximum directory depth for recursive listing to prevent runaway traversal. */
11
+ const MAX_LIST_DEPTH = 6;
12
+ /** Maximum number of entries returned by list_files to cap response size. */
13
+ const MAX_LIST_ENTRIES = 500;
14
+ /** Maximum file size (bytes) that read_file will serve (1 MB). */
15
+ const MAX_READ_SIZE = 1_048_576;
16
+ /** Directories to always skip when listing. */
17
+ const SKIP_DIRS = new Set([
18
+ "node_modules",
19
+ ".git",
20
+ "__pycache__",
21
+ ".venv",
22
+ "venv",
23
+ ".tox",
24
+ ".mypy_cache",
25
+ ".pytest_cache",
26
+ "dist",
27
+ "build",
28
+ ".next",
29
+ ".nuxt",
30
+ "coverage",
31
+ ".angular",
32
+ "bin",
33
+ "obj",
34
+ "target",
35
+ ".gradle",
36
+ ".idea",
37
+ ]);
38
+ /**
39
+ * Recursively list files under `root` up to `maxDepth`, respecting SKIP_DIRS.
40
+ */
41
+ function listDirectory(root, basePath, maxDepth, entries) {
42
+ if (maxDepth < 0 || entries.length >= MAX_LIST_ENTRIES)
43
+ return;
44
+ let items;
45
+ try {
46
+ items = readdirSync(root);
47
+ }
48
+ catch {
49
+ return; // permission denied or symlink loop
50
+ }
51
+ for (const name of items) {
52
+ if (entries.length >= MAX_LIST_ENTRIES)
53
+ break;
54
+ if (name.startsWith(".") && name !== ".github")
55
+ continue;
56
+ const fullPath = join(root, name);
57
+ let stat;
58
+ try {
59
+ stat = statSync(fullPath);
60
+ }
61
+ catch {
62
+ continue;
63
+ }
64
+ const relPath = basePath ? `${basePath}/${name}` : name;
65
+ if (stat.isDirectory()) {
66
+ if (SKIP_DIRS.has(name))
67
+ continue;
68
+ entries.push({ path: relPath, type: "directory" });
69
+ listDirectory(fullPath, relPath, maxDepth - 1, entries);
70
+ }
71
+ else {
72
+ entries.push({ path: relPath, type: "file", size: stat.size });
73
+ }
74
+ }
75
+ }
76
+ // ─── Tool Registration ──────────────────────────────────────────────────────
77
+ export function registerWorkspaceTools(server) {
78
+ // ── list_files ─────────────────────────────────────────────────────────────
79
+ server.tool("list_files", "List files and directories in the workspace. Useful for exploring project structure before evaluating code.", {
80
+ path: z.string().optional().describe("Relative directory path to list (default: workspace root)"),
81
+ depth: z
82
+ .number()
83
+ .int()
84
+ .min(0)
85
+ .max(MAX_LIST_DEPTH)
86
+ .optional()
87
+ .describe(`Max recursion depth (default: 2, max: ${MAX_LIST_DEPTH})`),
88
+ }, async ({ path: dirPath = ".", depth = 2 }) => {
89
+ // Resolve relative to CWD (which MCP server sets to workspace root)
90
+ const resolved = resolve(process.cwd(), dirPath);
91
+ if (!existsSync(resolved)) {
92
+ return {
93
+ content: [{ type: "text", text: `Error: path "${dirPath}" does not exist.` }],
94
+ isError: true,
95
+ };
96
+ }
97
+ const entries = [];
98
+ listDirectory(resolved, "", depth, entries);
99
+ const summary = `Listed ${entries.length} entries (max depth ${depth})` +
100
+ (entries.length >= MAX_LIST_ENTRIES ? ` — truncated at ${MAX_LIST_ENTRIES}` : "");
101
+ return {
102
+ content: [{ type: "text", text: JSON.stringify({ summary, entries }, null, 2) }],
103
+ };
104
+ });
105
+ // ── read_file ──────────────────────────────────────────────────────────────
106
+ server.tool("read_file", "Read the contents of a file in the workspace. Returns the file text, or an error if the file is too large or missing.", {
107
+ path: z.string().describe("Relative file path to read"),
108
+ startLine: z.number().int().min(1).optional().describe("First line to read (1-based, default: 1)"),
109
+ endLine: z.number().int().min(1).optional().describe("Last line to read (1-based, default: end of file)"),
110
+ }, async ({ path: filePath, startLine, endLine }) => {
111
+ const resolved = resolve(process.cwd(), filePath);
112
+ if (!existsSync(resolved)) {
113
+ return {
114
+ content: [{ type: "text", text: `Error: file "${filePath}" does not exist.` }],
115
+ isError: true,
116
+ };
117
+ }
118
+ let stat;
119
+ try {
120
+ stat = statSync(resolved);
121
+ }
122
+ catch {
123
+ return {
124
+ content: [{ type: "text", text: `Error: cannot stat "${filePath}".` }],
125
+ isError: true,
126
+ };
127
+ }
128
+ if (stat.isDirectory()) {
129
+ return {
130
+ content: [{ type: "text", text: `Error: "${filePath}" is a directory. Use list_files instead.` }],
131
+ isError: true,
132
+ };
133
+ }
134
+ if (stat.size > MAX_READ_SIZE) {
135
+ return {
136
+ content: [
137
+ {
138
+ type: "text",
139
+ text: `Error: file is ${stat.size} bytes — exceeds ${MAX_READ_SIZE} byte limit. Use startLine/endLine to read a portion.`,
140
+ },
141
+ ],
142
+ isError: true,
143
+ };
144
+ }
145
+ let content;
146
+ try {
147
+ content = readFileSync(resolved, "utf-8");
148
+ }
149
+ catch (err) {
150
+ return {
151
+ content: [{ type: "text", text: `Error reading file: ${String(err)}` }],
152
+ isError: true,
153
+ };
154
+ }
155
+ // Apply line range if specified
156
+ if (startLine || endLine) {
157
+ const lines = content.split("\n");
158
+ const start = (startLine ?? 1) - 1;
159
+ const end = endLine ?? lines.length;
160
+ content = lines.slice(start, end).join("\n");
161
+ const totalLines = lines.length;
162
+ return {
163
+ content: [
164
+ {
165
+ type: "text",
166
+ text: `File: ${filePath} (lines ${start + 1}–${Math.min(end, totalLines)} of ${totalLines})\n\n${content}`,
167
+ },
168
+ ],
169
+ };
170
+ }
171
+ return {
172
+ content: [{ type: "text", text: content }],
173
+ };
174
+ });
175
+ // ── evaluate_with_progress ─────────────────────────────────────────────────
176
+ // This tool provides a streaming-style progress experience by evaluating
177
+ // judges sequentially and reporting counts as findings are discovered.
178
+ server.tool("evaluate_with_progress", "Evaluate code with progressive judge-by-judge reporting. Returns intermediate counts as each judge completes, useful for large files where full tribunal takes time.", {
179
+ code: z.string().describe("Source code to evaluate"),
180
+ language: z.string().describe("Programming language (e.g. typescript, python, go)"),
181
+ }, async ({ code, language }) => {
182
+ // Lazy import to avoid circular dependencies
183
+ const { evaluateWithJudge } = await import("../evaluators/index.js");
184
+ const { JUDGES } = await import("../judges/index.js");
185
+ const { crossEvaluatorDedup } = await import("../dedup.js");
186
+ const allFindings = [];
187
+ const progressLines = [];
188
+ for (const judge of JUDGES) {
189
+ const evaluation = evaluateWithJudge(judge, code, language);
190
+ allFindings.push({ judgeId: judge.id, findings: evaluation.findings });
191
+ if (evaluation.findings.length > 0) {
192
+ progressLines.push(`[${allFindings.length}/${JUDGES.length}] ${judge.name}: ${evaluation.findings.length} findings (${evaluation.verdict})`);
193
+ }
194
+ }
195
+ // Dedup across all evaluations
196
+ const combined = allFindings.flatMap((e) => e.findings);
197
+ const deduped = crossEvaluatorDedup(combined);
198
+ const summary = [
199
+ `## Progressive Evaluation Complete`,
200
+ ``,
201
+ `**Judges run:** ${JUDGES.length}`,
202
+ `**Raw findings:** ${combined.length}`,
203
+ `**After dedup:** ${deduped.length}`,
204
+ `**Critical:** ${deduped.filter((f) => f.severity === "critical").length}`,
205
+ `**High:** ${deduped.filter((f) => f.severity === "high").length}`,
206
+ ``,
207
+ `### Judge Progress:`,
208
+ ...progressLines,
209
+ ].join("\n");
210
+ return {
211
+ content: [{ type: "text", text: summary }],
212
+ };
213
+ });
214
+ }
215
+ //# sourceMappingURL=register-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-workspace.js","sourceRoot":"","sources":["../../src/tools/register-workspace.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  /**
3
3
  * Register all MCP tools on the given server instance.
4
- * Delegates to focused modules for evaluation and workflow tools.
4
+ * Delegates to focused modules for evaluation, workflow, fix, and workspace tools.
5
5
  */
6
6
  export declare function registerTools(server: McpServer): void;
7
7
  //# sourceMappingURL=register.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAGrD"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAKrD"}
@@ -3,12 +3,16 @@
3
3
  // ──────────────────────────────────────────────────────────────────────────────
4
4
  import { registerEvaluationTools } from "./register-evaluation.js";
5
5
  import { registerWorkflowTools } from "./register-workflow.js";
6
+ import { registerFixTools } from "./register-fix.js";
7
+ import { registerWorkspaceTools } from "./register-workspace.js";
6
8
  /**
7
9
  * Register all MCP tools on the given server instance.
8
- * Delegates to focused modules for evaluation and workflow tools.
10
+ * Delegates to focused modules for evaluation, workflow, fix, and workspace tools.
9
11
  */
10
12
  export function registerTools(server) {
11
13
  registerEvaluationTools(server);
12
14
  registerWorkflowTools(server);
15
+ registerFixTools(server);
16
+ registerWorkspaceTools(server);
13
17
  }
14
18
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,mEAAmE;AACnE,iFAAiF;AAGjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,mEAAmE;AACnE,iFAAiF;AAGjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -4,20 +4,20 @@ export declare const configSchema: z.ZodOptional<z.ZodObject<{
4
4
  disabledRules: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
5
  disabledJudges: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
6
  minSeverity: z.ZodOptional<z.ZodEnum<{
7
+ info: "info";
7
8
  critical: "critical";
8
9
  high: "high";
9
10
  medium: "medium";
10
11
  low: "low";
11
- info: "info";
12
12
  }>>;
13
13
  ruleOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
14
14
  disabled: z.ZodOptional<z.ZodBoolean>;
15
15
  severity: z.ZodOptional<z.ZodEnum<{
16
+ info: "info";
16
17
  critical: "critical";
17
18
  high: "high";
18
19
  medium: "medium";
19
20
  low: "low";
20
- info: "info";
21
21
  }>>;
22
22
  }, z.core.$strip>>>;
23
23
  }, z.core.$strip>>;
package/dist/types.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { CodeStructure } from "./ast/types.js";
2
+ import type { TaintFlow } from "./ast/taint-tracker.js";
1
3
  /**
2
4
  * Severity levels for judge findings.
3
5
  */
@@ -71,7 +73,7 @@ export interface Patch {
71
73
  /**
72
74
  * Supported language families for multi-language analysis.
73
75
  */
74
- export type LangFamily = "javascript" | "typescript" | "python" | "rust" | "csharp" | "java" | "go" | "cpp" | "powershell" | "terraform" | "bicep" | "arm" | "unknown";
76
+ export type LangFamily = "javascript" | "typescript" | "python" | "rust" | "csharp" | "java" | "go" | "cpp" | "php" | "ruby" | "kotlin" | "swift" | "powershell" | "terraform" | "bicep" | "arm" | "unknown";
75
77
  /**
76
78
  * Per-rule configuration override.
77
79
  */
@@ -395,6 +397,17 @@ export interface MustFixGateResult {
395
397
  /**
396
398
  * Definition of a judge — their identity, expertise, and evaluation criteria.
397
399
  */
400
+ /**
401
+ * Optional context passed to judge analyze functions. Provides pre-computed
402
+ * AST structure and taint flows so evaluators can make scope-aware, import-
403
+ * aware, and data-flow-aware decisions without re-parsing.
404
+ */
405
+ export interface AnalyzeContext {
406
+ /** Pre-computed AST structure (functions, imports, classes, decorators, etc.) */
407
+ ast?: CodeStructure;
408
+ /** Pre-computed taint flows (source → sink data-flow chains) */
409
+ taintFlows?: TaintFlow[];
410
+ }
398
411
  export interface JudgeDefinition {
399
412
  /** Unique identifier */
400
413
  id: string;
@@ -412,7 +425,10 @@ export interface JudgeDefinition {
412
425
  * The analyzer function for this judge. Each judge carries its own analysis
413
426
  * logic, eliminating the need for a central dispatch switch. Wired up
414
427
  * automatically in the judge registry (judges/index.ts).
428
+ *
429
+ * The optional third parameter provides pre-computed AST data (structure,
430
+ * taint flows) so evaluators can make scope-aware decisions without re-parsing.
415
431
  */
416
- analyze?: (code: string, language: string) => Finding[];
432
+ analyze?: (code: string, language: string, context?: AnalyzeContext) => Finding[];
417
433
  }
418
434
  //# sourceMappingURL=types.d.ts.map
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kevinrabun/judges",
3
- "version": "3.20.13",
3
+ "version": "3.21.0",
4
4
  "description": "37 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.20.13",
10
+ "version": "3.21.0",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@kevinrabun/judges",
15
- "version": "3.20.13",
15
+ "version": "3.21.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  }
@@ -54,6 +54,22 @@
54
54
  {
55
55
  "name": "evaluate_public_repo_report",
56
56
  "description": "Clone a public repository URL, run the full judges panel, and generate a consolidated markdown report."
57
+ },
58
+ {
59
+ "name": "fix_code",
60
+ "description": "Evaluate code and automatically apply all available auto-fix patches. Returns the fixed code along with a summary of applied and remaining findings."
61
+ },
62
+ {
63
+ "name": "list_files",
64
+ "description": "List files and directories in the workspace. Useful for exploring project structure before evaluating code."
65
+ },
66
+ {
67
+ "name": "read_file",
68
+ "description": "Read the contents of a file in the workspace. Returns the file text with optional line-range slicing."
69
+ },
70
+ {
71
+ "name": "evaluate_with_progress",
72
+ "description": "Evaluate code with progressive judge-by-judge reporting. Returns intermediate counts as each judge completes, useful for large files."
57
73
  }
58
74
  ],
59
75
  "prompts": [