/** * Multi-agent orchestration dashboard metrics (T10461-T10464). * * Read-only aggregation over the existing task store, worktree list, and audit * JSONL files. This module intentionally does not introduce a new dashboard * persistence layer: every value is derived from existing SSoTs at call time. */ import type { DataAccessor } from '../store/data-accessor.js'; /** Observation window used for audit-derived rates. */ export declare const DASHBOARD_RATE_WINDOW_HOURS = 24; export interface DashboardRateMetric { count: number; perHour: number; windowHours: number; } export interface DashboardWorktreeState { path: string; branch: string; taskId: string | null; statusCategory: string; isDirty: boolean; hasUnpushedCommits: boolean; isStalled: boolean; reasons: string[]; } export interface OrchestrateDashboardMetrics { generatedAt: string; projectRoot: string; queueDepth: number; queue: { ready: number; pending: number; active: number; blocked: number; }; adminMergeRate: DashboardRateMetric; forceBypassRate: DashboardRateMetric; activeWorktreeCount: number; worktrees: { total: number; active: number; locked: number; stale: number; orphan: number; merged: number; dirty: number; unpushed: number; stalled: number; }; stalledWorktrees: DashboardWorktreeState[]; } export interface CollectDashboardOptions { accessor?: DataAccessor; now?: Date; rateWindowHours?: number; /** Test hook: skip git worktree enumeration and use these status categories. */ worktreeStatusCategories?: readonly string[]; /** Test hook: skip git worktree enumeration and use these full worktree states. */ worktreeStates?: readonly DashboardWorktreeState[]; } /** * Collect the compact observability dashboard for parallel orchestrators. */ export declare function collectOrchestrateDashboard(projectRoot: string, options?: CollectDashboardOptions): Promise; /** One-line summary safe for spawn-prompt injection. */ export declare function formatDashboardPromptSummary(metrics: OrchestrateDashboardMetrics): string; //# sourceMappingURL=dashboard.d.ts.map