Provider definition data used by the backend registry.
Summary
Types
@type provider_name() :: :amp | :claude | :codex | :codex_exec | :gemini | atom()
@type t() :: %ASM.Provider{ aliases: [provider_name()], core_profile: module(), display_name: String.t(), example_support: ASM.Provider.ExampleSupport.t(), feature_manifest: map(), metadata: map(), name: provider_name(), options_schema: keyword(), profile: ASM.Provider.Profile.t(), sdk_runtime: module() | nil }
Functions
@spec example_support(t() | provider_name()) :: {:ok, ASM.Provider.ExampleSupport.t()} | {:error, ASM.Error.t()}
@spec example_support!(t() | provider_name()) :: ASM.Provider.ExampleSupport.t()
@spec feature_manifest(t() | provider_name()) :: {:ok, map()} | {:error, ASM.Error.t()}
@spec feature_manifest!(t() | provider_name()) :: map()
@spec resolve(t() | provider_name()) :: {:ok, t()} | {:error, ASM.Error.t()}
@spec resolve!(t() | provider_name()) :: t()
@spec supported_providers() :: [provider_name()]
@spec supports_feature?(t() | provider_name(), atom()) :: boolean()