generate/result: add identity_score field to GenerationResult

IdentityCheck runs after generation in ChatRuntime and must travel
forward with the result without requiring a second pass or a wrapper.
The field is Optional so all existing call sites that don't supply it
continue to work unmodified.
This commit is contained in:
Shay 2026-05-14 13:10:54 -07:00
parent 424a67a9ce
commit 2c51338de7

View file

@ -7,14 +7,16 @@ field state before generation; discarding it means the vault stores
the prompt field, not the assistant response field.
Contracts:
tokens the decoded token sequence in emission order
final_state FieldState after the last propagation step
trajectory optional ordered list of intermediate FieldStates;
None unless the caller explicitly requests it (expensive)
tokens the decoded token sequence in emission order
final_state FieldState after the last propagation step
trajectory optional ordered list of intermediate FieldStates;
None unless the caller explicitly requests it (expensive)
identity_score IdentityScore from IdentityCheck; None if not evaluated
"""
from __future__ import annotations
from dataclasses import dataclass
from typing import Optional
from field.state import FieldState
@ -25,6 +27,7 @@ class GenerationResult:
trajectory: tuple | None = None # (FieldState, ...) or None
salience_top_k: int | None = None
candidates_used: int | None = None
identity_score: Optional[object] = None # IdentityScore | None
def __post_init__(self) -> None:
# Coerce list inputs to tuple for immutability.