(messages: ChatMessage[])
| 26 | } |
| 27 | |
| 28 | function assistantTurns(messages: ChatMessage[]): ChatMessage[] { |
| 29 | return messages.filter((m) => m.role === "assistant" && m.content.trim()); |
| 30 | } |
| 31 | |
| 32 | function turnLabel(message: ChatMessage, index: number): string { |
| 33 | const plain = message.content.replace(/<[^>]+>/g, " ").replace(/\s+/g, " ").trim(); |