Four kinds of part
Top: a part holds exactly one of four content members, text, raw, url or data, and every kind can also carry mediaType, filename and metadata. Below, four parts from the captures in the order they were sent: the refunds.diff file the planner sent as raw base64 with media type text/x-diff, the code-reviewer question as text, the review findings as a data part with media type application/json, and a url part labelled image/png that code-reviewer rejects with error -32005 CONTENT_TYPE_NOT_SUPPORTED.
ONE PART HOLDS EXACTLY ONE OF
OPTIONAL ON EVERY KIND
text
raw
url
data
mediaType
filename
metadata
FOUR PARTS FROM THE CAPTURES, IN THE ORDER THEY WERE SENT
raw
LS0tIGEvcGF5bWVudHMvcmVmdW5kcy5weQor
first 36 of 236 base64 characters
filename "refunds.diff" mediaType "text/x-diff"
sent by the planner, a five-line diff · 06-input-required.http
text
"Which base branch should I compare this diff against?"
mediaType absent: the kit reads it as text/plain
sent by code-reviewer in status.message · 06-input-required.http
data
"base": "main"
plus "findings", two objects with file, line, severity, finding
mediaType "application/json"
part 2 of the review.json artifact, sent by code-reviewer · 06-input-required.http
url
"https://example.com/screenshot.png"
mediaType "image/png"
sent by the planner · 11-errors.http
CONTENT_TYPE_NOT_SUPPORTED
rejected with error -32005