chatMessageFromChunk function

ChatMessage chatMessageFromChunk(
  1. ModelResponse chunk
)

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);
}