/** * Structured progress model. * * Progress is authoritative only when it corresponds to a verifiable structured * state change (new verified evidence, new source, new file-content hash, new * test result, new phase, resolved blocker, reduced failing-test count, ...). * Model prose, repeated identical reads/searches/commands, and reformatting are * NOT progress. Progress weights are deterministic and configurable — never * invented turn-by-turn by the model. */ import type { ProgressObservation } from "./types.js"; /** Progress categories and their deterministic default weights. */ export declare const PROGRESS_CATEGORY_WEIGHTS: Record; /** Categories that never constitute progress on their own. */ export declare const NON_PROGRESS_CATEGORIES: ReadonlySet; export interface ProgressParams { category: string; previousStateHash?: string; currentStateHash?: string; evidenceIds: string[]; weights?: Record; } export interface ProgressResult { observation: ProgressObservation | null; isProgress: boolean; reason: string; weight: number; } export interface ProgressAccumulator { runId: string; observations: readonly ProgressObservation[]; } export declare function createProgressAccumulator(runId: string): ProgressAccumulator; export declare function accumulatorWeight(acc: ProgressAccumulator): number; /** * Evaluate a progress signal deterministically. Returns `null` observation when * the signal is not authoritative progress (prose, duplicate, no state change). */ export declare function observeProgress(acc: ProgressAccumulator, params: ProgressParams, recordedAt: string): ProgressResult; export declare function appendObservation(acc: ProgressAccumulator, observation: ProgressObservation | null): ProgressAccumulator; /** Compute a short deterministic file-content state hash surrogate. */ export declare function fileContentHash(content: string): string; //# sourceMappingURL=progress.d.ts.map