/** * [WHO]: LoopProgressTracker and deterministic tool evidence fingerprints * [FROM]: No external dependencies * [TO]: Consumed by agent loops when progress-aware stopping is enabled * [HERE]: core/lib/agent-core/src/loop-progress.ts - bounded livelock detection primitive */ export interface LoopProgressOptions { repetitionThreshold: number; historySize?: number; } export interface LoopProgressEvidence { toolName: string; input: unknown; outcome: "success" | "error" | "denied"; output?: unknown; progressMarker?: string; } export interface LivelockDetection { fingerprint: string; repeatCount: number; } export declare function fingerprintProgressEvidence(evidence: LoopProgressEvidence): string; export declare class LoopProgressTracker { #private; stagnationCount: number; constructor(options: LoopProgressOptions); reset(): void; observe(evidence: LoopProgressEvidence): LivelockDetection | undefined; }