# `CliSubprocessCore.ProviderRuntimeProfile`
[🔗](https://github.com/nshkrdotcom/cli_subprocess_core/blob/v0.7.0/lib/cli_subprocess_core/provider_runtime_profile.ex#L1)

Application-configured provider runtime profile selection.

Runtime profiles are an internal operator/configuration seam. They do not add
public request options; instead they rewrite provider startup onto a configured
Execution Plane transport surface before provider invocation and parser
callbacks run.

# `config`

```elixir
@type config() :: keyword() | map() | nil
```

# `profile`

```elixir
@type profile() :: keyword() | map()
```

# `provider`

```elixir
@type provider() :: atom()
```

# `resolve_error`

```elixir
@type resolve_error() ::
  {:provider_runtime_profile_required, provider()}
  | {:invalid_provider_runtime_profile, provider(), term()}
  | {:unsupported_provider_runtime_profile_mode, provider(), term()}
  | {:public_simulation_selector_forbidden, provider()}
```

# `adapter_selection_policy`

```elixir
@spec adapter_selection_policy() :: CliSubprocessCore.AdapterSelectionPolicy.t()
```

Declares the Phase 6 adapter selection policy for CLI runtime profiles.

# `lower_simulation_scenario!`

```elixir
@spec lower_simulation_scenario!(provider(), String.t(), map() | keyword()) ::
  CliSubprocessCore.LowerSimulationScenario.t()
```

Builds the owner-local Phase 6 lower scenario declaration for a runtime profile.

# `resolve`

```elixir
@spec resolve(provider(), keyword(), CliSubprocessCore.ExecutionSurface.t()) ::
  {:ok, {keyword(), CliSubprocessCore.ExecutionSurface.t()}}
  | {:error, resolve_error()}
```

Applies an application-configured runtime profile for a provider.

The supported PRELIM profile mode is `:lower_simulation`, which selects the
Execution Plane simulated process transport and injects provider-native stdout
or stderr frames below the existing provider parsers.

---

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