"""Pydantic models for API responses.""" from typing import Any, Literal from pydantic import BaseModel from .anthropic import ContentBlockText, ContentBlockThinking, ContentBlockToolUse class TokenCountResponse(BaseModel): input_tokens: int class Usage(BaseModel): input_tokens: int output_tokens: int cache_creation_input_tokens: int = 0 cache_read_input_tokens: int = 0 class MessagesResponse(BaseModel): id: str model: str role: Literal["assistant"] = "assistant" content: list[ ContentBlockText | ContentBlockToolUse | ContentBlockThinking | dict[str, Any] ] type: Literal["message"] = "message" stop_reason: ( Literal["end_turn", "max_tokens", "stop_sequence", "tool_use"] | None ) = None stop_sequence: str | None = None usage: Usage