- Keeps messages that have no text but carry content (images, files, links). Only messages with no usable content at all are skipped.
- Maps
author.isMe === trueto"assistant", otherwise"user" - Uses
message.textfor content - Appends bounded link metadata inside an explicit untrusted-content fence
- Includes image attachments as base64
ImageParts - Inlines text file attachments into the message text as
[File: name (mime)]blocks, since TanStack AI has no file content part - Uses
fetchData()when available to include attachment data inline - Warns on unsupported attachment types (video, audio)
ModelMessage; pass system prompts via
chat({ systemPrompts }) instead.
Works with FetchResult.messages, thread.recentMessages, or collected iterables.
Parameters
Returns
TanStackMessage