Current section
Files
Jump to
Current section
Files
lib/asm/result.ex
defmodule ASM.Result do
@moduledoc """
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.
"""
@enforce_keys [:run_id, :session_id]
defstruct [
:run_id,
:session_id,
:text,
:messages,
:cost,
:error,
:duration_ms,
:stop_reason,
:session_id_from_cli,
:metadata
]
@type t :: %__MODULE__{
run_id: String.t(),
session_id: String.t(),
text: String.t() | nil,
messages: list() | nil,
cost: map() | nil,
error: ASM.Error.t() | nil,
duration_ms: non_neg_integer() | nil,
stop_reason: atom() | String.t() | nil,
session_id_from_cli: String.t() | nil,
metadata: map() | nil
}
end