message.generating

The AI has started composing a reply. Show a typing indicator.

Hide it when the matching message arrives. There is no explicit stopped event: a generation that fails produces no message, so treat it as a timeout after a few seconds.

This is the AI. A human typing is the separate is_typing event.