/** * Causal history graph snapshot — milestones + lane forks + promotes. * Spec: docs/specs/trellis-admin-causal-graph.md */ import type { TrellisVcsEngine } from '../engine.js'; import type { LaneMeta } from '../vcs/lane.js'; import type { MilestoneInfo } from '../vcs/milestone.js'; export type CausalNodeKind = 'milestone' | 'fork' | 'promote' | 'head'; export interface CausalNode { id: string; hash: string; message: string; lane: number; parents: string[]; branches?: string[]; tags?: string[]; author?: string; date?: string; kind?: CausalNodeKind; /** Agent lane UUID when node represents fork/head/promote on a lane. */ laneId?: string; /** True when `laneId` refers to a lane with status `active`. */ active?: boolean; } export interface CausalGraphSnapshot { at: string; integrationBranch: string; commits: CausalNode[]; /** Lane ids with status `active` (agent-assigned work in flight). */ activeLaneIds: string[]; stats: { eventCount: number; activeForkCount: number; }; } export interface CausalGraphInputs { integrationBranch: string; lanes: LaneMeta[]; milestones: MilestoneInfo[]; issueTitles?: Record; } /** Assign graph column indices (0 = trunk). Exported for tests. */ export declare function assignLaneIndices(lanes: LaneMeta[]): Map; export declare function buildCausalGraphFromInputs(input: CausalGraphInputs): CausalGraphSnapshot; export declare function buildCausalGraphSnapshot(engine: TrellisVcsEngine): CausalGraphSnapshot; export declare function formatViewMeta(stats: CausalGraphSnapshot['stats'], integrationBranch: string): string; //# sourceMappingURL=causal-graph-snapshot.d.ts.map