from __future__ import annotations from typing import Any, Protocol from time_machine.domain.events import TemporalEvent class TraceSink(Protocol): def record_event(self, event: TemporalEvent) -> None: ... def record_model_io( self, component: str, prompt: str, raw_output: str, parsed_output: Any, metadata: dict[str, Any] | None = None, ) -> None: ...