"""网关内部异常类型(ARCH §4.5)。 适配器把厂商的可重试故障(限流/超时/5xx)翻译为 `TransientProviderError`, 网关据此决定退避重试 / 切回退链。非瞬时错误(内容策略拒绝等)由适配器抛 `AppError` 或原样上抛,网关不盲目重试。 `ww_shared.AppError(ErrorCode.RATE_LIMITED)` 也被网关视作可重试/可回退(限流即瞬时)。 """ from __future__ import annotations class TransientProviderError(Exception): """瞬时、可重试的 provider 故障(429/超时/5xx/连接错误)。 适配器在 `except` 厂商异常时包装抛出,携带原始 provider 名便于日志/熔断归因。 """ def __init__(self, message: str, *, provider: str | None = None) -> None: super().__init__(message) self.message = message self.provider = provider