TranscriptCodec

works.iterative.claude.ui.transcript.TranscriptCodec

Reads and writes Transcript as JSON.

The wire is a small closed vocabulary — user, context, agent, call, result, hook, trouble, activity — with times as epoch milliseconds and absent values simply left out. A call's input crosses as the shape it is, so the reader on the other side has the fields the tool was called with, and a call and its answer carry one call token, so the two rows stay one exchange. A message carries prose: the markup the host rendered its markdown to, so the reading is done once and every consumer shows the same page. An answer crosses as the parts it came back with, and an artifact among them as a reference — where the picture sits, or the path a file was written to — never as bytes. Written by hand rather than derived, so the shape is inspectable and stays identical on both platforms the contract is compiled for.

Reads are one-way tolerant: an entry whose kind this version does not know is dropped, so a page written by a newer writer still renders everything this reader understands instead of failing whole.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def decode(json: Json): Either[DecodingFailure, Transcript]
def encode(transcript: Transcript): Json