"""
aphub-schemas: Shared schemas for the aphub ecosystem.

NOTE: This Python package is a REFERENCE IMPLEMENTATION.
The canonical specification is defined in JSON Schema format under spec/v1/.
For production use, consider using the dedicated Python implementation package
(aphub-schemas-python) when available.
"""

from aphub_sdk.schemas.agent import (
    Agent,
    AgentSummary,
    AgentVersion,
)
from aphub_sdk.schemas.api import (
    PullRequest,
    PullResponse,
    PushRequest,
    PushResponse,
    SearchRequest,
    SearchResponse,
    SearchResult,
    SkillPullRequest,
    SkillPullResponse,
    SkillPushRequest,
    SkillPushResponse,
    SkillSearchRequest,
    SkillSearchResponse,
    SkillSearchResult,
)
from aphub_sdk.schemas.constants import (
    API_VERSION,
    LLMProvider,
    MANIFEST_API_VERSION,
    MCPTransport,
    SUPPORTED_FRAMEWORKS,
    SUPPORTED_PROTOCOLS,
    SupportedFramework,
    SupportedKind,
    SupportedProtocol,
)
from aphub_sdk.schemas.errors import (
    ErrorCode,
    HubError,
    ValidationError,
    ValidationErrorDetail,
)
from aphub_sdk.schemas.manifest import (
    A2AAgentCard,
    A2AConfig,
    AgentManifestV1,
    AgentMetadata,
    AgentSpec,
    DependenciesConfig,
    ExecutionConfig,
    ExecutionMode,
    InterfaceSchema,
    MCPConfig,
    MCPServer,
    ModelConfig,
    RetryPolicy,
    RuntimeConfig,
    ToolDefinition,
)
from aphub_sdk.schemas.skill import (
    Skill,
    SkillMetadataInfo,
    SkillSummary,
    SkillVersion,
)
from aphub_sdk.schemas.skill_manifest import (
    CommandEntry,
    SkillEntry,
    SkillManifestV1,
    SkillSpec,
)

__version__ = "0.1.0"

__all__ = [
    # Manifest - Core
    "AgentManifestV1",
    "AgentMetadata",
    "AgentSpec",
    "ModelConfig",
    "ToolDefinition",
    "InterfaceSchema",
    # Manifest - Runtime & Execution
    "RuntimeConfig",
    "ExecutionConfig",
    "ExecutionMode",
    "RetryPolicy",
    # Manifest - Dependencies
    "DependenciesConfig",
    # Manifest - MCP
    "MCPConfig",
    "MCPServer",
    # Manifest - A2A
    "A2AConfig",
    "A2AAgentCard",
    # Agent
    "Agent",
    "AgentVersion",
    "AgentSummary",
    # Skill Manifest
    "SkillManifestV1",
    "SkillSpec",
    "SkillEntry",
    "CommandEntry",
    # Skill
    "Skill",
    "SkillVersion",
    "SkillSummary",
    "SkillMetadataInfo",
    # API - Agent
    "PushRequest",
    "PushResponse",
    "PullRequest",
    "PullResponse",
    "SearchRequest",
    "SearchResponse",
    "SearchResult",
    # API - Skill
    "SkillPushRequest",
    "SkillPushResponse",
    "SkillPullRequest",
    "SkillPullResponse",
    "SkillSearchRequest",
    "SkillSearchResponse",
    "SkillSearchResult",
    # Errors
    "HubError",
    "ErrorCode",
    "ValidationError",
    "ValidationErrorDetail",
    # Constants
    "API_VERSION",
    "MANIFEST_API_VERSION",
    "SUPPORTED_FRAMEWORKS",
    "SUPPORTED_PROTOCOLS",
    "SupportedFramework",
    "SupportedProtocol",
    "SupportedKind",
    "LLMProvider",
    "MCPTransport",
]
