/** * OpenRouter error metadata augmentation. * * Provides OpenRouter-specific metadata fields for AI error types through * module augmentation, enabling typed access to OpenRouter error details. * * @since 4.0.0 */ /** * OpenRouter-specific error metadata fields. * * @category models * @since 4.0.0 */ export type OpenRouterErrorMetadata = { /** * The error code returned by the API. */ readonly errorCode: string | number | null /** * The error type returned by the API. */ readonly errorType: string | null /** * The unique request ID for debugging. */ readonly requestId: string | null } /** * OpenRouter-specific rate limit metadata fields. * * @category models * @since 4.0.0 */ export type OpenRouterRateLimitMetadata = OpenRouterErrorMetadata & { readonly limit: string | null readonly remaining: number | null readonly resetRequests: string | null readonly resetTokens: string | null } declare module "effect/unstable/ai/AiError" { /** * OpenRouter metadata attached to `RateLimitError` values. * * **Details** * * Captures OpenRouter error details together with rate limit header * information from responses where the provider rejected the request because * a limit was reached. * * @category configuration * @since 4.0.0 */ export interface RateLimitErrorMetadata { /** * OpenRouter-specific details for the rate limit response. */ readonly openrouter?: OpenRouterRateLimitMetadata | null } /** * OpenRouter metadata attached to `QuotaExhaustedError` values. * * **Details** * * Preserves provider error details for failures caused by exhausted account, * billing, or usage quota. * * @category configuration * @since 4.0.0 */ export interface QuotaExhaustedErrorMetadata { /** * OpenRouter-specific details for the quota exhaustion response. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `AuthenticationError` values. * * **Details** * * Preserves provider error details for failed API key, authorization, or * permission checks. * * @category configuration * @since 4.0.0 */ export interface AuthenticationErrorMetadata { /** * OpenRouter-specific details for the authentication failure. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `ContentPolicyError` values. * * **Details** * * Preserves provider error details when OpenRouter rejects input or output * because it violates a content policy. * * @category configuration * @since 4.0.0 */ export interface ContentPolicyErrorMetadata { /** * OpenRouter-specific details for the content policy response. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `InvalidRequestError` values. * * **Details** * * Preserves provider error details for malformed requests, unsupported * parameters, or other request validation failures reported by OpenRouter. * * @category configuration * @since 4.0.0 */ export interface InvalidRequestErrorMetadata { /** * OpenRouter-specific details for the invalid request response. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `InternalProviderError` values. * * **Details** * * Preserves provider error details for OpenRouter-side failures such as * transient server errors or overload responses. * * @category configuration * @since 4.0.0 */ export interface InternalProviderErrorMetadata { /** * OpenRouter-specific details for the internal provider response. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `InvalidOutputError` values. * * **Details** * * Preserves provider error details when an OpenRouter response cannot be * parsed or validated as the expected output. * * @category configuration * @since 4.0.0 */ export interface InvalidOutputErrorMetadata { /** * OpenRouter-specific details for the invalid output response. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `StructuredOutputError` values. * * **Details** * * Preserves provider error details when OpenRouter returns content that does * not satisfy the requested structured output schema. * * @category configuration * @since 4.0.0 */ export interface StructuredOutputErrorMetadata { /** * OpenRouter-specific details for the structured output failure. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `UnsupportedSchemaError` values. * * **Details** * * Preserves provider error details when an unsupported schema failure is * associated with an OpenRouter response. * * @category configuration * @since 4.0.0 */ export interface UnsupportedSchemaErrorMetadata { /** * OpenRouter-specific details for the unsupported schema failure. */ readonly openrouter?: OpenRouterErrorMetadata | null } /** * OpenRouter metadata attached to `UnknownError` values. * * **Details** * * Preserves provider error details for OpenRouter failures that do not map * cleanly to a more specific AI error category. * * @category configuration * @since 4.0.0 */ export interface UnknownErrorMetadata { /** * OpenRouter-specific details for the unclassified provider failure. */ readonly openrouter?: OpenRouterErrorMetadata | null } }