@@ -1170,9 +1170,9 @@ def _parse_stream_event(event: Dict[str, Any]) -> Optional[BaseMessageChunk]:
1170
1170
if "messageStart" in event :
1171
1171
# TODO: needed?
1172
1172
return (
1173
- AIMessageChunk (content = "" )
1173
+ AIMessageChunk (content = [] )
1174
1174
if event ["messageStart" ]["role" ] == "assistant"
1175
- else HumanMessageChunk (content = "" )
1175
+ else HumanMessageChunk (content = [] )
1176
1176
)
1177
1177
elif "contentBlockStart" in event :
1178
1178
block = {
@@ -1189,8 +1189,13 @@ def _parse_stream_event(event: Dict[str, Any]) -> Optional[BaseMessageChunk]:
1189
1189
index = event ["contentBlockStart" ]["contentBlockIndex" ],
1190
1190
)
1191
1191
)
1192
- # Keep content as list during streaming to preserve merging compatibility
1193
- content = [block ]
1192
+ if block ["type" ] == "tool_use" :
1193
+ # Keep tool calls as list to preserve type information
1194
+ content = [block ]
1195
+ else :
1196
+ # Keep content as list during streaming to preserve merging compatibility
1197
+ content = [block ]
1198
+
1194
1199
return AIMessageChunk (content = content , tool_call_chunks = tool_call_chunks )
1195
1200
elif "contentBlockDelta" in event :
1196
1201
block = {
@@ -1207,12 +1212,17 @@ def _parse_stream_event(event: Dict[str, Any]) -> Optional[BaseMessageChunk]:
1207
1212
index = event ["contentBlockDelta" ]["contentBlockIndex" ],
1208
1213
)
1209
1214
)
1210
- # Keep content as list during streaming to preserve merging compatibility
1211
- content = [block ]
1215
+ if block ["type" ] == "tool_use" :
1216
+ # Keep tool calls as list to preserve type information
1217
+ content = [block ]
1218
+ else :
1219
+ # Keep content as list during streaming to preserve merging compatibility
1220
+ content = [block ]
1221
+
1212
1222
return AIMessageChunk (content = content , tool_call_chunks = tool_call_chunks )
1213
1223
elif "contentBlockStop" in event :
1214
1224
# TODO: needed?
1215
- return AIMessageChunk (content = "" )
1225
+ return AIMessageChunk (content = [] )
1216
1226
elif "messageStop" in event :
1217
1227
# TODO: snake case response metadata?
1218
1228
return AIMessageChunk (content = "" , response_metadata = event ["messageStop" ])
0 commit comments