Properly handles all message types including tool calls, thinking, and tool results instead of manual text extraction.