Tracks elapsed time + accumulated usage for one voice session and decides when to abort. Stateful but trivially testable (inject now/usage; no timers inside).
now
Accumulates reported output-token usage.
Returns an abort reason if a ceiling has been crossed, else null.
Marks the session start.
Static
A user-facing message for an abort reason.
Tracks elapsed time + accumulated usage for one voice session and decides when to abort. Stateful but trivially testable (inject
now/usage; no timers inside).