@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
@@ -7,17 +7,15 @@ import {
|
|
7
7
|
useRef,
|
8
8
|
useEffect,
|
9
9
|
memo,
|
10
|
-
useMemo,
|
11
10
|
PropsWithChildren,
|
12
11
|
ComponentType,
|
13
12
|
} from "react";
|
14
13
|
import { UseBoundStore, StoreApi, create } from "zustand";
|
15
|
-
import { useAssistantRuntime } from "../../context";
|
16
|
-
import { ThreadListItemRuntimeProvider } from "../../context/providers/ThreadListItemRuntimeProvider";
|
17
14
|
import {
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
useAssistantState,
|
16
|
+
useAssistantApi,
|
17
|
+
ThreadListItemByIdProvider,
|
18
|
+
} from "../../context";
|
21
19
|
import { ThreadRuntimeCore, ThreadRuntimeImpl } from "../../internal";
|
22
20
|
import { BaseSubscribable } from "./BaseSubscribable";
|
23
21
|
import { AssistantRuntime } from "../../api";
|
@@ -82,7 +80,7 @@ export class RemoteThreadListHookInstanceManager extends BaseSubscribable {
|
|
82
80
|
}
|
83
81
|
|
84
82
|
private _InnerActiveThreadProvider: FC = () => {
|
85
|
-
const {
|
83
|
+
const id = useAssistantState(({ threadListItem }) => threadListItem.id);
|
86
84
|
|
87
85
|
const { useRuntime } = this.useRuntimeHook();
|
88
86
|
const runtime = useRuntime();
|
@@ -114,21 +112,22 @@ export class RemoteThreadListHookInstanceManager extends BaseSubscribable {
|
|
114
112
|
}, [threadBinding, updateRuntime]);
|
115
113
|
|
116
114
|
// auto initialize thread
|
117
|
-
const
|
115
|
+
const api = useAssistantApi();
|
118
116
|
useEffect(() => {
|
119
117
|
return runtime.threads.main.unstable_on("initialize", () => {
|
120
|
-
|
121
|
-
|
118
|
+
const state = api.threadListItem().getState();
|
119
|
+
if (state.status === "new") {
|
120
|
+
api.threadListItem().initialize();
|
122
121
|
|
123
122
|
// auto generate a title after first run
|
124
123
|
const dispose = runtime.thread.unstable_on("run-end", () => {
|
125
124
|
dispose();
|
126
125
|
|
127
|
-
|
126
|
+
api.threadListItem().generateTitle();
|
128
127
|
});
|
129
128
|
}
|
130
129
|
});
|
131
|
-
}, [runtime,
|
130
|
+
}, [runtime, api]);
|
132
131
|
|
133
132
|
return null;
|
134
133
|
};
|
@@ -138,18 +137,14 @@ export class RemoteThreadListHookInstanceManager extends BaseSubscribable {
|
|
138
137
|
provider: ComponentType<PropsWithChildren>;
|
139
138
|
// eslint-disable-next-line react/display-name
|
140
139
|
}> = memo(({ threadId, provider: Provider }) => {
|
141
|
-
|
142
|
-
const threadListItemRuntime = useMemo(
|
143
|
-
() => assistantRuntime.threads.getItemById(threadId),
|
144
|
-
[assistantRuntime, threadId],
|
145
|
-
);
|
140
|
+
// Runtime is provided by ThreadListItemByIdProvider
|
146
141
|
|
147
142
|
return (
|
148
|
-
<
|
143
|
+
<ThreadListItemByIdProvider id={threadId}>
|
149
144
|
<Provider>
|
150
145
|
<this._InnerActiveThreadProvider />
|
151
146
|
</Provider>
|
152
|
-
</
|
147
|
+
</ThreadListItemByIdProvider>
|
153
148
|
);
|
154
149
|
});
|
155
150
|
|
@@ -18,22 +18,22 @@ import { RuntimeAdapterProvider } from "../adapters/RuntimeAdapterProvider";
|
|
18
18
|
|
19
19
|
type RemoteThreadData =
|
20
20
|
| {
|
21
|
-
readonly
|
22
|
-
readonly remoteId
|
23
|
-
readonly externalId
|
21
|
+
readonly id: string;
|
22
|
+
readonly remoteId: undefined;
|
23
|
+
readonly externalId: undefined;
|
24
24
|
readonly status: "new";
|
25
25
|
readonly title: undefined;
|
26
26
|
}
|
27
27
|
| {
|
28
|
-
readonly
|
28
|
+
readonly id: string;
|
29
29
|
readonly initializeTask: Promise<RemoteThreadInitializeResponse>;
|
30
|
-
readonly remoteId
|
31
|
-
readonly externalId
|
30
|
+
readonly remoteId: undefined;
|
31
|
+
readonly externalId: undefined;
|
32
32
|
readonly status: "regular" | "archived";
|
33
33
|
readonly title?: string | undefined;
|
34
34
|
}
|
35
35
|
| {
|
36
|
-
readonly
|
36
|
+
readonly id: string;
|
37
37
|
readonly initializeTask: Promise<RemoteThreadInitializeResponse>;
|
38
38
|
readonly remoteId: string;
|
39
39
|
readonly externalId: string | undefined;
|
@@ -72,7 +72,7 @@ const updateStatusReducer = (
|
|
72
72
|
const data = getThreadData(state, threadIdOrRemoteId);
|
73
73
|
if (!data) return state;
|
74
74
|
|
75
|
-
const {
|
75
|
+
const { id, remoteId, status: lastStatus } = data;
|
76
76
|
if (lastStatus === newStatus) return state;
|
77
77
|
|
78
78
|
const newState = { ...state };
|
@@ -83,11 +83,11 @@ const updateStatusReducer = (
|
|
83
83
|
newState.newThreadId = undefined;
|
84
84
|
break;
|
85
85
|
case "regular":
|
86
|
-
newState.threadIds = newState.threadIds.filter((t) => t !==
|
86
|
+
newState.threadIds = newState.threadIds.filter((t) => t !== id);
|
87
87
|
break;
|
88
88
|
case "archived":
|
89
89
|
newState.archivedThreadIds = newState.archivedThreadIds.filter(
|
90
|
-
(t) => t !==
|
90
|
+
(t) => t !== id,
|
91
91
|
);
|
92
92
|
break;
|
93
93
|
|
@@ -100,20 +100,20 @@ const updateStatusReducer = (
|
|
100
100
|
// newStatus
|
101
101
|
switch (newStatus) {
|
102
102
|
case "regular":
|
103
|
-
newState.threadIds = [
|
103
|
+
newState.threadIds = [id, ...newState.threadIds];
|
104
104
|
break;
|
105
105
|
|
106
106
|
case "archived":
|
107
|
-
newState.archivedThreadIds = [
|
107
|
+
newState.archivedThreadIds = [id, ...newState.archivedThreadIds];
|
108
108
|
break;
|
109
109
|
|
110
110
|
case "deleted":
|
111
111
|
newState.threadData = Object.fromEntries(
|
112
|
-
Object.entries(newState.threadData).filter(([key]) => key !==
|
112
|
+
Object.entries(newState.threadData).filter(([key]) => key !== id),
|
113
113
|
);
|
114
114
|
newState.threadIdMap = Object.fromEntries(
|
115
115
|
Object.entries(newState.threadIdMap).filter(
|
116
|
-
([key]) => key !==
|
116
|
+
([key]) => key !== id && key !== remoteId,
|
117
117
|
),
|
118
118
|
);
|
119
119
|
break;
|
@@ -127,7 +127,7 @@ const updateStatusReducer = (
|
|
127
127
|
if (newStatus !== "deleted") {
|
128
128
|
newState.threadData = {
|
129
129
|
...newState.threadData,
|
130
|
-
[
|
130
|
+
[id]: {
|
131
131
|
...data,
|
132
132
|
status: newStatus,
|
133
133
|
},
|
@@ -156,6 +156,10 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
156
156
|
threadData: {},
|
157
157
|
});
|
158
158
|
|
159
|
+
public get threadData() {
|
160
|
+
return this._state.value.threadData;
|
161
|
+
}
|
162
|
+
|
159
163
|
public getLoadThreadsPromise() {
|
160
164
|
// TODO this needs to be cached in case this promise is loaded during suspense
|
161
165
|
if (!this._loadThreadsPromise) {
|
@@ -194,7 +198,7 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
194
198
|
const mappingId = createThreadMappingId(thread.remoteId);
|
195
199
|
newThreadIdMap[thread.remoteId] = mappingId;
|
196
200
|
newThreadData[mappingId] = {
|
197
|
-
|
201
|
+
id: thread.remoteId,
|
198
202
|
remoteId: thread.remoteId,
|
199
203
|
externalId: thread.externalId,
|
200
204
|
status: thread.status,
|
@@ -294,7 +298,7 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
294
298
|
const data = this.getItemById(threadIdOrRemoteId);
|
295
299
|
if (!data) throw new Error("Thread not found");
|
296
300
|
|
297
|
-
const result = this._hookManager.getThreadRuntimeCore(data.
|
301
|
+
const result = this._hookManager.getThreadRuntimeCore(data.id);
|
298
302
|
if (!result) throw new Error("Thread not found");
|
299
303
|
return result;
|
300
304
|
}
|
@@ -307,17 +311,17 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
307
311
|
const data = this.getItemById(threadIdOrRemoteId);
|
308
312
|
if (!data) throw new Error("Thread not found");
|
309
313
|
|
310
|
-
if (this._mainThreadId === data.
|
314
|
+
if (this._mainThreadId === data.id) return;
|
311
315
|
|
312
|
-
const task = this._hookManager.startThreadRuntime(data.
|
316
|
+
const task = this._hookManager.startThreadRuntime(data.id);
|
313
317
|
if (this.mainThreadId !== undefined) {
|
314
318
|
await task;
|
315
319
|
} else {
|
316
320
|
task.then(() => this._notifySubscribers());
|
317
321
|
}
|
318
322
|
|
319
|
-
if (data.status === "archived") await this.unarchive(data.
|
320
|
-
this._mainThreadId = data.
|
323
|
+
if (data.status === "archived") await this.unarchive(data.id);
|
324
|
+
this._mainThreadId = data.id;
|
321
325
|
|
322
326
|
this._notifySubscribers();
|
323
327
|
}
|
@@ -332,31 +336,34 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
332
336
|
}
|
333
337
|
|
334
338
|
const state = this._state.value;
|
335
|
-
let
|
336
|
-
if (
|
339
|
+
let id: string | undefined = this._state.value.newThreadId;
|
340
|
+
if (id === undefined) {
|
337
341
|
do {
|
338
|
-
|
339
|
-
} while (state.threadIdMap[
|
342
|
+
id = `__LOCALID_${generateId()}`;
|
343
|
+
} while (state.threadIdMap[id]);
|
340
344
|
|
341
|
-
const mappingId = createThreadMappingId(
|
345
|
+
const mappingId = createThreadMappingId(id);
|
342
346
|
this._state.update({
|
343
347
|
...state,
|
344
|
-
newThreadId:
|
348
|
+
newThreadId: id,
|
345
349
|
threadIdMap: {
|
346
350
|
...state.threadIdMap,
|
347
|
-
[
|
351
|
+
[id]: mappingId,
|
348
352
|
},
|
349
353
|
threadData: {
|
350
354
|
...state.threadData,
|
351
|
-
[
|
355
|
+
[mappingId]: {
|
352
356
|
status: "new",
|
353
|
-
|
354
|
-
|
357
|
+
id,
|
358
|
+
remoteId: undefined,
|
359
|
+
externalId: undefined,
|
360
|
+
title: undefined,
|
361
|
+
} satisfies RemoteThreadData,
|
355
362
|
},
|
356
363
|
});
|
357
364
|
}
|
358
365
|
|
359
|
-
return this.switchToThread(
|
366
|
+
return this.switchToThread(id);
|
360
367
|
}
|
361
368
|
|
362
369
|
public initialize = async (threadId: string) => {
|
@@ -419,7 +426,7 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
419
426
|
|
420
427
|
const { remoteId } = await data.initializeTask;
|
421
428
|
|
422
|
-
const runtimeCore = this._hookManager.getThreadRuntimeCore(data.
|
429
|
+
const runtimeCore = this._hookManager.getThreadRuntimeCore(data.id);
|
423
430
|
if (!runtimeCore) return; // thread is no longer running
|
424
431
|
|
425
432
|
const messages = runtimeCore.messages;
|
@@ -435,7 +442,7 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
435
442
|
...state,
|
436
443
|
threadData: {
|
437
444
|
...state.threadData,
|
438
|
-
[data.
|
445
|
+
[data.id]: {
|
439
446
|
...data,
|
440
447
|
title: newTitle,
|
441
448
|
},
|
@@ -462,7 +469,7 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
462
469
|
...state,
|
463
470
|
threadData: {
|
464
471
|
...state.threadData,
|
465
|
-
[data.
|
472
|
+
[data.id]: {
|
466
473
|
...data,
|
467
474
|
title: newTitle,
|
468
475
|
},
|
@@ -489,12 +496,12 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
489
496
|
|
490
497
|
return this._state.optimisticUpdate({
|
491
498
|
execute: async () => {
|
492
|
-
await this._ensureThreadIsNotMain(data.
|
499
|
+
await this._ensureThreadIsNotMain(data.id);
|
493
500
|
const { remoteId } = await data.initializeTask;
|
494
501
|
return this._options.adapter.archive(remoteId);
|
495
502
|
},
|
496
503
|
optimistic: (state) => {
|
497
|
-
return updateStatusReducer(state, data.
|
504
|
+
return updateStatusReducer(state, data.id, "archived");
|
498
505
|
},
|
499
506
|
});
|
500
507
|
}
|
@@ -510,12 +517,12 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
510
517
|
const { remoteId } = await data.initializeTask;
|
511
518
|
return await this._options.adapter.unarchive(remoteId);
|
512
519
|
} catch (error) {
|
513
|
-
await this._ensureThreadIsNotMain(data.
|
520
|
+
await this._ensureThreadIsNotMain(data.id);
|
514
521
|
throw error;
|
515
522
|
}
|
516
523
|
},
|
517
524
|
optimistic: (state) => {
|
518
|
-
return updateStatusReducer(state, data.
|
525
|
+
return updateStatusReducer(state, data.id, "regular");
|
519
526
|
},
|
520
527
|
});
|
521
528
|
}
|
@@ -528,12 +535,12 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
528
535
|
|
529
536
|
return this._state.optimisticUpdate({
|
530
537
|
execute: async () => {
|
531
|
-
await this._ensureThreadIsNotMain(data.
|
538
|
+
await this._ensureThreadIsNotMain(data.id);
|
532
539
|
const { remoteId } = await data.initializeTask;
|
533
540
|
return await this._options.adapter.delete(remoteId);
|
534
541
|
},
|
535
542
|
optimistic: (state) => {
|
536
|
-
return updateStatusReducer(state, data.
|
543
|
+
return updateStatusReducer(state, data.id, "deleted");
|
537
544
|
},
|
538
545
|
});
|
539
546
|
}
|
@@ -544,8 +551,8 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
544
551
|
if (data.status !== "regular" && data.status !== "archived")
|
545
552
|
throw new Error("Thread is not yet initialized");
|
546
553
|
|
547
|
-
await this._ensureThreadIsNotMain(data.
|
548
|
-
this._hookManager.stopThreadRuntime(data.
|
554
|
+
await this._ensureThreadIsNotMain(data.id);
|
555
|
+
this._hookManager.stopThreadRuntime(data.id);
|
549
556
|
}
|
550
557
|
|
551
558
|
private useBoundIds = create<string[]>(() => []);
|
@@ -0,0 +1,92 @@
|
|
1
|
+
export type EventSource<
|
2
|
+
T extends keyof AssistantEvents = keyof AssistantEvents,
|
3
|
+
> = T extends `${infer Source}.${string}` ? Source : never;
|
4
|
+
|
5
|
+
type ScopeConfig = {
|
6
|
+
composer: "thread" | "message";
|
7
|
+
thread: never;
|
8
|
+
"thread-list-item": never;
|
9
|
+
};
|
10
|
+
|
11
|
+
export type SourceByScope<
|
12
|
+
TScope extends AssistantEventScope<keyof AssistantEvents>,
|
13
|
+
> =
|
14
|
+
| (TScope extends "*" ? EventSource : never)
|
15
|
+
| (TScope extends keyof ScopeConfig ? TScope : never)
|
16
|
+
| {
|
17
|
+
[K in keyof ScopeConfig]: TScope extends ScopeConfig[K] ? K : never;
|
18
|
+
}[keyof ScopeConfig];
|
19
|
+
|
20
|
+
export type AssistantEventScope<TEvent extends keyof AssistantEvents> =
|
21
|
+
| "*"
|
22
|
+
| EventSource<TEvent>
|
23
|
+
| ScopeConfig[EventSource<TEvent>];
|
24
|
+
|
25
|
+
export type AssistantEventSelector<TEvent extends keyof AssistantEvents> =
|
26
|
+
| TEvent
|
27
|
+
| {
|
28
|
+
scope: AssistantEventScope<TEvent>;
|
29
|
+
event: TEvent;
|
30
|
+
};
|
31
|
+
|
32
|
+
export type AssistantEvents = {
|
33
|
+
// Thread events (from ThreadRuntimeEventType)
|
34
|
+
"thread.run-start": {
|
35
|
+
threadId: string;
|
36
|
+
};
|
37
|
+
"thread.run-end": {
|
38
|
+
threadId: string;
|
39
|
+
};
|
40
|
+
"thread.initialize": {
|
41
|
+
threadId: string;
|
42
|
+
};
|
43
|
+
"thread.model-context-update": {
|
44
|
+
threadId: string;
|
45
|
+
};
|
46
|
+
|
47
|
+
// Composer events (from ComposerRuntimeEventType)
|
48
|
+
"composer.send": {
|
49
|
+
threadId: string;
|
50
|
+
messageId?: string;
|
51
|
+
};
|
52
|
+
"composer.attachment-add": {
|
53
|
+
threadId: string;
|
54
|
+
messageId?: string;
|
55
|
+
};
|
56
|
+
|
57
|
+
// Thread list item events (from ThreadListItemEventType)
|
58
|
+
"thread-list-item.switched-to": {
|
59
|
+
threadId: string;
|
60
|
+
};
|
61
|
+
"thread-list-item.switched-away": {
|
62
|
+
threadId: string;
|
63
|
+
};
|
64
|
+
};
|
65
|
+
|
66
|
+
export const normalizeEventSelector = <TEvent extends keyof AssistantEvents>(
|
67
|
+
selector: AssistantEventSelector<TEvent>,
|
68
|
+
) => {
|
69
|
+
if (typeof selector === "string") {
|
70
|
+
const source = selector.split(".")[0] as AssistantEventScope<TEvent>;
|
71
|
+
return {
|
72
|
+
scope: source,
|
73
|
+
event: selector,
|
74
|
+
};
|
75
|
+
}
|
76
|
+
|
77
|
+
return {
|
78
|
+
scope: selector.scope,
|
79
|
+
event: selector.event,
|
80
|
+
};
|
81
|
+
};
|
82
|
+
|
83
|
+
export const checkEventScope = <
|
84
|
+
TEvent extends keyof AssistantEvents,
|
85
|
+
TExpectedScope extends AssistantEventScope<keyof AssistantEvents>,
|
86
|
+
>(
|
87
|
+
expectedScope: TExpectedScope,
|
88
|
+
scope: AssistantEventScope<TEvent>,
|
89
|
+
_event: TEvent,
|
90
|
+
): _event is Extract<TEvent, `${SourceByScope<TExpectedScope>}.${string}`> => {
|
91
|
+
return scope === expectedScope;
|
92
|
+
};
|
package/src/types/index.ts
CHANGED
@@ -91,3 +91,9 @@ export type {
|
|
91
91
|
export type { ThreadListItemStatus } from "../api/ThreadListItemRuntime";
|
92
92
|
|
93
93
|
export type { Unsubscribe } from "./Unsubscribe";
|
94
|
+
|
95
|
+
export type {
|
96
|
+
AssistantEventScope,
|
97
|
+
AssistantEventSelector,
|
98
|
+
AssistantEvents,
|
99
|
+
} from "./EventTypes";
|
@@ -15,7 +15,7 @@ import {
|
|
15
15
|
MessagePartStatus,
|
16
16
|
ToolCallMessagePartStatus,
|
17
17
|
} from "../../types/AssistantTypes";
|
18
|
-
import {
|
18
|
+
import { useAssistantApi } from "../../context";
|
19
19
|
import { createContextStoreHook } from "../../context/react/utils/createContextStoreHook";
|
20
20
|
|
21
21
|
type SmoothContextValue = {
|
@@ -35,10 +35,10 @@ const makeSmoothContext = (
|
|
35
35
|
|
36
36
|
export const SmoothContextProvider: FC<PropsWithChildren> = ({ children }) => {
|
37
37
|
const outer = useSmoothContext({ optional: true });
|
38
|
-
const
|
38
|
+
const api = useAssistantApi();
|
39
39
|
|
40
40
|
const [context] = useState(() =>
|
41
|
-
makeSmoothContext(
|
41
|
+
makeSmoothContext(api.part().getState().status),
|
42
42
|
);
|
43
43
|
|
44
44
|
// do not wrap if there is an outer SmoothContextProvider
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
3
|
import { useEffect, useMemo, useRef, useState } from "react";
|
4
|
-
import {
|
4
|
+
import { useAssistantState } from "../../context";
|
5
5
|
import {
|
6
6
|
MessagePartStatus,
|
7
7
|
ReasoningMessagePart,
|
@@ -75,10 +75,7 @@ export const useSmooth = (
|
|
75
75
|
smooth: boolean = false,
|
76
76
|
): MessagePartState & (TextMessagePart | ReasoningMessagePart) => {
|
77
77
|
const { text } = state;
|
78
|
-
const id =
|
79
|
-
optional: true,
|
80
|
-
selector: (m: { id: string }) => m.id,
|
81
|
-
});
|
78
|
+
const id = useAssistantState(({ message }) => message.id);
|
82
79
|
|
83
80
|
const idRef = useRef(id);
|
84
81
|
const [displayedText, setDisplayedText] = useState(text);
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import {
|
2
|
+
tapMemo,
|
3
|
+
tapEffect,
|
4
|
+
ResourceElement,
|
5
|
+
resource,
|
6
|
+
createResource,
|
7
|
+
Unsubscribe,
|
8
|
+
} from "@assistant-ui/tap";
|
9
|
+
import { StoreApi } from "./tap-store-api";
|
10
|
+
|
11
|
+
export interface Store<TState, TActions> {
|
12
|
+
getApi(): StoreApi<TState, TActions>;
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Subscribe to the store.
|
16
|
+
*/
|
17
|
+
subscribe(listener: () => void): Unsubscribe;
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Synchronously flush all the updates to the store.
|
21
|
+
*/
|
22
|
+
flushSync(): void;
|
23
|
+
}
|
24
|
+
|
25
|
+
export const asStore = resource(
|
26
|
+
<TState, TActions, TProps>(
|
27
|
+
element: ResourceElement<
|
28
|
+
{
|
29
|
+
api: StoreApi<TState, TActions>;
|
30
|
+
},
|
31
|
+
TProps
|
32
|
+
>,
|
33
|
+
): Store<TState, TActions> => {
|
34
|
+
const resource = tapMemo(
|
35
|
+
() => createResource(element, true),
|
36
|
+
[element.type],
|
37
|
+
);
|
38
|
+
|
39
|
+
tapEffect(() => {
|
40
|
+
resource.updateInput(element.props);
|
41
|
+
});
|
42
|
+
|
43
|
+
return tapMemo<Store<TState, TActions>>(() => {
|
44
|
+
return {
|
45
|
+
getApi: () => resource.getState().api,
|
46
|
+
subscribe: resource.subscribe,
|
47
|
+
flushSync: resource.flushSync,
|
48
|
+
};
|
49
|
+
}, [resource]);
|
50
|
+
},
|
51
|
+
);
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import { tapEffect, tapMemo, tapRef } from "@assistant-ui/tap";
|
2
|
+
|
3
|
+
export interface ActionsObject {
|
4
|
+
[key: string]: ((...args: any[]) => any) | ActionsObject;
|
5
|
+
}
|
6
|
+
|
7
|
+
export type StoreApi<TState, TActions> = TActions & {
|
8
|
+
getState(): TState;
|
9
|
+
};
|
10
|
+
|
11
|
+
class ReadonlyStoreApiHandler<TState, TActions>
|
12
|
+
implements ProxyHandler<StoreApi<TState, TActions>>
|
13
|
+
{
|
14
|
+
constructor(
|
15
|
+
private readonly getState: () => TState,
|
16
|
+
private readonly getActions: () => TActions,
|
17
|
+
) {}
|
18
|
+
|
19
|
+
get(_: unknown, prop: string | symbol) {
|
20
|
+
if (prop === "getState") return this.getState;
|
21
|
+
return this.getActions()[prop as keyof TActions];
|
22
|
+
}
|
23
|
+
|
24
|
+
ownKeys(): ArrayLike<string | symbol> {
|
25
|
+
return ["getState", ...Object.keys(this.getActions() as object)];
|
26
|
+
}
|
27
|
+
|
28
|
+
has(_: unknown, prop: string | symbol) {
|
29
|
+
if (prop === "getState") return true;
|
30
|
+
return prop in (this.getActions() as object);
|
31
|
+
}
|
32
|
+
|
33
|
+
getOwnPropertyDescriptor(_: unknown, prop: string | symbol) {
|
34
|
+
if (prop === "getState")
|
35
|
+
return {
|
36
|
+
enumerable: true,
|
37
|
+
configurable: false,
|
38
|
+
get: this.getState,
|
39
|
+
};
|
40
|
+
|
41
|
+
return Object.getOwnPropertyDescriptor(this.getActions(), prop);
|
42
|
+
}
|
43
|
+
|
44
|
+
set() {
|
45
|
+
return false;
|
46
|
+
}
|
47
|
+
defineProperty() {
|
48
|
+
return false;
|
49
|
+
}
|
50
|
+
deleteProperty() {
|
51
|
+
return false;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
export const tapApi = <TState, TActions extends ActionsObject>(
|
56
|
+
state: TState,
|
57
|
+
actions: TActions,
|
58
|
+
) => {
|
59
|
+
const ref = tapRef(() => ({ state, actions }));
|
60
|
+
tapEffect(() => {
|
61
|
+
ref.current = { state, actions };
|
62
|
+
});
|
63
|
+
|
64
|
+
return tapMemo(
|
65
|
+
() =>
|
66
|
+
new Proxy<StoreApi<TState, TActions>>(
|
67
|
+
{} as StoreApi<TState, TActions>,
|
68
|
+
new ReadonlyStoreApiHandler(
|
69
|
+
() => ref.current.state,
|
70
|
+
() => ref.current.actions,
|
71
|
+
),
|
72
|
+
),
|
73
|
+
[],
|
74
|
+
);
|
75
|
+
};
|
@@ -1,18 +1,18 @@
|
|
1
1
|
import { getPartialJsonObjectFieldState } from "assistant-stream/utils";
|
2
|
-
import {
|
2
|
+
import { useAssistantState } from "../context";
|
3
3
|
|
4
4
|
const COMPLETE_STATUS = { type: "complete" };
|
5
5
|
|
6
6
|
export const useToolArgsFieldStatus = (fieldPath: (string | number)[]) => {
|
7
|
-
return
|
8
|
-
if (
|
7
|
+
return useAssistantState(({ part }) => {
|
8
|
+
if (part.type !== "tool-call")
|
9
9
|
throw new Error(
|
10
10
|
"useToolArgsFieldStatus can only be used inside tool-call message parts",
|
11
11
|
);
|
12
12
|
|
13
|
-
const state = getPartialJsonObjectFieldState(
|
14
|
-
if (state === "complete" ||
|
13
|
+
const state = getPartialJsonObjectFieldState(part.args, fieldPath);
|
14
|
+
if (state === "complete" || part.status?.type === "requires-action")
|
15
15
|
return COMPLETE_STATUS;
|
16
|
-
return
|
16
|
+
return part.status;
|
17
17
|
});
|
18
18
|
};
|
@@ -1,9 +0,0 @@
|
|
1
|
-
import { type FC, type PropsWithChildren } from "react";
|
2
|
-
import { AttachmentRuntime } from "../../api/AttachmentRuntime";
|
3
|
-
export declare namespace AttachmentRuntimeProvider {
|
4
|
-
type Props = PropsWithChildren<{
|
5
|
-
runtime: AttachmentRuntime;
|
6
|
-
}>;
|
7
|
-
}
|
8
|
-
export declare const AttachmentRuntimeProvider: FC<AttachmentRuntimeProvider.Props>;
|
9
|
-
//# sourceMappingURL=AttachmentRuntimeProvider.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"AttachmentRuntimeProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/AttachmentRuntimeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAuB,MAAM,OAAO,CAAC;AAI7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,KAAK,GAAG,iBAAiB,CAAC;QACpC,OAAO,EAAE,iBAAiB,CAAC;KAC5B,CAAC,CAAC;CACJ;AAcD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAgBzE,CAAC"}
|