226 lines
5.7 KiB
TypeScript
226 lines
5.7 KiB
TypeScript
/**
|
|
* 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
|
|
}
|
|
}
|