Skip to content

Commit 77da402

Browse files
committed
Add usage field to AssistantMessage
The CLI returns per-turn usage data on each assistant message but the SDK was dropping it during parsing. This exposes it as an optional dict on AssistantMessage so consumers can track context token usage mid-stream.
1 parent 4d74748 commit 77da402

2 files changed

Lines changed: 2 additions & 0 deletions

File tree

src/claude_agent_sdk/_internal/message_parser.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ def parse_message(data: dict[str, Any]) -> Message:
127127
model=data["message"]["model"],
128128
parent_tool_use_id=data.get("parent_tool_use_id"),
129129
error=data.get("error"),
130+
usage=data.get("message", {}).get("usage"),
130131
)
131132
except KeyError as e:
132133
raise MessageParseError(

src/claude_agent_sdk/types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,7 @@ class AssistantMessage:
657657
model: str
658658
parent_tool_use_id: str | None = None
659659
error: AssistantMessageError | None = None
660+
usage: dict[str, Any] | None = None
660661

661662

662663
@dataclass

0 commit comments

Comments
 (0)