# Copyright (c) 2025 Dedalus Labs, Inc. and its contributors
# SPDX-License-Identifier: MIT

"""MCP protocol type definitions organized by specification category."""

from .client import *
from .lifecycle import *
from .messages import *
from .server import *
from .shared import *
from .utilities import *

__all__ = [
    # Lifecycle
    "InitializeRequest",
    "InitializeRequestParams",
    "InitializeResult",
    "InitializedNotification",
    # Messages
    "JSONRPCRequest",
    "JSONRPCResponse",
    "JSONRPCNotification",
    "JSONRPCError",
    "JSONRPCMessage",
    "ClientRequest",
    "ClientNotification",
    "ClientResult",
    "ServerRequest",
    "ServerNotification",
    "ServerResult",
    # Shared - Base
    "BaseMetadata",
    "Request",
    "Result",
    "Notification",
    "RequestParams",
    "PaginatedRequest",
    "PaginatedRequestParams",
    "PaginatedResult",
    "EmptyResult",
    "ErrorData",
    "PARSE_ERROR",
    "INVALID_REQUEST",
    "METHOD_NOT_FOUND",
    "INVALID_PARAMS",
    "INTERNAL_ERROR",
    "CONNECTION_CLOSED",
    # Shared - Primitives
    "Cursor",
    "ProgressToken",
    "RequestId",
    "Role",
    "LoggingLevel",
    "StopReason",
    "IncludeContext",
    "LATEST_PROTOCOL_VERSION",
    "DEFAULT_NEGOTIATED_VERSION",
    # Shared - Content
    "Annotations",
    "TextContent",
    "ImageContent",
    "AudioContent",
    "EmbeddedResource",
    "ResourceLink",
    "ContentBlock",
    "TextResourceContents",
    "BlobResourceContents",
    # Shared - Capabilities
    "ServerCapabilities",
    "ClientCapabilities",
    "ToolsCapability",
    "ResourcesCapability",
    "PromptsCapability",
    "LoggingCapability",
    "CompletionsCapability",
    "RootsCapability",
    "SamplingCapability",
    "ElicitationCapability",
    "Icon",
    "Implementation",
    "ToolAnnotations",
    # Server - Tools
    "Tool",
    "ListToolsRequest",
    "ListToolsResult",
    "CallToolRequest",
    "CallToolRequestParams",
    "CallToolResult",
    "ToolListChangedNotification",
    # Server - Resources
    "Resource",
    "ResourceTemplate",
    "ListResourcesRequest",
    "ListResourcesResult",
    "ListResourceTemplatesRequest",
    "ListResourceTemplatesResult",
    "ReadResourceRequest",
    "ReadResourceRequestParams",
    "ReadResourceResult",
    "SubscribeRequest",
    "SubscribeRequestParams",
    "UnsubscribeRequest",
    "UnsubscribeRequestParams",
    "ResourceListChangedNotification",
    "ResourceUpdatedNotification",
    "ResourceUpdatedNotificationParams",
    # Server - Prompts
    "Prompt",
    "PromptArgument",
    "PromptMessage",
    "PromptReference",
    "ListPromptsRequest",
    "ListPromptsResult",
    "GetPromptRequest",
    "GetPromptRequestParams",
    "GetPromptResult",
    "PromptListChangedNotification",
    # Server - Completions
    "CompleteRequest",
    "CompleteRequestParams",
    "CompleteResult",
    "Completion",
    "CompletionArgument",
    "CompletionContext",
    "ResourceTemplateReference",
    # Server - Logging
    "SetLevelRequest",
    "SetLevelRequestParams",
    "LoggingMessageNotification",
    "LoggingMessageNotificationParams",
    # Client - Roots
    "Root",
    "ListRootsRequest",
    "ListRootsResult",
    "RootsListChangedNotification",
    # Client - Sampling
    "CreateMessageRequest",
    "CreateMessageRequestParams",
    "CreateMessageResult",
    "SamplingMessage",
    "ModelPreferences",
    "ModelHint",
    # Client - Elicitation
    "ElicitRequest",
    "ElicitRequestParams",
    "ElicitResult",
    "ElicitRequestedSchema",
    # Utilities
    "PingRequest",
    "ProgressNotification",
    "ProgressNotificationParams",
    "CancelledNotification",
    "CancelledNotificationParams",
]
