Public provider feature manifests for ASM.
This module exposes two related surfaces:
- provider-native permission mode metadata inherited from
CliSubprocessCore.ProviderFeatures - ASM common features that are only supported by some providers, such as the common Ollama surface
Summary
Types
@type manifest() :: %{ provider: ASM.Provider.provider_name(), permission_modes: %{optional(atom()) => permission_manifest()}, common_features: %{optional(atom()) => common_feature_manifest()} }
@type permission_manifest() :: CliSubprocessCore.ProviderFeatures.permission_manifest()
Functions
@spec common_feature(ASM.Provider.t() | ASM.Provider.provider_name(), atom()) :: {:ok, common_feature_manifest()} | {:error, ASM.Error.t()}
@spec common_feature!(ASM.Provider.t() | ASM.Provider.provider_name(), atom()) :: common_feature_manifest()
@spec manifest(ASM.Provider.t() | ASM.Provider.provider_name()) :: {:ok, manifest()} | {:error, ASM.Error.t()}
@spec manifest!(ASM.Provider.t() | ASM.Provider.provider_name()) :: manifest()
@spec permission_mode( ASM.Provider.t() | ASM.Provider.provider_name(), atom() | String.t() ) :: {:ok, permission_manifest()} | {:error, ASM.Error.t()}
@spec permission_mode!( ASM.Provider.t() | ASM.Provider.provider_name(), atom() | String.t() ) :: permission_manifest()
@spec supports_common_feature?( ASM.Provider.t() | ASM.Provider.provider_name(), atom() ) :: boolean()