TranscriptMarkup
A transcript as the elements a host styles.
The vocabulary is semantic and prefixed: cc-transcript, cc-message, cc-activity, and the parts inside them. A host selects by tag and by attribute — cc-message[from="agent"], cc-activity[label="Bash"] — with the whole CSS language available, because the elements live in the page's own DOM and carry no style of their own. Choosing how a transcript looks is the host's, and nothing here takes it back.
A tool call is its own element rather than one more activity, because it has a shape a reader needs: the fields it was called with, each of them an element a host can select by the name the tool gave it. So is the answer to one, and both rows carry the token of the exchange they belong to, so a host can join a call to what came back from it.
Two things stay HTML's. Disclosure is details/summary wherever there is anything to open, so a row opens by the browser's own machinery rather than by a script, and keeps the keyboard behaviour that comes with it. Prose inside cc-body is HTML too — headings, lists, code, tables, as the writer marked them up. We own the structure of a conversation; HTML owns the rest.
The clock text is the producer's, because only the producer knows whose timezone to read the instant in. The instant itself rides along as the at attribute, so a host that wants a different format has the value.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
TranscriptMarkup.type