/** * Git Integration — tie tests to git commits, generate reports, and bisect regressions. * * @module git-integration */ import type { SuiteResult } from './types'; export interface CommitTestResult { hash: string; shortHash: string; author: string; date: string; message: string; suiteResult?: SuiteResult; passed: number; failed: number; total: number; regressions: string[]; fixes: string[]; } export interface GitReport { commits: CommitTestResult[]; trend: GitTrend; summary: string; } export interface GitTrend { totalTestsDelta: number; passRateDelta: number; regressionsIntroduced: number; regressionsFixed: number; } export interface BisectOptions { test: string; goodCommit: string; badCommit: string; maxSteps?: number; } export interface BisectResult { found: boolean; commit?: CommitTestResult; stepsSearched: number; searchPath: string[]; expression: string; } export interface GitDiffFile { path: string; status: 'added' | 'modified' | 'deleted' | 'renamed'; additions: number; deletions: number; } export interface GitDiff { fromRef: string; toRef: string; files: GitDiffFile[]; totalAdditions: number; totalDeletions: number; } /** * Parse a git log line into structured commit info. * Expected format: "hash|shortHash|author|date|message" */ export declare function parseCommitLine(line: string): Omit | null; /** * Parse git diff --stat output into structured file changes. */ export declare function parseDiffStat(diffOutput: string): GitDiffFile[]; /** * Parse git diff --numstat output into structured file changes. */ export declare function parseNumstat(numstatOutput: string): GitDiffFile[]; /** * Compare two suite results to find regressions and fixes. */ export declare function diffSuiteResults(previous: SuiteResult | undefined, current: SuiteResult): { regressions: string[]; fixes: string[]; }; /** * Build a commit test result from a suite result and commit info. */ export declare function buildCommitResult(commit: { hash: string; shortHash: string; author: string; date: string; message: string; }, suiteResult: SuiteResult, previous?: SuiteResult): CommitTestResult; /** * Generate a git report from a list of commit results. */ export declare function generateGitReport(commits: CommitTestResult[]): GitReport; /** * Calculate trend across commits. */ export declare function calculateTrend(commits: CommitTestResult[]): GitTrend; /** * Format a git report into human-readable text. */ export declare function formatGitReport(commits: CommitTestResult[], trend: GitTrend): string; /** * Parse a bisect test expression, e.g. "search accuracy > 0.8". * Returns a function that evaluates against a SuiteResult. */ export declare function parseBisectExpression(expr: string): (result: SuiteResult) => boolean; /** * Simulate a bisect search over a list of commit results. * Returns the first commit where the test expression fails. */ export declare function bisectSearch(commits: CommitTestResult[], expression: string): BisectResult; /** * Format bisect result. */ export declare function formatBisectResult(result: BisectResult): string; //# sourceMappingURL=git-integration.d.ts.map