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.