Dependency-aware, deterministic prompt scheduling.
Independent prompts retain packet order. Dependencies are topologically ordered and a failed dependency blocks only its descendants.
Summary
Functions
@spec blocked_dependencies(PromptRunner.Plan.t(), String.t(), map()) :: [String.t()]
@spec order(PromptRunner.Plan.t(), [String.t()]) :: {:ok, [String.t()]} | {:error, term()}
@spec validate(PromptRunner.Plan.t()) :: :ok | {:error, term()}