Skip to content

Abstract Class: Message

@providerprotocol/ai


@providerprotocol/ai / @providerprotocol/ai / Message

Defined in: src/types/messages.ts:122

Abstract base class for all message types.

Provides common functionality for user, assistant, and tool result messages, including content accessors and metadata handling.

// Access text content from any message
const text = message.text;
// Access images
const images = message.images;

new Message(options?): Message

Defined in: src/types/messages.ts:146

Creates a new message instance.

MessageOptions

Optional message ID and metadata

Message

readonly id: string

Defined in: src/types/messages.ts:124

Unique message identifier


readonly optional metadata: MessageMetadata

Defined in: src/types/messages.ts:130

Provider-specific metadata, namespaced by provider name


readonly timestamp: Date

Defined in: src/types/messages.ts:127

Timestamp when the message was created


abstract readonly type: MessageType

Defined in: src/types/messages.ts:133

Message type discriminator (implemented by subclasses)

get audio(): AudioBlock[]

Defined in: src/types/messages.ts:180

All audio content blocks in this message.

AudioBlock[]


get documents(): DocumentBlock[]

Defined in: src/types/messages.ts:173

All document content blocks in this message.

DocumentBlock[]


get images(): ImageBlock[]

Defined in: src/types/messages.ts:166

All image content blocks in this message.

ImageBlock[]


get reasoning(): ReasoningBlock[]

Defined in: src/types/messages.ts:195

All reasoning/thinking content blocks in this message. Available when using extended thinking models.

ReasoningBlock[]


get text(): string

Defined in: src/types/messages.ts:156

Concatenated text content from all text blocks. Blocks are joined with double newlines.

string


get video(): VideoBlock[]

Defined in: src/types/messages.ts:187

All video content blocks in this message.

VideoBlock[]

abstract protected getContent(): ContentBlock[]

Defined in: src/types/messages.ts:139

Returns the content blocks for this message. Implemented by subclasses to provide type-specific content.

ContentBlock[]