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

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>

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: () => Promise<void>

rename: (newTitle: string) => 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