/** * Lifecycle status for one epic, read from SQLite. * * A leaf module: `tasks.show` reports each epic's lifecycle status, so this * must not import the lifecycle index, whose stage guidance, ADR sync and * skill discovery load CAAMP and its YAML, TOML and frontmatter parsers. * `lifecycle/index.ts` re-exports {@link getLifecycleStatus}. * * @task T4801 - SQLite-native implementation * @task T1455 - normalized to (projectRoot, params) shape * @task T13126 - split out of lifecycle/index.ts */ import type { LifecycleStatusParams } from '@cleocode/contracts'; import { type Stage } from './stages.js'; /** One pipeline stage as {@link getLifecycleStatus} reports it. */ export interface LifecycleStageStatus { stage: string; status: string; completedAt?: string; notes?: string; outputFile?: string; provenanceChain?: Record; } /** An epic's lifecycle status: stage progress, current and next stage, blockers. */ export interface LifecycleStatus { epicId: string; title?: string; currentStage: Stage | null; stages: LifecycleStageStatus[]; nextStage: Stage | null; blockedOn: string[]; initialized: boolean; } /** * Get lifecycle status for an epic from SQLite. * Returns stage progress, current/next stage, and blockers. * * @param projectRoot - Project whose store to read. * @param params - The epic, as `epicId` or `taskId`. * @returns The epic's status; `initialized: false` with every stage * `not_started` when the epic has no pipeline. * @task T4801 - SQLite-native implementation * @task T1455 - normalized to (projectRoot, params) shape */ export declare function getLifecycleStatus(projectRoot: string, params: LifecycleStatusParams): Promise; //# sourceMappingURL=status.d.ts.map