@assistant-ui/react 0.10.49 → 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/RuntimeAdapterProvider.d.ts +2 -0
- package/dist/runtimes/adapters/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/runtimes/adapters/RuntimeAdapterProvider.js.map +1 -1
- package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.d.ts +15 -0
- package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.d.ts.map +1 -0
- package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.js +83 -0
- package/dist/runtimes/adapters/attachment/CloudFileAttachmentAdapter.js.map +1 -0
- package/dist/runtimes/adapters/attachment/index.d.ts +1 -0
- package/dist/runtimes/adapters/attachment/index.d.ts.map +1 -1
- package/dist/runtimes/adapters/attachment/index.js +2 -0
- 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/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/cloud.js +14 -1
- package/dist/runtimes/remote-thread-list/adapter/cloud.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/RuntimeAdapterProvider.tsx +2 -0
- package/src/runtimes/adapters/attachment/CloudFileAttachmentAdapter.ts +101 -0
- package/src/runtimes/adapters/attachment/index.ts +1 -0
- 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/runtimes/remote-thread-list/adapter/cloud.tsx +16 -1
- 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
@@ -6,8 +6,7 @@ import {
|
|
6
6
|
createActionButton,
|
7
7
|
} from "../../utils/createActionButton";
|
8
8
|
import { useCallback } from "react";
|
9
|
-
import {
|
10
|
-
import { useThreadRuntime } from "../../context/react/ThreadContext";
|
9
|
+
import { useAssistantState, useAssistantApi } from "../../context";
|
11
10
|
|
12
11
|
const useThreadSuggestion = ({
|
13
12
|
prompt,
|
@@ -17,16 +16,17 @@ const useThreadSuggestion = ({
|
|
17
16
|
method?: "replace";
|
18
17
|
autoSend?: boolean | undefined;
|
19
18
|
}) => {
|
20
|
-
const
|
19
|
+
const api = useAssistantApi();
|
20
|
+
const disabled = useAssistantState(({ thread }) => thread.isDisabled);
|
21
21
|
|
22
|
-
const disabled = useThread((t) => t.isDisabled);
|
23
22
|
const callback = useCallback(() => {
|
24
|
-
|
25
|
-
|
23
|
+
const isRunning = api.thread().getState().isRunning;
|
24
|
+
if (autoSend && !isRunning) {
|
25
|
+
api.thread().append(prompt);
|
26
26
|
} else {
|
27
|
-
|
27
|
+
api.composer().setText(prompt);
|
28
28
|
}
|
29
|
-
}, [
|
29
|
+
}, [api, autoSend, prompt]);
|
30
30
|
|
31
31
|
if (disabled) return null;
|
32
32
|
return callback;
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
3
|
import { useComposedRefs } from "@radix-ui/react-compose-refs";
|
4
|
-
import { RefCallback, useCallback,
|
5
|
-
import {
|
4
|
+
import { RefCallback, useCallback, useRef } from "react";
|
5
|
+
import { useAssistantEvent } from "../../context";
|
6
6
|
import { useOnResizeContent } from "../../utils/hooks/useOnResizeContent";
|
7
7
|
import { useOnScrollToBottom } from "../../utils/hooks/useOnScrollToBottom";
|
8
8
|
import { useManagedRef } from "../../utils/hooks/useManagedRef";
|
@@ -87,10 +87,7 @@ export const useThreadViewportAutoScroll = <TElement extends HTMLElement>({
|
|
87
87
|
});
|
88
88
|
|
89
89
|
// autoscroll on run start
|
90
|
-
|
91
|
-
useEffect(() => {
|
92
|
-
return threadRuntime.unstable_on("run-start", () => scrollToBottom("auto"));
|
93
|
-
}, [scrollToBottom, threadRuntime]);
|
90
|
+
useAssistantEvent("thread.run-start", () => scrollToBottom("auto"));
|
94
91
|
|
95
92
|
const autoScrollRef = useComposedRefs<TElement>(resizeRef, scrollRef, divRef);
|
96
93
|
return autoScrollRef as RefCallback<TElement>;
|
@@ -1,8 +1,10 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
3
|
import { ComponentType, FC, memo, useMemo } from "react";
|
4
|
-
import {
|
5
|
-
|
4
|
+
import {
|
5
|
+
ThreadListItemByIndexProvider,
|
6
|
+
useAssistantState,
|
7
|
+
} from "../../context";
|
6
8
|
|
7
9
|
export namespace ThreadListPrimitiveItems {
|
8
10
|
export type Props = {
|
@@ -40,21 +42,12 @@ export namespace ThreadListPrimitiveItemByIndex {
|
|
40
42
|
export const ThreadListPrimitiveItemByIndex: FC<ThreadListPrimitiveItemByIndex.Props> =
|
41
43
|
memo(
|
42
44
|
({ index, archived = false, components }) => {
|
43
|
-
const assistantRuntime = useAssistantRuntime();
|
44
|
-
const runtime = useMemo(
|
45
|
-
() =>
|
46
|
-
archived
|
47
|
-
? assistantRuntime.threads.getArchivedItemByIndex(index)
|
48
|
-
: assistantRuntime.threads.getItemByIndex(index),
|
49
|
-
[assistantRuntime, index, archived],
|
50
|
-
);
|
51
|
-
|
52
45
|
const ThreadListItemComponent = components.ThreadListItem;
|
53
46
|
|
54
47
|
return (
|
55
|
-
<
|
48
|
+
<ThreadListItemByIndexProvider index={index} archived={archived}>
|
56
49
|
<ThreadListItemComponent />
|
57
|
-
</
|
50
|
+
</ThreadListItemByIndexProvider>
|
58
51
|
);
|
59
52
|
},
|
60
53
|
(prev, next) =>
|
@@ -69,8 +62,8 @@ export const ThreadListPrimitiveItems: FC<ThreadListPrimitiveItems.Props> = ({
|
|
69
62
|
archived = false,
|
70
63
|
components,
|
71
64
|
}) => {
|
72
|
-
const contentLength =
|
73
|
-
archived ?
|
65
|
+
const contentLength = useAssistantState(({ threads }) =>
|
66
|
+
archived ? threads.archivedThreadIds.length : threads.threadIds.length,
|
74
67
|
);
|
75
68
|
|
76
69
|
const listElements = useMemo(() => {
|
@@ -4,29 +4,25 @@ import {
|
|
4
4
|
ActionButtonElement,
|
5
5
|
ActionButtonProps,
|
6
6
|
} from "../../utils/createActionButton";
|
7
|
-
import { useAssistantRuntime, useThreadList } from "../../context";
|
8
7
|
import { forwardRef } from "react";
|
9
8
|
import { Primitive } from "@radix-ui/react-primitive";
|
10
9
|
import { composeEventHandlers } from "@radix-ui/primitive";
|
11
|
-
|
12
|
-
const useThreadListNew = () => {
|
13
|
-
const runtime = useAssistantRuntime();
|
14
|
-
return () => {
|
15
|
-
runtime.switchToNewThread();
|
16
|
-
};
|
17
|
-
};
|
10
|
+
import { useAssistantState, useAssistantApi } from "../../context";
|
18
11
|
|
19
12
|
export namespace ThreadListPrimitiveNew {
|
20
13
|
export type Element = ActionButtonElement;
|
21
|
-
export type Props = ActionButtonProps<
|
14
|
+
export type Props = ActionButtonProps<() => void>;
|
22
15
|
}
|
23
16
|
|
24
17
|
export const ThreadListPrimitiveNew = forwardRef<
|
25
18
|
ThreadListPrimitiveNew.Element,
|
26
19
|
ThreadListPrimitiveNew.Props
|
27
20
|
>(({ onClick, disabled, ...props }, forwardedRef) => {
|
28
|
-
const isMain =
|
29
|
-
|
21
|
+
const isMain = useAssistantState(
|
22
|
+
({ threads }) => threads.newThreadId === threads.mainThreadId,
|
23
|
+
);
|
24
|
+
|
25
|
+
const api = useAssistantApi();
|
30
26
|
|
31
27
|
return (
|
32
28
|
<Primitive.button
|
@@ -34,9 +30,9 @@ export const ThreadListPrimitiveNew = forwardRef<
|
|
34
30
|
{...(isMain ? { "data-active": "true", "aria-current": "true" } : null)}
|
35
31
|
{...props}
|
36
32
|
ref={forwardedRef}
|
37
|
-
disabled={disabled
|
33
|
+
disabled={disabled}
|
38
34
|
onClick={composeEventHandlers(onClick, () => {
|
39
|
-
|
35
|
+
api.threads().switchToNewThread();
|
40
36
|
})}
|
41
37
|
/>
|
42
38
|
);
|
@@ -5,14 +5,14 @@ import {
|
|
5
5
|
ActionButtonProps,
|
6
6
|
createActionButton,
|
7
7
|
} from "../../utils/createActionButton";
|
8
|
-
import {
|
8
|
+
import { useAssistantApi } from "../../context";
|
9
9
|
import { useCallback } from "react";
|
10
10
|
|
11
11
|
const useThreadListItemArchive = () => {
|
12
|
-
const
|
12
|
+
const api = useAssistantApi();
|
13
13
|
return useCallback(() => {
|
14
|
-
|
15
|
-
}, [
|
14
|
+
api.threadListItem().archive();
|
15
|
+
}, [api]);
|
16
16
|
};
|
17
17
|
|
18
18
|
export namespace ThreadListItemPrimitiveArchive {
|
@@ -5,13 +5,14 @@ import {
|
|
5
5
|
ActionButtonProps,
|
6
6
|
createActionButton,
|
7
7
|
} from "../../utils/createActionButton";
|
8
|
-
import {
|
8
|
+
import { useAssistantApi } from "../../context";
|
9
|
+
import { useCallback } from "react";
|
9
10
|
|
10
11
|
const useThreadListItemDelete = () => {
|
11
|
-
const
|
12
|
-
return () => {
|
13
|
-
|
14
|
-
};
|
12
|
+
const api = useAssistantApi();
|
13
|
+
return useCallback(() => {
|
14
|
+
api.threadListItem().delete();
|
15
|
+
}, [api]);
|
15
16
|
};
|
16
17
|
|
17
18
|
export namespace ThreadListItemPrimitiveDelete {
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
import { Primitive } from "@radix-ui/react-primitive";
|
4
4
|
import { type ComponentRef, forwardRef, ComponentPropsWithoutRef } from "react";
|
5
|
-
import {
|
5
|
+
import { useAssistantState } from "../../context";
|
6
6
|
|
7
7
|
type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>;
|
8
8
|
|
@@ -15,7 +15,9 @@ export const ThreadListItemPrimitiveRoot = forwardRef<
|
|
15
15
|
ThreadListItemPrimitiveRoot.Element,
|
16
16
|
ThreadListItemPrimitiveRoot.Props
|
17
17
|
>((props, ref) => {
|
18
|
-
const isMain =
|
18
|
+
const isMain = useAssistantState(
|
19
|
+
({ threads, threadListItem }) => threads.mainThreadId === threadListItem.id,
|
20
|
+
);
|
19
21
|
|
20
22
|
return (
|
21
23
|
<Primitive.div
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
3
|
import type { FC, ReactNode } from "react";
|
4
|
-
import {
|
4
|
+
import { useAssistantState } from "../../context";
|
5
5
|
|
6
6
|
export namespace ThreadListItemPrimitiveTitle {
|
7
7
|
export type Props = {
|
@@ -12,7 +12,7 @@ export namespace ThreadListItemPrimitiveTitle {
|
|
12
12
|
export const ThreadListItemPrimitiveTitle: FC<
|
13
13
|
ThreadListItemPrimitiveTitle.Props
|
14
14
|
> = ({ fallback }) => {
|
15
|
-
const title =
|
15
|
+
const title = useAssistantState(({ threadListItem }) => threadListItem.title);
|
16
16
|
return <>{title || fallback}</>;
|
17
17
|
};
|
18
18
|
|
@@ -5,13 +5,14 @@ import {
|
|
5
5
|
ActionButtonProps,
|
6
6
|
createActionButton,
|
7
7
|
} from "../../utils/createActionButton";
|
8
|
-
import {
|
8
|
+
import { useAssistantApi } from "../../context";
|
9
|
+
import { useCallback } from "react";
|
9
10
|
|
10
11
|
const useThreadListItemTrigger = () => {
|
11
|
-
const
|
12
|
-
return () => {
|
13
|
-
|
14
|
-
};
|
12
|
+
const api = useAssistantApi();
|
13
|
+
return useCallback(() => {
|
14
|
+
api.threadListItem().switchTo();
|
15
|
+
}, [api]);
|
15
16
|
};
|
16
17
|
|
17
18
|
export namespace ThreadListItemPrimitiveTrigger {
|
@@ -5,13 +5,14 @@ import {
|
|
5
5
|
ActionButtonProps,
|
6
6
|
createActionButton,
|
7
7
|
} from "../../utils/createActionButton";
|
8
|
-
import {
|
8
|
+
import { useAssistantApi } from "../../context";
|
9
|
+
import { useCallback } from "react";
|
9
10
|
|
10
11
|
const useThreadListItemUnarchive = () => {
|
11
|
-
const
|
12
|
-
return () => {
|
13
|
-
|
14
|
-
};
|
12
|
+
const api = useAssistantApi();
|
13
|
+
return useCallback(() => {
|
14
|
+
api.threadListItem().unarchive();
|
15
|
+
}, [api]);
|
15
16
|
};
|
16
17
|
|
17
18
|
export namespace ThreadListItemPrimitiveUnarchive {
|
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
import { createContext, FC, ReactNode, useContext } from "react";
|
4
4
|
import { ThreadHistoryAdapter } from "./thread-history/ThreadHistoryAdapter";
|
5
|
+
import { AttachmentAdapter } from "./attachment/AttachmentAdapter";
|
5
6
|
import { ModelContextProvider } from "../../model-context";
|
6
7
|
|
7
8
|
export type RuntimeAdapters = {
|
8
9
|
modelContext?: ModelContextProvider;
|
9
10
|
history?: ThreadHistoryAdapter;
|
11
|
+
attachments?: AttachmentAdapter;
|
10
12
|
};
|
11
13
|
|
12
14
|
const RuntimeAdaptersContext = createContext<RuntimeAdapters | null>(null);
|
@@ -0,0 +1,101 @@
|
|
1
|
+
import type { AssistantCloud } from "assistant-cloud";
|
2
|
+
import {
|
3
|
+
Attachment,
|
4
|
+
PendingAttachment,
|
5
|
+
CompleteAttachment,
|
6
|
+
} from "../../../types/AttachmentTypes";
|
7
|
+
import { ThreadUserMessagePart } from "../../../types/MessagePartTypes";
|
8
|
+
import { AttachmentAdapter } from "./AttachmentAdapter";
|
9
|
+
|
10
|
+
const guessAttachmentType = (
|
11
|
+
contentType: string,
|
12
|
+
): "image" | "document" | "file" => {
|
13
|
+
if (contentType.startsWith("image/")) return "image";
|
14
|
+
if (contentType.startsWith("text/")) return "document";
|
15
|
+
return "file";
|
16
|
+
};
|
17
|
+
|
18
|
+
export class CloudFileAttachmentAdapter implements AttachmentAdapter {
|
19
|
+
public accept = "*";
|
20
|
+
|
21
|
+
constructor(private cloud: AssistantCloud) {}
|
22
|
+
|
23
|
+
private uploadedUrls = new Map<string, string>();
|
24
|
+
|
25
|
+
public async *add({
|
26
|
+
file,
|
27
|
+
}: {
|
28
|
+
file: File;
|
29
|
+
}): AsyncGenerator<PendingAttachment, void> {
|
30
|
+
const id = crypto.randomUUID();
|
31
|
+
const type = guessAttachmentType(file.type);
|
32
|
+
let attachment: PendingAttachment = {
|
33
|
+
id,
|
34
|
+
type,
|
35
|
+
name: file.name,
|
36
|
+
contentType: file.type,
|
37
|
+
file,
|
38
|
+
status: { type: "running", reason: "uploading", progress: 0 },
|
39
|
+
};
|
40
|
+
yield attachment;
|
41
|
+
|
42
|
+
try {
|
43
|
+
const { signedUrl, publicUrl } =
|
44
|
+
await this.cloud.files.generatePresignedUploadUrl({
|
45
|
+
filename: file.name,
|
46
|
+
});
|
47
|
+
await fetch(signedUrl, {
|
48
|
+
method: "PUT",
|
49
|
+
body: file,
|
50
|
+
headers: {
|
51
|
+
"Content-Type": file.type,
|
52
|
+
},
|
53
|
+
mode: "cors",
|
54
|
+
});
|
55
|
+
this.uploadedUrls.set(id, publicUrl);
|
56
|
+
attachment = {
|
57
|
+
...attachment,
|
58
|
+
status: { type: "requires-action", reason: "composer-send" },
|
59
|
+
};
|
60
|
+
yield attachment;
|
61
|
+
} catch {
|
62
|
+
attachment = {
|
63
|
+
...attachment,
|
64
|
+
status: { type: "incomplete", reason: "error" },
|
65
|
+
};
|
66
|
+
yield attachment;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
public async remove(attachment: Attachment): Promise<void> {
|
71
|
+
this.uploadedUrls.delete(attachment.id);
|
72
|
+
}
|
73
|
+
|
74
|
+
public async send(
|
75
|
+
attachment: PendingAttachment,
|
76
|
+
): Promise<CompleteAttachment> {
|
77
|
+
const url = this.uploadedUrls.get(attachment.id);
|
78
|
+
if (!url) throw new Error("Attachment not uploaded");
|
79
|
+
this.uploadedUrls.delete(attachment.id);
|
80
|
+
|
81
|
+
let content: ThreadUserMessagePart[];
|
82
|
+
if (attachment.type === "image") {
|
83
|
+
content = [{ type: "image", image: url, filename: attachment.name }];
|
84
|
+
} else {
|
85
|
+
content = [
|
86
|
+
{
|
87
|
+
type: "file",
|
88
|
+
data: url,
|
89
|
+
mimeType: attachment.contentType,
|
90
|
+
filename: attachment.name,
|
91
|
+
},
|
92
|
+
];
|
93
|
+
}
|
94
|
+
|
95
|
+
return {
|
96
|
+
...attachment,
|
97
|
+
status: { type: "complete" },
|
98
|
+
content,
|
99
|
+
};
|
100
|
+
}
|
101
|
+
}
|
@@ -2,3 +2,4 @@ export type { AttachmentAdapter } from "./AttachmentAdapter";
|
|
2
2
|
export { SimpleImageAttachmentAdapter } from "./SimpleImageAttachmentAdapter";
|
3
3
|
export { SimpleTextAttachmentAdapter } from "./SimpleTextAttachmentAdapter";
|
4
4
|
export { CompositeAttachmentAdapter } from "./CompositeAttachmentAdapter";
|
5
|
+
export { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter";
|
@@ -23,7 +23,7 @@ export abstract class BaseComposerRuntimeCore
|
|
23
23
|
|
24
24
|
protected abstract getAttachmentAdapter(): AttachmentAdapter | undefined;
|
25
25
|
|
26
|
-
public
|
26
|
+
public get attachmentAccept(): string {
|
27
27
|
return this.getAttachmentAdapter()?.accept ?? "*";
|
28
28
|
}
|
29
29
|
|
@@ -173,7 +173,7 @@ export abstract class BaseComposerRuntimeCore
|
|
173
173
|
];
|
174
174
|
else {
|
175
175
|
this._attachments = [...this._attachments, a];
|
176
|
-
this._notifyEventSubscribers("
|
176
|
+
this._notifyEventSubscribers("attachment-add");
|
177
177
|
}
|
178
178
|
|
179
179
|
this._notifySubscribers();
|
@@ -188,7 +188,7 @@ export abstract class BaseComposerRuntimeCore
|
|
188
188
|
upsertAttachment(await promiseOrGenerator);
|
189
189
|
}
|
190
190
|
|
191
|
-
this._notifyEventSubscribers("
|
191
|
+
this._notifyEventSubscribers("attachment-add");
|
192
192
|
this._notifySubscribers();
|
193
193
|
}
|
194
194
|
|
@@ -92,7 +92,11 @@ export abstract class BaseThreadRuntimeCore implements ThreadRuntimeCore {
|
|
92
92
|
}
|
93
93
|
|
94
94
|
public getMessageById(messageId: string) {
|
95
|
-
|
95
|
+
try {
|
96
|
+
return this.repository.getMessage(messageId);
|
97
|
+
} catch {
|
98
|
+
return undefined;
|
99
|
+
}
|
96
100
|
}
|
97
101
|
|
98
102
|
public getBranches(messageId: string): string[] {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { Attachment, PendingAttachment, Unsubscribe } from "../../types";
|
2
2
|
import { MessageRole, RunConfig } from "../../types/AssistantTypes";
|
3
3
|
|
4
|
-
export type ComposerRuntimeEventType = "send" | "
|
4
|
+
export type ComposerRuntimeEventType = "send" | "attachment-add";
|
5
5
|
|
6
6
|
export type ComposerRuntimeCore = Readonly<{
|
7
7
|
isEditing: boolean;
|
@@ -10,8 +10,8 @@ export type ComposerRuntimeCore = Readonly<{
|
|
10
10
|
isEmpty: boolean;
|
11
11
|
|
12
12
|
attachments: readonly Attachment[];
|
13
|
+
attachmentAccept: string;
|
13
14
|
|
14
|
-
getAttachmentAccept(): string;
|
15
15
|
addAttachment: (file: File) => Promise<void>;
|
16
16
|
removeAttachment: (attachmentId: string) => Promise<void>;
|
17
17
|
|
@@ -2,10 +2,10 @@ import { Unsubscribe } from "../../types";
|
|
2
2
|
import { ThreadRuntimeCore } from "./ThreadRuntimeCore";
|
3
3
|
import type { ThreadListItemStatus } from "../../api/RuntimeBindings";
|
4
4
|
|
5
|
-
type ThreadListItemCoreState = {
|
6
|
-
readonly
|
7
|
-
readonly remoteId
|
8
|
-
readonly externalId
|
5
|
+
export type ThreadListItemCoreState = {
|
6
|
+
readonly id: string;
|
7
|
+
readonly remoteId: string | undefined;
|
8
|
+
readonly externalId: string | undefined;
|
9
9
|
|
10
10
|
readonly status: ThreadListItemStatus;
|
11
11
|
readonly title?: string | undefined;
|
@@ -21,6 +21,8 @@ export type ThreadListRuntimeCore = {
|
|
21
21
|
threadIds: readonly string[];
|
22
22
|
archivedThreadIds: readonly string[];
|
23
23
|
|
24
|
+
readonly threadData: Readonly<Record<string, ThreadListItemCoreState>>;
|
25
|
+
|
24
26
|
getMainThreadRuntimeCore(): ThreadRuntimeCore;
|
25
27
|
getThreadRuntimeCore(threadId: string): ThreadRuntimeCore;
|
26
28
|
|
@@ -12,7 +12,9 @@ import { ExportedMessageRepository } from "../utils/MessageRepository";
|
|
12
12
|
|
13
13
|
export type ExternalStoreThreadData<TState extends "regular" | "archived"> = {
|
14
14
|
status: TState;
|
15
|
-
|
15
|
+
id: string;
|
16
|
+
remoteId?: string | undefined;
|
17
|
+
externalId?: string | undefined;
|
16
18
|
title?: string | undefined;
|
17
19
|
};
|
18
20
|
|
@@ -59,7 +61,8 @@ type ExternalStoreAdapterBase<T> = {
|
|
59
61
|
suggestions?: readonly ThreadSuggestion[] | undefined;
|
60
62
|
extras?: unknown;
|
61
63
|
|
62
|
-
setMessages?: ((messages: T[]) => void) | undefined;
|
64
|
+
setMessages?: ((messages: readonly T[]) => void) | undefined;
|
65
|
+
onImport?: ((messages: readonly ThreadMessage[]) => void) | undefined;
|
63
66
|
onNew: (message: AppendMessage) => Promise<void>;
|
64
67
|
onEdit?: ((message: AppendMessage) => Promise<void>) | undefined;
|
65
68
|
onReload?: // TODO: remove parentId in 0.8.0
|
@@ -1,21 +1,26 @@
|
|
1
1
|
import type { Unsubscribe } from "../../types";
|
2
2
|
import { ExternalStoreThreadRuntimeCore } from "./ExternalStoreThreadRuntimeCore";
|
3
|
-
import { ThreadListRuntimeCore } from "../core/ThreadListRuntimeCore";
|
4
3
|
import {
|
5
|
-
|
6
|
-
|
7
|
-
} from "
|
4
|
+
ThreadListItemCoreState,
|
5
|
+
ThreadListRuntimeCore,
|
6
|
+
} from "../core/ThreadListRuntimeCore";
|
7
|
+
import { ExternalStoreThreadListAdapter } from "./ExternalStoreAdapter";
|
8
8
|
|
9
9
|
export type ExternalStoreThreadFactory = () => ExternalStoreThreadRuntimeCore;
|
10
10
|
|
11
11
|
const EMPTY_ARRAY = Object.freeze([]);
|
12
12
|
const DEFAULT_THREAD_ID = "DEFAULT_THREAD_ID";
|
13
13
|
const DEFAULT_THREADS = Object.freeze([DEFAULT_THREAD_ID]);
|
14
|
-
const DEFAULT_THREAD
|
15
|
-
|
14
|
+
const DEFAULT_THREAD = Object.freeze({
|
15
|
+
id: DEFAULT_THREAD_ID,
|
16
|
+
remoteId: undefined,
|
17
|
+
externalId: undefined,
|
16
18
|
status: "regular",
|
17
19
|
});
|
18
20
|
const RESOLVED_PROMISE = Promise.resolve();
|
21
|
+
const DEFAULT_THREAD_DATA = Object.freeze({
|
22
|
+
[DEFAULT_THREAD_ID]: DEFAULT_THREAD,
|
23
|
+
});
|
19
24
|
|
20
25
|
export class ExternalStoreThreadListRuntimeCore
|
21
26
|
implements ThreadListRuntimeCore
|
@@ -23,6 +28,8 @@ export class ExternalStoreThreadListRuntimeCore
|
|
23
28
|
private _mainThreadId: string = DEFAULT_THREAD_ID;
|
24
29
|
private _threads: readonly string[] = DEFAULT_THREADS;
|
25
30
|
private _archivedThreads: readonly string[] = EMPTY_ARRAY;
|
31
|
+
private _threadData: Readonly<Record<string, ThreadListItemCoreState>> =
|
32
|
+
DEFAULT_THREAD_DATA;
|
26
33
|
|
27
34
|
public get isLoading() {
|
28
35
|
return this.adapter.isLoading ?? false;
|
@@ -40,6 +47,10 @@ export class ExternalStoreThreadListRuntimeCore
|
|
40
47
|
return this._archivedThreads;
|
41
48
|
}
|
42
49
|
|
50
|
+
public get threadData() {
|
51
|
+
return this._threadData;
|
52
|
+
}
|
53
|
+
|
43
54
|
public getLoadThreadsPromise() {
|
44
55
|
return RESOLVED_PROMISE;
|
45
56
|
}
|
@@ -55,6 +66,7 @@ export class ExternalStoreThreadListRuntimeCore
|
|
55
66
|
private threadFactory: ExternalStoreThreadFactory,
|
56
67
|
) {
|
57
68
|
this._mainThread = this.threadFactory();
|
69
|
+
this.__internal_setAdapter(adapter, true);
|
58
70
|
}
|
59
71
|
|
60
72
|
public getMainThreadRuntimeCore() {
|
@@ -67,16 +79,19 @@ export class ExternalStoreThreadListRuntimeCore
|
|
67
79
|
|
68
80
|
public getItemById(threadId: string) {
|
69
81
|
for (const thread of this.adapter.threads ?? []) {
|
70
|
-
if (thread.
|
82
|
+
if (thread.id === threadId) return thread as any;
|
71
83
|
}
|
72
84
|
for (const thread of this.adapter.archivedThreads ?? []) {
|
73
|
-
if (thread.
|
85
|
+
if (thread.id === threadId) return thread as any;
|
74
86
|
}
|
75
87
|
if (threadId === DEFAULT_THREAD_ID) return DEFAULT_THREAD;
|
76
88
|
return undefined;
|
77
89
|
}
|
78
90
|
|
79
|
-
public __internal_setAdapter(
|
91
|
+
public __internal_setAdapter(
|
92
|
+
adapter: ExternalStoreThreadListAdapter,
|
93
|
+
initialLoad = false,
|
94
|
+
) {
|
80
95
|
const previousAdapter = this.adapter;
|
81
96
|
this.adapter = adapter;
|
82
97
|
|
@@ -90,6 +105,7 @@ export class ExternalStoreThreadListRuntimeCore
|
|
90
105
|
previousAdapter.archivedThreads ?? EMPTY_ARRAY;
|
91
106
|
|
92
107
|
if (
|
108
|
+
!initialLoad &&
|
93
109
|
previousThreadId === newThreadId &&
|
94
110
|
previousThreads === newThreads &&
|
95
111
|
previousArchivedThreads === newArchivedThreads
|
@@ -97,14 +113,39 @@ export class ExternalStoreThreadListRuntimeCore
|
|
97
113
|
return;
|
98
114
|
}
|
99
115
|
|
116
|
+
this._threadData = {
|
117
|
+
...DEFAULT_THREAD_DATA,
|
118
|
+
...Object.fromEntries(
|
119
|
+
adapter.threads?.map((t) => [
|
120
|
+
t.id,
|
121
|
+
{
|
122
|
+
...t,
|
123
|
+
remoteId: t.remoteId,
|
124
|
+
externalId: t.externalId,
|
125
|
+
status: "regular",
|
126
|
+
},
|
127
|
+
]) ?? [],
|
128
|
+
),
|
129
|
+
...Object.fromEntries(
|
130
|
+
adapter.archivedThreads?.map((t) => [
|
131
|
+
t.id,
|
132
|
+
{
|
133
|
+
...t,
|
134
|
+
remoteId: t.remoteId,
|
135
|
+
externalId: t.externalId,
|
136
|
+
status: "archived",
|
137
|
+
},
|
138
|
+
]) ?? [],
|
139
|
+
),
|
140
|
+
};
|
141
|
+
|
100
142
|
if (previousThreads !== newThreads) {
|
101
|
-
this._threads =
|
102
|
-
this.adapter.threads?.map((t) => t.threadId) ?? EMPTY_ARRAY;
|
143
|
+
this._threads = this.adapter.threads?.map((t) => t.id) ?? EMPTY_ARRAY;
|
103
144
|
}
|
104
145
|
|
105
146
|
if (previousArchivedThreads !== newArchivedThreads) {
|
106
147
|
this._archivedThreads =
|
107
|
-
this.adapter.archivedThreads?.map((t) => t.
|
148
|
+
this.adapter.archivedThreads?.map((t) => t.id) ?? EMPTY_ARRAY;
|
108
149
|
}
|
109
150
|
|
110
151
|
if (previousThreadId !== newThreadId) {
|
@@ -297,6 +297,10 @@ export class ExternalStoreThreadRuntimeCore
|
|
297
297
|
this._assistantOptimisticId = null;
|
298
298
|
|
299
299
|
super.import(data);
|
300
|
+
|
301
|
+
if (this._store.onImport) {
|
302
|
+
this._store.onImport(this.repository.getMessages());
|
303
|
+
}
|
300
304
|
}
|
301
305
|
|
302
306
|
private updateMessages = (messages: readonly ThreadMessage[]) => {
|