/** * Observer — Spots areas for improvement in files touched during a lap. * * After each lap, reviews the files that were fixed and identifies * patterns, inconsistencies, missing features, or architectural * improvements. Files observations as GitHub issues. */ import type { Observation, FixAttempt } from './types.js'; import type { Pacer } from './pacer.js'; export declare class Observer { private apiKey; private model; private rootDir; private pacer; private client; constructor(apiKey: string, model: string, rootDir: string, pacer: Pacer); /** * Review files from a completed lap and identify improvement opportunities. */ observe(fixes: FixAttempt[]): Promise; /** * File observations as GitHub issues, with deduplication. * * Before creating any issue, fetches all open issue titles in one batch * and checks for: * 1. Exact title match (case-insensitive) * 2. Filename-based similarity — if the observation references a file * and an existing open issue mentions the same filename in its title * * Skipped observations are logged but not filed, preventing the historic * duplicate-issue bug (#217) where each pipeline run filed new issues for * the same file+violation across multiple runs. With ~200 duplicate issues * accumulated before this fix, the dedup is critical for keeping the * issue board usable. */ fileIssues(observations: Observation[]): Promise; /** * Parse the observer's response into structured observations. */ private parseObservations; } //# sourceMappingURL=observer.d.ts.map