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
TypeScript
/**
* 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