MingaAgent.ProviderResolver (Minga v0.1.0)

Copy Markdown View Source

Resolves which agent provider module to use based on configuration.

Provider declarations live in MingaAgent.ProviderRegistry. The resolver preserves the existing :auto and :native behavior while also accepting registered string provider ids for future provider packs.

Summary

Types

Provider preference accepted by config and callers.

Resolved provider information.

Functions

Returns the configured model string, or nil to use the provider's default.

Resolves the provider module based on the current config.

Resolves a specific provider preference.

Types

preference()

@type preference() :: :auto | :native | String.t()

Provider preference accepted by config and callers.

resolved()

@type resolved() :: MingaAgent.ProviderResolver.Resolved.t()

Resolved provider information.

Functions

configured_model()

@spec configured_model() :: String.t() | nil

Returns the configured model string, or nil to use the provider's default.

resolve()

@spec resolve() :: resolved()

Resolves the provider module based on the current config.

The application :test_provider_module override keeps top precedence so tests can avoid mutating the daemon provider registry.

resolve(preference, opts \\ [])

@spec resolve(
  preference(),
  keyword()
) :: resolved()

Resolves a specific provider preference.