/** * History Summary Builder * * Fetches workflow runs for a PR branch and calculates: * - Total number of runs * - Recent pattern (passed/failed/flaky) * - Success rate * * Provides context for pattern recognition without full history details. * * @packageDocumentation */ import type { CheckHistorySummary } from '../schemas/watch-pr-result.schema.js'; /** * HistorySummaryBuilder * * Builds a condensed history summary for pattern recognition. */ export declare class HistorySummaryBuilder { private readonly _owner; private readonly _repo; constructor(_owner: string, _repo: string); /** * Build history summary for a PR branch * * @param branch - Branch name * @returns History summary with total runs, pattern, and success rate */ buildSummary(branch: string): Promise; /** * Fetch workflow runs for a branch via gh CLI * * @param branch - Branch name * @returns Array of workflow runs (sorted by created_at DESC) */ private fetchWorkflowRuns; /** * Detect pattern from recent runs * * Patterns: * - "Passed last N runs" - All recent runs passed * - "Failed last N runs" - All recent runs failed * - "Flaky (alternating)" - Alternating pass/fail * - "Recently fixed (was failing)" - Recent passes after failures * - Generic pattern otherwise * * @param runs - All runs (sorted DESC) * @returns Pattern description */ private detectPattern; /** * Count consecutive runs with the same conclusion (starting from most recent) * * @param runs - Workflow runs * @param conclusion - Conclusion to check * @returns Count of consecutive runs */ private countConsecutive; /** * Check if runs are alternating between success and failure * * @param runs - Workflow runs (at least 4 required) * @returns True if alternating pattern detected */ private isAlternating; /** * Calculate success rate from recent runs * * @param runs - Recent workflow runs (up to 10) * @returns Success rate as percentage string (e.g., "75%") */ private calculateSuccessRate; } //# sourceMappingURL=history-summary-builder.d.ts.map