ASM.Options (ASM v0.10.0)

Copy Markdown View Source

Shared runtime options validation and normalization.

Summary

Types

preflight_error()

preflight_mode()

@type preflight_mode() :: :strict_common | :compat

preflight_result()

@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()]
}

t()

@type t() :: keyword()

Functions

attach_model_payload(provider_opts, model_payload)

@spec attach_model_payload(
  keyword(),
  map()
) :: keyword()

ensure_positional_provider(provider, opts)

@spec ensure_positional_provider(
  ASM.Provider.provider_name(),
  keyword()
) :: :ok | {:error, ASM.Options.ProviderMismatchError.t()}

finalize_provider_opts(provider, provider_opts, opts \\ [])

@spec finalize_provider_opts(atom(), keyword(), keyword()) ::
  {:ok, keyword()} | {:error, ASM.Error.t()}

merge_provider_schema(provider_schema)

@spec merge_provider_schema(keyword()) :: {:ok, keyword()} | {:error, ASM.Error.t()}

preflight(provider, opts)

@spec preflight(
  ASM.Provider.provider_name(),
  keyword()
) :: {:ok, preflight_result()} | {:error, preflight_error() | ASM.Error.t()}

preflight(provider, opts, preflight_opts)

@spec preflight(ASM.Provider.provider_name(), keyword(), keyword()) ::
  {:ok, preflight_result()} | {:error, preflight_error() | ASM.Error.t()}

resolve_model_payload(provider, provider_opts)

@spec resolve_model_payload(
  atom(),
  keyword()
) ::
  {:ok, CliSubprocessCore.ModelRegistry.selection()} | {:error, ASM.Error.t()}

schema()

@spec schema() :: keyword()

validate(opts, provider_schema \\ [])

@spec validate(keyword(), keyword()) :: {:ok, t()} | {:error, ASM.Error.t()}

validate!(opts, provider_schema \\ [])

@spec validate!(keyword(), keyword()) :: t()

validate_model_payload(value, key)