@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
@@ -22,13 +22,14 @@ export type ThreadListState = {
|
|
22
22
|
readonly threads: readonly string[];
|
23
23
|
readonly archivedThreads: readonly string[];
|
24
24
|
readonly isLoading: boolean;
|
25
|
+
readonly threadItems: Readonly<
|
26
|
+
Record<string, Omit<ThreadListItemState, "isMain" | "threadId">>
|
27
|
+
>;
|
25
28
|
};
|
26
29
|
|
27
30
|
export type ThreadListRuntime = {
|
28
31
|
getState(): ThreadListState;
|
29
32
|
|
30
|
-
readonly isLoading: boolean;
|
31
|
-
|
32
33
|
subscribe(callback: () => void): Unsubscribe;
|
33
34
|
|
34
35
|
readonly main: ThreadRuntime;
|
@@ -52,6 +53,7 @@ const getThreadListState = (
|
|
52
53
|
threads: threadList.threadIds,
|
53
54
|
archivedThreads: threadList.archivedThreadIds,
|
54
55
|
isLoading: threadList.isLoading,
|
56
|
+
threadItems: threadList.threadData,
|
55
57
|
};
|
56
58
|
};
|
57
59
|
|
@@ -64,13 +66,13 @@ const getThreadListItemState = (
|
|
64
66
|
const threadData = threadList.getItemById(threadId);
|
65
67
|
if (!threadData) return SKIP_UPDATE;
|
66
68
|
return {
|
67
|
-
id: threadData.
|
68
|
-
threadId: threadData.
|
69
|
+
id: threadData.id,
|
70
|
+
threadId: threadData.id, // TODO remove in 0.8.0
|
69
71
|
remoteId: threadData.remoteId,
|
70
72
|
externalId: threadData.externalId,
|
71
73
|
title: threadData.title,
|
72
74
|
status: threadData.status,
|
73
|
-
isMain: threadData.
|
75
|
+
isMain: threadData.id === threadList.mainThreadId,
|
74
76
|
};
|
75
77
|
};
|
76
78
|
|
@@ -118,6 +120,8 @@ export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
|
118
120
|
}),
|
119
121
|
this._mainThreadListItemRuntime, // TODO capture "main" threadListItem from context around useLocalRuntime / useExternalStoreRuntime
|
120
122
|
);
|
123
|
+
|
124
|
+
this.__internal_bindMethods();
|
121
125
|
}
|
122
126
|
|
123
127
|
protected __internal_bindMethods() {
|
@@ -143,10 +147,6 @@ export class ThreadListRuntimeImpl implements ThreadListRuntime {
|
|
143
147
|
return this._getState();
|
144
148
|
}
|
145
149
|
|
146
|
-
public get isLoading() {
|
147
|
-
return this._core.isLoading;
|
148
|
-
}
|
149
|
-
|
150
150
|
public subscribe(callback: () => void): Unsubscribe {
|
151
151
|
return this._core.subscribe(callback);
|
152
152
|
}
|
package/src/api/ThreadRuntime.ts
CHANGED
@@ -275,13 +275,13 @@ export type ThreadRuntime = {
|
|
275
275
|
*/
|
276
276
|
reset(initialMessages?: readonly ThreadMessageLike[]): void;
|
277
277
|
|
278
|
-
|
279
|
-
|
278
|
+
getMessageByIndex(idx: number): MessageRuntime;
|
279
|
+
getMessageById(messageId: string): MessageRuntime;
|
280
280
|
|
281
281
|
/**
|
282
282
|
* @deprecated This API is still under active development and might change without notice.
|
283
283
|
*/
|
284
|
-
stopSpeaking
|
284
|
+
stopSpeaking(): void;
|
285
285
|
|
286
286
|
unstable_on(event: ThreadRuntimeEventType, callback: () => void): Unsubscribe;
|
287
287
|
};
|
@@ -339,6 +339,8 @@ export class ThreadRuntimeImpl implements ThreadRuntime {
|
|
339
339
|
subscribe: (callback) => this._threadBinding.subscribe(callback),
|
340
340
|
}),
|
341
341
|
);
|
342
|
+
|
343
|
+
this.__internal_bindMethods();
|
342
344
|
}
|
343
345
|
|
344
346
|
protected __internal_bindMethods() {
|
@@ -350,8 +352,8 @@ export class ThreadRuntimeImpl implements ThreadRuntime {
|
|
350
352
|
this.export = this.export.bind(this);
|
351
353
|
this.import = this.import.bind(this);
|
352
354
|
this.reset = this.reset.bind(this);
|
353
|
-
this.
|
354
|
-
this.
|
355
|
+
this.getMessageByIndex = this.getMessageByIndex.bind(this);
|
356
|
+
this.getMessageById = this.getMessageById.bind(this);
|
355
357
|
this.subscribe = this.subscribe.bind(this);
|
356
358
|
this.unstable_on = this.unstable_on.bind(this);
|
357
359
|
this.getModelContext = this.getModelContext.bind(this);
|
@@ -417,7 +419,7 @@ export class ThreadRuntimeImpl implements ThreadRuntime {
|
|
417
419
|
this._threadBinding.getState().reset(initialMessages);
|
418
420
|
}
|
419
421
|
|
420
|
-
public
|
422
|
+
public getMessageByIndex(idx: number) {
|
421
423
|
if (idx < 0) throw new Error("Message index must be >= 0");
|
422
424
|
|
423
425
|
return this._getMessageRuntime(
|
@@ -438,7 +440,7 @@ export class ThreadRuntimeImpl implements ThreadRuntime {
|
|
438
440
|
);
|
439
441
|
}
|
440
442
|
|
441
|
-
public
|
443
|
+
public getMessageById(messageId: string) {
|
442
444
|
return this._getMessageRuntime(
|
443
445
|
{
|
444
446
|
...this.path,
|
@@ -0,0 +1,197 @@
|
|
1
|
+
import {
|
2
|
+
tapMemo,
|
3
|
+
resource,
|
4
|
+
tapState,
|
5
|
+
Unsubscribe,
|
6
|
+
tapInlineResource,
|
7
|
+
} from "@assistant-ui/tap";
|
8
|
+
import { ThreadListClientState } from "./ThreadListClient";
|
9
|
+
import { ThreadListClientActions } from "./ThreadListClient";
|
10
|
+
import { AssistantRuntime } from "../api/AssistantRuntime";
|
11
|
+
import { ThreadListClient } from "./ThreadListClient";
|
12
|
+
import { ModelContextProvider } from "../model-context";
|
13
|
+
import { asStore, Store, tapApi } from "../utils/tap-store";
|
14
|
+
import { useResource } from "@assistant-ui/tap/react";
|
15
|
+
import { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes";
|
16
|
+
import { StoreApi } from "../utils/tap-store/tap-store-api";
|
17
|
+
import { useMemo } from "react";
|
18
|
+
import {
|
19
|
+
AssistantEventSelector,
|
20
|
+
AssistantEvents,
|
21
|
+
checkEventScope,
|
22
|
+
normalizeEventSelector,
|
23
|
+
} from "../types/EventTypes";
|
24
|
+
import { EventManagerClient } from "./EventManagerClient";
|
25
|
+
import {
|
26
|
+
AssistantApi,
|
27
|
+
createAssistantApiField,
|
28
|
+
} from "../context/react/AssistantApiContext";
|
29
|
+
|
30
|
+
export type AssistantToolUIState = Record<
|
31
|
+
string,
|
32
|
+
ToolCallMessagePartComponent[]
|
33
|
+
>;
|
34
|
+
export type AssistantToolUIActions = {
|
35
|
+
setToolUI(
|
36
|
+
toolName: string,
|
37
|
+
render: ToolCallMessagePartComponent,
|
38
|
+
): Unsubscribe;
|
39
|
+
};
|
40
|
+
|
41
|
+
export const AssistantToolUIClient = resource(() => {
|
42
|
+
const [state, setState] = tapState<AssistantToolUIState>(() => ({}));
|
43
|
+
|
44
|
+
const api = tapApi<AssistantToolUIState, AssistantToolUIActions>(state, {
|
45
|
+
setToolUI: (toolName, render) => {
|
46
|
+
setState((prev) => {
|
47
|
+
return {
|
48
|
+
...prev,
|
49
|
+
[toolName]: [...(prev[toolName] ?? []), render],
|
50
|
+
};
|
51
|
+
});
|
52
|
+
|
53
|
+
return () => {
|
54
|
+
setState((prev) => {
|
55
|
+
return {
|
56
|
+
...prev,
|
57
|
+
[toolName]: prev[toolName]?.filter((r) => r !== render) ?? [],
|
58
|
+
};
|
59
|
+
});
|
60
|
+
};
|
61
|
+
},
|
62
|
+
});
|
63
|
+
|
64
|
+
return {
|
65
|
+
state,
|
66
|
+
api,
|
67
|
+
};
|
68
|
+
});
|
69
|
+
|
70
|
+
export type AssistantClientState = {
|
71
|
+
readonly threads: ThreadListClientState;
|
72
|
+
readonly toolUIs: AssistantToolUIState;
|
73
|
+
};
|
74
|
+
|
75
|
+
export type AssistantClientActions = {
|
76
|
+
readonly threads: StoreApi<ThreadListClientState, ThreadListClientActions>;
|
77
|
+
readonly toolUIs: StoreApi<AssistantToolUIState, AssistantToolUIActions>;
|
78
|
+
|
79
|
+
on<TEvent extends keyof AssistantEvents>(
|
80
|
+
event: keyof AssistantEvents,
|
81
|
+
callback: (e: AssistantEvents[TEvent]) => void,
|
82
|
+
): Unsubscribe;
|
83
|
+
|
84
|
+
registerModelContextProvider(provider: ModelContextProvider): Unsubscribe;
|
85
|
+
/** @internal */
|
86
|
+
__internal_getRuntime(): AssistantRuntime | null;
|
87
|
+
};
|
88
|
+
|
89
|
+
export type AssistantClient = Store<
|
90
|
+
AssistantClientState,
|
91
|
+
AssistantClientActions
|
92
|
+
>;
|
93
|
+
|
94
|
+
export const AssistantClient = resource(
|
95
|
+
({ runtime }: { runtime: AssistantRuntime }) => {
|
96
|
+
const events = tapInlineResource(EventManagerClient());
|
97
|
+
|
98
|
+
const threads = tapInlineResource(
|
99
|
+
ThreadListClient({
|
100
|
+
runtime: runtime.threads,
|
101
|
+
events,
|
102
|
+
}),
|
103
|
+
);
|
104
|
+
const toolUIs = tapInlineResource(AssistantToolUIClient());
|
105
|
+
|
106
|
+
const state = tapMemo<AssistantClientState>(() => {
|
107
|
+
return {
|
108
|
+
threads: threads.state,
|
109
|
+
toolUIs: toolUIs.state,
|
110
|
+
};
|
111
|
+
}, [threads.state, toolUIs.state]);
|
112
|
+
|
113
|
+
const api = tapApi<AssistantClientState, AssistantClientActions>(state, {
|
114
|
+
threads: threads.api,
|
115
|
+
registerModelContextProvider: (provider: ModelContextProvider) => {
|
116
|
+
return runtime.registerModelContextProvider(provider);
|
117
|
+
},
|
118
|
+
toolUIs: toolUIs.api,
|
119
|
+
on: events.on,
|
120
|
+
|
121
|
+
__internal_getRuntime: () => runtime,
|
122
|
+
});
|
123
|
+
|
124
|
+
return {
|
125
|
+
state,
|
126
|
+
api,
|
127
|
+
};
|
128
|
+
},
|
129
|
+
);
|
130
|
+
|
131
|
+
export const useAssistantRuntimeClient = (runtime: AssistantRuntime) => {
|
132
|
+
const client = useResource(asStore(AssistantClient({ runtime: runtime })));
|
133
|
+
const api = useMemo(() => {
|
134
|
+
const getItem = () => {
|
135
|
+
return client.getApi().threads.item("main");
|
136
|
+
};
|
137
|
+
return {
|
138
|
+
threads: createAssistantApiField({
|
139
|
+
source: "root",
|
140
|
+
query: {},
|
141
|
+
get: () => client.getApi().threads,
|
142
|
+
}),
|
143
|
+
toolUIs: createAssistantApiField({
|
144
|
+
source: "root",
|
145
|
+
query: {},
|
146
|
+
get: () => client.getApi().toolUIs,
|
147
|
+
}),
|
148
|
+
thread: createAssistantApiField({
|
149
|
+
source: "threads",
|
150
|
+
query: { type: "main" },
|
151
|
+
get: () => client.getApi().threads.thread("main"),
|
152
|
+
}),
|
153
|
+
threadListItem: createAssistantApiField({
|
154
|
+
source: "threads",
|
155
|
+
query: { type: "main" },
|
156
|
+
get: () => getItem(),
|
157
|
+
}),
|
158
|
+
composer: createAssistantApiField({
|
159
|
+
source: "thread",
|
160
|
+
query: {},
|
161
|
+
get: () => client.getApi().threads.thread("main").composer,
|
162
|
+
}),
|
163
|
+
registerModelContextProvider(provider: ModelContextProvider) {
|
164
|
+
return client.getApi().registerModelContextProvider(provider);
|
165
|
+
},
|
166
|
+
__internal_getRuntime() {
|
167
|
+
return client.getApi().__internal_getRuntime();
|
168
|
+
},
|
169
|
+
on<TEvent extends keyof AssistantEvents>(
|
170
|
+
selector: AssistantEventSelector<TEvent>,
|
171
|
+
callback: (e: AssistantEvents[TEvent]) => void,
|
172
|
+
): Unsubscribe {
|
173
|
+
const { event, scope } = normalizeEventSelector(selector);
|
174
|
+
if (scope === "*") return client.getApi().on(event, callback);
|
175
|
+
|
176
|
+
if (
|
177
|
+
checkEventScope("thread", scope, event) ||
|
178
|
+
checkEventScope("thread-list-item", scope, event) ||
|
179
|
+
checkEventScope("composer", scope, event)
|
180
|
+
) {
|
181
|
+
return client.getApi().on(event, (e) => {
|
182
|
+
if (e.threadId !== getItem().getState().id) return;
|
183
|
+
callback(e);
|
184
|
+
});
|
185
|
+
}
|
186
|
+
|
187
|
+
throw new Error(
|
188
|
+
`Event scope is not available in this component: ${scope}`,
|
189
|
+
);
|
190
|
+
},
|
191
|
+
subscribe: client.subscribe,
|
192
|
+
flushSync: client.flushSync,
|
193
|
+
} satisfies Partial<AssistantApi>;
|
194
|
+
}, [client]);
|
195
|
+
|
196
|
+
return api;
|
197
|
+
};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { AttachmentRuntime } from "../api";
|
2
|
+
import { Attachment } from "../types";
|
3
|
+
|
4
|
+
export type AttachmentClientState = Attachment;
|
5
|
+
|
6
|
+
export type AttachmentClientActions = {
|
7
|
+
readonly remove: () => Promise<void>;
|
8
|
+
|
9
|
+
/** @internal */
|
10
|
+
__internal_getRuntime(): AttachmentRuntime;
|
11
|
+
};
|
@@ -0,0 +1,133 @@
|
|
1
|
+
import { resource, tapMemo, tapEffect, RefObject } from "@assistant-ui/tap";
|
2
|
+
import { ComposerRuntime, EditComposerRuntime } from "../api/ComposerRuntime";
|
3
|
+
import { Attachment, Unsubscribe } from "../types";
|
4
|
+
import { MessageRole, RunConfig } from "../types/AssistantTypes";
|
5
|
+
import { tapSubscribable } from "./util-hooks/tapSubscribable";
|
6
|
+
import { tapApi } from "../utils/tap-store";
|
7
|
+
import {
|
8
|
+
AttachmentClientActions,
|
9
|
+
AttachmentClientState,
|
10
|
+
} from "./AttachmentClient";
|
11
|
+
import { StoreApi } from "../utils/tap-store/tap-store-api";
|
12
|
+
import { EventManagerActions } from "./EventManagerClient";
|
13
|
+
import { ComposerRuntimeEventType } from "../runtimes/core/ComposerRuntimeCore";
|
14
|
+
|
15
|
+
export type ComposerClientState = {
|
16
|
+
readonly text: string;
|
17
|
+
readonly role: MessageRole;
|
18
|
+
readonly attachments: readonly Attachment[];
|
19
|
+
readonly runConfig: RunConfig;
|
20
|
+
readonly isEditing: boolean;
|
21
|
+
readonly canCancel: boolean;
|
22
|
+
readonly attachmentAccept: string;
|
23
|
+
readonly isEmpty: boolean;
|
24
|
+
readonly type: "thread" | "edit";
|
25
|
+
};
|
26
|
+
|
27
|
+
export type ComposerClientActions = {
|
28
|
+
setText(text: string): void;
|
29
|
+
setRole(role: MessageRole): void;
|
30
|
+
setRunConfig(runConfig: RunConfig): void;
|
31
|
+
addAttachment(file: File): Promise<void>;
|
32
|
+
clearAttachments(): Promise<void>;
|
33
|
+
attachment(selector: {
|
34
|
+
index: number;
|
35
|
+
}): StoreApi<AttachmentClientState, AttachmentClientActions>;
|
36
|
+
reset(): Promise<void>;
|
37
|
+
send(): void;
|
38
|
+
cancel(): void;
|
39
|
+
beginEdit(): void;
|
40
|
+
|
41
|
+
/** @internal */
|
42
|
+
__internal_getRuntime(): ComposerRuntime;
|
43
|
+
};
|
44
|
+
|
45
|
+
export const ComposerClient = resource(
|
46
|
+
({
|
47
|
+
threadIdRef,
|
48
|
+
messageIdRef,
|
49
|
+
events,
|
50
|
+
runtime,
|
51
|
+
}: {
|
52
|
+
threadIdRef: RefObject<string>;
|
53
|
+
messageIdRef?: RefObject<string>;
|
54
|
+
runtime: ComposerRuntime;
|
55
|
+
events: EventManagerActions;
|
56
|
+
}) => {
|
57
|
+
const runtimeState = tapSubscribable(runtime);
|
58
|
+
|
59
|
+
// Bind composer events to event manager
|
60
|
+
tapEffect(() => {
|
61
|
+
const unsubscribers: Unsubscribe[] = [];
|
62
|
+
|
63
|
+
// Subscribe to composer events
|
64
|
+
const composerEvents: ComposerRuntimeEventType[] = [
|
65
|
+
"send",
|
66
|
+
"attachment-add",
|
67
|
+
];
|
68
|
+
|
69
|
+
for (const event of composerEvents) {
|
70
|
+
const unsubscribe = runtime.unstable_on(event, () => {
|
71
|
+
events.emit(`composer.${event}`, {
|
72
|
+
threadId: threadIdRef.current,
|
73
|
+
...(messageIdRef && { messageId: messageIdRef.current }),
|
74
|
+
});
|
75
|
+
});
|
76
|
+
unsubscribers.push(unsubscribe);
|
77
|
+
}
|
78
|
+
|
79
|
+
return () => {
|
80
|
+
for (const unsub of unsubscribers) unsub();
|
81
|
+
};
|
82
|
+
}, [runtime, events, threadIdRef, messageIdRef]);
|
83
|
+
|
84
|
+
const state = tapMemo<ComposerClientState>(() => {
|
85
|
+
return {
|
86
|
+
text: runtimeState.text,
|
87
|
+
role: runtimeState.role,
|
88
|
+
attachments: runtimeState.attachments,
|
89
|
+
runConfig: runtimeState.runConfig,
|
90
|
+
isEditing: runtimeState.isEditing,
|
91
|
+
canCancel: runtimeState.canCancel,
|
92
|
+
attachmentAccept: runtimeState.attachmentAccept,
|
93
|
+
isEmpty: runtimeState.isEmpty,
|
94
|
+
type: runtimeState.type ?? "thread",
|
95
|
+
};
|
96
|
+
}, [runtimeState]);
|
97
|
+
|
98
|
+
const api = tapApi<ComposerClientState, ComposerClientActions>(state, {
|
99
|
+
setText: runtime.setText,
|
100
|
+
setRole: runtime.setRole,
|
101
|
+
setRunConfig: runtime.setRunConfig,
|
102
|
+
addAttachment: runtime.addAttachment,
|
103
|
+
reset: runtime.reset,
|
104
|
+
|
105
|
+
clearAttachments: runtime.clearAttachments,
|
106
|
+
send: runtime.send,
|
107
|
+
cancel: runtime.cancel,
|
108
|
+
beginEdit:
|
109
|
+
(runtime as EditComposerRuntime).beginEdit ??
|
110
|
+
(() => {
|
111
|
+
throw new Error("beginEdit is not supported in this runtime");
|
112
|
+
}),
|
113
|
+
|
114
|
+
attachment: ({ index }) => {
|
115
|
+
const attachmentRuntime = runtime.getAttachmentByIndex(index);
|
116
|
+
return {
|
117
|
+
getState: attachmentRuntime.getState,
|
118
|
+
|
119
|
+
remove: attachmentRuntime.remove,
|
120
|
+
|
121
|
+
__internal_getRuntime: () => runtime.getAttachmentByIndex(index),
|
122
|
+
};
|
123
|
+
},
|
124
|
+
|
125
|
+
__internal_getRuntime: () => runtime,
|
126
|
+
});
|
127
|
+
|
128
|
+
return {
|
129
|
+
state,
|
130
|
+
api,
|
131
|
+
};
|
132
|
+
},
|
133
|
+
);
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { resource, tapState } from "@assistant-ui/tap";
|
2
|
+
import { tapApi } from "../utils/tap-store";
|
3
|
+
import { AssistantEvents, Unsubscribe } from "../types";
|
4
|
+
|
5
|
+
type EventCallback<TEvent extends keyof AssistantEvents> = (
|
6
|
+
payload: AssistantEvents[TEvent],
|
7
|
+
) => void;
|
8
|
+
|
9
|
+
export type EventManagerActions = {
|
10
|
+
on<TEvent extends keyof AssistantEvents>(
|
11
|
+
event: TEvent,
|
12
|
+
callback: EventCallback<TEvent>,
|
13
|
+
): Unsubscribe;
|
14
|
+
emit<TEvent extends keyof AssistantEvents>(
|
15
|
+
event: TEvent,
|
16
|
+
payload: AssistantEvents[TEvent],
|
17
|
+
): void;
|
18
|
+
};
|
19
|
+
|
20
|
+
export const EventManagerClient = resource(() => {
|
21
|
+
// Map of event name to set of callbacks
|
22
|
+
const [listeners] = tapState<Map<string, Set<EventCallback<any>>>>(
|
23
|
+
() => new Map(),
|
24
|
+
);
|
25
|
+
|
26
|
+
const api = tapApi<Record<string, never>, EventManagerActions>(
|
27
|
+
{},
|
28
|
+
{
|
29
|
+
on: <TEvent extends keyof AssistantEvents>(
|
30
|
+
event: TEvent,
|
31
|
+
callback: EventCallback<TEvent>,
|
32
|
+
): Unsubscribe => {
|
33
|
+
if (!listeners.has(event)) {
|
34
|
+
listeners.set(event, new Set());
|
35
|
+
}
|
36
|
+
|
37
|
+
const eventListeners = listeners.get(event)!;
|
38
|
+
eventListeners.add(callback);
|
39
|
+
|
40
|
+
return () => {
|
41
|
+
eventListeners.delete(callback);
|
42
|
+
if (eventListeners.size === 0) {
|
43
|
+
listeners.delete(event);
|
44
|
+
}
|
45
|
+
};
|
46
|
+
},
|
47
|
+
|
48
|
+
emit: (event: keyof AssistantEvents, payload: any) => {
|
49
|
+
const eventListeners = listeners.get(event);
|
50
|
+
if (!eventListeners) return;
|
51
|
+
|
52
|
+
// make sure state updates flush
|
53
|
+
queueMicrotask(() => {
|
54
|
+
for (const callback of eventListeners) {
|
55
|
+
callback(payload);
|
56
|
+
}
|
57
|
+
});
|
58
|
+
},
|
59
|
+
},
|
60
|
+
);
|
61
|
+
|
62
|
+
return api;
|
63
|
+
});
|