# `ClaudeAgentSDK.Streaming.Termination`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.16.0/lib/claude_agent_sdk/streaming/termination.ex#L1)

Shared termination logic for streaming sessions.

Tracks stop_reason updates and determines when a message should complete.

# `stop_reason`

```elixir
@type stop_reason() :: String.t() | nil
```

# `reduce`

```elixir
@spec reduce([map()], stop_reason()) :: {stop_reason(), boolean()}
```

# `step`

```elixir
@spec step(map(), stop_reason()) :: {stop_reason(), boolean()}
```

---

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