@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
@@ -0,0 +1,88 @@
|
|
1
|
+
import { resource, tapEffect } from "@assistant-ui/tap";
|
2
|
+
import {
|
3
|
+
ThreadListItemEventType,
|
4
|
+
ThreadListItemRuntime,
|
5
|
+
} from "../api/ThreadListItemRuntime";
|
6
|
+
import { ThreadListItemStatus, Unsubscribe } from "../types";
|
7
|
+
import { tapApi } from "../utils/tap-store";
|
8
|
+
import { tapSubscribable } from "./util-hooks/tapSubscribable";
|
9
|
+
import { EventManagerActions } from "./EventManagerClient";
|
10
|
+
|
11
|
+
export type ThreadListItemClientState = {
|
12
|
+
readonly id: string;
|
13
|
+
readonly remoteId: string | undefined;
|
14
|
+
readonly externalId: string | undefined;
|
15
|
+
readonly title?: string | undefined;
|
16
|
+
readonly status: ThreadListItemStatus;
|
17
|
+
};
|
18
|
+
|
19
|
+
export type ThreadListItemClientActions = {
|
20
|
+
switchTo(): void;
|
21
|
+
rename(newTitle: string): void;
|
22
|
+
archive(): void;
|
23
|
+
unarchive(): void;
|
24
|
+
delete(): void;
|
25
|
+
generateTitle(): void;
|
26
|
+
initialize(): Promise<{ remoteId: string; externalId: string | undefined }>;
|
27
|
+
detach(): void;
|
28
|
+
|
29
|
+
/** @internal */
|
30
|
+
__internal_getRuntime(): ThreadListItemRuntime;
|
31
|
+
};
|
32
|
+
|
33
|
+
export const ThreadListItemClient = resource(
|
34
|
+
({
|
35
|
+
runtime,
|
36
|
+
events,
|
37
|
+
}: {
|
38
|
+
runtime: ThreadListItemRuntime;
|
39
|
+
events: EventManagerActions;
|
40
|
+
}) => {
|
41
|
+
const runtimeState = tapSubscribable(runtime);
|
42
|
+
|
43
|
+
// Bind thread list item events to event manager
|
44
|
+
tapEffect(() => {
|
45
|
+
const unsubscribers: Unsubscribe[] = [];
|
46
|
+
|
47
|
+
// Subscribe to thread list item events
|
48
|
+
const threadListItemEvents: ThreadListItemEventType[] = [
|
49
|
+
"switched-to",
|
50
|
+
"switched-away",
|
51
|
+
];
|
52
|
+
|
53
|
+
for (const event of threadListItemEvents) {
|
54
|
+
const unsubscribe = runtime.unstable_on(event, () => {
|
55
|
+
events.emit(`thread-list-item.${event}`, {
|
56
|
+
threadId: runtime.getState()!.id,
|
57
|
+
});
|
58
|
+
});
|
59
|
+
unsubscribers.push(unsubscribe);
|
60
|
+
}
|
61
|
+
|
62
|
+
return () => {
|
63
|
+
for (const unsub of unsubscribers) unsub();
|
64
|
+
};
|
65
|
+
}, [runtime, events]);
|
66
|
+
|
67
|
+
const api = tapApi<ThreadListItemClientState, ThreadListItemClientActions>(
|
68
|
+
runtimeState,
|
69
|
+
{
|
70
|
+
switchTo: runtime.switchTo,
|
71
|
+
rename: runtime.rename,
|
72
|
+
archive: runtime.archive,
|
73
|
+
unarchive: runtime.unarchive,
|
74
|
+
delete: runtime.delete,
|
75
|
+
generateTitle: runtime.generateTitle,
|
76
|
+
initialize: runtime.initialize,
|
77
|
+
detach: runtime.detach,
|
78
|
+
__internal_getRuntime: () => runtime,
|
79
|
+
},
|
80
|
+
);
|
81
|
+
|
82
|
+
return {
|
83
|
+
state: runtimeState,
|
84
|
+
api,
|
85
|
+
key: runtimeState.id,
|
86
|
+
};
|
87
|
+
},
|
88
|
+
);
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { ResourceElement, tapResources } from "@assistant-ui/tap";
|
2
|
+
import { ActionsObject } from "../../utils/tap-store";
|
3
|
+
import { StoreApi } from "../../utils/tap-store/tap-store-api";
|
4
|
+
|
5
|
+
export const tapLookupResources = <TState, TActions extends ActionsObject>(
|
6
|
+
elements: ResourceElement<{
|
7
|
+
key: string | undefined;
|
8
|
+
state: TState;
|
9
|
+
api: StoreApi<TState, TActions>;
|
10
|
+
}>[],
|
11
|
+
) => {
|
12
|
+
const resources = tapResources(elements);
|
13
|
+
|
14
|
+
return {
|
15
|
+
state: resources.map((r) => r.state),
|
16
|
+
api: (lookup: { index: number } | { key: string }) => {
|
17
|
+
const value =
|
18
|
+
"index" in lookup
|
19
|
+
? resources[lookup.index]?.api
|
20
|
+
: resources.find((r) => r.key === lookup.key)?.api;
|
21
|
+
|
22
|
+
if (!value) {
|
23
|
+
throw new Error(
|
24
|
+
`tapLookupResources: Resource not found for lookup: ${JSON.stringify(lookup)}`,
|
25
|
+
);
|
26
|
+
}
|
27
|
+
|
28
|
+
return value;
|
29
|
+
},
|
30
|
+
};
|
31
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { tapState, tapEffect } from "@assistant-ui/tap";
|
2
|
+
import { SubscribableWithState } from "../../api/subscribable/Subscribable";
|
3
|
+
|
4
|
+
export const tapSubscribable = <T>(
|
5
|
+
subscribable: Omit<SubscribableWithState<T, any>, "path">,
|
6
|
+
) => {
|
7
|
+
const [, setState] = tapState(subscribable.getState);
|
8
|
+
tapEffect(() => {
|
9
|
+
setState(subscribable.getState());
|
10
|
+
return subscribable.subscribe(() => {
|
11
|
+
setState(subscribable.getState());
|
12
|
+
});
|
13
|
+
}, [subscribable]);
|
14
|
+
|
15
|
+
return subscribable.getState();
|
16
|
+
};
|
@@ -1,10 +1,8 @@
|
|
1
1
|
import { RefObject, useState } from "react";
|
2
|
-
import { useThreadListItemRuntime } from "../context";
|
3
2
|
import { ThreadHistoryAdapter } from "../runtimes/adapters/thread-history/ThreadHistoryAdapter";
|
4
3
|
import { ExportedMessageRepositoryItem } from "../runtimes/utils/MessageRepository";
|
5
4
|
import { AssistantCloud } from "assistant-cloud";
|
6
5
|
import { auiV0Decode, auiV0Encode } from "./auiV0";
|
7
|
-
import { ThreadListItemRuntime } from "../api";
|
8
6
|
import {
|
9
7
|
MessageFormatAdapter,
|
10
8
|
MessageFormatItem,
|
@@ -13,6 +11,11 @@ import {
|
|
13
11
|
} from "../runtimes/adapters/thread-history/MessageFormatAdapter";
|
14
12
|
import { GenericThreadHistoryAdapter } from "../runtimes/adapters/thread-history/ThreadHistoryAdapter";
|
15
13
|
import { ReadonlyJSONObject } from "assistant-stream/utils";
|
14
|
+
import {
|
15
|
+
AssistantApi,
|
16
|
+
useAssistantApi,
|
17
|
+
} from "../context/react/AssistantApiContext";
|
18
|
+
import { ThreadListItemRuntime } from "../api";
|
16
19
|
|
17
20
|
// Global WeakMap to store message ID mappings across adapter instances
|
18
21
|
const globalMessageIdMapping = new WeakMap<
|
@@ -55,14 +58,23 @@ class FormattedThreadHistoryAdapter<TMessage, TStorageFormat>
|
|
55
58
|
class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
|
56
59
|
constructor(
|
57
60
|
private cloudRef: RefObject<AssistantCloud>,
|
58
|
-
private
|
61
|
+
private store: AssistantApi,
|
59
62
|
) {}
|
60
63
|
|
61
64
|
private get _getIdForLocalId(): Record<string, string | Promise<string>> {
|
62
|
-
if (
|
63
|
-
globalMessageIdMapping.
|
65
|
+
if (
|
66
|
+
!globalMessageIdMapping.has(
|
67
|
+
this.store.threadListItem().__internal_getRuntime(),
|
68
|
+
)
|
69
|
+
) {
|
70
|
+
globalMessageIdMapping.set(
|
71
|
+
this.store.threadListItem().__internal_getRuntime(),
|
72
|
+
{},
|
73
|
+
);
|
64
74
|
}
|
65
|
-
return globalMessageIdMapping.get(
|
75
|
+
return globalMessageIdMapping.get(
|
76
|
+
this.store.threadListItem().__internal_getRuntime(),
|
77
|
+
)!;
|
66
78
|
}
|
67
79
|
|
68
80
|
withFormat<TMessage, TStorageFormat>(
|
@@ -72,7 +84,7 @@ class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
|
|
72
84
|
}
|
73
85
|
|
74
86
|
async append({ parentId, message }: ExportedMessageRepositoryItem) {
|
75
|
-
const { remoteId } = await this.
|
87
|
+
const { remoteId } = await this.store.threadListItem().initialize();
|
76
88
|
const task = this.cloudRef.current.threads.messages
|
77
89
|
.create(remoteId, {
|
78
90
|
parent_id: parentId
|
@@ -92,7 +104,7 @@ class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
|
|
92
104
|
}
|
93
105
|
|
94
106
|
async load() {
|
95
|
-
const remoteId = this.
|
107
|
+
const remoteId = this.store.threadListItem().getState().remoteId;
|
96
108
|
if (!remoteId) return { messages: [] };
|
97
109
|
const { messages } = await this.cloudRef.current.threads.messages.list(
|
98
110
|
remoteId,
|
@@ -118,7 +130,7 @@ class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
|
|
118
130
|
format: string,
|
119
131
|
content: T,
|
120
132
|
) {
|
121
|
-
const { remoteId } = await this.
|
133
|
+
const { remoteId } = await this.store.threadListItem().initialize();
|
122
134
|
|
123
135
|
const task = this.cloudRef.current.threads.messages
|
124
136
|
.create(remoteId, {
|
@@ -144,7 +156,7 @@ class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
|
|
144
156
|
message: MessageStorageEntry<TStorageFormat>,
|
145
157
|
) => MessageFormatItem<TMessage>,
|
146
158
|
): Promise<MessageFormatRepository<TMessage>> {
|
147
|
-
const remoteId = this.
|
159
|
+
const remoteId = this.store.threadListItem().getState().remoteId;
|
148
160
|
if (!remoteId) return { messages: [] };
|
149
161
|
|
150
162
|
const { messages } = await this.cloudRef.current.threads.messages.list(
|
@@ -173,10 +185,9 @@ class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
|
|
173
185
|
export const useAssistantCloudThreadHistoryAdapter = (
|
174
186
|
cloudRef: RefObject<AssistantCloud>,
|
175
187
|
): ThreadHistoryAdapter => {
|
176
|
-
const
|
188
|
+
const store = useAssistantApi();
|
177
189
|
const [adapter] = useState(
|
178
|
-
() =>
|
179
|
-
new AssistantCloudThreadHistoryAdapter(cloudRef, threadListItemRuntime),
|
190
|
+
() => new AssistantCloudThreadHistoryAdapter(cloudRef, store),
|
180
191
|
);
|
181
192
|
|
182
193
|
return adapter;
|
@@ -1,23 +1,14 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
|
-
import {
|
4
|
-
|
5
|
-
PropsWithChildren,
|
6
|
-
memo,
|
7
|
-
useEffect,
|
8
|
-
useMemo,
|
9
|
-
useState,
|
10
|
-
} from "react";
|
11
|
-
import { AssistantContext } from "../react/AssistantContext";
|
12
|
-
import { makeAssistantToolUIsStore } from "../stores/AssistantToolUIs";
|
13
|
-
import { ThreadRuntimeProvider } from "./ThreadRuntimeProvider";
|
3
|
+
import { FC, memo, PropsWithChildren } from "react";
|
4
|
+
import { AssistantApiProvider } from "../react/AssistantApiContext";
|
14
5
|
import { AssistantRuntime } from "../../api/AssistantRuntime";
|
15
|
-
import { create } from "zustand";
|
16
|
-
import { writableStore } from "../ReadonlyStore";
|
17
6
|
import { AssistantRuntimeCore } from "../../runtimes/core/AssistantRuntimeCore";
|
18
|
-
import {
|
7
|
+
import { useAssistantRuntimeClient } from "../../client/AssistantRuntimeClient";
|
19
8
|
|
20
|
-
|
9
|
+
import { ThreadViewportProvider } from "./ThreadViewportProvider";
|
10
|
+
|
11
|
+
export namespace AssistantProvider {
|
21
12
|
export type Props = PropsWithChildren<{
|
22
13
|
/**
|
23
14
|
* The runtime to provide to the rest of your app.
|
@@ -26,52 +17,37 @@ export namespace AssistantRuntimeProvider {
|
|
26
17
|
}>;
|
27
18
|
}
|
28
19
|
|
29
|
-
const useAssistantRuntimeStore = (runtime: AssistantRuntime) => {
|
30
|
-
const [store] = useState(() => create(() => runtime));
|
31
|
-
|
32
|
-
useEffect(() => {
|
33
|
-
ensureBinding(runtime);
|
34
|
-
ensureBinding(runtime.threads);
|
35
|
-
|
36
|
-
writableStore(store).setState(runtime, true);
|
37
|
-
}, [runtime, store]);
|
38
|
-
|
39
|
-
return store;
|
40
|
-
};
|
41
|
-
|
42
|
-
const useAssistantToolUIsStore = () => {
|
43
|
-
return useMemo(() => makeAssistantToolUIsStore(), []);
|
44
|
-
};
|
45
|
-
|
46
20
|
const getRenderComponent = (runtime: AssistantRuntime) => {
|
47
21
|
return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent;
|
48
22
|
};
|
49
23
|
|
50
|
-
export const AssistantRuntimeProviderImpl: FC<
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
const
|
55
|
-
const [context] = useState(() => {
|
56
|
-
return {
|
57
|
-
useToolUIs,
|
58
|
-
useAssistantRuntime,
|
59
|
-
};
|
60
|
-
});
|
24
|
+
export const AssistantRuntimeProviderImpl: FC<AssistantProvider.Props> = ({
|
25
|
+
children,
|
26
|
+
runtime,
|
27
|
+
}) => {
|
28
|
+
const api = useAssistantRuntimeClient(runtime);
|
61
29
|
|
62
30
|
const RenderComponent = getRenderComponent(runtime);
|
63
31
|
|
64
32
|
return (
|
65
|
-
<
|
33
|
+
<AssistantProvider api={api}>
|
66
34
|
{RenderComponent && <RenderComponent />}
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
>
|
71
|
-
{children}
|
72
|
-
</ThreadRuntimeProvider>
|
73
|
-
</AssistantContext.Provider>
|
35
|
+
|
36
|
+
{children}
|
37
|
+
</AssistantProvider>
|
74
38
|
);
|
75
39
|
};
|
76
40
|
|
77
41
|
export const AssistantRuntimeProvider = memo(AssistantRuntimeProviderImpl);
|
42
|
+
|
43
|
+
const AssistantProvider: FC<
|
44
|
+
PropsWithChildren<{ api: ReturnType<typeof useAssistantRuntimeClient> }>
|
45
|
+
> = ({ children, api }) => {
|
46
|
+
return (
|
47
|
+
<AssistantApiProvider api={api}>
|
48
|
+
{/* TODO temporarily allow accessing viewport state from outside the viewport */}
|
49
|
+
{/* TODO figure out if this behavior should be deprecated, since it is quite hacky */}
|
50
|
+
<ThreadViewportProvider>{children}</ThreadViewportProvider>
|
51
|
+
</AssistantApiProvider>
|
52
|
+
);
|
53
|
+
};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
import { useMemo, type FC, type PropsWithChildren } from "react";
|
4
|
+
|
5
|
+
import {
|
6
|
+
AssistantApi,
|
7
|
+
AssistantApiProvider,
|
8
|
+
useAssistantApi,
|
9
|
+
createAssistantApiField,
|
10
|
+
} from "../react/AssistantApiContext";
|
11
|
+
|
12
|
+
export const MessageAttachmentByIndexProvider: FC<
|
13
|
+
PropsWithChildren<{
|
14
|
+
index: number;
|
15
|
+
}>
|
16
|
+
> = ({ index, children }) => {
|
17
|
+
const api = useAssistantApi();
|
18
|
+
const api2 = useMemo(() => {
|
19
|
+
return {
|
20
|
+
attachment: createAssistantApiField({
|
21
|
+
source: "message",
|
22
|
+
query: { type: "index", index },
|
23
|
+
get: () => api.message().attachment({ index }),
|
24
|
+
}),
|
25
|
+
} satisfies Partial<AssistantApi>;
|
26
|
+
}, [api, index]);
|
27
|
+
|
28
|
+
return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;
|
29
|
+
};
|
30
|
+
|
31
|
+
export const ComposerAttachmentByIndexProvider: FC<
|
32
|
+
PropsWithChildren<{
|
33
|
+
index: number;
|
34
|
+
}>
|
35
|
+
> = ({ index, children }) => {
|
36
|
+
const api = useAssistantApi();
|
37
|
+
const api2 = useMemo(() => {
|
38
|
+
return {
|
39
|
+
attachment: createAssistantApiField({
|
40
|
+
source: "composer",
|
41
|
+
query: { type: "index", index },
|
42
|
+
get: () => api.composer().attachment({ index }),
|
43
|
+
}),
|
44
|
+
} satisfies Partial<AssistantApi>;
|
45
|
+
}, [api, index]);
|
46
|
+
|
47
|
+
return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;
|
48
|
+
};
|
@@ -0,0 +1,57 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
import { useMemo, type FC, type PropsWithChildren } from "react";
|
4
|
+
import {
|
5
|
+
AssistantApi,
|
6
|
+
AssistantApiProvider,
|
7
|
+
useAssistantApi,
|
8
|
+
createAssistantApiField,
|
9
|
+
} from "../react/AssistantApiContext";
|
10
|
+
import { AssistantEvents, AssistantEventSelector } from "../../types";
|
11
|
+
import { Unsubscribe } from "@assistant-ui/tap";
|
12
|
+
import {
|
13
|
+
checkEventScope,
|
14
|
+
normalizeEventSelector,
|
15
|
+
} from "../../types/EventTypes";
|
16
|
+
|
17
|
+
export const MessageByIndexProvider: FC<
|
18
|
+
PropsWithChildren<{
|
19
|
+
index: number;
|
20
|
+
}>
|
21
|
+
> = ({ index, children }) => {
|
22
|
+
const api = useAssistantApi();
|
23
|
+
const api2 = useMemo(() => {
|
24
|
+
const getMessage = () => api.thread().message({ index });
|
25
|
+
return {
|
26
|
+
message: createAssistantApiField({
|
27
|
+
source: "thread",
|
28
|
+
query: { type: "index", index },
|
29
|
+
get: () => getMessage(),
|
30
|
+
}),
|
31
|
+
composer: createAssistantApiField({
|
32
|
+
source: "message",
|
33
|
+
query: {},
|
34
|
+
get: () => getMessage().composer,
|
35
|
+
}),
|
36
|
+
on<TEvent extends keyof AssistantEvents>(
|
37
|
+
selector: AssistantEventSelector<TEvent>,
|
38
|
+
callback: (e: AssistantEvents[TEvent]) => void,
|
39
|
+
): Unsubscribe {
|
40
|
+
const { event, scope } = normalizeEventSelector(selector);
|
41
|
+
if (
|
42
|
+
!checkEventScope("composer", scope, event) &&
|
43
|
+
!checkEventScope("message", scope, event)
|
44
|
+
)
|
45
|
+
return api.on(selector, callback);
|
46
|
+
|
47
|
+
return api.on({ scope: "thread", event }, (e) => {
|
48
|
+
if (e.messageId === getMessage().getState().id) {
|
49
|
+
callback(e);
|
50
|
+
}
|
51
|
+
});
|
52
|
+
},
|
53
|
+
} satisfies Partial<AssistantApi>;
|
54
|
+
}, [api, index]);
|
55
|
+
|
56
|
+
return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;
|
57
|
+
};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
import { useMemo, type FC, type PropsWithChildren } from "react";
|
4
|
+
import {
|
5
|
+
AssistantApi,
|
6
|
+
AssistantApiProvider,
|
7
|
+
useAssistantApi,
|
8
|
+
createAssistantApiField,
|
9
|
+
} from "../react/AssistantApiContext";
|
10
|
+
|
11
|
+
export const PartByIndexProvider: FC<
|
12
|
+
PropsWithChildren<{
|
13
|
+
index: number;
|
14
|
+
}>
|
15
|
+
> = ({ index, children }) => {
|
16
|
+
const api = useAssistantApi();
|
17
|
+
const api2 = useMemo(() => {
|
18
|
+
return {
|
19
|
+
part: createAssistantApiField({
|
20
|
+
source: "message",
|
21
|
+
query: { type: "index", index },
|
22
|
+
get: () => api.message().part({ index }),
|
23
|
+
}),
|
24
|
+
} satisfies Partial<AssistantApi>;
|
25
|
+
}, [api, index]);
|
26
|
+
|
27
|
+
return <AssistantApiProvider api={api2}>{children}</AssistantApiProvider>;
|
28
|
+
};
|
@@ -1,90 +1,65 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
|
-
import {
|
4
|
-
import { create, StoreApi, UseBoundStore } from "zustand";
|
3
|
+
import { useMemo, type FC, type PropsWithChildren } from "react";
|
5
4
|
import {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
import { writableStore } from "../ReadonlyStore";
|
5
|
+
AssistantApiProvider,
|
6
|
+
AssistantApi,
|
7
|
+
createAssistantApiField,
|
8
|
+
} from "../react/AssistantApiContext";
|
11
9
|
import {
|
12
|
-
|
13
|
-
|
14
|
-
} from "../../
|
15
|
-
import {
|
10
|
+
MessagePartClientActions,
|
11
|
+
MessagePartClientState,
|
12
|
+
} from "../../client/MessagePartClient";
|
13
|
+
import { resource, tapMemo } from "@assistant-ui/tap";
|
14
|
+
import { useResource } from "@assistant-ui/tap/react";
|
15
|
+
import { asStore, tapApi } from "../../utils/tap-store";
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
}
|
23
|
-
|
24
|
-
const COMPLETE_STATUS: MessagePartStatus = {
|
25
|
-
type: "complete",
|
26
|
-
};
|
27
|
-
|
28
|
-
const RUNNING_STATUS: MessagePartStatus = {
|
29
|
-
type: "running",
|
30
|
-
};
|
31
|
-
|
32
|
-
export const TextMessagePartProvider: FC<TextMessagePartProvider.Props> = ({
|
33
|
-
children,
|
34
|
-
text,
|
35
|
-
isRunning,
|
36
|
-
}) => {
|
37
|
-
const [context] = useState<
|
38
|
-
MessagePartContextValue & {
|
39
|
-
useMessagePart: UseBoundStore<
|
40
|
-
StoreApi<MessagePartState & { type: "text" }>
|
41
|
-
>;
|
42
|
-
}
|
43
|
-
>(() => {
|
44
|
-
const useMessagePart = create<MessagePartState & { type: "text" }>(() => ({
|
45
|
-
status: isRunning ? RUNNING_STATUS : COMPLETE_STATUS,
|
46
|
-
type: "text",
|
47
|
-
text,
|
48
|
-
}));
|
49
|
-
|
50
|
-
const MessagePartRuntime = new MessagePartRuntimeImpl({
|
51
|
-
path: {
|
52
|
-
ref: "text",
|
53
|
-
threadSelector: { type: "main" },
|
54
|
-
messageSelector: { type: "messageId", messageId: "" },
|
55
|
-
messagePartSelector: { type: "index", index: 0 },
|
56
|
-
},
|
57
|
-
getState: useMessagePart.getState,
|
58
|
-
subscribe: useMessagePart.subscribe,
|
59
|
-
});
|
60
|
-
ensureBinding(MessagePartRuntime);
|
61
|
-
|
62
|
-
const useMessagePartRuntime = create(() => MessagePartRuntime);
|
17
|
+
const TextMessagePartActions = new Proxy({} as MessagePartClientActions, {
|
18
|
+
get() {
|
19
|
+
throw new Error("Not implemented");
|
20
|
+
},
|
21
|
+
});
|
63
22
|
|
64
|
-
|
65
|
-
})
|
66
|
-
|
67
|
-
|
68
|
-
const state = context.useMessagePart.getState();
|
69
|
-
const textUpdated = state.text !== text;
|
70
|
-
const targetStatus = isRunning ? RUNNING_STATUS : COMPLETE_STATUS;
|
71
|
-
const statusUpdated = state.status !== targetStatus;
|
72
|
-
|
73
|
-
if (!textUpdated && !statusUpdated) return;
|
74
|
-
|
75
|
-
writableStore(context.useMessagePart).setState(
|
76
|
-
{
|
23
|
+
const TextMessagePartClient = resource(
|
24
|
+
({ text, isRunning }: { text: string; isRunning: boolean }) => {
|
25
|
+
const state = tapMemo<MessagePartClientState>(
|
26
|
+
() => ({
|
77
27
|
type: "text",
|
78
28
|
text,
|
79
|
-
status:
|
80
|
-
}
|
81
|
-
|
29
|
+
status: isRunning ? { type: "running" } : { type: "complete" },
|
30
|
+
}),
|
31
|
+
[text, isRunning],
|
82
32
|
);
|
83
|
-
}, [context, isRunning, text]);
|
84
33
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
34
|
+
const api = tapApi(state, TextMessagePartActions);
|
35
|
+
|
36
|
+
return {
|
37
|
+
state,
|
38
|
+
api,
|
39
|
+
};
|
40
|
+
},
|
41
|
+
);
|
42
|
+
|
43
|
+
export const TextMessagePartProvider: FC<
|
44
|
+
PropsWithChildren<{
|
45
|
+
text: string;
|
46
|
+
isRunning?: boolean;
|
47
|
+
}>
|
48
|
+
> = ({ text, isRunning = false, children }) => {
|
49
|
+
const store = useResource(
|
50
|
+
asStore(TextMessagePartClient({ text, isRunning })),
|
89
51
|
);
|
52
|
+
const api = useMemo(() => {
|
53
|
+
return {
|
54
|
+
part: createAssistantApiField({
|
55
|
+
source: "root",
|
56
|
+
query: {},
|
57
|
+
get: () => store.getApi(),
|
58
|
+
}),
|
59
|
+
subscribe: store.subscribe,
|
60
|
+
// flushSync: store.flushSync,
|
61
|
+
} satisfies Partial<AssistantApi>;
|
62
|
+
}, [store]);
|
63
|
+
|
64
|
+
return <AssistantApiProvider api={api}>{children}</AssistantApiProvider>;
|
90
65
|
};
|