UNPKG

deepsource-mcp-server

Version:
75 lines (74 loc) 2.39 kB
/** * @fileoverview Retry policy configuration for DeepSource MCP Server * This module defines retry policies and configuration for automatic retries. */ import { ErrorCategory } from '../errors/categories.js'; /** * Retry policy configuration for API operations * @interface * @public */ export interface RetryPolicy { /** Maximum number of retry attempts */ maxAttempts: number; /** Base delay in milliseconds for exponential backoff */ baseDelay: number; /** Maximum delay in milliseconds */ maxDelay: number; /** Jitter factor (0-1) for randomization */ jitterFactor: number; /** Error categories that should trigger a retry */ retriableErrors: ErrorCategory[]; /** Whether to respect Retry-After headers */ respectRetryAfter: boolean; /** Policy name for logging */ name: string; } /** * Retry policy presets * @enum * @public */ export declare enum RetryPolicyType { /** Aggressive retry for critical read operations */ AGGRESSIVE = "aggressive", /** Standard retry for normal operations */ STANDARD = "standard", /** Cautious retry for sensitive operations */ CAUTIOUS = "cautious", /** No retry for mutations */ NONE = "none" } /** * Predefined retry policies for different operation types * @public */ export declare const RETRY_POLICIES: Record<RetryPolicyType, RetryPolicy>; /** * Map of endpoint patterns to retry policies * Used to determine which policy to apply for a given operation * @public */ export declare const ENDPOINT_POLICIES: Map<string, RetryPolicyType>; /** * Get retry policy for a given endpoint * @param endpoint The endpoint or operation name * @returns The appropriate retry policy * @public */ export declare function getRetryPolicyForEndpoint(endpoint: string): RetryPolicy; /** * Check if an error category is retriable according to a policy * @param errorCategory The error category to check * @param policy The retry policy to check against * @returns True if the error is retriable * @public */ export declare function isRetriableByPolicy(errorCategory: ErrorCategory, policy: RetryPolicy): boolean; /** * Create a custom retry policy * @param options Partial policy options to override defaults * @returns A new retry policy * @public */ export declare function createCustomPolicy(options: Partial<RetryPolicy>): RetryPolicy;