* fix: prevent empty reasoning messages in streaming interfaces Prevents empty "Thinking..." indicators from appearing in clients by filtering out reasoning messages with no content at the source. Changes: - Gemini: Don't emit ReasoningMessage when only thought_signature exists - Gemini: Only emit reasoning content if text is non-empty - Anthropic: Don't emit ReasoningMessage for BetaSignatureDelta - Anthropic: Only emit reasoning content if thinking text is non-empty This fixes the issue where providers send signature metadata before actual thinking content, causing empty reasoning blocks to appear in the UI after responses complete. Affects: Gemini reasoning, Anthropic extended thinking 👾 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * fix: handle Anthropic thinking signature correctly - Only include 'signature' in Anthropic message payload if it is not None (fixes BadRequestError). - Capture and attach 'signature' to ReasoningMessage in streaming interface. * fix(anthropic): attach signature to last reasoning message in stream --------- Co-authored-by: Letta <noreply@letta.com>
14 KiB
14 KiB