import type { ReactNode } from "react"; import type { ProviderFailure } from "@paperclipai/shared"; import { InlineBanner } from "./InlineBanner"; const labels: Record = { rate_limit: "Rate limit reached", quota_exhausted: "Usage allowance exhausted", authentication: "Authentication failed", permission: "Access denied", model_unavailable: "Model unavailable", invalid_request: "Request rejected", overloaded: "Provider at capacity", timeout: "Provider timed out", unknown: "Provider error", }; export function ProviderFailureNotice({ failure, actions, children, className }: { failure: ProviderFailure; actions?: ReactNode; children?: ReactNode; className?: string; }) { const provider = ({ anthropic: "Claude", openai: "OpenAI" } as Record)[failure.provider] ?? failure.provider; return (

{failure.message}

{failure.phase === "startup" ? "Failed before work started" : "Failed during work"} {failure.httpStatus ? ` · HTTP ${failure.httpStatus}` : ""} {failure.providerCode ? ` · ${failure.providerCode}` : ""}

{failure.requestId &&

Request: {failure.requestId}

} {children}
); }