/** * LoopRunner — Main orchestrator for the autonomous loop. * * Cycles through lap types (A: violation fixes, B: fidelity tests), * manages git branches, persists state for resumability, and * generates reports at the end. */ import type { KnowledgeGraph } from '../knowledge-graph/index.js'; import type { LoopConfig } from './types.js'; export declare class LoopRunner { private config; private knowledgeGraph; private pacer; private issueFetcher; private fixAgent; private observer; private state; private brainDir; constructor(config: LoopConfig, knowledgeGraph: KnowledgeGraph); /** * Run the autonomous loop. */ /** Track fixes since last PR for chunking */ private fixesSinceLastPr; private prCount; run(): Promise; /** * Execute a single lap. */ private executeLap; /** * Type A: Fix violation issues. */ private executeViolationFixLap; /** * Type B: Pipeline fidelity test. */ private executeFidelityLap; /** * Select the next lap type using round-robin. */ private selectNextLapType; private setupGitBranch; private commitFixes; private hasCommits; /** * Create a chunked PR: push current branch, create PR to dev, then start a new branch. */ private createChunkedPr; private createInitialState; private saveState; private loadState; /** * Convert this run's fix attempts into LearningEntry records and persist * them to .eddie-brain/learning.json, feeding the correction flywheel * (#1021). Maps outcomes: a successful fix → `accepted`, a failed fix → * `rejected` (reason = the error), a false positive → `rejected` (tagged). * Entry ids are deterministic per run+lap+issue so re-finalizing (e.g. on * resume) never double-records. The graph's learningHistory was hydrated * from learning.json at load, so saving it back is a superset, not a wipe. */ private recordLoopLearnings; private saveReport; private printHeader; private dryRun; } //# sourceMappingURL=runner.d.ts.map