@assistant-ui/core 0.2.3 → 0.2.5
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 +95 -90
- package/dist/react/index.js +88 -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 +73 -66
- package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js +64 -60
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +147 -145
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +358 -329
- 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 +29 -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 +119 -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 +147 -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 +222 -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 +65 -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 +22 -19
- package/dist/react/utils/groupParts.d.ts.map +1 -1
- package/dist/react/utils/groupParts.js +62 -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 +29 -27
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.js +61 -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 +278 -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 +89 -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 +149 -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 +41 -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 +100 -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 +53 -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 +212 -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 +80 -59
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +342 -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 +96 -92
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +164 -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 +152 -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 +95 -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 +13 -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 +42 -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 -214
- 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 +3 -0
- package/src/react/index.ts +17 -0
- package/src/react/primitives/generativeUI/GenerativeUI.tsx +182 -0
- package/src/react/primitives/message/MessageGroupedParts.tsx +2 -1
- package/src/react/primitives/message/MessageParts.tsx +70 -15
- 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/types/MessagePartComponentTypes.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 +8 -0
- package/src/runtime/interfaces/thread-list-runtime-core.ts +4 -1
- package/src/runtime/interfaces/thread-runtime-core.ts +6 -5
- package/src/runtime/utils/thread-message-like.ts +11 -3
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +4 -1
- package/src/store/runtime-clients/thread-list-runtime-client.ts +2 -2
- 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/types/index.ts +3 -0
- package/src/types/message.ts +49 -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
|
@@ -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";
|
|
@@ -107,8 +107,9 @@ const renderNode = <TKey extends `group-${string}`>(
|
|
|
107
107
|
render: (info: MessagePrimitiveGroupedParts.RenderInfo<TKey>) => ReactNode,
|
|
108
108
|
): ReactNode => {
|
|
109
109
|
if (node.type === "part") {
|
|
110
|
+
// Key by absolute part index, not structural nodeKey — prevents zombie fiber subscriptions when parts reshape (#4051).
|
|
110
111
|
return (
|
|
111
|
-
<MessagePartChildren key={node.
|
|
112
|
+
<MessagePartChildren key={`part-${node.index}`} index={node.index}>
|
|
112
113
|
{({ part }) => render({ part, children: <PartChildrenSentinel /> })}
|
|
113
114
|
</MessagePartChildren>
|
|
114
115
|
);
|
|
@@ -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();
|
|
@@ -394,6 +419,29 @@ export const MessagePartComponent: FC<MessagePartComponentProps> = ({
|
|
|
394
419
|
return <DataUIDisplay {...part} Fallback={Data} />;
|
|
395
420
|
}
|
|
396
421
|
|
|
422
|
+
case "generative-ui": {
|
|
423
|
+
if (!generativeUI?.components) {
|
|
424
|
+
if (
|
|
425
|
+
typeof process !== "undefined" &&
|
|
426
|
+
process.env?.NODE_ENV !== "production"
|
|
427
|
+
) {
|
|
428
|
+
console.warn(
|
|
429
|
+
"MessagePrimitive.Parts received a generative-ui part but no " +
|
|
430
|
+
"`components.generativeUI.components` allowlist was provided. " +
|
|
431
|
+
"Pass an allowlist or render with <MessagePrimitive.GenerativeUI />.",
|
|
432
|
+
);
|
|
433
|
+
}
|
|
434
|
+
return null;
|
|
435
|
+
}
|
|
436
|
+
return (
|
|
437
|
+
<GenerativeUIRender
|
|
438
|
+
spec={(part as GenerativeUIMessagePart).spec}
|
|
439
|
+
components={generativeUI.components}
|
|
440
|
+
Fallback={generativeUI.Fallback}
|
|
441
|
+
/>
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
|
|
397
445
|
default:
|
|
398
446
|
console.warn(`Unknown message part type: ${type}`);
|
|
399
447
|
return null;
|
|
@@ -429,6 +477,7 @@ export const MessagePrimitivePartByIndex: FC<MessagePrimitivePartByIndex.Props>
|
|
|
429
477
|
prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&
|
|
430
478
|
prev.components?.tools === next.components?.tools &&
|
|
431
479
|
prev.components?.data === next.components?.data &&
|
|
480
|
+
prev.components?.generativeUI === next.components?.generativeUI &&
|
|
432
481
|
prev.components?.ToolGroup === next.components?.ToolGroup &&
|
|
433
482
|
prev.components?.ReasoningGroup === next.components?.ReasoningGroup,
|
|
434
483
|
);
|
|
@@ -775,13 +824,16 @@ const MessagePrimitivePartsCompat: FC<{
|
|
|
775
824
|
>
|
|
776
825
|
{Array.from(
|
|
777
826
|
{ length: range.endIndex - range.startIndex + 1 },
|
|
778
|
-
(_, i) =>
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
827
|
+
(_, i) => {
|
|
828
|
+
const partIndex = range.startIndex + i;
|
|
829
|
+
return (
|
|
830
|
+
<MessagePrimitivePartByIndex
|
|
831
|
+
key={`part-${partIndex}`}
|
|
832
|
+
index={partIndex}
|
|
833
|
+
components={components}
|
|
834
|
+
/>
|
|
835
|
+
);
|
|
836
|
+
},
|
|
785
837
|
)}
|
|
786
838
|
</ToolGroupComponent>
|
|
787
839
|
);
|
|
@@ -797,13 +849,16 @@ const MessagePrimitivePartsCompat: FC<{
|
|
|
797
849
|
>
|
|
798
850
|
{Array.from(
|
|
799
851
|
{ length: range.endIndex - range.startIndex + 1 },
|
|
800
|
-
(_, i) =>
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
852
|
+
(_, i) => {
|
|
853
|
+
const partIndex = range.startIndex + i;
|
|
854
|
+
return (
|
|
855
|
+
<MessagePrimitivePartByIndex
|
|
856
|
+
key={`part-${partIndex}`}
|
|
857
|
+
index={partIndex}
|
|
858
|
+
components={components}
|
|
859
|
+
/>
|
|
860
|
+
);
|
|
861
|
+
},
|
|
807
862
|
)}
|
|
808
863
|
</ReasoningGroupComponent>
|
|
809
864
|
);
|
|
@@ -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
|
);
|
|
@@ -3,6 +3,8 @@ import type {
|
|
|
3
3
|
MessagePartStatus,
|
|
4
4
|
DataMessagePart,
|
|
5
5
|
FileMessagePart,
|
|
6
|
+
GenerativeUIMessagePart,
|
|
7
|
+
GenerativeUISpec,
|
|
6
8
|
ImageMessagePart,
|
|
7
9
|
ReasoningMessagePart,
|
|
8
10
|
SourceMessagePart,
|
|
@@ -79,3 +81,27 @@ export type ToolCallMessagePartComponent<
|
|
|
79
81
|
|
|
80
82
|
export type QuoteMessagePartProps = QuoteInfo;
|
|
81
83
|
export type QuoteMessagePartComponent = ComponentType<QuoteMessagePartProps>;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The consumer-provided allowlist of components a generative-ui spec is
|
|
87
|
+
* permitted to render. Keys are the component names referenced in the spec
|
|
88
|
+
* (e.g. `"Card"`, `"Button"`); values are the React components.
|
|
89
|
+
*
|
|
90
|
+
* This registry is the security boundary in the same-realm rendering path —
|
|
91
|
+
* any name not present in the registry is rejected with a typed error.
|
|
92
|
+
*/
|
|
93
|
+
export type GenerativeUIComponentRegistry = Record<string, ComponentType<any>>;
|
|
94
|
+
|
|
95
|
+
export type GenerativeUIMessagePartProps = MessagePartState &
|
|
96
|
+
GenerativeUIMessagePart;
|
|
97
|
+
export type GenerativeUIMessagePartComponent =
|
|
98
|
+
ComponentType<GenerativeUIMessagePartProps>;
|
|
99
|
+
|
|
100
|
+
export type GenerativeUIRenderProps = {
|
|
101
|
+
/** The JSON spec to render. */
|
|
102
|
+
spec: GenerativeUISpec;
|
|
103
|
+
/** The component allowlist. */
|
|
104
|
+
components: GenerativeUIComponentRegistry;
|
|
105
|
+
/** Optional fallback for unknown component names. */
|
|
106
|
+
Fallback?: ComponentType<{ component: string; props?: unknown }> | undefined;
|
|
107
|
+
};
|
|
@@ -36,7 +36,7 @@ export type ThreadListItemRuntime = {
|
|
|
36
36
|
initialize(): Promise<{ remoteId: string; externalId: string | undefined }>;
|
|
37
37
|
generateTitle(): Promise<void>;
|
|
38
38
|
|
|
39
|
-
switchTo(): Promise<void>;
|
|
39
|
+
switchTo(options?: { unarchive?: boolean }): Promise<void>;
|
|
40
40
|
rename(newTitle: string): Promise<void>;
|
|
41
41
|
archive(): Promise<void>;
|
|
42
42
|
unarchive(): Promise<void>;
|
|
@@ -89,9 +89,9 @@ export class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {
|
|
|
89
89
|
return this._core.getState();
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
public switchTo(): Promise<void> {
|
|
92
|
+
public switchTo(options?: { unarchive?: boolean }): Promise<void> {
|
|
93
93
|
const state = this._core.getState();
|
|
94
|
-
return this._threadListBinding.switchToThread(state.id);
|
|
94
|
+
return this._threadListBinding.switchToThread(state.id, options);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
public rename(newTitle: string): Promise<void> {
|
|
@@ -48,7 +48,10 @@ export type ThreadListRuntime = {
|
|
|
48
48
|
getItemByIndex(idx: number): ThreadListItemRuntime;
|
|
49
49
|
getArchivedItemByIndex(idx: number): ThreadListItemRuntime;
|
|
50
50
|
|
|
51
|
-
switchToThread(
|
|
51
|
+
switchToThread(
|
|
52
|
+
threadId: string,
|
|
53
|
+
options?: { unarchive?: boolean },
|
|
54
|
+
): Promise<void>;
|
|
52
55
|
switchToNewThread(): Promise<void>;
|
|
53
56
|
|
|
54
57
|
getLoadThreadsPromise(): Promise<void>;
|
|
@@ -152,8 +155,11 @@ export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
|
|
152
155
|
this.getArchivedItemByIndex = this.getArchivedItemByIndex.bind(this);
|
|
153
156
|
}
|
|
154
157
|
|
|
155
|
-
public switchToThread(
|
|
156
|
-
|
|
158
|
+
public switchToThread(
|
|
159
|
+
threadId: string,
|
|
160
|
+
options?: { unarchive?: boolean },
|
|
161
|
+
): Promise<void> {
|
|
162
|
+
return this._core.switchToThread(threadId, options);
|
|
157
163
|
}
|
|
158
164
|
|
|
159
165
|
public switchToNewThread(): Promise<void> {
|
|
@@ -478,6 +478,14 @@ export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
|
|
|
478
478
|
}
|
|
479
479
|
subscribers.add(wrapped);
|
|
480
480
|
|
|
481
|
+
// `initialize` latches: replay it (deferred) to subscribers that attach
|
|
482
|
+
// after the thread already initialized, mirroring a BehaviorSubject.
|
|
483
|
+
if (event === "initialize" && this._isInitialized) {
|
|
484
|
+
queueMicrotask(() => {
|
|
485
|
+
if (subscribers.has(wrapped)) wrapped({});
|
|
486
|
+
});
|
|
487
|
+
}
|
|
488
|
+
|
|
481
489
|
return () => {
|
|
482
490
|
this._eventSubscribers.get(event)?.delete(wrapped);
|
|
483
491
|
};
|
|
@@ -32,7 +32,10 @@ export type ThreadListRuntimeCore = {
|
|
|
32
32
|
|
|
33
33
|
getItemById(threadId: string): ThreadListItemCoreState | undefined;
|
|
34
34
|
|
|
35
|
-
switchToThread(
|
|
35
|
+
switchToThread(
|
|
36
|
+
threadId: string,
|
|
37
|
+
options?: { unarchive?: boolean },
|
|
38
|
+
): Promise<void>;
|
|
36
39
|
switchToNewThread(): Promise<void>;
|
|
37
40
|
|
|
38
41
|
getLoadThreadsPromise(): Promise<void>;
|
|
@@ -85,11 +85,12 @@ export type ThreadRuntimeEventPayload = {
|
|
|
85
85
|
*/
|
|
86
86
|
runEnd: Record<string, never>;
|
|
87
87
|
/**
|
|
88
|
-
* @deprecated State-derivable.
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
88
|
+
* @deprecated State-derivable. Observe `state.messages` becoming non-empty
|
|
89
|
+
* via a regular `subscribe` callback instead. This event fires once at the
|
|
90
|
+
* initialization transition; subscribers that attach afterwards receive a
|
|
91
|
+
* one-off replay (on a microtask), by which point the thread already has
|
|
92
|
+
* messages, so handler-visible state differs between live and replayed
|
|
93
|
+
* delivery. Kept for backward compatibility.
|
|
93
94
|
*/
|
|
94
95
|
initialize: Record<string, never>;
|
|
95
96
|
/**
|
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
ThreadSystemMessage,
|
|
15
15
|
FileMessagePart,
|
|
16
16
|
DataMessagePart,
|
|
17
|
+
GenerativeUIMessagePart,
|
|
17
18
|
Unstable_AudioMessagePart,
|
|
18
19
|
} from "../../types/message";
|
|
19
20
|
import type { CompleteAttachment } from "../../types/attachment";
|
|
@@ -39,6 +40,7 @@ export type ThreadMessageLike = {
|
|
|
39
40
|
| ImageMessagePart
|
|
40
41
|
| FileMessagePart
|
|
41
42
|
| DataMessagePart
|
|
43
|
+
| GenerativeUIMessagePart
|
|
42
44
|
| Unstable_AudioMessagePart
|
|
43
45
|
| DataPrefixedPart
|
|
44
46
|
| {
|
|
@@ -105,10 +107,13 @@ export const fromThreadMessageLike = (
|
|
|
105
107
|
image,
|
|
106
108
|
...rest
|
|
107
109
|
}: ImageMessagePart): ImageMessagePart | null => {
|
|
108
|
-
const
|
|
109
|
-
/^data:image\/(png|jpeg|jpg|gif|webp);base64,(.*)$/,
|
|
110
|
+
const dataUri = image.match(
|
|
111
|
+
/^data:image\/(png|jpeg|jpg|gif|webp|svg\+xml);base64,(.*)$/,
|
|
110
112
|
);
|
|
111
|
-
if (
|
|
113
|
+
if (dataUri) {
|
|
114
|
+
return { ...rest, image };
|
|
115
|
+
}
|
|
116
|
+
if (/^(https:\/\/|blob:)/.test(image)) {
|
|
112
117
|
return { ...rest, image };
|
|
113
118
|
}
|
|
114
119
|
console.warn(`Invalid image data format detected`);
|
|
@@ -148,6 +153,9 @@ export const fromThreadMessageLike = (
|
|
|
148
153
|
case "data":
|
|
149
154
|
return part;
|
|
150
155
|
|
|
156
|
+
case "generative-ui":
|
|
157
|
+
return part;
|
|
158
|
+
|
|
151
159
|
case "tool-call": {
|
|
152
160
|
const { parentId, messages, ...basePart } = part;
|
|
153
161
|
const commonProps = {
|
|
@@ -168,7 +168,10 @@ export class ExternalStoreThreadListRuntimeCore
|
|
|
168
168
|
this._notifySubscribers();
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
public async switchToThread(
|
|
171
|
+
public async switchToThread(
|
|
172
|
+
threadId: string,
|
|
173
|
+
_options?: { unarchive?: boolean },
|
|
174
|
+
): Promise<void> {
|
|
172
175
|
if (this._mainThreadId === threadId) return;
|
|
173
176
|
const onSwitchToThread = this.adapter.onSwitchToThread;
|
|
174
177
|
if (!onSwitchToThread)
|
|
@@ -81,8 +81,8 @@ export const ThreadListClient = resource(
|
|
|
81
81
|
: state.threadIds[index]!;
|
|
82
82
|
return threadItems.get({ key: id });
|
|
83
83
|
},
|
|
84
|
-
switchToThread: async (threadId) => {
|
|
85
|
-
await runtime.switchToThread(threadId);
|
|
84
|
+
switchToThread: async (threadId, options) => {
|
|
85
|
+
await runtime.switchToThread(threadId, options);
|
|
86
86
|
},
|
|
87
87
|
switchToNewThread: async () => {
|
|
88
88
|
await runtime.switchToNewThread();
|
|
@@ -12,7 +12,7 @@ export type ThreadListItemState = {
|
|
|
12
12
|
|
|
13
13
|
export type ThreadListItemMethods = {
|
|
14
14
|
getState(): ThreadListItemState;
|
|
15
|
-
switchTo(): void;
|
|
15
|
+
switchTo(options?: { unarchive?: boolean }): void;
|
|
16
16
|
rename(newTitle: string): void;
|
|
17
17
|
archive(): void;
|
|
18
18
|
unarchive(): void;
|
|
@@ -19,7 +19,7 @@ export type ThreadsState = {
|
|
|
19
19
|
|
|
20
20
|
export type ThreadsMethods = {
|
|
21
21
|
getState(): ThreadsState;
|
|
22
|
-
switchToThread(threadId: string): void;
|
|
22
|
+
switchToThread(threadId: string, options?: { unarchive?: boolean }): void;
|
|
23
23
|
switchToNewThread(): void;
|
|
24
24
|
item(
|
|
25
25
|
threadIdOrOptions:
|