Skip to content

Chat Accumulator

Defined in: chat/accumulator.ts:27

Converts a stream of AgentEvent objects into a complete ChatMessage. Tracks text, reasoning, and tool call parts with proper status transitions.

const acc = new MessageAccumulator();
for await (const event of agentEvents) {
acc.apply(event);
renderMessage(acc.snapshot()); // in-progress UI update
}
const message = acc.finalize();

new MessageAccumulator(messageId?): MessageAccumulator

Defined in: chat/accumulator.ts:36

ChatId

MessageAccumulator

get finalized(): boolean

Defined in: chat/accumulator.ts:176

Check if the accumulator has been finalized

boolean

get id(): ChatId

Defined in: chat/accumulator.ts:41

Get current message ID

ChatId

apply(event): void

Defined in: chat/accumulator.ts:48

Apply an AgentEvent to accumulate into the message

AgentEvent

AgentEvent to process

void

Error if accumulator is already finalized

finalize(): ChatMessage

Defined in: chat/accumulator.ts:141

Finalize the accumulator and return the complete ChatMessage

ChatMessage

Completed ChatMessage with all parts finalized

Error if accumulator is already finalized

snapshot(): ChatMessage

Defined in: chat/accumulator.ts:124

Get a snapshot of the current accumulated message (for streaming UI)

ChatMessage

ChatMessage with current parts and “streaming” status