chatMessageFromChunk function
One streamed ModelResponse variant → one single-part model ChatMessage.
Implementation
ChatMessage chatMessageFromChunk(ModelResponse chunk) {
final parts = <StandardPart>[];
switch (chunk) {
case TextResponse(:final token):
parts.add(TextPart(token));
case ThinkingResponse(:final content):
parts.add(ThinkingPart(content));
case FunctionCallResponse(:final name, :final args):
parts.add(ToolPart.call(callId: name, toolName: name, arguments: args));
case ParallelFunctionCallResponse(:final calls):
for (final c in calls) {
parts.add(
ToolPart.call(callId: c.name, toolName: c.name, arguments: c.args),
);
}
}
return ChatMessage(role: ChatMessageRole.model, parts: parts);
}