Skip to content
1 min read · 209 words

Interface: ThoughtAttrs

Defined in: src/batteries/llm/chat_common/types.ts:205

Attribute bag rendered onto a thought block.

Properties

PropertyTypeDescriptionDefined in
createdAt?stringISO-8601 creation timestamp of the thought.src/batteries/llm/chat_common/types.ts:221
fromstringIdentity of the agent the thought originated from.src/batteries/llm/chat_common/types.ts:219
kind"self-reasoning" | "peer-reasoning" | "opaque-reasoning"Whether the thought is the model's own, a peer's, or opaque vendor reasoning.src/batteries/llm/chat_common/types.ts:217
noncestringNonce binding the block's open and close markers together — it becomes part of the tag NAME (<..._<nonce>>) so a model mirroring the block cannot forge a sibling's closer. FOOTGUN: this nonce MUST be unguessable AND non-path-shaped. It is typically the source record's id; a path-shaped id (e.g. chunk-assembly-events-9) is copied by small models as a CITATION (/assembly/events-9), which a doc-path validator then rejects → re-cite loop. Mint record ids with crypto.randomUUID(); carry page/human provenance in source= (rendered before nonce=), never in the id.src/batteries/llm/chat_common/types.ts:215
replayCompatibility?stringReplay-compatibility label gating whether the thought is surfaced on replay.src/batteries/llm/chat_common/types.ts:223