Full outcome + telemetry of one run/ask (SPEC §8, §10).
status is "done" | "pending" | "incomplete": "pending" ⇒ a tool suspended
and no wait_for was set (§10); "incomplete" ⇒ a limit stopped the run loudly
(max_turns reached with the model still emitting tool calls — SPEC §7D/§10 addendum),
never a silent "done". limit names the limit ("maxTurns") and is set ONLY when
status is "incomplete".
Summary
Types
@type t() :: %Toolnexus.Client.RunResult{ limit: String.t() | nil, messages: [map()], model: String.t() | nil, pending: Toolnexus.Request.t() | nil, status: String.t(), text: String.t(), tool_call_count: non_neg_integer(), tool_calls: [map()], turns: non_neg_integer(), usage: %{ prompt_tokens: integer(), completion_tokens: integer(), total_tokens: integer() } }