assistant-ui logo/Docs/API Reference
Context Providers

Scoped Providers

Lower-level assistant-ui providers for custom renderers, scoped message parts, attachments, and advanced composition.

API Reference

ChainOfThoughtByIndicesProvider

ChainOfThoughtByIndicesProvider props
startIndex : number

endIndex : number

ComposerAttachmentByIndexProvider

ComposerAttachmentByIndexProvider props
index : number

MessageAttachmentByIndexProvider

MessageAttachmentByIndexProvider props
index : number

MessageByIndexProvider

MessageByIndexProvider props
index : number

MessageProvider

MessageProvider props
message : ThreadMessage

status ?: ThreadAssistantMessage["status"]

type : "running"

metadata : ThreadMessage["metadata"]

unstable_stateunstable ?: ReadonlyJSONValue

unstable_annotationsunstable ?: readonly ReadonlyJSONValue[]

unstable_dataunstable ?: readonly ReadonlyJSONValue[]

steps ?: readonly ThreadStep[]

submittedFeedback ?: ThreadMessage["metadata"]["submittedFeedback"]

type : "positive" | "negative"

timing ?: MessageTiming

streamStartTime : number

firstTokenTime ?: number

totalStreamTime ?: number

tokenCount ?: number

tokensPerSecond ?: number

totalChunks : number

toolCallCount : number

isOptimistic ?: boolean

Marks a client-side optimistic placeholder. Such messages are evicted once off the head branch and are never persisted.

custom : Record<string, unknown>

attachments ?: ThreadUserMessage["attachments"]

id : string

createdAt : Date

role : "system"

content : readonly [TextMessagePart]

index : number

isLast ?: boolean

branchNumber ?: number

branchCount ?: number

PartByIndexProvider

PartByIndexProvider props
index : number

ReadonlyThreadProvider

ReadonlyThreadProvider props
messages : readonly ThreadMessage[]

RuntimeAdapterProvider

RuntimeAdapterProvider props
adapters : RuntimeAdapters

modelContext ?: ModelContextProvider

getModelContext : () => ModelContext

subscribe ?: (callback: () => void) => Unsubscribe

history ?: ThreadHistoryAdapter

load : () => Promise<ExportedMessageRepository & { unstable_resume?: boolean; }>

resume ?: (options: ChatModelRunOptions) => AsyncGenerator<ChatModelRunResult, void, unknown>

append : (item: ExportedMessageRepositoryItem) => Promise<void>

delete ?: (items: ExportedMessageRepositoryItem[]) => Promise<void>

withFormat ?: <TMessage, TStorageFormat extends Record<string, unknown>>(formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>) => GenericThreadHistoryAdapter<TMessage>

Required when used with `useAISDKRuntime` / `useChatRuntime`.

attachments ?: AttachmentAdapter

accept : string

add : (state: { file: File; }) => Promise<PendingAttachment> | AsyncGenerator<PendingAttachment, void>

remove : (attachment: Attachment) => Promise<void>

send : (attachment: PendingAttachment) => Promise<CompleteAttachment>

children ?: ReactNode

SuggestionByIndexProvider

SuggestionByIndexProvider props
index : number

TextMessagePartProvider

TextMessagePartProvider props
text : string

isRunning ?: boolean

ThreadListItemByIndexProvider

ThreadListItemByIndexProvider props
index : number

archived : boolean

ThreadListItemRuntimeProvider

ThreadListItemRuntimeProvider props
runtime : ThreadListItemRuntime

path : ThreadListItemRuntimePath

ref : string

threadSelector : ThreadListItemRuntimePath["threadSelector"]

type : "main"

getState : () => ThreadListItemState

initialize : () => Promise<{ remoteId: string; externalId: string | undefined; }>

generateTitle : () => Promise<void>

switchTo : (options?: { unarchive?: boolean; }) => Promise<void>

rename : (newTitle: string) => Promise<void>

updateCustom : (custom: Record<string, unknown> | undefined) => Promise<void>

archive : () => Promise<void>

unarchive : () => Promise<void>

delete : () => Promise<void>

detach : () => void

subscribe : (callback: () => void) => Unsubscribe

unstable_onunstable : <E extends ThreadListItemEventType>(event: E, callback: ThreadListItemEventCallback<E>) => Unsubscribe