ToolCall’s finish event as event.images, a
tuple[str, ...] of image data: URIs (empty on the start event, and from apps
too old to send them). Decode each on the finish event:
data: image is also embedded in the run’s final result as a spec-native
MCP image content block, so plain MCP clients see it too. .text() is
unaffected — it joins only the text.
Only
data: URIs are embedded in the final result — a tool that returns an
http(s) image link surfaces it on the stream event but can’t embed it, so it
stays stream-only.Reference: ToolCall.images
The
images field on the streamed ToolCall event.