UNPKG

@sirmrmarty/n8n-nodes-tmux-orchestrator

Version:

n8n nodes for orchestrating Claude AI agents through tmux sessions

79 lines (78 loc) 2.27 kB
export declare enum CircuitState { CLOSED = "CLOSED", OPEN = "OPEN", HALF_OPEN = "HALF_OPEN" } export interface CircuitBreakerConfig { failureThreshold?: number; recoveryTimeout?: number; successThreshold?: number; monitoringWindow?: number; maxRetryAttempts?: number; exponentialBackoff?: boolean; onStateChange?: (state: CircuitState, reason: string) => void; onFailure?: (error: Error) => void; onSuccess?: () => void; } export interface CircuitBreakerStats { state: CircuitState; failures: number; successes: number; totalCalls: number; failureRate: number; lastFailureTime?: number; lastSuccessTime?: number; uptime: number; stateChanges: number; } export interface FailureRecord { timestamp: number; error: string; attempts: number; } export declare class CircuitBreaker { private name; private state; private failures; private successes; private totalCalls; private lastFailureTime?; private lastSuccessTime?; private nextAttemptTime; private stateChanges; private createdAt; private config; private recentFailures; private recoveryTimer?; constructor(name: string, config?: CircuitBreakerConfig); execute<T>(operation: () => Promise<T>, fallback?: () => Promise<T> | T): Promise<T>; private executeWithRetry; private onSuccess; private onFailure; private setState; private scheduleRecovery; private resetCounters; open(reason?: string): void; close(reason?: string): void; getStats(): CircuitBreakerStats; getFailureHistory(): FailureRecord[]; isHealthy(): boolean; destroy(): void; } export declare class CircuitBreakerRegistry { private static instance; private breakers; private constructor(); static getInstance(): CircuitBreakerRegistry; getBreaker(name: string, config?: CircuitBreakerConfig): CircuitBreaker; removeBreaker(name: string): boolean; getAllStats(): Record<string, CircuitBreakerStats>; getHealthStatus(): { healthy: string[]; unhealthy: string[]; }; emergencyStop(): void; resetAll(): void; destroy(): void; } export declare const circuitRegistry: CircuitBreakerRegistry;