Shared runtime options validation and normalization.
Summary
Types
@type preflight_mode() :: :strict_common | :compat
@type preflight_result() :: %{ provider: atom(), mode: preflight_mode(), common: map(), session: map(), partial: map(), provider_native_legacy: map(), rejected: list(), warnings: [ASM.Options.Warning.t()] }
@type t() :: keyword()
Functions
@spec ensure_positional_provider( ASM.Provider.provider_name(), keyword() ) :: :ok | {:error, ASM.Options.ProviderMismatchError.t()}
@spec finalize_provider_opts(atom(), keyword(), keyword()) :: {:ok, keyword()} | {:error, ASM.Error.t()}
@spec merge_provider_schema(keyword()) :: {:ok, keyword()} | {:error, ASM.Error.t()}
@spec preflight( ASM.Provider.provider_name(), keyword() ) :: {:ok, preflight_result()} | {:error, preflight_error() | ASM.Error.t()}
@spec preflight(ASM.Provider.provider_name(), keyword(), keyword()) :: {:ok, preflight_result()} | {:error, preflight_error() | ASM.Error.t()}
@spec resolve_model_payload( atom(), keyword() ) :: {:ok, CliSubprocessCore.ModelRegistry.selection()} | {:error, ASM.Error.t()}
@spec schema() :: keyword()
@spec validate(keyword(), keyword()) :: {:ok, t()} | {:error, ASM.Error.t()}