TanStack
Interface References

ModelMessage

Interface: ModelMessage<TContent>

Defined in: packages/ai/src/types.ts:358

Type Parameters

TContent

TContent extends string | null | ContentPart[] = string | null | ContentPart[]

Properties

content

ts
content: TContent;

Defined in: packages/ai/src/types.ts:365


createdAt?

ts
optional createdAt?: Date;

Defined in: packages/ai/src/types.ts:383

Optional message creation timestamp. When present, message converters preserve it across persist → hydrate round-trips.


id?

ts
optional id?: string;

Defined in: packages/ai/src/types.ts:378

Optional stable message id. Providers ignore it; it exists so a persisted transcript can retain the streaming messageId and survive the persist → hydrate round-trip. When present, modelMessagesToUIMessages reuses it instead of generating a fresh id, so a hydrated message keeps the same identity as its live stream — which is what lets a mid-stream reload resume the SAME message bubble in place (see @tanstack/ai-persistence).


name?

ts
optional name?: string;

Defined in: packages/ai/src/types.ts:366


role

ts
role: "user" | "assistant" | "tool";

Defined in: packages/ai/src/types.ts:364


thinking?

ts
optional thinking?: object[];

Defined in: packages/ai/src/types.ts:369

content

ts
content: string;

signature?

ts
optional signature?: string;

toolCallId?

ts
optional toolCallId?: string;

Defined in: packages/ai/src/types.ts:368


toolCalls?

ts
optional toolCalls?: ToolCall<unknown>[];

Defined in: packages/ai/src/types.ts:367