Some OpenAI-compatible endpoints (e.g. glm-* on Ollama-cloud) reject a request whose
message 'content' is absent or null with HTTP 400 'invalid message content type:
<nil>'. The chat-completions mapper relied on 'content,omitempty', so a message with
empty text (a tool result, an assistant turn that only makes tool calls, or a
sub-agent that failed with no output) serialized with no content field at all.
- Drop omitempty on chatMessage.Content and always set it (to "" when there is no
text), so contentless messages serialize as "content":"" instead of being
dropped. Standard OpenAI/xAI/groq already tolerated the omission; this makes the
strict servers work too.
- Skip a degenerate assistant turn that has neither text nor tool calls, mirroring
the Anthropic/Gemini mappers (which already drop empty turns).
Fixes the failure seen on glm-5.2:cloud after a sub-agent failed with empty output.