Streaming response
The model can send ordinary Markdown as it thinks.
- accumulated text is reparsed on each update
- unfinished markers stay out of the way
- React and HTML stay in sync
const text = responseSoFar
return render(text)Unsafe links stay text-only