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

Stream helpers for run event consumption and final result projection.

# `stream_state`

```elixir
@type stream_state() :: %{
  session: GenServer.server(),
  run_id: String.t(),
  timeout_ms: pos_integer(),
  queue_timeout_ms: pos_integer() | :infinity,
  queue_started_at_ms: integer() | nil,
  started?: boolean(),
  done?: boolean()
}
```

# `create`

```elixir
@spec create(GenServer.server(), String.t(), keyword()) :: Enumerable.t()
```

# `final_result`

```elixir
@spec final_result(Enumerable.t()) :: ASM.Result.t()
```

# `final_text`

```elixir
@spec final_text(Enumerable.t()) :: String.t()
```

# `text_content`

```elixir
@spec text_content(Enumerable.t()) :: Enumerable.t()
```

# `text_deltas`

```elixir
@spec text_deltas(Enumerable.t()) :: Enumerable.t()
```

---

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