* Build a single ModelMessage for user messages (simple path). * Preserves ordering of text and multimodal content parts.
(uiMessage: UIMessage)
| 176 | * Preserves ordering of text and multimodal content parts. |
| 177 | */ |
| 178 | function buildUserOrToolMessage(uiMessage: UIMessage): ModelMessage { |
| 179 | const contentParts: Array<ContentPart> = [] |
| 180 | for (const part of uiMessage.parts) { |
| 181 | if (isContentPart(part)) { |
| 182 | contentParts.push(part) |
| 183 | } |
| 184 | } |
| 185 | |
| 186 | return { |
| 187 | role: uiMessage.role as 'user' | 'assistant' | 'tool', |
| 188 | content: collapseContentParts(contentParts), |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | // Accumulator for building an assistant segment (content + tool calls) |
| 193 | interface AssistantSegment { |
no test coverage detected