"""
Agent manifest models.

This module provides the complete schema for Agent Manifest v1.0,
a standardized declarative format for describing AI Agents.
"""

from aphub_sdk.schemas.manifest.a2a import (
    A2AAgentCard,
    A2AAuthentication,
    A2ACapabilities,
    A2AConfig,
    A2AOAuth2Config,
    A2AProvider,
    A2ASkill,
)
from aphub_sdk.schemas.manifest.base import AgentManifestV1
from aphub_sdk.schemas.manifest.dependencies import (
    AgentDependency,
    DependenciesConfig,
    MCPServerDependency,
    ServiceConnection,
    ServiceDependency,
)
from aphub_sdk.schemas.manifest.execution import (
    ConcurrencyConfig,
    ErrorHandlingConfig,
    ErrorHandlingStrategy,
    ExecutionConfig,
    ExecutionMode,
    FallbackConfig,
    Hook,
    HooksConfig,
    RetryPolicy,
)
from aphub_sdk.schemas.manifest.mcp import (
    MCPClient,
    MCPConfig,
    MCPPrompt,
    MCPPromptArgument,
    MCPResource,
    MCPServer,
    MCPTool,
)
from aphub_sdk.schemas.manifest.metadata import (
    AgentMetadata,
    Maintainer,
    Repository,
)
from aphub_sdk.schemas.manifest.runtime import (
    EnvFile,
    GPUConfig,
    HealthCheck,
    ResourceConfig,
    ResourceLimits,
    RuntimeConfig,
    Volume,
)
from aphub_sdk.schemas.manifest.spec import (
    AgentSpec,
    InterfaceSchema,
    ModelConfig,
    ToolConfig,
    ToolDefinition,
)

__all__ = [
    # Base
    "AgentManifestV1",
    # Metadata
    "AgentMetadata",
    "Maintainer",
    "Repository",
    # Spec
    "AgentSpec",
    "ModelConfig",
    "ToolDefinition",
    "ToolConfig",
    "InterfaceSchema",
    # Runtime
    "RuntimeConfig",
    "ResourceConfig",
    "ResourceLimits",
    "GPUConfig",
    "HealthCheck",
    "Volume",
    "EnvFile",
    # Execution
    "ExecutionConfig",
    "ExecutionMode",
    "RetryPolicy",
    "ConcurrencyConfig",
    "ErrorHandlingConfig",
    "ErrorHandlingStrategy",
    "FallbackConfig",
    "Hook",
    "HooksConfig",
    # Dependencies
    "DependenciesConfig",
    "AgentDependency",
    "ServiceDependency",
    "ServiceConnection",
    "MCPServerDependency",
    # MCP
    "MCPConfig",
    "MCPServer",
    "MCPClient",
    "MCPTool",
    "MCPResource",
    "MCPPrompt",
    "MCPPromptArgument",
    # A2A
    "A2AConfig",
    "A2AAgentCard",
    "A2ACapabilities",
    "A2AAuthentication",
    "A2AOAuth2Config",
    "A2AProvider",
    "A2ASkill",
]
