UNPKG

@blundergoat/goat-flow

Version:

AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.

129 lines 5 kB
import type { AgentId } from "../types.js"; import type { QualityMode, SavedQualityFinding, SavedQualityReport } from "./schema.js"; /** Parsed quality report; invariant: filename-derived ids are the cross-run diff keys. */ export interface QualityHistoryEntry { id: string; path: string; date: string; time: string; agent: AgentId; randomId: string; report: SavedQualityReport; } /** Display row for history tables after same-agent deltas have been calculated. */ export interface QualityHistoryRow { id: string; date: string; agent: AgentId; qualityMode: QualityMode; setupTotal: number; systemTotal: number; setupDelta: number | null; blockerCount: number; majorCount: number; minorCount: number; /** Distinct evidence methods used across this run's findings. Lets the * dashboard distinguish runtime-probe runs from static-only runs. */ evidenceMethods: SavedQualityFinding["evidence_method"][]; } /** Finding summary row shared by resolved, new, persisted, and stuck diff sections. */ export interface QualityDiffFindingRow { id: string; severity: SavedQualityFinding["severity"]; type: SavedQualityFinding["type"]; summary: string; } /** Diff result for two same-agent, same-mode quality-history entries. */ export interface QualityDiffResult { from: QualityHistoryEntry; to: QualityHistoryEntry; setupDelta: number; systemDelta: number; resolved: QualityDiffFindingRow[]; newFindings: QualityDiffFindingRow[]; persisted: QualityDiffFindingRow[]; stuck: QualityDiffFindingRow[]; } /** * Load every saved quality-history report from disk. * * Reports malformed files as warnings and skips them because agent-written * history must be non-blocking. Invariant: returned entries stay newest-first * and use filename-derived ids for stable diff selection. * * @param projectPath - Project root containing `.goat-flow/logs/quality`. * @returns Parsed entries sorted newest-first plus non-fatal parse warnings. */ export declare function loadQualityHistory(projectPath: string): { entries: QualityHistoryEntry[]; warnings: string[]; }; /** * Load only the newest dashboard-sized quality-history window. For selected * agent tables, one extra matching entry is parsed so the oldest displayed row * can still calculate its delta without parsing the whole history directory. * * @param projectPath - Project root containing `.goat-flow/logs/quality`. * @param options - Agent/mode filters and optional dashboard row limit. * @returns Bounded entries sorted newest-first plus non-fatal parse warnings. */ export declare function loadQualityHistoryWindow(projectPath: string, options: { agent: AgentId | null; limit: number | null; qualityMode?: QualityMode | null; }): { entries: QualityHistoryEntry[]; warnings: string[]; }; /** * Find the latest quality report for one agent/mode without parsing all files. * Scans filenames newest-first, filters by agent from the filename, and parses * only matching JSON until a valid entry is found. * * @param projectPath - Project root containing `.goat-flow/logs/quality`. * @param agent - Agent whose newest report should be found. * @param qualityMode - Optional mode filter; `null` accepts any mode. * @returns Latest valid entry plus warnings for malformed matching files. */ export declare function findLatestQualityReport(projectPath: string, agent: AgentId, qualityMode?: QualityMode | null): { entry: QualityHistoryEntry | null; warnings: string[]; }; /** * Select visible quality-history entries after agent, mode, and limit filters. * * @param entries - Pre-sorted quality-history entries. * @param options - Filter and limit options from CLI or dashboard callers. * @returns Filtered entries, preserving input order. */ export declare function selectQualityHistoryEntries(entries: QualityHistoryEntry[], options: { agent: AgentId | null; limit: number | null; qualityMode?: QualityMode | null; }): QualityHistoryEntry[]; /** * Build display rows with same-agent, same-mode setup deltas. * * @param entries - Pre-sorted quality-history entries. * @param options - Filter and limit options from CLI or dashboard callers. * @returns History table rows, preserving newest-first order. */ export declare function buildQualityHistoryRows(entries: QualityHistoryEntry[], options: { agent: AgentId | null; limit: number | null; qualityMode?: QualityMode | null; }): QualityHistoryRow[]; /** Build the diff between two quality-history runs. */ export declare function buildQualityDiff(entries: QualityHistoryEntry[], options: { agent: AgentId | null; pair: string | null; qualityMode?: QualityMode | null; }): { ok: true; diff: QualityDiffResult; } | { ok: false; error: string; }; export { renderQualityDiffText, renderQualityHistoryText, } from "./history-render.js"; //# sourceMappingURL=history.d.ts.map