Root React provider that connects an assistant-ui runtime to primitives, hooks, threads, and composer state.
API Reference
AssistantRuntimeProvider
import { AssistantRuntimeProvider } from "@assistant-ui/react";
import { useChatRuntime, AssistantChatTransport } from "@assistant-ui/ai-sdk";
const MyApp = () => {
const runtime = useChatRuntime({
transport: new AssistantChatTransport({
api: "/api/chat",
}),
});
return (
<AssistantRuntimeProvider runtime={runtime}>
{/* your app */}
</AssistantRuntimeProvider>
);
};- runtimeAssistantRuntime
The assistant runtime to expose to descendants. Build one with `useLocalRuntime`, `useExternalStoreRuntime`, or `useAssistantTransportRuntime`.
AssistantRuntime- threadsThreadListRuntime
The threads in this assistant.
ThreadListRuntime- getState() => ThreadListState
- subscribe(callback: () => void) => Unsubscribe
- mainThreadRuntime
- ThreadRuntime
- pathThreadRuntimePath
The selector for the thread runtime.
- composerThreadComposerRuntime
The thread composer runtime.
- getState() => ThreadState
Gets a snapshot of the thread state.
- append(message: CreateAppendMessage) => void
Append a new message to the thread.
- deleteMessage(messageId: string) => void | Promise<void>
- startRun(config: CreateStartRunConfig) => void
Start a new run with the given configuration.
- resumeRun(config: CreateResumeRunConfig) => void
Resume a run with the given configuration.
- exportExternalState() => any
Export the thread state in the external store format. For AI SDK runtimes, this returns the AI SDK message format. For other runtimes, this may return different formats or throw an error.
- importExternalState(state: any) => void
Import thread state from the external store format. For AI SDK runtimes, this accepts AI SDK messages. For other runtimes, this may accept different formats or throw an error.
- subscribe(callback: () => void) => Unsubscribe
- cancelRun() => void
- unstable_notifySessionReset() => voidunstable
Notifies the runtime that the adapter discarded its backing session. Clears session-scoped tool-invocation state without run-cancel side effects such as composer draft restoration. Internal API for external-store adapter authors.
- getModelContext() => ModelContext
- export() => ExportedMessageRepository
- import(repository: ExportedMessageRepository) => void
- reset(initialMessages?: readonly ThreadMessageLike[]) => void
Reset the thread with optional initial messages.
- getMessageByIndex(idx: number) => MessageRuntime
- getMessageById(messageId: string) => MessageRuntime
- stopSpeaking() => voiddeprecated
Deprecated: This API is still under active development and might change without notice.
- connectVoice() => void
- disconnectVoice() => void
- getVoiceVolume() => number
- subscribeVoiceVolume(callback: () => void) => Unsubscribe
- muteVoice() => void
- unmuteVoice() => void
- unstable_on<E extends ThreadRuntimeEventType>(event: E, callback: ThreadRuntimeEventCallback<E>) => Unsubscribeunstable
- getById(threadId: string) => ThreadRuntime
- mainItemThreadListItemRuntime
- ThreadListItemRuntime
- pathThreadListItemRuntimePath
- 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_on<E extends ThreadListItemEventType>(event: E, callback: ThreadListItemEventCallback<E>) => Unsubscribeunstable
- getItemById(threadId: string) => ThreadListItemRuntime
- getItemByIndex(idx: number) => ThreadListItemRuntime
- getArchivedItemByIndex(idx: number) => ThreadListItemRuntime
- switchToThread(threadId: string, options?: { unarchive?: boolean; }) => Promise<void>
- switchToNewThread() => Promise<void>
- getLoadThreadsPromise() => Promise<void>
- reload() => Promise<void>
- reloadMainThread() => Promise<void>
Refetches the open thread's remote state, for state that changed out of band and so never reached the stream. When the runtime declares the in-place capability (`unstable_refetchThread`), composer drafts survive, existing messages stay rendered during the refetch, and the promise settles with the refetch, rejecting if it fails; that runtime also owns what happens to a run in progress, since this does not stop one. Runtimes without the capability have their hook remounted instead, which discards unsent composer input and ends any run, and the promise resolves once the new runtime attaches. A thread that has not been sent yet is left alone.
- loadMore() => Promise<void>
- threadThreadRuntime
The currently selected main thread. Equivalent to `threads.main`.
ThreadRuntime- pathThreadRuntimePath
The selector for the thread runtime.
ThreadRuntimePath- refstring
- threadSelector{ readonly type: "main" } | { readonly type: "threadId"; readonly threadId: string; }
- composerThreadComposerRuntime
The thread composer runtime.
ThreadComposerRuntime- pathComposerRuntimePath
- type"edit" | "thread"
- addAttachment(fileOrAttachment: File | CreateAttachment) => Promise<void>
Add an attachment to the composer. Accepts either a standard File object (processed through the AttachmentAdapter) or a CreateAttachment descriptor for external-source attachments (URLs, API data, CMS references). External descriptors bypass the adapter's `add()` step but still respect `adapter.accept` when an adapter is configured; without an adapter they are added as-is.
- setText(text: string) => void
Set the text of the composer.
- setRole(role: MessageRole) => void
Set the role of the composer. For instance, if you'd like a specific message to have the 'assistant' role, you can do so here.
- setRunConfig(runConfig: RunConfig) => void
Set the run config of the composer. This is used to send custom configuration data to the model. Within your backend, you can use the `runConfig` object. Example: ```ts composerRuntime.setRunConfig({ custom: { customField: "customValue" } }); ```
- reset() => Promise<void>
Reset the composer. This will clear the entire state of the composer, including all text and attachments.
- clearAttachments() => Promise<void>
Clear all attachments from the composer.
- send(options?: SendOptions) => void
Send a message. This will send whatever text or attachments are in the composer.
- cancel() => void
Cancel the current run. In edit mode, this will exit edit mode.
- steerQueueItem(queueItemId: string) => voiddeprecated
Deprecated: Use `moveQueueItem(queueItemId, { lane: "steer", insertAfter: null })` instead. Removal after 2026-11-05.
- moveQueueItem(queueItemId: string, placement: QueuePlacement) => void
Move a queued message between lanes or within a lane.
- removeQueueItem(queueItemId: string) => void
Remove a queued message.
- subscribe(callback: () => void) => Unsubscribe
Listens for changes to the composer state.
- startDictation() => void
Start dictation to convert voice to text input. Requires a DictationAdapter to be configured.
- stopDictation() => void
Stop the current dictation session.
- setQuote(quote: QuoteInfo | undefined) => void
Set a quote for the next message. Pass undefined to clear.
- unstable_on<E extends ComposerRuntimeEventType>(event: E, callback: ComposerRuntimeEventCallback<E>) => Unsubscribedeprecatedunstable
Deprecated: This API is still under active development and might change without notice.
- getState() => ThreadComposerState
- getAttachmentByIndex(idx: number) => AttachmentRuntime & { source: "thread-composer"; }
- getState() => ThreadState
Gets a snapshot of the thread state.
- append(message: CreateAppendMessage) => void
Append a new message to the thread.
- deleteMessage(messageId: string) => void | Promise<void>
- startRun(config: CreateStartRunConfig) => void
Start a new run with the given configuration.
- resumeRun(config: CreateResumeRunConfig) => void
Resume a run with the given configuration.
- exportExternalState() => any
Export the thread state in the external store format. For AI SDK runtimes, this returns the AI SDK message format. For other runtimes, this may return different formats or throw an error.
- importExternalState(state: any) => void
Import thread state from the external store format. For AI SDK runtimes, this accepts AI SDK messages. For other runtimes, this may accept different formats or throw an error.
- subscribe(callback: () => void) => Unsubscribe
- cancelRun() => void
- unstable_notifySessionReset() => voidunstable
Notifies the runtime that the adapter discarded its backing session. Clears session-scoped tool-invocation state without run-cancel side effects such as composer draft restoration. Internal API for external-store adapter authors.
- getModelContext() => ModelContext
- export() => ExportedMessageRepository
- import(repository: ExportedMessageRepository) => void
- reset(initialMessages?: readonly ThreadMessageLike[]) => void
Reset the thread with optional initial messages.
- getMessageByIndex(idx: number) => MessageRuntime
- getMessageById(messageId: string) => MessageRuntime
- stopSpeaking() => voiddeprecated
Deprecated: This API is still under active development and might change without notice.
- connectVoice() => void
- disconnectVoice() => void
- getVoiceVolume() => number
- subscribeVoiceVolume(callback: () => void) => Unsubscribe
- muteVoice() => void
- unmuteVoice() => void
- unstable_on<E extends ThreadRuntimeEventType>(event: E, callback: ThreadRuntimeEventCallback<E>) => Unsubscribeunstable
- registerModelContextProvider(provider: ModelContextProvider) => Unsubscribe
Register a model context provider. Model context providers are configuration such as system message, temperature, etc. that are set in the frontend.
- aui?AssistantClient
Optional parent `AssistantClient` whose scopes are inherited by the client created for this runtime. Use this when nesting an `AssistantRuntimeProvider` inside another assistant context. Omit this prop when there is no parent client.
AssistantClient- threadAssistantClientAccessor<"thread">
- messageAssistantClientAccessor<"message">
- threadsAssistantClientAccessor<"threads">
- threadListItemAssistantClientAccessor<"threadListItem">
- partAssistantClientAccessor<"part">
- composerAssistantClientAccessor<"composer">
- attachmentAssistantClientAccessor<"attachment">
- modelContextAssistantClientAccessor<"modelContext">
- suggestionsAssistantClientAccessor<"suggestions">
- suggestionAssistantClientAccessor<"suggestion">
- chainOfThoughtAssistantClientAccessor<"chainOfThought">
- queueItemAssistantClientAccessor<"queueItem">
- toolsAssistantClientAccessor<"tools">
- dataRenderersAssistantClientAccessor<"dataRenderers">
- interactablesAssistantClientAccessor<"interactables">
- unstable_interactablesAssistantClientAccessor<"unstable_interactables">unstable
- optionalAssistantClient["optional"]
- AssistantClient["optional"]
- thread?AssistantClientAccessor<"thread">
- AssistantClient["optional"]["thread"]
- getState() => ThreadState
Get the current state of the thread.
- composer() => ComposerMethods
The thread composer runtime.
- suggestions() => SuggestionsMethods
The suggestions shown for this thread.
- append(message: CreateAppendMessage) => void
Append a new message to the thread.
- deleteMessage(messageId: string) => void | Promise<void>
- startRun(config: CreateStartRunConfig) => void
Start a new run with the given configuration.
- resumeRun(config: CreateResumeRunConfig) => void
Resume a run with the given configuration.
- cancelRun() => void
- unstable_refetchThread?() => Promise<void>unstable
Re-fetch this thread's state from its backing store, in place: the tap thread's refetch hook, which `threads.reloadMainThread()` prefers and whose rejection it propagates. `capabilities.refetchThread` is the portable feature-detection signal; a legacy-bridged thread reports it there while routing the refetch through its runtime, not this method. The method-shorthand optionality is load-bearing: an explicit `| undefined` stops `ThreadMethods` satisfying `ClientMethods` and collapses the client schema, which only a workspace-level app typecheck surfaces.
- getModelContext() => ModelContext
- export() => ExportedMessageRepository
- import(repository: ExportedMessageRepository) => void
- reset(initialMessages?: readonly ThreadMessageLike[]) => void
Reset the thread with optional initial messages.
- importExternalState(state: unknown) => void
- message(selector: { id: string; } | { index: number; }) => MessageMethods
- stopSpeaking() => voiddeprecated
Deprecated: This API is still under active development and might change without notice.
- connectVoice() => void
- disconnectVoice() => void
- getVoiceVolume() => number
- subscribeVoiceVolume(callback: () => void) => Unsubscribe
- muteVoice() => void
- unmuteVoice() => void
- source"root"
- queryRecord<string, never>
- nameK
- message?AssistantClientAccessor<"message">
- AssistantClient["optional"]["message"]
- getState() => MessageState
Get the current state of the message.
- composer() => ComposerMethods
- delete() => void | Promise<void>
- reload(config?: { runConfig?: RunConfig; }) => void
- speak() => voiddeprecated
Deprecated: This API is still under active development and might change without notice.
- stopSpeaking() => voiddeprecated
Deprecated: This API is still under active development and might change without notice.
- submitFeedback(feedback: { type: "positive" | "negative"; }) => void
- switchToBranch(options: { position?: "previous" | "next"; branchId?: string; }) => void
- getCopyText() => string
- part(selector: { index: number; } | { toolCallId: string; }) => PartMethods
- attachment(selector: { index: number; } | { id: string; }) => AttachmentMethods
- setIsCopied(value: boolean) => void
- setIsHovering(value: boolean) => void
- source"root"
- queryRecord<string, never>
- nameK
- threads?AssistantClientAccessor<"threads">
- AssistantClient["optional"]["threads"]
- getState() => ThreadsState
- switchToThread(threadId: string, options?: { unarchive?: boolean; }) => void
- switchToNewThread() => void
- item(threadIdOrOptions: "main" | { id: string; } | { index: number; archived?: boolean; }) => ThreadListItemMethods
- thread(selector: "main") => ThreadMethods
- getLoadThreadsPromise() => Promise<void>
- reload() => Promise<void>
- reloadMainThread() => Promise<void>
- loadMore() => Promise<void>
- source"root"
- queryRecord<string, never>
- nameK
- threadListItem?AssistantClientAccessor<"threadListItem">
- AssistantClient["optional"]["threadListItem"]
- getState() => ThreadListItemState
- switchTo(options?: { unarchive?: boolean; }) => void
- rename(newTitle: string) => void
- updateCustom(custom: Record<string, unknown> | undefined) => void
- archive() => void
- unarchive() => void
- delete() => void
- generateTitle() => void
- initialize() => Promise<{ remoteId: string; externalId: string | undefined; }>
- detach() => void
- source"root"
- queryRecord<string, never>
- nameK
- part?AssistantClientAccessor<"part">
- AssistantClient["optional"]["part"]
- getState() => PartState
Get the current state of the message part.
- addToolResult(result: unknown | ToolResponse<unknown>) => void
Add tool result to a tool call message part that has no tool result yet. This is useful when you are collecting a tool result via user input ("human tool calls").
- resumeToolCall(payload: unknown) => void
Resume a tool call that is waiting for human input with a payload. This is useful when a tool has requested human input and is waiting for a response.
- respondToToolApproval(response: ToolApprovalResponse) => void
Respond to a server-side tool approval gate. The approval id is read from the part. Accepts a boolean decision or the id of one of the approval's options.
- source"root"
- queryRecord<string, never>
- nameK
- composer?AssistantClientAccessor<"composer">
- AssistantClient["optional"]["composer"]
- getState() => ComposerState
- setText(text: string) => void
- setRole(role: MessageRole) => void
- setRunConfig(runConfig: RunConfig) => void
- addAttachment(fileOrAttachment: File | CreateAttachment) => Promise<void>
- clearAttachments() => Promise<void>
- attachment(selector: { index: number; } | { id: string; }) => AttachmentMethods
- reset() => Promise<void>
- send(opts?: ComposerSendOptions) => void
- cancel() => void
- beginEdit() => void
- startDictation() => void
Start dictation to convert voice to text input. Requires a DictationAdapter to be configured.
- stopDictation() => void
Stop the current dictation session.
- setQuote(quote: QuoteInfo | undefined) => void
Set a quote for the next message. Pass undefined to clear.
- queueItem(selector: { index: number; } | { id: string; }) => QueueItemMethods
Access a queue item by index or id.
- source"root"
- queryRecord<string, never>
- nameK
- attachment?AssistantClientAccessor<"attachment">
- AssistantClient["optional"]["attachment"]
- getState() => AttachmentState
- remove() => Promise<void>
- source"root"
- queryRecord<string, never>
- nameK
- modelContext?AssistantClientAccessor<"modelContext">
- AssistantClient["optional"]["modelContext"]
- getModelContext() => ModelContext
- subscribe?(callback: () => void) => Unsubscribe
- getState() => ModelContextState
- register(provider: ModelContextProvider) => Unsubscribe
- source"root"
- queryRecord<string, never>
- nameK
- suggestions?AssistantClientAccessor<"suggestions">
- AssistantClient["optional"]["suggestions"]
- getState() => SuggestionsState
- suggestion(query: { index: number; }) => SuggestionMethods
- source"root"
- queryRecord<string, never>
- nameK
- suggestion?AssistantClientAccessor<"suggestion">
- AssistantClient["optional"]["suggestion"]
- getState() => SuggestionState
- source"root"
- queryRecord<string, never>
- nameK
- chainOfThought?AssistantClientAccessor<"chainOfThought">
- AssistantClient["optional"]["chainOfThought"]
- getState() => ChainOfThoughtState
Get the current state of the chain of thought.
- setCollapsed(collapsed: boolean) => void
Set the collapsed state of the chain of thought accordion.
- part(selector: { index: number; }) => PartMethods
Get the part methods for a specific part within this chain of thought.
- source"root"
- queryRecord<string, never>
- nameK
- queueItem?AssistantClientAccessor<"queueItem">
- AssistantClient["optional"]["queueItem"]
- getState() => QueueItemState
- steer() => voiddeprecated
Deprecated: Use `move({ lane: "steer", insertAfter: null })` instead. Removal after 2026-11-05.
- move(placement: QueuePlacement) => void
- remove() => void
- source"root"
- queryRecord<string, never>
- nameK
- tools?AssistantClientAccessor<"tools">
- AssistantClient["optional"]["tools"]
- getState() => ToolsState
- setToolUI(toolName: string, render: ToolCallMessagePartComponent, options?: { standalone?: boolean; }) => Unsubscribe
- source"root"
- queryRecord<string, never>
- nameK
- dataRenderers?AssistantClientAccessor<"dataRenderers">
- AssistantClient["optional"]["dataRenderers"]
- getState() => DataRenderersState
- setDataUI(name: string, render: DataMessagePartComponent) => Unsubscribe
- setFallbackDataUI(render: DataMessagePartComponent) => Unsubscribe
- source"root"
- queryRecord<string, never>
- nameK
- interactables?AssistantClientAccessor<"interactables">
- AssistantClient["optional"]["interactables"]
- getState() => InteractablesState
- register(def: InteractableRegistration) => Unsubscribe
- setState(id: string, updater: (prev: unknown) => unknown) => void
- setSelected(id: string, selected: boolean) => void
- exportState() => InteractablePersistedState
- importState(saved: InteractablePersistedState) => void
- setPersistenceAdapter(adapter: InteractablePersistenceAdapter | undefined) => void
- flush() => Promise<void>
- source"root"
- queryRecord<string, never>
- nameK
- unstable_interactables?AssistantClientAccessor<"unstable_interactables">unstable
- AssistantClient["optional"]["unstable_interactables"]
- getState() => Unstable_InteractablesState
- register(def: Unstable_InteractableRegistration) => Unsubscribe
- setState(id: string, updater: (prev: unknown) => unknown) => void
- exportState() => Unstable_InteractablePersistedState
- importState(saved: Unstable_InteractablePersistedState) => void
- setPersistenceAdapter(adapter: Unstable_InteractablePersistenceAdapter | undefined) => void
- flush() => Promise<void>
- source"root"
- queryRecord<string, never>
- nameK
- subscribe(listener: () => void) => Unsubscribe
- on<TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>, callback: AssistantEventCallback<TEvent>) => Unsubscribe
- config?AuiConfig
Optional extra scopes provided alongside the runtime's `threads` scope; build with `AuiConfig`.
AuiConfig- thread?ClientElement<"thread"> | DerivedElement<"thread">
- AuiConfig["thread"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- message?ClientElement<"message"> | DerivedElement<"message">
- AuiConfig["message"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- threads?ClientElement<"threads"> | DerivedElement<"threads">
- AuiConfig["threads"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- threadListItem?ClientElement<"threadListItem"> | DerivedElement<"threadListItem">
- AuiConfig["threadListItem"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- part?ClientElement<"part"> | DerivedElement<"part">
- AuiConfig["part"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- composer?ClientElement<"composer"> | DerivedElement<"composer">
- AuiConfig["composer"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- attachment?ClientElement<"attachment"> | DerivedElement<"attachment">
- AuiConfig["attachment"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- modelContext?ClientElement<"modelContext"> | DerivedElement<"modelContext">
- AuiConfig["modelContext"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- suggestions?ClientElement<"suggestions"> | DerivedElement<"suggestions">
- AuiConfig["suggestions"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- suggestion?ClientElement<"suggestion"> | DerivedElement<"suggestion">
- AuiConfig["suggestion"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- chainOfThought?ClientElement<"chainOfThought"> | DerivedElement<"chainOfThought">
- AuiConfig["chainOfThought"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- queueItem?ClientElement<"queueItem"> | DerivedElement<"queueItem">
- AuiConfig["queueItem"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- tools?ClientElement<"tools"> | DerivedElement<"tools">
- AuiConfig["tools"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- dataRenderers?ClientElement<"dataRenderers"> | DerivedElement<"dataRenderers">
- AuiConfig["dataRenderers"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- interactables?ClientElement<"interactables"> | DerivedElement<"interactables">
- AuiConfig["interactables"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- unstable_interactables?ClientElement<"unstable_interactables"> | DerivedElement<"unstable_interactables">unstable
- AuiConfig["unstable_interactables"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
AuiProvider
Supplies an AssistantClient to the React tree.
Place near the root of any subtree that uses useAui or the
primitives built on it. Components rendered outside an AuiProvider
receive a default client whose scope accessors throw on use, so
missing-provider mistakes surface at the point of use.
config is required and must be built with AuiConfig. At the top
level, config alone creates this subtree's own client. Under a parent
provider, extends is mandatory: pass extends={aui} to extend the parent
client or extends={null} to isolate from it (enforced with a dev error).
Configs are identity-insensitive — a fresh object per render is safe.
A config whose scopes are all Derived keeps its scope set fixed
at mount (dev-enforced); configs with a root scope, and empty configs,
may grow and shrink scopes across renders. ref receives the resulting
client after mount.
When mounting a runtime built with one of the runtime hooks, use
AssistantRuntimeProvider — it installs an AuiProvider
internally — rather than wiring AuiProvider yourself.
function MessageScope({ index, children }) {
const aui = useAui();
const config = AuiConfig({
message: Derived({
source: "thread",
query: { index },
get: (aui) => aui.thread.message({ index }),
}),
});
return (
<AuiProvider extends={aui} config={config}>
{children}
</AuiProvider>
);
}- configAuiConfig
Scopes to create the client from; built with AuiConfig.
AuiConfig- thread?ClientElement<"thread"> | DerivedElement<"thread">
- AuiConfig["thread"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- message?ClientElement<"message"> | DerivedElement<"message">
- AuiConfig["message"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- threads?ClientElement<"threads"> | DerivedElement<"threads">
- AuiConfig["threads"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- threadListItem?ClientElement<"threadListItem"> | DerivedElement<"threadListItem">
- AuiConfig["threadListItem"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- part?ClientElement<"part"> | DerivedElement<"part">
- AuiConfig["part"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- composer?ClientElement<"composer"> | DerivedElement<"composer">
- AuiConfig["composer"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- attachment?ClientElement<"attachment"> | DerivedElement<"attachment">
- AuiConfig["attachment"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- modelContext?ClientElement<"modelContext"> | DerivedElement<"modelContext">
- AuiConfig["modelContext"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- suggestions?ClientElement<"suggestions"> | DerivedElement<"suggestions">
- AuiConfig["suggestions"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- suggestion?ClientElement<"suggestion"> | DerivedElement<"suggestion">
- AuiConfig["suggestion"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- chainOfThought?ClientElement<"chainOfThought"> | DerivedElement<"chainOfThought">
- AuiConfig["chainOfThought"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- queueItem?ClientElement<"queueItem"> | DerivedElement<"queueItem">
- AuiConfig["queueItem"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- tools?ClientElement<"tools"> | DerivedElement<"tools">
- AuiConfig["tools"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- dataRenderers?ClientElement<"dataRenderers"> | DerivedElement<"dataRenderers">
- AuiConfig["dataRenderers"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- interactables?ClientElement<"interactables"> | DerivedElement<"interactables">
- AuiConfig["interactables"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- unstable_interactables?ClientElement<"unstable_interactables"> | DerivedElement<"unstable_interactables">unstable
- AuiConfig["unstable_interactables"]
- hook(...args: any[]) => V
- argsreadonly unknown[]
- key?string | number
- deps?readonly unknown[]
- ref?React.Ref<AssistantClient>
Receives the resulting client after mount.
- extends?never
- value?never
- children?React.ReactNode
Subtree that may read from the client.