@assistant-ui/core 0.3.18 → 0.3.20
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/adapters/attachment.d.ts +9 -10
- package/dist/adapters/attachment.d.ts.map +1 -1
- package/dist/adapters/attachment.js +2 -1
- package/dist/adapters/attachment.js.map +1 -1
- package/dist/adapters/directive-formatter.d.ts +1 -2
- package/dist/adapters/directive-formatter.d.ts.map +1 -1
- package/dist/adapters/feedback.d.ts +2 -2
- package/dist/adapters/feedback.d.ts.map +1 -1
- package/dist/adapters/speech.d.ts +6 -7
- package/dist/adapters/speech.d.ts.map +1 -1
- package/dist/adapters/speech.js +13 -3
- package/dist/adapters/speech.js.map +1 -1
- package/dist/adapters/suggestion.d.ts +5 -6
- package/dist/adapters/suggestion.d.ts.map +1 -1
- package/dist/adapters/thread-history.d.ts +10 -7
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/adapters/trigger.d.ts +1 -2
- package/dist/adapters/trigger.d.ts.map +1 -1
- package/dist/adapters/voice.d.ts +5 -6
- package/dist/adapters/voice.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/duplicate-detection.d.ts +1 -2
- package/dist/internal/duplicate-detection.d.ts.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/model-context/frame/host.d.ts +1 -2
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +26 -11
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +1 -2
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/types.d.ts +5 -6
- package/dist/model-context/frame/types.d.ts.map +1 -1
- package/dist/model-context/interactable-composer-metadata.d.ts +9 -10
- package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
- package/dist/model-context/interactable-composer-metadata.js +11 -9
- package/dist/model-context/interactable-composer-metadata.js.map +1 -1
- package/dist/model-context/registry-handles.d.ts +3 -4
- package/dist/model-context/registry-handles.d.ts.map +1 -1
- package/dist/model-context/registry.d.ts +1 -2
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/tool-call-text.d.ts +2 -3
- package/dist/model-context/tool-call-text.d.ts.map +1 -1
- package/dist/model-context/tool.d.ts +2 -3
- package/dist/model-context/tool.d.ts.map +1 -1
- package/dist/model-context/types.d.ts +8 -9
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/react/AssistantProvider.d.ts +3 -4
- package/dist/react/AssistantProvider.d.ts.map +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts +1 -2
- package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/react/RuntimeAdapter.d.ts +2 -3
- package/dist/react/RuntimeAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +4 -5
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +43 -19
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -3
- package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
- package/dist/react/client/AdaptedRemoteThread.d.ts +1 -2
- package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.d.ts +1 -2
- package/dist/react/client/DataRenderers.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.js +20 -15
- package/dist/react/client/DataRenderers.js.map +1 -1
- package/dist/react/client/InMemoryThreadList.d.ts +3 -4
- package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
- package/dist/react/client/Interactables.d.ts +1 -2
- package/dist/react/client/Interactables.d.ts.map +1 -1
- package/dist/react/client/Interactables.js +11 -5
- package/dist/react/client/Interactables.js.map +1 -1
- package/dist/react/client/RemoteThreadList.d.ts +2 -3
- package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
- package/dist/react/client/RemoteThreadList.js +3 -2
- package/dist/react/client/RemoteThreadList.js.map +1 -1
- package/dist/react/client/Tools.d.ts +2 -2
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/interactable-model-context.d.ts +2 -3
- package/dist/react/client/interactable-model-context.d.ts.map +1 -1
- package/dist/react/client/interactable-model-context.js +3 -2
- package/dist/react/client/interactable-model-context.js.map +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +2 -2
- package/dist/react/interactables-legacy/Interactables.d.ts +1 -2
- package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
- package/dist/react/interactables-legacy/interactable-model-context.d.ts +2 -3
- package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
- package/dist/react/interactables-legacy/scopes.d.ts +9 -10
- package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +2 -3
- package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.js +3 -0
- package/dist/react/interactables-legacy/useAssistantInteractable.js.map +1 -1
- package/dist/react/interactables-legacy/useInteractableState.d.ts +1 -2
- package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +1 -2
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
- package/dist/react/model-context/define-mcp-toolkit.d.ts +4 -5
- package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
- package/dist/react/model-context/define-toolkit.d.ts +2 -3
- package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
- package/dist/react/model-context/external-tool.d.ts +1 -2
- package/dist/react/model-context/external-tool.d.ts.map +1 -1
- package/dist/react/model-context/human-tool.d.ts +3 -4
- package/dist/react/model-context/human-tool.d.ts.map +1 -1
- package/dist/react/model-context/interactableTool.d.ts +3 -4
- package/dist/react/model-context/interactableTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantDataUI.d.ts +2 -3
- package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +2 -3
- package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts +2 -3
- package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/provider-tool.d.ts +2 -3
- package/dist/react/model-context/provider-tool.d.ts.map +1 -1
- package/dist/react/model-context/stub-tool.d.ts +1 -2
- package/dist/react/model-context/stub-tool.d.ts.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +9 -10
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantContext.d.ts +2 -2
- package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.d.ts +2 -3
- package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantInstructions.d.ts +2 -2
- package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantTool.d.ts +2 -3
- package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.d.ts +2 -3
- package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/useAuiToolOverrides.d.ts +1 -2
- package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.d.ts +1 -2
- package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/react/model-context/useInteractable.d.ts +4 -5
- package/dist/react/model-context/useInteractable.d.ts.map +1 -1
- package/dist/react/model-context/useInteractable.js +4 -1
- package/dist/react/model-context/useInteractable.js.map +1 -1
- package/dist/react/model-context/useInteractableState.d.ts +1 -2
- package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
- package/dist/react/model-context/useInteractableVersions.d.ts +1 -2
- package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
- package/dist/react/model-context/useInteractableVersions.js +1 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts +2 -3
- package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts +2 -3
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts +1 -2
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +2 -3
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.d.ts +1 -2
- package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +1 -2
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +1 -2
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +1 -2
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +1 -2
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +1 -2
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.d.ts +1 -2
- package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerDictate.d.ts +1 -2
- package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.d.ts +1 -2
- package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -2
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts +1 -2
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageBranching.d.ts +1 -2
- package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.d.ts +1 -2
- package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageReload.d.ts +1 -2
- package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +2 -3
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -2
- package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useVoice.d.ts +3 -4
- package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +2 -3
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts +4 -5
- package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerIf.d.ts +4 -5
- package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.d.ts +2 -3
- package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +4 -5
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
- package/dist/react/primitives/generativeUI/GenerativeUI.js +27 -28
- package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.d.ts +4 -5
- package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.d.ts +13 -5
- package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js +3 -2
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +10 -10
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageQuote.d.ts +2 -3
- package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -3
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
- package/dist/react/primitives/part/PartMessages.d.ts +4 -4
- package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
- package/dist/react/primitives/part/PartMessages.js +1 -0
- package/dist/react/primitives/part/PartMessages.js.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts +7 -8
- package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.js +6 -5
- package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts +5 -6
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts +4 -5
- package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -3
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts +2 -3
- package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +1 -2
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +1 -2
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIdProvider.d.ts +1 -2
- package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts +1 -2
- package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts +1 -2
- package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -3
- package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.d.ts +2 -3
- package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -3
- package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts +1 -2
- package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +1 -2
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -2
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +3 -2
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +17 -7
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +1 -2
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +2 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadResource.d.ts +4 -5
- package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +3 -3
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +2 -3
- package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +3 -4
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/runManager.d.ts +2 -3
- package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/types.d.ts +17 -18
- package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +4 -5
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +1 -2
- package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -2
- package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +3 -26
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +152 -378
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +2 -2
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +22 -2
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +51 -18
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +125 -17
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +6 -6
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.js +4 -0
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +1 -2
- package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/sdkIdentity.d.ts +5 -0
- package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/sdkIdentity.js +9 -0
- package/dist/react/runtimes/cloud/sdkIdentity.js.map +1 -0
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +1 -2
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +1 -2
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/createMessageConverter.d.ts +1 -2
- package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
- package/dist/react/runtimes/createRuntimeExtras.d.ts +3 -4
- package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
- package/dist/react/runtimes/external-message-converter.d.ts +14 -4
- package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
- package/dist/react/runtimes/external-message-converter.js +26 -61
- package/dist/react/runtimes/external-message-converter.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts +1 -2
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -2
- package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts +3 -4
- package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +1 -2
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.js +3 -3
- package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
- package/dist/react/runtimes/useRuntimeAdapters.d.ts +4 -4
- package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
- package/dist/react/runtimes/useStreamingTiming.d.ts +2 -2
- package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +26 -27
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/react/types/scopes/dataRenderers.d.ts +3 -4
- package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
- package/dist/react/types/scopes/interactables.d.ts +10 -11
- package/dist/react/types/scopes/interactables.d.ts.map +1 -1
- package/dist/react/types/scopes/tools.d.ts +4 -5
- package/dist/react/types/scopes/tools.d.ts.map +1 -1
- package/dist/react/utils/getMessageQuote.d.ts +1 -2
- package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
- package/dist/react/utils/groupParts.d.ts +13 -9
- package/dist/react/utils/groupParts.d.ts.map +1 -1
- package/dist/react/utils/groupParts.js +6 -0
- package/dist/react/utils/groupParts.js.map +1 -1
- package/dist/react/utils/useJSONEqual.d.ts +3 -2
- package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
- package/dist/react/utils/useJSONEqual.js +6 -1
- package/dist/react/utils/useJSONEqual.js.map +1 -1
- package/dist/react/utils/useJSONSchemaDependency.d.ts +6 -0
- package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -0
- package/dist/react/utils/useJSONSchemaDependency.js +20 -0
- package/dist/react/utils/useJSONSchemaDependency.js.map +1 -0
- package/dist/runtime/api/assistant-runtime.d.ts +2 -3
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts +6 -7
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
- package/dist/runtime/api/bindings.d.ts +5 -6
- package/dist/runtime/api/bindings.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.d.ts +10 -10
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.d.ts +3 -4
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.js +3 -2
- package/dist/runtime/api/message-part-runtime.js.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts +8 -6
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.js +3 -2
- package/dist/runtime/api/message-runtime.js.map +1 -1
- package/dist/runtime/api/paths.d.ts +6 -7
- package/dist/runtime/api/paths.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.d.ts +8 -8
- package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +4 -5
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +10 -11
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +2 -5
- package/dist/runtime/api/thread-runtime.js.map +1 -1
- package/dist/runtime/base/base-assistant-runtime-core.d.ts +1 -2
- package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts +2 -2
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +46 -10
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +10 -3
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +212 -77
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -2
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js +12 -2
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -2
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js +7 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
- package/dist/runtime/branch/external-thread-branch-adapter.d.ts +1 -2
- package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts +1 -2
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/composer-runtime-core.d.ts +10 -11
- package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +4 -5
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +23 -16
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/queue/external-thread-queue-adapter.d.ts +2 -3
- package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.d.ts +10 -4
- package/dist/runtime/queue/message-queue.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.js +70 -7
- package/dist/runtime/queue/message-queue.js.map +1 -1
- package/dist/runtime/queue/queue-item.d.ts +2 -3
- package/dist/runtime/queue/queue-item.d.ts.map +1 -1
- package/dist/runtime/utils/abortable-thread-load.d.ts +2 -3
- package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
- package/dist/runtime/utils/attachment-add-operations.d.ts +3 -4
- package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
- package/dist/runtime/utils/auto-status.d.ts +9 -6
- package/dist/runtime/utils/auto-status.d.ts.map +1 -1
- package/dist/runtime/utils/auto-status.js +12 -4
- package/dist/runtime/utils/auto-status.js.map +1 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts +5 -6
- package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
- package/dist/runtime/utils/external-message-conversion.d.ts +26 -15
- package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
- package/dist/runtime/utils/external-message-conversion.js +51 -14
- package/dist/runtime/utils/external-message-conversion.js.map +1 -1
- package/dist/runtime/utils/external-store-message.d.ts +4 -5
- package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository-session.d.ts +3 -4
- package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts +4 -5
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +3 -3
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtime/utils/pending-tool-calls.d.ts +2 -3
- package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +1 -2
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
- package/dist/runtime/utils/runtime-extras-brand.d.ts +2 -3
- package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
- package/dist/runtime/utils/stored-message-parts.d.ts +21 -0
- package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -0
- package/dist/runtime/utils/stored-message-parts.js +83 -0
- package/dist/runtime/utils/stored-message-parts.js.map +1 -0
- package/dist/runtime/utils/streaming-timing.d.ts +4 -5
- package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts +7 -6
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.js +4 -2
- package/dist/runtime/utils/thread-message-like.js.map +1 -1
- package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +3 -4
- package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
- package/dist/runtime/utils/tool-call-tree.d.ts +4 -5
- package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
- package/dist/runtimes/assistant-transport/utils.d.ts +1 -2
- package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-adapter.d.ts +9 -6
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts +1 -2
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-shared-options.d.ts +2 -3
- package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +2 -3
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +4 -3
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +36 -6
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/thread-message-converter.d.ts +2 -3
- package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +2 -3
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/internal.d.ts +1 -1
- package/dist/runtimes/local/local-runtime-core.d.ts +1 -2
- package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-runtime-options.d.ts +1 -2
- package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +2 -3
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +10 -5
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +57 -10
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/local/should-continue.d.ts +1 -2
- package/dist/runtimes/local/should-continue.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +1 -2
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -2
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +1 -2
- package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +1 -2
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +1 -2
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +16 -17
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/title-generation.d.ts +7 -8
- package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/title.d.ts +2 -3
- package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/types.d.ts +8 -9
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +4 -5
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +2 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
- package/dist/store/clients/chain-of-thought-client.d.ts +1 -2
- package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
- package/dist/store/clients/external-thread.d.ts +3 -4
- package/dist/store/clients/external-thread.d.ts.map +1 -1
- package/dist/store/clients/external-thread.js +256 -211
- package/dist/store/clients/external-thread.js.map +1 -1
- package/dist/store/clients/model-context-client.d.ts +1 -2
- package/dist/store/clients/model-context-client.d.ts.map +1 -1
- package/dist/store/clients/no-op-composer-client.d.ts +1 -2
- package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
- package/dist/store/clients/runtime-adapter.d.ts +1 -2
- package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
- package/dist/store/clients/single-thread-list.d.ts +1 -2
- package/dist/store/clients/single-thread-list.d.ts.map +1 -1
- package/dist/store/clients/suggestions.d.ts +3 -4
- package/dist/store/clients/suggestions.d.ts.map +1 -1
- package/dist/store/clients/thread-message-client.d.ts +2 -3
- package/dist/store/clients/thread-message-client.d.ts.map +1 -1
- package/dist/store/clients/thread-selection-events.d.ts +1 -2
- package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
- package/dist/store/clients/thread-tasks.d.ts +12 -0
- package/dist/store/clients/thread-tasks.d.ts.map +1 -0
- package/dist/store/clients/thread-tasks.js +69 -0
- package/dist/store/clients/thread-tasks.js.map +1 -0
- package/dist/store/env.d.ts +1 -2
- package/dist/store/env.d.ts.map +1 -1
- package/dist/store/index.d.ts +3 -2
- package/dist/store/index.js +3 -3
- package/dist/store/primitive-predicates.d.ts +11 -12
- package/dist/store/primitive-predicates.d.ts.map +1 -1
- package/dist/store/primitive-predicates.js +4 -4
- package/dist/store/primitive-predicates.js.map +1 -1
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/handle-runtime-action.d.ts +1 -2
- package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -1
- package/dist/store/runtime-clients/handle-thread-list-action.d.ts +1 -2
- package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
- package/dist/store/runtime-clients/liveRef.d.ts +1 -2
- package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts +1 -2
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.js +176 -128
- package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/useSubscribable.d.ts +1 -2
- package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
- package/dist/store/scope-registration.d.ts +2 -0
- package/dist/store/scope-registration.d.ts.map +1 -1
- package/dist/store/scopes/attachment.d.ts +4 -5
- package/dist/store/scopes/attachment.d.ts.map +1 -1
- package/dist/store/scopes/chain-of-thought.d.ts +5 -6
- package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
- package/dist/store/scopes/composer.d.ts +6 -7
- package/dist/store/scopes/composer.d.ts.map +1 -1
- package/dist/store/scopes/message.d.ts +6 -6
- package/dist/store/scopes/message.d.ts.map +1 -1
- package/dist/store/scopes/model-context.d.ts +3 -4
- package/dist/store/scopes/model-context.d.ts.map +1 -1
- package/dist/store/scopes/part.d.ts +4 -5
- package/dist/store/scopes/part.d.ts.map +1 -1
- package/dist/store/scopes/queue-item.d.ts +4 -4
- package/dist/store/scopes/queue-item.d.ts.map +1 -1
- package/dist/store/scopes/suggestion.d.ts +4 -5
- package/dist/store/scopes/suggestion.d.ts.map +1 -1
- package/dist/store/scopes/suggestions.d.ts +5 -6
- package/dist/store/scopes/suggestions.d.ts.map +1 -1
- package/dist/store/scopes/task.d.ts +35 -0
- package/dist/store/scopes/task.d.ts.map +1 -0
- package/dist/store/scopes/task.js +0 -0
- package/dist/store/scopes/thread-list-item.d.ts +5 -6
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/thread.d.ts +25 -6
- package/dist/store/scopes/thread.d.ts.map +1 -1
- package/dist/store/scopes/threads.d.ts +4 -5
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/subscribable/subscribable.d.ts +15 -15
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +23 -15
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.d.ts +5 -6
- package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
- package/dist/types/attachment.d.ts +9 -10
- package/dist/types/attachment.d.ts.map +1 -1
- package/dist/types/augmentations.d.ts +3 -4
- package/dist/types/augmentations.d.ts.map +1 -1
- package/dist/types/directive.d.ts +2 -3
- package/dist/types/directive.d.ts.map +1 -1
- package/dist/types/error.d.ts +8 -9
- package/dist/types/error.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/message.d.ts +53 -44
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/types/quote.d.ts +1 -2
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/types/trigger.d.ts +2 -3
- package/dist/types/trigger.d.ts.map +1 -1
- package/dist/types/unsubscribe.d.ts +1 -2
- package/dist/types/unsubscribe.d.ts.map +1 -1
- package/dist/utils/abortable-iterable.d.ts +2 -3
- package/dist/utils/abortable-iterable.d.ts.map +1 -1
- package/dist/utils/abortable-iterable.js +30 -14
- package/dist/utils/abortable-iterable.js.map +1 -1
- package/dist/utils/composite-context-provider.d.ts +1 -2
- package/dist/utils/composite-context-provider.d.ts.map +1 -1
- package/dist/utils/data-url.d.ts +6 -7
- package/dist/utils/data-url.d.ts.map +1 -1
- package/dist/utils/getGroupStatus.d.ts +17 -2
- package/dist/utils/getGroupStatus.d.ts.map +1 -1
- package/dist/utils/getGroupStatus.js +32 -7
- package/dist/utils/getGroupStatus.js.map +1 -1
- package/dist/utils/id.d.ts +3 -4
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/image-media-type.d.ts +1 -2
- package/dist/utils/image-media-type.d.ts.map +1 -1
- package/dist/utils/invoke-user-callback.d.ts +1 -2
- package/dist/utils/invoke-user-callback.d.ts.map +1 -1
- package/dist/utils/json/is-json-equal.d.ts +1 -2
- package/dist/utils/json/is-json-equal.d.ts.map +1 -1
- package/dist/utils/json/is-json.d.ts +4 -5
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/stable-stringify-tool-args.d.ts +2 -3
- package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
- package/dist/utils/normalizePartStatus.d.ts +4 -5
- package/dist/utils/normalizePartStatus.d.ts.map +1 -1
- package/dist/utils/notify-event-listeners.d.ts +1 -2
- package/dist/utils/notify-event-listeners.d.ts.map +1 -1
- package/dist/utils/record.d.ts +1 -2
- package/dist/utils/record.d.ts.map +1 -1
- package/dist/utils/silent-runtime-action.d.ts +2 -3
- package/dist/utils/silent-runtime-action.d.ts.map +1 -1
- package/dist/utils/text.d.ts +1 -2
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/wire-media.d.ts +3 -4
- package/dist/utils/wire-media.d.ts.map +1 -1
- package/dist/utils/wire-media.js +2 -2
- package/dist/utils/wire-media.js.map +1 -1
- package/package.json +15 -14
- package/src/adapters/attachment.ts +8 -1
- package/src/adapters/feedback.ts +1 -0
- package/src/adapters/speech.test.ts +236 -0
- package/src/adapters/speech.ts +17 -10
- package/src/adapters/thread-history.ts +3 -0
- package/src/index.ts +1 -0
- package/src/model-context/frame/host.test.ts +113 -1
- package/src/model-context/frame/host.ts +39 -12
- package/src/model-context/frame/provider.test.ts +45 -20
- package/src/model-context/interactable-composer-metadata.test.ts +30 -0
- package/src/model-context/interactable-composer-metadata.ts +10 -10
- package/src/react/RuntimeAdapter.test.ts +4 -1
- package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +361 -0
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +69 -19
- package/src/react/client/DataRenderers.test.tsx +45 -0
- package/src/react/client/DataRenderers.ts +13 -9
- package/src/react/client/Interactables.test.ts +52 -4
- package/src/react/client/Interactables.ts +7 -1
- package/src/react/client/RemoteThreadList.concurrent.test.tsx +9 -3
- package/src/react/client/RemoteThreadList.test.ts +46 -7
- package/src/react/client/RemoteThreadList.ts +15 -2
- package/src/react/client/interactable-model-context.test.ts +44 -0
- package/src/react/client/interactable-model-context.ts +3 -2
- package/src/react/index.ts +5 -1
- package/src/react/interactables-legacy/Interactables.test.ts +9 -3
- package/src/react/interactables-legacy/useAssistantInteractable.test.tsx +150 -0
- package/src/react/interactables-legacy/useAssistantInteractable.ts +10 -1
- package/src/react/model-context/useInteractable.test.tsx +204 -0
- package/src/react/model-context/useInteractable.ts +3 -0
- package/src/react/primitive-hooks/useActionBarCopy.test.ts +5 -6
- package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +0 -1
- package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +54 -0
- package/src/react/primitives/generativeUI/GenerativeUI.tsx +13 -18
- package/src/react/primitives/message/MessageGroupedParts.test.tsx +99 -0
- package/src/react/primitives/message/MessageGroupedParts.tsx +15 -4
- package/src/react/primitives/part/PartMessages.test.tsx +104 -1
- package/src/react/primitives/part/PartMessages.tsx +1 -0
- package/src/react/primitives/thread/ThreadMessages.test.tsx +160 -0
- package/src/react/primitives/thread/ThreadMessages.tsx +8 -5
- package/src/react/providers/ReadonlyThreadProvider.test.tsx +56 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.layout.test.tsx +62 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +2 -2
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +23 -20
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +24 -17
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +39 -24
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +7 -1
- package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +73 -46
- package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +66 -1
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +20 -14
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +323 -1
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +190 -523
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +81 -0
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +27 -1
- package/src/react/runtimes/cloud/auiV0.ts +281 -26
- package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +522 -0
- package/src/react/runtimes/cloud/createCloudThreadListAdapter.test.ts +21 -0
- package/src/react/runtimes/cloud/createCloudThreadListAdapter.ts +7 -1
- package/src/react/runtimes/cloud/sdkIdentity.ts +9 -0
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.test.tsx +18 -4
- package/src/react/runtimes/external-message-converter.test.ts +143 -4
- package/src/react/runtimes/external-message-converter.ts +39 -93
- package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +2 -1
- package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +8 -2
- package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +6 -2
- package/src/react/runtimes/useRemoteThreadListRuntime.concurrent.test.tsx +84 -4
- package/src/react/runtimes/useRemoteThreadListRuntime.ts +6 -2
- package/src/react/utils/groupParts.ts +12 -1
- package/src/react/utils/useJSONEqual.ts +9 -0
- package/src/react/utils/useJSONSchemaDependency.ts +22 -0
- package/src/runtime/api/message-part-runtime.ts +4 -1
- package/src/runtime/api/message-runtime.ts +15 -2
- package/src/runtime/api/thread-runtime.test.ts +58 -0
- package/src/runtime/api/thread-runtime.ts +2 -4
- package/src/runtime/base/base-composer-runtime-core.ts +69 -16
- package/src/runtime/base/base-thread-runtime-core.test.ts +1799 -49
- package/src/runtime/base/base-thread-runtime-core.ts +296 -94
- package/src/runtime/base/default-edit-composer-runtime-core.ts +12 -2
- package/src/runtime/base/default-thread-composer-runtime-core.ts +12 -1
- package/src/runtime/interfaces/thread-runtime-core.ts +8 -0
- package/src/runtime/queue/message-queue.ts +79 -7
- package/src/runtime/utils/auto-status.test.ts +112 -1
- package/src/runtime/utils/auto-status.ts +31 -5
- package/src/runtime/utils/external-message-conversion.test.ts +177 -0
- package/src/runtime/utils/external-message-conversion.ts +128 -33
- package/src/runtime/utils/message-repository.test.ts +49 -0
- package/src/runtime/utils/message-repository.ts +3 -3
- package/src/runtime/utils/stored-message-parts.ts +174 -0
- package/src/runtime/utils/thread-message-like.test.ts +52 -0
- package/src/runtime/utils/thread-message-like.ts +11 -2
- package/src/runtimes/external-store/external-store-adapter.ts +4 -0
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +74 -9
- package/src/runtimes/local/local-thread-runtime-core.test.ts +189 -12
- package/src/runtimes/local/local-thread-runtime-core.ts +91 -10
- package/src/runtimes/tool-invocations/EDGE_CASES.md +2 -6
- package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +133 -0
- package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +10 -6
- package/src/store/clients/external-thread.ts +53 -14
- package/src/store/clients/thread-tasks.test.ts +274 -0
- package/src/store/clients/thread-tasks.ts +138 -0
- package/src/store/index.ts +8 -0
- package/src/store/primitive-predicates.test.ts +64 -5
- package/src/store/primitive-predicates.ts +10 -2
- package/src/store/runtime-clients/thread-runtime-client.test.tsx +110 -0
- package/src/store/runtime-clients/thread-runtime-client.ts +31 -1
- package/src/store/scope-registration.ts +2 -0
- package/src/store/scopes/message.ts +4 -1
- package/src/store/scopes/task.ts +34 -0
- package/src/store/scopes/thread.ts +16 -0
- package/src/store/thread-tasks.test.tsx +209 -0
- package/src/subscribable/subscribable.test.ts +161 -1
- package/src/subscribable/subscribable.ts +25 -15
- package/src/tests/MessageRepository.test.ts +1 -5
- package/src/tests/attachment-adapters.test.ts +16 -1
- package/src/tests/auiV0Encode.test.ts +304 -0
- package/src/tests/base-composer-runtime-core-addAttachment.test.ts +6 -6
- package/src/tests/base-composer-runtime-core-send.test.ts +51 -0
- package/src/tests/base-composer-runtime-core.test.ts +329 -6
- package/src/tests/composer-can-cancel.test.ts +35 -6
- package/src/tests/composer-can-send.test.ts +22 -0
- package/src/tests/default-edit-composer-runtime-core.test.ts +47 -0
- package/src/tests/external-store-thread-runtime-core-adapter.test.ts +369 -16
- package/src/tests/external-store-thread-runtime-core.test.ts +31 -0
- package/src/tests/external-thread-attachments.test.tsx +91 -23
- package/src/tests/external-thread-feedback.test.tsx +20 -7
- package/src/tests/external-thread-parity.test.tsx +35 -1
- package/src/tests/groupParts.test.ts +71 -0
- package/src/tests/message-queue.test.ts +290 -2
- package/src/tests/remote-thread-list-reactive-threadId.test.ts +51 -0
- package/src/tests/thread-switch-events.test.tsx +11 -7
- package/src/tests/useRemoteThreadListRuntime-controlled.test.tsx +45 -1
- package/src/types/index.ts +1 -0
- package/src/types/message.test.ts +19 -0
- package/src/types/message.ts +23 -7
- package/src/utils/abortable-iterable.test.ts +115 -0
- package/src/utils/abortable-iterable.ts +34 -23
- package/src/utils/getGroupStatus.test.ts +70 -4
- package/src/utils/getGroupStatus.ts +35 -12
- package/src/utils/wire-media.test.ts +10 -0
- package/src/utils/wire-media.ts +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","names":[],"sources":["../../src/model-context/registry.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","names":[],"sources":["../../src/model-context/registry.ts"],"mappings":";;;;qBAiBa,gCAAgC;UACnC;UACA;UACA;UACA;;EAQR,mBAAmB;EA+CnB,UAAU,uBAAuB;UAKzB;EAIR,QAAQ,cAAc,yBAAyB,SAC7C,MAAM,mBAAmB,OAAO,WAC/B,+BAA+B,OAAO;EAoBzC,eACE,iBAAiB,8BAChB;EAiCH,YACE,UAAU,uBACT"}
|
|
@@ -6,7 +6,7 @@ type ToolCallCompleteText<TArgs extends Record<string, unknown>, TResult, TValue
|
|
|
6
6
|
args: TArgs;
|
|
7
7
|
result: TResult | undefined;
|
|
8
8
|
}) => TValue | undefined | null);
|
|
9
|
-
type ToolCallText<TArgs extends Record<string, unknown>, TResult, TValue = string> = {
|
|
9
|
+
export type ToolCallText<TArgs extends Record<string, unknown>, TResult, TValue = string> = {
|
|
10
10
|
running: ToolCallRunningText<TArgs, TValue>;
|
|
11
11
|
complete?: ToolCallCompleteText<TArgs, TResult, TValue> | undefined;
|
|
12
12
|
} | {
|
|
@@ -20,7 +20,6 @@ type ToolCallTextPart<TArgs extends Record<string, unknown>, TResult> = {
|
|
|
20
20
|
readonly type?: string | undefined;
|
|
21
21
|
} | undefined;
|
|
22
22
|
};
|
|
23
|
-
declare const resolveToolCallText: <TArgs extends Record<string, unknown>, TResult, TValue>(text: ToolCallText<TArgs, TResult, TValue>, part: ToolCallTextPart<TArgs, TResult>) => TValue | undefined | null;
|
|
23
|
+
export declare const resolveToolCallText: <TArgs extends Record<string, unknown>, TResult, TValue>(text: ToolCallText<TArgs, TResult, TValue>, part: ToolCallTextPart<TArgs, TResult>) => TValue | undefined | null;
|
|
24
24
|
//#endregion
|
|
25
|
-
export { ToolCallText, resolveToolCallText };
|
|
26
25
|
//# sourceMappingURL=tool-call-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-text.d.ts","names":[],"sources":["../../src/model-context/tool-call-text.ts"],"mappings":";KAAK,oBAAoB,cAAc,yBAAyB,UAC5D,8BAGE;EAAW,MAAM;MAAY;KAE9B,qBACH,cAAc,yBACd,SACA,UAEE,8BAGE;EACA,MAAM;EACN,QAAQ;MACJ;
|
|
1
|
+
{"version":3,"file":"tool-call-text.d.ts","names":[],"sources":["../../src/model-context/tool-call-text.ts"],"mappings":";KAAK,oBAAoB,cAAc,yBAAyB,UAC5D,8BAGE;EAAW,MAAM;MAAY;KAE9B,qBACH,cAAc,yBACd,SACA,UAEE,8BAGE;EACA,MAAM;EACN,QAAQ;MACJ;YAEE,aACV,cAAc,yBACd,SACA;EAGI,SAAS,oBAAoB,OAAO;EACpC,WAAW,qBAAqB,OAAO,SAAS;;EAGhD,UAAU,oBAAoB,OAAO;EACrC,UAAU,qBAAqB,OAAO,SAAS;;KAGhD,iBAAiB,cAAc,yBAAyB;WAClD,MAAM;WACN,SAAS;WACT;aAAoB;;;qBAGlB,sBACX,cAAc,yBACd,SACA,QAEA,MAAM,aAAa,OAAO,SAAS,SACnC,MAAM,iBAAiB,OAAO,aAC7B"}
|
|
@@ -37,10 +37,9 @@ type StandardSchemaParameters = Extract<NonNullable<Extract<Tool<any>, {
|
|
|
37
37
|
* });
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
declare function tool<const TSchema extends StandardSchemaParameters, TResult = any>(tool: Tool<StandardSchemaInput<TSchema>, TResult> & {
|
|
40
|
+
export declare function tool<const TSchema extends StandardSchemaParameters, TResult = any>(tool: Tool<StandardSchemaInput<TSchema>, TResult> & {
|
|
41
41
|
parameters: TSchema;
|
|
42
42
|
}): Tool<StandardSchemaInput<TSchema>, TResult>;
|
|
43
|
-
declare function tool<TArgs extends Record<string, unknown>, TResult = any>(tool: Tool<TArgs, TResult>): Tool<TArgs, TResult>;
|
|
43
|
+
export declare function tool<TArgs extends Record<string, unknown>, TResult = any>(tool: Tool<TArgs, TResult>): Tool<TArgs, TResult>;
|
|
44
44
|
//#endregion
|
|
45
|
-
export { tool };
|
|
46
45
|
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","names":[],"sources":["../../src/model-context/tool.ts"],"mappings":";;KAEK,oBAAoB,WAAW;WACzB;aACE;eAAmB,aAAa;;;IAGzC,eAAe,0BACb,SACA,0BACF;KAEC,2BAA2B,QAC9B,YAAY,QAAQ;EAAa;;WACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","names":[],"sources":["../../src/model-context/tool.ts"],"mappings":";;KAEK,oBAAoB,WAAW;WACzB;aACE;eAAmB,aAAa;;;IAGzC,eAAe,0BACb,SACA,0BACF;KAEC,2BAA2B,QAC9B,YAAY,QAAQ;EAAa;;WACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4BG,WACR,gBAAgB,0BACtB,eAEA,MAAM,KAAK,oBAAoB,UAAU;EAAa,YAAY;IACjE,KAAK,oBAAoB,UAAU;wBACtB,KAAK,cAAc,yBAAyB,eAC1D,MAAM,KAAK,OAAO,WACjB,KAAK,OAAO"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Unsubscribe } from "../types/unsubscribe.js";
|
|
2
2
|
import { Tool } from "assistant-stream";
|
|
3
3
|
//#region src/model-context/types.d.ts
|
|
4
|
-
type LanguageModelV1CallSettings = {
|
|
4
|
+
export type LanguageModelV1CallSettings = {
|
|
5
5
|
maxTokens?: number;
|
|
6
6
|
temperature?: number;
|
|
7
7
|
topP?: number;
|
|
@@ -10,13 +10,13 @@ type LanguageModelV1CallSettings = {
|
|
|
10
10
|
seed?: number;
|
|
11
11
|
headers?: Record<string, string | undefined>;
|
|
12
12
|
};
|
|
13
|
-
type LanguageModelConfig = {
|
|
13
|
+
export type LanguageModelConfig = {
|
|
14
14
|
apiKey?: string;
|
|
15
15
|
baseUrl?: string;
|
|
16
16
|
modelName?: string;
|
|
17
17
|
reasoningEffort?: string;
|
|
18
18
|
};
|
|
19
|
-
type ModelContext = {
|
|
19
|
+
export type ModelContext = {
|
|
20
20
|
priority?: number | undefined;
|
|
21
21
|
system?: string | undefined;
|
|
22
22
|
tools?: Record<string, Tool<any, any>> | undefined;
|
|
@@ -29,23 +29,22 @@ type ModelContext = {
|
|
|
29
29
|
*/
|
|
30
30
|
unstable_composerMetadata?: Record<string, unknown> | undefined;
|
|
31
31
|
};
|
|
32
|
-
type ModelContextProvider = {
|
|
32
|
+
export type ModelContextProvider = {
|
|
33
33
|
getModelContext: () => ModelContext;
|
|
34
34
|
subscribe?: (callback: () => void) => Unsubscribe;
|
|
35
35
|
};
|
|
36
|
-
type AssistantToolProps<TArgs extends Record<string, unknown>, TResult> = Tool<TArgs, TResult> & {
|
|
36
|
+
export type AssistantToolProps<TArgs extends Record<string, unknown>, TResult> = Tool<TArgs, TResult> & {
|
|
37
37
|
toolName: string;
|
|
38
38
|
render?: unknown;
|
|
39
39
|
};
|
|
40
|
-
type AssistantInstructionsConfig = {
|
|
40
|
+
export type AssistantInstructionsConfig = {
|
|
41
41
|
disabled?: boolean | undefined;
|
|
42
42
|
instruction: string;
|
|
43
43
|
};
|
|
44
|
-
type AssistantContextConfig = {
|
|
44
|
+
export type AssistantContextConfig = {
|
|
45
45
|
getContext: () => string;
|
|
46
46
|
disabled?: boolean | undefined;
|
|
47
47
|
};
|
|
48
|
-
declare const mergeModelContexts: (configSet: Set<ModelContextProvider>) => ModelContext;
|
|
48
|
+
export declare const mergeModelContexts: (configSet: Set<ModelContextProvider>) => ModelContext;
|
|
49
49
|
//#endregion
|
|
50
|
-
export { AssistantContextConfig, AssistantInstructionsConfig, AssistantToolProps, LanguageModelConfig, LanguageModelV1CallSettings, ModelContext, ModelContextProvider, mergeModelContexts };
|
|
51
50
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/model-context/types.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../src/model-context/types.ts"],"mappings":";;;YAIY;EACV;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;;YAGA;EACV;EACA;EACA;EACA;;YAGU;EACV;EACA;EACA,QAAQ,eAAe;EACvB,eAAe;EACf,SAAS;;;;;;EAMT,4BAA4B;;YAGlB;EACV,uBAAuB;EACvB,aAAa,yBAAyB;;YAG5B,mBACV,cAAc,yBACd,WACE,KAAK,OAAO;EACd;EACA;;YAGU;EACV;EACA;;YAGU;EACV;EACA;;qBASW,qBACX,WAAW,IAAI,0BACd"}
|
|
@@ -2,13 +2,12 @@ import { AssistantRuntime } from "../runtime/api/assistant-runtime.js";
|
|
|
2
2
|
import { ComponentType, FC, PropsWithChildren } from "react";
|
|
3
3
|
import { AssistantClient, AuiConfig } from "@assistant-ui/store";
|
|
4
4
|
//#region src/react/AssistantProvider.d.ts
|
|
5
|
-
declare const getRenderComponent: (runtime: AssistantRuntime) => ComponentType | undefined;
|
|
6
|
-
type AssistantProviderBaseProps = PropsWithChildren<{
|
|
5
|
+
export declare const getRenderComponent: (runtime: AssistantRuntime) => ComponentType | undefined;
|
|
6
|
+
export type AssistantProviderBaseProps = PropsWithChildren<{
|
|
7
7
|
runtime: AssistantRuntime;
|
|
8
8
|
aui?: AssistantClient | null | undefined;
|
|
9
9
|
config?: AuiConfig | undefined;
|
|
10
10
|
}>;
|
|
11
|
-
declare const AssistantProviderBase: FC<AssistantProviderBaseProps>;
|
|
11
|
+
export declare const AssistantProviderBase: FC<AssistantProviderBaseProps>;
|
|
12
12
|
//#endregion
|
|
13
|
-
export { AssistantProviderBase, AssistantProviderBaseProps, getRenderComponent };
|
|
14
13
|
//# sourceMappingURL=AssistantProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantProvider.d.ts","names":[],"sources":["../../src/react/AssistantProvider.tsx"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"AssistantProvider.d.ts","names":[],"sources":["../../src/react/AssistantProvider.tsx"],"mappings":";;;;qBAea,qBAAsB,SAAS,qBAEnB;YAGb,6BAA6B;EACvC,SAAS;EACT,MAAM;EACN,SAAS;;qBA2BE,uBAAuB,GAAG"}
|
|
@@ -24,7 +24,7 @@ import { AssistantClient, AuiConfig } from "@assistant-ui/store";
|
|
|
24
24
|
* }
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
|
-
declare const AssistantRuntimeProvider: import("react").MemoExoticComponent<({ runtime, aui, config, children }: {
|
|
27
|
+
export declare const AssistantRuntimeProvider: import("react").MemoExoticComponent<({ runtime, aui, config, children }: {
|
|
28
28
|
/**
|
|
29
29
|
* The assistant runtime to expose to descendants. Build one with
|
|
30
30
|
* `useLocalRuntime`, `useExternalStoreRuntime`, or
|
|
@@ -46,5 +46,4 @@ declare const AssistantRuntimeProvider: import("react").MemoExoticComponent<({ r
|
|
|
46
46
|
children: ReactNode;
|
|
47
47
|
}) => import("react").JSX.Element>;
|
|
48
48
|
//#endregion
|
|
49
|
-
export { AssistantRuntimeProvider };
|
|
50
49
|
//# sourceMappingURL=AssistantRuntimeProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantRuntimeProvider.d.ts","names":[],"sources":["../../src/react/AssistantRuntimeProvider.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"AssistantRuntimeProvider.d.ts","names":[],"sources":["../../src/react/AssistantRuntimeProvider.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;qBA2Ba,0CAAwB,uBAAA,SAAA,KAAA,QAAA;;;;;;EAYjC,SAAS;;;;;;;EAOT,MAAM;;;;;EAKN,SAAS;EACT,UAAU;sBACX,IAAA"}
|
|
@@ -2,13 +2,12 @@ import { AssistantRuntime } from "../runtime/api/assistant-runtime.js";
|
|
|
2
2
|
import "../index.js";
|
|
3
3
|
import { AssistantClient, ScopesConfig } from "@assistant-ui/store";
|
|
4
4
|
//#region src/react/RuntimeAdapter.d.ts
|
|
5
|
-
declare const RuntimeAdapter: import("@assistant-ui/tap").Resource<import("@assistant-ui/store").ClientOutput<"threads">, [runtime: AssistantRuntime]>;
|
|
5
|
+
export declare const RuntimeAdapter: import("@assistant-ui/tap").Resource<import("@assistant-ui/store").ClientOutput<"threads">, [runtime: AssistantRuntime]>;
|
|
6
6
|
/**
|
|
7
7
|
* The scope defaults `RuntimeAdapter` installs when it is used as the `threads`
|
|
8
8
|
* config entry. Adapter packages that wrap a runtime in their own config entry
|
|
9
9
|
* attach this to the wrapping resource for scope parity with `RuntimeAdapter`.
|
|
10
10
|
*/
|
|
11
|
-
declare const runtimeAdapterTransformScopes: (scopes: ScopesConfig, parent: AssistantClient) => void;
|
|
11
|
+
export declare const runtimeAdapterTransformScopes: (scopes: ScopesConfig, parent: AssistantClient) => void;
|
|
12
12
|
//#endregion
|
|
13
|
-
export { RuntimeAdapter, runtimeAdapterTransformScopes };
|
|
14
13
|
//# sourceMappingURL=RuntimeAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuntimeAdapter.d.ts","names":[],"sources":["../../src/react/RuntimeAdapter.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"RuntimeAdapter.d.ts","names":[],"sources":["../../src/react/RuntimeAdapter.ts"],"mappings":";;;;qBAiCa,4CAAc,uCAAA,0BAAA,SAAA;;;;;;qBAOd,gCACX,QAAQ,cACR,QAAQ"}
|
|
@@ -4,7 +4,7 @@ import "../../internal.js";
|
|
|
4
4
|
import "../../index.js";
|
|
5
5
|
import { TitleGenerationAdapter } from "./TitleGenerationAdapter.js";
|
|
6
6
|
//#region src/react/adapters/LocalStorageThreadListAdapter.d.ts
|
|
7
|
-
type AsyncStorageLike = {
|
|
7
|
+
export type AsyncStorageLike = {
|
|
8
8
|
getItem(key: string): Promise<string | null>;
|
|
9
9
|
setItem(key: string, value: string): Promise<void>;
|
|
10
10
|
removeItem(key: string): Promise<void>;
|
|
@@ -21,9 +21,8 @@ type StoredThreadMetadata = {
|
|
|
21
21
|
title?: string;
|
|
22
22
|
custom?: Record<string, unknown> | undefined;
|
|
23
23
|
};
|
|
24
|
-
declare const parseStoredThreadMetadata: (raw: string | null) => StoredThreadMetadata[];
|
|
25
|
-
declare const parseStoredMessageRepository: (raw: string | null) => ExportedMessageRepository;
|
|
26
|
-
declare const createLocalStorageAdapter: (options: LocalStorageAdapterOptions) => RemoteThreadListAdapter;
|
|
24
|
+
export declare const parseStoredThreadMetadata: (raw: string | null) => StoredThreadMetadata[];
|
|
25
|
+
export declare const parseStoredMessageRepository: (raw: string | null) => ExportedMessageRepository;
|
|
26
|
+
export declare const createLocalStorageAdapter: (options: LocalStorageAdapterOptions) => RemoteThreadListAdapter;
|
|
27
27
|
//#endregion
|
|
28
|
-
export { AsyncStorageLike, createLocalStorageAdapter, parseStoredMessageRepository, parseStoredThreadMetadata };
|
|
29
28
|
//# sourceMappingURL=LocalStorageThreadListAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalStorageThreadListAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"LocalStorageThreadListAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"mappings":";;;;;;YAsCY;EACV,QAAQ,cAAc;EACtB,QAAQ,aAAa,gBAAgB;EACrC,WAAW,cAAc;;KAkCtB;EACH,SAAS;EACT;EACA,iBAAiB;;KAGd;EACH;EACA;EACA;EACA;EACA,SAAS;;qBA+KE,4BACX,uBACC;qBAoCU,+BACX,uBACC;qBAqIU,4BACX,SAAS,+BACR"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isRecord } from "../../utils/json/is-json.js";
|
|
2
2
|
import { RuntimeAdapterProvider } from "../runtimes/RuntimeAdapterProvider.js";
|
|
3
|
+
import { isStoredMessagePart, isStoredMessageRole, parseStoredAttachment, parseStoredDate } from "../../runtime/utils/stored-message-parts.js";
|
|
3
4
|
import { createAssistantStream } from "assistant-stream";
|
|
4
5
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
5
6
|
import { useEffect, useMemo, useRef, useState } from "@assistant-ui/tap/react-shim";
|
|
@@ -48,29 +49,41 @@ const parseStoredThread = (value) => {
|
|
|
48
49
|
...isRecord(value.custom) ? { custom: value.custom } : void 0
|
|
49
50
|
};
|
|
50
51
|
};
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
const messageModalities = { voice: true };
|
|
53
|
+
const isMessageModality = (value) => typeof value === "string" && Object.hasOwn(messageModalities, value);
|
|
54
|
+
const parseStoredMessageParts = (content, depth) => content.flatMap((part) => {
|
|
55
|
+
if (!isStoredMessagePart(part)) return [];
|
|
56
|
+
if (part.type !== "tool-call" || part.messages === void 0) return [part];
|
|
57
|
+
const { messages, ...toolCall } = part;
|
|
58
|
+
if (!Array.isArray(messages)) return [toolCall];
|
|
59
|
+
return [{
|
|
60
|
+
...toolCall,
|
|
61
|
+
messages: messages.flatMap((item) => {
|
|
62
|
+
const message = parseStoredThreadMessage(item, depth + 1);
|
|
63
|
+
return message ? [message] : [];
|
|
64
|
+
})
|
|
65
|
+
}];
|
|
66
|
+
});
|
|
67
|
+
const parseStoredThreadMessage = (value, depth) => {
|
|
68
|
+
if (depth > 100) return null;
|
|
59
69
|
if (!isRecord(value) || typeof value.id !== "string") return null;
|
|
60
|
-
if (!
|
|
70
|
+
if (!isStoredMessageRole(value.role)) return null;
|
|
61
71
|
if (!Array.isArray(value.content)) return null;
|
|
62
|
-
const createdAt =
|
|
72
|
+
const createdAt = parseStoredDate(value.createdAt);
|
|
63
73
|
if (!createdAt) return null;
|
|
64
74
|
const metadata = value.metadata;
|
|
65
75
|
if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;
|
|
76
|
+
const modality = isMessageModality(metadata.modality) ? metadata.modality : void 0;
|
|
66
77
|
if (value.role === "assistant") {
|
|
67
78
|
const status = value.status;
|
|
68
79
|
if (!isRecord(status) || typeof status.type !== "string") return null;
|
|
69
|
-
const
|
|
80
|
+
const submittedFeedback = isRecord(metadata.submittedFeedback) ? metadata.submittedFeedback : void 0;
|
|
81
|
+
const submittedFeedbackType = submittedFeedback?.type;
|
|
82
|
+
const submittedFeedbackComment = submittedFeedback?.comment;
|
|
70
83
|
return {
|
|
71
84
|
id: value.id,
|
|
72
85
|
role: "assistant",
|
|
73
|
-
content: value.content,
|
|
86
|
+
content: parseStoredMessageParts(value.content, depth),
|
|
74
87
|
status,
|
|
75
88
|
createdAt,
|
|
76
89
|
metadata: {
|
|
@@ -78,9 +91,13 @@ const parseStoredThreadMessage = (value) => {
|
|
|
78
91
|
unstable_annotations: Array.isArray(metadata.unstable_annotations) ? metadata.unstable_annotations : [],
|
|
79
92
|
unstable_data: Array.isArray(metadata.unstable_data) ? metadata.unstable_data : [],
|
|
80
93
|
steps: Array.isArray(metadata.steps) ? metadata.steps : [],
|
|
81
|
-
...submittedFeedbackType === "positive" || submittedFeedbackType === "negative" ? { submittedFeedback: {
|
|
94
|
+
...submittedFeedbackType === "positive" || submittedFeedbackType === "negative" ? { submittedFeedback: {
|
|
95
|
+
type: submittedFeedbackType,
|
|
96
|
+
...typeof submittedFeedbackComment === "string" && submittedFeedbackComment !== "" ? { comment: submittedFeedbackComment } : void 0
|
|
97
|
+
} } : void 0,
|
|
82
98
|
...metadata.timing !== void 0 ? { timing: metadata.timing } : void 0,
|
|
83
99
|
...metadata.isOptimistic === true ? { isOptimistic: true } : void 0,
|
|
100
|
+
...modality !== void 0 ? { modality } : void 0,
|
|
84
101
|
custom: metadata.custom
|
|
85
102
|
}
|
|
86
103
|
};
|
|
@@ -88,16 +105,23 @@ const parseStoredThreadMessage = (value) => {
|
|
|
88
105
|
if (value.role === "user") return {
|
|
89
106
|
id: value.id,
|
|
90
107
|
role: "user",
|
|
91
|
-
content: value.content,
|
|
92
|
-
attachments: Array.isArray(value.attachments) ? value.attachments
|
|
108
|
+
content: parseStoredMessageParts(value.content, depth),
|
|
109
|
+
attachments: Array.isArray(value.attachments) ? value.attachments.flatMap((item) => {
|
|
110
|
+
const attachment = parseStoredAttachment(item, isStoredMessagePart);
|
|
111
|
+
return attachment ? [attachment] : [];
|
|
112
|
+
}) : [],
|
|
93
113
|
createdAt,
|
|
94
|
-
metadata: {
|
|
114
|
+
metadata: {
|
|
115
|
+
...modality !== void 0 ? { modality } : void 0,
|
|
116
|
+
custom: metadata.custom
|
|
117
|
+
}
|
|
95
118
|
};
|
|
96
|
-
|
|
119
|
+
const content = parseStoredMessageParts(value.content, depth);
|
|
120
|
+
if (content.length !== 1) return null;
|
|
97
121
|
return {
|
|
98
122
|
id: value.id,
|
|
99
123
|
role: "system",
|
|
100
|
-
content: [
|
|
124
|
+
content: [content[0]],
|
|
101
125
|
createdAt,
|
|
102
126
|
metadata: { custom: metadata.custom }
|
|
103
127
|
};
|
|
@@ -112,7 +136,7 @@ const parseStoredThreadMetadata = (raw) => {
|
|
|
112
136
|
};
|
|
113
137
|
const parseStoredMessageRepositoryItem = (value) => {
|
|
114
138
|
if (!isRecord(value)) return null;
|
|
115
|
-
const message = parseStoredThreadMessage(value.message);
|
|
139
|
+
const message = parseStoredThreadMessage(value.message, 0);
|
|
116
140
|
if (!message) return null;
|
|
117
141
|
const parentId = value.parentId;
|
|
118
142
|
if (parentId !== void 0 && parentId !== null && typeof parentId !== "string") return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalStorageThreadListAdapter.js","names":["AssistantStream","createAssistantStream","FC","PropsWithChildren","useEffect","useMemo","useRef","useState","useAui","RemoteThreadInitializeResponse","RemoteThreadListAdapter","RemoteThreadListResponse","RemoteThreadMetadata","ThreadHistoryAdapter","ThreadMessage","RunConfig","ExportedMessageRepository","ExportedMessageRepositoryItem","isRecord","RuntimeAdapterProvider","RuntimeAdapters","TitleGenerationAdapter","AsyncStorageLike","getItem","key","Promise","setItem","value","removeItem","KeyedMutationQueue","tails","Map","run","mutation","T","previous","get","result","then","tail","undefined","set","delete","mutationQueues","WeakMap","getMutationQueue","storage","queue","LocalStorageAdapterOptions","prefix","titleGenerator","StoredThreadMetadata","remoteId","externalId","status","title","custom","Record","StoredSystemMessage","Extract","role","StoredUserMessage","StoredAssistantMessage","parseJSON","raw","JSON","parse","parseStoredThread","parseDate","Date","Number","isNaN","getTime","date","isMessageRole","parseStoredThreadMessage","id","Array","isArray","content","createdAt","metadata","type","submittedFeedback","submittedFeedbackType","unstable_state","unstable_annotations","unstable_data","steps","timing","NonNullable","isOptimistic","attachments","length","parseStoredThreadMetadata","parsed","flatMap","item","thread","parseStoredMessageRepositoryItem","message","parentId","runConfig","parseStoredMessageRepository","messages","candidateMessages","parsedItem","acceptedIds","Set","has","add","headId","some","AsyncStorageHistoryAdapter","getAui","ReturnType","mutationQueue","constructor","aui","_messagesKey","load","threadListItem","getState","append","initialize","repo","idx","findIndex","m","push","stringify","useLocalStorageThreadAdapters","auiRef","current","history","createHistoryProvider","Provider","t0","$","_c","children","adapters","t1","createLocalStorageAdapter","options","threadsKey","messagesKey","threadId","loadThreadMetadata","saveThreadMetadata","threads","updateThreadMetadata","update","find","adapter","unstable_Provider","unstable_useAdapters","useLocalStorageAdapters","list","map","t","unshift","rename","newTitle","updateCustom","archive","unarchive","filtered","filter","fetch","Error","generateTitle","controller","appendText"],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"sourcesContent":["import { type AssistantStream, createAssistantStream } from \"assistant-stream\";\nimport {\n type FC,\n type PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n RemoteThreadInitializeResponse,\n RemoteThreadListAdapter,\n RemoteThreadListResponse,\n RemoteThreadMetadata,\n ThreadHistoryAdapter,\n ThreadMessage,\n RunConfig,\n} from \"../../index\";\nimport type {\n ExportedMessageRepository,\n ExportedMessageRepositoryItem,\n} from \"../../internal\";\nimport { isRecord } from \"../../utils/json/is-json\";\nimport {\n RuntimeAdapterProvider,\n type RuntimeAdapters,\n} from \"../runtimes/RuntimeAdapterProvider\";\nimport type { TitleGenerationAdapter } from \"./TitleGenerationAdapter\";\n\nexport type AsyncStorageLike = {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n};\n\nclass KeyedMutationQueue {\n private readonly tails = new Map<string, Promise<void>>();\n\n run<T>(key: string, mutation: () => Promise<T>): Promise<T> {\n const previous = this.tails.get(key);\n const result = previous ? previous.then(mutation) : mutation();\n const tail = result.then(\n () => undefined,\n () => undefined,\n );\n\n this.tails.set(key, tail);\n void tail.then(() => {\n if (this.tails.get(key) === tail) this.tails.delete(key);\n });\n\n return result;\n }\n}\n\nconst mutationQueues = new WeakMap<AsyncStorageLike, KeyedMutationQueue>();\n\nconst getMutationQueue = (storage: AsyncStorageLike): KeyedMutationQueue => {\n let queue = mutationQueues.get(storage);\n if (!queue) {\n queue = new KeyedMutationQueue();\n mutationQueues.set(storage, queue);\n }\n return queue;\n};\n\ntype LocalStorageAdapterOptions = {\n storage: AsyncStorageLike;\n prefix?: string | undefined;\n titleGenerator?: TitleGenerationAdapter | undefined;\n};\n\ntype StoredThreadMetadata = {\n remoteId: string;\n externalId?: string;\n status: \"regular\" | \"archived\";\n title?: string;\n custom?: Record<string, unknown> | undefined;\n};\n\ntype StoredSystemMessage = Extract<ThreadMessage, { role: \"system\" }>;\ntype StoredUserMessage = Extract<ThreadMessage, { role: \"user\" }>;\ntype StoredAssistantMessage = Extract<ThreadMessage, { role: \"assistant\" }>;\n\nconst parseJSON = (raw: string | null): unknown => {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n};\n\nconst parseStoredThread = (value: unknown): StoredThreadMetadata | null => {\n if (!isRecord(value) || typeof value.remoteId !== \"string\") return null;\n\n const status = value.status ?? \"regular\";\n if (status !== \"regular\" && status !== \"archived\") return null;\n\n return {\n remoteId: value.remoteId,\n status,\n ...(typeof value.externalId === \"string\"\n ? { externalId: value.externalId }\n : undefined),\n ...(typeof value.title === \"string\" ? { title: value.title } : undefined),\n ...(isRecord(value.custom) ? { custom: value.custom } : undefined),\n };\n};\n\nconst parseDate = (value: unknown): Date | null => {\n if (value instanceof Date && !Number.isNaN(value.getTime())) return value;\n if (typeof value !== \"string\" && typeof value !== \"number\") return null;\n\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\nconst isMessageRole = (value: unknown): value is ThreadMessage[\"role\"] =>\n value === \"system\" || value === \"user\" || value === \"assistant\";\n\nconst parseStoredThreadMessage = (value: unknown): ThreadMessage | null => {\n if (!isRecord(value) || typeof value.id !== \"string\") return null;\n if (!isMessageRole(value.role)) return null;\n if (!Array.isArray(value.content)) return null;\n\n const createdAt = parseDate(value.createdAt);\n if (!createdAt) return null;\n\n const metadata = value.metadata;\n if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;\n\n if (value.role === \"assistant\") {\n const status = value.status;\n if (!isRecord(status) || typeof status.type !== \"string\") return null;\n\n const submittedFeedback = isRecord(metadata.submittedFeedback)\n ? metadata.submittedFeedback\n : undefined;\n const submittedFeedbackType = submittedFeedback?.type;\n\n return {\n id: value.id,\n role: \"assistant\",\n content: value.content as StoredAssistantMessage[\"content\"],\n status: status as StoredAssistantMessage[\"status\"],\n createdAt,\n metadata: {\n unstable_state: (metadata.unstable_state ??\n null) as StoredAssistantMessage[\"metadata\"][\"unstable_state\"],\n unstable_annotations: Array.isArray(metadata.unstable_annotations)\n ? (metadata.unstable_annotations as StoredAssistantMessage[\"metadata\"][\"unstable_annotations\"])\n : [],\n unstable_data: Array.isArray(metadata.unstable_data)\n ? (metadata.unstable_data as StoredAssistantMessage[\"metadata\"][\"unstable_data\"])\n : [],\n steps: Array.isArray(metadata.steps)\n ? (metadata.steps as StoredAssistantMessage[\"metadata\"][\"steps\"])\n : [],\n ...(submittedFeedbackType === \"positive\" ||\n submittedFeedbackType === \"negative\"\n ? {\n submittedFeedback: {\n type: submittedFeedbackType,\n },\n }\n : undefined),\n ...(metadata.timing !== undefined\n ? {\n timing: metadata.timing as NonNullable<\n StoredAssistantMessage[\"metadata\"][\"timing\"]\n >,\n }\n : undefined),\n ...(metadata.isOptimistic === true\n ? { isOptimistic: true }\n : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n if (value.role === \"user\") {\n return {\n id: value.id,\n role: \"user\",\n content: value.content as StoredUserMessage[\"content\"],\n attachments: Array.isArray(value.attachments)\n ? (value.attachments as StoredUserMessage[\"attachments\"])\n : [],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n }\n\n if (value.content.length !== 1) return null;\n\n return {\n id: value.id,\n role: \"system\",\n content: [value.content[0] as StoredSystemMessage[\"content\"][0]],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n};\n\nexport const parseStoredThreadMetadata = (\n raw: string | null,\n): StoredThreadMetadata[] => {\n const parsed = parseJSON(raw);\n if (!Array.isArray(parsed)) return [];\n\n return parsed.flatMap((item) => {\n const thread = parseStoredThread(item);\n return thread ? [thread] : [];\n });\n};\n\nconst parseStoredMessageRepositoryItem = (\n value: unknown,\n): ExportedMessageRepositoryItem | null => {\n if (!isRecord(value)) return null;\n\n const message = parseStoredThreadMessage(value.message);\n if (!message) return null;\n\n const parentId = value.parentId;\n if (\n parentId !== undefined &&\n parentId !== null &&\n typeof parentId !== \"string\"\n ) {\n return null;\n }\n\n return {\n message,\n parentId: parentId ?? null,\n ...(isRecord(value.runConfig)\n ? { runConfig: value.runConfig as RunConfig }\n : undefined),\n };\n};\n\nexport const parseStoredMessageRepository = (\n raw: string | null,\n): ExportedMessageRepository => {\n const parsed = parseJSON(raw);\n if (!isRecord(parsed) || !Array.isArray(parsed.messages)) {\n return { messages: [] };\n }\n\n const candidateMessages = parsed.messages.flatMap((item) => {\n const parsedItem = parseStoredMessageRepositoryItem(item);\n return parsedItem ? [parsedItem] : [];\n });\n\n const acceptedIds = new Set<string>();\n const messages = candidateMessages.flatMap((item) => {\n if (acceptedIds.has(item.message.id)) return [];\n if (item.parentId !== null && !acceptedIds.has(item.parentId)) return [];\n\n acceptedIds.add(item.message.id);\n return [item];\n });\n\n const headId =\n parsed.headId === null ||\n (typeof parsed.headId === \"string\" &&\n messages.some((item) => item.message.id === parsed.headId))\n ? parsed.headId\n : undefined;\n\n return {\n ...(headId !== undefined ? { headId } : undefined),\n messages,\n };\n};\n\nclass AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {\n private storage: AsyncStorageLike;\n private getAui: () => ReturnType<typeof useAui>;\n private prefix: string;\n private mutationQueue: KeyedMutationQueue;\n\n constructor(\n storage: AsyncStorageLike,\n getAui: () => ReturnType<typeof useAui>,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n ) {\n this.storage = storage;\n this.getAui = getAui;\n this.prefix = prefix;\n this.mutationQueue = mutationQueue;\n }\n\n private get aui(): ReturnType<typeof useAui> {\n return this.getAui();\n }\n\n private _messagesKey(remoteId: string) {\n return `${this.prefix}messages:${remoteId}`;\n }\n\n async load(): Promise<ExportedMessageRepository> {\n const remoteId = this.aui.threadListItem.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const raw = await this.storage.getItem(this._messagesKey(remoteId));\n return parseStoredMessageRepository(raw);\n }\n\n async append(item: ExportedMessageRepositoryItem): Promise<void> {\n const { remoteId } = await this.aui.threadListItem.initialize();\n\n const key = this._messagesKey(remoteId);\n await this.mutationQueue.run(key, async () => {\n const raw = await this.storage.getItem(key);\n const repo = parseStoredMessageRepository(raw);\n\n const idx = repo.messages.findIndex(\n (m) => m.message.id === item.message.id,\n );\n if (idx >= 0) {\n repo.messages[idx] = item;\n } else {\n repo.messages.push(item);\n }\n repo.headId = item.message.id;\n\n await this.storage.setItem(key, JSON.stringify(repo));\n });\n }\n}\n\nconst useLocalStorageThreadAdapters = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): RuntimeAdapters => {\n const aui = useAui();\n // Not useEffectEvent: history adapter methods run during render (SSR load).\n const auiRef = useRef(aui);\n useEffect(() => {\n auiRef.current = aui;\n });\n const [history] = useState(\n () =>\n new AsyncStorageHistoryAdapter(\n storage,\n () => auiRef.current,\n prefix,\n mutationQueue,\n ),\n );\n return useMemo(() => ({ history }), [history]);\n};\n\nconst createHistoryProvider = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): FC<PropsWithChildren> => {\n const Provider: FC<PropsWithChildren> = ({ children }) => {\n const adapters = useLocalStorageThreadAdapters(\n storage,\n prefix,\n mutationQueue,\n );\n return (\n <RuntimeAdapterProvider adapters={adapters}>\n {children}\n </RuntimeAdapterProvider>\n );\n };\n return Provider;\n};\n\nexport const createLocalStorageAdapter = (\n options: LocalStorageAdapterOptions,\n): RemoteThreadListAdapter => {\n const { storage, prefix = \"@assistant-ui:\", titleGenerator } = options;\n\n const threadsKey = `${prefix}threads`;\n const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;\n const mutationQueue = getMutationQueue(storage);\n\n const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {\n const raw = await storage.getItem(threadsKey);\n return parseStoredThreadMetadata(raw);\n };\n\n const saveThreadMetadata = async (\n threads: StoredThreadMetadata[],\n ): Promise<void> => {\n await storage.setItem(threadsKey, JSON.stringify(threads));\n };\n\n const updateThreadMetadata = async (\n remoteId: string,\n update: (thread: StoredThreadMetadata) => void,\n ): Promise<void> => {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const thread = threads.find((item) => item.remoteId === remoteId);\n if (thread) {\n update(thread);\n await saveThreadMetadata(threads);\n }\n });\n };\n\n const adapter: RemoteThreadListAdapter = {\n unstable_Provider: createHistoryProvider(storage, prefix, mutationQueue),\n unstable_useAdapters: function useLocalStorageAdapters() {\n return useLocalStorageThreadAdapters(storage, prefix, mutationQueue);\n },\n\n async list(): Promise<RemoteThreadListResponse> {\n const threads = await loadThreadMetadata();\n return {\n threads: threads.map((t) => ({\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: t.status,\n title: t.title,\n custom: t.custom,\n })),\n };\n },\n\n async initialize(\n threadId: string,\n ): Promise<RemoteThreadInitializeResponse> {\n const remoteId = threadId;\n return mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n\n // Only add if not already present\n if (!threads.some((t) => t.remoteId === remoteId)) {\n threads.unshift({\n remoteId,\n status: \"regular\",\n });\n await saveThreadMetadata(threads);\n }\n\n return { remoteId, externalId: undefined };\n });\n },\n\n async rename(remoteId: string, newTitle: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = newTitle;\n });\n },\n\n async updateCustom(\n remoteId: string,\n custom: Record<string, unknown> | undefined,\n ): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.custom = custom;\n });\n },\n\n async archive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"archived\";\n });\n },\n\n async unarchive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"regular\";\n });\n },\n\n async delete(remoteId: string): Promise<void> {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const filtered = threads.filter((t) => t.remoteId !== remoteId);\n await saveThreadMetadata(filtered);\n });\n const key = messagesKey(remoteId);\n await mutationQueue.run(key, () => storage.removeItem(key));\n },\n\n async fetch(threadId: string): Promise<RemoteThreadMetadata> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === threadId);\n if (!thread)\n throw new Error(\n `Stored thread \"${threadId}\" not found while fetching thread metadata.`,\n );\n return {\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n custom: thread.custom,\n };\n },\n\n async generateTitle(\n remoteId: string,\n messages: readonly ThreadMessage[],\n ): Promise<AssistantStream> {\n if (titleGenerator) {\n const title = await titleGenerator.generateTitle(messages);\n\n // Update the stored title\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = title;\n });\n\n // Return a stream with a single text part\n return createAssistantStream((controller) => {\n controller.appendText(title);\n });\n }\n\n // No title generator — return empty stream\n return createAssistantStream(() => {});\n },\n };\n\n return adapter;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LocalStorageThreadListAdapter.js","names":["AssistantStream","createAssistantStream","FC","PropsWithChildren","useEffect","useMemo","useRef","useState","useAui","MessageModality","RemoteThreadInitializeResponse","RemoteThreadListAdapter","RemoteThreadListResponse","RemoteThreadMetadata","ThreadHistoryAdapter","ThreadMessage","RunConfig","ExportedMessageRepository","ExportedMessageRepositoryItem","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredMessagePart","isStoredMessageRole","parseStoredAttachment","parseStoredDate","RuntimeAdapterProvider","RuntimeAdapters","TitleGenerationAdapter","AsyncStorageLike","getItem","key","Promise","setItem","value","removeItem","KeyedMutationQueue","tails","Map","run","mutation","T","previous","get","result","then","tail","undefined","set","delete","mutationQueues","WeakMap","getMutationQueue","storage","queue","LocalStorageAdapterOptions","prefix","titleGenerator","StoredThreadMetadata","remoteId","externalId","status","title","custom","Record","StoredSystemMessage","Extract","role","StoredUserMessage","StoredAssistantMessage","parseJSON","raw","JSON","parse","parseStoredThread","messageModalities","voice","isMessageModality","Object","hasOwn","parseStoredMessageParts","content","depth","flatMap","part","type","messages","toolCall","Array","isArray","item","message","parseStoredThreadMessage","id","createdAt","metadata","modality","submittedFeedback","submittedFeedbackType","submittedFeedbackComment","comment","unstable_state","unstable_annotations","unstable_data","steps","timing","NonNullable","isOptimistic","attachments","attachment","length","parseStoredThreadMetadata","parsed","thread","parseStoredMessageRepositoryItem","parentId","runConfig","parseStoredMessageRepository","candidateMessages","parsedItem","acceptedIds","Set","has","add","headId","some","AsyncStorageHistoryAdapter","getAui","ReturnType","mutationQueue","constructor","aui","_messagesKey","load","threadListItem","getState","append","initialize","repo","idx","findIndex","m","push","stringify","useLocalStorageThreadAdapters","auiRef","current","history","createHistoryProvider","Provider","t0","$","_c","children","adapters","t1","createLocalStorageAdapter","options","threadsKey","messagesKey","threadId","loadThreadMetadata","saveThreadMetadata","threads","updateThreadMetadata","update","find","adapter","unstable_Provider","unstable_useAdapters","useLocalStorageAdapters","list","map","t","unshift","rename","newTitle","updateCustom","archive","unarchive","filtered","filter","fetch","Error","generateTitle","controller","appendText"],"sources":["../../../src/react/adapters/LocalStorageThreadListAdapter.tsx"],"sourcesContent":["import { type AssistantStream, createAssistantStream } from \"assistant-stream\";\nimport {\n type FC,\n type PropsWithChildren,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type {\n MessageModality,\n RemoteThreadInitializeResponse,\n RemoteThreadListAdapter,\n RemoteThreadListResponse,\n RemoteThreadMetadata,\n ThreadHistoryAdapter,\n ThreadMessage,\n RunConfig,\n} from \"../../index\";\nimport type {\n ExportedMessageRepository,\n ExportedMessageRepositoryItem,\n} from \"../../internal\";\nimport { isRecord } from \"../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredMessagePart,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n} from \"../../runtime/utils/stored-message-parts\";\nimport {\n RuntimeAdapterProvider,\n type RuntimeAdapters,\n} from \"../runtimes/RuntimeAdapterProvider\";\nimport type { TitleGenerationAdapter } from \"./TitleGenerationAdapter\";\n\nexport type AsyncStorageLike = {\n getItem(key: string): Promise<string | null>;\n setItem(key: string, value: string): Promise<void>;\n removeItem(key: string): Promise<void>;\n};\n\nclass KeyedMutationQueue {\n private readonly tails = new Map<string, Promise<void>>();\n\n run<T>(key: string, mutation: () => Promise<T>): Promise<T> {\n const previous = this.tails.get(key);\n const result = previous ? previous.then(mutation) : mutation();\n const tail = result.then(\n () => undefined,\n () => undefined,\n );\n\n this.tails.set(key, tail);\n void tail.then(() => {\n if (this.tails.get(key) === tail) this.tails.delete(key);\n });\n\n return result;\n }\n}\n\nconst mutationQueues = new WeakMap<AsyncStorageLike, KeyedMutationQueue>();\n\nconst getMutationQueue = (storage: AsyncStorageLike): KeyedMutationQueue => {\n let queue = mutationQueues.get(storage);\n if (!queue) {\n queue = new KeyedMutationQueue();\n mutationQueues.set(storage, queue);\n }\n return queue;\n};\n\ntype LocalStorageAdapterOptions = {\n storage: AsyncStorageLike;\n prefix?: string | undefined;\n titleGenerator?: TitleGenerationAdapter | undefined;\n};\n\ntype StoredThreadMetadata = {\n remoteId: string;\n externalId?: string;\n status: \"regular\" | \"archived\";\n title?: string;\n custom?: Record<string, unknown> | undefined;\n};\n\ntype StoredSystemMessage = Extract<ThreadMessage, { role: \"system\" }>;\ntype StoredUserMessage = Extract<ThreadMessage, { role: \"user\" }>;\ntype StoredAssistantMessage = Extract<ThreadMessage, { role: \"assistant\" }>;\n\nconst parseJSON = (raw: string | null): unknown => {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n};\n\nconst parseStoredThread = (value: unknown): StoredThreadMetadata | null => {\n if (!isRecord(value) || typeof value.remoteId !== \"string\") return null;\n\n const status = value.status ?? \"regular\";\n if (status !== \"regular\" && status !== \"archived\") return null;\n\n return {\n remoteId: value.remoteId,\n status,\n ...(typeof value.externalId === \"string\"\n ? { externalId: value.externalId }\n : undefined),\n ...(typeof value.title === \"string\" ? { title: value.title } : undefined),\n ...(isRecord(value.custom) ? { custom: value.custom } : undefined),\n };\n};\n\nconst messageModalities = {\n voice: true,\n} satisfies Record<MessageModality, true>;\n\nconst isMessageModality = (value: unknown): value is MessageModality =>\n typeof value === \"string\" && Object.hasOwn(messageModalities, value);\n\nconst parseStoredMessageParts = (\n content: unknown[],\n depth: number,\n): unknown[] =>\n content.flatMap((part) => {\n if (!isStoredMessagePart(part)) return [];\n if (part.type !== \"tool-call\" || part.messages === undefined) return [part];\n\n const { messages, ...toolCall } = part;\n if (!Array.isArray(messages)) return [toolCall];\n return [\n {\n ...toolCall,\n messages: messages.flatMap((item) => {\n const message = parseStoredThreadMessage(item, depth + 1);\n return message ? [message] : [];\n }),\n },\n ];\n });\n\nconst parseStoredThreadMessage = (\n value: unknown,\n depth: number,\n): ThreadMessage | null => {\n if (depth > MAX_STORED_MESSAGE_DEPTH) return null;\n if (!isRecord(value) || typeof value.id !== \"string\") return null;\n if (!isStoredMessageRole(value.role)) return null;\n if (!Array.isArray(value.content)) return null;\n\n const createdAt = parseStoredDate(value.createdAt);\n if (!createdAt) return null;\n\n const metadata = value.metadata;\n if (!isRecord(metadata) || !isRecord(metadata.custom)) return null;\n\n const modality = isMessageModality(metadata.modality)\n ? metadata.modality\n : undefined;\n\n if (value.role === \"assistant\") {\n const status = value.status;\n if (!isRecord(status) || typeof status.type !== \"string\") return null;\n\n const submittedFeedback = isRecord(metadata.submittedFeedback)\n ? metadata.submittedFeedback\n : undefined;\n const submittedFeedbackType = submittedFeedback?.type;\n const submittedFeedbackComment = submittedFeedback?.comment;\n\n return {\n id: value.id,\n role: \"assistant\",\n content: parseStoredMessageParts(\n value.content,\n depth,\n ) as StoredAssistantMessage[\"content\"],\n status: status as StoredAssistantMessage[\"status\"],\n createdAt,\n metadata: {\n unstable_state: (metadata.unstable_state ??\n null) as StoredAssistantMessage[\"metadata\"][\"unstable_state\"],\n unstable_annotations: Array.isArray(metadata.unstable_annotations)\n ? (metadata.unstable_annotations as StoredAssistantMessage[\"metadata\"][\"unstable_annotations\"])\n : [],\n unstable_data: Array.isArray(metadata.unstable_data)\n ? (metadata.unstable_data as StoredAssistantMessage[\"metadata\"][\"unstable_data\"])\n : [],\n steps: Array.isArray(metadata.steps)\n ? (metadata.steps as StoredAssistantMessage[\"metadata\"][\"steps\"])\n : [],\n ...(submittedFeedbackType === \"positive\" ||\n submittedFeedbackType === \"negative\"\n ? {\n submittedFeedback: {\n type: submittedFeedbackType,\n ...(typeof submittedFeedbackComment === \"string\" &&\n submittedFeedbackComment !== \"\"\n ? { comment: submittedFeedbackComment }\n : undefined),\n },\n }\n : undefined),\n ...(metadata.timing !== undefined\n ? {\n timing: metadata.timing as NonNullable<\n StoredAssistantMessage[\"metadata\"][\"timing\"]\n >,\n }\n : undefined),\n ...(metadata.isOptimistic === true\n ? { isOptimistic: true }\n : undefined),\n ...(modality !== undefined ? { modality } : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n if (value.role === \"user\") {\n return {\n id: value.id,\n role: \"user\",\n content: parseStoredMessageParts(\n value.content,\n depth,\n ) as StoredUserMessage[\"content\"],\n attachments: Array.isArray(value.attachments)\n ? value.attachments.flatMap((item) => {\n const attachment = parseStoredAttachment(item, isStoredMessagePart);\n return attachment ? [attachment] : [];\n })\n : [],\n createdAt,\n metadata: {\n ...(modality !== undefined ? { modality } : undefined),\n custom: metadata.custom,\n },\n };\n }\n\n const content = parseStoredMessageParts(value.content, depth);\n if (content.length !== 1) return null;\n\n return {\n id: value.id,\n role: \"system\",\n content: [content[0] as StoredSystemMessage[\"content\"][0]],\n createdAt,\n metadata: {\n custom: metadata.custom,\n },\n };\n};\n\nexport const parseStoredThreadMetadata = (\n raw: string | null,\n): StoredThreadMetadata[] => {\n const parsed = parseJSON(raw);\n if (!Array.isArray(parsed)) return [];\n\n return parsed.flatMap((item) => {\n const thread = parseStoredThread(item);\n return thread ? [thread] : [];\n });\n};\n\nconst parseStoredMessageRepositoryItem = (\n value: unknown,\n): ExportedMessageRepositoryItem | null => {\n if (!isRecord(value)) return null;\n\n const message = parseStoredThreadMessage(value.message, 0);\n if (!message) return null;\n\n const parentId = value.parentId;\n if (\n parentId !== undefined &&\n parentId !== null &&\n typeof parentId !== \"string\"\n ) {\n return null;\n }\n\n return {\n message,\n parentId: parentId ?? null,\n ...(isRecord(value.runConfig)\n ? { runConfig: value.runConfig as RunConfig }\n : undefined),\n };\n};\n\nexport const parseStoredMessageRepository = (\n raw: string | null,\n): ExportedMessageRepository => {\n const parsed = parseJSON(raw);\n if (!isRecord(parsed) || !Array.isArray(parsed.messages)) {\n return { messages: [] };\n }\n\n const candidateMessages = parsed.messages.flatMap((item) => {\n const parsedItem = parseStoredMessageRepositoryItem(item);\n return parsedItem ? [parsedItem] : [];\n });\n\n const acceptedIds = new Set<string>();\n const messages = candidateMessages.flatMap((item) => {\n if (acceptedIds.has(item.message.id)) return [];\n if (item.parentId !== null && !acceptedIds.has(item.parentId)) return [];\n\n acceptedIds.add(item.message.id);\n return [item];\n });\n\n const headId =\n parsed.headId === null ||\n (typeof parsed.headId === \"string\" &&\n messages.some((item) => item.message.id === parsed.headId))\n ? parsed.headId\n : undefined;\n\n return {\n ...(headId !== undefined ? { headId } : undefined),\n messages,\n };\n};\n\nclass AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {\n private storage: AsyncStorageLike;\n private getAui: () => ReturnType<typeof useAui>;\n private prefix: string;\n private mutationQueue: KeyedMutationQueue;\n\n constructor(\n storage: AsyncStorageLike,\n getAui: () => ReturnType<typeof useAui>,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n ) {\n this.storage = storage;\n this.getAui = getAui;\n this.prefix = prefix;\n this.mutationQueue = mutationQueue;\n }\n\n private get aui(): ReturnType<typeof useAui> {\n return this.getAui();\n }\n\n private _messagesKey(remoteId: string) {\n return `${this.prefix}messages:${remoteId}`;\n }\n\n async load(): Promise<ExportedMessageRepository> {\n const remoteId = this.aui.threadListItem.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const raw = await this.storage.getItem(this._messagesKey(remoteId));\n return parseStoredMessageRepository(raw);\n }\n\n async append(item: ExportedMessageRepositoryItem): Promise<void> {\n const { remoteId } = await this.aui.threadListItem.initialize();\n\n const key = this._messagesKey(remoteId);\n await this.mutationQueue.run(key, async () => {\n const raw = await this.storage.getItem(key);\n const repo = parseStoredMessageRepository(raw);\n\n const idx = repo.messages.findIndex(\n (m) => m.message.id === item.message.id,\n );\n if (idx >= 0) {\n repo.messages[idx] = item;\n } else {\n repo.messages.push(item);\n }\n repo.headId = item.message.id;\n\n await this.storage.setItem(key, JSON.stringify(repo));\n });\n }\n}\n\nconst useLocalStorageThreadAdapters = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): RuntimeAdapters => {\n const aui = useAui();\n // Not useEffectEvent: history adapter methods run during render (SSR load).\n const auiRef = useRef(aui);\n useEffect(() => {\n auiRef.current = aui;\n });\n const [history] = useState(\n () =>\n new AsyncStorageHistoryAdapter(\n storage,\n () => auiRef.current,\n prefix,\n mutationQueue,\n ),\n );\n return useMemo(() => ({ history }), [history]);\n};\n\nconst createHistoryProvider = (\n storage: AsyncStorageLike,\n prefix: string,\n mutationQueue: KeyedMutationQueue,\n): FC<PropsWithChildren> => {\n const Provider: FC<PropsWithChildren> = ({ children }) => {\n const adapters = useLocalStorageThreadAdapters(\n storage,\n prefix,\n mutationQueue,\n );\n return (\n <RuntimeAdapterProvider adapters={adapters}>\n {children}\n </RuntimeAdapterProvider>\n );\n };\n return Provider;\n};\n\nexport const createLocalStorageAdapter = (\n options: LocalStorageAdapterOptions,\n): RemoteThreadListAdapter => {\n const { storage, prefix = \"@assistant-ui:\", titleGenerator } = options;\n\n const threadsKey = `${prefix}threads`;\n const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;\n const mutationQueue = getMutationQueue(storage);\n\n const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {\n const raw = await storage.getItem(threadsKey);\n return parseStoredThreadMetadata(raw);\n };\n\n const saveThreadMetadata = async (\n threads: StoredThreadMetadata[],\n ): Promise<void> => {\n await storage.setItem(threadsKey, JSON.stringify(threads));\n };\n\n const updateThreadMetadata = async (\n remoteId: string,\n update: (thread: StoredThreadMetadata) => void,\n ): Promise<void> => {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const thread = threads.find((item) => item.remoteId === remoteId);\n if (thread) {\n update(thread);\n await saveThreadMetadata(threads);\n }\n });\n };\n\n const adapter: RemoteThreadListAdapter = {\n unstable_Provider: createHistoryProvider(storage, prefix, mutationQueue),\n unstable_useAdapters: function useLocalStorageAdapters() {\n return useLocalStorageThreadAdapters(storage, prefix, mutationQueue);\n },\n\n async list(): Promise<RemoteThreadListResponse> {\n const threads = await loadThreadMetadata();\n return {\n threads: threads.map((t) => ({\n remoteId: t.remoteId,\n externalId: t.externalId,\n status: t.status,\n title: t.title,\n custom: t.custom,\n })),\n };\n },\n\n async initialize(\n threadId: string,\n ): Promise<RemoteThreadInitializeResponse> {\n const remoteId = threadId;\n return mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n\n // Only add if not already present\n if (!threads.some((t) => t.remoteId === remoteId)) {\n threads.unshift({\n remoteId,\n status: \"regular\",\n });\n await saveThreadMetadata(threads);\n }\n\n return { remoteId, externalId: undefined };\n });\n },\n\n async rename(remoteId: string, newTitle: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = newTitle;\n });\n },\n\n async updateCustom(\n remoteId: string,\n custom: Record<string, unknown> | undefined,\n ): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.custom = custom;\n });\n },\n\n async archive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"archived\";\n });\n },\n\n async unarchive(remoteId: string): Promise<void> {\n await updateThreadMetadata(remoteId, (thread) => {\n thread.status = \"regular\";\n });\n },\n\n async delete(remoteId: string): Promise<void> {\n await mutationQueue.run(threadsKey, async () => {\n const threads = await loadThreadMetadata();\n const filtered = threads.filter((t) => t.remoteId !== remoteId);\n await saveThreadMetadata(filtered);\n });\n const key = messagesKey(remoteId);\n await mutationQueue.run(key, () => storage.removeItem(key));\n },\n\n async fetch(threadId: string): Promise<RemoteThreadMetadata> {\n const threads = await loadThreadMetadata();\n const thread = threads.find((t) => t.remoteId === threadId);\n if (!thread)\n throw new Error(\n `Stored thread \"${threadId}\" not found while fetching thread metadata.`,\n );\n return {\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n custom: thread.custom,\n };\n },\n\n async generateTitle(\n remoteId: string,\n messages: readonly ThreadMessage[],\n ): Promise<AssistantStream> {\n if (titleGenerator) {\n const title = await titleGenerator.generateTitle(messages);\n\n // Update the stored title\n await updateThreadMetadata(remoteId, (thread) => {\n thread.title = title;\n });\n\n // Return a stream with a single text part\n return createAssistantStream((controller) => {\n controller.appendText(title);\n });\n }\n\n // No title generator — return empty stream\n return createAssistantStream(() => {});\n },\n };\n\n return adapter;\n};\n"],"mappings":";;;;;;;;;AA4CA,IAAMmC,qBAAN,MAAyB;CACvB,wBAAyB,IAAIE,IAA2B;CAExDC,IAAOR,KAAaS,UAAwC;EAC1D,MAAME,WAAW,KAAKL,MAAMM,IAAIZ,GAAG;EACnC,MAAMa,SAASF,WAAWA,SAASG,KAAKL,QAAQ,IAAIA,SAAS;EAC7D,MAAMM,OAAOF,OAAOC,WACZE,KAAAA,SACAA,KAAAA,CACR;EAEA,KAAKV,MAAMW,IAAIjB,KAAKe,IAAI;EACxB,KAAUD,WAAW;GACnB,IAAI,KAAKR,MAAMM,IAAIZ,GAAG,MAAMe,MAAM,KAAKT,MAAMY,OAAOlB,GAAG;EACzD,CAAC;EAED,OAAOa;CACT;AACF;AAEA,MAAMM,iCAAiB,IAAIC,QAA8C;AAEzE,MAAMC,oBAAoBC,YAAkD;CAC1E,IAAIC,QAAQJ,eAAeP,IAAIU,OAAO;CACtC,IAAI,CAACC,OAAO;EACVA,QAAQ,IAAIlB,mBAAmB;EAC/Bc,eAAeF,IAAIK,SAASC,KAAK;CACnC;CACA,OAAOA;AACT;AAoBA,MAAMgB,aAAaC,QAAgC;CACjD,IAAI,CAACA,KAAK,OAAOxB,KAAAA;CACjB,IAAI;EACF,OAAOyB,KAAKC,MAAMF,GAAG;CACvB,QAAQ;EACN;CACF;AACF;AAEA,MAAMG,qBAAqBxC,UAAgD;CACzE,IAAI,CAACd,SAASc,KAAK,KAAK,OAAOA,MAAMyB,aAAa,UAAU,OAAO;CAEnE,MAAME,SAAS3B,MAAM2B,UAAU;CAC/B,IAAIA,WAAW,aAAaA,WAAW,YAAY,OAAO;CAE1D,OAAO;EACLF,UAAUzB,MAAMyB;EAChBE;EACA,GAAI,OAAO3B,MAAM0B,eAAe,WAC5B,EAAEA,YAAY1B,MAAM0B,WAAW,IAC/Bb,KAAAA;EACJ,GAAI,OAAOb,MAAM4B,UAAU,WAAW,EAAEA,OAAO5B,MAAM4B,MAAM,IAAIf,KAAAA;EAC/D,GAAI3B,SAASc,MAAM6B,MAAM,IAAI,EAAEA,QAAQ7B,MAAM6B,OAAO,IAAIhB,KAAAA;CAC1D;AACF;AAEA,MAAM4B,oBAAoB,EACxBC,OAAO,KACT;AAEA,MAAMC,qBAAqB3C,UACzB,OAAOA,UAAU,YAAY4C,OAAOC,OAAOJ,mBAAmBzC,KAAK;AAErE,MAAM8C,2BACJC,SACAC,UAEAD,QAAQE,SAASC,SAAS;CACxB,IAAI,CAAC9D,oBAAoB8D,IAAI,GAAG,OAAO,CAAA;CACvC,IAAIA,KAAKC,SAAS,eAAeD,KAAKE,aAAavC,KAAAA,GAAW,OAAO,CAACqC,IAAI;CAE1E,MAAM,EAAEE,UAAU,GAAGC,aAAaH;CAClC,IAAI,CAACI,MAAMC,QAAQH,QAAQ,GAAG,OAAO,CAACC,QAAQ;CAC9C,OAAO,CACL;EACE,GAAGA;EACHD,UAAUA,SAASH,SAASO,SAAS;GACnC,MAAMC,UAAUC,yBAAyBF,MAAMR,QAAQ,CAAC;GACxD,OAAOS,UAAU,CAACA,OAAO,IAAI,CAAA;EAC/B,CAAC;CACH,CAAC;AAEL,CAAC;AAEH,MAAMC,4BACJ1D,OACAgD,UACyB;CACzB,IAAIA,QAAAA,KAAkC,OAAO;CAC7C,IAAI,CAAC9D,SAASc,KAAK,KAAK,OAAOA,MAAM2D,OAAO,UAAU,OAAO;CAC7D,IAAI,CAACtE,oBAAoBW,MAAMiC,IAAI,GAAG,OAAO;CAC7C,IAAI,CAACqB,MAAMC,QAAQvD,MAAM+C,OAAO,GAAG,OAAO;CAE1C,MAAMa,YAAYrE,gBAAgBS,MAAM4D,SAAS;CACjD,IAAI,CAACA,WAAW,OAAO;CAEvB,MAAMC,WAAW7D,MAAM6D;CACvB,IAAI,CAAC3E,SAAS2E,QAAQ,KAAK,CAAC3E,SAAS2E,SAAShC,MAAM,GAAG,OAAO;CAE9D,MAAMiC,WAAWnB,kBAAkBkB,SAASC,QAAQ,IAChDD,SAASC,WACTjD,KAAAA;CAEJ,IAAIb,MAAMiC,SAAS,aAAa;EAC9B,MAAMN,SAAS3B,MAAM2B;EACrB,IAAI,CAACzC,SAASyC,MAAM,KAAK,OAAOA,OAAOwB,SAAS,UAAU,OAAO;EAEjE,MAAMY,oBAAoB7E,SAAS2E,SAASE,iBAAiB,IACzDF,SAASE,oBACTlD,KAAAA;EACJ,MAAMmD,wBAAwBD,mBAAmBZ;EACjD,MAAMc,2BAA2BF,mBAAmBG;EAEpD,OAAO;GACLP,IAAI3D,MAAM2D;GACV1B,MAAM;GACNc,SAASD,wBACP9C,MAAM+C,SACNC,KACF;GACQrB;GACRiC;GACAC,UAAU;IACRM,gBAAiBN,SAASM,kBACxB;IACFC,sBAAsBd,MAAMC,QAAQM,SAASO,oBAAoB,IAC5DP,SAASO,uBACV,CAAA;IACJC,eAAef,MAAMC,QAAQM,SAASQ,aAAa,IAC9CR,SAASQ,gBACV,CAAA;IACJC,OAAOhB,MAAMC,QAAQM,SAASS,KAAK,IAC9BT,SAASS,QACV,CAAA;IACJ,GAAIN,0BAA0B,cAC9BA,0BAA0B,aACtB,EACED,mBAAmB;KACjBZ,MAAMa;KACN,GAAI,OAAOC,6BAA6B,YACxCA,6BAA6B,KACzB,EAAEC,SAASD,yBAAyB,IACpCpD,KAAAA;IACN,EACF,IACAA,KAAAA;IACJ,GAAIgD,SAASU,WAAW1D,KAAAA,IACpB,EACE0D,QAAQV,SAASU,OAGnB,IACA1D,KAAAA;IACJ,GAAIgD,SAASY,iBAAiB,OAC1B,EAAEA,cAAc,KAAK,IACrB5D,KAAAA;IACJ,GAAIiD,aAAajD,KAAAA,IAAY,EAAEiD,SAAS,IAAIjD,KAAAA;IAC5CgB,QAAQgC,SAAShC;GACnB;EACF;CACF;CAEA,IAAI7B,MAAMiC,SAAS,QACjB,OAAO;EACL0B,IAAI3D,MAAM2D;EACV1B,MAAM;EACNc,SAASD,wBACP9C,MAAM+C,SACNC,KACF;EACA0B,aAAapB,MAAMC,QAAQvD,MAAM0E,WAAW,IACxC1E,MAAM0E,YAAYzB,SAASO,SAAS;GAClC,MAAMmB,aAAarF,sBAAsBkE,MAAMpE,mBAAmB;GAClE,OAAOuF,aAAa,CAACA,UAAU,IAAI,CAAA;EACrC,CAAC,IACD,CAAA;EACJf;EACAC,UAAU;GACR,GAAIC,aAAajD,KAAAA,IAAY,EAAEiD,SAAS,IAAIjD,KAAAA;GAC5CgB,QAAQgC,SAAShC;EACnB;CACF;CAGF,MAAMkB,UAAUD,wBAAwB9C,MAAM+C,SAASC,KAAK;CAC5D,IAAID,QAAQ6B,WAAW,GAAG,OAAO;CAEjC,OAAO;EACLjB,IAAI3D,MAAM2D;EACV1B,MAAM;EACNc,SAAS,CAACA,QAAQ,EAAuC;EACzDa;EACAC,UAAU,EACRhC,QAAQgC,SAAShC,OACnB;CACF;AACF;AAEA,MAAagD,6BACXxC,QAC2B;CAC3B,MAAMyC,SAAS1C,UAAUC,GAAG;CAC5B,IAAI,CAACiB,MAAMC,QAAQuB,MAAM,GAAG,OAAO,CAAA;CAEnC,OAAOA,OAAO7B,SAASO,SAAS;EAC9B,MAAMuB,SAASvC,kBAAkBgB,IAAI;EACrC,OAAOuB,SAAS,CAACA,MAAM,IAAI,CAAA;CAC7B,CAAC;AACH;AAEA,MAAMC,oCACJhF,UACyC;CACzC,IAAI,CAACd,SAASc,KAAK,GAAG,OAAO;CAE7B,MAAMyD,UAAUC,yBAAyB1D,MAAMyD,SAAS,CAAC;CACzD,IAAI,CAACA,SAAS,OAAO;CAErB,MAAMwB,WAAWjF,MAAMiF;CACvB,IACEA,aAAapE,KAAAA,KACboE,aAAa,QACb,OAAOA,aAAa,UAEpB,OAAO;CAGT,OAAO;EACLxB;EACAwB,UAAUA,YAAY;EACtB,GAAI/F,SAASc,MAAMkF,SAAS,IACxB,EAAEA,WAAWlF,MAAMkF,UAAuB,IAC1CrE,KAAAA;CACN;AACF;AAEA,MAAasE,gCACX9C,QAC8B;CAC9B,MAAMyC,SAAS1C,UAAUC,GAAG;CAC5B,IAAI,CAACnD,SAAS4F,MAAM,KAAK,CAACxB,MAAMC,QAAQuB,OAAO1B,QAAQ,GACrD,OAAO,EAAEA,UAAU,CAAA,EAAG;CAGxB,MAAMgC,oBAAoBN,OAAO1B,SAASH,SAASO,SAAS;EAC1D,MAAM6B,aAAaL,iCAAiCxB,IAAI;EACxD,OAAO6B,aAAa,CAACA,UAAU,IAAI,CAAA;CACrC,CAAC;CAED,MAAMC,8BAAc,IAAIC,IAAY;CACpC,MAAMnC,WAAWgC,kBAAkBnC,SAASO,SAAS;EACnD,IAAI8B,YAAYE,IAAIhC,KAAKC,QAAQE,EAAE,GAAG,OAAO,CAAA;EAC7C,IAAIH,KAAKyB,aAAa,QAAQ,CAACK,YAAYE,IAAIhC,KAAKyB,QAAQ,GAAG,OAAO,CAAA;EAEtEK,YAAYG,IAAIjC,KAAKC,QAAQE,EAAE;EAC/B,OAAO,CAACH,IAAI;CACd,CAAC;CAED,MAAMkC,SACJZ,OAAOY,WAAW,QACjB,OAAOZ,OAAOY,WAAW,YACxBtC,SAASuC,MAAMnC,SAASA,KAAKC,QAAQE,OAAOmB,OAAOY,MAAM,IACvDZ,OAAOY,SACP7E,KAAAA;CAEN,OAAO;EACL,GAAI6E,WAAW7E,KAAAA,IAAY,EAAE6E,OAAO,IAAI7E,KAAAA;EACxCuC;CACF;AACF;AAEA,IAAMwC,6BAAN,MAAiE;CAC/D;CACA;CACA;CACA;CAEAI,YACE7E,SACA0E,QACAvE,QACAyE,eACA;EACA,KAAK5E,UAAUA;EACf,KAAK0E,SAASA;EACd,KAAKvE,SAASA;EACd,KAAKyE,gBAAgBA;CACvB;CAEA,IAAYE,MAAiC;EAC3C,OAAO,KAAKJ,OAAO;CACrB;CAEA,aAAqBpE,UAAkB;EACrC,OAAO,GAAG,KAAKH,OAAM,WAAYG;CACnC;CAEA,MAAM0E,OAA2C;EAC/C,MAAM1E,WAAW,KAAKwE,IAAIG,eAAeC,SAAS,CAAC,CAAC5E;EACpD,IAAI,CAACA,UAAU,OAAO,EAAE2B,UAAU,CAAA,EAAG;EAErC,MAAMf,MAAM,MAAM,KAAKlB,QAAQvB,QAAQ,KAAKsG,aAAazE,QAAQ,CAAC;EAClE,OAAO0D,6BAA6B9C,GAAG;CACzC;CAEA,MAAMiE,OAAO9C,MAAoD;EAC/D,MAAM,EAAE/B,aAAa,MAAM,KAAKwE,IAAIG,eAAeG,WAAW;EAE9D,MAAM1G,MAAM,KAAKqG,aAAazE,QAAQ;EACtC,MAAM,KAAKsE,cAAc1F,IAAIR,KAAK,YAAY;GAC5C,MAAMwC,MAAM,MAAM,KAAKlB,QAAQvB,QAAQC,GAAG;GAC1C,MAAM2G,OAAOrB,6BAA6B9C,GAAG;GAE7C,MAAMoE,MAAMD,KAAKpD,SAASsD,WACvBC,MAAMA,EAAElD,QAAQE,OAAOH,KAAKC,QAAQE,EACvC;GACA,IAAI8C,OAAO,GACTD,KAAKpD,SAASqD,OAAOjD;QAErBgD,KAAKpD,SAASwD,KAAKpD,IAAI;GAEzBgD,KAAKd,SAASlC,KAAKC,QAAQE;GAE3B,MAAM,KAAKxC,QAAQpB,QAAQF,KAAKyC,KAAKuE,UAAUL,IAAI,CAAC;EACtD,CAAC;CACH;AACF;AAEA,MAAMM,iCACJ3F,SACAG,QACAyE,kBACoB;CACpB,MAAME,MAAM1H,OAAO;CAEnB,MAAMwI,SAAS1I,OAAO4H,GAAG;CACzB9H,gBAAgB;EACd4I,OAAOC,UAAUf;CACnB,CAAC;CACD,MAAM,CAACgB,WAAW3I,eAEd,IAAIsH,2BACFzE,eACM4F,OAAOC,SACb1F,QACAyE,aACF,CACJ;CACA,OAAO3H,eAAe,EAAE6I,QAAQ,IAAI,CAACA,OAAO,CAAC;AAC/C;AAEA,MAAMC,yBACJ/F,SACAG,QACAyE,kBAC0B;CAC1B,MAAMoB,YAAkCC,OAAA;EAAA,MAAAC,IAAAC,EAAA,CAAA;EAAC,MAAA,EAAAC,aAAAH;EACvC,MAAAI,WAAiBV,8BACf3F,SACAG,QACAyE,aACF;EAAE,IAAA0B;EAAA,IAAAJ,EAAA,OAAAG,YAAAH,EAAA,OAAAE,UAAA;GAEAE,KAAA,oBAAC,wBAAD;IAAkCD;IAC/BD;GADoB,CAAA;GAEEF,EAAA,KAAAG;GAAAH,EAAA,KAAAE;GAAAF,EAAA,KAAAI;EAAA,OAAAA,KAAAJ,EAAA;EAAA,OAFzBI;CAEyB;CAG7B,OAAON;AACT;AAEA,MAAaO,6BACXC,YAC4B;CAC5B,MAAM,EAAExG,SAASG,SAAS,kBAAkBC,mBAAmBoG;CAE/D,MAAMC,aAAa,GAAGtG,OAAM;CAC5B,MAAMuG,eAAeC,aAAqB,GAAGxG,OAAM,WAAYwG;CAC/D,MAAM/B,gBAAgB7E,iBAAiBC,OAAO;CAE9C,MAAM4G,qBAAqB,YAA6C;EACtE,MAAM1F,MAAM,MAAMlB,QAAQvB,QAAQgI,UAAU;EAC5C,OAAO/C,0BAA0BxC,GAAG;CACtC;CAEA,MAAM2F,qBAAqB,OACzBC,YACkB;EAClB,MAAM9G,QAAQpB,QAAQ6H,YAAYtF,KAAKuE,UAAUoB,OAAO,CAAC;CAC3D;CAEA,MAAMC,uBAAuB,OAC3BzG,UACA0G,WACkB;EAClB,MAAMpC,cAAc1F,IAAIuH,YAAY,YAAY;GAC9C,MAAMK,UAAU,MAAMF,mBAAmB;GACzC,MAAMhD,SAASkD,QAAQG,MAAM5E,SAASA,KAAK/B,aAAaA,QAAQ;GAChE,IAAIsD,QAAQ;IACVoD,OAAOpD,MAAM;IACb,MAAMiD,mBAAmBC,OAAO;GAClC;EACF,CAAC;CACH;CAqHA,OAAOI;EAlHLC,mBAAmBpB,sBAAsB/F,SAASG,QAAQyE,aAAa;EACvEwC,sBAAsB,SAASC,0BAA0B;GACvD,OAAO1B,8BAA8B3F,SAASG,QAAQyE,aAAa;EACrE;EAEA,MAAM0C,OAA0C;GAE9C,OAAO,EACLR,UAASA,MAFWF,mBAAmB,EAAA,CAEtBW,KAAKC,OAAO;IAC3BlH,UAAUkH,EAAElH;IACZC,YAAYiH,EAAEjH;IACdC,QAAQgH,EAAEhH;IACVC,OAAO+G,EAAE/G;IACTC,QAAQ8G,EAAE9G;GACZ,EAAE,EACJ;EACF;EAEA,MAAM0E,WACJuB,UACyC;GACzC,MAAMrG,WAAWqG;GACjB,OAAO/B,cAAc1F,IAAIuH,YAAY,YAAY;IAC/C,MAAMK,UAAU,MAAMF,mBAAmB;IAGzC,IAAI,CAACE,QAAQtC,MAAMgD,MAAMA,EAAElH,aAAaA,QAAQ,GAAG;KACjDwG,QAAQW,QAAQ;MACdnH;MACAE,QAAQ;KACV,CAAC;KACD,MAAMqG,mBAAmBC,OAAO;IAClC;IAEA,OAAO;KAAExG;KAAUC,YAAYb,KAAAA;IAAU;GAC3C,CAAC;EACH;EAEA,MAAMgI,OAAOpH,UAAkBqH,UAAiC;GAC9D,MAAMZ,qBAAqBzG,WAAWsD,WAAW;IAC/CA,OAAOnD,QAAQkH;GACjB,CAAC;EACH;EAEA,MAAMC,aACJtH,UACAI,QACe;GACf,MAAMqG,qBAAqBzG,WAAWsD,WAAW;IAC/CA,OAAOlD,SAASA;GAClB,CAAC;EACH;EAEA,MAAMmH,QAAQvH,UAAiC;GAC7C,MAAMyG,qBAAqBzG,WAAWsD,WAAW;IAC/CA,OAAOpD,SAAS;GAClB,CAAC;EACH;EAEA,MAAMsH,UAAUxH,UAAiC;GAC/C,MAAMyG,qBAAqBzG,WAAWsD,WAAW;IAC/CA,OAAOpD,SAAS;GAClB,CAAC;EACH;EAEA,MAAMZ,OAAOU,UAAiC;GAC5C,MAAMsE,cAAc1F,IAAIuH,YAAY,YAAY;IAE9C,MAAMsB,YAAWjB,MADKF,mBAAmB,EAAA,CAChBoB,QAAQR,MAAMA,EAAElH,aAAaA,QAAQ;IAC9D,MAAMuG,mBAAmBkB,QAAQ;GACnC,CAAC;GACD,MAAMrJ,MAAMgI,YAAYpG,QAAQ;GAChC,MAAMsE,cAAc1F,IAAIR,WAAWsB,QAAQlB,WAAWJ,GAAG,CAAC;EAC5D;EAEA,MAAMuJ,MAAMtB,UAAiD;GAE3D,MAAM/C,UAASkD,MADOF,mBAAmB,EAAA,CAClBK,MAAMO,MAAMA,EAAElH,aAAaqG,QAAQ;GAC1D,IAAI,CAAC/C,QACH,MAAM,IAAIsE,MACR,kBAAkBvB,SAAQ,4CAC5B;GACF,OAAO;IACLrG,UAAUsD,OAAOtD;IACjBC,YAAYqD,OAAOrD;IACnBC,QAAQoD,OAAOpD;IACfC,OAAOmD,OAAOnD;IACdC,QAAQkD,OAAOlD;GACjB;EACF;EAEA,MAAMyH,cACJ7H,UACA2B,UAC0B;GAC1B,IAAI7B,gBAAgB;IAClB,MAAMK,QAAQ,MAAML,eAAe+H,cAAclG,QAAQ;IAGzD,MAAM8E,qBAAqBzG,WAAWsD,WAAW;KAC/CA,OAAOnD,QAAQA;IACjB,CAAC;IAGD,OAAO5D,uBAAuBuL,eAAe;KAC3CA,WAAWC,WAAW5H,KAAK;IAC7B,CAAC;GACH;GAGA,OAAO5D,4BAA4B,CAAC,CAAC;EACvC;CAGKqK;AACT"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { ThreadMessage } from "../../types/message.js";
|
|
2
2
|
//#region src/react/adapters/TitleGenerationAdapter.d.ts
|
|
3
|
-
type TitleGenerationAdapter = {
|
|
3
|
+
export type TitleGenerationAdapter = {
|
|
4
4
|
generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
|
|
5
5
|
};
|
|
6
|
-
declare const createSimpleTitleAdapter: () => TitleGenerationAdapter;
|
|
6
|
+
export declare const createSimpleTitleAdapter: () => TitleGenerationAdapter;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { TitleGenerationAdapter, createSimpleTitleAdapter };
|
|
9
8
|
//# sourceMappingURL=TitleGenerationAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TitleGenerationAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/TitleGenerationAdapter.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TitleGenerationAdapter.d.ts","names":[],"sources":["../../../src/react/adapters/TitleGenerationAdapter.ts"],"mappings":";;YAEY;EACV,cAAc,mBAAmB,kBAAkB;;qBAGxC,gCAA+B"}
|
|
@@ -2,10 +2,9 @@ import { RuntimeAdapters } from "../../runtimes/remote-thread-list/types.js";
|
|
|
2
2
|
import { ClientOutput } from "@assistant-ui/store";
|
|
3
3
|
import { ResourceElement } from "@assistant-ui/tap";
|
|
4
4
|
//#region src/react/client/AdaptedRemoteThread.d.ts
|
|
5
|
-
declare const AdaptedRemoteThread: import("@assistant-ui/tap").Resource<ClientOutput<"thread">, [{
|
|
5
|
+
export declare const AdaptedRemoteThread: import("@assistant-ui/tap").Resource<ClientOutput<"thread">, [{
|
|
6
6
|
useAdapters: () => RuntimeAdapters | null | undefined;
|
|
7
7
|
thread: ResourceElement<ClientOutput<"thread">>;
|
|
8
8
|
}]>;
|
|
9
9
|
//#endregion
|
|
10
|
-
export { AdaptedRemoteThread };
|
|
11
10
|
//# sourceMappingURL=AdaptedRemoteThread.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdaptedRemoteThread.d.ts","names":[],"sources":["../../../src/react/client/AdaptedRemoteThread.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"AdaptedRemoteThread.d.ts","names":[],"sources":["../../../src/react/client/AdaptedRemoteThread.ts"],"mappings":";;;;qBAwCa,iDAAmB,SAAA;EAxBjB,mBAAM;EACX,QAAA,gBAAgB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ClientOutput } from "@assistant-ui/store";
|
|
2
2
|
//#region src/react/client/DataRenderers.d.ts
|
|
3
|
-
declare const DataRenderers: import("@assistant-ui/tap").Resource<ClientOutput<"dataRenderers">, []>;
|
|
3
|
+
export declare const DataRenderers: import("@assistant-ui/tap").Resource<ClientOutput<"dataRenderers">, []>;
|
|
4
4
|
//#endregion
|
|
5
|
-
export { DataRenderers };
|
|
6
5
|
//# sourceMappingURL=DataRenderers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataRenderers.d.ts","names":[],"sources":["../../../src/react/client/DataRenderers.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"DataRenderers.d.ts","names":[],"sources":["../../../src/react/client/DataRenderers.ts"],"mappings":";;qBAuEa,2CAAa,SAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { nullProtoRecord } from "../../utils/record.js";
|
|
1
2
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
2
3
|
import { useState } from "@assistant-ui/tap/react-shim";
|
|
3
4
|
import { resource } from "@assistant-ui/tap";
|
|
@@ -15,21 +16,25 @@ const useDataRenderers = () => {
|
|
|
15
16
|
let t0;
|
|
16
17
|
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
17
18
|
t0 = (name, render) => {
|
|
18
|
-
setState((prev) =>
|
|
19
|
-
|
|
20
|
-
renderers
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
setState((prev) => {
|
|
20
|
+
const renderers = nullProtoRecord(prev.renderers);
|
|
21
|
+
renderers[name] = [...renderers[name] ?? [], render];
|
|
22
|
+
return {
|
|
23
|
+
...prev,
|
|
24
|
+
renderers
|
|
25
|
+
};
|
|
26
|
+
});
|
|
25
27
|
return () => {
|
|
26
|
-
setState((prev_0) =>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
setState((prev_0) => {
|
|
29
|
+
const renderers_0 = nullProtoRecord(prev_0.renderers);
|
|
30
|
+
const remaining = renderers_0[name]?.filter((r) => r !== render) ?? [];
|
|
31
|
+
if (remaining.length > 0) renderers_0[name] = remaining;
|
|
32
|
+
else delete renderers_0[name];
|
|
33
|
+
return {
|
|
34
|
+
...prev_0,
|
|
35
|
+
renderers: renderers_0
|
|
36
|
+
};
|
|
37
|
+
});
|
|
33
38
|
};
|
|
34
39
|
};
|
|
35
40
|
$[0] = t0;
|
|
@@ -67,7 +72,7 @@ const useDataRenderers = () => {
|
|
|
67
72
|
const DataRenderers = resource(useDataRenderers);
|
|
68
73
|
function _temp() {
|
|
69
74
|
return {
|
|
70
|
-
renderers:
|
|
75
|
+
renderers: nullProtoRecord(),
|
|
71
76
|
fallbacks: []
|
|
72
77
|
};
|
|
73
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataRenderers.js","names":["useState","useCallback","resource","ClientOutput","DataRenderersState","DataMessagePartComponent","useDataRenderers","$","_c","state","setState","_temp","t0","Symbol","for","name","render","prev","renderers","prev_0","filter","r","setDataUI","t1","render_0","prev_1","fallbacks","prev_2","r_0","setFallbackDataUI","t2","getState","DataRenderers"],"sources":["../../../src/react/client/DataRenderers.ts"],"sourcesContent":["import { useState, useCallback } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { DataRenderersState } from \"../types/scopes/dataRenderers\";\nimport type { DataMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\n/**\n * Registers renderers for `data` message parts.\n *\n * Data renderers are looked up by the part's `name` field. Use this resource\n * directly for a renderer scope, or prefer {@link useAssistantDataUI} /\n * {@link makeAssistantDataUI} when registering from React components.\n */\nconst useDataRenderers = (): ClientOutput<\"dataRenderers\"> => {\n const [state, setState] = useState<DataRenderersState>(() => ({\n renderers:
|
|
1
|
+
{"version":3,"file":"DataRenderers.js","names":["useState","useCallback","resource","ClientOutput","DataRenderersState","DataMessagePartComponent","nullProtoRecord","useDataRenderers","$","_c","state","setState","_temp","t0","Symbol","for","name","render","prev","renderers","prev_0","renderers_0","remaining","filter","r","length","setDataUI","t1","render_0","prev_1","fallbacks","prev_2","r_0","setFallbackDataUI","t2","getState","DataRenderers"],"sources":["../../../src/react/client/DataRenderers.ts"],"sourcesContent":["import { useState, useCallback } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport type { DataRenderersState } from \"../types/scopes/dataRenderers\";\nimport type { DataMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport { nullProtoRecord } from \"../../utils/record\";\n\n/**\n * Registers renderers for `data` message parts.\n *\n * Data renderers are looked up by the part's `name` field. Use this resource\n * directly for a renderer scope, or prefer {@link useAssistantDataUI} /\n * {@link makeAssistantDataUI} when registering from React components.\n */\nconst useDataRenderers = (): ClientOutput<\"dataRenderers\"> => {\n const [state, setState] = useState<DataRenderersState>(() => ({\n renderers: nullProtoRecord(),\n fallbacks: [],\n }));\n\n const setDataUI = useCallback(\n (name: string, render: DataMessagePartComponent) => {\n setState((prev) => {\n const renderers = nullProtoRecord(prev.renderers);\n renderers[name] = [...(renderers[name] ?? []), render];\n return {\n ...prev,\n renderers,\n };\n });\n\n return () => {\n setState((prev) => {\n const renderers = nullProtoRecord(prev.renderers);\n const remaining = renderers[name]?.filter((r) => r !== render) ?? [];\n if (remaining.length > 0) {\n renderers[name] = remaining;\n } else {\n delete renderers[name];\n }\n return {\n ...prev,\n renderers,\n };\n });\n };\n },\n [],\n );\n\n const setFallbackDataUI = useCallback((render: DataMessagePartComponent) => {\n setState((prev) => ({\n ...prev,\n fallbacks: [...prev.fallbacks, render],\n }));\n\n return () => {\n setState((prev) => ({\n ...prev,\n fallbacks: prev.fallbacks.filter((r) => r !== render),\n }));\n };\n }, []);\n\n return {\n getState: () => state,\n setDataUI,\n setFallbackDataUI,\n };\n};\n\nexport const DataRenderers = resource(useDataRenderers);\n"],"mappings":";;;;;;;;;;;;AAcA,MAAMO,yBAAmB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACvB,MAAA,CAAAC,OAAAC,YAA0BX,SAA6BY,KAGrD;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAM,OAAAC,IAAA,2BAAA,GAAA;EAGFF,MAAAG,MAAAC,WAAA;GACEN,UAASO,SAAA;IACP,MAAAC,YAAkBb,gBAAgBY,KAAIC,SAAU;IAChDA,UAAUH,QAAQ,CAAA,GAAKG,UAAUH,SAAV,CAAA,GAAwBC,MAAM;IAAtC,OACR;KAAA,GACFC;KAAIC;IAET;GAAC,CACF;GAAC,aAEK;IACLR,UAASS,WAAA;KACP,MAAAC,cAAkBf,gBAAgBY,OAAIC,SAAU;KAChD,MAAAG,YAAkBH,YAAUH,KAAa,EAAAO,QAACC,MAAOA,MAAMP,MAAY,KAAjD,CAAA;KAClB,IAAIK,UAASG,SAAU,GACrBN,YAAUH,QAAQM;UAElB,OAAOH,YAAUH;KAClB,OACM;MAAA,GACFE;MAAIC,WACPA;KACF;IAAC,CACF;GAAC;EACH;EACFX,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CA1BH,MAAAkB,YAAkBb;CA4BhB,IAAAc;CAAA,IAAAnB,EAAA,OAAAM,OAAAC,IAAA,2BAAA,GAAA;EAEoCY,MAAAC,aAAA;GACpCjB,UAASkB,YAAW;IAAA,GACfX;IAAIY,WACI,CAAA,GAAIZ,OAAIY,WAAYb,QAAM;GACvC,EAAE;GAAC,aAEI;IACLN,UAASoB,YAAW;KAAA,GACfb;KAAIY,WACIZ,OAAIY,UAAUP,QAAQS,QAAOR,QAAMP,QAAM;IACtD,EAAE;GAAC;EACJ;EACFT,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAZD,MAAAyB,oBAA0BN;CAYnB,IAAAO;CAAA,IAAA1B,EAAA,OAAAE,OAAA;EAEAwB,KAAA;GAAAC,gBACWzB;GAAKgB;GAAAO;EAGvB;EAACzB,EAAA,KAAAE;EAAAF,EAAA,KAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,OAJM0B;AAIN;AAGH,MAAaE,gBAAgBlC,SAASK,gBAAgB;AAzD7B,SAAAK,QAAA;CAAA,OACuC;EAAAO,WACjDb,gBAAgB;EAACwB,WACjB,CAAA;CACb;AAAC"}
|