AI SDK requires every tool call to have a matching tool result.
When a tool call's result is missing (e.g., due to network error or
interrupted execution), the conversation would break and users couldn't
send new messages.
This fix:
- Builds a set of tool call IDs that have corresponding tool results
- Only includes tool calls in assistant messages that have matching results
- Falls back to text-only content if all tool calls are missing results