# `ASM.AdapterSelectionPolicy`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.10.0/lib/asm/adapter_selection_policy.ex#L1)

Phase 6 adapter selection policy declaration for ASM provider resolution.

ASM consumes CLI core runtime profile configuration as a provider-registry
rule. It does not expose request-time simulation selectors.

# `t`

```elixir
@type t() :: %ASM.AdapterSelectionPolicy{
  config_key: String.t(),
  contract_version: String.t(),
  default_value_when_unset: String.t(),
  fail_closed_action_when_misconfigured: String.t(),
  owner_repo: String.t(),
  selection_surface: String.t()
}
```

# `contract_version`

```elixir
@spec contract_version() :: String.t()
```

# `dump`

```elixir
@spec dump(t()) :: map()
```

# `new`

```elixir
@spec new(map() | keyword() | t()) :: {:ok, t()} | {:error, Exception.t()}
```

# `new!`

```elixir
@spec new!(map() | keyword() | t()) :: t()
```

# `owner_repo`

```elixir
@spec owner_repo() :: String.t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
