import { EvalRegression, EvalReport } from "../contracts/agent/eval.type.mjs"; //#region ../ai/src/eval/regression.d.ts /** * Diff a fresh {@link EvalReport} against a `baseline`, joining cases by * name, to produce an {@link EvalRegression} verdict. * * A case **regresses** when its new aggregate `score` is more than * `tolerance` below its baseline score (`before - after > tolerance`). * Cases that improved, held steady, or moved within `tolerance` are not * flagged. Cases present in only one of the two reports are surfaced * under `added` / `removed` rather than treated as regressions, so adding * or dropping a case never fails the gate by itself. * * Pure — depends only on the two reports and the tolerance; attaches no * state and mutates neither input. * * @param report - The newly produced report. * @param baseline - A prior report to compare against. * @param tolerance - Max allowed score drop before a case counts as a * regression. Defaults to `0` (any drop regresses). * * @example * const regression = diff(report, baseline, 0.05); * expect(regression.passed).toBe(true); */ declare function diff(report: EvalReport, baseline: EvalReport, tolerance?: number): EvalRegression; //#endregion export { diff }; //# sourceMappingURL=regression.d.mts.map