v0.10.1
Added: Thinking content type
New silent codec for ambient agent thinking-status indicators, anchored to
a specific message (like read receipts):
convos.org/thinking:1.0— JSON payload{state, targetMessageId, content, resultMessageId?}.
stateis"start"or"stop"— agents pair astartwith a matchingstop
on the sametargetMessageId.contentis a 3–5 word human-readable label
shown alongside the indicator (e.g."Designing your cycling guide").
resultMessageIdis optional and only meaningful onstop— the agent's own
reply message that closed the thought, so receivers can link "thought about X"
to "replied with Y".- Silent (
shouldPush: false), no fallback. Filtered from the chat stream by
isDisplayableMessage. agent serveevent surface: receive path emits athinkingevent; live and
catchup both surface, deduped by message id. Stdin command{"type":"thinking","state":"start|stop","targetMessageId":"...","content":"...","resultMessageId":"..."}sends a Thinking message.resultMessageIdonly valid withstate: "stop".
Exports: ThinkingCodec, ContentTypeThinking, isThinkingMessage,
getThinkingContent, Thinking, ThinkingState.
Added: Remote-attachment decode helpers
agent serve's message event now carries structured attachment metadata
when the content type is one of XMTP's native remote-attachment types:
xmtp.org/remoteStaticAttachment:1.0— emits aremoteAttachment
object alongsidecontent.xmtp.org/multiRemoteStaticAttachment:1.0— emits a
multiRemoteAttachment: { attachments: [...] }object.
Each entry has url, contentDigest, scheme, secret/salt/nonce
(base64-encoded), and optional contentLength/filename — enough for
an agent to fetch and decrypt the bytes with decryptAttachment. Bytes
were previously Uint8Array on message.content, which doesn't
serialize to JSON cleanly. Encoding matches the agent serve remote-attach
stdin command so agents send and receive attachments through one mental
model. Live and catchup message paths both populate the new fields.
New exports: extractRemoteAttachment, extractMultiRemoteAttachment,
RemoteAttachmentJson, RemoteAttachmentInfoJson, MultiRemoteAttachmentJson.
Full Changelog: v0.9.1...v0.10.1