@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,49 @@
|
|
1
|
+
export type EventSource<T extends keyof AssistantEvents = keyof AssistantEvents> = T extends `${infer Source}.${string}` ? Source : never;
|
2
|
+
type ScopeConfig = {
|
3
|
+
composer: "thread" | "message";
|
4
|
+
thread: never;
|
5
|
+
"thread-list-item": never;
|
6
|
+
};
|
7
|
+
export type SourceByScope<TScope extends AssistantEventScope<keyof AssistantEvents>> = (TScope extends "*" ? EventSource : never) | (TScope extends keyof ScopeConfig ? TScope : never) | {
|
8
|
+
[K in keyof ScopeConfig]: TScope extends ScopeConfig[K] ? K : never;
|
9
|
+
}[keyof ScopeConfig];
|
10
|
+
export type AssistantEventScope<TEvent extends keyof AssistantEvents> = "*" | EventSource<TEvent> | ScopeConfig[EventSource<TEvent>];
|
11
|
+
export type AssistantEventSelector<TEvent extends keyof AssistantEvents> = TEvent | {
|
12
|
+
scope: AssistantEventScope<TEvent>;
|
13
|
+
event: TEvent;
|
14
|
+
};
|
15
|
+
export type AssistantEvents = {
|
16
|
+
"thread.run-start": {
|
17
|
+
threadId: string;
|
18
|
+
};
|
19
|
+
"thread.run-end": {
|
20
|
+
threadId: string;
|
21
|
+
};
|
22
|
+
"thread.initialize": {
|
23
|
+
threadId: string;
|
24
|
+
};
|
25
|
+
"thread.model-context-update": {
|
26
|
+
threadId: string;
|
27
|
+
};
|
28
|
+
"composer.send": {
|
29
|
+
threadId: string;
|
30
|
+
messageId?: string;
|
31
|
+
};
|
32
|
+
"composer.attachment-add": {
|
33
|
+
threadId: string;
|
34
|
+
messageId?: string;
|
35
|
+
};
|
36
|
+
"thread-list-item.switched-to": {
|
37
|
+
threadId: string;
|
38
|
+
};
|
39
|
+
"thread-list-item.switched-away": {
|
40
|
+
threadId: string;
|
41
|
+
};
|
42
|
+
};
|
43
|
+
export declare const normalizeEventSelector: <TEvent extends keyof AssistantEvents>(selector: AssistantEventSelector<TEvent>) => {
|
44
|
+
scope: AssistantEventScope<TEvent>;
|
45
|
+
event: TEvent;
|
46
|
+
};
|
47
|
+
export declare const checkEventScope: <TEvent extends keyof AssistantEvents, TExpectedScope extends AssistantEventScope<keyof AssistantEvents>>(expectedScope: TExpectedScope, scope: AssistantEventScope<TEvent>, _event: TEvent) => _event is Extract<TEvent, `${SourceByScope<TExpectedScope>}.${string}`>;
|
48
|
+
export {};
|
49
|
+
//# sourceMappingURL=EventTypes.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EventTypes.d.ts","sourceRoot":"","sources":["../../src/types/EventTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,MAAM,eAAe,GAAG,MAAM,eAAe,IACrD,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAE3D,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,KAAK,CAAC;IACd,kBAAkB,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,CACvB,MAAM,SAAS,mBAAmB,CAAC,MAAM,eAAe,CAAC,IAEvD,CAAC,MAAM,SAAS,GAAG,GAAG,WAAW,GAAG,KAAK,CAAC,GAC1C,CAAC,MAAM,SAAS,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,GACnD;KACG,CAAC,IAAI,MAAM,WAAW,GAAG,MAAM,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACpE,CAAC,MAAM,WAAW,CAAC,CAAC;AAEzB,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,MAAM,eAAe,IAChE,GAAG,GACH,WAAW,CAAC,MAAM,CAAC,GACnB,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAErC,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,MAAM,eAAe,IACnE,MAAM,GACN;IACE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN,MAAM,MAAM,eAAe,GAAG;IAE5B,kBAAkB,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,gBAAgB,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,mBAAmB,EAAE;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,6BAA6B,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,eAAe,EAAE;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,yBAAyB,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAGF,8BAA8B,EAAE;QAC9B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,gCAAgC,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,MAAM,eAAe,EACzE,UAAU,sBAAsB,CAAC,MAAM,CAAC;;;CAczC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,SAAS,MAAM,eAAe,EACpC,cAAc,SAAS,mBAAmB,CAAC,MAAM,eAAe,CAAC,EAEjE,eAAe,cAAc,EAC7B,OAAO,mBAAmB,CAAC,MAAM,CAAC,EAClC,QAAQ,MAAM,KACb,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,MAAM,EAAE,CAExE,CAAC"}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
// src/types/EventTypes.ts
|
2
|
+
var normalizeEventSelector = (selector) => {
|
3
|
+
if (typeof selector === "string") {
|
4
|
+
const source = selector.split(".")[0];
|
5
|
+
return {
|
6
|
+
scope: source,
|
7
|
+
event: selector
|
8
|
+
};
|
9
|
+
}
|
10
|
+
return {
|
11
|
+
scope: selector.scope,
|
12
|
+
event: selector.event
|
13
|
+
};
|
14
|
+
};
|
15
|
+
var checkEventScope = (expectedScope, scope, _event) => {
|
16
|
+
return scope === expectedScope;
|
17
|
+
};
|
18
|
+
export {
|
19
|
+
checkEventScope,
|
20
|
+
normalizeEventSelector
|
21
|
+
};
|
22
|
+
//# sourceMappingURL=EventTypes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../src/types/EventTypes.ts"],"sourcesContent":["export type EventSource<\n T extends keyof AssistantEvents = keyof AssistantEvents,\n> = T extends `${infer Source}.${string}` ? Source : never;\n\ntype ScopeConfig = {\n composer: \"thread\" | \"message\";\n thread: never;\n \"thread-list-item\": never;\n};\n\nexport type SourceByScope<\n TScope extends AssistantEventScope<keyof AssistantEvents>,\n> =\n | (TScope extends \"*\" ? EventSource : never)\n | (TScope extends keyof ScopeConfig ? TScope : never)\n | {\n [K in keyof ScopeConfig]: TScope extends ScopeConfig[K] ? K : never;\n }[keyof ScopeConfig];\n\nexport type AssistantEventScope<TEvent extends keyof AssistantEvents> =\n | \"*\"\n | EventSource<TEvent>\n | ScopeConfig[EventSource<TEvent>];\n\nexport type AssistantEventSelector<TEvent extends keyof AssistantEvents> =\n | TEvent\n | {\n scope: AssistantEventScope<TEvent>;\n event: TEvent;\n };\n\nexport type AssistantEvents = {\n // Thread events (from ThreadRuntimeEventType)\n \"thread.run-start\": {\n threadId: string;\n };\n \"thread.run-end\": {\n threadId: string;\n };\n \"thread.initialize\": {\n threadId: string;\n };\n \"thread.model-context-update\": {\n threadId: string;\n };\n\n // Composer events (from ComposerRuntimeEventType)\n \"composer.send\": {\n threadId: string;\n messageId?: string;\n };\n \"composer.attachment-add\": {\n threadId: string;\n messageId?: string;\n };\n\n // Thread list item events (from ThreadListItemEventType)\n \"thread-list-item.switched-to\": {\n threadId: string;\n };\n \"thread-list-item.switched-away\": {\n threadId: string;\n };\n};\n\nexport const normalizeEventSelector = <TEvent extends keyof AssistantEvents>(\n selector: AssistantEventSelector<TEvent>,\n) => {\n if (typeof selector === \"string\") {\n const source = selector.split(\".\")[0] as AssistantEventScope<TEvent>;\n return {\n scope: source,\n event: selector,\n };\n }\n\n return {\n scope: selector.scope,\n event: selector.event,\n };\n};\n\nexport const checkEventScope = <\n TEvent extends keyof AssistantEvents,\n TExpectedScope extends AssistantEventScope<keyof AssistantEvents>,\n>(\n expectedScope: TExpectedScope,\n scope: AssistantEventScope<TEvent>,\n _event: TEvent,\n): _event is Extract<TEvent, `${SourceByScope<TExpectedScope>}.${string}`> => {\n return scope === expectedScope;\n};\n"],"mappings":";AAiEO,IAAM,yBAAyB,CACpC,aACG;AACH,MAAI,OAAO,aAAa,UAAU;AAChC,UAAM,SAAS,SAAS,MAAM,GAAG,EAAE,CAAC;AACpC,WAAO;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO,SAAS;AAAA,IAChB,OAAO,SAAS;AAAA,EAClB;AACF;AAEO,IAAM,kBAAkB,CAI7B,eACA,OACA,WAC4E;AAC5E,SAAO,UAAU;AACnB;","names":[]}
|
package/dist/types/index.d.ts
CHANGED
@@ -5,4 +5,5 @@ export type { EmptyMessagePartComponent, EmptyMessagePartProps, TextMessagePartC
|
|
5
5
|
export type { EmptyMessagePartComponent as EmptyContentPartComponent, EmptyMessagePartProps as EmptyContentPartProps, TextMessagePartComponent as TextContentPartComponent, TextMessagePartProps as TextContentPartProps, ReasoningMessagePartComponent as ReasoningContentPartComponent, ReasoningMessagePartProps as ReasoningContentPartProps, SourceMessagePartComponent as SourceContentPartComponent, SourceMessagePartProps as SourceContentPartProps, ImageMessagePartComponent as ImageContentPartComponent, ImageMessagePartProps as ImageContentPartProps, FileMessagePartComponent as FileContentPartComponent, FileMessagePartProps as FileContentPartProps, Unstable_AudioMessagePartComponent as AudioContentPartComponent, Unstable_AudioMessagePartProps as AudioContentPartProps, ToolCallMessagePartComponent as ToolCallContentPartComponent, ToolCallMessagePartProps as ToolCallContentPartProps, } from "./MessagePartComponentTypes";
|
6
6
|
export type { ThreadListItemStatus } from "../api/ThreadListItemRuntime";
|
7
7
|
export type { Unsubscribe } from "./Unsubscribe";
|
8
|
+
export type { AssistantEventScope, AssistantEventSelector, AssistantEvents, } from "./EventTypes";
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EAGzB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,eAAe,IAAI,eAAe,EAClC,oBAAoB,IAAI,oBAAoB,EAC5C,iBAAiB,IAAI,iBAAiB,EACtC,gBAAgB,IAAI,gBAAgB,EACpC,eAAe,IAAI,eAAe,EAClC,yBAAyB,IAAI,gBAAgB,EAC7C,mBAAmB,IAAI,mBAAmB,EAC1C,iBAAiB,IAAI,iBAAiB,EACtC,yBAAyB,IAAI,yBAAyB,EAGtD,qBAAqB,IAAI,qBAAqB,EAC9C,0BAA0B,IAAI,0BAA0B,EACxD,mBAAmB,IAAI,uBAAuB,EAC9C,sBAAsB,IAAI,sBAAsB,EAChD,iBAAiB,IAAI,iBAAiB,EACtC,aAAa,IAAI,aAAa,GAC/B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EACV,yBAAyB,IAAI,yBAAyB,EACtD,qBAAqB,IAAI,qBAAqB,EAC9C,wBAAwB,IAAI,wBAAwB,EACpD,oBAAoB,IAAI,oBAAoB,EAC5C,6BAA6B,IAAI,6BAA6B,EAC9D,yBAAyB,IAAI,yBAAyB,EACtD,0BAA0B,IAAI,0BAA0B,EACxD,sBAAsB,IAAI,sBAAsB,EAChD,yBAAyB,IAAI,yBAAyB,EACtD,qBAAqB,IAAI,qBAAqB,EAC9C,wBAAwB,IAAI,wBAAwB,EACpD,oBAAoB,IAAI,oBAAoB,EAC5C,kCAAkC,IAAI,yBAAyB,EAC/D,8BAA8B,IAAI,qBAAqB,EACvD,4BAA4B,IAAI,4BAA4B,EAC5D,wBAAwB,IAAI,wBAAwB,GACrD,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EAGzB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,eAAe,IAAI,eAAe,EAClC,oBAAoB,IAAI,oBAAoB,EAC5C,iBAAiB,IAAI,iBAAiB,EACtC,gBAAgB,IAAI,gBAAgB,EACpC,eAAe,IAAI,eAAe,EAClC,yBAAyB,IAAI,gBAAgB,EAC7C,mBAAmB,IAAI,mBAAmB,EAC1C,iBAAiB,IAAI,iBAAiB,EACtC,yBAAyB,IAAI,yBAAyB,EAGtD,qBAAqB,IAAI,qBAAqB,EAC9C,0BAA0B,IAAI,0BAA0B,EACxD,mBAAmB,IAAI,uBAAuB,EAC9C,sBAAsB,IAAI,sBAAsB,EAChD,iBAAiB,IAAI,iBAAiB,EACtC,aAAa,IAAI,aAAa,GAC/B,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EACV,yBAAyB,IAAI,yBAAyB,EACtD,qBAAqB,IAAI,qBAAqB,EAC9C,wBAAwB,IAAI,wBAAwB,EACpD,oBAAoB,IAAI,oBAAoB,EAC5C,6BAA6B,IAAI,6BAA6B,EAC9D,yBAAyB,IAAI,yBAAyB,EACtD,0BAA0B,IAAI,0BAA0B,EACxD,sBAAsB,IAAI,sBAAsB,EAChD,yBAAyB,IAAI,yBAAyB,EACtD,qBAAqB,IAAI,qBAAqB,EAC9C,wBAAwB,IAAI,wBAAwB,EACpD,oBAAoB,IAAI,oBAAoB,EAC5C,kCAAkC,IAAI,yBAAyB,EAC/D,8BAA8B,IAAI,qBAAqB,EACvD,4BAA4B,IAAI,4BAA4B,EAC5D,wBAAwB,IAAI,wBAAwB,GACrD,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,GAChB,MAAM,cAAc,CAAC"}
|
@@ -8,7 +8,7 @@ import {
|
|
8
8
|
useState
|
9
9
|
} from "react";
|
10
10
|
import { create } from "zustand";
|
11
|
-
import {
|
11
|
+
import { useAssistantApi } from "../../context/index.js";
|
12
12
|
import { createContextStoreHook } from "../../context/react/utils/createContextStoreHook.js";
|
13
13
|
import { jsx } from "react/jsx-runtime";
|
14
14
|
var SmoothContext = createContext(null);
|
@@ -18,9 +18,9 @@ var makeSmoothContext = (initialState) => {
|
|
18
18
|
};
|
19
19
|
var SmoothContextProvider = ({ children }) => {
|
20
20
|
const outer = useSmoothContext({ optional: true });
|
21
|
-
const
|
21
|
+
const api = useAssistantApi();
|
22
22
|
const [context] = useState(
|
23
|
-
() => makeSmoothContext(
|
23
|
+
() => makeSmoothContext(api.part().getState().status)
|
24
24
|
);
|
25
25
|
if (outer) return children;
|
26
26
|
return /* @__PURE__ */ jsx(SmoothContext.Provider, { value: context, children });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/smooth/SmoothContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ComponentType,\n createContext,\n FC,\n forwardRef,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { ReadonlyStore } from \"../../context/ReadonlyStore\";\nimport { create, UseBoundStore } from \"zustand\";\nimport {\n MessagePartStatus,\n ToolCallMessagePartStatus,\n} from \"../../types/AssistantTypes\";\nimport {
|
1
|
+
{"version":3,"sources":["../../../src/utils/smooth/SmoothContext.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n ComponentType,\n createContext,\n FC,\n forwardRef,\n PropsWithChildren,\n useContext,\n useState,\n} from \"react\";\nimport { ReadonlyStore } from \"../../context/ReadonlyStore\";\nimport { create, UseBoundStore } from \"zustand\";\nimport {\n MessagePartStatus,\n ToolCallMessagePartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useAssistantApi } from \"../../context\";\nimport { createContextStoreHook } from \"../../context/react/utils/createContextStoreHook\";\n\ntype SmoothContextValue = {\n useSmoothStatus: UseBoundStore<\n ReadonlyStore<MessagePartStatus | ToolCallMessagePartStatus>\n >;\n};\n\nconst SmoothContext = createContext<SmoothContextValue | null>(null);\n\nconst makeSmoothContext = (\n initialState: MessagePartStatus | ToolCallMessagePartStatus,\n) => {\n const useSmoothStatus = create(() => initialState);\n return { useSmoothStatus };\n};\n\nexport const SmoothContextProvider: FC<PropsWithChildren> = ({ children }) => {\n const outer = useSmoothContext({ optional: true });\n const api = useAssistantApi();\n\n const [context] = useState(() =>\n makeSmoothContext(api.part().getState().status),\n );\n\n // do not wrap if there is an outer SmoothContextProvider\n if (outer) return children;\n\n return (\n <SmoothContext.Provider value={context}>{children}</SmoothContext.Provider>\n );\n};\n\nexport const withSmoothContextProvider = <C extends ComponentType<any>>(\n Component: C,\n): C => {\n const Wrapped = forwardRef((props, ref) => {\n return (\n <SmoothContextProvider>\n <Component {...(props as any)} ref={ref} />\n </SmoothContextProvider>\n );\n });\n Wrapped.displayName = Component.displayName;\n return Wrapped as any;\n};\n\nfunction useSmoothContext(options?: {\n optional?: false | undefined;\n}): SmoothContextValue;\nfunction useSmoothContext(options?: {\n optional?: boolean | undefined;\n}): SmoothContextValue | null;\nfunction useSmoothContext(options?: { optional?: boolean | undefined }) {\n const context = useContext(SmoothContext);\n if (!options?.optional && !context)\n throw new Error(\n \"This component must be used within a SmoothContextProvider.\",\n );\n return context;\n}\n\nexport const { useSmoothStatus, useSmoothStatusStore } = createContextStoreHook(\n useSmoothContext,\n \"useSmoothStatus\",\n);\n"],"mappings":";;;AAEA;AAAA,EAEE;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,cAA6B;AAKtC,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AA6BnC;AArBJ,IAAM,gBAAgB,cAAyC,IAAI;AAEnE,IAAM,oBAAoB,CACxB,iBACG;AACH,QAAMA,mBAAkB,OAAO,MAAM,YAAY;AACjD,SAAO,EAAE,iBAAAA,iBAAgB;AAC3B;AAEO,IAAM,wBAA+C,CAAC,EAAE,SAAS,MAAM;AAC5E,QAAM,QAAQ,iBAAiB,EAAE,UAAU,KAAK,CAAC;AACjD,QAAM,MAAM,gBAAgB;AAE5B,QAAM,CAAC,OAAO,IAAI;AAAA,IAAS,MACzB,kBAAkB,IAAI,KAAK,EAAE,SAAS,EAAE,MAAM;AAAA,EAChD;AAGA,MAAI,MAAO,QAAO;AAElB,SACE,oBAAC,cAAc,UAAd,EAAuB,OAAO,SAAU,UAAS;AAEtD;AAEO,IAAM,4BAA4B,CACvC,cACM;AACN,QAAM,UAAU,WAAW,CAAC,OAAO,QAAQ;AACzC,WACE,oBAAC,yBACC,8BAAC,aAAW,GAAI,OAAe,KAAU,GAC3C;AAAA,EAEJ,CAAC;AACD,UAAQ,cAAc,UAAU;AAChC,SAAO;AACT;AAQA,SAAS,iBAAiB,SAA8C;AACtE,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS,YAAY,CAAC;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AACF,SAAO;AACT;AAEO,IAAM,EAAE,iBAAiB,qBAAqB,IAAI;AAAA,EACvD;AAAA,EACA;AACF;","names":["useSmoothStatus"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useSmooth.d.ts","sourceRoot":"","sources":["../../../src/utils/smooth/useSmooth.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,oBAAoB,EACpB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AA4DhE,eAAO,MAAM,SAAS,GACpB,OAAO,gBAAgB,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAAC,EAClE,SAAQ,OAAe,KACtB,gBAAgB,GAAG,CAAC,eAAe,GAAG,oBAAoB,
|
1
|
+
{"version":3,"file":"useSmooth.d.ts","sourceRoot":"","sources":["../../../src/utils/smooth/useSmooth.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,oBAAoB,EACpB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AA4DhE,eAAO,MAAM,SAAS,GACpB,OAAO,gBAAgB,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAAC,EAClE,SAAQ,OAAe,KACtB,gBAAgB,GAAG,CAAC,eAAe,GAAG,oBAAoB,CAwE5D,CAAC"}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
// src/utils/smooth/useSmooth.tsx
|
4
4
|
import { useEffect, useMemo, useRef, useState } from "react";
|
5
|
-
import {
|
5
|
+
import { useAssistantState } from "../../context/index.js";
|
6
6
|
import { useCallbackRef } from "@radix-ui/react-use-callback-ref";
|
7
7
|
import { useSmoothStatusStore } from "./SmoothContext.js";
|
8
8
|
import { writableStore } from "../../context/ReadonlyStore.js";
|
@@ -55,10 +55,7 @@ var SMOOTH_STATUS = Object.freeze({
|
|
55
55
|
});
|
56
56
|
var useSmooth = (state, smooth = false) => {
|
57
57
|
const { text } = state;
|
58
|
-
const id =
|
59
|
-
optional: true,
|
60
|
-
selector: (m) => m.id
|
61
|
-
});
|
58
|
+
const id = useAssistantState(({ message }) => message.id);
|
62
59
|
const idRef = useRef(id);
|
63
60
|
const [displayedText, setDisplayedText] = useState(text);
|
64
61
|
const smoothStatusStore = useSmoothStatusStore({ optional: true });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/smooth/useSmooth.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport {
|
1
|
+
{"version":3,"sources":["../../../src/utils/smooth/useSmooth.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useAssistantState } from \"../../context\";\nimport {\n MessagePartStatus,\n ReasoningMessagePart,\n TextMessagePart,\n} from \"../../types/AssistantTypes\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useSmoothStatusStore } from \"./SmoothContext\";\nimport { writableStore } from \"../../context/ReadonlyStore\";\nimport { MessagePartState } from \"../../api/MessagePartRuntime\";\n\nclass TextStreamAnimator {\n private animationFrameId: number | null = null;\n private lastUpdateTime: number = Date.now();\n\n public targetText: string = \"\";\n\n constructor(\n public currentText: string,\n private setText: (newText: string) => void,\n ) {}\n\n start() {\n if (this.animationFrameId !== null) return;\n this.lastUpdateTime = Date.now();\n this.animate();\n }\n\n stop() {\n if (this.animationFrameId !== null) {\n cancelAnimationFrame(this.animationFrameId);\n this.animationFrameId = null;\n }\n }\n\n private animate = () => {\n const currentTime = Date.now();\n const deltaTime = currentTime - this.lastUpdateTime;\n let timeToConsume = deltaTime;\n\n const remainingChars = this.targetText.length - this.currentText.length;\n const baseTimePerChar = Math.min(5, 250 / remainingChars);\n\n let charsToAdd = 0;\n while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {\n charsToAdd++;\n timeToConsume -= baseTimePerChar;\n }\n\n if (charsToAdd !== remainingChars) {\n this.animationFrameId = requestAnimationFrame(this.animate);\n } else {\n this.animationFrameId = null;\n }\n if (charsToAdd === 0) return;\n\n this.currentText = this.targetText.slice(\n 0,\n this.currentText.length + charsToAdd,\n );\n this.lastUpdateTime = currentTime - timeToConsume;\n this.setText(this.currentText);\n };\n}\n\nconst SMOOTH_STATUS: MessagePartStatus = Object.freeze({\n type: \"running\",\n});\n\nexport const useSmooth = (\n state: MessagePartState & (TextMessagePart | ReasoningMessagePart),\n smooth: boolean = false,\n): MessagePartState & (TextMessagePart | ReasoningMessagePart) => {\n const { text } = state;\n const id = useAssistantState(({ message }) => message.id);\n\n const idRef = useRef(id);\n const [displayedText, setDisplayedText] = useState(text);\n\n const smoothStatusStore = useSmoothStatusStore({ optional: true });\n const setText = useCallbackRef((text: string) => {\n setDisplayedText(text);\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n });\n\n // TODO this is hacky\n useEffect(() => {\n if (smoothStatusStore) {\n const target =\n displayedText !== text || state.status.type === \"running\"\n ? SMOOTH_STATUS\n : state.status;\n writableStore(smoothStatusStore).setState(target, true);\n }\n }, [smoothStatusStore, text, displayedText, state.status]);\n\n const [animatorRef] = useState<TextStreamAnimator>(\n new TextStreamAnimator(text, setText),\n );\n\n useEffect(() => {\n if (!smooth) {\n animatorRef.stop();\n return;\n }\n\n if (idRef.current !== id || !text.startsWith(animatorRef.targetText)) {\n idRef.current = id;\n setText(text);\n\n animatorRef.currentText = text;\n animatorRef.targetText = text;\n animatorRef.stop();\n\n return;\n }\n\n animatorRef.targetText = text;\n animatorRef.start();\n }, [setText, animatorRef, id, smooth, text]);\n\n useEffect(() => {\n return () => {\n animatorRef.stop();\n };\n }, [animatorRef]);\n\n return useMemo(\n () =>\n smooth\n ? {\n type: \"text\",\n text: displayedText,\n status: text === displayedText ? state.status : SMOOTH_STATUS,\n }\n : state,\n [smooth, displayedText, state, text],\n );\n};\n"],"mappings":";;;AAEA,SAAS,WAAW,SAAS,QAAQ,gBAAgB;AACrD,SAAS,yBAAyB;AAMlC,SAAS,sBAAsB;AAC/B,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAG9B,IAAM,qBAAN,MAAyB;AAAA,EAMvB,YACS,aACC,SACR;AAFO;AACC;AAAA,EACP;AAAA,EARK,mBAAkC;AAAA,EAClC,iBAAyB,KAAK,IAAI;AAAA,EAEnC,aAAqB;AAAA,EAO5B,QAAQ;AACN,QAAI,KAAK,qBAAqB,KAAM;AACpC,SAAK,iBAAiB,KAAK,IAAI;AAC/B,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,OAAO;AACL,QAAI,KAAK,qBAAqB,MAAM;AAClC,2BAAqB,KAAK,gBAAgB;AAC1C,WAAK,mBAAmB;AAAA,IAC1B;AAAA,EACF;AAAA,EAEQ,UAAU,MAAM;AACtB,UAAM,cAAc,KAAK,IAAI;AAC7B,UAAM,YAAY,cAAc,KAAK;AACrC,QAAI,gBAAgB;AAEpB,UAAM,iBAAiB,KAAK,WAAW,SAAS,KAAK,YAAY;AACjE,UAAM,kBAAkB,KAAK,IAAI,GAAG,MAAM,cAAc;AAExD,QAAI,aAAa;AACjB,WAAO,iBAAiB,mBAAmB,aAAa,gBAAgB;AACtE;AACA,uBAAiB;AAAA,IACnB;AAEA,QAAI,eAAe,gBAAgB;AACjC,WAAK,mBAAmB,sBAAsB,KAAK,OAAO;AAAA,IAC5D,OAAO;AACL,WAAK,mBAAmB;AAAA,IAC1B;AACA,QAAI,eAAe,EAAG;AAEtB,SAAK,cAAc,KAAK,WAAW;AAAA,MACjC;AAAA,MACA,KAAK,YAAY,SAAS;AAAA,IAC5B;AACA,SAAK,iBAAiB,cAAc;AACpC,SAAK,QAAQ,KAAK,WAAW;AAAA,EAC/B;AACF;AAEA,IAAM,gBAAmC,OAAO,OAAO;AAAA,EACrD,MAAM;AACR,CAAC;AAEM,IAAM,YAAY,CACvB,OACA,SAAkB,UAC8C;AAChE,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,KAAK,kBAAkB,CAAC,EAAE,QAAQ,MAAM,QAAQ,EAAE;AAExD,QAAM,QAAQ,OAAO,EAAE;AACvB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,IAAI;AAEvD,QAAM,oBAAoB,qBAAqB,EAAE,UAAU,KAAK,CAAC;AACjE,QAAM,UAAU,eAAe,CAACA,UAAiB;AAC/C,qBAAiBA,KAAI;AACrB,QAAI,mBAAmB;AACrB,YAAM,SACJ,kBAAkBA,SAAQ,MAAM,OAAO,SAAS,YAC5C,gBACA,MAAM;AACZ,oBAAc,iBAAiB,EAAE,SAAS,QAAQ,IAAI;AAAA,IACxD;AAAA,EACF,CAAC;AAGD,YAAU,MAAM;AACd,QAAI,mBAAmB;AACrB,YAAM,SACJ,kBAAkB,QAAQ,MAAM,OAAO,SAAS,YAC5C,gBACA,MAAM;AACZ,oBAAc,iBAAiB,EAAE,SAAS,QAAQ,IAAI;AAAA,IACxD;AAAA,EACF,GAAG,CAAC,mBAAmB,MAAM,eAAe,MAAM,MAAM,CAAC;AAEzD,QAAM,CAAC,WAAW,IAAI;AAAA,IACpB,IAAI,mBAAmB,MAAM,OAAO;AAAA,EACtC;AAEA,YAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX,kBAAY,KAAK;AACjB;AAAA,IACF;AAEA,QAAI,MAAM,YAAY,MAAM,CAAC,KAAK,WAAW,YAAY,UAAU,GAAG;AACpE,YAAM,UAAU;AAChB,cAAQ,IAAI;AAEZ,kBAAY,cAAc;AAC1B,kBAAY,aAAa;AACzB,kBAAY,KAAK;AAEjB;AAAA,IACF;AAEA,gBAAY,aAAa;AACzB,gBAAY,MAAM;AAAA,EACpB,GAAG,CAAC,SAAS,aAAa,IAAI,QAAQ,IAAI,CAAC;AAE3C,YAAU,MAAM;AACd,WAAO,MAAM;AACX,kBAAY,KAAK;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAEhB,SAAO;AAAA,IACL,MACE,SACI;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ,SAAS,gBAAgB,MAAM,SAAS;AAAA,IAClD,IACA;AAAA,IACN,CAAC,QAAQ,eAAe,OAAO,IAAI;AAAA,EACrC;AACF;","names":["text"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/tap-store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/tap-store/index.ts"],"sourcesContent":["export { type Store, asStore } from \"./store\";\nexport { tapApi, type ActionsObject } from \"./tap-store-api\";\n"],"mappings":";AAAA,SAAqB,eAAe;AACpC,SAAS,cAAkC;","names":[]}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { ResourceElement, Unsubscribe } from "@assistant-ui/tap";
|
2
|
+
import { StoreApi } from "./tap-store-api";
|
3
|
+
export interface Store<TState, TActions> {
|
4
|
+
getApi(): StoreApi<TState, TActions>;
|
5
|
+
/**
|
6
|
+
* Subscribe to the store.
|
7
|
+
*/
|
8
|
+
subscribe(listener: () => void): Unsubscribe;
|
9
|
+
/**
|
10
|
+
* Synchronously flush all the updates to the store.
|
11
|
+
*/
|
12
|
+
flushSync(): void;
|
13
|
+
}
|
14
|
+
export declare const asStore: <TState, TActions, TProps>(props: ResourceElement<{
|
15
|
+
api: StoreApi<TState, TActions>;
|
16
|
+
}, TProps>, options?: {
|
17
|
+
key?: string | number;
|
18
|
+
} | undefined) => ResourceElement<Store<TState, TActions>, ResourceElement<{
|
19
|
+
api: StoreApi<TState, TActions>;
|
20
|
+
}, TProps>>;
|
21
|
+
//# sourceMappingURL=store.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/utils/tap-store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAGf,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,WAAW,KAAK,CAAC,MAAM,EAAE,QAAQ;IACrC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAE7C;;OAEG;IACH,SAAS,IAAI,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,OAAO,GACjB,MAAM,EAAE,QAAQ,EAAE,MAAM;SAGd,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;;;;SAA1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;WAsBtC,CAAC"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// src/utils/tap-store/store.ts
|
2
|
+
import {
|
3
|
+
tapMemo,
|
4
|
+
tapEffect,
|
5
|
+
resource,
|
6
|
+
createResource
|
7
|
+
} from "@assistant-ui/tap";
|
8
|
+
var asStore = resource(
|
9
|
+
(element) => {
|
10
|
+
const resource2 = tapMemo(
|
11
|
+
() => createResource(element, true),
|
12
|
+
[element.type]
|
13
|
+
);
|
14
|
+
tapEffect(() => {
|
15
|
+
resource2.updateInput(element.props);
|
16
|
+
});
|
17
|
+
return tapMemo(() => {
|
18
|
+
return {
|
19
|
+
getApi: () => resource2.getState().api,
|
20
|
+
subscribe: resource2.subscribe,
|
21
|
+
flushSync: resource2.flushSync
|
22
|
+
};
|
23
|
+
}, [resource2]);
|
24
|
+
}
|
25
|
+
);
|
26
|
+
export {
|
27
|
+
asStore
|
28
|
+
};
|
29
|
+
//# sourceMappingURL=store.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/tap-store/store.ts"],"sourcesContent":["import {\n tapMemo,\n tapEffect,\n ResourceElement,\n resource,\n createResource,\n Unsubscribe,\n} from \"@assistant-ui/tap\";\nimport { StoreApi } from \"./tap-store-api\";\n\nexport interface Store<TState, TActions> {\n getApi(): StoreApi<TState, TActions>;\n\n /**\n * Subscribe to the store.\n */\n subscribe(listener: () => void): Unsubscribe;\n\n /**\n * Synchronously flush all the updates to the store.\n */\n flushSync(): void;\n}\n\nexport const asStore = resource(\n <TState, TActions, TProps>(\n element: ResourceElement<\n {\n api: StoreApi<TState, TActions>;\n },\n TProps\n >,\n ): Store<TState, TActions> => {\n const resource = tapMemo(\n () => createResource(element, true),\n [element.type],\n );\n\n tapEffect(() => {\n resource.updateInput(element.props);\n });\n\n return tapMemo<Store<TState, TActions>>(() => {\n return {\n getApi: () => resource.getState().api,\n subscribe: resource.subscribe,\n flushSync: resource.flushSync,\n };\n }, [resource]);\n },\n);\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OAEK;AAiBA,IAAM,UAAU;AAAA,EACrB,CACE,YAM4B;AAC5B,UAAMA,YAAW;AAAA,MACf,MAAM,eAAe,SAAS,IAAI;AAAA,MAClC,CAAC,QAAQ,IAAI;AAAA,IACf;AAEA,cAAU,MAAM;AACd,MAAAA,UAAS,YAAY,QAAQ,KAAK;AAAA,IACpC,CAAC;AAED,WAAO,QAAiC,MAAM;AAC5C,aAAO;AAAA,QACL,QAAQ,MAAMA,UAAS,SAAS,EAAE;AAAA,QAClC,WAAWA,UAAS;AAAA,QACpB,WAAWA,UAAS;AAAA,MACtB;AAAA,IACF,GAAG,CAACA,SAAQ,CAAC;AAAA,EACf;AACF;","names":["resource"]}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export interface ActionsObject {
|
2
|
+
[key: string]: ((...args: any[]) => any) | ActionsObject;
|
3
|
+
}
|
4
|
+
export type StoreApi<TState, TActions> = TActions & {
|
5
|
+
getState(): TState;
|
6
|
+
};
|
7
|
+
export declare const tapApi: <TState, TActions extends ActionsObject>(state: TState, actions: TActions) => StoreApi<TState, TActions>;
|
8
|
+
//# sourceMappingURL=tap-store-api.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tap-store-api.d.ts","sourceRoot":"","sources":["../../../src/utils/tap-store/tap-store-api.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC;CAC1D;AAED,MAAM,MAAM,QAAQ,CAAC,MAAM,EAAE,QAAQ,IAAI,QAAQ,GAAG;IAClD,QAAQ,IAAI,MAAM,CAAC;CACpB,CAAC;AA8CF,eAAO,MAAM,MAAM,GAAI,MAAM,EAAE,QAAQ,SAAS,aAAa,EAC3D,OAAO,MAAM,EACb,SAAS,QAAQ,+BAkBlB,CAAC"}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
// src/utils/tap-store/tap-store-api.ts
|
2
|
+
import { tapEffect, tapMemo, tapRef } from "@assistant-ui/tap";
|
3
|
+
var ReadonlyStoreApiHandler = class {
|
4
|
+
constructor(getState, getActions) {
|
5
|
+
this.getState = getState;
|
6
|
+
this.getActions = getActions;
|
7
|
+
}
|
8
|
+
get(_, prop) {
|
9
|
+
if (prop === "getState") return this.getState;
|
10
|
+
return this.getActions()[prop];
|
11
|
+
}
|
12
|
+
ownKeys() {
|
13
|
+
return ["getState", ...Object.keys(this.getActions())];
|
14
|
+
}
|
15
|
+
has(_, prop) {
|
16
|
+
if (prop === "getState") return true;
|
17
|
+
return prop in this.getActions();
|
18
|
+
}
|
19
|
+
getOwnPropertyDescriptor(_, prop) {
|
20
|
+
if (prop === "getState")
|
21
|
+
return {
|
22
|
+
enumerable: true,
|
23
|
+
configurable: false,
|
24
|
+
get: this.getState
|
25
|
+
};
|
26
|
+
return Object.getOwnPropertyDescriptor(this.getActions(), prop);
|
27
|
+
}
|
28
|
+
set() {
|
29
|
+
return false;
|
30
|
+
}
|
31
|
+
defineProperty() {
|
32
|
+
return false;
|
33
|
+
}
|
34
|
+
deleteProperty() {
|
35
|
+
return false;
|
36
|
+
}
|
37
|
+
};
|
38
|
+
var tapApi = (state, actions) => {
|
39
|
+
const ref = tapRef(() => ({ state, actions }));
|
40
|
+
tapEffect(() => {
|
41
|
+
ref.current = { state, actions };
|
42
|
+
});
|
43
|
+
return tapMemo(
|
44
|
+
() => new Proxy(
|
45
|
+
{},
|
46
|
+
new ReadonlyStoreApiHandler(
|
47
|
+
() => ref.current.state,
|
48
|
+
() => ref.current.actions
|
49
|
+
)
|
50
|
+
),
|
51
|
+
[]
|
52
|
+
);
|
53
|
+
};
|
54
|
+
export {
|
55
|
+
tapApi
|
56
|
+
};
|
57
|
+
//# sourceMappingURL=tap-store-api.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/tap-store/tap-store-api.ts"],"sourcesContent":["import { tapEffect, tapMemo, tapRef } from \"@assistant-ui/tap\";\n\nexport interface ActionsObject {\n [key: string]: ((...args: any[]) => any) | ActionsObject;\n}\n\nexport type StoreApi<TState, TActions> = TActions & {\n getState(): TState;\n};\n\nclass ReadonlyStoreApiHandler<TState, TActions>\n implements ProxyHandler<StoreApi<TState, TActions>>\n{\n constructor(\n private readonly getState: () => TState,\n private readonly getActions: () => TActions,\n ) {}\n\n get(_: unknown, prop: string | symbol) {\n if (prop === \"getState\") return this.getState;\n return this.getActions()[prop as keyof TActions];\n }\n\n ownKeys(): ArrayLike<string | symbol> {\n return [\"getState\", ...Object.keys(this.getActions() as object)];\n }\n\n has(_: unknown, prop: string | symbol) {\n if (prop === \"getState\") return true;\n return prop in (this.getActions() as object);\n }\n\n getOwnPropertyDescriptor(_: unknown, prop: string | symbol) {\n if (prop === \"getState\")\n return {\n enumerable: true,\n configurable: false,\n get: this.getState,\n };\n\n return Object.getOwnPropertyDescriptor(this.getActions(), prop);\n }\n\n set() {\n return false;\n }\n defineProperty() {\n return false;\n }\n deleteProperty() {\n return false;\n }\n}\n\nexport const tapApi = <TState, TActions extends ActionsObject>(\n state: TState,\n actions: TActions,\n) => {\n const ref = tapRef(() => ({ state, actions }));\n tapEffect(() => {\n ref.current = { state, actions };\n });\n\n return tapMemo(\n () =>\n new Proxy<StoreApi<TState, TActions>>(\n {} as StoreApi<TState, TActions>,\n new ReadonlyStoreApiHandler(\n () => ref.current.state,\n () => ref.current.actions,\n ),\n ),\n [],\n );\n};\n"],"mappings":";AAAA,SAAS,WAAW,SAAS,cAAc;AAU3C,IAAM,0BAAN,MAEA;AAAA,EACE,YACmB,UACA,YACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,IAAI,GAAY,MAAuB;AACrC,QAAI,SAAS,WAAY,QAAO,KAAK;AACrC,WAAO,KAAK,WAAW,EAAE,IAAsB;AAAA,EACjD;AAAA,EAEA,UAAsC;AACpC,WAAO,CAAC,YAAY,GAAG,OAAO,KAAK,KAAK,WAAW,CAAW,CAAC;AAAA,EACjE;AAAA,EAEA,IAAI,GAAY,MAAuB;AACrC,QAAI,SAAS,WAAY,QAAO;AAChC,WAAO,QAAS,KAAK,WAAW;AAAA,EAClC;AAAA,EAEA,yBAAyB,GAAY,MAAuB;AAC1D,QAAI,SAAS;AACX,aAAO;AAAA,QACL,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,KAAK,KAAK;AAAA,MACZ;AAEF,WAAO,OAAO,yBAAyB,KAAK,WAAW,GAAG,IAAI;AAAA,EAChE;AAAA,EAEA,MAAM;AACJ,WAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EACA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;AAEO,IAAM,SAAS,CACpB,OACA,YACG;AACH,QAAM,MAAM,OAAO,OAAO,EAAE,OAAO,QAAQ,EAAE;AAC7C,YAAU,MAAM;AACd,QAAI,UAAU,EAAE,OAAO,QAAQ;AAAA,EACjC,CAAC;AAED,SAAO;AAAA,IACL,MACE,IAAI;AAAA,MACF,CAAC;AAAA,MACD,IAAI;AAAA,QACF,MAAM,IAAI,QAAQ;AAAA,QAClB,MAAM,IAAI,QAAQ;AAAA,MACpB;AAAA,IACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
|
@@ -1,17 +1,17 @@
|
|
1
1
|
// src/utils/useToolArgsFieldStatus.tsx
|
2
2
|
import { getPartialJsonObjectFieldState } from "assistant-stream/utils";
|
3
|
-
import {
|
3
|
+
import { useAssistantState } from "../context/index.js";
|
4
4
|
var COMPLETE_STATUS = { type: "complete" };
|
5
5
|
var useToolArgsFieldStatus = (fieldPath) => {
|
6
|
-
return
|
7
|
-
if (
|
6
|
+
return useAssistantState(({ part }) => {
|
7
|
+
if (part.type !== "tool-call")
|
8
8
|
throw new Error(
|
9
9
|
"useToolArgsFieldStatus can only be used inside tool-call message parts"
|
10
10
|
);
|
11
|
-
const state = getPartialJsonObjectFieldState(
|
12
|
-
if (state === "complete" ||
|
11
|
+
const state = getPartialJsonObjectFieldState(part.args, fieldPath);
|
12
|
+
if (state === "complete" || part.status?.type === "requires-action")
|
13
13
|
return COMPLETE_STATUS;
|
14
|
-
return
|
14
|
+
return part.status;
|
15
15
|
});
|
16
16
|
};
|
17
17
|
export {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/utils/useToolArgsFieldStatus.tsx"],"sourcesContent":["import { getPartialJsonObjectFieldState } from \"assistant-stream/utils\";\nimport {
|
1
|
+
{"version":3,"sources":["../../src/utils/useToolArgsFieldStatus.tsx"],"sourcesContent":["import { getPartialJsonObjectFieldState } from \"assistant-stream/utils\";\nimport { useAssistantState } from \"../context\";\n\nconst COMPLETE_STATUS = { type: \"complete\" };\n\nexport const useToolArgsFieldStatus = (fieldPath: (string | number)[]) => {\n return useAssistantState(({ part }) => {\n if (part.type !== \"tool-call\")\n throw new Error(\n \"useToolArgsFieldStatus can only be used inside tool-call message parts\",\n );\n\n const state = getPartialJsonObjectFieldState(part.args, fieldPath);\n if (state === \"complete\" || part.status?.type === \"requires-action\")\n return COMPLETE_STATUS;\n return part.status;\n });\n};\n"],"mappings":";AAAA,SAAS,sCAAsC;AAC/C,SAAS,yBAAyB;AAElC,IAAM,kBAAkB,EAAE,MAAM,WAAW;AAEpC,IAAM,yBAAyB,CAAC,cAAmC;AACxE,SAAO,kBAAkB,CAAC,EAAE,KAAK,MAAM;AACrC,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,UAAM,QAAQ,+BAA+B,KAAK,MAAM,SAAS;AACjE,QAAI,UAAU,cAAc,KAAK,QAAQ,SAAS;AAChD,aAAO;AACT,WAAO,KAAK;AAAA,EACd,CAAC;AACH;","names":[]}
|
package/package.json
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
"conversational-ui",
|
29
29
|
"conversational-ai"
|
30
30
|
],
|
31
|
-
"version": "0.
|
31
|
+
"version": "0.11.0",
|
32
32
|
"license": "MIT",
|
33
33
|
"type": "module",
|
34
34
|
"exports": {
|
@@ -49,6 +49,7 @@
|
|
49
49
|
"sideEffects": false,
|
50
50
|
"dependencies": {
|
51
51
|
"assistant-cloud": "^0.1.1",
|
52
|
+
"@assistant-ui/tap": "^0.1.0",
|
52
53
|
"@radix-ui/primitive": "^1.1.3",
|
53
54
|
"@radix-ui/react-compose-refs": "^1.1.2",
|
54
55
|
"@radix-ui/react-context": "^1.1.2",
|
@@ -54,7 +54,9 @@ export abstract class AttachmentRuntimeImpl<
|
|
54
54
|
|
55
55
|
public abstract get source(): Source;
|
56
56
|
|
57
|
-
constructor(private _core: AttachmentSnapshotBinding<Source>) {
|
57
|
+
constructor(private _core: AttachmentSnapshotBinding<Source>) {
|
58
|
+
this.__internal_bindMethods();
|
59
|
+
}
|
58
60
|
|
59
61
|
protected __internal_bindMethods() {
|
60
62
|
this.getState = this.getState.bind(this);
|
@@ -39,6 +39,8 @@ type BaseComposerState = {
|
|
39
39
|
readonly role: MessageRole;
|
40
40
|
readonly attachments: readonly Attachment[];
|
41
41
|
readonly runConfig: RunConfig;
|
42
|
+
|
43
|
+
readonly attachmentAccept: string;
|
42
44
|
};
|
43
45
|
|
44
46
|
export type ThreadComposerState = BaseComposerState & {
|
@@ -69,6 +71,7 @@ const getThreadComposerState = (
|
|
69
71
|
text: runtime?.text ?? "",
|
70
72
|
role: runtime?.role ?? "user",
|
71
73
|
runConfig: runtime?.runConfig ?? EMPTY_OBJECT,
|
74
|
+
attachmentAccept: runtime?.attachmentAccept ?? "",
|
72
75
|
|
73
76
|
value: runtime?.text ?? "",
|
74
77
|
});
|
@@ -88,6 +91,7 @@ const getEditComposerState = (
|
|
88
91
|
role: runtime?.role ?? "user",
|
89
92
|
attachments: runtime?.attachments ?? EMPTY_ARRAY,
|
90
93
|
runConfig: runtime?.runConfig ?? EMPTY_OBJECT,
|
94
|
+
attachmentAccept: runtime?.attachmentAccept ?? "",
|
91
95
|
|
92
96
|
value: runtime?.text ?? "",
|
93
97
|
});
|
@@ -102,8 +106,6 @@ export type ComposerRuntime = {
|
|
102
106
|
*/
|
103
107
|
getState(): ComposerState;
|
104
108
|
|
105
|
-
getAttachmentAccept(): string;
|
106
|
-
|
107
109
|
/**
|
108
110
|
* Given a standard js File object, add it to the composer. A composer can have multiple attachments.
|
109
111
|
* @param file The file to add to the composer.
|
@@ -166,6 +168,14 @@ export type ComposerRuntime = {
|
|
166
168
|
* @param idx The index of the attachment to get.
|
167
169
|
*/
|
168
170
|
getAttachmentByIndex(idx: number): AttachmentRuntime;
|
171
|
+
|
172
|
+
/**
|
173
|
+
* @deprecated This API is still under active development and might change without notice.
|
174
|
+
*/
|
175
|
+
unstable_on(
|
176
|
+
event: ComposerRuntimeEventType,
|
177
|
+
callback: () => void,
|
178
|
+
): Unsubscribe;
|
169
179
|
};
|
170
180
|
|
171
181
|
export abstract class ComposerRuntimeImpl implements ComposerRuntime {
|
@@ -188,7 +198,6 @@ export abstract class ComposerRuntimeImpl implements ComposerRuntime {
|
|
188
198
|
this.send = this.send.bind(this);
|
189
199
|
this.cancel = this.cancel.bind(this);
|
190
200
|
this.setRole = this.setRole.bind(this);
|
191
|
-
this.getAttachmentAccept = this.getAttachmentAccept.bind(this);
|
192
201
|
this.getAttachmentByIndex = this.getAttachmentByIndex.bind(this);
|
193
202
|
this.unstable_on = this.unstable_on.bind(this);
|
194
203
|
}
|
@@ -267,12 +276,6 @@ export abstract class ComposerRuntimeImpl implements ComposerRuntime {
|
|
267
276
|
return subject.subscribe(callback);
|
268
277
|
}
|
269
278
|
|
270
|
-
public getAttachmentAccept(): string {
|
271
|
-
const core = this._core.getState();
|
272
|
-
if (!core) throw new Error("Composer is not available");
|
273
|
-
return core.getAttachmentAccept();
|
274
|
-
}
|
275
|
-
|
276
279
|
public abstract getAttachmentByIndex(idx: number): AttachmentRuntime;
|
277
280
|
}
|
278
281
|
|
@@ -317,6 +320,8 @@ export class ThreadComposerRuntimeImpl
|
|
317
320
|
subscribe: (callback) => stateBinding.subscribe(callback),
|
318
321
|
});
|
319
322
|
this._getState = stateBinding.getState.bind(stateBinding);
|
323
|
+
|
324
|
+
this.__internal_bindMethods();
|
320
325
|
}
|
321
326
|
|
322
327
|
public override getState(): ThreadComposerState {
|
@@ -394,6 +399,8 @@ export class EditComposerRuntimeImpl
|
|
394
399
|
});
|
395
400
|
|
396
401
|
this._getState = stateBinding.getState.bind(stateBinding);
|
402
|
+
|
403
|
+
this.__internal_bindMethods();
|
397
404
|
}
|
398
405
|
|
399
406
|
public override __internal_bindMethods() {
|
@@ -44,7 +44,9 @@ export class MessagePartRuntimeImpl implements MessagePartRuntime {
|
|
44
44
|
private contentBinding: MessagePartSnapshotBinding,
|
45
45
|
private messageApi?: MessageStateBinding,
|
46
46
|
private threadApi?: ThreadRuntimeCoreBinding,
|
47
|
-
) {
|
47
|
+
) {
|
48
|
+
this.__internal_bindMethods();
|
49
|
+
}
|
48
50
|
|
49
51
|
protected __internal_bindMethods() {
|
50
52
|
this.addToolResult = this.addToolResult.bind(this);
|
@@ -36,6 +36,9 @@ export type ThreadListItemRuntime = {
|
|
36
36
|
event: ThreadListItemEventType,
|
37
37
|
callback: () => void,
|
38
38
|
): Unsubscribe;
|
39
|
+
|
40
|
+
/** @internal */
|
41
|
+
__internal_getRuntime(): ThreadListItemRuntime;
|
39
42
|
};
|
40
43
|
|
41
44
|
export type ThreadListItemStateBinding = SubscribableWithState<
|
@@ -51,7 +54,9 @@ export class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {
|
|
51
54
|
constructor(
|
52
55
|
private _core: ThreadListItemStateBinding,
|
53
56
|
private _threadListBinding: ThreadListRuntimeCoreBinding,
|
54
|
-
) {
|
57
|
+
) {
|
58
|
+
this.__internal_bindMethods();
|
59
|
+
}
|
55
60
|
|
56
61
|
protected __internal_bindMethods() {
|
57
62
|
this.switchTo = this.switchTo.bind(this);
|
@@ -142,4 +147,9 @@ export class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {
|
|
142
147
|
|
143
148
|
this._threadListBinding.detach(state.id);
|
144
149
|
}
|
150
|
+
|
151
|
+
/** @internal */
|
152
|
+
public __internal_getRuntime(): ThreadListItemRuntime {
|
153
|
+
return this;
|
154
|
+
}
|
145
155
|
}
|