from .agent import Agent
from .router import AgentRouter
from .types import (
    AIConfig,
    HarnessConfig,
    CompactDiscoveryResponse,
    DiscoveryResponse,
    DiscoveryResult,
    MemoryConfig,
    ReasonerDefinition,
    SkillDefinition,
)
from .harness import HarnessResult
from .multimodal import (
    Text,
    Image,
    Audio,
    File,
    MultimodalContent,
    text,
    image_from_file,
    image_from_url,
    audio_from_file,
    audio_from_url,
    file_from_path,
    file_from_url,
)
from .multimodal_response import (
    MultimodalResponse,
    AudioOutput,
    ImageOutput,
    FileOutput,
    detect_multimodal_response,
)
from .media_providers import (
    MediaProvider,
    FalProvider,
    LiteLLMProvider,
    OpenRouterProvider,
    get_provider,
    register_provider,
)
from .did_auth import (
    DIDAuthenticator,
    create_did_auth_headers,
    sign_request,
    HEADER_CALLER_DID,
    HEADER_DID_SIGNATURE,
    HEADER_DID_TIMESTAMP,
)
from .exceptions import (
    AgentFieldError,
    AgentFieldClientError,
    ExecutionTimeoutError,
    MemoryAccessError,
    RegistrationError,
    ValidationError,
)
from .client import ApprovalRequestResponse, ApprovalResult, ApprovalStatusResponse
from .tool_calling import (
    ToolCallConfig,
    ToolCallRecord,
    ToolCallResponse,
    ToolCallTrace,
    capability_to_tool_schema,
    capabilities_to_tool_schemas,
)

__all__ = [
    "Agent",
    "AIConfig",
    "HarnessConfig",
    "HarnessResult",
    "MemoryConfig",
    "ReasonerDefinition",
    "SkillDefinition",
    "DiscoveryResponse",
    "CompactDiscoveryResponse",
    "DiscoveryResult",
    "AgentRouter",
    # Input multimodal classes
    "Text",
    "Image",
    "Audio",
    "File",
    "MultimodalContent",
    # Convenience functions for input
    "text",
    "image_from_file",
    "image_from_url",
    "audio_from_file",
    "audio_from_url",
    "file_from_path",
    "file_from_url",
    # Output multimodal classes
    "MultimodalResponse",
    "AudioOutput",
    "ImageOutput",
    "FileOutput",
    "detect_multimodal_response",
    # Media providers
    "MediaProvider",
    "FalProvider",
    "LiteLLMProvider",
    "OpenRouterProvider",
    "get_provider",
    "register_provider",
    # DID authentication
    "DIDAuthenticator",
    "create_did_auth_headers",
    "sign_request",
    "HEADER_CALLER_DID",
    "HEADER_DID_SIGNATURE",
    "HEADER_DID_TIMESTAMP",
    # Approval response types
    "ApprovalRequestResponse",
    "ApprovalResult",
    "ApprovalStatusResponse",
    # Tool calling
    "ToolCallConfig",
    "ToolCallRecord",
    "ToolCallResponse",
    "ToolCallTrace",
    "capability_to_tool_schema",
    "capabilities_to_tool_schemas",
    # Exceptions
    "AgentFieldError",
    "AgentFieldClientError",
    "ExecutionTimeoutError",
    "MemoryAccessError",
    "RegistrationError",
    "ValidationError",
]

__version__ = "0.1.47-rc.1"
