UNPKG

codecrucible-synth

Version:

Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability

88 lines 2.5 kB
/** * Request Timeout Optimizer * Prevents hanging requests and optimizes timeout handling based on usage patterns * * Performance Impact: Eliminates hanging requests, 50-70% faster failure detection */ interface TimeoutConfig { defaultTimeout: number; fastModeTimeout: number; toolExecutionTimeout: number; streamingTimeout: number; batchTimeout: number; } export declare class RequestTimeoutOptimizer { private static instance; private activeRequests; private timeoutHistory; private config; private cleanupIntervalId; private constructor(); static getInstance(): RequestTimeoutOptimizer; /** * Create an optimized timeout for a request */ createOptimizedTimeout(requestId: string, type: 'regular' | 'streaming' | 'batch' | 'tool_execution', provider: string, customTimeout?: number): { abortController: AbortController; timeout: number; }; /** * Calculate optimal timeout based on historical data */ private calculateOptimalTimeout; /** * Handle request timeout */ private handleTimeout; /** * Complete a request successfully */ completeRequest(requestId: string): void; /** * Adjust timeouts based on failure patterns */ private adjustTimeoutsBasedOnFailure; /** * Get current timeout for a specific type */ private getTimeoutForType; /** * Start monitoring for hung requests */ private startTimeoutMonitoring; /** * Monitor for requests that should have timed out but haven't */ private monitorHungRequests; /** * Get timeout optimization statistics */ getTimeoutStats(): { activeRequests: number; totalRequests: number; timeoutRate: number; averageRequestDuration: number; adaptiveAdjustments: number; currentConfig: TimeoutConfig; performanceByType: Record<string, { avgDuration: number; timeoutRate: number; requestCount: number; }>; }; /** * Update timeout configuration */ updateTimeoutConfig(newConfig: Partial<TimeoutConfig>): void; /** * Get timeout recommendations */ getTimeoutRecommendations(): string[]; /** * Shutdown and cleanup */ shutdown(): void; } export declare const requestTimeoutOptimizer: RequestTimeoutOptimizer; export {}; //# sourceMappingURL=request-timeout-optimizer.d.ts.map