mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 03:49:26 +00:00
bench(ranking): a baseline records the head of the evidence order, region by region
So it says what sits ahead of a pinned CVE -- tier, score, site -- and not only how much of it; the within-tier ties are the next thing to read. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01T7XD7x5KonMdmGRkp63EQG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
1741b6bed6
commit
35cb578ce2
@@ -28,6 +28,8 @@ from openultrasast.model.shipped import declared_sources # noqa: E402
|
||||
from openultrasast.preprocess import preprocess_repository # noqa: E402
|
||||
from openultrasast.repos import checkout_path, load_repo_recipes # noqa: E402
|
||||
|
||||
HEAD = 150 # how much of the evidence order a baseline records, region by region
|
||||
|
||||
|
||||
def ordered_regions(root: Path) -> list[ScanRegion]:
|
||||
"""The regions in the order `scan_repository` examines them. One definition, imported, never copied."""
|
||||
@@ -62,14 +64,30 @@ def evidence_ordered_regions(root: Path, regions: list[ScanRegion], language: st
|
||||
if callable(getattr(cpg, "cleanup", None)):
|
||||
cpg.cleanup()
|
||||
tiers = Counter(e.tier for e in evidence.values())
|
||||
ordered = order_by_evidence(regions, evidence)
|
||||
best: dict[tuple[str, str], tuple[int, float]] = {}
|
||||
for (path, function, _family), vector in evidence.items():
|
||||
best[(path, function)] = max(best.get((path, function), (-1, 0.0)), vector.order_key)
|
||||
facts = {
|
||||
# The head of the order, with each region's (tier, score), so a baseline says WHAT sits ahead of a
|
||||
# pinned CVE and not only how much of it -- the within-tier ties are the next thing to read.
|
||||
"head": [
|
||||
{
|
||||
"position": i,
|
||||
"tier": best.get((r.path, r.function or ""), (-1, 0.0))[0],
|
||||
"score": best.get((r.path, r.function or ""), (-1, 0.0))[1],
|
||||
"site": f"{r.path}:{r.function or ''}",
|
||||
"rank": r.rank,
|
||||
}
|
||||
for i, r in enumerate(ordered[:HEAD])
|
||||
],
|
||||
"build_seconds": build_seconds,
|
||||
"evidence_seconds": evidence_seconds,
|
||||
"pairs": len(evidence),
|
||||
"pairs_unanswered": failed,
|
||||
"tier_counts": {str(k): v for k, v in sorted(tiers.items())},
|
||||
}
|
||||
return order_by_evidence(regions, evidence), facts
|
||||
return ordered, facts
|
||||
|
||||
|
||||
def measure(name: str, root: Path, known: list[dict[str, object]], *, by_evidence: bool = False, language: str = "") -> dict[str, object]:
|
||||
|
||||
Reference in New Issue
Block a user