A 5e storytelling engine with an LLM DM

Add word wrapping to the stream renderer master

The renderer was writing characters directly to stdout with no column awareness, so the terminal did hard wrapping at the margin — cutting words in half mid-syllable. Now inline text is buffered word-by-word and checked against the terminal width before output. Words that won't fit get pushed to the next line. Width is read live from the Rich Console as a property, so resizing the terminal or changing font size mid-response is picked up on the next word boundary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>


+165 -9
2 changed files