diff --git a/sentry_sdk/integrations/anthropic.py b/sentry_sdk/integrations/anthropic.py index 16e14c3500..aa725b4a7b 100644 --- a/sentry_sdk/integrations/anthropic.py +++ b/sentry_sdk/integrations/anthropic.py @@ -39,6 +39,15 @@ from anthropic.resources import AsyncMessages, Messages + from anthropic.types import ( + MessageStartEvent, + MessageDeltaEvent, + MessageStopEvent, + ContentBlockStartEvent, + ContentBlockDeltaEvent, + ContentBlockStopEvent, + ) + if TYPE_CHECKING: from anthropic.types import MessageStreamEvent, TextBlockParam except ImportError: @@ -408,6 +417,20 @@ def new_iterator() -> "Iterator[MessageStreamEvent]": content_blocks: "list[str]" = [] for event in old_iterator: + if not isinstance( + event, + ( + MessageStartEvent, + MessageDeltaEvent, + MessageStopEvent, + ContentBlockStartEvent, + ContentBlockDeltaEvent, + ContentBlockStopEvent, + ), + ): + yield event + continue + ( model, usage, @@ -446,6 +469,20 @@ async def new_iterator_async() -> "AsyncIterator[MessageStreamEvent]": content_blocks: "list[str]" = [] async for event in old_iterator: + if not isinstance( + event, + ( + MessageStartEvent, + MessageDeltaEvent, + MessageStopEvent, + ContentBlockStartEvent, + ContentBlockDeltaEvent, + ContentBlockStopEvent, + ), + ): + yield event + continue + ( model, usage,