Conversation entries

The message exchange between the user and the agent.

user:message

type MessageUser = ThreadEntry<"user:message", {
    content: string
    attachments?: Array<{
        kind: "image" | "file" | "url"
        name?: string
        url?: string
        data?: string       // base64-encoded content for inline attachments
        mimeType?: string
        size?: number       // bytes
    }>
}>

axon:agent:message

Final accumulated agent response. Replaces the stream of axon:agent:message:delta entries when the model finishes. Shares the same id as its deltas.

type MessageAgent = ThreadEntry<"axon:agent:message", {
    content: string
    attachments?: Array<{
        kind: "image" | "file" | "url"
        name?: string
        url?: string
        mimeType?: string
    }>
}>

axon:agent:message:delta

Streaming chunk of an agent message. Arrives in real time as the model generates. Same id as the final axon:agent:message — accumulate deltas in place, replace on completion.

type MessageAgentDelta = ThreadEntry<"axon:agent:message:delta", {
    content: string  // partial chunk — not a full message
}>

axon:agent:thinking

Final accumulated reasoning text. Only emitted by models with extended thinking support. Shares the same id as its deltas.

type AgentThinking = ThreadEntry<"axon:agent:thinking", {
    content: string
}>

axon:agent🤔delta

Streaming chunk of agent reasoning. Same accumulate-and-replace pattern as message deltas.

type AgentThinkingDelta = ThreadEntry<"axon:agent:thinking:delta", {
    content: string
}>