@assistant-ui/core 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/attachment.d.ts +43 -39
- package/dist/adapters/attachment.d.ts.map +1 -1
- package/dist/adapters/attachment.js +148 -183
- package/dist/adapters/attachment.js.map +1 -1
- package/dist/adapters/directive-formatter.d.ts +6 -2
- package/dist/adapters/directive-formatter.d.ts.map +1 -1
- package/dist/adapters/directive-formatter.js +36 -33
- package/dist/adapters/directive-formatter.js.map +1 -1
- package/dist/adapters/feedback.d.ts +9 -6
- package/dist/adapters/feedback.d.ts.map +1 -1
- package/dist/adapters/feedback.js +0 -2
- package/dist/adapters/index.d.ts +9 -13
- package/dist/adapters/index.js +5 -6
- package/dist/adapters/speech.d.ts +66 -63
- package/dist/adapters/speech.d.ts.map +1 -1
- package/dist/adapters/speech.js +170 -174
- package/dist/adapters/speech.js.map +1 -1
- package/dist/adapters/suggestion.d.ts +9 -6
- package/dist/adapters/suggestion.d.ts.map +1 -1
- package/dist/adapters/suggestion.js +0 -2
- package/dist/adapters/thread-history.d.ts +40 -37
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/adapters/thread-history.js +0 -2
- package/dist/adapters/trigger.d.ts +9 -8
- package/dist/adapters/trigger.d.ts.map +1 -1
- package/dist/adapters/trigger.js +0 -2
- package/dist/adapters/voice.d.ts +46 -42
- package/dist/adapters/voice.d.ts.map +1 -1
- package/dist/adapters/voice.js +98 -107
- package/dist/adapters/voice.js.map +1 -1
- package/dist/index.d.ts +45 -53
- package/dist/index.js +16 -20
- package/dist/internal.d.ts +37 -8
- package/dist/internal.js +34 -18
- package/dist/model-context/frame/host.d.ts +23 -19
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +121 -135
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +20 -16
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +115 -126
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/model-context/frame/types.d.ts +25 -22
- package/dist/model-context/frame/types.d.ts.map +1 -1
- package/dist/model-context/frame/types.js +5 -1
- package/dist/model-context/frame/types.js.map +1 -1
- package/dist/model-context/registry-handles.d.ts +13 -9
- package/dist/model-context/registry-handles.d.ts.map +1 -1
- package/dist/model-context/registry-handles.js +0 -2
- package/dist/model-context/registry.d.ts +19 -15
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/registry.js +93 -107
- package/dist/model-context/registry.js.map +1 -1
- package/dist/model-context/tool.d.ts +6 -2
- package/dist/model-context/tool.d.ts.map +1 -1
- package/dist/model-context/tool.js +30 -27
- package/dist/model-context/tool.js.map +1 -1
- package/dist/model-context/types.d.ts +37 -33
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/model-context/types.js +24 -38
- package/dist/model-context/types.js.map +1 -1
- package/dist/react/AssistantProvider.d.ts +12 -8
- package/dist/react/AssistantProvider.d.ts.map +1 -1
- package/dist/react/AssistantProvider.js +16 -9
- package/dist/react/AssistantProvider.js.map +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts +26 -18
- package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/react/AssistantRuntimeProvider.js +33 -25
- package/dist/react/AssistantRuntimeProvider.js.map +1 -1
- package/dist/react/RuntimeAdapter.d.ts +5 -2
- package/dist/react/RuntimeAdapter.d.ts.map +1 -1
- package/dist/react/RuntimeAdapter.js +11 -11
- package/dist/react/RuntimeAdapter.js.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +14 -11
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +136 -147
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/adapters/TitleGenerationAdapter.d.ts +8 -4
- package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
- package/dist/react/adapters/TitleGenerationAdapter.js +13 -13
- package/dist/react/adapters/TitleGenerationAdapter.js.map +1 -1
- package/dist/react/client/DataRenderers.d.ts +6 -2
- package/dist/react/client/DataRenderers.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.js +53 -51
- package/dist/react/client/DataRenderers.js.map +1 -1
- package/dist/react/client/Interactables.d.ts +6 -2
- package/dist/react/client/Interactables.d.ts.map +1 -1
- package/dist/react/client/Interactables.js +251 -257
- package/dist/react/client/Interactables.js.map +1 -1
- package/dist/react/client/Tools.d.ts +13 -14
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +57 -68
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/client/interactable-model-context.d.ts +10 -6
- package/dist/react/client/interactable-model-context.d.ts.map +1 -1
- package/dist/react/client/interactable-model-context.js +51 -59
- package/dist/react/client/interactable-model-context.js.map +1 -1
- package/dist/react/index.d.ts +96 -90
- package/dist/react/index.js +89 -96
- package/dist/react/model-context/makeAssistantDataUI.d.ts +9 -6
- package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantDataUI.js +17 -13
- package/dist/react/model-context/makeAssistantDataUI.js.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +9 -6
- package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantTool.js +18 -14
- package/dist/react/model-context/makeAssistantTool.js.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts +9 -6
- package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.js +19 -15
- package/dist/react/model-context/makeAssistantToolUI.js.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +13 -11
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/model-context/toolbox.js +0 -2
- package/dist/react/model-context/useAssistantContext.d.ts +5 -3
- package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantContext.js +13 -14
- package/dist/react/model-context/useAssistantContext.js.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.d.ts +9 -7
- package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.js +19 -12
- package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
- package/dist/react/model-context/useAssistantInstructions.d.ts +5 -3
- package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantInstructions.js +18 -16
- package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
- package/dist/react/model-context/useAssistantInteractable.d.ts +12 -8
- package/dist/react/model-context/useAssistantInteractable.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantInteractable.js +36 -26
- package/dist/react/model-context/useAssistantInteractable.js.map +1 -1
- package/dist/react/model-context/useAssistantTool.d.ts +9 -6
- package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantTool.js +48 -47
- package/dist/react/model-context/useAssistantTool.js.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.d.ts +9 -7
- package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.js +22 -15
- package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/react/model-context/useInlineRender.d.ts +7 -3
- package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.js +12 -12
- package/dist/react/model-context/useInlineRender.js.map +1 -1
- package/dist/react/model-context/useInteractableState.d.ts +9 -7
- package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
- package/dist/react/model-context/useInteractableState.js +29 -31
- package/dist/react/model-context/useInteractableState.js.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts +7 -7
- package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.js +44 -50
- package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts +13 -7
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.js +31 -23
- package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts +6 -3
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.js +13 -7
- package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +9 -6
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarFeedback.js +22 -14
- package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.d.ts +6 -3
- package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.js +13 -9
- package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +6 -3
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.js +15 -11
- package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +6 -3
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +13 -7
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +6 -3
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.js +17 -14
- package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +6 -3
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.js +17 -14
- package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +8 -4
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.js +13 -7
- package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.d.ts +6 -3
- package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.js +13 -7
- package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerDictate.d.ts +6 -3
- package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerDictate.js +13 -9
- package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.d.ts +8 -4
- package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.js +13 -8
- package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +5 -2
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.js +9 -6
- package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts +6 -3
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerSend.js +13 -7
- package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageBranching.d.ts +8 -5
- package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageBranching.js +16 -11
- package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.d.ts +4 -1
- package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.js +6 -5
- package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageReload.d.ts +6 -3
- package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageReload.js +13 -7
- package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +14 -7
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.js +33 -28
- package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +4 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.js +6 -2
- package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +4 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.js +6 -2
- package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +5 -2
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.js +9 -6
- package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +5 -2
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.js +9 -6
- package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +5 -2
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.js +9 -6
- package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +5 -2
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +9 -6
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +6 -3
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.js +13 -7
- package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListNew.d.ts +5 -2
- package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListNew.js +9 -6
- package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessages.d.ts +6 -2
- package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessages.js +6 -2
- package/dist/react/primitive-hooks/useThreadMessages.js.map +1 -1
- package/dist/react/primitive-hooks/useVoice.d.ts +12 -8
- package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useVoice.js +25 -21
- package/dist/react/primitive-hooks/useVoice.js.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +26 -27
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +30 -28
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts +27 -26
- package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.js +44 -48
- package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
- package/dist/react/primitives/composer/ComposerIf.d.ts +12 -13
- package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerIf.js +16 -17
- package/dist/react/primitives/composer/ComposerIf.js.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.d.ts +16 -13
- package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.js +31 -23
- package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +64 -0
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -0
- package/dist/react/primitives/generativeUI/GenerativeUI.js +91 -0
- package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -0
- package/dist/react/primitives/message/MessageAttachments.d.ts +27 -26
- package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.js +47 -52
- package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.d.ts +82 -71
- package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js +63 -61
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +148 -145
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +363 -335
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/primitives/message/MessageQuote.d.ts +11 -8
- package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageQuote.js +24 -21
- package/dist/react/primitives/message/MessageQuote.js.map +1 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +8 -4
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.js +6 -3
- package/dist/react/primitives/messagePart/MessagePartInProgress.js.map +1 -1
- package/dist/react/primitives/part/PartMessages.d.ts +16 -13
- package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
- package/dist/react/primitives/part/PartMessages.js +45 -41
- package/dist/react/primitives/part/PartMessages.js.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts +40 -55
- package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.js +58 -92
- package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts +25 -25
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.js +39 -35
- package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts +27 -26
- package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js +47 -23
- package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +10 -6
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.js +7 -4
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts +9 -5
- package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.js +30 -20
- package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +8 -4
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +19 -17
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +7 -3
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +18 -11
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts +7 -3
- package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.js +25 -16
- package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts +7 -3
- package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.js +18 -11
- package/dist/react/providers/PartByIndexProvider.js.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts +8 -4
- package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.js +14 -10
- package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.d.ts +11 -7
- package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.js +46 -42
- package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts +8 -4
- package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.js +14 -10
- package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts +8 -4
- package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.js +32 -22
- package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +8 -4
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.js +22 -11
- package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +8 -4
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.js +12 -8
- package/dist/react/providers/ThreadListItemRuntimeProvider.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +121 -109
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +123 -129
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +149 -135
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +460 -515
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +19 -15
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.js +16 -9
- package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +8 -4
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +372 -485
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +19 -13
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +83 -80
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +61 -58
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +80 -87
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +10 -7
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +101 -101
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
- package/dist/react/runtimes/createMessageConverter.d.ts +23 -14
- package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
- package/dist/react/runtimes/createMessageConverter.js +43 -46
- package/dist/react/runtimes/createMessageConverter.js.map +1 -1
- package/dist/react/runtimes/external-message-converter.d.ts +40 -31
- package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
- package/dist/react/runtimes/external-message-converter.js +226 -296
- package/dist/react/runtimes/external-message-converter.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts +7 -3
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.js +18 -15
- package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts +41 -26
- package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.js +58 -67
- package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +7 -3
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.js +51 -62
- package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
- package/dist/react/runtimes/useToolInvocations.d.ts +39 -34
- package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
- package/dist/react/runtimes/useToolInvocations.js +371 -481
- package/dist/react/runtimes/useToolInvocations.js.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +73 -41
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.js +0 -2
- package/dist/react/types/scopes/dataRenderers.d.ts +15 -11
- package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
- package/dist/react/types/scopes/dataRenderers.js +0 -2
- package/dist/react/types/scopes/interactables.d.ts +44 -42
- package/dist/react/types/scopes/interactables.d.ts.map +1 -1
- package/dist/react/types/scopes/interactables.js +0 -2
- package/dist/react/types/scopes/tools.d.ts +16 -12
- package/dist/react/types/scopes/tools.d.ts.map +1 -1
- package/dist/react/types/scopes/tools.js +0 -2
- package/dist/react/types/store-augmentation.d.ts +11 -9
- package/dist/react/types/store-augmentation.d.ts.map +1 -1
- package/dist/react/types/store-augmentation.js +0 -2
- package/dist/react/utils/getMessageQuote.d.ts +9 -6
- package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
- package/dist/react/utils/getMessageQuote.js +8 -5
- package/dist/react/utils/getMessageQuote.js.map +1 -1
- package/dist/react/utils/groupParts.d.ts +59 -28
- package/dist/react/utils/groupParts.d.ts.map +1 -1
- package/dist/react/utils/groupParts.js +104 -89
- package/dist/react/utils/groupParts.js.map +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts +32 -28
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
- package/dist/runtime/api/assistant-runtime.js +25 -22
- package/dist/runtime/api/assistant-runtime.js.map +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts +48 -45
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.js +55 -52
- package/dist/runtime/api/attachment-runtime.js.map +1 -1
- package/dist/runtime/api/bindings.d.ts +30 -25
- package/dist/runtime/api/bindings.d.ts.map +1 -1
- package/dist/runtime/api/bindings.js +0 -2
- package/dist/runtime/api/composer-runtime.d.ts +184 -182
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.js +239 -245
- package/dist/runtime/api/composer-runtime.js.map +1 -1
- package/dist/runtime/api/message-part-runtime.d.ts +37 -27
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.js +74 -65
- package/dist/runtime/api/message-part-runtime.js.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts +91 -80
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.js +169 -194
- package/dist/runtime/api/message-runtime.js.map +1 -1
- package/dist/runtime/api/paths.d.ts +57 -54
- package/dist/runtime/api/paths.d.ts.map +1 -1
- package/dist/runtime/api/paths.js +0 -2
- package/dist/runtime/api/thread-list-item-runtime.d.ts +68 -61
- package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.js +85 -84
- package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +57 -48
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js +160 -147
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +279 -272
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +244 -244
- package/dist/runtime/api/thread-runtime.js.map +1 -1
- package/dist/runtime/base/base-assistant-runtime-core.d.ts +13 -9
- package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-assistant-runtime-core.js +13 -9
- package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts +60 -57
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +348 -392
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +90 -84
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +349 -357
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +37 -30
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js +70 -77
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +25 -21
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js +51 -48
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts +12 -8
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/assistant-runtime-core.js +0 -2
- package/dist/runtime/interfaces/composer-runtime-core.d.ts +70 -67
- package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/composer-runtime-core.js +0 -2
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +45 -39
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.js +0 -2
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +155 -145
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.js +0 -2
- package/dist/runtime/internal.d.ts +19 -23
- package/dist/runtime/internal.js +18 -22
- package/dist/runtime/utils/auto-status.d.ts +8 -4
- package/dist/runtime/utils/auto-status.d.ts.map +1 -1
- package/dist/runtime/utils/auto-status.js +18 -22
- package/dist/runtime/utils/auto-status.js.map +1 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts +34 -31
- package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
- package/dist/runtime/utils/chat-model-adapter.js +0 -2
- package/dist/runtime/utils/external-store-message.d.ts +9 -5
- package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
- package/dist/runtime/utils/external-store-message.js +21 -21
- package/dist/runtime/utils/external-store-message.js.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts +48 -42
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +213 -267
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts +51 -39
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.js +125 -139
- package/dist/runtime/utils/thread-message-like.js.map +1 -1
- package/dist/runtimes/assistant-transport/utils.d.ts +4 -1
- package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
- package/dist/runtimes/assistant-transport/utils.js +9 -5
- package/dist/runtimes/assistant-transport/utils.js.map +1 -1
- package/dist/runtimes/external-store/external-store-adapter.d.ts +101 -97
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-adapter.js +0 -2
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts +9 -5
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-runtime-core.js +16 -13
- package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +46 -40
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +141 -171
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +54 -47
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +216 -288
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/thread-message-converter.d.ts +9 -5
- package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
- package/dist/runtimes/external-store/thread-message-converter.js +14 -11
- package/dist/runtimes/external-store/thread-message-converter.js.map +1 -1
- package/dist/runtimes/internal.d.ts +15 -19
- package/dist/runtimes/internal.js +13 -17
- package/dist/runtimes/local/local-runtime-core.d.ts +11 -7
- package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-runtime-core.js +18 -18
- package/dist/runtimes/local/local-runtime-core.js.map +1 -1
- package/dist/runtimes/local/local-runtime-options.d.ts +27 -23
- package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
- package/dist/runtimes/local/local-runtime-options.js +0 -2
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +46 -42
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-list-runtime-core.js +84 -83
- package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +81 -59
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +345 -424
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/local/should-continue.d.ts +6 -2
- package/dist/runtimes/local/should-continue.d.ts.map +1 -1
- package/dist/runtimes/local/should-continue.js +7 -12
- package/dist/runtimes/local/should-continue.js.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +97 -92
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +167 -176
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +15 -11
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.js +33 -28
- package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +6 -2
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.js +155 -160
- package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +27 -27
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.js +63 -73
- package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +46 -43
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.js +81 -91
- package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/types.d.ts +65 -61
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/types.js +0 -2
- package/dist/store/clients/chain-of-thought-client.d.ts +16 -12
- package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
- package/dist/store/clients/chain-of-thought-client.js +24 -15
- package/dist/store/clients/chain-of-thought-client.js.map +1 -1
- package/dist/store/clients/model-context-client.d.ts +6 -2
- package/dist/store/clients/model-context-client.d.ts.map +1 -1
- package/dist/store/clients/model-context-client.js +32 -26
- package/dist/store/clients/model-context-client.js.map +1 -1
- package/dist/store/clients/no-op-composer-client.d.ts +8 -4
- package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
- package/dist/store/clients/no-op-composer-client.js +67 -63
- package/dist/store/clients/no-op-composer-client.js.map +1 -1
- package/dist/store/clients/runtime-adapter.d.ts +8 -4
- package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
- package/dist/store/clients/runtime-adapter.js +33 -33
- package/dist/store/clients/runtime-adapter.js.map +1 -1
- package/dist/store/clients/suggestions.d.ts +12 -8
- package/dist/store/clients/suggestions.d.ts.map +1 -1
- package/dist/store/clients/suggestions.js +28 -32
- package/dist/store/clients/suggestions.js.map +1 -1
- package/dist/store/clients/thread-message-client.d.ts +13 -9
- package/dist/store/clients/thread-message-client.d.ts.map +1 -1
- package/dist/store/clients/thread-message-client.js +98 -105
- package/dist/store/clients/thread-message-client.js.map +1 -1
- package/dist/store/index.d.ts +18 -18
- package/dist/store/index.js +6 -8
- package/dist/store/internal.d.ts +9 -9
- package/dist/store/internal.js +9 -9
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts +9 -5
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/attachment-runtime-client.js +12 -8
- package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +14 -10
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.js +86 -89
- package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts +9 -5
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.js +14 -9
- package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts +12 -8
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.js +66 -70
- package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/tap-subscribable.d.ts +6 -2
- package/dist/store/runtime-clients/tap-subscribable.d.ts.map +1 -1
- package/dist/store/runtime-clients/tap-subscribable.js +14 -10
- package/dist/store/runtime-clients/tap-subscribable.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +9 -5
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js +33 -38
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +12 -8
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.js +53 -53
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts +9 -5
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.js +93 -85
- package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
- package/dist/store/scope-registration.d.ts +29 -27
- package/dist/store/scope-registration.d.ts.map +1 -1
- package/dist/store/scope-registration.js +0 -2
- package/dist/store/scopes/attachment.d.ts +23 -19
- package/dist/store/scopes/attachment.d.ts.map +1 -1
- package/dist/store/scopes/attachment.js +0 -2
- package/dist/store/scopes/chain-of-thought.d.ts +36 -33
- package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
- package/dist/store/scopes/chain-of-thought.js +0 -2
- package/dist/store/scopes/composer.d.ts +118 -115
- package/dist/store/scopes/composer.d.ts.map +1 -1
- package/dist/store/scopes/composer.js +0 -2
- package/dist/store/scopes/message.d.ts +81 -81
- package/dist/store/scopes/message.d.ts.map +1 -1
- package/dist/store/scopes/message.js +0 -2
- package/dist/store/scopes/model-context.d.ts +14 -10
- package/dist/store/scopes/model-context.d.ts.map +1 -1
- package/dist/store/scopes/model-context.js +0 -2
- package/dist/store/scopes/part.d.ts +49 -39
- package/dist/store/scopes/part.d.ts.map +1 -1
- package/dist/store/scopes/part.js +0 -2
- package/dist/store/scopes/queue-item.d.ts +18 -15
- package/dist/store/scopes/queue-item.d.ts.map +1 -1
- package/dist/store/scopes/queue-item.js +0 -2
- package/dist/store/scopes/suggestion.d.ts +17 -14
- package/dist/store/scopes/suggestion.d.ts.map +1 -1
- package/dist/store/scopes/suggestion.js +0 -2
- package/dist/store/scopes/suggestions.d.ts +18 -14
- package/dist/store/scopes/suggestions.d.ts.map +1 -1
- package/dist/store/scopes/suggestions.js +0 -2
- package/dist/store/scopes/thread-list-item.d.ts +62 -56
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/thread-list-item.js +0 -2
- package/dist/store/scopes/thread.d.ts +151 -149
- package/dist/store/scopes/thread.d.ts.map +1 -1
- package/dist/store/scopes/thread.js +0 -2
- package/dist/store/scopes/threads.d.ts +36 -30
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/store/scopes/threads.js +0 -2
- package/dist/subscribable/subscribable.d.ts +62 -58
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +196 -220
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.d.ts +13 -9
- package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.js +49 -42
- package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
- package/dist/types/attachment.d.ts +35 -32
- package/dist/types/attachment.d.ts.map +1 -1
- package/dist/types/attachment.js +0 -2
- package/dist/types/directive.d.ts +15 -13
- package/dist/types/directive.d.ts.map +1 -1
- package/dist/types/directive.js +0 -2
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.js +0 -2
- package/dist/types/message.d.ts +238 -208
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +6 -2
- package/dist/types/message.js.map +1 -1
- package/dist/types/quote.d.ts +6 -3
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/types/quote.js +0 -2
- package/dist/types/trigger.d.ts +14 -10
- package/dist/types/trigger.d.ts.map +1 -1
- package/dist/types/trigger.js +0 -2
- package/dist/types/unsubscribe.d.ts +4 -1
- package/dist/types/unsubscribe.d.ts.map +1 -1
- package/dist/types/unsubscribe.js +0 -2
- package/dist/utils/composite-context-provider.d.ts +11 -8
- package/dist/utils/composite-context-provider.d.ts.map +1 -1
- package/dist/utils/composite-context-provider.js +31 -28
- package/dist/utils/composite-context-provider.js.map +1 -1
- package/dist/utils/id.d.ts +8 -5
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +9 -5
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/json/is-json-equal.d.ts +4 -1
- package/dist/utils/json/is-json-equal.d.ts.map +1 -1
- package/dist/utils/json/is-json-equal.js +20 -25
- package/dist/utils/json/is-json-equal.js.map +1 -1
- package/dist/utils/json/is-json.d.ts +9 -5
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/is-json.js +17 -28
- package/dist/utils/json/is-json.js.map +1 -1
- package/dist/utils/text.d.ts +6 -2
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/text.js +6 -3
- package/dist/utils/text.js.map +1 -1
- package/package.json +12 -12
- package/src/index.ts +4 -0
- package/src/react/index.ts +18 -0
- package/src/react/primitives/generativeUI/GenerativeUI.tsx +182 -0
- package/src/react/primitives/message/MessageGroupedParts.tsx +38 -31
- package/src/react/primitives/message/MessageParts.tsx +64 -2
- package/src/react/providers/TextMessagePartProvider.tsx +3 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +11 -7
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +7 -2
- package/src/react/runtimes/cloud/auiV0.ts +1 -1
- package/src/react/runtimes/external-message-converter.ts +25 -12
- package/src/react/types/MessagePartComponentTypes.ts +34 -0
- package/src/react/utils/groupParts.ts +67 -22
- package/src/runtime/api/message-part-runtime.ts +26 -0
- package/src/runtime/api/thread-list-item-runtime.ts +3 -3
- package/src/runtime/api/thread-list-runtime.ts +9 -3
- package/src/runtime/base/base-thread-runtime-core.ts +12 -0
- package/src/runtime/interfaces/thread-list-runtime-core.ts +4 -1
- package/src/runtime/interfaces/thread-runtime-core.ts +13 -5
- package/src/runtime/utils/thread-message-like.ts +18 -3
- package/src/runtimes/external-store/external-store-adapter.ts +4 -0
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +4 -1
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +7 -0
- package/src/runtimes/local/local-thread-runtime-core.ts +5 -0
- package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +4 -0
- package/src/runtimes/remote-thread-list/empty-thread-core.ts +4 -0
- package/src/store/clients/thread-message-client.ts +3 -0
- package/src/store/runtime-clients/message-part-runtime-client.ts +2 -0
- package/src/store/runtime-clients/thread-list-runtime-client.ts +2 -2
- package/src/store/scopes/part.ts +4 -0
- package/src/store/scopes/thread-list-item.ts +1 -1
- package/src/store/scopes/threads.ts +1 -1
- package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-unarchive.test.ts +88 -0
- package/src/tests/external-store-thread-runtime-core.test.ts +83 -0
- package/src/tests/groupParts.test.ts +118 -32
- package/src/types/index.ts +3 -0
- package/src/types/message.ts +56 -1
- package/dist/adapters/feedback.js.map +0 -1
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/suggestion.js.map +0 -1
- package/dist/adapters/thread-history.js.map +0 -1
- package/dist/adapters/trigger.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/internal.d.ts.map +0 -1
- package/dist/internal.js.map +0 -1
- package/dist/model-context/registry-handles.js.map +0 -1
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js.map +0 -1
- package/dist/react/model-context/toolbox.js.map +0 -1
- package/dist/react/types/MessagePartComponentTypes.js.map +0 -1
- package/dist/react/types/scopes/dataRenderers.js.map +0 -1
- package/dist/react/types/scopes/interactables.js.map +0 -1
- package/dist/react/types/scopes/tools.js.map +0 -1
- package/dist/react/types/store-augmentation.js.map +0 -1
- package/dist/runtime/api/bindings.js.map +0 -1
- package/dist/runtime/api/paths.js.map +0 -1
- package/dist/runtime/interfaces/assistant-runtime-core.js.map +0 -1
- package/dist/runtime/interfaces/composer-runtime-core.js.map +0 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.js.map +0 -1
- package/dist/runtime/interfaces/thread-runtime-core.js.map +0 -1
- package/dist/runtime/internal.d.ts.map +0 -1
- package/dist/runtime/internal.js.map +0 -1
- package/dist/runtime/utils/chat-model-adapter.js.map +0 -1
- package/dist/runtimes/external-store/external-store-adapter.js.map +0 -1
- package/dist/runtimes/internal.d.ts.map +0 -1
- package/dist/runtimes/internal.js.map +0 -1
- package/dist/runtimes/local/local-runtime-options.js.map +0 -1
- package/dist/runtimes/remote-thread-list/types.js.map +0 -1
- package/dist/store/index.d.ts.map +0 -1
- package/dist/store/index.js.map +0 -1
- package/dist/store/internal.d.ts.map +0 -1
- package/dist/store/internal.js.map +0 -1
- package/dist/store/scope-registration.js.map +0 -1
- package/dist/store/scopes/attachment.js.map +0 -1
- package/dist/store/scopes/chain-of-thought.js.map +0 -1
- package/dist/store/scopes/composer.js.map +0 -1
- package/dist/store/scopes/message.js.map +0 -1
- package/dist/store/scopes/model-context.js.map +0 -1
- package/dist/store/scopes/part.js.map +0 -1
- package/dist/store/scopes/queue-item.js.map +0 -1
- package/dist/store/scopes/suggestion.js.map +0 -1
- package/dist/store/scopes/suggestions.js.map +0 -1
- package/dist/store/scopes/thread-list-item.js.map +0 -1
- package/dist/store/scopes/thread.js.map +0 -1
- package/dist/store/scopes/threads.js.map +0 -1
- package/dist/types/attachment.js.map +0 -1
- package/dist/types/directive.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/quote.js.map +0 -1
- package/dist/types/trigger.js.map +0 -1
- package/dist/types/unsubscribe.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assistant-ui/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Framework-agnostic core runtime for assistant-ui",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"assistant",
|
|
@@ -59,15 +59,15 @@
|
|
|
59
59
|
],
|
|
60
60
|
"sideEffects": false,
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"assistant-stream": "^0.3.
|
|
62
|
+
"assistant-stream": "^0.3.17",
|
|
63
63
|
"nanoid": "^5.1.11"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
|
-
"@assistant-ui/store": "^0.2.
|
|
67
|
-
"@assistant-ui/tap": "^0.5.
|
|
66
|
+
"@assistant-ui/store": "^0.2.12",
|
|
67
|
+
"@assistant-ui/tap": "^0.5.12",
|
|
68
68
|
"@types/react": "*",
|
|
69
69
|
"react": "^18 || ^19",
|
|
70
|
-
"assistant-cloud": "^0.1.
|
|
70
|
+
"assistant-cloud": "^0.1.29",
|
|
71
71
|
"zustand": "^5.0.11"
|
|
72
72
|
},
|
|
73
73
|
"peerDependenciesMeta": {
|
|
@@ -85,14 +85,14 @@
|
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
|
-
"@types/react": "^19.2.
|
|
89
|
-
"react": "^19.2.
|
|
90
|
-
"vitest": "^4.1.
|
|
88
|
+
"@types/react": "^19.2.15",
|
|
89
|
+
"react": "^19.2.6",
|
|
90
|
+
"vitest": "^4.1.7",
|
|
91
91
|
"zustand": "^5.0.13",
|
|
92
|
-
"@assistant-ui/store": "0.2.
|
|
93
|
-
"@assistant-ui/tap": "0.5.
|
|
94
|
-
"@assistant-ui/x-buildutils": "0.0.
|
|
95
|
-
"assistant-cloud": "0.1.
|
|
92
|
+
"@assistant-ui/store": "0.2.12",
|
|
93
|
+
"@assistant-ui/tap": "0.5.12",
|
|
94
|
+
"@assistant-ui/x-buildutils": "0.0.9",
|
|
95
|
+
"assistant-cloud": "0.1.29"
|
|
96
96
|
},
|
|
97
97
|
"publishConfig": {
|
|
98
98
|
"access": "public",
|
package/src/index.ts
CHANGED
|
@@ -9,6 +9,9 @@ export type {
|
|
|
9
9
|
ImageMessagePart,
|
|
10
10
|
FileMessagePart,
|
|
11
11
|
DataMessagePart,
|
|
12
|
+
GenerativeUIMessagePart,
|
|
13
|
+
GenerativeUINode,
|
|
14
|
+
GenerativeUISpec,
|
|
12
15
|
Unstable_AudioMessagePart,
|
|
13
16
|
ToolCallMessagePart,
|
|
14
17
|
ToolCallMessagePartMcpMetadata,
|
|
@@ -167,6 +170,7 @@ export type {
|
|
|
167
170
|
RuntimeCapabilities,
|
|
168
171
|
AddToolResultOptions,
|
|
169
172
|
ResumeToolCallOptions,
|
|
173
|
+
RespondToToolApprovalOptions,
|
|
170
174
|
SubmitFeedbackOptions,
|
|
171
175
|
ThreadSuggestion,
|
|
172
176
|
SpeechState,
|
package/src/react/index.ts
CHANGED
|
@@ -71,6 +71,10 @@ export type {
|
|
|
71
71
|
ReasoningGroupComponent,
|
|
72
72
|
QuoteMessagePartComponent,
|
|
73
73
|
QuoteMessagePartProps,
|
|
74
|
+
GenerativeUIComponentRegistry,
|
|
75
|
+
GenerativeUIMessagePartComponent,
|
|
76
|
+
GenerativeUIMessagePartProps,
|
|
77
|
+
GenerativeUIRenderProps,
|
|
74
78
|
} from "./types/MessagePartComponentTypes";
|
|
75
79
|
export type {
|
|
76
80
|
ToolsState,
|
|
@@ -143,6 +147,14 @@ export { useRemoteThreadListRuntime } from "./runtimes/useRemoteThreadListRuntim
|
|
|
143
147
|
export { useCloudThreadListAdapter } from "./runtimes/cloud/useCloudThreadListAdapter";
|
|
144
148
|
export { useAssistantCloudThreadHistoryAdapter } from "./runtimes/cloud/AssistantCloudThreadHistoryAdapter";
|
|
145
149
|
export { CloudFileAttachmentAdapter } from "./runtimes/cloud/CloudFileAttachmentAdapter";
|
|
150
|
+
export {
|
|
151
|
+
createLocalStorageAdapter,
|
|
152
|
+
type AsyncStorageLike,
|
|
153
|
+
} from "./adapters/LocalStorageThreadListAdapter";
|
|
154
|
+
export {
|
|
155
|
+
createSimpleTitleAdapter,
|
|
156
|
+
type TitleGenerationAdapter,
|
|
157
|
+
} from "./adapters/TitleGenerationAdapter";
|
|
146
158
|
|
|
147
159
|
// AssistantProvider base
|
|
148
160
|
export {
|
|
@@ -166,6 +178,12 @@ export {
|
|
|
166
178
|
type PartState,
|
|
167
179
|
} from "./primitives/message/MessageParts";
|
|
168
180
|
export { MessagePrimitiveGroupedParts } from "./primitives/message/MessageGroupedParts";
|
|
181
|
+
export { groupPartByType } from "./utils/groupParts";
|
|
182
|
+
export {
|
|
183
|
+
MessagePrimitiveGenerativeUI,
|
|
184
|
+
GenerativeUIRender,
|
|
185
|
+
GenerativeUIRenderError,
|
|
186
|
+
} from "./primitives/generativeUI/GenerativeUI";
|
|
169
187
|
export { MessagePrimitiveQuote } from "./primitives/message/MessageQuote";
|
|
170
188
|
export {
|
|
171
189
|
MessagePrimitiveAttachments,
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type ComponentType,
|
|
5
|
+
type FC,
|
|
6
|
+
type ReactNode,
|
|
7
|
+
createElement,
|
|
8
|
+
useMemo,
|
|
9
|
+
} from "react";
|
|
10
|
+
import { useAuiState } from "@assistant-ui/store";
|
|
11
|
+
import type {
|
|
12
|
+
GenerativeUINode,
|
|
13
|
+
GenerativeUISpec,
|
|
14
|
+
} from "../../../types/message";
|
|
15
|
+
import type {
|
|
16
|
+
GenerativeUIComponentRegistry,
|
|
17
|
+
GenerativeUIRenderProps,
|
|
18
|
+
} from "../../types/MessagePartComponentTypes";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Thrown when a generative-ui spec references a component name that is not
|
|
22
|
+
* present in the consumer-provided allowlist. The allowlist is the security
|
|
23
|
+
* boundary in the same-realm rendering path — there is no fallback by
|
|
24
|
+
* default. Pass `Fallback` to opt into a soft-fail UX.
|
|
25
|
+
*/
|
|
26
|
+
export class GenerativeUIRenderError extends Error {
|
|
27
|
+
public readonly componentName: string;
|
|
28
|
+
|
|
29
|
+
constructor(
|
|
30
|
+
componentName: string,
|
|
31
|
+
message = `Component "${componentName}" is not in the generative-ui allowlist.`,
|
|
32
|
+
) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = "GenerativeUIRenderError";
|
|
35
|
+
this.componentName = componentName;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const isObjectNode = (
|
|
40
|
+
node: GenerativeUINode,
|
|
41
|
+
): node is Exclude<GenerativeUINode, string> =>
|
|
42
|
+
typeof node === "object" && node !== null;
|
|
43
|
+
|
|
44
|
+
const renderNode = (
|
|
45
|
+
node: GenerativeUINode | undefined,
|
|
46
|
+
components: GenerativeUIComponentRegistry,
|
|
47
|
+
Fallback: GenerativeUIRenderProps["Fallback"],
|
|
48
|
+
path: string,
|
|
49
|
+
): ReactNode => {
|
|
50
|
+
if (node === undefined || node === null) return null;
|
|
51
|
+
|
|
52
|
+
if (typeof node === "string") return node;
|
|
53
|
+
|
|
54
|
+
if (!isObjectNode(node) || !("component" in node)) {
|
|
55
|
+
if (
|
|
56
|
+
typeof process !== "undefined" &&
|
|
57
|
+
process.env?.NODE_ENV !== "production"
|
|
58
|
+
) {
|
|
59
|
+
console.warn(`[generative-ui] Skipping malformed node at ${path}:`, node);
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const { component, props, children, key } = node;
|
|
65
|
+
|
|
66
|
+
const Resolved = components[component];
|
|
67
|
+
if (!Resolved) {
|
|
68
|
+
if (Fallback) {
|
|
69
|
+
return <Fallback key={key ?? path} component={component} props={props} />;
|
|
70
|
+
}
|
|
71
|
+
throw new GenerativeUIRenderError(component);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const renderedChildren = children?.length
|
|
75
|
+
? children.map((child, i) =>
|
|
76
|
+
renderNode(child, components, Fallback, `${path}/${i}`),
|
|
77
|
+
)
|
|
78
|
+
: undefined;
|
|
79
|
+
|
|
80
|
+
return createElement(
|
|
81
|
+
Resolved,
|
|
82
|
+
{ ...(props ?? {}), key: key ?? path },
|
|
83
|
+
...(renderedChildren ?? []),
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const normalizeRoot = (
|
|
88
|
+
spec: GenerativeUISpec | undefined,
|
|
89
|
+
): readonly GenerativeUINode[] => {
|
|
90
|
+
if (!spec || spec.root === undefined || spec.root === null) return [];
|
|
91
|
+
const root = spec.root;
|
|
92
|
+
return Array.isArray(root)
|
|
93
|
+
? (root as readonly GenerativeUINode[])
|
|
94
|
+
: [root as GenerativeUINode];
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Internal renderer. Resolves a {@link GenerativeUISpec} against the consumer
|
|
99
|
+
* allowlist. Used by `MessagePrimitive.GenerativeUI` and by
|
|
100
|
+
* `MessagePrimitive.Parts` when handling a `generative-ui` part.
|
|
101
|
+
*/
|
|
102
|
+
export const GenerativeUIRender: FC<GenerativeUIRenderProps> = ({
|
|
103
|
+
spec,
|
|
104
|
+
components,
|
|
105
|
+
Fallback,
|
|
106
|
+
}) => {
|
|
107
|
+
const nodes = useMemo(() => normalizeRoot(spec), [spec]);
|
|
108
|
+
|
|
109
|
+
return (
|
|
110
|
+
<>
|
|
111
|
+
{nodes.map((node, i) => renderNode(node, components, Fallback, `${i}`))}
|
|
112
|
+
</>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
GenerativeUIRender.displayName = "GenerativeUIRender";
|
|
117
|
+
|
|
118
|
+
export namespace MessagePrimitiveGenerativeUI {
|
|
119
|
+
export type Props = {
|
|
120
|
+
/**
|
|
121
|
+
* The component allowlist. Keys are the names referenced in the spec
|
|
122
|
+
* (e.g. `"Card"`, `"Button"`), values are the React components.
|
|
123
|
+
*
|
|
124
|
+
* This is the security boundary — any name not in the allowlist is
|
|
125
|
+
* rejected with {@link GenerativeUIRenderError}.
|
|
126
|
+
*/
|
|
127
|
+
components: GenerativeUIComponentRegistry;
|
|
128
|
+
/**
|
|
129
|
+
* Optional override spec. If omitted, the primitive reads the
|
|
130
|
+
* `generative-ui` part from the surrounding `MessagePartProvider` /
|
|
131
|
+
* `PartByIndexProvider` context.
|
|
132
|
+
*/
|
|
133
|
+
spec?: GenerativeUISpec | undefined;
|
|
134
|
+
/** Optional fallback for unknown component names. */
|
|
135
|
+
Fallback?:
|
|
136
|
+
| ComponentType<{ component: string; props?: unknown }>
|
|
137
|
+
| undefined;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Renders a generative-ui message part using a consumer-provided allowlist.
|
|
143
|
+
*
|
|
144
|
+
* The agent emits a `generative-ui` message part containing a JSON spec
|
|
145
|
+
* (see {@link GenerativeUISpec}). This primitive walks the spec and resolves
|
|
146
|
+
* each `component` name against the allowlist. Names not in the allowlist
|
|
147
|
+
* throw {@link GenerativeUIRenderError} unless a `Fallback` is provided.
|
|
148
|
+
*
|
|
149
|
+
* Stream-friendly: a partial spec renders progressively as it is filled in.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```tsx
|
|
153
|
+
* <MessagePrimitive.GenerativeUI
|
|
154
|
+
* components={{ Card: MyCard, Button: MyButton }}
|
|
155
|
+
* />
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export const MessagePrimitiveGenerativeUI: FC<
|
|
159
|
+
MessagePrimitiveGenerativeUI.Props
|
|
160
|
+
> = ({ components, spec, Fallback }) => {
|
|
161
|
+
// Selector reads store state only — combining with the `spec` prop inside
|
|
162
|
+
// the selector closes over a value that may change identity per render and
|
|
163
|
+
// would trigger spurious tearing-detection re-renders in
|
|
164
|
+
// `useSyncExternalStore`.
|
|
165
|
+
const storeSpec = useAuiState((s) => {
|
|
166
|
+
const part = s.part as { type?: string; spec?: GenerativeUISpec };
|
|
167
|
+
return part?.type === "generative-ui" ? part.spec : undefined;
|
|
168
|
+
});
|
|
169
|
+
const partSpec = spec ?? storeSpec;
|
|
170
|
+
|
|
171
|
+
if (!partSpec) return null;
|
|
172
|
+
|
|
173
|
+
return (
|
|
174
|
+
<GenerativeUIRender
|
|
175
|
+
spec={partSpec}
|
|
176
|
+
components={components}
|
|
177
|
+
Fallback={Fallback}
|
|
178
|
+
/>
|
|
179
|
+
);
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
MessagePrimitiveGenerativeUI.displayName = "MessagePrimitive.GenerativeUI";
|
|
@@ -10,9 +10,8 @@ import type {
|
|
|
10
10
|
} from "../../../types/message";
|
|
11
11
|
import {
|
|
12
12
|
buildGroupTree,
|
|
13
|
-
|
|
13
|
+
GROUPBY_MEMO_KEY,
|
|
14
14
|
type GroupNode,
|
|
15
|
-
normalizeGroupKey,
|
|
16
15
|
} from "../../utils/groupParts";
|
|
17
16
|
import { MessagePartChildren, type EnrichedPartState } from "./MessageParts";
|
|
18
17
|
|
|
@@ -47,30 +46,32 @@ export namespace MessagePrimitiveGroupedParts {
|
|
|
47
46
|
|
|
48
47
|
export type Props<TKey extends `group-${string}` = `group-${string}`> = {
|
|
49
48
|
/**
|
|
50
|
-
* Maps each part to
|
|
51
|
-
* prefix coalesce
|
|
52
|
-
*
|
|
53
|
-
* through `children` with `part` set to its {@link EnrichedPartState}.
|
|
49
|
+
* Maps each part to a group-key path. Adjacent parts that share a
|
|
50
|
+
* prefix coalesce into the same group. Return `[]` (or `null`) to
|
|
51
|
+
* leave a part ungrouped.
|
|
54
52
|
*
|
|
55
|
-
*
|
|
56
|
-
* `switch (part.type)` can
|
|
53
|
+
* Group keys must start with `"group-"` so the renderer's
|
|
54
|
+
* `switch (part.type)` can tell groups apart from real part types.
|
|
57
55
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
56
|
+
* **Prefer {@link groupPartByType}** for the common case of mapping by
|
|
57
|
+
* `part.type` — it ships a stable memo fingerprint so the tree
|
|
58
|
+
* survives unrelated re-renders. Use an inline function only when
|
|
59
|
+
* the helper isn't expressive enough (e.g. branching on
|
|
60
|
+
* `part.toolName` or part metadata).
|
|
60
61
|
*
|
|
61
62
|
* @example
|
|
62
|
-
* ```
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
63
|
+
* ```tsx
|
|
64
|
+
* import { groupPartByType } from "@assistant-ui/react";
|
|
65
|
+
*
|
|
66
|
+
* <MessagePrimitive.GroupedParts
|
|
67
|
+
* groupBy={groupPartByType({
|
|
68
|
+
* reasoning: ["group-thought", "group-reasoning"],
|
|
69
|
+
* "tool-call": ["group-thought", "group-tool"],
|
|
70
|
+
* })}
|
|
71
|
+
* >
|
|
67
72
|
* ```
|
|
68
73
|
*/
|
|
69
|
-
readonly groupBy: (
|
|
70
|
-
part: PartState,
|
|
71
|
-
index: number,
|
|
72
|
-
parts: readonly PartState[],
|
|
73
|
-
) => GroupKey<TKey>;
|
|
74
|
+
readonly groupBy: (part: PartState) => readonly TKey[] | null;
|
|
74
75
|
|
|
75
76
|
/**
|
|
76
77
|
* Render function called once per group node and once per leaf part.
|
|
@@ -79,7 +80,7 @@ export namespace MessagePrimitiveGroupedParts {
|
|
|
79
80
|
*
|
|
80
81
|
* Leaf parts receive the same {@link EnrichedPartState} that
|
|
81
82
|
* `<MessagePrimitive.Parts>` would produce (`toolUI`, `addResult`,
|
|
82
|
-
* `resume`, `dataRendererUI`).
|
|
83
|
+
* `resume`, `respondToApproval`, `dataRendererUI`).
|
|
83
84
|
*/
|
|
84
85
|
readonly children: (info: RenderInfo<TKey>) => ReactNode;
|
|
85
86
|
};
|
|
@@ -148,11 +149,10 @@ const renderNode = <TKey extends `group-${string}`>(
|
|
|
148
149
|
* @example
|
|
149
150
|
* ```tsx
|
|
150
151
|
* <MessagePrimitive.GroupedParts
|
|
151
|
-
* groupBy={(
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
* }
|
|
152
|
+
* groupBy={groupPartByType({
|
|
153
|
+
* reasoning: ["group-thought", "group-reasoning"],
|
|
154
|
+
* "tool-call": ["group-thought", "group-tool"],
|
|
155
|
+
* })}
|
|
156
156
|
* >
|
|
157
157
|
* {({ part, children }) => {
|
|
158
158
|
* switch (part.type) {
|
|
@@ -173,12 +173,19 @@ export const MessagePrimitiveGroupedParts = <TKey extends `group-${string}`>({
|
|
|
173
173
|
}: MessagePrimitiveGroupedParts.Props<TKey>): ReactNode => {
|
|
174
174
|
const parts = useAuiState(useShallow((s) => s.message.parts));
|
|
175
175
|
|
|
176
|
+
// Helpers like `groupPartByType` tag the function with `GROUPBY_MEMO_KEY`
|
|
177
|
+
// (a stable string fingerprint of the helper config). When present,
|
|
178
|
+
// memo on `[parts, memoKey]` so the tree survives unrelated renders.
|
|
179
|
+
// For inline `groupBy`, fall back to recomputing each render — O(n)
|
|
180
|
+
// and cheap.
|
|
181
|
+
const memoKey = (groupBy as { [GROUPBY_MEMO_KEY]?: string })[
|
|
182
|
+
GROUPBY_MEMO_KEY
|
|
183
|
+
];
|
|
184
|
+
const memoDep = memoKey ?? groupBy;
|
|
185
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: groupBy is captured via memoDep — either as its identity (no memoKey) or as the helper's memoKey fingerprint. Listing groupBy directly would defeat the helper-tagged memo path.
|
|
176
186
|
const tree = useMemo(
|
|
177
|
-
() =>
|
|
178
|
-
|
|
179
|
-
parts.map((part, i) => normalizeGroupKey(groupBy(part, i, parts))),
|
|
180
|
-
),
|
|
181
|
-
[parts, groupBy],
|
|
187
|
+
() => buildGroupTree(parts.map((part) => groupBy(part) ?? [])),
|
|
188
|
+
[parts, memoDep],
|
|
182
189
|
);
|
|
183
190
|
|
|
184
191
|
return <>{tree.map((node) => renderNode(node, parts, children))}</>;
|
|
@@ -30,8 +30,14 @@ import type {
|
|
|
30
30
|
ReasoningMessagePartComponent,
|
|
31
31
|
ReasoningGroupComponent,
|
|
32
32
|
QuoteMessagePartComponent,
|
|
33
|
+
GenerativeUIComponentRegistry,
|
|
33
34
|
} from "../../types/MessagePartComponentTypes";
|
|
34
|
-
import {
|
|
35
|
+
import { GenerativeUIRender } from "../generativeUI/GenerativeUI";
|
|
36
|
+
import {
|
|
37
|
+
isMcpAppUri,
|
|
38
|
+
type MessagePartStatus,
|
|
39
|
+
type GenerativeUIMessagePart,
|
|
40
|
+
} from "../../../types/message";
|
|
35
41
|
import type { DataRenderersState } from "../../types/scopes/dataRenderers";
|
|
36
42
|
import type { ToolsState } from "../../types/scopes/tools";
|
|
37
43
|
import { useShallow } from "zustand/shallow";
|
|
@@ -174,6 +180,24 @@ export namespace MessagePrimitiveParts {
|
|
|
174
180
|
data?: DataConfig | undefined;
|
|
175
181
|
/** Component for rendering a quoted message reference (from metadata, not parts) */
|
|
176
182
|
Quote?: QuoteMessagePartComponent | undefined;
|
|
183
|
+
/**
|
|
184
|
+
* Configuration for generative-ui part rendering.
|
|
185
|
+
*
|
|
186
|
+
* `components` is the consumer-provided allowlist of React components
|
|
187
|
+
* the agent's JSON spec is permitted to render. Any name not present in
|
|
188
|
+
* the registry is rejected with a typed `GenerativeUIRenderError` —
|
|
189
|
+
* this is the security boundary in the same-realm rendering path.
|
|
190
|
+
*/
|
|
191
|
+
generativeUI?:
|
|
192
|
+
| {
|
|
193
|
+
/** The component allowlist (the security boundary). */
|
|
194
|
+
components: GenerativeUIComponentRegistry;
|
|
195
|
+
/** Optional fallback for unknown component names. */
|
|
196
|
+
Fallback?:
|
|
197
|
+
| ComponentType<{ component: string; props?: unknown }>
|
|
198
|
+
| undefined;
|
|
199
|
+
}
|
|
200
|
+
| undefined;
|
|
177
201
|
};
|
|
178
202
|
|
|
179
203
|
type ToolsConfig =
|
|
@@ -345,6 +369,7 @@ export const MessagePartComponent: FC<MessagePartComponentProps> = ({
|
|
|
345
369
|
Unstable_Audio: Audio = defaultComponents.Unstable_Audio,
|
|
346
370
|
tools = {},
|
|
347
371
|
data,
|
|
372
|
+
generativeUI,
|
|
348
373
|
} = {},
|
|
349
374
|
}) => {
|
|
350
375
|
const aui = useAui();
|
|
@@ -354,8 +379,16 @@ export const MessagePartComponent: FC<MessagePartComponentProps> = ({
|
|
|
354
379
|
if (type === "tool-call") {
|
|
355
380
|
const addResult = aui.part().addToolResult;
|
|
356
381
|
const resume = aui.part().resumeToolCall;
|
|
382
|
+
const respondToApproval = aui.part().respondToToolApproval;
|
|
357
383
|
if ("Override" in tools)
|
|
358
|
-
return
|
|
384
|
+
return (
|
|
385
|
+
<tools.Override
|
|
386
|
+
{...part}
|
|
387
|
+
addResult={addResult}
|
|
388
|
+
resume={resume}
|
|
389
|
+
respondToApproval={respondToApproval}
|
|
390
|
+
/>
|
|
391
|
+
);
|
|
359
392
|
const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
|
|
360
393
|
return (
|
|
361
394
|
<ToolUIDisplay
|
|
@@ -363,6 +396,7 @@ export const MessagePartComponent: FC<MessagePartComponentProps> = ({
|
|
|
363
396
|
Fallback={Tool}
|
|
364
397
|
addResult={addResult}
|
|
365
398
|
resume={resume}
|
|
399
|
+
respondToApproval={respondToApproval}
|
|
366
400
|
/>
|
|
367
401
|
);
|
|
368
402
|
}
|
|
@@ -394,6 +428,29 @@ export const MessagePartComponent: FC<MessagePartComponentProps> = ({
|
|
|
394
428
|
return <DataUIDisplay {...part} Fallback={Data} />;
|
|
395
429
|
}
|
|
396
430
|
|
|
431
|
+
case "generative-ui": {
|
|
432
|
+
if (!generativeUI?.components) {
|
|
433
|
+
if (
|
|
434
|
+
typeof process !== "undefined" &&
|
|
435
|
+
process.env?.NODE_ENV !== "production"
|
|
436
|
+
) {
|
|
437
|
+
console.warn(
|
|
438
|
+
"MessagePrimitive.Parts received a generative-ui part but no " +
|
|
439
|
+
"`components.generativeUI.components` allowlist was provided. " +
|
|
440
|
+
"Pass an allowlist or render with <MessagePrimitive.GenerativeUI />.",
|
|
441
|
+
);
|
|
442
|
+
}
|
|
443
|
+
return null;
|
|
444
|
+
}
|
|
445
|
+
return (
|
|
446
|
+
<GenerativeUIRender
|
|
447
|
+
spec={(part as GenerativeUIMessagePart).spec}
|
|
448
|
+
components={generativeUI.components}
|
|
449
|
+
Fallback={generativeUI.Fallback}
|
|
450
|
+
/>
|
|
451
|
+
);
|
|
452
|
+
}
|
|
453
|
+
|
|
397
454
|
default:
|
|
398
455
|
console.warn(`Unknown message part type: ${type}`);
|
|
399
456
|
return null;
|
|
@@ -429,6 +486,7 @@ export const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props>
|
|
|
429
486
|
prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&
|
|
430
487
|
prev.components?.tools === next.components?.tools &&
|
|
431
488
|
prev.components?.data === next.components?.data &&
|
|
489
|
+
prev.components?.generativeUI === next.components?.generativeUI &&
|
|
432
490
|
prev.components?.ToolGroup === next.components?.ToolGroup &&
|
|
433
491
|
prev.components?.ReasoningGroup === next.components?.ReasoningGroup,
|
|
434
492
|
);
|
|
@@ -543,6 +601,7 @@ const RegisteredToolUI: FC = () => {
|
|
|
543
601
|
{...part}
|
|
544
602
|
addResult={aui.part().addToolResult}
|
|
545
603
|
resume={aui.part().resumeToolCall}
|
|
604
|
+
respondToApproval={aui.part().respondToToolApproval}
|
|
546
605
|
/>
|
|
547
606
|
);
|
|
548
607
|
};
|
|
@@ -608,6 +667,8 @@ export type EnrichedPartState =
|
|
|
608
667
|
addResult: ToolCallMessagePartProps["addResult"];
|
|
609
668
|
/** Resume a tool call waiting for human input. */
|
|
610
669
|
resume: ToolCallMessagePartProps["resume"];
|
|
670
|
+
/** Respond to a server-side tool approval gate. */
|
|
671
|
+
respondToApproval: ToolCallMessagePartProps["respondToApproval"];
|
|
611
672
|
})
|
|
612
673
|
| (Extract<PartState, { type: "data" }> & {
|
|
613
674
|
/** The registered data renderer UI element, or null if none registered. */
|
|
@@ -657,6 +718,7 @@ export const MessagePartChildren: FC<{
|
|
|
657
718
|
toolUI: hasUI ? <RegisteredToolUI /> : null,
|
|
658
719
|
addResult: partMethods.addToolResult,
|
|
659
720
|
resume: partMethods.resumeToolCall,
|
|
721
|
+
respondToApproval: partMethods.respondToToolApproval,
|
|
660
722
|
};
|
|
661
723
|
}
|
|
662
724
|
if (state.type === "data") {
|
|
@@ -128,6 +128,7 @@ export class RemoteThreadListHookInstanceManager extends BaseSubscribable {
|
|
|
128
128
|
|
|
129
129
|
const aui = useAui();
|
|
130
130
|
const initPromiseRef = useRef<Promise<unknown> | undefined>(undefined);
|
|
131
|
+
const hasInitializedRef = useRef(false);
|
|
131
132
|
|
|
132
133
|
useEffect(() => {
|
|
133
134
|
const runtimeCore = threadBinding.getState();
|
|
@@ -139,17 +140,20 @@ export class RemoteThreadListHookInstanceManager extends BaseSubscribable {
|
|
|
139
140
|
}, [threadBinding]);
|
|
140
141
|
|
|
141
142
|
useEffect(() => {
|
|
143
|
+
hasInitializedRef.current = false;
|
|
142
144
|
return runtime.threads.main.unstable_on("initialize", () => {
|
|
145
|
+
if (hasInitializedRef.current) return;
|
|
146
|
+
|
|
143
147
|
const state = aui.threadListItem().getState();
|
|
144
|
-
if (state.status
|
|
145
|
-
|
|
148
|
+
if (state.status !== "new") return;
|
|
149
|
+
hasInitializedRef.current = true;
|
|
146
150
|
|
|
147
|
-
|
|
148
|
-
dispose();
|
|
151
|
+
initPromiseRef.current = aui.threadListItem().initialize();
|
|
149
152
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
+
const dispose = runtime.thread.unstable_on("runEnd", () => {
|
|
154
|
+
dispose();
|
|
155
|
+
aui.threadListItem().generateTitle();
|
|
156
|
+
});
|
|
153
157
|
});
|
|
154
158
|
}, [runtime, aui]);
|
|
155
159
|
|
|
@@ -274,7 +274,10 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
|
274
274
|
return getThreadData(this._state.value, threadIdOrRemoteId);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
public async switchToThread(
|
|
277
|
+
public async switchToThread(
|
|
278
|
+
threadIdOrRemoteId: string,
|
|
279
|
+
options?: { unarchive?: boolean },
|
|
280
|
+
): Promise<void> {
|
|
278
281
|
let data = this.getItemById(threadIdOrRemoteId);
|
|
279
282
|
|
|
280
283
|
if (!data) {
|
|
@@ -343,7 +346,9 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
|
343
346
|
task.then(() => this._notifySubscribers());
|
|
344
347
|
}
|
|
345
348
|
|
|
346
|
-
if (data.status === "archived"
|
|
349
|
+
if (data.status === "archived" && options?.unarchive !== false) {
|
|
350
|
+
await this.unarchive(data.id);
|
|
351
|
+
}
|
|
347
352
|
this._mainThreadId = data.id;
|
|
348
353
|
|
|
349
354
|
this._notifySubscribers();
|
|
@@ -163,7 +163,7 @@ export function auiV0Encode(message: ThreadMessage): AuiV0Message {
|
|
|
163
163
|
};
|
|
164
164
|
|
|
165
165
|
default: {
|
|
166
|
-
const unhandledType: "audio" | "data" = type;
|
|
166
|
+
const unhandledType: "audio" | "data" | "generative-ui" = type;
|
|
167
167
|
throw new Error(
|
|
168
168
|
`Message part type not supported by aui/v0: ${unhandledType}`,
|
|
169
169
|
);
|