ReasoningPart
data class ReasoningPart(val id: String, val text: String, val messageId: String, val title: String? = null, val streaming: Boolean = false, val encryptedValues: List<EncryptedReasoningValue> = emptyList()) : UiPart
The agent's chain of thought.
Separate from TextPart rather than a flag on it: the two are usually styled differently, are often collapsed by default, and a renderer that treated reasoning as text would put an agent's private deliberation in the same visual place as its answer.