/** * Capture Agent — Circuit Breaker * * Three-level circuit breaker to prevent infinite recovery loops: * - Per-opcode: max failures before the opcode is abandoned * - Per-page: max failures across all opcodes on the same page * - Per-run: max total failures across the entire program */ import type { CircuitBreakerConfig } from './execution-types.js'; export type BreakerTrip = 'opcode' | 'page' | 'run'; export interface BreakerState { tripped: boolean; level?: BreakerTrip; reason: string; opcodeFailures: number; pageFailures: number; runFailures: number; } export declare class CircuitBreaker { private config; private opcodeFailures; private pageFailures; private runFailures; private currentPageKey; constructor(config?: CircuitBreakerConfig); /** Set the current page context (URL-based key) */ setPage(url: string): void; /** Record a failure for an opcode. Returns breaker state. */ recordFailure(opcodeIndex: number, maxPerOpcode?: number): BreakerState; /** Record a success for an opcode (resets opcode-level counter) */ recordSuccess(opcodeIndex: number): void; /** Check if the breaker is currently tripped at any level */ isTripped(): BreakerState; /** Get summary of all failure counts */ getSummary(): { opcodeFailures: Record; pageFailures: Record; runFailures: number; }; /** Reset all counters */ reset(): void; }