# `ASM.SessionControl`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.9.2/lib/asm/session_control.ex#L1)

Provider-native session control helpers for historical resume and
interrupt-then-intervene flows.

# `provider_or_session`

```elixir
@type provider_or_session() :: ASM.Provider.provider_name() | pid()
```

# `resume_target`

```elixir
@type resume_target() :: :checkpoint | :latest | String.t()
```

# `checkpoint`

```elixir
@spec checkpoint(pid()) :: {:ok, map() | nil} | {:error, ASM.Error.t()}
```

# `continuation_from_checkpoint`

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

# `intervene`

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

# `list_provider_sessions`

```elixir
@spec list_provider_sessions(
  provider_or_session(),
  keyword()
) :: {:ok, [ASM.SessionControl.Entry.t()]} | {:error, ASM.Error.t()}
```

# `pause`

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

# `resume_run`

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

---

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