"""PolyGateway: 实验室统一的大语言模型(LLM/VLM/OCR)调度与中转库。

治理单位是一次模型调用: 多源选择、限流、错误分类与重试、熔断、响应缓存、
流式活性看门狗、遥测。架构单一事实源见 research-wiki/ARCHITECTURE.md。
顶层导出即公共 API 面: 错误四分类必须从这里引用(ARCH §5.1 约定②)。
"""

from polygateway.client import GatewayClient, gather_bounded
from polygateway.config import EmbeddingSettings, GatewaySettings, OcrSettings
from polygateway.embedding import EmbeddingClient
from polygateway.errors import (
    AllSourcesExhausted,
    CircuitOpenError,
    GatewayUnavailableError,
    GovernanceBackendError,
    PolyGatewayError,
    RequestRejectedError,
    ResultInvalidError,
    SourceDeadError,
    SourceNotConfiguredError,
    TransientError,
)
from polygateway.ocr import OcrClient
from polygateway.pricing import ModelPrice, PricingTable
from polygateway.providers import DEFAULT_PROFILES, ProviderProfile, register_provider
from polygateway.telemetry.schema import telemetry_schema_sql
from polygateway.types import (
    EmbeddingResponse,
    LLMResponse,
    OcrLayoutElement,
    OcrLayoutResult,
    OcrTextResult,
    SourceConfig,
)

__version__ = "1.2.4"

__all__ = [
    "DEFAULT_PROFILES",
    "AllSourcesExhausted",
    "CircuitOpenError",
    "EmbeddingClient",
    "EmbeddingResponse",
    "EmbeddingSettings",
    "GatewayClient",
    "GatewaySettings",
    "GatewayUnavailableError",
    "GovernanceBackendError",
    "LLMResponse",
    "ModelPrice",
    "OcrClient",
    "OcrLayoutElement",
    "OcrLayoutResult",
    "OcrSettings",
    "OcrTextResult",
    "PolyGatewayError",
    "PricingTable",
    "ProviderProfile",
    "RequestRejectedError",
    "ResultInvalidError",
    "SourceConfig",
    "SourceDeadError",
    "SourceNotConfiguredError",
    "TransientError",
    "__version__",
    "gather_bounded",
    "register_provider",
    "telemetry_schema_sql",
]
