Portable control-plane state for one logical inference.
Provider processes, credentials, HTTP handles, and callbacks never enter
this struct. Each provider attempt is represented by a revision-fenced
Spectre.Invocation; restart recovery decides from the persisted provider
status and declared adapter capabilities whether a new stream may be opened.
Summary
Types
@type t() :: %Spectre.Run.InferenceContinuation{ attempt: pos_integer(), budget: Spectre.Inference.Budget.t() | nil, consumer_token_digest: String.t() | nil, control_revision: non_neg_integer(), descriptor: Spectre.Inference.Descriptor.t(), frozen_selection: Spectre.Inference.FrozenSelection.t() | nil, inference_id: String.t(), invocation: Spectre.Invocation.t() | nil, last_response: Spectre.Inference.Response.t() | nil, postprocessor: atom(), previous_attempts: [map()], provider_request_digest: String.t() | nil, provider_request_id: term(), provider_status: atom(), purpose: atom(), recoverable?: boolean(), recovery: map() | nil, resume_cursor: term(), stream_epoch: String.t() | nil, stream_output_bytes: non_neg_integer(), stream_provider_sequence: non_neg_integer() | nil, stream_recovery: map() | nil, stream_usage: Spectre.Inference.Usage.t(), stream_usage_quality: :provider | :estimated | :unavailable }