| 194 | |
| 195 | @dataclass(frozen=True, slots=True) |
| 196 | class SemanticCallResult: |
| 197 | text: str |
| 198 | model: str |
| 199 | estimated_cost: float = 0.0 |
| 200 | actual_cost: float | None = None |
| 201 | quality_score: float = 1.0 |
| 202 | attempts: int = 1 |
| 203 | quality_fallbacks: int = 0 |
| 204 | |
| 205 | |
| 206 | class SemanticCompressor(Protocol): |
no outgoing calls