/**
 * Unified host failure shape. Vendor errors are classified by adapters (WP-01).
 */

export type HostFailureKind =
  | "transient"
  | "rate_limited"
  | "session_busy"
  | "session_lost"
  | "permission"
  | "invalid_request"
  | "provider_unavailable"
  | "delivery_unknown"
  | "fatal"
  | "unknown";

export interface HostFailure {
  kind: HostFailureKind;
  message: string;
  retryable: boolean;
  retryAfterMs?: number;
  rawCode?: string;
  raw?: unknown;
}
