Source code for ralph.recovery.failure_event
"""Structured failure event emitted for every classified failure."""
from __future__ import annotations
from dataclasses import dataclass
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from datetime import datetime
[docs]
@dataclass(frozen=True)
class FailureEvent:
"""Structured failure event emitted for every classified failure."""
timestamp: datetime
phase: str
agent: str | None
category: str
reason: str
counted_against_budget: bool
chain_capacity_remaining: int
recovery_cycle: int
retry_delay_ms: int = 0