fix(anthropic-adapter): expose streamed chunks so disconnects bill partial spend

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
kerry 2026-09-25 00:43:17 +00:00
parent 69fe084409
commit 7039b6da96

View file

@ -119,6 +119,14 @@ class _CombinedChunkSplitter:
self._async_iter: AsyncIterator[ModelResponseStream] | None = None
self._buffer: deque[ModelResponseStream] = deque()
@property
def chunks(self) -> list | None:
return getattr(self._stream, "chunks", None)
@property
def messages(self) -> list | None:
return getattr(self._stream, "messages", None)
@staticmethod
def _is_combined(chunk: "ModelResponseStream") -> bool:
"""True if ``chunk`` carries response content AND a finish_reason."""
@ -355,6 +363,14 @@ class AnthropicStreamWrapper(AdapterCompletionStreamWrapper):
text="",
)
@property
def chunks(self) -> list | None:
return getattr(self.completion_stream, "chunks", None)
@property
def messages(self) -> list | None:
return getattr(self.completion_stream, "messages", None)
def _merge_usage_into_held_stop_reason_chunk(self, chunk: Any) -> MessageBlockDelta:
"""Merge usage data from ``chunk`` into the held ``message_delta`` chunk.