"""OpenCode API models.

All models inherit from OpenCodeBaseModel which provides:
- populate_by_name=True for camelCase alias support
- by_alias=True serialization by default
"""

from agentpool_server.opencode_server.models.base import OpenCodeBaseModel
from agentpool_server.opencode_server.models.common import (
    FileDiff,
    FileDiffStatus,
    ModelRef,
    TimeCreated,
    TimeCreatedUpdated,
    TokenCache,
    Tokens,
)
from agentpool_server.opencode_server.models.app import (
    App,
    AppTimeInfo,
    HealthResponse,
    PathInfo,
    Project,
    ProjectTime,
    ProjectUpdateRequest,
    VcsInfo,
)
from agentpool_server.opencode_server.models.provider import (
    Model,
    ModelCost,
    ModelLimit,
    Mode,
    Provider,
    ProviderListResponse,
    ProvidersResponse,
)
from agentpool_server.opencode_server.models.session import (
    Session,
    SessionCreateRequest,
    SessionForkRequest,
    SessionInitRequest,
    SessionRevert,
    SessionShare,
    SessionStatus,
    SessionSummary,
    SessionTimeUpdate,
    SessionUpdateRequest,
    SummarizeRequest,
    Todo,
)
from agentpool_server.opencode_server.models.message import (
    APIError,
    APIErrorData,
    AssistantMessage,
    CommandRequest,
    ContextOverflowError,
    ContextOverflowErrorData,
    FilePartInput,
    MessageAbortedError,
    MessageAbortedErrorData,
    MessageError,
    MessageInfo,
    MessageOutputLengthError,
    MessageOutputLengthErrorData,
    MessagePath,
    AgentPartInput,
    OutputFormat,
    OutputFormatJsonSchema,
    OutputFormatText,
    SubtaskPartInput,
    MessageRequest,
    MessageSummary,
    MessageTime,
    MessageWithParts,
    PartInput,
    ProviderAuthError,
    ProviderAuthErrorData,
    ShellRequest,
    StructuredOutputError,
    StructuredOutputErrorData,
    TextPartInput,
    UnknownError,
    UnknownErrorData,
    UserMessage,
)
from agentpool_server.opencode_server.models.parts import (
    AgentPart,
    APIErrorInfo,
    CompactionPart,
    FilePart,
    Part,
    PartBase,
    PatchPart,
    ReasoningPart,
    RetryPart,
    SnapshotPart,
    StepFinishPart,
    StepStartPart,
    SubtaskPart,
    TextPart,
    TimeStart,
    TimeStartEnd,
    TimeStartEndCompacted,
    TimeStartEndOptional,
    ToolPart,
    ToolState,
    ToolStateCompleted,
    ToolStateError,
    ToolStatePending,
    ToolStateRunning,
)
from agentpool_server.opencode_server.models.file import (
    FileContent,
    FileNode,
    FileStatus,
    FindMatch,
    Symbol,
)
from agentpool_server.opencode_server.models.agent import (
    Agent,
    AuthInfo,
    Command,
    ProviderAuthAuthorization,
    ProviderAuthMethod,
    SkillInfo,
    WorktreeCreateRequest,
    WorktreeInfo,
    WorktreeRemoveRequest,
    WorktreeResetRequest,
)
from agentpool_server.opencode_server.models.pty import (
    PtyCreateRequest,
    PtyInfo,
    PtySize,
    PtyUpdateRequest,
)
from agentpool_server.opencode_server.models.events import (
    CommandExecutedEvent,
    Event,
    FileEditedEvent,
    McpToolsChangedEvent,
    MessageRemovedEvent,
    MessageUpdatedEvent,
    MessageUpdatedEventProperties,
    PartDeltaEvent,
    PartRemovedEvent,
    PartUpdatedEvent,
    PartUpdatedEventProperties,
    PermissionReply,
    PermissionReplyRequest,
    PermissionUpdatedEvent,
    ProjectUpdatedEvent,
    ServerConnectedEvent,
    ServerHeartbeatEvent,
    SessionCompactedEvent,
    SessionCompactedProperties,
    SessionCreatedEvent,
    SessionDeletedEvent,
    SessionDeletedProperties,
    SessionDiffEvent,
    SessionErrorEvent,
    SessionErrorInfo,
    SessionErrorProperties,
    SessionIdleEvent,
    SessionIdleProperties,
    SessionInfoProperties,
    SessionStatusEvent,
    SessionStatusProperties,
    SessionUpdatedEvent,
    TuiSessionSelectEvent,
)
from agentpool_server.opencode_server.models.mcp import (
    LogRequest,
    McpAuthorizationResponse,
    MCPStatus,
    McpResource,
)
from agentpool_server.opencode_server.models.config import Config
from agentpool_server.opencode_server.models.question import (
    QuestionInfo,
    QuestionOption,
    QuestionReply,
    QuestionRequest,
    QuestionToolInfo,
)

__all__ = [
    "APIError",
    "APIErrorData",
    "APIErrorInfo",
    "Agent",
    "AgentPart",
    "AgentPartInput",
    "App",
    "AppTimeInfo",
    "AssistantMessage",
    "AuthInfo",
    "Command",
    "CommandExecutedEvent",
    "CommandRequest",
    "CompactionPart",
    "Config",
    "ContextOverflowError",
    "ContextOverflowErrorData",
    "Event",
    "FileContent",
    "FileDiff",
    "FileDiffStatus",
    "FileEditedEvent",
    "FileNode",
    "FilePart",
    "FilePartInput",
    "FileStatus",
    "FindMatch",
    "HealthResponse",
    "LogRequest",
    "MCPStatus",
    "McpAuthorizationResponse",
    "McpResource",
    "McpToolsChangedEvent",
    "MessageAbortedError",
    "MessageAbortedErrorData",
    "MessageError",
    "MessageInfo",
    "MessageOutputLengthError",
    "MessageOutputLengthErrorData",
    "MessagePath",
    "MessageRemovedEvent",
    "MessageRequest",
    "MessageSummary",
    "MessageTime",
    "MessageUpdatedEvent",
    "MessageUpdatedEventProperties",
    "MessageWithParts",
    "Mode",
    "Model",
    "ModelCost",
    "ModelLimit",
    "ModelRef",
    "OpenCodeBaseModel",
    "OutputFormat",
    "OutputFormatJsonSchema",
    "OutputFormatText",
    "Part",
    "PartBase",
    "PartDeltaEvent",
    "PartInput",
    "PartRemovedEvent",
    "PartUpdatedEvent",
    "PartUpdatedEventProperties",
    "PatchPart",
    "PathInfo",
    "PermissionReply",
    "PermissionReplyRequest",
    "PermissionUpdatedEvent",
    "Project",
    "ProjectTime",
    "ProjectUpdateRequest",
    "ProjectUpdatedEvent",
    "Provider",
    "ProviderAuthAuthorization",
    "ProviderAuthError",
    "ProviderAuthErrorData",
    "ProviderAuthMethod",
    "ProviderListResponse",
    "ProvidersResponse",
    "PtyCreateRequest",
    "PtyInfo",
    "PtySize",
    "PtyUpdateRequest",
    "QuestionInfo",
    "QuestionOption",
    "QuestionReply",
    "QuestionRequest",
    "QuestionToolInfo",
    "ReasoningPart",
    "RetryPart",
    "ServerConnectedEvent",
    "ServerHeartbeatEvent",
    "Session",
    "SessionCompactedEvent",
    "SessionCompactedProperties",
    "SessionCreateRequest",
    "SessionCreatedEvent",
    "SessionDeletedEvent",
    "SessionDeletedProperties",
    "SessionDiffEvent",
    "SessionErrorEvent",
    "SessionErrorInfo",
    "SessionErrorProperties",
    "SessionForkRequest",
    "SessionIdleEvent",
    "SessionIdleProperties",
    "SessionInfoProperties",
    "SessionInitRequest",
    "SessionRevert",
    "SessionShare",
    "SessionStatus",
    "SessionStatusEvent",
    "SessionStatusProperties",
    "SessionSummary",
    "SessionTimeUpdate",
    "SessionUpdateRequest",
    "SessionUpdatedEvent",
    "ShellRequest",
    "SkillInfo",
    "SnapshotPart",
    "StepFinishPart",
    "StepStartPart",
    "StructuredOutputError",
    "StructuredOutputErrorData",
    "SubtaskPart",
    "SubtaskPartInput",
    "SummarizeRequest",
    "Symbol",
    "TextPart",
    "TextPartInput",
    "TimeCreated",
    "TimeCreatedUpdated",
    "TimeStart",
    "TimeStartEnd",
    "TimeStartEndCompacted",
    "TimeStartEndOptional",
    "Todo",
    "TokenCache",
    "Tokens",
    "ToolPart",
    "ToolState",
    "ToolStateCompleted",
    "ToolStateError",
    "ToolStatePending",
    "ToolStateRunning",
    "TuiSessionSelectEvent",
    "UnknownError",
    "UnknownErrorData",
    "UserMessage",
    "VcsInfo",
    "WorktreeCreateRequest",
    "WorktreeInfo",
    "WorktreeRemoveRequest",
    "WorktreeResetRequest",
]
