foldToTranscript
Folds an AG-UI event stream into a stream of transcripts, one per event.
A fresh UiTranscriptReducer per collection, so collecting twice replays from empty rather than continuing someone else's conversation. Cold, like the flow it wraps.
Emitting on every event rather than on a timer: the events are the frames -- one TEXT_MESSAGE_CONTENT is one visible character or word -- and a renderer that wants fewer can ask for fewer with kotlinx.coroutines.flow.conflate or a sample, which it cannot do if this has already dropped them.
Parameters
onWarning
see UiTranscriptReducer.