Yash030/claude-code-proxy
2
1"""Pydantic models for API responses."""2 3from typing import Any, Literal4 5from pydantic import BaseModel6 7from .anthropic import (8 ContentBlockRedactedThinking,9 ContentBlockText,10 ContentBlockThinking,11 ContentBlockToolUse,12)13 14 15class TokenCountResponse(BaseModel):16 input_tokens: int17 18 19class ModelResponse(BaseModel):20 created_at: str21 display_name: str22 id: str23 type: Literal["model"] = "model"24 25 26class ModelsListResponse(BaseModel):27 data: list[ModelResponse]28 first_id: str | None29 has_more: bool30 last_id: str | None31 32 33class Usage(BaseModel):34 input_tokens: int35 output_tokens: int36 cache_creation_input_tokens: int = 037 cache_read_input_tokens: int = 038 39 40class MessagesResponse(BaseModel):41 id: str42 model: str43 role: Literal["assistant"] = "assistant"44 content: list[45 ContentBlockText46 | ContentBlockToolUse47 | ContentBlockThinking48 | ContentBlockRedactedThinking49 | dict[str, Any]50 ]51 type: Literal["message"] = "message"52 stop_reason: (53 Literal["end_turn", "max_tokens", "stop_sequence", "tool_use"] | None54 ) = None55 stop_sequence: str | None = None56 usage: Usage57 