LLMStreamEvent class
Unified per-token streaming event. Replaces LLMToken (deleted) and the per-SDK hand-rolled AsyncThrowingStream / callbackFlow / StreamController / tokenQueue. One serialized event per generated token. Mirrors VoiceEvent's seq + timestamp_us pattern from voice_events.proto so frontends can reuse gap-detection logic.
- Available extensions
Constructors
- LLMStreamEvent({Int64? seq, Int64? timestampUs, String? token, bool? isFinal, TokenKind? kind, int? tokenId, double? logprob, String? finishReason, String? errorMessage, LLMStreamFinalResult? result, int? errorCode, LLMStreamEventKind? eventKind, String? requestId, String? conversationId, int? promptTokensProcessed, int? completionTokensGenerated, Int64? elapsedMs, ToolCall? toolCall})
-
factory
-
LLMStreamEvent.fromBuffer(List<
int> data, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) -
factory
- LLMStreamEvent.fromJson(String json, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
-
factory
Properties
- completionTokensGenerated ↔ int
-
getter/setter pair
- conversationId ↔ String
-
getter/setter pair
- elapsedMs ↔ Int64
-
getter/setter pair
- errorCode ↔ int
-
Numeric backend status code when the terminal event represents a
failure. 0 = unset/success.
getter/setter pair
- errorMessage ↔ String
-
Error message on failure events (kind may be unset, is_final true).
Empty on success.
getter/setter pair
- eventKind ↔ LLMStreamEventKind
-
Event classification distinct from token semantic kind.
getter/setter pair
- finishReason ↔ String
-
Reason the stream stopped: "stop", "length", "cancelled", "error",
"" = unset (proto3 scalar default). Only populated when is_final.
getter/setter pair
- hashCode → int
-
Calculates a hash code based on the contents of the protobuf.
no setterinherited
- info_ → BuilderInfo
-
no setter
- isFinal ↔ bool
-
True on the last event of a generation.
getter/setter pair
- isFrozen → bool
-
Returns
trueif this message is marked read-only. Otherwisefalse.no setterinherited - kind ↔ TokenKind
-
Token semantic category (answer / thought / tool-call).
Canonical TokenKind from voice_events.proto.
getter/setter pair
- logprob ↔ double
-
Per-token log-probability when supported; 0.0 = unset.
getter/setter pair
- promptTokensProcessed ↔ int
-
Running counters for progress UIs.
getter/setter pair
- requestId ↔ String
-
Request/session correlation fields.
getter/setter pair
- result ↔ LLMStreamFinalResult
-
Final aggregate result. Only populated on terminal events
(is_final=true) when the backend can report result metrics.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- seq ↔ Int64
-
Monotonic per-process sequence number. Useful for frontends that
need to detect gaps or out-of-order delivery.
getter/setter pair
- timestampUs ↔ Int64
-
Wall-clock timestamp captured at the C++ edge, in microseconds
since Unix epoch. Frontends may re-timestamp for UI display.
getter/setter pair
- token ↔ String
-
Generated token text. Empty on terminal events where only
finish_reason or error_message is populated.
getter/setter pair
- tokenId ↔ int
-
Backend-provided token id when the engine exposes it; 0 = unset
(proto3 scalar default).
getter/setter pair
- toolCall ↔ ToolCall
-
Structured tool-call payload emitted when event_kind is
LLM_STREAM_EVENT_KIND_TOOL_CALL.
getter/setter pair
- unknownFields → UnknownFieldSet
-
no setterinherited
Methods
-
addExtension(
Extension extension, Object? value) → void -
Adds an extension field value to a repeated field.
inherited
-
check(
) → void -
Throws a StateError if the message has required fields without a value.
inherited
-
clear(
) → void -
Clears all data that was set in this message.
inherited
-
clearCompletionTokensGenerated(
) → void -
clearConversationId(
) → void -
clearElapsedMs(
) → void -
clearErrorCode(
) → void -
clearErrorMessage(
) → void -
clearEventKind(
) → void -
clearExtension(
Extension extension) → void -
Clears an extension field and also removes the extension.
inherited
-
clearField(
int tagNumber) → void -
Clears the contents of a given field.
inherited
-
clearFinishReason(
) → void -
clearIsFinal(
) → void -
clearKind(
) → void -
clearLogprob(
) → void -
clearPromptTokensProcessed(
) → void -
clearRequestId(
) → void -
clearResult(
) → void -
clearSeq(
) → void -
clearTimestampUs(
) → void -
clearToken(
) → void -
clearTokenId(
) → void -
clearToolCall(
) → void -
clone(
) → LLMStreamEvent - Creates a deep copy of the fields in this message.
-
copyWith(
void updates(LLMStreamEvent)) → LLMStreamEvent -
Apply
updatesto a copy of this message. -
createEmptyInstance(
) → LLMStreamEvent - Creates an empty instance of the same message type as this.
-
deepCopy(
) → T -
Available on T, provided by the GeneratedMessageGenericExtensions extension
Returns a writable deep copy of this message. -
ensureResult(
) → LLMStreamFinalResult -
ensureToolCall(
) → ToolCall -
extensionsAreInitialized(
) → bool -
inherited
-
freeze(
) → GeneratedMessage -
Make this message read-only.
inherited
-
getDefaultForField(
int tagNumber) → dynamic -
Returns the default value for the given field.
inherited
-
getExtension(
Extension extension) → dynamic -
Returns the value of
extension.inherited -
getField(
int tagNumber) → dynamic -
Returns the value of the field associated with
tagNumber, or the default value if it is not set.inherited -
getFieldOrNull(
int tagNumber) → dynamic -
Returns the value of a field, ignoring any defaults.
inherited
-
getTagNumber(
String fieldName) → int? -
inherited
-
hasCompletionTokensGenerated(
) → bool -
hasConversationId(
) → bool -
hasElapsedMs(
) → bool -
hasErrorCode(
) → bool -
hasErrorMessage(
) → bool -
hasEventKind(
) → bool -
hasExtension(
Extension extension) → bool -
Returns
trueif a value ofextensionis present.inherited -
hasField(
int tagNumber) → bool -
Whether this message has a field associated with
tagNumber.inherited -
hasFinishReason(
) → bool -
hasIsFinal(
) → bool -
hasKind(
) → bool -
hasLogprob(
) → bool -
hasPromptTokensProcessed(
) → bool -
hasRequestId(
) → bool -
hasRequiredFields(
) → bool -
Whether the message has required fields.
inherited
-
hasResult(
) → bool -
hasSeq(
) → bool -
hasTimestampUs(
) → bool -
hasToken(
) → bool -
hasTokenId(
) → bool -
hasToolCall(
) → bool -
isInitialized(
) → bool -
Whether all required fields in the message and embedded messages are set.
inherited
-
mergeFromBuffer(
List< int> input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void -
Merges serialized protocol buffer data into this message.
inherited
-
mergeFromCodedBufferReader(
CodedBufferReader input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void -
Same as
mergeFromBuffer, but takes aCodedBufferReaderinput.inherited -
mergeFromJson(
String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void -
Merges field values from
data, a JSON object, encoded as described byGeneratedMessage.writeToJson.inherited -
mergeFromJsonMap(
Map< String, dynamic> json, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void -
Merges field values from a JSON object represented as a Dart map.
inherited
-
mergeFromMessage(
GeneratedMessage other) → void -
Merges the contents of the
otherinto this message.inherited -
mergeFromProto3Json(
Object? json, {TypeRegistry typeRegistry = const TypeRegistry.empty(), bool ignoreUnknownFields = false, bool supportNamesWithUnderscores = true, bool permissiveEnums = false}) → void -
Merges field values from
json, a JSON object using proto3 encoding.inherited -
mergeUnknownFields(
UnknownFieldSet unknownFieldSet) → void -
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
rebuild(
void updates(T)) → T -
Available on T, provided by the GeneratedMessageGenericExtensions extension
Applyupdatesto a copy of this message. -
setExtension(
Extension extension, Object value) → void -
Sets the value of a non-repeated extension field to
value.inherited -
setField(
int tagNumber, Object value) → void -
Sets the value of a field by its
tagNumber.inherited -
toBuilder(
) → GeneratedMessage -
Creates a writable, shallow copy of this message.
inherited
-
toDebugString(
) → String -
Returns a String representation of this message.
inherited
-
toProto3Json(
{TypeRegistry typeRegistry = const TypeRegistry.empty()}) → Object? -
Returns an Object representing Proto3 JSON serialization of
this.inherited -
toString(
) → String -
Returns a String representation of this message.
inherited
-
writeToBuffer(
) → Uint8List -
Serialize the message as the protobuf binary format.
inherited
-
writeToCodedBufferWriter(
CodedBufferWriter output) → void -
Same as
writeToBuffer, but serializes to the givenCodedBufferWriter.inherited -
writeToJson(
) → String -
Returns a JSON string that encodes this message.
inherited
-
writeToJsonMap(
) → Map< String, dynamic> -
Returns the JSON encoding of this message as a Dart Map.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
create(
) → LLMStreamEvent -
getDefault(
) → LLMStreamEvent