ASM.Provider (ASM v0.9.2)

Copy Markdown View Source

Provider definition data used by the backend registry.

Summary

Types

provider_name()

@type provider_name() :: :amp | :claude | :codex | :codex_exec | :gemini | atom()

t()

@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

example_support(provider_or_name)

@spec example_support(t() | provider_name()) ::
  {:ok, ASM.Provider.ExampleSupport.t()} | {:error, ASM.Error.t()}

example_support!(provider_or_name)

@spec example_support!(t() | provider_name()) :: ASM.Provider.ExampleSupport.t()

feature_manifest(provider_or_name)

@spec feature_manifest(t() | provider_name()) ::
  {:ok, map()} | {:error, ASM.Error.t()}

feature_manifest!(provider_or_name)

@spec feature_manifest!(t() | provider_name()) :: map()

resolve(provider)

@spec resolve(t() | provider_name()) :: {:ok, t()} | {:error, ASM.Error.t()}

resolve!(provider_or_name)

@spec resolve!(t() | provider_name()) :: t()

supported_providers()

@spec supported_providers() :: [provider_name()]

supports_feature?(provider_or_name, feature)

@spec supports_feature?(t() | provider_name(), atom()) :: boolean()