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

Final run projection returned by `ASM.query/3`.

Result metadata is derived from the run event stream so streaming consumers
and query-style consumers observe the same lane/backend/execution metadata.

# `t`

```elixir
@type t() :: %ASM.Result{
  cost: map() | nil,
  duration_ms: non_neg_integer() | nil,
  error: ASM.Error.t() | nil,
  messages: list() | nil,
  metadata: map() | nil,
  run_id: String.t(),
  session_id: String.t(),
  session_id_from_cli: String.t() | nil,
  stop_reason: atom() | String.t() | nil,
  text: String.t() | nil
}
```

---

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