from __future__ import annotations from typing import TYPE_CHECKING, Any, Literal from pydantic import BaseModel, Field if TYPE_CHECKING: from yuxi.gateway.protocol.errors import ErrorDetail class RequestFrame(BaseModel): type: Literal["req"] = "req" id: str method: str params: dict[str, Any] = Field(default_factory=dict) class ResponseFrame(BaseModel): type: Literal["res"] = "res" id: str ok: bool payload: Any = None error: ErrorDetail | None = None class EventFrame(BaseModel): type: Literal["event"] = "event" event: str payload: Any = None seq: int = 0 state_version: int = 0 from yuxi.gateway.protocol.errors import ErrorDetail # noqa: E402 ResponseFrame.model_rebuild()