AssistantRuntimeProvider

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>
  );
};
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>
  );
}
AuiProvider props
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.