vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
61 lines • 2.04 kB
TypeScript
export declare enum CircuitState {
CLOSED = "CLOSED",
OPEN = "OPEN",
HALF_OPEN = "HALF_OPEN"
}
export interface CircuitBreakerConfig {
failureThreshold: number;
successThreshold: number;
timeout: number;
operationTimeout: number;
monitoringWindow: number;
}
export interface CircuitBreakerStats {
state: CircuitState;
failures: number;
successes: number;
totalRequests: number;
lastFailureTime?: number;
lastSuccessTime?: number;
nextAttemptTime?: number;
failureRate: number;
}
export interface OperationResult<T> {
success: boolean;
result?: T;
error?: Error;
usedFallback: boolean;
circuitState: CircuitState;
executionTime: number;
}
export declare class OperationCircuitBreaker {
private name;
private config;
private static circuits;
private static readonly DEFAULT_CONFIG;
private state;
private failures;
private successes;
private lastFailureTime?;
private lastSuccessTime?;
private nextAttemptTime?;
private recentOperations;
constructor(name: string, config?: CircuitBreakerConfig);
static getCircuit(name: string, config?: Partial<CircuitBreakerConfig>): OperationCircuitBreaker;
static safeExecute<T>(operationName: string, operation: () => Promise<T>, fallback: T | (() => T | Promise<T>), config?: Partial<CircuitBreakerConfig>): Promise<OperationResult<T>>;
execute<T>(operation: () => Promise<T>, fallback: T | (() => T | Promise<T>)): Promise<OperationResult<T>>;
private shouldAllowOperation;
private executeWithTimeout;
private executeFallback;
private recordSuccess;
private recordFailure;
private addToRecentOperations;
private calculateFailureRate;
getStats(): CircuitBreakerStats;
reset(): void;
forceState(state: CircuitState): void;
static getAllStats(): Record<string, CircuitBreakerStats>;
static resetAll(): void;
static removeCircuit(name: string): boolean;
}
//# sourceMappingURL=operation-circuit-breaker.d.ts.map