File size: 882 Bytes
1f213fe
 
 
410e78d
 
 
 
1f213fe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""Deterministic state verifier — no LLM-as-judge."""
from typing import Any, Dict

from server.tasks.triage_task import TriageTask
from server.tasks.incident_routing_task import IncidentRoutingTask
from server.tasks.release_notes_task import ReleaseNotesTask
from server.tasks.dep_update_task import DepUpdateTask

_GRADERS = {
    "triage": TriageTask(),
    "incident_routing": IncidentRoutingTask(),
    "release_notes": ReleaseNotesTask(),
    "dep_update": DepUpdateTask(),
}


def verify(final_state: Dict[str, Any], org_config: Dict[str, Any], scenario: Dict[str, Any]) -> Dict[str, Any]:
    task_type = scenario.get("type", "")
    grader = _GRADERS.get(task_type)
    if not grader:
        return {"score": 0.0, "error": f"Unknown task type: {task_type}"}
    score = grader.grade(final_state, org_config, scenario)
    return {"score": score, "task_type": task_type}