import type { CompiledBuildPlan } from "../core/buildPlan.js"; import { type BuildExecutionPolicy, type BuildRunningAction, type BuildWorkspaceIdentity } from "../core/buildExecution.js"; import { type ExecutionLimits, type GraphExecutionState } from "../core/scheduler.js"; import { type GraphCheckpointLease } from "../runtime/graphCheckpoint.js"; import type { RunPaths } from "./artifacts.js"; import { type BuildActionExecutor, type DurableBuildActionResult } from "./buildExecution.js"; export interface BuildWorkerBudgetEstimates { unattended: boolean; estimatedCostUsd: number | "unknown"; observedCostUsd: number | "unknown"; inputTokens: number | "unknown"; outputTokens: number | "unknown"; } export interface BuildCoordinatorAdapter extends BuildActionExecutor { workspaceForNode(nodeId: string, state: Readonly): Readonly | undefined; workerBudgetEstimates(nodeId: string): Readonly; onActionSettled?(action: Readonly, result: Readonly): Promise | void; workerUsage?(nodeId: string): Readonly<{ estimatedCostUsd?: number | "unknown"; observedCostUsd?: number | "unknown"; inputTokens?: number | "unknown"; outputTokens?: number | "unknown"; }>; } export interface BuildCoordinatorOptions { owner: Readonly; graphOwner: Readonly; pid: number; now(): string; limits: Readonly; policy: Omit; maxActionConcurrency: number; routingDecisionId: string; maxPasses?: number; isProcessAlive?(pid: number): boolean; signal?: AbortSignal; } export interface BuildCoordinatorResult { status: "completed" | "waiting-human" | "blocked"; state: Readonly; reason?: string; } /** * Durable production coordinator for one immutable BUILD DAG. Graph events are * checkpointed serially; independent inner effects may execute through a * bounded pool after every required intent and scheduler reservation is durable. */ export declare function runBuildCoordinator(paths: RunPaths, compiled: Readonly, adapter: Readonly, options: Readonly): Promise;