Gemini 3.1 Pro thinking model requires thought_signature to be echoed in functionResponse. SSE stream doesn't reliably include it in individual chunks. Switch tool-calling rounds to non-streaming generateContent which always returns the complete response with thought_signature present. Made-with: Cursor