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

ASM-local runtime-auth context for standalone provider execution.

This module is intentionally owner-local to ASM. It records standalone
execution context and connector evidence, but it does not issue durable
credential leases or assert governed authority.

# `mode`

```elixir
@type mode() :: :standalone | :governed
```

# `t`

```elixir
@type t() :: %ASM.RuntimeAuth{
  connector_binding: ASM.RuntimeAuth.ConnectorBinding.t(),
  connector_instance: ASM.RuntimeAuth.ConnectorInstance.t(),
  connector_invocation_evidence: map(),
  execution_context: ASM.RuntimeAuth.ExecutionContext.t(),
  mode: mode(),
  provider_account_identity: ASM.RuntimeAuth.ProviderAccountIdentity.t(),
  provider_auth_backend: atom()
}
```

# `accept_handoff`

```elixir
@spec accept_handoff(
  ASM.RuntimeAuth.HandoffPacket.t() | map(),
  keyword()
) :: {:ok, map()} | {:error, ASM.Error.t()}
```

# `authorize_governed_provider_runtime`

```elixir
@spec authorize_governed_provider_runtime(atom(), map(), keyword()) ::
  :ok | {:error, ASM.Error.t()}
```

# `for_run`

```elixir
@spec for_run(t(), String.t(), keyword()) :: {:ok, t()} | {:error, ASM.Error.t()}
```

# `governed_authority?`

```elixir
@spec governed_authority?(t() | map() | term()) :: boolean()
```

# `governed_context?`

```elixir
@spec governed_context?(t() | map() | term()) :: boolean()
```

# `handoff_packet`

```elixir
@spec handoff_packet(
  t(),
  keyword()
) :: {:ok, ASM.RuntimeAuth.HandoffPacket.t()} | {:error, ASM.Error.t()}
```

# `new`

```elixir
@spec new(String.t(), atom(), keyword()) :: {:ok, t()} | {:error, ASM.Error.t()}
```

# `new!`

```elixir
@spec new!(String.t(), atom(), keyword()) :: t()
```

# `option_keys`

```elixir
@spec option_keys() :: [atom()]
```

# `provider_account_statuses`

```elixir
@spec provider_account_statuses() :: [atom()]
```

# `provider_auth_env_keys`

```elixir
@spec provider_auth_env_keys(atom()) :: [String.t()]
```

# `to_map`

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

# `to_metadata`

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

---

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