ASSEMBLE · VERIFY · INSPECT
Artifact parts: text, structured data and inline files
Follow exact content through assembly, a conditional write and a scoped version read.
Your experiment
Compare the three supported part kinds. Structured data must parse as an object; an inline file encodes the entered text as UTF-8 then base64. Text can arrive in multiple chunks, while data and file parts are single units here. Inspect the exact event rather than guessing from MIME labels.
Play inspects the whole trace over 60 seconds at 1×. Pause, step, restart or change speed. Parameters reset the trace without autoplay. Teaching time is not network, storage or SDK latency.
Exact visible content
Decision trace
Complete state inspector
Artifact event fields illustrate the pinned A2A v0.3 shape, not full protocol conformance. Storage is a separate application policy: a final marker is required before commit; expected generation protects the current live version; generation 0 cannot replace this already-existing object. File input is encoded text, not an upload. The byte limit counts decoded or serialized content, not base64/wire overhead. Data uses JSON parsing/serialization and does not preserve whitespace or duplicate keys. Version retention and read grants are explicit fixture policies, not full ADK/GCS semantics. No IAM, encryption, malware scanning, checksums, lifecycle rules or remote durability is implemented. All records, objects and identities are fictional. No credentials, files, cloud services or external model are accessed. Pinned A2A v0.3 reference · Cloud Storage preconditions · Official AICassindra articles.
Typed content is more than a label
Choose JSON object and enter {"count":2}. The model parses and serializes the object before storing it. Replace that input with [] or null: valid JSON syntax alone is insufficient because this fixture requires an object. Choose Inline file and enter a euro symbol. Its UTF-8 content occupies three bytes, while its Base64 representation is four ASCII characters. Set the byte limit to 2 to reject it and 3 to accept it. The limit concerns decoded content, not transport size or a claim about the file MIME type.
Assemble the content
Part kind selects text, a JSON object, or an inline file made from the entered text. Fixture content is the actual payload; Load valid example replaces it with a valid example for the selected kind. Maximum text chunks bounds the number of Unicode-code-point chunks, not the number of bytes. Append later text parts preserves earlier chunks; disabling it replaces the buffer at every update. Send final artifact marker tells this application that assembly has finished. Data and file parts are single units here, so text-chunk settings do not apply to them.
Control storage and ownership
Actor tenant chooses the owner Alpha or the foreign reader Beta. Another writer commits first advances the live generation before this client attempts its write. Require matching live generation compares Expected live generation with that live value; it does not compare with an old retained version. Per-version UTF-8 byte limit rejects content that is too large after assembly. Retain earlier versions keeps the baseline and subsequent generations available. Retry the same write intent repeats the commit with the same expected generation, so a successful conditional write makes that unchanged condition stale.
Inspect the handoff
Grant Beta read access only permits a foreign read but never a foreign write. Reader version chooses the live object or generation 1; removing history can make generation 1 unavailable. Inspect Exact visible content and Decision trace together: a failed write does not mean that no previous readable object exists. Play reveals the trace over sixty seconds, Pause freezes it, Next operation advances one stage, Restart rewinds inspection, Speed changes teaching playback, and Inspection seeks without changing storage policy. Changing a fixture input constructs a fresh experiment rather than mutating a remote service.