Skip to main content
Convert chat SDK messages to TanStack AI conversation format.
  • 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 === true to "assistant", otherwise "user"
  • Uses message.text for 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)
TanStack AI has no system role on ModelMessage; pass system prompts via chat({ systemPrompts }) instead. Works with FetchResult.messages, thread.recentMessages, or collected iterables.

Parameters

Message<unknown>[]
required
Type: Message

Returns

TanStackMessage