import type { PipelineConfig, RawPipelineConfig, RawTaskConfig, TaskConfig, TrackConfig } from './types'; export interface DagNode { readonly taskId: string; readonly task: TaskConfig; readonly track: TrackConfig; readonly dependsOn: readonly string[]; /** * H1: `task.continue_from` may be written by users as a bare task id * (e.g. `review`) or a same-track shorthand. The driver needs the * fully-qualified upstream id to look up output/session/normalized maps * deterministically — bare lookups race when two tracks happen to share * a task name. dag.ts performs the qualification once, here, so the * engine never has to. */ readonly resolvedContinueFrom?: string; } export interface Dag { readonly nodes: ReadonlyMap; readonly sorted: readonly string[]; } export declare function buildDag(config: PipelineConfig): Dag; export interface RawDagNode { readonly taskId: string; readonly trackId: string; readonly rawTask: RawTaskConfig; readonly dependsOn: readonly string[]; } export interface RawDagEdge { readonly from: string; readonly to: string; /** * 'explicit' — from `depends_on` or `continue_from` (the user wrote it). * 'dataflow' — an edge that carries a runtime input/output binding, inferred * from inputs/outputs name matching or explicit `from` * bindings. The editor renders it as dashed so the user sees * the data contract. When a user-written dependency also * carries data, this kind wins for the single rendered edge. */ readonly kind: 'explicit' | 'dataflow'; } export interface RawDag { readonly nodes: ReadonlyMap; /** Directed edges: from → to means "from must complete before to starts" */ readonly edges: readonly RawDagEdge[]; } /** * Build a lightweight DAG from a raw (unresolved) pipeline config. * Unlike buildDag, this function: * - Does not require a workDir or resolved PipelineConfig * - Is lenient: missing or ambiguous refs are silently skipped * * Intended for the visual editor to render the flow graph before a pipeline is run. */ export declare function buildRawDag(config: RawPipelineConfig): RawDag; //# sourceMappingURL=dag.d.ts.map