Skip to content

Commit c55b4f0

Browse files
committed
fix(stream): correctly accumulate usage
1 parent 08c5ad7 commit c55b4f0

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

src/lib/BetaMessageStream.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -532,13 +532,21 @@ export class BetaMessageStream implements AsyncIterable<BetaMessageStreamEvent>
532532
snapshot.stop_sequence = event.delta.stop_sequence;
533533
snapshot.usage.output_tokens = event.usage.output_tokens;
534534

535-
// Update other usage fields if they exist in the event
536-
if (event.usage.input_tokens) {
535+
if (event.usage.input_tokens != null) {
537536
snapshot.usage.input_tokens = event.usage.input_tokens;
538537
}
539-
snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;
540-
snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;
541-
snapshot.usage.server_tool_use = event.usage.server_tool_use;
538+
539+
if (event.usage.cache_creation_input_tokens != null) {
540+
snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;
541+
}
542+
543+
if (event.usage.cache_read_input_tokens != null) {
544+
snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;
545+
}
546+
547+
if (event.usage.server_tool_use != null) {
548+
snapshot.usage.server_tool_use = event.usage.server_tool_use;
549+
}
542550

543551
return snapshot;
544552
case 'content_block_start':

src/lib/MessageStream.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -533,12 +533,21 @@ export class MessageStream implements AsyncIterable<MessageStreamEvent> {
533533
snapshot.usage.output_tokens = event.usage.output_tokens;
534534

535535
// Update other usage fields if they exist in the event
536-
if (event.usage.input_tokens) {
536+
if (event.usage.input_tokens != null) {
537537
snapshot.usage.input_tokens = event.usage.input_tokens;
538538
}
539-
snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;
540-
snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;
541-
snapshot.usage.server_tool_use = event.usage.server_tool_use;
539+
540+
if (event.usage.cache_creation_input_tokens != null) {
541+
snapshot.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens;
542+
}
543+
544+
if (event.usage.cache_read_input_tokens != null) {
545+
snapshot.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens;
546+
}
547+
548+
if (event.usage.server_tool_use != null) {
549+
snapshot.usage.server_tool_use = event.usage.server_tool_use;
550+
}
542551

543552
return snapshot;
544553
case 'content_block_start':

0 commit comments

Comments
 (0)