| 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: | |
| ... | |