Canonical execution contract for program and training optimizers.
Optimizer modules declare what they produce and which dataset splits they
consume. run/3 dispatches only through this behaviour; callback arity is
never used to infer argument meaning. Operational safety failures remain
raised across this boundary instead of becoming generic optimizer errors.
Summary
Functions
Returns validated capability metadata for an optimizer value.
Runs an optimizer through its declared behaviour.
Runs an optimizer once against the named datasets available to a composed workflow.
Types
@type capabilities() :: %{ kind: kind(), datasets: %{required(atom()) => requirement()}, result: :program | :training_result | :constructed_program | {:workflow_result, module()} }
@type kind() :: :program | :training | :constructor | :workflow
@type requirement() :: :required | :optional | :unsupported
Callbacks
Functions
@spec capabilities(struct()) :: {:ok, capabilities()} | {:error, term()}
Returns validated capability metadata for an optimizer value.
Runs an optimizer through its declared behaviour.
@spec run_with_datasets(struct(), term(), map(), [kind()] | :any) :: {:ok, capabilities(), term()} | {:error, term()}
Runs an optimizer once against the named datasets available to a composed workflow.