refactor(schemas): remove NormalizedResponse backward-compat __init__; use canonical API

This commit is contained in:
ed
2026-06-24 17:12:49 -04:00
parent 03dd44c642
commit 20236546d7
9 changed files with 29 additions and 48 deletions
+5 -28
View File
@@ -16,7 +16,7 @@ CONVENTION: 1-space indentation. NO COMMENTS.
"""
from __future__ import annotations
from dataclasses import dataclass
from dataclasses import dataclass, field
from typing import Any, Callable, Optional
from src.type_aliases import JsonValue
@@ -72,35 +72,12 @@ class UsageStats:
cache_creation_tokens: int = 0
@dataclass(frozen=True, init=False)
@dataclass(frozen=True)
class NormalizedResponse:
text: str
tool_calls: tuple[ToolCall, ...]
usage: UsageStats
raw_response: Any
def __init__(
self,
text: str,
tool_calls: tuple[ToolCall, ...] = (),
usage: UsageStats | None = None,
raw_response: Any = None,
usage_input_tokens: int | None = None,
usage_output_tokens: int | None = None,
usage_cache_read_tokens: int | None = None,
usage_cache_creation_tokens: int | None = None,
) -> None:
if usage is None:
usage = UsageStats(
input_tokens=usage_input_tokens if usage_input_tokens is not None else 0,
output_tokens=usage_output_tokens if usage_output_tokens is not None else 0,
cache_read_tokens=usage_cache_read_tokens if usage_cache_read_tokens is not None else 0,
cache_creation_tokens=usage_cache_creation_tokens if usage_cache_creation_tokens is not None else 0,
)
object.__setattr__(self, "text", text)
object.__setattr__(self, "tool_calls", tool_calls)
object.__setattr__(self, "usage", usage)
object.__setattr__(self, "raw_response", raw_response)
tool_calls: tuple[ToolCall, ...] = ()
usage: UsageStats = field(default_factory=lambda: UsageStats(input_tokens=0, output_tokens=0))
raw_response: Any = None
def to_legacy_dict(self) -> JsonValue:
return {