@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.
- package/CHANGELOG.md +44 -0
- package/dist/api.d.ts +18 -5
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +15 -3
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +54 -36
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto-detect.d.ts +62 -0
- package/dist/commands/auto-detect.d.ts.map +1 -0
- package/dist/commands/auto-detect.js +329 -0
- package/dist/commands/auto-detect.js.map +1 -0
- package/dist/commands/baseline.d.ts +46 -0
- package/dist/commands/baseline.d.ts.map +1 -1
- package/dist/commands/baseline.js +290 -27
- package/dist/commands/baseline.js.map +1 -1
- package/dist/commands/benchmark.d.ts +21 -3
- package/dist/commands/benchmark.d.ts.map +1 -1
- package/dist/commands/benchmark.js +365 -6
- package/dist/commands/benchmark.js.map +1 -1
- package/dist/commands/coverage.d.ts +41 -0
- package/dist/commands/coverage.d.ts.map +1 -0
- package/dist/commands/coverage.js +184 -0
- package/dist/commands/coverage.js.map +1 -0
- package/dist/commands/doctor.d.ts +56 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +363 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/feedback.d.ts +42 -0
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +129 -0
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/rule-metrics.d.ts +44 -0
- package/dist/commands/rule-metrics.d.ts.map +1 -0
- package/dist/commands/rule-metrics.js +114 -0
- package/dist/commands/rule-metrics.js.map +1 -0
- package/dist/commands/rule.d.ts +65 -0
- package/dist/commands/rule.d.ts.map +1 -1
- package/dist/commands/rule.js +94 -0
- package/dist/commands/rule.js.map +1 -1
- package/dist/commands/snapshot.d.ts +81 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +189 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/config.d.ts +35 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +187 -2
- package/dist/config.js.map +1 -1
- package/dist/dedup.d.ts +35 -0
- package/dist/dedup.d.ts.map +1 -1
- package/dist/dedup.js +96 -0
- package/dist/dedup.js.map +1 -1
- package/dist/evaluators/index.d.ts +22 -2
- package/dist/evaluators/index.d.ts.map +1 -1
- package/dist/evaluators/index.js +144 -52
- package/dist/evaluators/index.js.map +1 -1
- package/dist/patches/index.d.ts.map +1 -1
- package/dist/patches/index.js +426 -0
- package/dist/patches/index.js.map +1 -1
- package/dist/types.d.ts +43 -0
- package/dist/types.d.ts.map +1 -1
- package/judgesrc.schema.json +5 -0
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -1288,6 +1288,304 @@ def login():
|
|
|
1288
1288
|
category: "clean",
|
|
1289
1289
|
difficulty: "hard",
|
|
1290
1290
|
},
|
|
1291
|
+
// ── Hard Cases: Subtle/Obfuscated Vulnerabilities ────────────────────────
|
|
1292
|
+
// ── Indirect injection through helper function ──
|
|
1293
|
+
{
|
|
1294
|
+
id: "hard-indirect-sql-injection",
|
|
1295
|
+
description: "SQL injection hidden behind helper function indirection",
|
|
1296
|
+
language: "typescript",
|
|
1297
|
+
code: `function buildQuery(table: string, filter: string): string {
|
|
1298
|
+
return "SELECT * FROM " + table + " WHERE " + filter;
|
|
1299
|
+
}
|
|
1300
|
+
app.get("/search", (req, res) => {
|
|
1301
|
+
const query = buildQuery("users", "name = '" + req.query.name + "'");
|
|
1302
|
+
db.query(query);
|
|
1303
|
+
res.send("ok");
|
|
1304
|
+
});`,
|
|
1305
|
+
expectedRuleIds: ["CYBER-001", "CYBER-002"],
|
|
1306
|
+
category: "injection",
|
|
1307
|
+
difficulty: "hard",
|
|
1308
|
+
},
|
|
1309
|
+
// ── SSRF via parameter composition ──
|
|
1310
|
+
{
|
|
1311
|
+
id: "hard-ssrf",
|
|
1312
|
+
description: "Server-side request forgery via user-controlled URL",
|
|
1313
|
+
language: "typescript",
|
|
1314
|
+
code: `import express from "express";
|
|
1315
|
+
const app = express();
|
|
1316
|
+
app.get("/proxy", async (req, res) => {
|
|
1317
|
+
const targetUrl = req.query.url as string;
|
|
1318
|
+
const response = await fetch(targetUrl);
|
|
1319
|
+
const body = await response.text();
|
|
1320
|
+
res.send(body);
|
|
1321
|
+
});`,
|
|
1322
|
+
expectedRuleIds: ["CYBER-001", "CYBER-002", "SEC-001"],
|
|
1323
|
+
category: "injection",
|
|
1324
|
+
difficulty: "hard",
|
|
1325
|
+
},
|
|
1326
|
+
// ── Prototype pollution ──
|
|
1327
|
+
{
|
|
1328
|
+
id: "hard-prototype-pollution",
|
|
1329
|
+
description: "Prototype pollution via recursive merge of user input",
|
|
1330
|
+
language: "javascript",
|
|
1331
|
+
code: `function deepMerge(target, source) {
|
|
1332
|
+
for (const key in source) {
|
|
1333
|
+
if (typeof source[key] === "object" && source[key] !== null) {
|
|
1334
|
+
if (!target[key]) target[key] = {};
|
|
1335
|
+
deepMerge(target[key], source[key]);
|
|
1336
|
+
} else {
|
|
1337
|
+
target[key] = source[key];
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
return target;
|
|
1341
|
+
}
|
|
1342
|
+
app.post("/config", (req, res) => {
|
|
1343
|
+
const config = deepMerge({}, req.body);
|
|
1344
|
+
res.json(config);
|
|
1345
|
+
});`,
|
|
1346
|
+
expectedRuleIds: ["CYBER-001", "SEC-001"],
|
|
1347
|
+
category: "injection",
|
|
1348
|
+
difficulty: "hard",
|
|
1349
|
+
},
|
|
1350
|
+
// ── JWT none algorithm attack ──
|
|
1351
|
+
{
|
|
1352
|
+
id: "hard-jwt-none-algorithm",
|
|
1353
|
+
description: "JWT verification allowing none algorithm",
|
|
1354
|
+
language: "typescript",
|
|
1355
|
+
code: `import jwt from "jsonwebtoken";
|
|
1356
|
+
app.use((req, res, next) => {
|
|
1357
|
+
const token = req.headers.authorization?.split(" ")[1];
|
|
1358
|
+
if (!token) return res.status(401).send("No token");
|
|
1359
|
+
const decoded = jwt.decode(token);
|
|
1360
|
+
if (decoded && (decoded as any).role === "admin") {
|
|
1361
|
+
req.user = decoded;
|
|
1362
|
+
next();
|
|
1363
|
+
} else {
|
|
1364
|
+
res.status(403).send("Forbidden");
|
|
1365
|
+
}
|
|
1366
|
+
});`,
|
|
1367
|
+
expectedRuleIds: ["AUTH-001", "AUTH-002", "SEC-001"],
|
|
1368
|
+
category: "auth",
|
|
1369
|
+
difficulty: "hard",
|
|
1370
|
+
},
|
|
1371
|
+
// ── Mass assignment ──
|
|
1372
|
+
{
|
|
1373
|
+
id: "hard-mass-assignment",
|
|
1374
|
+
description: "Mass assignment allowing privilege escalation",
|
|
1375
|
+
language: "typescript",
|
|
1376
|
+
code: `app.put("/api/users/:id", async (req, res) => {
|
|
1377
|
+
// Directly spreading user input into DB update — allows setting isAdmin, role, etc.
|
|
1378
|
+
await db.query("UPDATE users SET ? WHERE id = ?", [req.body, req.params.id]);
|
|
1379
|
+
res.json({ updated: true });
|
|
1380
|
+
});
|
|
1381
|
+
|
|
1382
|
+
app.post("/api/register", async (req, res) => {
|
|
1383
|
+
const user = { ...req.body, createdAt: new Date() };
|
|
1384
|
+
await db.query("INSERT INTO users SET ?", [user]);
|
|
1385
|
+
res.json({ id: user.id });
|
|
1386
|
+
});`,
|
|
1387
|
+
expectedRuleIds: ["CYBER-001", "SEC-001"],
|
|
1388
|
+
category: "security",
|
|
1389
|
+
difficulty: "hard",
|
|
1390
|
+
},
|
|
1391
|
+
// ── Open redirect ──
|
|
1392
|
+
{
|
|
1393
|
+
id: "hard-open-redirect",
|
|
1394
|
+
description: "Open redirect via unvalidated user-controlled redirect URL",
|
|
1395
|
+
language: "typescript",
|
|
1396
|
+
code: `app.get("/login/callback", (req, res) => {
|
|
1397
|
+
const returnTo = req.query.returnTo as string || "/dashboard";
|
|
1398
|
+
// Authenticate user...
|
|
1399
|
+
res.redirect(returnTo);
|
|
1400
|
+
});
|
|
1401
|
+
|
|
1402
|
+
app.get("/logout", (req, res) => {
|
|
1403
|
+
req.session.destroy(() => {
|
|
1404
|
+
res.redirect(req.query.next as string);
|
|
1405
|
+
});
|
|
1406
|
+
});`,
|
|
1407
|
+
expectedRuleIds: ["CYBER-001", "SEC-001"],
|
|
1408
|
+
category: "security",
|
|
1409
|
+
difficulty: "hard",
|
|
1410
|
+
},
|
|
1411
|
+
// ── Timing attack on comparison ──
|
|
1412
|
+
{
|
|
1413
|
+
id: "hard-timing-attack",
|
|
1414
|
+
description: "Non-constant-time string comparison for secrets",
|
|
1415
|
+
language: "typescript",
|
|
1416
|
+
code: `app.post("/api/webhook", (req, res) => {
|
|
1417
|
+
const signature = req.headers["x-webhook-signature"] as string;
|
|
1418
|
+
const expected = computeHmac(req.body, process.env.WEBHOOK_SECRET!);
|
|
1419
|
+
if (signature === expected) {
|
|
1420
|
+
processWebhook(req.body);
|
|
1421
|
+
res.json({ ok: true });
|
|
1422
|
+
} else {
|
|
1423
|
+
res.status(401).json({ error: "Invalid signature" });
|
|
1424
|
+
}
|
|
1425
|
+
});`,
|
|
1426
|
+
expectedRuleIds: ["AUTH-001", "SEC-001", "CYBER-001"],
|
|
1427
|
+
category: "auth",
|
|
1428
|
+
difficulty: "hard",
|
|
1429
|
+
},
|
|
1430
|
+
// ── Python pickle deserialization ──
|
|
1431
|
+
{
|
|
1432
|
+
id: "hard-python-pickle",
|
|
1433
|
+
description: "Python pickle deserialization of untrusted data",
|
|
1434
|
+
language: "python",
|
|
1435
|
+
code: `import pickle
|
|
1436
|
+
import base64
|
|
1437
|
+
from flask import Flask, request
|
|
1438
|
+
|
|
1439
|
+
app = Flask(__name__)
|
|
1440
|
+
|
|
1441
|
+
@app.route("/load", methods=["POST"])
|
|
1442
|
+
def load_data():
|
|
1443
|
+
encoded = request.form.get("data")
|
|
1444
|
+
data = pickle.loads(base64.b64decode(encoded))
|
|
1445
|
+
return str(data)`,
|
|
1446
|
+
expectedRuleIds: ["CYBER-001", "CYBER-002"],
|
|
1447
|
+
category: "injection",
|
|
1448
|
+
difficulty: "hard",
|
|
1449
|
+
},
|
|
1450
|
+
// ── Go race condition with shared state ──
|
|
1451
|
+
{
|
|
1452
|
+
id: "hard-go-race-condition",
|
|
1453
|
+
description: "Go HTTP handler with unsynchronized shared map",
|
|
1454
|
+
language: "go",
|
|
1455
|
+
code: `package main
|
|
1456
|
+
|
|
1457
|
+
import (
|
|
1458
|
+
"net/http"
|
|
1459
|
+
"encoding/json"
|
|
1460
|
+
)
|
|
1461
|
+
|
|
1462
|
+
var cache = make(map[string]string)
|
|
1463
|
+
|
|
1464
|
+
func handler(w http.ResponseWriter, r *http.Request) {
|
|
1465
|
+
key := r.URL.Query().Get("key")
|
|
1466
|
+
if r.Method == "GET" {
|
|
1467
|
+
json.NewEncoder(w).Encode(cache[key])
|
|
1468
|
+
} else {
|
|
1469
|
+
val := r.URL.Query().Get("val")
|
|
1470
|
+
cache[key] = val
|
|
1471
|
+
w.Write([]byte("ok"))
|
|
1472
|
+
}
|
|
1473
|
+
}`,
|
|
1474
|
+
expectedRuleIds: ["CONC-001"],
|
|
1475
|
+
category: "concurrency",
|
|
1476
|
+
difficulty: "hard",
|
|
1477
|
+
},
|
|
1478
|
+
// ── Java XXE ──
|
|
1479
|
+
{
|
|
1480
|
+
id: "hard-java-xxe",
|
|
1481
|
+
description: "Java XML External Entity injection",
|
|
1482
|
+
language: "java",
|
|
1483
|
+
code: `import javax.xml.parsers.*;
|
|
1484
|
+
import org.w3c.dom.*;
|
|
1485
|
+
import javax.servlet.http.*;
|
|
1486
|
+
import java.io.*;
|
|
1487
|
+
|
|
1488
|
+
public class XmlServlet extends HttpServlet {
|
|
1489
|
+
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
|
|
1490
|
+
throws Exception {
|
|
1491
|
+
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
|
1492
|
+
DocumentBuilder builder = factory.newDocumentBuilder();
|
|
1493
|
+
Document doc = builder.parse(req.getInputStream());
|
|
1494
|
+
String name = doc.getElementsByTagName("name").item(0).getTextContent();
|
|
1495
|
+
resp.getWriter().write("Hello " + name);
|
|
1496
|
+
}
|
|
1497
|
+
}`,
|
|
1498
|
+
expectedRuleIds: ["CYBER-001", "CYBER-002", "SEC-001"],
|
|
1499
|
+
category: "injection",
|
|
1500
|
+
difficulty: "hard",
|
|
1501
|
+
},
|
|
1502
|
+
// ── C# SQL injection via dynamic LINQ ──
|
|
1503
|
+
{
|
|
1504
|
+
id: "hard-csharp-sql-injection",
|
|
1505
|
+
description: "C# SQL injection via string interpolation in Entity Framework",
|
|
1506
|
+
language: "csharp",
|
|
1507
|
+
code: `using Microsoft.AspNetCore.Mvc;
|
|
1508
|
+
using Microsoft.EntityFrameworkCore;
|
|
1509
|
+
|
|
1510
|
+
[ApiController]
|
|
1511
|
+
[Route("api/[controller]")]
|
|
1512
|
+
public class UsersController : ControllerBase
|
|
1513
|
+
{
|
|
1514
|
+
private readonly AppDbContext _db;
|
|
1515
|
+
|
|
1516
|
+
[HttpGet("search")]
|
|
1517
|
+
public async Task<IActionResult> Search(string query)
|
|
1518
|
+
{
|
|
1519
|
+
var users = await _db.Users
|
|
1520
|
+
.FromSqlRaw($"SELECT * FROM Users WHERE Name LIKE '%{query}%'")
|
|
1521
|
+
.ToListAsync();
|
|
1522
|
+
return Ok(users);
|
|
1523
|
+
}
|
|
1524
|
+
}`,
|
|
1525
|
+
expectedRuleIds: ["CYBER-001", "CYBER-002"],
|
|
1526
|
+
category: "injection",
|
|
1527
|
+
difficulty: "hard",
|
|
1528
|
+
},
|
|
1529
|
+
// ── Rust unsafe memory access ──
|
|
1530
|
+
{
|
|
1531
|
+
id: "hard-rust-unsafe",
|
|
1532
|
+
description: "Rust unsafe block with unchecked pointer arithmetic",
|
|
1533
|
+
language: "rust",
|
|
1534
|
+
code: `use std::io::Read;
|
|
1535
|
+
|
|
1536
|
+
fn parse_packet(data: &[u8]) -> u64 {
|
|
1537
|
+
unsafe {
|
|
1538
|
+
let ptr = data.as_ptr();
|
|
1539
|
+
let len_ptr = ptr.add(4) as *const u32;
|
|
1540
|
+
let payload_len = *len_ptr as usize;
|
|
1541
|
+
// No bounds check — could read past buffer
|
|
1542
|
+
let value_ptr = ptr.add(8 + payload_len) as *const u64;
|
|
1543
|
+
*value_ptr
|
|
1544
|
+
}
|
|
1545
|
+
}`,
|
|
1546
|
+
expectedRuleIds: ["CYBER-001", "SEC-001"],
|
|
1547
|
+
category: "security",
|
|
1548
|
+
difficulty: "hard",
|
|
1549
|
+
},
|
|
1550
|
+
// ── Clean code — hardened Node.js (hard negative) ──
|
|
1551
|
+
{
|
|
1552
|
+
id: "clean-code-hardened-node",
|
|
1553
|
+
description: "Hardened Node.js service with CSP, rate-limit, validation, structured logging",
|
|
1554
|
+
language: "typescript",
|
|
1555
|
+
code: `import express from "express";
|
|
1556
|
+
import helmet from "helmet";
|
|
1557
|
+
import rateLimit from "express-rate-limit";
|
|
1558
|
+
import { z } from "zod";
|
|
1559
|
+
import pino from "pino";
|
|
1560
|
+
import crypto from "crypto";
|
|
1561
|
+
|
|
1562
|
+
const logger = pino({ level: "info" });
|
|
1563
|
+
const app = express();
|
|
1564
|
+
app.use(helmet({ contentSecurityPolicy: { directives: { defaultSrc: ["'self'"] } } }));
|
|
1565
|
+
app.use(express.json({ limit: "1kb" }));
|
|
1566
|
+
app.use(rateLimit({ windowMs: 60_000, max: 30, standardHeaders: true }));
|
|
1567
|
+
|
|
1568
|
+
const LoginSchema = z.object({
|
|
1569
|
+
email: z.string().email().max(254),
|
|
1570
|
+
password: z.string().min(12).max(128),
|
|
1571
|
+
});
|
|
1572
|
+
|
|
1573
|
+
app.post("/api/v1/login", async (req, res) => {
|
|
1574
|
+
const parsed = LoginSchema.safeParse(req.body);
|
|
1575
|
+
if (!parsed.success) return res.status(400).json({ error: parsed.error.issues });
|
|
1576
|
+
const user = await db.users.findUnique({ where: { email: parsed.data.email } });
|
|
1577
|
+
if (!user) return res.status(401).json({ error: "Invalid credentials" });
|
|
1578
|
+
const valid = await argon2.verify(user.passwordHash, parsed.data.password);
|
|
1579
|
+
if (!valid) { logger.warn({ email: parsed.data.email }, "Failed login"); return res.status(401).json({ error: "Invalid credentials" }); }
|
|
1580
|
+
const token = crypto.randomBytes(32).toString("hex");
|
|
1581
|
+
logger.info({ userId: user.id }, "Login success");
|
|
1582
|
+
res.json({ token });
|
|
1583
|
+
});`,
|
|
1584
|
+
expectedRuleIds: [],
|
|
1585
|
+
unexpectedRuleIds: ["CYBER-001", "CYBER-002", "AUTH-001", "SEC-001", "RATE-001"],
|
|
1586
|
+
category: "clean",
|
|
1587
|
+
difficulty: "hard",
|
|
1588
|
+
},
|
|
1291
1589
|
];
|
|
1292
1590
|
// ─── Benchmark Runner ───────────────────────────────────────────────────────
|
|
1293
1591
|
export function runBenchmarkSuite(cases, judgeId) {
|
|
@@ -1295,10 +1593,13 @@ export function runBenchmarkSuite(cases, judgeId) {
|
|
|
1295
1593
|
const caseResults = [];
|
|
1296
1594
|
const perCategory = {};
|
|
1297
1595
|
const perJudge = {};
|
|
1596
|
+
const perDifficulty = {};
|
|
1298
1597
|
let totalTP = 0;
|
|
1299
1598
|
let totalFN = 0;
|
|
1300
1599
|
let totalFP = 0;
|
|
1301
1600
|
let totalDetected = 0;
|
|
1601
|
+
let totalStrictTP = 0;
|
|
1602
|
+
let totalStrictFN = 0;
|
|
1302
1603
|
for (const tc of testCases) {
|
|
1303
1604
|
let findings;
|
|
1304
1605
|
if (judgeId) {
|
|
@@ -1313,7 +1614,7 @@ export function runBenchmarkSuite(cases, judgeId) {
|
|
|
1313
1614
|
findings = verdict.findings;
|
|
1314
1615
|
}
|
|
1315
1616
|
const foundRuleIds = [...new Set(findings.map((f) => f.ruleId))];
|
|
1316
|
-
//
|
|
1617
|
+
// Prefix-based matching (lenient — CYBER-001 matches any CYBER-*)
|
|
1317
1618
|
const expectedPrefixes = new Set(tc.expectedRuleIds.map((r) => r.split("-")[0]));
|
|
1318
1619
|
const detectedPrefixes = new Set(foundRuleIds.map((r) => r.split("-")[0]));
|
|
1319
1620
|
const matchedExpected = tc.expectedRuleIds.filter((expected) => {
|
|
@@ -1330,6 +1631,10 @@ export function runBenchmarkSuite(cases, judgeId) {
|
|
|
1330
1631
|
return tc.unexpectedRuleIds.some((u) => u.split("-")[0] === prefix);
|
|
1331
1632
|
})
|
|
1332
1633
|
: [];
|
|
1634
|
+
// Strict matching (exact rule-ID: CYBER-001 only matches CYBER-001)
|
|
1635
|
+
const foundRuleIdSet = new Set(foundRuleIds);
|
|
1636
|
+
const strictMatchedExpected = tc.expectedRuleIds.filter((expected) => foundRuleIdSet.has(expected));
|
|
1637
|
+
const strictMissedExpected = tc.expectedRuleIds.filter((expected) => !foundRuleIdSet.has(expected));
|
|
1333
1638
|
const caseTP = matchedExpected.length;
|
|
1334
1639
|
const caseFN = missedExpected.length;
|
|
1335
1640
|
const caseFP = falsePositiveIds.length;
|
|
@@ -1339,6 +1644,15 @@ export function runBenchmarkSuite(cases, judgeId) {
|
|
|
1339
1644
|
totalTP += caseTP;
|
|
1340
1645
|
totalFN += caseFN;
|
|
1341
1646
|
totalFP += caseFP;
|
|
1647
|
+
totalStrictTP += strictMatchedExpected.length;
|
|
1648
|
+
totalStrictFN += strictMissedExpected.length;
|
|
1649
|
+
// Per-difficulty tracking
|
|
1650
|
+
if (!perDifficulty[tc.difficulty]) {
|
|
1651
|
+
perDifficulty[tc.difficulty] = { difficulty: tc.difficulty, total: 0, detected: 0, detectionRate: 0 };
|
|
1652
|
+
}
|
|
1653
|
+
perDifficulty[tc.difficulty].total++;
|
|
1654
|
+
if (casePassed)
|
|
1655
|
+
perDifficulty[tc.difficulty].detected++;
|
|
1342
1656
|
caseResults.push({
|
|
1343
1657
|
caseId: tc.id,
|
|
1344
1658
|
category: tc.category,
|
|
@@ -1399,6 +1713,14 @@ export function runBenchmarkSuite(cases, judgeId) {
|
|
|
1399
1713
|
const precision = totalTP + totalFP > 0 ? totalTP / (totalTP + totalFP) : 1;
|
|
1400
1714
|
const recall = totalTP + totalFN > 0 ? totalTP / (totalTP + totalFN) : 1;
|
|
1401
1715
|
const f1Score = precision + recall > 0 ? (2 * precision * recall) / (precision + recall) : 0;
|
|
1716
|
+
// Strict metrics (exact rule-ID matching)
|
|
1717
|
+
const strictPrecision = totalStrictTP + totalFP > 0 ? totalStrictTP / (totalStrictTP + totalFP) : 1;
|
|
1718
|
+
const strictRecall = totalStrictTP + totalStrictFN > 0 ? totalStrictTP / (totalStrictTP + totalStrictFN) : 1;
|
|
1719
|
+
const strictF1Score = strictPrecision + strictRecall > 0 ? (2 * strictPrecision * strictRecall) / (strictPrecision + strictRecall) : 0;
|
|
1720
|
+
// Compute per-difficulty rates
|
|
1721
|
+
for (const d of Object.values(perDifficulty)) {
|
|
1722
|
+
d.detectionRate = d.total > 0 ? d.detected / d.total : 0;
|
|
1723
|
+
}
|
|
1402
1724
|
// Compute per-category metrics
|
|
1403
1725
|
for (const cat of Object.values(perCategory)) {
|
|
1404
1726
|
cat.precision =
|
|
@@ -1438,8 +1760,14 @@ export function runBenchmarkSuite(cases, judgeId) {
|
|
|
1438
1760
|
recall,
|
|
1439
1761
|
f1Score,
|
|
1440
1762
|
detectionRate: testCases.length > 0 ? totalDetected / testCases.length : 0,
|
|
1763
|
+
strictTruePositives: totalStrictTP,
|
|
1764
|
+
strictFalseNegatives: totalStrictFN,
|
|
1765
|
+
strictPrecision,
|
|
1766
|
+
strictRecall,
|
|
1767
|
+
strictF1Score,
|
|
1441
1768
|
perCategory,
|
|
1442
1769
|
perJudge,
|
|
1770
|
+
perDifficulty,
|
|
1443
1771
|
cases: caseResults,
|
|
1444
1772
|
};
|
|
1445
1773
|
}
|
|
@@ -1495,14 +1823,35 @@ export function formatBenchmarkReport(result) {
|
|
|
1495
1823
|
lines.push(` Version : ${result.version}`);
|
|
1496
1824
|
lines.push(` Test Cases : ${result.totalCases}`);
|
|
1497
1825
|
lines.push(` Detection Rate : ${(result.detectionRate * 100).toFixed(1)}%`);
|
|
1498
|
-
lines.push(` Precision : ${(result.precision * 100).toFixed(1)}%`);
|
|
1499
|
-
lines.push(` Recall : ${(result.recall * 100).toFixed(1)}%`);
|
|
1500
|
-
lines.push(` F1 Score : ${(result.f1Score * 100).toFixed(1)}%`);
|
|
1501
1826
|
lines.push("");
|
|
1502
|
-
lines.push(
|
|
1503
|
-
lines.push(`
|
|
1827
|
+
lines.push(" Prefix-Based Matching (lenient):");
|
|
1828
|
+
lines.push(` Precision : ${(result.precision * 100).toFixed(1)}%`);
|
|
1829
|
+
lines.push(` Recall : ${(result.recall * 100).toFixed(1)}%`);
|
|
1830
|
+
lines.push(` F1 Score : ${(result.f1Score * 100).toFixed(1)}%`);
|
|
1831
|
+
lines.push("");
|
|
1832
|
+
lines.push(" Exact Rule-ID Matching (strict):");
|
|
1833
|
+
lines.push(` Precision : ${(result.strictPrecision * 100).toFixed(1)}%`);
|
|
1834
|
+
lines.push(` Recall : ${(result.strictRecall * 100).toFixed(1)}%`);
|
|
1835
|
+
lines.push(` F1 Score : ${(result.strictF1Score * 100).toFixed(1)}%`);
|
|
1836
|
+
lines.push("");
|
|
1837
|
+
lines.push(` True Positives : ${result.truePositives} (strict: ${result.strictTruePositives})`);
|
|
1838
|
+
lines.push(` False Negatives : ${result.falseNegatives} (strict: ${result.strictFalseNegatives})`);
|
|
1504
1839
|
lines.push(` False Positives : ${result.falsePositives}`);
|
|
1505
1840
|
lines.push("");
|
|
1841
|
+
// Per-difficulty breakdown
|
|
1842
|
+
if (result.perDifficulty && Object.keys(result.perDifficulty).length > 0) {
|
|
1843
|
+
lines.push(" Per-Difficulty Detection Rates:");
|
|
1844
|
+
lines.push(" " + "─".repeat(40));
|
|
1845
|
+
for (const diff of ["easy", "medium", "hard"]) {
|
|
1846
|
+
const d = result.perDifficulty[diff];
|
|
1847
|
+
if (d) {
|
|
1848
|
+
const rate = `${d.detected}/${d.total}`.padStart(6);
|
|
1849
|
+
const pct = `${(d.detectionRate * 100).toFixed(1)}%`.padStart(6);
|
|
1850
|
+
lines.push(` ${diff.padEnd(10)} ${rate} ${pct}`);
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
lines.push("");
|
|
1854
|
+
}
|
|
1506
1855
|
// Per-category breakdown
|
|
1507
1856
|
lines.push(" Per-Category Results:");
|
|
1508
1857
|
lines.push(" " + "─".repeat(60));
|
|
@@ -1560,6 +1909,7 @@ USAGE:
|
|
|
1560
1909
|
OPTIONS:
|
|
1561
1910
|
--judge, -j <id> Benchmark a single judge
|
|
1562
1911
|
--output, -o <path> Save results to JSON file
|
|
1912
|
+
--save Save results to benchmark-results.json
|
|
1563
1913
|
--format <fmt> Output: text, json
|
|
1564
1914
|
|
|
1565
1915
|
CI GATE OPTIONS:
|
|
@@ -1576,6 +1926,7 @@ CI GATE OPTIONS:
|
|
|
1576
1926
|
let outputPath;
|
|
1577
1927
|
let format = "text";
|
|
1578
1928
|
let gate = false;
|
|
1929
|
+
let save = false;
|
|
1579
1930
|
let minF1 = 0.6;
|
|
1580
1931
|
let minPrecision = 0.5;
|
|
1581
1932
|
let minRecall = 0.5;
|
|
@@ -1587,6 +1938,8 @@ CI GATE OPTIONS:
|
|
|
1587
1938
|
judgeId = argv[++i];
|
|
1588
1939
|
else if (arg === "--output" || arg === "-o")
|
|
1589
1940
|
outputPath = argv[++i];
|
|
1941
|
+
else if (arg === "--save")
|
|
1942
|
+
save = true;
|
|
1590
1943
|
else if (arg === "--format")
|
|
1591
1944
|
format = argv[++i];
|
|
1592
1945
|
else if (arg === "--gate")
|
|
@@ -1618,6 +1971,12 @@ CI GATE OPTIONS:
|
|
|
1618
1971
|
writeFileSync(resolve(outputPath), JSON.stringify(result, null, 2), "utf-8");
|
|
1619
1972
|
console.log(`\n Results saved to: ${outputPath}`);
|
|
1620
1973
|
}
|
|
1974
|
+
// Auto-save to benchmark-results.json
|
|
1975
|
+
if (save && !outputPath) {
|
|
1976
|
+
const savePath = resolve("benchmark-results.json");
|
|
1977
|
+
writeFileSync(savePath, JSON.stringify(result, null, 2), "utf-8");
|
|
1978
|
+
console.log(`\n Results saved to: benchmark-results.json`);
|
|
1979
|
+
}
|
|
1621
1980
|
// ── CI Gate ──
|
|
1622
1981
|
if (gate) {
|
|
1623
1982
|
const failures = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/commands/benchmark.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/commands/benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface LanguageCoverageEntry {
|
|
2
|
+
language: string;
|
|
3
|
+
fileCount: number;
|
|
4
|
+
files: string[];
|
|
5
|
+
/** Whether this language has dedicated evaluator coverage */
|
|
6
|
+
covered: boolean;
|
|
7
|
+
/** Count of judges that apply to this language */
|
|
8
|
+
judgeCount: number;
|
|
9
|
+
}
|
|
10
|
+
export interface LanguageCoverageReport {
|
|
11
|
+
/** Languages with coverage */
|
|
12
|
+
covered: LanguageCoverageEntry[];
|
|
13
|
+
/** Languages without coverage */
|
|
14
|
+
uncovered: LanguageCoverageEntry[];
|
|
15
|
+
/** Summary stats */
|
|
16
|
+
stats: {
|
|
17
|
+
totalFiles: number;
|
|
18
|
+
coveredFiles: number;
|
|
19
|
+
uncoveredFiles: number;
|
|
20
|
+
coveragePercent: number;
|
|
21
|
+
languageCount: number;
|
|
22
|
+
coveredLanguages: number;
|
|
23
|
+
uncoveredLanguages: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Detect language from file path extension.
|
|
28
|
+
*/
|
|
29
|
+
export declare function detectFileLanguage(filePath: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Compute language coverage for a set of file paths.
|
|
32
|
+
*
|
|
33
|
+
* @param files - Array of relative or absolute file paths
|
|
34
|
+
* @returns Coverage report with covered/uncovered breakdown
|
|
35
|
+
*/
|
|
36
|
+
export declare function computeLanguageCoverage(files: string[]): LanguageCoverageReport;
|
|
37
|
+
/**
|
|
38
|
+
* Format a language coverage report as human-readable text.
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatCoverageReport(report: LanguageCoverageReport): string;
|
|
41
|
+
//# sourceMappingURL=coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/commands/coverage.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,8BAA8B;IAC9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,iCAAiC;IACjC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,oBAAoB;IACpB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AA+DD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK3D;AAeD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAwD/E;AAID;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAuC3E"}
|