case0 / src /case_zero /engine /accusation.py
HusseinEid's picture
Case Zero - initial public release (fully local: Qwen2.5-1.5B via llama.cpp + Supertonic, custom pixel-noir SPA via gradio.Server)
414dc55
raw
history blame contribute delete
630 Bytes
"""Finalize an accusation into a scored, terminal GameState."""
from __future__ import annotations
from ..schemas.accusation import Accusation, Verdict
from ..schemas.case import CaseFile
from .game_state import GameState
from .scoring import score_accusation
def finalize_accusation(
state: GameState, case: CaseFile, accusation: Accusation
) -> tuple[GameState, Verdict]:
"""Score the accusation and return a new, solved GameState plus the verdict."""
verdict = score_accusation(case, accusation, state)
new_state = state.model_copy(update={"solved": True, "verdict": verdict})
return new_state, verdict