@assistant-ui/react 0.10.50 → 0.11.0
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/api/AttachmentRuntime.d.ts.map +1 -1
- package/dist/api/AttachmentRuntime.js +1 -0
- package/dist/api/AttachmentRuntime.js.map +1 -1
- package/dist/api/ComposerRuntime.d.ts +5 -2
- package/dist/api/ComposerRuntime.d.ts.map +1 -1
- package/dist/api/ComposerRuntime.js +4 -6
- package/dist/api/ComposerRuntime.js.map +1 -1
- package/dist/api/MessagePartRuntime.d.ts.map +1 -1
- package/dist/api/MessagePartRuntime.js +1 -0
- package/dist/api/MessagePartRuntime.js.map +1 -1
- package/dist/api/MessageRuntime.d.ts.map +1 -1
- package/dist/api/MessageRuntime.js +1 -0
- package/dist/api/MessageRuntime.js.map +1 -1
- package/dist/api/ThreadListItemRuntime.d.ts.map +1 -1
- package/dist/api/ThreadListItemRuntime.js +5 -0
- package/dist/api/ThreadListItemRuntime.js.map +1 -1
- package/dist/api/ThreadListRuntime.d.ts +2 -3
- package/dist/api/ThreadListRuntime.d.ts.map +1 -1
- package/dist/api/ThreadListRuntime.js +6 -7
- package/dist/api/ThreadListRuntime.js.map +1 -1
- package/dist/api/ThreadRuntime.d.ts +6 -6
- package/dist/api/ThreadRuntime.d.ts.map +1 -1
- package/dist/api/ThreadRuntime.js +5 -4
- package/dist/api/ThreadRuntime.js.map +1 -1
- package/dist/client/AssistantRuntimeClient.d.ts +86 -0
- package/dist/client/AssistantRuntimeClient.d.ts.map +1 -0
- package/dist/client/AssistantRuntimeClient.js +138 -0
- package/dist/client/AssistantRuntimeClient.js.map +1 -0
- package/dist/client/AttachmentClient.d.ts +6 -0
- package/dist/client/AttachmentClient.d.ts.map +1 -0
- package/dist/client/AttachmentClient.js +1 -0
- package/dist/client/AttachmentClient.js.map +1 -0
- package/dist/client/ComposerClient.d.ts +42 -0
- package/dist/client/ComposerClient.d.ts.map +1 -0
- package/dist/client/ComposerClient.js +76 -0
- package/dist/client/ComposerClient.js.map +1 -0
- package/dist/client/EventManagerClient.d.ts +9 -0
- package/dist/client/EventManagerClient.d.ts.map +1 -0
- package/dist/client/EventManagerClient.js +40 -0
- package/dist/client/EventManagerClient.js.map +1 -0
- package/dist/client/MessageClient.d.ts +67 -0
- package/dist/client/MessageClient.d.ts.map +1 -0
- package/dist/client/MessageClient.js +108 -0
- package/dist/client/MessageClient.js.map +1 -0
- package/dist/client/MessagePartClient.d.ts +21 -0
- package/dist/client/MessagePartClient.d.ts.map +1 -0
- package/dist/client/MessagePartClient.js +25 -0
- package/dist/client/MessagePartClient.js.map +1 -0
- package/dist/client/ThreadClient.d.ts +111 -0
- package/dist/client/ThreadClient.d.ts.map +1 -0
- package/dist/client/ThreadClient.js +126 -0
- package/dist/client/ThreadClient.js.map +1 -0
- package/dist/client/ThreadListClient.d.ts +33 -0
- package/dist/client/ThreadListClient.d.ts.map +1 -0
- package/dist/client/ThreadListClient.js +87 -0
- package/dist/client/ThreadListClient.js.map +1 -0
- package/dist/client/ThreadListItemClient.d.ts +32 -0
- package/dist/client/ThreadListItemClient.d.ts.map +1 -0
- package/dist/client/ThreadListItemClient.js +53 -0
- package/dist/client/ThreadListItemClient.js.map +1 -0
- package/dist/client/util-hooks/tapLookupResources.d.ts +16 -0
- package/dist/client/util-hooks/tapLookupResources.d.ts.map +1 -0
- package/dist/client/util-hooks/tapLookupResources.js +21 -0
- package/dist/client/util-hooks/tapLookupResources.js.map +1 -0
- package/dist/client/util-hooks/tapSubscribable.d.ts +3 -0
- package/dist/client/util-hooks/tapSubscribable.d.ts.map +1 -0
- package/dist/client/util-hooks/tapSubscribable.js +16 -0
- package/dist/client/util-hooks/tapSubscribable.js.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +21 -12
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/context/providers/AssistantRuntimeProvider.d.ts +3 -3
- package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/context/providers/AssistantRuntimeProvider.js +14 -42
- package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
- package/dist/context/providers/AttachmentProvider.d.ts +8 -0
- package/dist/context/providers/AttachmentProvider.d.ts.map +1 -0
- package/dist/context/providers/AttachmentProvider.js +41 -0
- package/dist/context/providers/AttachmentProvider.js.map +1 -0
- package/dist/context/providers/MessageProvider.d.ts +5 -0
- package/dist/context/providers/MessageProvider.d.ts.map +1 -0
- package/dist/context/providers/MessageProvider.js +47 -0
- package/dist/context/providers/MessageProvider.js.map +1 -0
- package/dist/context/providers/PartProvider.d.ts +5 -0
- package/dist/context/providers/PartProvider.d.ts.map +1 -0
- package/dist/context/providers/PartProvider.js +27 -0
- package/dist/context/providers/PartProvider.js.map +1 -0
- package/dist/context/providers/TextMessagePartProvider.d.ts +5 -8
- package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/context/providers/TextMessagePartProvider.js +42 -53
- package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
- package/dist/context/providers/ThreadListItemProvider.d.ts +9 -0
- package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -0
- package/dist/context/providers/ThreadListItemProvider.js +65 -0
- package/dist/context/providers/ThreadListItemProvider.js.map +1 -0
- package/dist/context/providers/index.d.ts +4 -1
- package/dist/context/providers/index.d.ts.map +1 -1
- package/dist/context/providers/index.js +17 -3
- package/dist/context/providers/index.js.map +1 -1
- package/dist/context/react/AssistantApiContext.d.ts +112 -0
- package/dist/context/react/AssistantApiContext.d.ts.map +1 -0
- package/dist/context/react/AssistantApiContext.js +197 -0
- package/dist/context/react/AssistantApiContext.js.map +1 -0
- package/dist/context/react/index.d.ts +9 -12
- package/dist/context/react/index.d.ts.map +1 -1
- package/dist/context/react/index.js +38 -33
- package/dist/context/react/index.js.map +1 -1
- package/dist/context/react/legacy/AssistantContext.d.ts +58 -0
- package/dist/context/react/legacy/AssistantContext.d.ts.map +1 -0
- package/dist/context/react/legacy/AssistantContext.js +20 -0
- package/dist/context/react/legacy/AssistantContext.js.map +1 -0
- package/dist/context/react/{AttachmentContext.d.ts → legacy/AttachmentContext.d.ts} +133 -139
- package/dist/context/react/legacy/AttachmentContext.d.ts.map +1 -0
- package/dist/context/react/{AttachmentContext.js → legacy/AttachmentContext.js} +9 -15
- package/dist/context/react/legacy/AttachmentContext.js.map +1 -0
- package/dist/context/react/{ComposerContext.d.ts → legacy/ComposerContext.d.ts} +12 -12
- package/dist/context/react/legacy/ComposerContext.d.ts.map +1 -0
- package/dist/context/react/legacy/ComposerContext.js +19 -0
- package/dist/context/react/legacy/ComposerContext.js.map +1 -0
- package/dist/context/react/{MessageContext.d.ts → legacy/MessageContext.d.ts} +23 -47
- package/dist/context/react/legacy/MessageContext.d.ts.map +1 -0
- package/dist/context/react/legacy/MessageContext.js +24 -0
- package/dist/context/react/legacy/MessageContext.js.map +1 -0
- package/dist/context/react/legacy/MessagePartContext.d.ts +35 -0
- package/dist/context/react/legacy/MessagePartContext.d.ts.map +1 -0
- package/dist/context/react/legacy/MessagePartContext.js +19 -0
- package/dist/context/react/legacy/MessagePartContext.js.map +1 -0
- package/dist/context/react/{ThreadContext.d.ts → legacy/ThreadContext.d.ts} +24 -30
- package/dist/context/react/legacy/ThreadContext.d.ts.map +1 -0
- package/dist/context/react/legacy/ThreadContext.js +33 -0
- package/dist/context/react/legacy/ThreadContext.js.map +1 -0
- package/dist/context/react/legacy/ThreadListItemContext.d.ts +35 -0
- package/dist/context/react/legacy/ThreadListItemContext.d.ts.map +1 -0
- package/dist/context/react/legacy/ThreadListItemContext.js +21 -0
- package/dist/context/react/legacy/ThreadListItemContext.js.map +1 -0
- package/dist/context/stores/index.d.ts +0 -2
- package/dist/context/stores/index.d.ts.map +1 -1
- package/dist/hooks/useAssistantEvent.d.ts +3 -0
- package/dist/hooks/useAssistantEvent.d.ts.map +1 -0
- package/dist/hooks/useAssistantEvent.js +22 -0
- package/dist/hooks/useAssistantEvent.js.map +1 -0
- package/dist/model-context/makeAssistantVisible.js +4 -4
- package/dist/model-context/makeAssistantVisible.js.map +1 -1
- package/dist/model-context/useAssistantInstructions.js +4 -4
- package/dist/model-context/useAssistantInstructions.js.map +1 -1
- package/dist/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/model-context/useAssistantTool.js +7 -10
- package/dist/model-context/useAssistantTool.js.map +1 -1
- package/dist/model-context/useAssistantToolUI.js +5 -5
- package/dist/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.js +12 -17
- package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.js +5 -5
- package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +6 -7
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +6 -6
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.js +6 -10
- package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.js +6 -6
- package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js +5 -8
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
- package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
- package/dist/primitives/actionBar/useActionBarFloatStatus.js +10 -21
- package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalRoot.js +4 -4
- package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
- package/dist/primitives/attachment/AttachmentName.js +2 -2
- package/dist/primitives/attachment/AttachmentName.js.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.js +4 -4
- package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.js +5 -2
- package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerCount.js +2 -2
- package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.js +7 -8
- package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNumber.js +2 -2
- package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.js +7 -8
- package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.js +6 -6
- package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
- package/dist/primitives/composer/ComposerAttachmentDropzone.js +4 -4
- package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
- package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAttachments.js +11 -13
- package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
- package/dist/primitives/composer/ComposerCancel.js +5 -5
- package/dist/primitives/composer/ComposerCancel.js.map +1 -1
- package/dist/primitives/composer/ComposerIf.js +2 -2
- package/dist/primitives/composer/ComposerIf.js.map +1 -1
- package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerInput.js +22 -32
- package/dist/primitives/composer/ComposerInput.js.map +1 -1
- package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerSend.js +6 -10
- package/dist/primitives/composer/ComposerSend.js.map +1 -1
- package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
- package/dist/primitives/error/ErrorMessage.js +3 -3
- package/dist/primitives/error/ErrorMessage.js.map +1 -1
- package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/primitives/message/MessageAttachments.js +9 -11
- package/dist/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/primitives/message/MessageError.d.ts.map +1 -1
- package/dist/primitives/message/MessageError.js +3 -3
- package/dist/primitives/message/MessageError.js.map +1 -1
- package/dist/primitives/message/MessageIf.d.ts.map +1 -1
- package/dist/primitives/message/MessageIf.js +28 -34
- package/dist/primitives/message/MessageIf.js.map +1 -1
- package/dist/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/primitives/message/MessageParts.js +25 -27
- package/dist/primitives/message/MessageParts.js.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.js +24 -26
- package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
- package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
- package/dist/primitives/message/MessageRoot.js +8 -7
- package/dist/primitives/message/MessageRoot.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
- package/dist/primitives/messagePart/MessagePartInProgress.js +4 -2
- package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartFile.js +4 -4
- package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartImage.js +4 -4
- package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartReasoning.js +4 -4
- package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartSource.js +4 -4
- package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartText.js +4 -4
- package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
- package/dist/primitives/thread/ThreadEmpty.js +2 -2
- package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
- package/dist/primitives/thread/ThreadIf.js +2 -2
- package/dist/primitives/thread/ThreadIf.js.map +1 -1
- package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadMessages.js +9 -12
- package/dist/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.js +8 -8
- package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
- package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
- package/dist/primitives/thread/useThreadViewportAutoScroll.js +3 -6
- package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.js +7 -10
- package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.d.ts +1 -3
- package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.js +7 -11
- package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemArchive.js +4 -4
- package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemDelete.js +6 -5
- package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.js +4 -2
- package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTitle.js +2 -2
- package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTrigger.js +6 -5
- package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +6 -5
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
- package/dist/runtimes/adapters/attachment/index.js.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/composer/BaseComposerRuntimeCore.js +3 -3
- package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.js +5 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/core/ComposerRuntimeCore.d.ts +2 -2
- package/dist/runtimes/core/ComposerRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +5 -5
- package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +5 -2
- package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +6 -4
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +42 -7
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +3 -0
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/createMessageConverter.d.ts +2 -2
- package/dist/runtimes/external-store/createMessageConverter.d.ts.map +1 -1
- package/dist/runtimes/external-store/createMessageConverter.js +9 -6
- package/dist/runtimes/external-store/createMessageConverter.js.map +1 -1
- package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +10 -1
- package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadListRuntimeCore.js +15 -2
- package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +3 -5
- package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js +13 -19
- package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +11 -7
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +41 -35
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/tests/setup.js +8 -8
- package/dist/tests/setup.js.map +1 -1
- package/dist/types/EventTypes.d.ts +49 -0
- package/dist/types/EventTypes.d.ts.map +1 -0
- package/dist/types/EventTypes.js +22 -0
- package/dist/types/EventTypes.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/smooth/SmoothContext.js +3 -3
- package/dist/utils/smooth/SmoothContext.js.map +1 -1
- package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
- package/dist/utils/smooth/useSmooth.js +2 -5
- package/dist/utils/smooth/useSmooth.js.map +1 -1
- package/dist/utils/tap-store/index.d.ts +3 -0
- package/dist/utils/tap-store/index.d.ts.map +1 -0
- package/dist/utils/tap-store/index.js +8 -0
- package/dist/utils/tap-store/index.js.map +1 -0
- package/dist/utils/tap-store/store.d.ts +21 -0
- package/dist/utils/tap-store/store.d.ts.map +1 -0
- package/dist/utils/tap-store/store.js +29 -0
- package/dist/utils/tap-store/store.js.map +1 -0
- package/dist/utils/tap-store/tap-store-api.d.ts +8 -0
- package/dist/utils/tap-store/tap-store-api.d.ts.map +1 -0
- package/dist/utils/tap-store/tap-store-api.js +57 -0
- package/dist/utils/tap-store/tap-store-api.js.map +1 -0
- package/dist/utils/useToolArgsFieldStatus.js +6 -6
- package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
- package/package.json +2 -1
- package/src/api/AttachmentRuntime.ts +3 -1
- package/src/api/ComposerRuntime.ts +16 -9
- package/src/api/MessagePartRuntime.ts +3 -1
- package/src/api/MessageRuntime.ts +2 -0
- package/src/api/ThreadListItemRuntime.ts +11 -1
- package/src/api/ThreadListRuntime.ts +9 -9
- package/src/api/ThreadRuntime.ts +9 -7
- package/src/client/AssistantRuntimeClient.ts +197 -0
- package/src/client/AttachmentClient.ts +11 -0
- package/src/client/ComposerClient.ts +133 -0
- package/src/client/EventManagerClient.ts +63 -0
- package/src/client/MessageClient.ts +196 -0
- package/src/client/MessagePartClient.ts +53 -0
- package/src/client/ThreadClient.ts +280 -0
- package/src/client/ThreadListClient.ts +135 -0
- package/src/client/ThreadListItemClient.ts +88 -0
- package/src/client/util-hooks/tapLookupResources.ts +31 -0
- package/src/client/util-hooks/tapSubscribable.ts +16 -0
- package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +24 -13
- package/src/context/providers/AssistantRuntimeProvider.tsx +27 -51
- package/src/context/providers/AttachmentProvider.tsx +48 -0
- package/src/context/providers/MessageProvider.tsx +57 -0
- package/src/context/providers/PartProvider.tsx +28 -0
- package/src/context/providers/TextMessagePartProvider.tsx +53 -78
- package/src/context/providers/ThreadListItemProvider.tsx +84 -0
- package/src/context/providers/index.ts +10 -3
- package/src/context/react/AssistantApiContext.tsx +392 -0
- package/src/context/react/index.ts +30 -37
- package/src/context/react/{AssistantContext.ts → legacy/AssistantContext.ts} +12 -31
- package/src/context/react/{AttachmentContext.ts → legacy/AttachmentContext.ts} +11 -22
- package/src/context/react/{ComposerContext.ts → legacy/ComposerContext.ts} +11 -9
- package/src/context/react/{MessageContext.ts → legacy/MessageContext.ts} +12 -29
- package/src/context/react/legacy/MessagePartContext.ts +24 -0
- package/src/context/react/{ThreadContext.ts → legacy/ThreadContext.ts} +15 -25
- package/src/context/react/legacy/ThreadListItemContext.ts +28 -0
- package/src/context/stores/index.ts +0 -2
- package/src/hooks/useAssistantEvent.ts +24 -0
- package/src/model-context/makeAssistantVisible.tsx +4 -4
- package/src/model-context/useAssistantInstructions.tsx +4 -4
- package/src/model-context/useAssistantTool.tsx +7 -12
- package/src/model-context/useAssistantToolUI.tsx +5 -5
- package/src/primitives/actionBar/ActionBarCopy.tsx +14 -20
- package/src/primitives/actionBar/ActionBarEdit.tsx +5 -5
- package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +6 -7
- package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +6 -6
- package/src/primitives/actionBar/ActionBarReload.tsx +9 -10
- package/src/primitives/actionBar/ActionBarSpeak.tsx +7 -7
- package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +5 -8
- package/src/primitives/actionBar/useActionBarFloatStatus.tsx +22 -34
- package/src/primitives/assistantModal/AssistantModalRoot.tsx +4 -4
- package/src/primitives/attachment/AttachmentName.tsx +2 -2
- package/src/primitives/attachment/AttachmentRemove.tsx +4 -4
- package/src/primitives/attachment/AttachmentThumb.tsx +5 -2
- package/src/primitives/branchPicker/BranchPickerCount.tsx +2 -2
- package/src/primitives/branchPicker/BranchPickerNext.tsx +7 -8
- package/src/primitives/branchPicker/BranchPickerNumber.tsx +2 -2
- package/src/primitives/branchPicker/BranchPickerPrevious.tsx +7 -8
- package/src/primitives/composer/ComposerAddAttachment.tsx +6 -6
- package/src/primitives/composer/ComposerAttachmentDropzone.tsx +4 -4
- package/src/primitives/composer/ComposerAttachments.tsx +12 -15
- package/src/primitives/composer/ComposerCancel.tsx +5 -5
- package/src/primitives/composer/ComposerIf.tsx +2 -2
- package/src/primitives/composer/ComposerInput.tsx +32 -32
- package/src/primitives/composer/ComposerSend.tsx +6 -10
- package/src/primitives/error/ErrorMessage.tsx +5 -4
- package/src/primitives/message/MessageAttachments.tsx +10 -13
- package/src/primitives/message/MessageError.tsx +5 -3
- package/src/primitives/message/MessageIf.tsx +43 -52
- package/src/primitives/message/MessageParts.tsx +26 -31
- package/src/primitives/message/MessagePartsGrouped.tsx +25 -30
- package/src/primitives/message/MessageRoot.tsx +10 -8
- package/src/primitives/messagePart/MessagePartInProgress.tsx +4 -2
- package/src/primitives/messagePart/useMessagePartFile.tsx +4 -4
- package/src/primitives/messagePart/useMessagePartImage.tsx +4 -4
- package/src/primitives/messagePart/useMessagePartReasoning.tsx +4 -4
- package/src/primitives/messagePart/useMessagePartSource.tsx +4 -4
- package/src/primitives/messagePart/useMessagePartText.tsx +4 -4
- package/src/primitives/thread/ThreadEmpty.tsx +2 -2
- package/src/primitives/thread/ThreadIf.tsx +2 -2
- package/src/primitives/thread/ThreadMessages.tsx +10 -14
- package/src/primitives/thread/ThreadSuggestion.tsx +8 -8
- package/src/primitives/thread/useThreadViewportAutoScroll.tsx +3 -6
- package/src/primitives/threadList/ThreadListItems.tsx +8 -15
- package/src/primitives/threadList/ThreadListNew.tsx +9 -13
- package/src/primitives/threadListItem/ThreadListItemArchive.ts +4 -4
- package/src/primitives/threadListItem/ThreadListItemDelete.ts +6 -5
- package/src/primitives/threadListItem/ThreadListItemRoot.tsx +4 -2
- package/src/primitives/threadListItem/ThreadListItemTitle.tsx +2 -2
- package/src/primitives/threadListItem/ThreadListItemTrigger.ts +6 -5
- package/src/primitives/threadListItem/ThreadListItemUnarchive.ts +6 -5
- package/src/runtimes/adapters/attachment/index.ts +1 -1
- package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +3 -3
- package/src/runtimes/core/BaseThreadRuntimeCore.tsx +5 -1
- package/src/runtimes/core/ComposerRuntimeCore.tsx +2 -2
- package/src/runtimes/core/ThreadListRuntimeCore.tsx +6 -4
- package/src/runtimes/external-store/ExternalStoreAdapter.tsx +5 -2
- package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +53 -12
- package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +4 -0
- package/src/runtimes/external-store/createMessageConverter.tsx +10 -6
- package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +16 -2
- package/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx +3 -6
- package/src/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +14 -19
- package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +50 -43
- package/src/types/EventTypes.ts +92 -0
- package/src/types/index.ts +6 -0
- package/src/utils/smooth/SmoothContext.tsx +3 -3
- package/src/utils/smooth/useSmooth.tsx +2 -5
- package/src/utils/tap-store/index.ts +2 -0
- package/src/utils/tap-store/store.ts +51 -0
- package/src/utils/tap-store/tap-store-api.ts +75 -0
- package/src/utils/useToolArgsFieldStatus.tsx +6 -6
- package/dist/context/providers/AttachmentRuntimeProvider.d.ts +0 -9
- package/dist/context/providers/AttachmentRuntimeProvider.d.ts.map +0 -1
- package/dist/context/providers/AttachmentRuntimeProvider.js +0 -33
- package/dist/context/providers/AttachmentRuntimeProvider.js.map +0 -1
- package/dist/context/providers/MessagePartRuntimeProvider.d.ts +0 -9
- package/dist/context/providers/MessagePartRuntimeProvider.d.ts.map +0 -1
- package/dist/context/providers/MessagePartRuntimeProvider.js +0 -28
- package/dist/context/providers/MessagePartRuntimeProvider.js.map +0 -1
- package/dist/context/providers/MessageRuntimeProvider.d.ts +0 -9
- package/dist/context/providers/MessageRuntimeProvider.d.ts.map +0 -1
- package/dist/context/providers/MessageRuntimeProvider.js +0 -37
- package/dist/context/providers/MessageRuntimeProvider.js.map +0 -1
- package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +0 -9
- package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +0 -1
- package/dist/context/providers/ThreadListItemRuntimeProvider.js +0 -30
- package/dist/context/providers/ThreadListItemRuntimeProvider.js.map +0 -1
- package/dist/context/providers/ThreadRuntimeProvider.d.ts +0 -10
- package/dist/context/providers/ThreadRuntimeProvider.d.ts.map +0 -1
- package/dist/context/providers/ThreadRuntimeProvider.js +0 -33
- package/dist/context/providers/ThreadRuntimeProvider.js.map +0 -1
- package/dist/context/react/AssistantContext.d.ts +0 -85
- package/dist/context/react/AssistantContext.d.ts.map +0 -1
- package/dist/context/react/AssistantContext.js +0 -34
- package/dist/context/react/AssistantContext.js.map +0 -1
- package/dist/context/react/AttachmentContext.d.ts.map +0 -1
- package/dist/context/react/AttachmentContext.js.map +0 -1
- package/dist/context/react/ComposerContext.d.ts.map +0 -1
- package/dist/context/react/ComposerContext.js +0 -17
- package/dist/context/react/ComposerContext.js.map +0 -1
- package/dist/context/react/MessageContext.d.ts.map +0 -1
- package/dist/context/react/MessageContext.js +0 -35
- package/dist/context/react/MessageContext.js.map +0 -1
- package/dist/context/react/MessagePartContext.d.ts +0 -41
- package/dist/context/react/MessagePartContext.d.ts.map +0 -1
- package/dist/context/react/MessagePartContext.js +0 -25
- package/dist/context/react/MessagePartContext.js.map +0 -1
- package/dist/context/react/ThreadContext.d.ts.map +0 -1
- package/dist/context/react/ThreadContext.js +0 -38
- package/dist/context/react/ThreadContext.js.map +0 -1
- package/dist/context/react/ThreadListItemContext.d.ts +0 -41
- package/dist/context/react/ThreadListItemContext.d.ts.map +0 -1
- package/dist/context/react/ThreadListItemContext.js +0 -25
- package/dist/context/react/ThreadListItemContext.js.map +0 -1
- package/dist/context/stores/AssistantToolUIs.d.ts +0 -14
- package/dist/context/stores/AssistantToolUIs.d.ts.map +0 -1
- package/dist/context/stores/AssistantToolUIs.js +0 -35
- package/dist/context/stores/AssistantToolUIs.js.map +0 -1
- package/dist/context/stores/MessageUtils.d.ts +0 -8
- package/dist/context/stores/MessageUtils.d.ts.map +0 -1
- package/dist/context/stores/MessageUtils.js +0 -18
- package/dist/context/stores/MessageUtils.js.map +0 -1
- package/dist/utils/combined/createCombinedStore.d.ts +0 -8
- package/dist/utils/combined/createCombinedStore.d.ts.map +0 -1
- package/dist/utils/combined/createCombinedStore.js +0 -22
- package/dist/utils/combined/createCombinedStore.js.map +0 -1
- package/dist/utils/combined/useCombinedStore.d.ts +0 -3
- package/dist/utils/combined/useCombinedStore.d.ts.map +0 -1
- package/dist/utils/combined/useCombinedStore.js +0 -15
- package/dist/utils/combined/useCombinedStore.js.map +0 -1
- package/src/context/providers/AttachmentRuntimeProvider.tsx +0 -44
- package/src/context/providers/MessagePartRuntimeProvider.tsx +0 -42
- package/src/context/providers/MessageRuntimeProvider.tsx +0 -50
- package/src/context/providers/ThreadListItemRuntimeProvider.tsx +0 -43
- package/src/context/providers/ThreadRuntimeProvider.tsx +0 -53
- package/src/context/react/MessagePartContext.ts +0 -37
- package/src/context/react/ThreadListItemContext.ts +0 -38
- package/src/context/stores/AssistantToolUIs.ts +0 -51
- package/src/context/stores/MessageUtils.ts +0 -23
- package/src/utils/combined/createCombinedStore.ts +0 -31
- package/src/utils/combined/useCombinedStore.ts +0 -17
@@ -0,0 +1,84 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
import { useMemo, type FC, type PropsWithChildren } from "react";
|
4
|
+
import {
|
5
|
+
AssistantApi,
|
6
|
+
AssistantApiProvider,
|
7
|
+
useAssistantApi,
|
8
|
+
createAssistantApiField,
|
9
|
+
} from "../react/AssistantApiContext";
|
10
|
+
import { AssistantEventSelector, AssistantEvents } from "../../types";
|
11
|
+
import { Unsubscribe } from "@assistant-ui/tap";
|
12
|
+
import {
|
13
|
+
checkEventScope,
|
14
|
+
normalizeEventSelector,
|
15
|
+
} from "../../types/EventTypes";
|
16
|
+
|
17
|
+
export const ThreadListItemByIndexProvider: FC<
|
18
|
+
PropsWithChildren<{
|
19
|
+
index: number;
|
20
|
+
archived: boolean;
|
21
|
+
}>
|
22
|
+
> = ({ index, archived, children }) => {
|
23
|
+
const api = useAssistantApi();
|
24
|
+
|
25
|
+
const api2 = useMemo(() => {
|
26
|
+
const getItem = () => api.threads().item({ index, archived });
|
27
|
+
return {
|
28
|
+
threadListItem: createAssistantApiField({
|
29
|
+
source: "threads",
|
30
|
+
query: { type: "index", index, archived },
|
31
|
+
get: () => getItem(),
|
32
|
+
}),
|
33
|
+
on<TEvent extends keyof AssistantEvents>(
|
34
|
+
selector: AssistantEventSelector<TEvent>,
|
35
|
+
callback: (e: AssistantEvents[TEvent]) => void,
|
36
|
+
): Unsubscribe {
|
37
|
+
const { event, scope } = normalizeEventSelector(selector);
|
38
|
+
if (scope !== "thread-list-item") return api.on(selector, callback);
|
39
|
+
|
40
|
+
return api.on({ scope: "*", event }, (e: AssistantEvents[TEvent]) => {
|
41
|
+
if (e.threadId === getItem().getState().id) {
|
42
|
+
callback(e);
|
43
|
+
}
|
44
|
+
});
|
45
|
+
},
|
46
|
+
} satisfies Partial<AssistantApi>;
|
47
|
+
}, [api, index, archived]);
|
48
|
+
|
49
|
+
return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;
|
50
|
+
};
|
51
|
+
|
52
|
+
export const ThreadListItemByIdProvider: FC<
|
53
|
+
PropsWithChildren<{
|
54
|
+
id: string;
|
55
|
+
}>
|
56
|
+
> = ({ id, children }) => {
|
57
|
+
const api = useAssistantApi();
|
58
|
+
|
59
|
+
const api2 = useMemo(() => {
|
60
|
+
const getItem = () => api.threads().item({ id });
|
61
|
+
return {
|
62
|
+
threadListItem: createAssistantApiField({
|
63
|
+
source: "threads",
|
64
|
+
query: { type: "id", id },
|
65
|
+
get: () => getItem(),
|
66
|
+
}),
|
67
|
+
on<TEvent extends keyof AssistantEvents>(
|
68
|
+
selector: AssistantEventSelector<TEvent>,
|
69
|
+
callback: (e: AssistantEvents[TEvent]) => void,
|
70
|
+
): Unsubscribe {
|
71
|
+
const { event, scope } = normalizeEventSelector(selector);
|
72
|
+
if (!checkEventScope("thread-list-item", scope, event))
|
73
|
+
return api.on(selector, callback);
|
74
|
+
|
75
|
+
return api.on({ scope: "*", event }, (e: AssistantEvents[TEvent]) => {
|
76
|
+
if (e.threadId !== getItem().getState().id) return;
|
77
|
+
callback(e);
|
78
|
+
});
|
79
|
+
},
|
80
|
+
} satisfies Partial<AssistantApi>;
|
81
|
+
}, [api, id]);
|
82
|
+
|
83
|
+
return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;
|
84
|
+
};
|
@@ -1,5 +1,12 @@
|
|
1
1
|
export { AssistantRuntimeProvider } from "./AssistantRuntimeProvider";
|
2
|
+
export {
|
3
|
+
ThreadListItemByIndexProvider,
|
4
|
+
ThreadListItemByIdProvider,
|
5
|
+
} from "./ThreadListItemProvider";
|
6
|
+
export { MessageByIndexProvider } from "./MessageProvider";
|
7
|
+
export { PartByIndexProvider } from "./PartProvider";
|
8
|
+
export {
|
9
|
+
MessageAttachmentByIndexProvider,
|
10
|
+
ComposerAttachmentByIndexProvider,
|
11
|
+
} from "./AttachmentProvider";
|
2
12
|
export { TextMessagePartProvider } from "./TextMessagePartProvider";
|
3
|
-
|
4
|
-
// TODO remove in v0.11
|
5
|
-
export { TextMessagePartProvider as TextContentPartProvider } from "./TextMessagePartProvider";
|
@@ -0,0 +1,392 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
import {
|
4
|
+
createContext,
|
5
|
+
FC,
|
6
|
+
PropsWithChildren,
|
7
|
+
useContext,
|
8
|
+
useDebugValue,
|
9
|
+
useMemo,
|
10
|
+
useSyncExternalStore,
|
11
|
+
} from "react";
|
12
|
+
|
13
|
+
import {
|
14
|
+
AssistantToolUIActions,
|
15
|
+
AssistantToolUIState,
|
16
|
+
} from "../../client/AssistantRuntimeClient";
|
17
|
+
import {
|
18
|
+
MessageClientActions,
|
19
|
+
MessageClientState,
|
20
|
+
} from "../../client/MessageClient";
|
21
|
+
import {
|
22
|
+
ThreadListItemClientActions,
|
23
|
+
ThreadListItemClientState,
|
24
|
+
} from "../../client/ThreadListItemClient";
|
25
|
+
import {
|
26
|
+
MessagePartClientActions,
|
27
|
+
MessagePartClientState,
|
28
|
+
} from "../../client/MessagePartClient";
|
29
|
+
import {
|
30
|
+
ThreadClientActions,
|
31
|
+
ThreadClientState,
|
32
|
+
} from "../../client/ThreadClient";
|
33
|
+
import {
|
34
|
+
ComposerClientActions,
|
35
|
+
ComposerClientState,
|
36
|
+
} from "../../client/ComposerClient";
|
37
|
+
import {
|
38
|
+
AttachmentClientActions,
|
39
|
+
AttachmentClientState,
|
40
|
+
} from "../../client/AttachmentClient";
|
41
|
+
import { StoreApi } from "../../utils/tap-store/tap-store-api";
|
42
|
+
import { Unsubscribe } from "@assistant-ui/tap";
|
43
|
+
import { ModelContextProvider } from "../../model-context";
|
44
|
+
import { AssistantRuntime } from "../../api";
|
45
|
+
import {
|
46
|
+
AssistantEventSelector,
|
47
|
+
AssistantEvents,
|
48
|
+
normalizeEventSelector,
|
49
|
+
} from "../../types/EventTypes";
|
50
|
+
import {
|
51
|
+
ThreadListClientActions,
|
52
|
+
ThreadListClientState,
|
53
|
+
} from "../../client/ThreadListClient";
|
54
|
+
|
55
|
+
export type AssistantState = {
|
56
|
+
readonly threads: ThreadListClientState;
|
57
|
+
readonly toolUIs: AssistantToolUIState;
|
58
|
+
|
59
|
+
readonly threadListItem: ThreadListItemClientState;
|
60
|
+
readonly thread: ThreadClientState;
|
61
|
+
readonly composer: ComposerClientState;
|
62
|
+
readonly message: MessageClientState;
|
63
|
+
readonly part: MessagePartClientState;
|
64
|
+
readonly attachment: AttachmentClientState;
|
65
|
+
};
|
66
|
+
|
67
|
+
type AssistantApiField<
|
68
|
+
TState,
|
69
|
+
TActions,
|
70
|
+
TMeta extends { source: string | null; query: any },
|
71
|
+
> = (() => StoreApi<TState, TActions>) &
|
72
|
+
(TMeta | { source: null; query: Record<string, never> });
|
73
|
+
|
74
|
+
// Meta types for each API method
|
75
|
+
type ThreadsMeta = {
|
76
|
+
source: "root";
|
77
|
+
query: Record<string, never>;
|
78
|
+
};
|
79
|
+
|
80
|
+
type ToolUIMeta = {
|
81
|
+
source: "root";
|
82
|
+
query: Record<string, never>;
|
83
|
+
};
|
84
|
+
|
85
|
+
type ThreadListItemMeta = {
|
86
|
+
source: "threads";
|
87
|
+
query:
|
88
|
+
| { type: "index"; index: number; archived: boolean }
|
89
|
+
| { type: "main" }
|
90
|
+
| { type: "id"; id: string };
|
91
|
+
};
|
92
|
+
|
93
|
+
type ThreadMeta = {
|
94
|
+
source: "threads";
|
95
|
+
query: { type: "main" };
|
96
|
+
};
|
97
|
+
|
98
|
+
type ComposerMeta = {
|
99
|
+
source: "message" | "thread";
|
100
|
+
query: Record<string, never>;
|
101
|
+
};
|
102
|
+
|
103
|
+
type MessageMeta = {
|
104
|
+
source: "thread";
|
105
|
+
query: { type: "index"; index: number };
|
106
|
+
};
|
107
|
+
|
108
|
+
type PartMeta = {
|
109
|
+
source: "message" | "root";
|
110
|
+
query: { type: "index"; index: number } | Record<string, never>;
|
111
|
+
};
|
112
|
+
|
113
|
+
type AttachmentMeta = {
|
114
|
+
source: "message" | "composer";
|
115
|
+
query: { type: "index"; index: number };
|
116
|
+
};
|
117
|
+
|
118
|
+
export type AssistantApi = {
|
119
|
+
threads: AssistantApiField<
|
120
|
+
ThreadListClientState,
|
121
|
+
ThreadListClientActions,
|
122
|
+
ThreadsMeta
|
123
|
+
>;
|
124
|
+
toolUIs: AssistantApiField<
|
125
|
+
AssistantToolUIState,
|
126
|
+
AssistantToolUIActions,
|
127
|
+
ToolUIMeta
|
128
|
+
>;
|
129
|
+
threadListItem: AssistantApiField<
|
130
|
+
ThreadListItemClientState,
|
131
|
+
ThreadListItemClientActions,
|
132
|
+
ThreadListItemMeta
|
133
|
+
>;
|
134
|
+
thread: AssistantApiField<ThreadClientState, ThreadClientActions, ThreadMeta>;
|
135
|
+
composer: AssistantApiField<
|
136
|
+
ComposerClientState,
|
137
|
+
ComposerClientActions,
|
138
|
+
ComposerMeta
|
139
|
+
>;
|
140
|
+
message: AssistantApiField<
|
141
|
+
MessageClientState,
|
142
|
+
MessageClientActions,
|
143
|
+
MessageMeta
|
144
|
+
>;
|
145
|
+
part: AssistantApiField<
|
146
|
+
MessagePartClientState,
|
147
|
+
MessagePartClientActions,
|
148
|
+
PartMeta
|
149
|
+
>;
|
150
|
+
attachment: AssistantApiField<
|
151
|
+
AttachmentClientState,
|
152
|
+
AttachmentClientActions,
|
153
|
+
AttachmentMeta
|
154
|
+
>;
|
155
|
+
|
156
|
+
subscribe(listener: () => void): Unsubscribe;
|
157
|
+
flushSync(): void;
|
158
|
+
|
159
|
+
on<TEvent extends keyof AssistantEvents>(
|
160
|
+
event: AssistantEventSelector<TEvent>,
|
161
|
+
callback: (e: AssistantEvents[TEvent]) => void,
|
162
|
+
): Unsubscribe;
|
163
|
+
|
164
|
+
// temp
|
165
|
+
registerModelContextProvider(provider: ModelContextProvider): void;
|
166
|
+
/** @internal */
|
167
|
+
__internal_getRuntime(): AssistantRuntime | null;
|
168
|
+
};
|
169
|
+
|
170
|
+
export const createAssistantApiField = <
|
171
|
+
TState,
|
172
|
+
TActions,
|
173
|
+
TMeta extends { source: any; query: any },
|
174
|
+
>(
|
175
|
+
config: {
|
176
|
+
get: () => StoreApi<TState, TActions>;
|
177
|
+
} & (TMeta | { source: null; query: Record<string, never> }),
|
178
|
+
): AssistantApiField<TState, TActions, TMeta> => {
|
179
|
+
const fn = config.get as AssistantApiField<TState, TActions, TMeta>;
|
180
|
+
fn.source = config.source;
|
181
|
+
fn.query = config.query;
|
182
|
+
return fn;
|
183
|
+
};
|
184
|
+
|
185
|
+
const NO_OP_FN = () => () => {};
|
186
|
+
|
187
|
+
const AssistantApiContext = createContext<AssistantApi>({
|
188
|
+
threads: createAssistantApiField({
|
189
|
+
source: null,
|
190
|
+
query: {},
|
191
|
+
get: () => {
|
192
|
+
throw new Error("Threads is only available inside <AssistantProvider />");
|
193
|
+
},
|
194
|
+
}),
|
195
|
+
toolUIs: createAssistantApiField({
|
196
|
+
source: null,
|
197
|
+
query: {},
|
198
|
+
get: (): never => {
|
199
|
+
throw new Error("ToolUIs is only available inside <AssistantProvider />");
|
200
|
+
},
|
201
|
+
}),
|
202
|
+
threadListItem: createAssistantApiField({
|
203
|
+
source: null,
|
204
|
+
query: {},
|
205
|
+
get: (): never => {
|
206
|
+
throw new Error(
|
207
|
+
"ThreadListItem is only available inside <AssistantProvider />",
|
208
|
+
);
|
209
|
+
},
|
210
|
+
}),
|
211
|
+
thread: createAssistantApiField({
|
212
|
+
source: null,
|
213
|
+
query: {},
|
214
|
+
get: (): never => {
|
215
|
+
throw new Error("Thread is only available inside <AssistantProvider />");
|
216
|
+
},
|
217
|
+
}),
|
218
|
+
composer: createAssistantApiField({
|
219
|
+
source: null,
|
220
|
+
query: {},
|
221
|
+
get: (): never => {
|
222
|
+
throw new Error(
|
223
|
+
"Composer is only available inside <AssistantProvider />",
|
224
|
+
);
|
225
|
+
},
|
226
|
+
}),
|
227
|
+
message: createAssistantApiField({
|
228
|
+
source: null,
|
229
|
+
query: {},
|
230
|
+
get: (): never => {
|
231
|
+
throw new Error(
|
232
|
+
"Message is only available inside <ThreadPrimitive.Messages />",
|
233
|
+
);
|
234
|
+
},
|
235
|
+
}),
|
236
|
+
part: createAssistantApiField({
|
237
|
+
source: null,
|
238
|
+
query: {},
|
239
|
+
get: (): never => {
|
240
|
+
throw new Error(
|
241
|
+
"Part is only available inside <MessagePrimitive.Parts />",
|
242
|
+
);
|
243
|
+
},
|
244
|
+
}),
|
245
|
+
attachment: createAssistantApiField({
|
246
|
+
source: null,
|
247
|
+
query: {},
|
248
|
+
get: (): never => {
|
249
|
+
throw new Error(
|
250
|
+
"Attachment is only available inside <MessagePrimitive.Attachments /> or <ComposerPrimitive.Attachments />",
|
251
|
+
);
|
252
|
+
},
|
253
|
+
}),
|
254
|
+
|
255
|
+
subscribe: NO_OP_FN,
|
256
|
+
flushSync: NO_OP_FN,
|
257
|
+
on: (selector) => {
|
258
|
+
const { scope } = normalizeEventSelector(selector);
|
259
|
+
throw new Error(`Event scope is not available in this component: ${scope}`);
|
260
|
+
},
|
261
|
+
|
262
|
+
registerModelContextProvider: () => {
|
263
|
+
throw new Error(
|
264
|
+
"Registering model context providers is only available inside <AssistantProvider />",
|
265
|
+
);
|
266
|
+
},
|
267
|
+
__internal_getRuntime: () => {
|
268
|
+
return null;
|
269
|
+
},
|
270
|
+
});
|
271
|
+
|
272
|
+
export const useAssistantApi = (): AssistantApi => {
|
273
|
+
return useContext(AssistantApiContext);
|
274
|
+
};
|
275
|
+
|
276
|
+
export const useAssistantState = <T,>(
|
277
|
+
selector: (state: AssistantState) => T,
|
278
|
+
): T => {
|
279
|
+
const api = useAssistantApi();
|
280
|
+
const proxiedState = useMemo(() => new ProxiedAssistantState(api), [api]);
|
281
|
+
const slice = useSyncExternalStore(
|
282
|
+
api.subscribe,
|
283
|
+
() => selector(proxiedState),
|
284
|
+
() => selector(proxiedState),
|
285
|
+
);
|
286
|
+
useDebugValue(slice);
|
287
|
+
|
288
|
+
if (slice instanceof ProxiedAssistantState)
|
289
|
+
throw new Error(
|
290
|
+
"You tried to return the entire AssistantState. This is not supported due to technical limitations.",
|
291
|
+
);
|
292
|
+
|
293
|
+
return slice;
|
294
|
+
};
|
295
|
+
|
296
|
+
class ProxiedAssistantState implements AssistantState {
|
297
|
+
#api: AssistantApi;
|
298
|
+
constructor(api: AssistantApi) {
|
299
|
+
this.#api = api;
|
300
|
+
}
|
301
|
+
|
302
|
+
get threads() {
|
303
|
+
return this.#api.threads().getState();
|
304
|
+
}
|
305
|
+
|
306
|
+
get toolUIs() {
|
307
|
+
return this.#api.toolUIs().getState();
|
308
|
+
}
|
309
|
+
|
310
|
+
get threadListItem() {
|
311
|
+
return this.#api.threadListItem().getState();
|
312
|
+
}
|
313
|
+
|
314
|
+
get thread() {
|
315
|
+
return this.#api.thread().getState();
|
316
|
+
}
|
317
|
+
|
318
|
+
get composer() {
|
319
|
+
return this.#api.composer().getState();
|
320
|
+
}
|
321
|
+
|
322
|
+
get message() {
|
323
|
+
return this.#api.message().getState();
|
324
|
+
}
|
325
|
+
|
326
|
+
get part() {
|
327
|
+
return this.#api.part().getState();
|
328
|
+
}
|
329
|
+
|
330
|
+
get attachment() {
|
331
|
+
return this.#api.attachment().getState();
|
332
|
+
}
|
333
|
+
}
|
334
|
+
|
335
|
+
const mergeFns = <TArgs extends Array<unknown>>(
|
336
|
+
fn1: (...args: TArgs) => void,
|
337
|
+
fn2: (...args: TArgs) => void,
|
338
|
+
) => {
|
339
|
+
if (fn1 === NO_OP_FN) return fn2;
|
340
|
+
if (fn2 === NO_OP_FN) return fn1;
|
341
|
+
|
342
|
+
return (...args: TArgs) => {
|
343
|
+
fn1(...args);
|
344
|
+
fn2(...args);
|
345
|
+
};
|
346
|
+
};
|
347
|
+
|
348
|
+
const mergeFnsWithUnsubscribe = <TArgs extends Array<unknown>>(
|
349
|
+
fn1: (...args: TArgs) => Unsubscribe,
|
350
|
+
fn2: (...args: TArgs) => Unsubscribe,
|
351
|
+
) => {
|
352
|
+
if (fn1 === NO_OP_FN) return fn2;
|
353
|
+
if (fn2 === NO_OP_FN) return fn1;
|
354
|
+
|
355
|
+
return (...args: TArgs) => {
|
356
|
+
const unsubscribe1 = fn1(...args);
|
357
|
+
const unsubscribe2 = fn2(...args);
|
358
|
+
|
359
|
+
return () => {
|
360
|
+
unsubscribe1();
|
361
|
+
unsubscribe2();
|
362
|
+
};
|
363
|
+
};
|
364
|
+
};
|
365
|
+
|
366
|
+
const extendApi = (
|
367
|
+
api: AssistantApi,
|
368
|
+
api2: Partial<AssistantApi>,
|
369
|
+
): AssistantApi => {
|
370
|
+
const api2Subscribe = api2.subscribe;
|
371
|
+
const api2FlushSync = api2.flushSync;
|
372
|
+
return {
|
373
|
+
...api,
|
374
|
+
...api2,
|
375
|
+
subscribe: mergeFnsWithUnsubscribe(
|
376
|
+
api.subscribe,
|
377
|
+
api2Subscribe ?? NO_OP_FN,
|
378
|
+
),
|
379
|
+
flushSync: mergeFns(api.flushSync, api2FlushSync ?? NO_OP_FN),
|
380
|
+
};
|
381
|
+
};
|
382
|
+
|
383
|
+
export const AssistantApiProvider: FC<
|
384
|
+
PropsWithChildren<{ api: Partial<AssistantApi> }>
|
385
|
+
> = ({ api: api2, children }) => {
|
386
|
+
const api = useAssistantApi();
|
387
|
+
const extendedApi = useMemo(() => extendApi(api, api2), [api, api2]);
|
388
|
+
|
389
|
+
return (
|
390
|
+
<AssistantApiContext value={extendedApi}>{children}</AssistantApiContext>
|
391
|
+
);
|
392
|
+
};
|
@@ -2,55 +2,48 @@
|
|
2
2
|
// TODO createContextStoreHook does not work well with server-side nextjs bundler
|
3
3
|
// use client necessary here for now
|
4
4
|
|
5
|
-
export {
|
6
|
-
|
7
|
-
useThreadList,
|
8
|
-
useToolUIs,
|
9
|
-
useToolUIsStore,
|
10
|
-
} from "./AssistantContext";
|
11
|
-
|
12
|
-
export {
|
13
|
-
useThreadRuntime,
|
14
|
-
useThread,
|
15
|
-
useThreadComposer,
|
16
|
-
useThreadModelContext,
|
17
|
-
/**
|
18
|
-
* @deprecated This method was renamed to `useThreadModelContext`.
|
19
|
-
*/
|
20
|
-
useThreadModelContext as useThreadModelConfig,
|
21
|
-
} from "./ThreadContext";
|
5
|
+
export { useAssistantState, useAssistantApi } from "./AssistantApiContext";
|
6
|
+
export { useAssistantEvent } from "../../hooks/useAssistantEvent";
|
22
7
|
|
23
8
|
export {
|
24
9
|
useThreadViewport,
|
25
10
|
useThreadViewportStore,
|
26
11
|
} from "./ThreadViewportContext";
|
27
12
|
|
13
|
+
export { useAssistantRuntime, useThreadList } from "./legacy/AssistantContext";
|
14
|
+
|
28
15
|
export {
|
29
|
-
|
30
|
-
|
31
|
-
|
16
|
+
useAttachmentRuntime,
|
17
|
+
useAttachment,
|
18
|
+
useThreadComposerAttachmentRuntime,
|
19
|
+
useThreadComposerAttachment,
|
20
|
+
useEditComposerAttachmentRuntime,
|
21
|
+
useEditComposerAttachment,
|
22
|
+
useMessageAttachment,
|
23
|
+
useMessageAttachmentRuntime,
|
24
|
+
} from "./legacy/AttachmentContext";
|
25
|
+
|
26
|
+
export { useComposerRuntime, useComposer } from "./legacy/ComposerContext";
|
32
27
|
|
33
28
|
export {
|
34
29
|
useMessageRuntime,
|
35
|
-
useMessage,
|
36
30
|
useEditComposer,
|
37
|
-
|
38
|
-
|
39
|
-
} from "./MessageContext";
|
40
|
-
export { useMessagePartRuntime, useMessagePart } from "./MessagePartContext";
|
41
|
-
export { useComposerRuntime, useComposer } from "./ComposerContext";
|
31
|
+
useMessage,
|
32
|
+
} from "./legacy/MessageContext";
|
42
33
|
|
43
34
|
export {
|
44
|
-
|
45
|
-
|
35
|
+
useMessagePartRuntime,
|
36
|
+
useMessagePart,
|
37
|
+
} from "./legacy/MessagePartContext";
|
46
38
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
// useThreadComposerAttachmentRuntime,
|
54
|
-
} from "./AttachmentContext";
|
39
|
+
export {
|
40
|
+
useThreadRuntime,
|
41
|
+
useThread,
|
42
|
+
useThreadComposer,
|
43
|
+
useThreadModelContext,
|
44
|
+
} from "./legacy/ThreadContext";
|
55
45
|
|
56
|
-
export {
|
46
|
+
export {
|
47
|
+
useThreadListItemRuntime,
|
48
|
+
useThreadListItem,
|
49
|
+
} from "./legacy/ThreadListItemContext";
|
@@ -1,28 +1,9 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
|
-
import {
|
4
|
-
import
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import { createContextStoreHook } from "./utils/createContextStoreHook";
|
8
|
-
import { UseBoundStore } from "zustand";
|
9
|
-
import { AssistantRuntime } from "../../api/AssistantRuntime";
|
10
|
-
import { ThreadListRuntime } from "../../api/ThreadListRuntime";
|
11
|
-
import { createStateHookForRuntime } from "./utils/createStateHookForRuntime";
|
12
|
-
|
13
|
-
export type AssistantContextValue = {
|
14
|
-
useAssistantRuntime: UseBoundStore<ReadonlyStore<AssistantRuntime>>;
|
15
|
-
useToolUIs: UseBoundStore<ReadonlyStore<AssistantToolUIsState>>;
|
16
|
-
};
|
17
|
-
|
18
|
-
export const AssistantContext = createContext<AssistantContextValue | null>(
|
19
|
-
null,
|
20
|
-
);
|
21
|
-
|
22
|
-
export const useAssistantContext = createContextHook(
|
23
|
-
AssistantContext,
|
24
|
-
"AssistantRuntimeProvider",
|
25
|
-
);
|
3
|
+
import { useAssistantApi } from "../AssistantApiContext";
|
4
|
+
import { AssistantRuntime } from "../../../api/AssistantRuntime";
|
5
|
+
import { ThreadListRuntime } from "../../../api/ThreadListRuntime";
|
6
|
+
import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
|
26
7
|
|
27
8
|
/**
|
28
9
|
* Hook to access the AssistantRuntime from the current context.
|
@@ -56,15 +37,15 @@ export function useAssistantRuntime(options?: {
|
|
56
37
|
export function useAssistantRuntime(options?: {
|
57
38
|
optional?: boolean | undefined;
|
58
39
|
}) {
|
59
|
-
const
|
60
|
-
|
61
|
-
|
62
|
-
|
40
|
+
const api = useAssistantApi();
|
41
|
+
const runtime = api.__internal_getRuntime();
|
42
|
+
|
43
|
+
if (!runtime && !options?.optional) {
|
44
|
+
throw new Error("AssistantRuntime is not available");
|
45
|
+
}
|
63
46
|
|
64
|
-
|
65
|
-
|
66
|
-
"useToolUIs",
|
67
|
-
);
|
47
|
+
return runtime;
|
48
|
+
}
|
68
49
|
|
69
50
|
const useThreadListRuntime = (opt: {
|
70
51
|
optional: boolean | undefined;
|
@@ -1,24 +1,8 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import { UseBoundStore } from "zustand";
|
7
|
-
import { createContextHook } from "./utils/createContextHook";
|
8
|
-
import { createStateHookForRuntime } from "./utils/createStateHookForRuntime";
|
9
|
-
|
10
|
-
export type AttachmentContextValue = {
|
11
|
-
useAttachmentRuntime: UseBoundStore<ReadonlyStore<AttachmentRuntime>>;
|
12
|
-
};
|
13
|
-
|
14
|
-
export const AttachmentContext = createContext<AttachmentContextValue | null>(
|
15
|
-
null,
|
16
|
-
);
|
17
|
-
|
18
|
-
const useAttachmentContext = createContextHook(
|
19
|
-
AttachmentContext,
|
20
|
-
"a ComposerPrimitive.Attachments or MessagePrimitive.Attachments component",
|
21
|
-
);
|
3
|
+
import { AttachmentRuntime } from "../../../api/AttachmentRuntime";
|
4
|
+
import { createStateHookForRuntime } from "../utils/createStateHookForRuntime";
|
5
|
+
import { useAssistantApi } from "..";
|
22
6
|
|
23
7
|
export function useAttachmentRuntime(options?: {
|
24
8
|
optional?: false | undefined;
|
@@ -29,9 +13,14 @@ export function useAttachmentRuntime(options?: {
|
|
29
13
|
export function useAttachmentRuntime(options?: {
|
30
14
|
optional?: boolean | undefined;
|
31
15
|
}): AttachmentRuntime | null {
|
32
|
-
const
|
33
|
-
|
34
|
-
|
16
|
+
const api = useAssistantApi();
|
17
|
+
const runtime = api.attachment.source
|
18
|
+
? api.attachment().__internal_getRuntime()
|
19
|
+
: null;
|
20
|
+
if (!runtime && !options?.optional) {
|
21
|
+
throw new Error("AttachmentRuntime is not available");
|
22
|
+
}
|
23
|
+
return runtime;
|
35
24
|
}
|
36
25
|
|
37
26
|
export function useThreadComposerAttachmentRuntime(options?: {
|