@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,12 +1,14 @@
|
|
|
1
|
-
import { isJSONValue } from "../../../utils/json/is-json.js";
|
|
1
|
+
import { isJSONValue, isRecord } from "../../../utils/json/is-json.js";
|
|
2
2
|
import { fromThreadMessageLike } from "../../../runtime/utils/thread-message-like.js";
|
|
3
|
+
import { isStoredAuiV0RolePart, isStoredMessageRole, parseStoredAttachment, parseStoredDate } from "../../../runtime/utils/stored-message-parts.js";
|
|
3
4
|
//#region src/react/runtimes/cloud/auiV0.ts
|
|
4
5
|
const encodeAttachmentPart = (part) => {
|
|
5
6
|
const type = part.type;
|
|
6
7
|
switch (type) {
|
|
7
8
|
case "text": return {
|
|
8
9
|
type: "text",
|
|
9
|
-
text: part.text
|
|
10
|
+
text: part.text,
|
|
11
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
10
12
|
};
|
|
11
13
|
case "image": return {
|
|
12
14
|
type: "image",
|
|
@@ -18,7 +20,8 @@ const encodeAttachmentPart = (part) => {
|
|
|
18
20
|
data: part.data,
|
|
19
21
|
mimeType: part.mimeType,
|
|
20
22
|
...part.filename != null ? { filename: part.filename } : void 0,
|
|
21
|
-
...part.sourceType != null ? { sourceType: part.sourceType } : void 0
|
|
23
|
+
...part.sourceType != null ? { sourceType: part.sourceType } : void 0,
|
|
24
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
22
25
|
};
|
|
23
26
|
case "audio": return {
|
|
24
27
|
type: "audio",
|
|
@@ -61,12 +64,15 @@ function auiV0Encode(message) {
|
|
|
61
64
|
switch (type) {
|
|
62
65
|
case "text": return {
|
|
63
66
|
type: "text",
|
|
64
|
-
text: part.text
|
|
67
|
+
text: part.text,
|
|
68
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
65
69
|
};
|
|
66
70
|
case "reasoning": return {
|
|
67
71
|
type: "reasoning",
|
|
68
72
|
text: part.text,
|
|
69
|
-
...part.unstable_summary !== void 0 ? { unstable_summary: part.unstable_summary } : void 0
|
|
73
|
+
...part.unstable_summary !== void 0 ? { unstable_summary: part.unstable_summary } : void 0,
|
|
74
|
+
...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
|
|
75
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
70
76
|
};
|
|
71
77
|
case "source":
|
|
72
78
|
if (part.sourceType === "url") return {
|
|
@@ -75,7 +81,8 @@ function auiV0Encode(message) {
|
|
|
75
81
|
id: part.id,
|
|
76
82
|
url: part.url,
|
|
77
83
|
...part.title != null ? { title: part.title } : void 0,
|
|
78
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0
|
|
84
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
|
|
85
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
79
86
|
};
|
|
80
87
|
return {
|
|
81
88
|
type: "source",
|
|
@@ -84,7 +91,8 @@ function auiV0Encode(message) {
|
|
|
84
91
|
title: part.title,
|
|
85
92
|
mediaType: part.mediaType,
|
|
86
93
|
...part.filename != null ? { filename: part.filename } : void 0,
|
|
87
|
-
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0
|
|
94
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
|
|
95
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
88
96
|
};
|
|
89
97
|
case "tool-call":
|
|
90
98
|
if (part.result !== void 0 && !isJSONValue(part.result)) console.warn(`tool-call result is not JSON! ${JSON.stringify(part)}`);
|
|
@@ -95,7 +103,15 @@ function auiV0Encode(message) {
|
|
|
95
103
|
...JSON.stringify(part.args) === part.argsText ? { args: part.args } : { argsText: part.argsText },
|
|
96
104
|
...part.result !== void 0 ? { result: part.result } : void 0,
|
|
97
105
|
...part.isError ? { isError: true } : void 0,
|
|
98
|
-
...part.
|
|
106
|
+
...part.interrupt !== void 0 ? { interrupt: {
|
|
107
|
+
type: part.interrupt.type,
|
|
108
|
+
payload: part.interrupt.payload
|
|
109
|
+
} } : void 0,
|
|
110
|
+
...part.timing !== void 0 ? { timing: part.timing } : void 0,
|
|
111
|
+
...part.mcp !== void 0 ? { mcp: part.mcp } : void 0,
|
|
112
|
+
...part.approval ? { approval: part.approval } : void 0,
|
|
113
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0,
|
|
114
|
+
...part.messages !== void 0 ? { messages: part.messages.map(encodeNestedMessage) } : void 0
|
|
99
115
|
};
|
|
100
116
|
case "image": return {
|
|
101
117
|
type: "image",
|
|
@@ -106,7 +122,8 @@ function auiV0Encode(message) {
|
|
|
106
122
|
data: part.data,
|
|
107
123
|
mimeType: part.mimeType,
|
|
108
124
|
...part.filename ? { filename: part.filename } : void 0,
|
|
109
|
-
...part.sourceType ? { sourceType: part.sourceType } : void 0
|
|
125
|
+
...part.sourceType ? { sourceType: part.sourceType } : void 0,
|
|
126
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
110
127
|
};
|
|
111
128
|
case "data":
|
|
112
129
|
if (!isJSONValue(part.data)) console.warn(`data part is not JSON! ${JSON.stringify(part)}`);
|
|
@@ -115,6 +132,19 @@ function auiV0Encode(message) {
|
|
|
115
132
|
name: part.name,
|
|
116
133
|
data: part.data
|
|
117
134
|
};
|
|
135
|
+
case "audio": return {
|
|
136
|
+
type: "audio",
|
|
137
|
+
audio: {
|
|
138
|
+
data: part.audio.data,
|
|
139
|
+
format: part.audio.format
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
case "generative-ui": return {
|
|
143
|
+
type: "generative-ui",
|
|
144
|
+
spec: part.spec,
|
|
145
|
+
...part.id !== void 0 ? { id: part.id } : void 0,
|
|
146
|
+
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
147
|
+
};
|
|
118
148
|
default: throw new Error(`Message part type not supported by aui/v0: ${type}`);
|
|
119
149
|
}
|
|
120
150
|
}),
|
|
@@ -123,22 +153,100 @@ function auiV0Encode(message) {
|
|
|
123
153
|
...attachments ? { attachments } : void 0
|
|
124
154
|
};
|
|
125
155
|
}
|
|
156
|
+
const readableAuiV0Parts = (role, content, depth) => content.flatMap((part) => {
|
|
157
|
+
if (!isStoredAuiV0RolePart(role, part)) return [];
|
|
158
|
+
if (part.type !== "tool-call" || part.messages === void 0) return [part];
|
|
159
|
+
const { messages, ...toolCall } = part;
|
|
160
|
+
if (!Array.isArray(messages) || depth >= 100) return [toolCall];
|
|
161
|
+
return [{
|
|
162
|
+
...toolCall,
|
|
163
|
+
messages: messages.flatMap((message) => {
|
|
164
|
+
const nested = readableAuiV0Message(message, depth + 1);
|
|
165
|
+
return nested ? [nested] : [];
|
|
166
|
+
})
|
|
167
|
+
}];
|
|
168
|
+
});
|
|
169
|
+
const readableAuiV0Attachments = (attachments) => attachments.flatMap((attachment) => {
|
|
170
|
+
const parsed = parseStoredAttachment(attachment, (value) => isStoredAuiV0RolePart("user", value));
|
|
171
|
+
return parsed ? [parsed] : [];
|
|
172
|
+
});
|
|
173
|
+
const readableAuiV0Message = (value, depth) => {
|
|
174
|
+
if (!isRecord(value) || !isStoredMessageRole(value.role) || !Array.isArray(value.content)) return null;
|
|
175
|
+
const { role } = value;
|
|
176
|
+
const content = readableAuiV0Parts(role, value.content, depth);
|
|
177
|
+
if (role === "system" && content.length !== 1) return null;
|
|
178
|
+
const { attachments, createdAt, status, metadata, ...rest } = value;
|
|
179
|
+
const storedCreatedAt = parseStoredDate(createdAt);
|
|
180
|
+
const readableMetadata = role === "assistant" || !isRecord(metadata) ? metadata : {
|
|
181
|
+
...metadata,
|
|
182
|
+
steps: void 0
|
|
183
|
+
};
|
|
184
|
+
return {
|
|
185
|
+
...rest,
|
|
186
|
+
...storedCreatedAt ? { createdAt } : void 0,
|
|
187
|
+
...role === "assistant" && status !== void 0 ? { status } : void 0,
|
|
188
|
+
...metadata !== void 0 ? { metadata: readableMetadata } : void 0,
|
|
189
|
+
content,
|
|
190
|
+
...role === "user" && Array.isArray(attachments) ? { attachments: readableAuiV0Attachments(attachments) } : void 0
|
|
191
|
+
};
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Decodes a stored row, dropping the parts, attachments and nested messages
|
|
195
|
+
* that cannot be read back instead of rejecting the row, and returning null
|
|
196
|
+
* when the row itself is unreadable. Loading a thread must not fail because a
|
|
197
|
+
* single stored row is malformed.
|
|
198
|
+
*/
|
|
199
|
+
function auiV0DecodeSafely(cloudMessage) {
|
|
200
|
+
try {
|
|
201
|
+
const payload = readableAuiV0Message(cloudMessage.content, 0);
|
|
202
|
+
if (!payload) throw new Error("stored row is not an aui/v0 message");
|
|
203
|
+
return {
|
|
204
|
+
parentId: cloudMessage.parent_id,
|
|
205
|
+
message: decodeAuiV0Message({
|
|
206
|
+
...payload,
|
|
207
|
+
id: cloudMessage.id,
|
|
208
|
+
createdAt: cloudMessage.created_at
|
|
209
|
+
}, cloudMessage.id)
|
|
210
|
+
};
|
|
211
|
+
} catch (error) {
|
|
212
|
+
console.warn(`aui/v0: dropping unreadable message ${cloudMessage.id}`, error);
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
126
216
|
function auiV0Decode(cloudMessage) {
|
|
127
217
|
const payload = cloudMessage.content;
|
|
128
|
-
const message =
|
|
218
|
+
const message = decodeAuiV0Message({
|
|
219
|
+
...payload,
|
|
129
220
|
id: cloudMessage.id,
|
|
130
|
-
createdAt: cloudMessage.created_at
|
|
131
|
-
|
|
132
|
-
}, cloudMessage.id, {
|
|
133
|
-
type: "complete",
|
|
134
|
-
reason: "unknown"
|
|
135
|
-
});
|
|
221
|
+
createdAt: cloudMessage.created_at
|
|
222
|
+
}, cloudMessage.id);
|
|
136
223
|
return {
|
|
137
224
|
parentId: cloudMessage.parent_id,
|
|
138
225
|
message
|
|
139
226
|
};
|
|
140
227
|
}
|
|
228
|
+
const encodeNestedMessage = (message) => ({
|
|
229
|
+
...auiV0Encode(message),
|
|
230
|
+
id: message.id,
|
|
231
|
+
createdAt: message.createdAt.toISOString()
|
|
232
|
+
});
|
|
233
|
+
const decodeAuiV0Message = (payload, fallbackId) => fromThreadMessageLike({
|
|
234
|
+
...payload,
|
|
235
|
+
content: payload.content.map((part, index) => {
|
|
236
|
+
if (part.type !== "tool-call" || part.messages === void 0) return part;
|
|
237
|
+
return {
|
|
238
|
+
...part,
|
|
239
|
+
messages: part.messages.map((message, nestedIndex) => decodeAuiV0Message({
|
|
240
|
+
...message,
|
|
241
|
+
createdAt: message.createdAt !== void 0 ? new Date(message.createdAt) : payload.createdAt
|
|
242
|
+
}, message.id ?? `${fallbackId}-${part.toolCallId}-${index}-${nestedIndex}`))
|
|
243
|
+
};
|
|
244
|
+
})
|
|
245
|
+
}, fallbackId, {
|
|
246
|
+
type: "complete",
|
|
247
|
+
reason: "unknown"
|
|
248
|
+
});
|
|
141
249
|
//#endregion
|
|
142
|
-
export { auiV0Decode, auiV0Encode };
|
|
250
|
+
export { auiV0Decode, auiV0DecodeSafely, auiV0Encode };
|
|
143
251
|
|
|
144
252
|
//# sourceMappingURL=auiV0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auiV0.js","names":["MessageStatus","SourceProviderMetadata","ThreadMessage","ToolApprovalDisplay","ToolApprovalOption","CompleteAttachment","fromThreadMessageLike","CloudMessage","isJSONValue","ReadonlyJSONObject","ReadonlyJSONValue","ExportedMessageRepositoryItem","AuiV0ToolApproval","id","prompt","display","allowFreeform","approved","reason","isAutomatic","options","optionId","text","resolution","AuiV0MessagePart","type","unstable_summary","sourceType","url","title","providerMetadata","mediaType","filename","toolCallId","toolName","args","result","isError","approval","argsText","image","data","mimeType","name","AuiV0AttachmentPart","audio","format","AuiV0Attachment","contentType","status","content","AuiV0Message","role","attachments","metadata","unstable_state","unstable_annotations","unstable_data","steps","usage","inputTokens","outputTokens","custom","encodeAttachmentPart","part","undefined","console","warn","JSON","stringify","unhandledType","Error","encodeAttachments","message","length","map","auiV0Encode","auiV0Decode","cloudMessage","payload","createdAt","created_at","parentId","parent_id"],"sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"sourcesContent":["import type {\n MessageStatus,\n SourceProviderMetadata,\n ThreadMessage,\n ToolApprovalDisplay,\n ToolApprovalOption,\n} from \"../../../types/message\";\nimport type { CompleteAttachment } from \"../../../types/attachment\";\nimport { fromThreadMessageLike } from \"../../../runtime/utils/thread-message-like\";\nimport type { CloudMessage } from \"assistant-cloud\";\nimport { isJSONValue } from \"../../../utils/json/is-json\";\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ExportedMessageRepositoryItem } from \"../../../runtime/utils/message-repository\";\n\ntype AuiV0ToolApproval = {\n readonly id: string;\n readonly prompt?: string;\n readonly display?: ToolApprovalDisplay;\n readonly allowFreeform?: boolean;\n readonly approved?: boolean;\n readonly reason?: string;\n readonly isAutomatic?: boolean;\n readonly options?: readonly ToolApprovalOption[];\n readonly optionId?: string;\n readonly text?: string;\n readonly resolution?: \"cancelled\" | \"expired\";\n};\n\ntype AuiV0MessagePart =\n | {\n readonly type: \"text\";\n readonly text: string;\n }\n | {\n readonly type: \"reasoning\";\n readonly text: string;\n readonly unstable_summary?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"document\";\n readonly id: string;\n readonly title: string;\n readonly mediaType: string;\n readonly filename?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n }\n | {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly args: ReadonlyJSONObject;\n readonly result?: ReadonlyJSONValue;\n readonly isError?: true;\n readonly approval?: AuiV0ToolApproval;\n }\n | {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly argsText: string;\n readonly result?: ReadonlyJSONValue;\n readonly isError?: true;\n readonly approval?: AuiV0ToolApproval;\n }\n | {\n readonly type: \"image\";\n readonly image: string;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n };\n\ntype AuiV0AttachmentPart =\n | {\n readonly type: \"text\";\n readonly text: string;\n }\n | {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n };\n\ntype AuiV0Attachment = {\n readonly id: string;\n readonly type: CompleteAttachment[\"type\"];\n readonly name: string;\n readonly contentType?: string;\n readonly status: CompleteAttachment[\"status\"];\n readonly content: readonly AuiV0AttachmentPart[];\n};\n\ntype AuiV0Message = {\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly status?: MessageStatus;\n readonly content: readonly AuiV0MessagePart[];\n readonly attachments?: readonly AuiV0Attachment[];\n readonly metadata: {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations: readonly ReadonlyJSONValue[];\n readonly unstable_data: readonly ReadonlyJSONValue[];\n readonly steps: readonly {\n readonly usage?: {\n readonly inputTokens: number;\n readonly outputTokens: number;\n };\n }[];\n readonly custom: ReadonlyJSONObject;\n };\n};\n\nconst encodeAttachmentPart = (\n part: CompleteAttachment[\"content\"][number],\n): AuiV0AttachmentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return { type: \"text\", text: part.text };\n\n case \"image\":\n return {\n type: \"image\",\n image: part.image,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n ...(part.sourceType != null\n ? { sourceType: part.sourceType }\n : undefined),\n };\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`attachment data is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Attachment part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n};\n\nconst encodeAttachments = (\n message: ThreadMessage,\n): readonly AuiV0Attachment[] | undefined => {\n if (message.role !== \"user\" || message.attachments.length === 0) {\n return undefined;\n }\n\n return message.attachments.map(\n ({ id, type, name, contentType, status, content }) => ({\n id,\n type,\n name,\n status,\n ...(contentType != null ? { contentType } : undefined),\n content: content.map(encodeAttachmentPart),\n }),\n );\n};\n\nexport function auiV0Encode(message: ThreadMessage): AuiV0Message {\n // info: ID and createdAt are ignored (we use the server value instead)\n const status: MessageStatus | undefined =\n message.status?.type === \"running\"\n ? { type: \"incomplete\", reason: \"cancelled\" }\n : message.status;\n const attachments = encodeAttachments(message);\n\n return {\n role: message.role,\n content: message.content.map((part) => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return { type: \"text\", text: part.text };\n\n case \"reasoning\":\n return {\n type: \"reasoning\",\n text: part.text,\n ...(part.unstable_summary !== undefined\n ? { unstable_summary: part.unstable_summary }\n : undefined),\n };\n\n case \"source\":\n if (part.sourceType === \"url\") {\n return {\n type: \"source\",\n sourceType: \"url\",\n id: part.id,\n url: part.url,\n ...(part.title != null ? { title: part.title } : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n };\n }\n\n return {\n type: \"source\",\n sourceType: \"document\",\n id: part.id,\n title: part.title,\n mediaType: part.mediaType,\n ...(part.filename != null\n ? { filename: part.filename }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n };\n\n case \"tool-call\": {\n if (part.result !== undefined && !isJSONValue(part.result)) {\n console.warn(\n `tool-call result is not JSON! ${JSON.stringify(part)}`,\n );\n }\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n ...(JSON.stringify(part.args) === part.argsText\n ? { args: part.args }\n : { argsText: part.argsText }),\n ...(part.result !== undefined\n ? { result: part.result as ReadonlyJSONValue }\n : undefined),\n ...(part.isError ? { isError: true } : undefined),\n ...(part.approval ? { approval: part.approval } : undefined),\n };\n }\n\n case \"image\":\n return { type: \"image\", image: part.image };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename ? { filename: part.filename } : undefined),\n ...(part.sourceType ? { sourceType: part.sourceType } : undefined),\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`data part is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n default: {\n const unhandledType: \"audio\" | \"generative-ui\" = type;\n throw new Error(\n `Message part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n }),\n metadata: message.metadata as AuiV0Message[\"metadata\"],\n ...(status ? { status } : undefined),\n ...(attachments ? { attachments } : undefined),\n };\n}\n\nexport function auiV0Decode(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem {\n const payload = cloudMessage.content as unknown as AuiV0Message;\n const message = fromThreadMessageLike(\n {\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n ...payload,\n },\n cloudMessage.id,\n { type: \"complete\", reason: \"unknown\" },\n );\n\n return {\n parentId: cloudMessage.parent_id,\n message,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auiV0.js","names":["MessageStatus","SourceProviderMetadata","ThreadMessage","ToolCallMessagePartMcpMetadata","ToolCallTiming","ToolApprovalDisplay","ToolApprovalOption","ReasoningMessagePart","CompleteAttachment","fromThreadMessageLike","ThreadMessageLike","CloudMessage","isJSONValue","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredAuiV0RolePart","isStoredMessageRole","parseStoredAttachment","parseStoredDate","ReadonlyJSONObject","ReadonlyJSONValue","ExportedMessageRepositoryItem","AuiV0ToolApproval","id","prompt","display","allowFreeform","approved","reason","isAutomatic","options","optionId","text","resolution","AuiV0MessagePart","type","parentId","unstable_summary","providerMetadata","NonNullable","sourceType","url","title","mediaType","filename","AuiV0ToolCallPart","args","argsText","image","data","mimeType","name","audio","format","spec","toolCallId","toolName","result","isError","interrupt","payload","timing","mcp","approval","messages","AuiV0Message","AuiV0AttachmentPart","AuiV0Attachment","contentType","status","content","createdAt","role","attachments","metadata","unstable_state","unstable_annotations","unstable_data","steps","usage","inputTokens","outputTokens","custom","encodeAttachmentPart","part","undefined","console","warn","JSON","stringify","unhandledType","Error","encodeAttachments","message","length","map","auiV0Encode","encodeNestedMessage","readableAuiV0Parts","depth","flatMap","toolCall","Array","isArray","nested","readableAuiV0Message","readableAuiV0Attachments","attachment","parsed","value","rest","storedCreatedAt","readableMetadata","auiV0DecodeSafely","cloudMessage","parent_id","decodeAuiV0Message","created_at","error","auiV0Decode","toISOString","Omit","Date","fallbackId","index","nestedIndex"],"sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"sourcesContent":["import type {\n MessageStatus,\n SourceProviderMetadata,\n ThreadMessage,\n ToolCallMessagePartMcpMetadata,\n ToolCallTiming,\n ToolApprovalDisplay,\n ToolApprovalOption,\n ReasoningMessagePart,\n} from \"../../../types/message\";\nimport type { CompleteAttachment } from \"../../../types/attachment\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../../runtime/utils/thread-message-like\";\nimport type { CloudMessage } from \"assistant-cloud\";\nimport { isJSONValue, isRecord } from \"../../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredAuiV0RolePart,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n} from \"../../../runtime/utils/stored-message-parts\";\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ExportedMessageRepositoryItem } from \"../../../runtime/utils/message-repository\";\n\ntype AuiV0ToolApproval = {\n readonly id: string;\n readonly prompt?: string;\n readonly display?: ToolApprovalDisplay;\n readonly allowFreeform?: boolean;\n readonly approved?: boolean;\n readonly reason?: string;\n readonly isAutomatic?: boolean;\n readonly options?: readonly ToolApprovalOption[];\n readonly optionId?: string;\n readonly text?: string;\n readonly resolution?: \"cancelled\" | \"expired\";\n};\n\ntype AuiV0MessagePart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly parentId?: string;\n }\n | {\n readonly type: \"reasoning\";\n readonly text: string;\n readonly unstable_summary?: string;\n readonly providerMetadata?: NonNullable<\n ReasoningMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | {\n readonly type: \"source\";\n readonly sourceType: \"document\";\n readonly id: string;\n readonly title: string;\n readonly mediaType: string;\n readonly filename?: string;\n readonly providerMetadata?: SourceProviderMetadata;\n readonly parentId?: string;\n }\n | (AuiV0ToolCallPart &\n ({ readonly args: ReadonlyJSONObject } | { readonly argsText: string }))\n | {\n readonly type: \"image\";\n readonly image: string;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n readonly parentId?: string;\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"generative-ui\";\n readonly spec: ReadonlyJSONObject;\n readonly id?: string;\n readonly parentId?: string;\n };\n\ntype AuiV0ToolCallPart = {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly result?: ReadonlyJSONValue;\n readonly isError?: true;\n readonly interrupt?: {\n readonly type: \"human\";\n readonly payload: ReadonlyJSONValue;\n };\n readonly timing?: ToolCallTiming;\n readonly mcp?: ToolCallMessagePartMcpMetadata;\n readonly approval?: AuiV0ToolApproval;\n readonly parentId?: string;\n readonly messages?: readonly AuiV0Message[];\n};\n\ntype AuiV0AttachmentPart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly parentId?: string;\n }\n | {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n }\n | {\n readonly type: \"file\";\n readonly data: string;\n readonly mimeType: string;\n readonly filename?: string;\n readonly sourceType?: \"url\" | \"id\";\n readonly parentId?: string;\n }\n | {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n }\n | {\n readonly type: \"data\";\n readonly name: string;\n readonly data: ReadonlyJSONValue;\n };\n\ntype AuiV0Attachment = {\n readonly id: string;\n readonly type: CompleteAttachment[\"type\"];\n readonly name: string;\n readonly contentType?: string;\n readonly status: CompleteAttachment[\"status\"];\n readonly content: readonly AuiV0AttachmentPart[];\n};\n\ntype AuiV0Message = {\n readonly id?: string;\n readonly createdAt?: string;\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly status?: MessageStatus;\n readonly content: readonly AuiV0MessagePart[];\n readonly attachments?: readonly AuiV0Attachment[];\n readonly metadata: {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations: readonly ReadonlyJSONValue[];\n readonly unstable_data: readonly ReadonlyJSONValue[];\n readonly steps: readonly {\n readonly usage?: {\n readonly inputTokens: number;\n readonly outputTokens: number;\n };\n }[];\n readonly custom: ReadonlyJSONObject;\n };\n};\n\nconst encodeAttachmentPart = (\n part: CompleteAttachment[\"content\"][number],\n): AuiV0AttachmentPart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"image\":\n return {\n type: \"image\",\n image: part.image,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename != null ? { filename: part.filename } : undefined),\n ...(part.sourceType != null\n ? { sourceType: part.sourceType }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`attachment data is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Attachment part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n};\n\nconst encodeAttachments = (\n message: ThreadMessage,\n): readonly AuiV0Attachment[] | undefined => {\n if (message.role !== \"user\" || message.attachments.length === 0) {\n return undefined;\n }\n\n return message.attachments.map(\n ({ id, type, name, contentType, status, content }) => ({\n id,\n type,\n name,\n status,\n ...(contentType != null ? { contentType } : undefined),\n content: content.map(encodeAttachmentPart),\n }),\n );\n};\n\nexport function auiV0Encode(message: ThreadMessage): AuiV0Message {\n // info: ID and createdAt are ignored (we use the server value instead)\n const status: MessageStatus | undefined =\n message.status?.type === \"running\"\n ? { type: \"incomplete\", reason: \"cancelled\" }\n : message.status;\n const attachments = encodeAttachments(message);\n\n return {\n role: message.role,\n content: message.content.map((part) => {\n const type = part.type;\n switch (type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"reasoning\":\n return {\n type: \"reasoning\",\n text: part.text,\n ...(part.unstable_summary !== undefined\n ? { unstable_summary: part.unstable_summary }\n : undefined),\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"source\":\n if (part.sourceType === \"url\") {\n return {\n type: \"source\",\n sourceType: \"url\",\n id: part.id,\n url: part.url,\n ...(part.title != null ? { title: part.title } : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n }\n\n return {\n type: \"source\",\n sourceType: \"document\",\n id: part.id,\n title: part.title,\n mediaType: part.mediaType,\n ...(part.filename != null\n ? { filename: part.filename }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"tool-call\": {\n if (part.result !== undefined && !isJSONValue(part.result)) {\n console.warn(\n `tool-call result is not JSON! ${JSON.stringify(part)}`,\n );\n }\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n ...(JSON.stringify(part.args) === part.argsText\n ? { args: part.args }\n : { argsText: part.argsText }),\n ...(part.result !== undefined\n ? { result: part.result as ReadonlyJSONValue }\n : undefined),\n ...(part.isError ? { isError: true } : undefined),\n ...(part.interrupt !== undefined\n ? {\n interrupt: {\n type: part.interrupt.type,\n payload: part.interrupt.payload as ReadonlyJSONValue,\n },\n }\n : undefined),\n ...(part.timing !== undefined\n ? { timing: part.timing }\n : undefined),\n ...(part.mcp !== undefined ? { mcp: part.mcp } : undefined),\n ...(part.approval ? { approval: part.approval } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n ...(part.messages !== undefined\n ? { messages: part.messages.map(encodeNestedMessage) }\n : undefined),\n };\n }\n\n case \"image\":\n return { type: \"image\", image: part.image };\n\n case \"file\":\n return {\n type: \"file\",\n data: part.data,\n mimeType: part.mimeType,\n ...(part.filename ? { filename: part.filename } : undefined),\n ...(part.sourceType ? { sourceType: part.sourceType } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n case \"data\": {\n if (!isJSONValue(part.data)) {\n console.warn(`data part is not JSON! ${JSON.stringify(part)}`);\n }\n return {\n type: \"data\",\n name: part.name,\n data: part.data as ReadonlyJSONValue,\n };\n }\n\n case \"audio\":\n return {\n type: \"audio\",\n audio: { data: part.audio.data, format: part.audio.format },\n };\n\n case \"generative-ui\":\n return {\n type: \"generative-ui\",\n spec: part.spec as unknown as ReadonlyJSONObject,\n ...(part.id !== undefined ? { id: part.id } : undefined),\n ...(part.parentId !== undefined\n ? { parentId: part.parentId }\n : undefined),\n };\n\n default: {\n const unhandledType: never = type;\n throw new Error(\n `Message part type not supported by aui/v0: ${unhandledType}`,\n );\n }\n }\n }),\n metadata: message.metadata as AuiV0Message[\"metadata\"],\n ...(status ? { status } : undefined),\n ...(attachments ? { attachments } : undefined),\n };\n}\n\nconst readableAuiV0Parts = (\n role: AuiV0Message[\"role\"],\n content: readonly unknown[],\n depth: number,\n): AuiV0MessagePart[] =>\n content.flatMap((part) => {\n if (!isStoredAuiV0RolePart(role, part)) return [];\n if (part.type !== \"tool-call\" || part.messages === undefined)\n return [part as unknown as AuiV0MessagePart];\n\n const { messages, ...toolCall } = part;\n if (!Array.isArray(messages) || depth >= MAX_STORED_MESSAGE_DEPTH)\n return [toolCall as unknown as AuiV0MessagePart];\n return [\n {\n ...toolCall,\n messages: messages.flatMap((message) => {\n const nested = readableAuiV0Message(message, depth + 1);\n return nested ? [nested] : [];\n }),\n } as unknown as AuiV0MessagePart,\n ];\n });\n\nconst readableAuiV0Attachments = (\n attachments: readonly unknown[],\n): AuiV0Attachment[] =>\n attachments.flatMap((attachment) => {\n const parsed = parseStoredAttachment(attachment, (value) =>\n isStoredAuiV0RolePart(\"user\", value),\n );\n return parsed ? [parsed as unknown as AuiV0Attachment] : [];\n });\n\nconst readableAuiV0Message = (\n value: unknown,\n depth: number,\n): AuiV0Message | null => {\n if (\n !isRecord(value) ||\n !isStoredMessageRole(value.role) ||\n !Array.isArray(value.content)\n ) {\n return null;\n }\n\n const { role } = value;\n const content = readableAuiV0Parts(role, value.content, depth);\n // fromThreadMessageLike takes a system row only with exactly one text part,\n // so one that no longer matches after filtering is dropped here rather than\n // costing the row or the tool call that carries it.\n if (role === \"system\" && content.length !== 1) return null;\n\n const { attachments, createdAt, status, metadata, ...rest } = value;\n // decodeAuiV0Message turns a nested createdAt into a Date without checking\n // it, and encodeNestedMessage later calls toISOString on the result, so an\n // unparseable one would reject the next write to the message that holds it.\n // Dropping the field falls back to the parent's timestamp.\n const storedCreatedAt = parseStoredDate(createdAt);\n const readableMetadata =\n role === \"assistant\" || !isRecord(metadata)\n ? metadata\n : { ...metadata, steps: undefined };\n\n return {\n ...rest,\n ...(storedCreatedAt ? { createdAt } : undefined),\n // fromThreadMessageLike throws on a status, a metadata.steps or an\n // attachments list carried by a row whose role cannot hold one, and\n // auiV0Encode only ever writes each onto the role that can, so dropping a\n // misplaced field costs no valid data and saves the row.\n ...(role === \"assistant\" && status !== undefined ? { status } : undefined),\n ...(metadata !== undefined ? { metadata: readableMetadata } : undefined),\n content,\n ...(role === \"user\" && Array.isArray(attachments)\n ? { attachments: readableAuiV0Attachments(attachments) }\n : undefined),\n } as unknown as AuiV0Message;\n};\n\n/**\n * Decodes a stored row, dropping the parts, attachments and nested messages\n * that cannot be read back instead of rejecting the row, and returning null\n * when the row itself is unreadable. Loading a thread must not fail because a\n * single stored row is malformed.\n */\nexport function auiV0DecodeSafely(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem | null {\n try {\n const payload = readableAuiV0Message(cloudMessage.content, 0);\n if (!payload) throw new Error(\"stored row is not an aui/v0 message\");\n\n return {\n parentId: cloudMessage.parent_id,\n message: decodeAuiV0Message(\n {\n ...payload,\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n },\n cloudMessage.id,\n ),\n };\n } catch (error) {\n console.warn(\n `aui/v0: dropping unreadable message ${cloudMessage.id}`,\n error,\n );\n return null;\n }\n}\n\nexport function auiV0Decode(\n cloudMessage: CloudMessage & { format: \"aui/v0\" },\n): ExportedMessageRepositoryItem {\n const payload = cloudMessage.content as unknown as AuiV0Message;\n const message = decodeAuiV0Message(\n {\n ...payload,\n id: cloudMessage.id,\n createdAt: cloudMessage.created_at,\n },\n cloudMessage.id,\n );\n\n return {\n parentId: cloudMessage.parent_id,\n message,\n };\n}\n\nconst encodeNestedMessage = (message: ThreadMessage): AuiV0Message => ({\n ...auiV0Encode(message),\n id: message.id,\n createdAt: message.createdAt.toISOString(),\n});\n\nconst decodeAuiV0Message = (\n payload: Omit<AuiV0Message, \"createdAt\"> & {\n readonly createdAt?: Date | undefined;\n },\n fallbackId: string,\n): ThreadMessage =>\n fromThreadMessageLike(\n {\n ...payload,\n content: payload.content.map((part, index) => {\n if (part.type !== \"tool-call\" || part.messages === undefined)\n return part;\n return {\n ...part,\n messages: part.messages.map((message, nestedIndex) =>\n decodeAuiV0Message(\n {\n ...message,\n createdAt:\n message.createdAt !== undefined\n ? new Date(message.createdAt)\n : payload.createdAt,\n },\n message.id ??\n `${fallbackId}-${part.toolCallId}-${index}-${nestedIndex}`,\n ),\n ),\n };\n }),\n } as ThreadMessageLike,\n fallbackId,\n { type: \"complete\", reason: \"unknown\" },\n );\n"],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { RemoteThreadListAdapter, RuntimeAdapters } from "../../../runtimes/remote-thread-list/types.js";
|
|
2
2
|
import { RefObject } from "react";
|
|
3
|
-
import { AssistantCloud } from "assistant-cloud";
|
|
3
|
+
import { AssistantCloud, SdkIdentity } from "assistant-cloud";
|
|
4
4
|
//#region src/react/runtimes/cloud/createCloudThreadListAdapter.d.ts
|
|
5
5
|
type ThreadData = {
|
|
6
6
|
externalId: string | undefined;
|
|
7
7
|
};
|
|
8
|
-
type CloudThreadListAdapterOptions = {
|
|
8
|
+
export type CloudThreadListAdapterOptions = {
|
|
9
9
|
cloud?: AssistantCloud | undefined;
|
|
10
|
+
sdk?: SdkIdentity | undefined;
|
|
10
11
|
create?: (() => Promise<ThreadData>) | undefined;
|
|
11
12
|
delete?: ((threadId: string) => Promise<void>) | undefined;
|
|
12
13
|
};
|
|
13
|
-
declare const autoCloud: AssistantCloud | undefined;
|
|
14
|
-
declare const useCloudRuntimeAdapters: (cloudRef: RefObject<AssistantCloud>) => RuntimeAdapters;
|
|
14
|
+
export declare const autoCloud: AssistantCloud | undefined;
|
|
15
|
+
export declare const useCloudRuntimeAdapters: (cloudRef: RefObject<AssistantCloud>) => RuntimeAdapters;
|
|
15
16
|
/**
|
|
16
17
|
* Builds the `RemoteThreadListAdapter` for an assistant-cloud backend without
|
|
17
18
|
* requiring a hook call site, so plain code (a Vue or Svelte setup function,
|
|
@@ -23,7 +24,6 @@ declare const useCloudRuntimeAdapters: (cloudRef: RefObject<AssistantCloud>) =>
|
|
|
23
24
|
* in-memory list. `useCloudThreadListAdapter` wraps this for the React
|
|
24
25
|
* hook signature.
|
|
25
26
|
*/
|
|
26
|
-
declare const createCloudThreadListAdapter: (options: CloudThreadListAdapterOptions | (() => CloudThreadListAdapterOptions)) => RemoteThreadListAdapter;
|
|
27
|
+
export declare const createCloudThreadListAdapter: (options: CloudThreadListAdapterOptions | (() => CloudThreadListAdapterOptions)) => RemoteThreadListAdapter;
|
|
27
28
|
//#endregion
|
|
28
|
-
export { CloudThreadListAdapterOptions, autoCloud, createCloudThreadListAdapter, useCloudRuntimeAdapters };
|
|
29
29
|
//# sourceMappingURL=createCloudThreadListAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapter.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"createCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapter.ts"],"mappings":";;;;KAcK;EACH;;YAGU;EACV,QAAQ;EACR,MAAM;EAEN,gBAAgB,QAAQ;EACxB,WAAW,qBAAqB;;qBASrB,WAAS;qBAIT,0BACX,UAAU,UAAU,oBACnB;;;;;;;;;;;;qBAyDU,+BACX,SACI,uCACO,mCACV"}
|
|
@@ -2,6 +2,7 @@ import { isRecord } from "../../../utils/json/is-json.js";
|
|
|
2
2
|
import { InMemoryThreadListAdapter } from "../../../runtimes/remote-thread-list/adapter/in-memory.js";
|
|
3
3
|
import { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter.js";
|
|
4
4
|
import { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter.js";
|
|
5
|
+
import { CORE_SDK } from "./sdkIdentity.js";
|
|
5
6
|
import { useMemo, useState } from "@assistant-ui/tap/react-shim";
|
|
6
7
|
import { AssistantCloud } from "assistant-cloud";
|
|
7
8
|
//#region src/react/runtimes/cloud/createCloudThreadListAdapter.ts
|
|
@@ -71,6 +72,9 @@ const createCloudThreadListAdapter = (options) => {
|
|
|
71
72
|
};
|
|
72
73
|
return inMemory;
|
|
73
74
|
}
|
|
75
|
+
cloud.registerSdk?.(CORE_SDK);
|
|
76
|
+
const sdk = getOptions().sdk;
|
|
77
|
+
if (sdk) cloud.registerSdk?.(sdk);
|
|
74
78
|
return {
|
|
75
79
|
list: async ({ after } = {}) => {
|
|
76
80
|
const { activeCursor, archivedCursor, activeExhausted, archivedExhausted } = parseListCursor(after);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCloudThreadListAdapter.js","names":["process","env","Record","RefObject","useMemo","useState","AssistantCloud","RemoteThreadListAdapter","RuntimeAdapters","InMemoryThreadListAdapter","useAssistantCloudThreadHistoryAdapter","CloudFileAttachmentAdapter","isRecord","ThreadData","externalId","CloudThreadListAdapterOptions","cloud","create","Promise","delete","threadId","toCustom","value","undefined","baseUrl","NEXT_PUBLIC_ASSISTANT_BASE_URL","autoCloud","anonymous","useCloudRuntimeAdapters","cloudRef","history","attachments","current","feedback","CLOUD_THREAD_PAGE_SIZE","CloudListCursor","activeCursor","archivedCursor","activeExhausted","archivedExhausted","parseListCursor","after","fallback","startsWith","parsed","JSON","parse","a","r","ae","re","createCloudThreadListAdapter","options","getOptions","unstable_useAdapters","useCloudAdapters","inMemory","initialize","result","remoteId","list","threads","activeThreads","archivedThreads","all","resolve","limit","is_archived","activeNext","length","at","id","archivedNext","map","t","status","const","title","lastMessageAt","last_message_at","Date","external_id","custom","metadata","nextCursor","stringify","createTask","thread_id","rename","newTitle","update","updateCustom","archive","unarchive","generateTitle","messages","filteredMessages","msg","content","filter","part","type","runs","stream","assistant_id","fetch","thread","get"],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapter.ts"],"sourcesContent":["declare const process: { env: Record<string, string | undefined> };\n\nimport { type RefObject, useMemo, useState } from \"react\";\nimport { AssistantCloud } from \"assistant-cloud\";\nimport type {\n RemoteThreadListAdapter,\n RuntimeAdapters,\n} from \"../../../runtimes/remote-thread-list/types\";\nimport { InMemoryThreadListAdapter } from \"../../../runtimes/remote-thread-list/adapter/in-memory\";\nimport { useAssistantCloudThreadHistoryAdapter } from \"./AssistantCloudThreadHistoryAdapter\";\nimport { CloudFileAttachmentAdapter } from \"./CloudFileAttachmentAdapter\";\nimport { isRecord } from \"../../../utils/json/is-json\";\n\ntype ThreadData = {\n externalId: string | undefined;\n};\n\nexport type CloudThreadListAdapterOptions = {\n cloud?: AssistantCloud | undefined;\n\n create?: (() => Promise<ThreadData>) | undefined;\n delete?: ((threadId: string) => Promise<void>) | undefined;\n};\n\nconst toCustom = (value: unknown): Record<string, unknown> | undefined =>\n isRecord(value) ? value : undefined;\n\nconst baseUrl =\n typeof process !== \"undefined\" &&\n process?.env?.NEXT_PUBLIC_ASSISTANT_BASE_URL;\nexport const autoCloud = baseUrl\n ? new AssistantCloud({ baseUrl, anonymous: true })\n : undefined;\n\nexport const useCloudRuntimeAdapters = (\n cloudRef: RefObject<AssistantCloud>,\n): RuntimeAdapters => {\n const history = useAssistantCloudThreadHistoryAdapter(cloudRef);\n const [attachments] = useState(\n () => new CloudFileAttachmentAdapter(() => cloudRef.current),\n );\n return useMemo(\n () => ({\n history,\n attachments,\n feedback: history.feedback,\n }),\n [history, attachments],\n );\n};\n\nconst CLOUD_THREAD_PAGE_SIZE = 20;\n\ntype CloudListCursor = {\n activeCursor: string | undefined;\n archivedCursor: string | undefined;\n activeExhausted: boolean;\n archivedExhausted: boolean;\n};\n\nconst parseListCursor = (after: string | undefined): CloudListCursor => {\n const fallback: CloudListCursor = {\n activeCursor: after,\n archivedCursor: undefined,\n activeExhausted: false,\n archivedExhausted: false,\n };\n if (!after || !after.startsWith(\"{\")) return fallback;\n try {\n const parsed = JSON.parse(after);\n if (!isRecord(parsed)) return fallback;\n return {\n activeCursor: typeof parsed.a === \"string\" ? parsed.a : undefined,\n archivedCursor: typeof parsed.r === \"string\" ? parsed.r : undefined,\n activeExhausted: parsed.ae === true,\n archivedExhausted: parsed.re === true,\n };\n } catch {\n return fallback;\n }\n};\n\n/**\n * Builds the `RemoteThreadListAdapter` for an assistant-cloud backend without\n * requiring a hook call site, so plain code (a Vue or Svelte setup function,\n * a module-level config) can construct it. Options are read through the\n * getter on every call, so a stable adapter can follow changing `create` and\n * `delete` callbacks; swapping to a different `cloud` instance requires a new\n * adapter (and `reload()` on the list). Without a `cloud` instance (and\n * without `NEXT_PUBLIC_ASSISTANT_BASE_URL`), the adapter falls back to an\n * in-memory list. `useCloudThreadListAdapter` wraps this for the React\n * hook signature.\n */\nexport const createCloudThreadListAdapter = (\n options:\n | CloudThreadListAdapterOptions\n | (() => CloudThreadListAdapterOptions),\n): RemoteThreadListAdapter => {\n const getOptions = typeof options === \"function\" ? options : () => options;\n\n const unstable_useAdapters = function useCloudAdapters(): RuntimeAdapters {\n return useCloudRuntimeAdapters({\n get current() {\n return getOptions().cloud ?? autoCloud!;\n },\n });\n };\n\n const cloud = getOptions().cloud ?? autoCloud;\n if (!cloud) {\n const inMemory = new InMemoryThreadListAdapter();\n inMemory.initialize = async (threadId: string) => {\n const result = await getOptions().create?.();\n return { remoteId: threadId, externalId: result?.externalId };\n };\n return inMemory;\n }\n\n return {\n list: async ({ after } = {}) => {\n const {\n activeCursor,\n archivedCursor,\n activeExhausted,\n archivedExhausted,\n } = parseListCursor(after);\n const [{ threads: activeThreads }, { threads: archivedThreads }] =\n await Promise.all([\n activeExhausted\n ? Promise.resolve({ threads: [] })\n : cloud.threads.list({\n limit: CLOUD_THREAD_PAGE_SIZE,\n ...(activeCursor ? { after: activeCursor } : {}),\n }),\n archivedExhausted\n ? Promise.resolve({ threads: [] })\n : cloud.threads.list({\n is_archived: true,\n limit: CLOUD_THREAD_PAGE_SIZE,\n ...(archivedCursor ? { after: archivedCursor } : {}),\n }),\n ]);\n const activeNext =\n !activeExhausted && activeThreads.length === CLOUD_THREAD_PAGE_SIZE\n ? activeThreads.at(-1)?.id\n : undefined;\n const archivedNext =\n !archivedExhausted && archivedThreads.length === CLOUD_THREAD_PAGE_SIZE\n ? archivedThreads.at(-1)?.id\n : undefined;\n const threads = [...activeThreads, ...archivedThreads];\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? (\"archived\" as const) : (\"regular\" as const),\n remoteId: t.id,\n title: t.title,\n lastMessageAt: t.last_message_at\n ? new Date(t.last_message_at)\n : undefined,\n externalId: t.external_id ?? undefined,\n custom: toCustom(t.metadata),\n })),\n nextCursor:\n activeNext || archivedNext\n ? JSON.stringify({\n a: activeNext,\n r: archivedNext,\n ...(activeNext === undefined ? { ae: true } : {}),\n ...(archivedNext === undefined ? { re: true } : {}),\n })\n : undefined,\n };\n },\n\n initialize: async () => {\n const createTask = getOptions().create?.() ?? Promise.resolve();\n const t = await createTask;\n const external_id = t ? t.externalId : undefined;\n const { thread_id: remoteId } = await cloud.threads.create({\n last_message_at: new Date(),\n external_id,\n });\n\n return { externalId: external_id, remoteId: remoteId };\n },\n\n rename: async (threadId, newTitle) => {\n return cloud.threads.update(threadId, { title: newTitle });\n },\n updateCustom: async (threadId, custom) => {\n return cloud.threads.update(threadId, { metadata: custom ?? null });\n },\n archive: async (threadId) => {\n return cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await getOptions().delete?.(threadId);\n return cloud.threads.delete(threadId);\n },\n\n generateTitle: async (threadId, messages) => {\n const filteredMessages = messages.map((msg) => ({\n ...msg,\n content: msg.content.filter(\n (part) => part.type === \"text\" || part.type === \"tool-call\",\n ),\n }));\n\n return cloud.runs.stream({\n thread_id: threadId,\n assistant_id: \"system/thread_title\",\n messages: filteredMessages,\n });\n },\n\n fetch: async (threadId: string) => {\n const thread = await cloud.threads.get(threadId);\n return {\n status: thread.is_archived\n ? (\"archived\" as const)\n : (\"regular\" as const),\n remoteId: thread.id,\n title: thread.title,\n lastMessageAt: thread.last_message_at\n ? new Date(thread.last_message_at)\n : undefined,\n externalId: thread.external_id ?? undefined,\n custom: toCustom(thread.metadata),\n };\n },\n\n unstable_useAdapters,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createCloudThreadListAdapter.js","names":["process","env","Record","RefObject","useMemo","useState","AssistantCloud","SdkIdentity","RemoteThreadListAdapter","RuntimeAdapters","InMemoryThreadListAdapter","useAssistantCloudThreadHistoryAdapter","CloudFileAttachmentAdapter","isRecord","CORE_SDK","ThreadData","externalId","CloudThreadListAdapterOptions","cloud","sdk","create","Promise","delete","threadId","toCustom","value","undefined","baseUrl","NEXT_PUBLIC_ASSISTANT_BASE_URL","autoCloud","anonymous","useCloudRuntimeAdapters","cloudRef","history","attachments","current","feedback","CLOUD_THREAD_PAGE_SIZE","CloudListCursor","activeCursor","archivedCursor","activeExhausted","archivedExhausted","parseListCursor","after","fallback","startsWith","parsed","JSON","parse","a","r","ae","re","createCloudThreadListAdapter","options","getOptions","unstable_useAdapters","useCloudAdapters","inMemory","initialize","result","remoteId","registerSdk","list","threads","activeThreads","archivedThreads","all","resolve","limit","is_archived","activeNext","length","at","id","archivedNext","map","t","status","const","title","lastMessageAt","last_message_at","Date","external_id","custom","metadata","nextCursor","stringify","createTask","thread_id","rename","newTitle","update","updateCustom","archive","unarchive","generateTitle","messages","filteredMessages","msg","content","filter","part","type","runs","stream","assistant_id","fetch","thread","get"],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapter.ts"],"sourcesContent":["declare const process: { env: Record<string, string | undefined> };\n\nimport { type RefObject, useMemo, useState } from \"react\";\nimport { AssistantCloud, type SdkIdentity } from \"assistant-cloud\";\nimport type {\n RemoteThreadListAdapter,\n RuntimeAdapters,\n} from \"../../../runtimes/remote-thread-list/types\";\nimport { InMemoryThreadListAdapter } from \"../../../runtimes/remote-thread-list/adapter/in-memory\";\nimport { useAssistantCloudThreadHistoryAdapter } from \"./AssistantCloudThreadHistoryAdapter\";\nimport { CloudFileAttachmentAdapter } from \"./CloudFileAttachmentAdapter\";\nimport { isRecord } from \"../../../utils/json/is-json\";\nimport { CORE_SDK } from \"./sdkIdentity\";\n\ntype ThreadData = {\n externalId: string | undefined;\n};\n\nexport type CloudThreadListAdapterOptions = {\n cloud?: AssistantCloud | undefined;\n sdk?: SdkIdentity | undefined;\n\n create?: (() => Promise<ThreadData>) | undefined;\n delete?: ((threadId: string) => Promise<void>) | undefined;\n};\n\nconst toCustom = (value: unknown): Record<string, unknown> | undefined =>\n isRecord(value) ? value : undefined;\n\nconst baseUrl =\n typeof process !== \"undefined\" &&\n process?.env?.NEXT_PUBLIC_ASSISTANT_BASE_URL;\nexport const autoCloud = baseUrl\n ? new AssistantCloud({ baseUrl, anonymous: true })\n : undefined;\n\nexport const useCloudRuntimeAdapters = (\n cloudRef: RefObject<AssistantCloud>,\n): RuntimeAdapters => {\n const history = useAssistantCloudThreadHistoryAdapter(cloudRef);\n const [attachments] = useState(\n () => new CloudFileAttachmentAdapter(() => cloudRef.current),\n );\n return useMemo(\n () => ({\n history,\n attachments,\n feedback: history.feedback,\n }),\n [history, attachments],\n );\n};\n\nconst CLOUD_THREAD_PAGE_SIZE = 20;\n\ntype CloudListCursor = {\n activeCursor: string | undefined;\n archivedCursor: string | undefined;\n activeExhausted: boolean;\n archivedExhausted: boolean;\n};\n\nconst parseListCursor = (after: string | undefined): CloudListCursor => {\n const fallback: CloudListCursor = {\n activeCursor: after,\n archivedCursor: undefined,\n activeExhausted: false,\n archivedExhausted: false,\n };\n if (!after || !after.startsWith(\"{\")) return fallback;\n try {\n const parsed = JSON.parse(after);\n if (!isRecord(parsed)) return fallback;\n return {\n activeCursor: typeof parsed.a === \"string\" ? parsed.a : undefined,\n archivedCursor: typeof parsed.r === \"string\" ? parsed.r : undefined,\n activeExhausted: parsed.ae === true,\n archivedExhausted: parsed.re === true,\n };\n } catch {\n return fallback;\n }\n};\n\n/**\n * Builds the `RemoteThreadListAdapter` for an assistant-cloud backend without\n * requiring a hook call site, so plain code (a Vue or Svelte setup function,\n * a module-level config) can construct it. Options are read through the\n * getter on every call, so a stable adapter can follow changing `create` and\n * `delete` callbacks; swapping to a different `cloud` instance requires a new\n * adapter (and `reload()` on the list). Without a `cloud` instance (and\n * without `NEXT_PUBLIC_ASSISTANT_BASE_URL`), the adapter falls back to an\n * in-memory list. `useCloudThreadListAdapter` wraps this for the React\n * hook signature.\n */\nexport const createCloudThreadListAdapter = (\n options:\n | CloudThreadListAdapterOptions\n | (() => CloudThreadListAdapterOptions),\n): RemoteThreadListAdapter => {\n const getOptions = typeof options === \"function\" ? options : () => options;\n\n const unstable_useAdapters = function useCloudAdapters(): RuntimeAdapters {\n return useCloudRuntimeAdapters({\n get current() {\n return getOptions().cloud ?? autoCloud!;\n },\n });\n };\n\n const cloud = getOptions().cloud ?? autoCloud;\n if (!cloud) {\n const inMemory = new InMemoryThreadListAdapter();\n inMemory.initialize = async (threadId: string) => {\n const result = await getOptions().create?.();\n return { remoteId: threadId, externalId: result?.externalId };\n };\n return inMemory;\n }\n\n cloud.registerSdk?.(CORE_SDK);\n const sdk = getOptions().sdk;\n if (sdk) cloud.registerSdk?.(sdk);\n\n return {\n list: async ({ after } = {}) => {\n const {\n activeCursor,\n archivedCursor,\n activeExhausted,\n archivedExhausted,\n } = parseListCursor(after);\n const [{ threads: activeThreads }, { threads: archivedThreads }] =\n await Promise.all([\n activeExhausted\n ? Promise.resolve({ threads: [] })\n : cloud.threads.list({\n limit: CLOUD_THREAD_PAGE_SIZE,\n ...(activeCursor ? { after: activeCursor } : {}),\n }),\n archivedExhausted\n ? Promise.resolve({ threads: [] })\n : cloud.threads.list({\n is_archived: true,\n limit: CLOUD_THREAD_PAGE_SIZE,\n ...(archivedCursor ? { after: archivedCursor } : {}),\n }),\n ]);\n const activeNext =\n !activeExhausted && activeThreads.length === CLOUD_THREAD_PAGE_SIZE\n ? activeThreads.at(-1)?.id\n : undefined;\n const archivedNext =\n !archivedExhausted && archivedThreads.length === CLOUD_THREAD_PAGE_SIZE\n ? archivedThreads.at(-1)?.id\n : undefined;\n const threads = [...activeThreads, ...archivedThreads];\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? (\"archived\" as const) : (\"regular\" as const),\n remoteId: t.id,\n title: t.title,\n lastMessageAt: t.last_message_at\n ? new Date(t.last_message_at)\n : undefined,\n externalId: t.external_id ?? undefined,\n custom: toCustom(t.metadata),\n })),\n nextCursor:\n activeNext || archivedNext\n ? JSON.stringify({\n a: activeNext,\n r: archivedNext,\n ...(activeNext === undefined ? { ae: true } : {}),\n ...(archivedNext === undefined ? { re: true } : {}),\n })\n : undefined,\n };\n },\n\n initialize: async () => {\n const createTask = getOptions().create?.() ?? Promise.resolve();\n const t = await createTask;\n const external_id = t ? t.externalId : undefined;\n const { thread_id: remoteId } = await cloud.threads.create({\n last_message_at: new Date(),\n external_id,\n });\n\n return { externalId: external_id, remoteId: remoteId };\n },\n\n rename: async (threadId, newTitle) => {\n return cloud.threads.update(threadId, { title: newTitle });\n },\n updateCustom: async (threadId, custom) => {\n return cloud.threads.update(threadId, { metadata: custom ?? null });\n },\n archive: async (threadId) => {\n return cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await getOptions().delete?.(threadId);\n return cloud.threads.delete(threadId);\n },\n\n generateTitle: async (threadId, messages) => {\n const filteredMessages = messages.map((msg) => ({\n ...msg,\n content: msg.content.filter(\n (part) => part.type === \"text\" || part.type === \"tool-call\",\n ),\n }));\n\n return cloud.runs.stream({\n thread_id: threadId,\n assistant_id: \"system/thread_title\",\n messages: filteredMessages,\n });\n },\n\n fetch: async (threadId: string) => {\n const thread = await cloud.threads.get(threadId);\n return {\n status: thread.is_archived\n ? (\"archived\" as const)\n : (\"regular\" as const),\n remoteId: thread.id,\n title: thread.title,\n lastMessageAt: thread.last_message_at\n ? new Date(thread.last_message_at)\n : undefined,\n externalId: thread.external_id ?? undefined,\n custom: toCustom(thread.metadata),\n };\n },\n\n unstable_useAdapters,\n };\n};\n"],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ type ThreadListItem = {
|
|
|
6
6
|
source: unknown;
|
|
7
7
|
initialize: () => Promise<ThreadData>;
|
|
8
8
|
};
|
|
9
|
-
declare const createCloudThreadListAdapterCreateFallback: (create: (() => Promise<ThreadData>) | undefined, threadListItem: ThreadListItem) => (() => Promise<ThreadData>);
|
|
9
|
+
export declare const createCloudThreadListAdapterCreateFallback: (create: (() => Promise<ThreadData>) | undefined, threadListItem: ThreadListItem) => (() => Promise<ThreadData>);
|
|
10
10
|
//#endregion
|
|
11
|
-
export { createCloudThreadListAdapterCreateFallback };
|
|
12
11
|
//# sourceMappingURL=createCloudThreadListAdapterCreateFallback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCloudThreadListAdapterCreateFallback.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.ts"],"mappings":";KAAK;EACH;;KAGG;EACH;EACA,kBAAkB,QAAQ;;
|
|
1
|
+
{"version":3,"file":"createCloudThreadListAdapterCreateFallback.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.ts"],"mappings":";KAAK;EACH;;KAGG;EACH;EACA,kBAAkB,QAAQ;;qBAGf,6CACX,eAAe,QAAQ,0BACvB,gBAAgB,0BACR,QAAQ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkIdentity.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/sdkIdentity.ts"],"mappings":";;qBAEa,UAAU"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkIdentity.js","names":["SdkIdentity","CORE_SDK","name","version","__AUI_PACKAGE_VERSION__"],"sources":["../../../../src/react/runtimes/cloud/sdkIdentity.ts"],"sourcesContent":["import type { SdkIdentity } from \"assistant-cloud\";\n\nexport const CORE_SDK: SdkIdentity = {\n name: \"@assistant-ui/core\",\n version:\n typeof __AUI_PACKAGE_VERSION__ === \"string\"\n ? __AUI_PACKAGE_VERSION__\n : \"0.0.0\",\n};\n"],"mappings":";AAEA,MAAaC,WAAwB;CACnCC,MAAM;CACNC,SAAAA;AAIF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { RemoteThreadListAdapter } from "../../../runtimes/remote-thread-list/types.js";
|
|
2
2
|
import { CloudThreadListAdapterOptions } from "./createCloudThreadListAdapter.js";
|
|
3
3
|
//#region src/react/runtimes/cloud/useCloudThreadListAdapter.d.ts
|
|
4
|
-
declare const useCloudThreadListAdapter: (adapter: CloudThreadListAdapterOptions) => RemoteThreadListAdapter;
|
|
4
|
+
export declare const useCloudThreadListAdapter: (adapter: CloudThreadListAdapterOptions) => RemoteThreadListAdapter;
|
|
5
5
|
//#endregion
|
|
6
|
-
export { useCloudThreadListAdapter };
|
|
7
6
|
//# sourceMappingURL=useCloudThreadListAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useCloudThreadListAdapter.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"mappings":";;;qBASa,4BACX,SAAS,kCACR"}
|
|
@@ -10,7 +10,6 @@ type CloudThreadListAdapter = {
|
|
|
10
10
|
create?(): Promise<ThreadData>;
|
|
11
11
|
delete?(threadId: string): Promise<void>;
|
|
12
12
|
};
|
|
13
|
-
declare function useCloudThreadListRuntime({ runtimeHook, ...adapterOptions }: CloudThreadListAdapter): AssistantRuntime;
|
|
13
|
+
export declare function useCloudThreadListRuntime({ runtimeHook, ...adapterOptions }: CloudThreadListAdapter): AssistantRuntime;
|
|
14
14
|
//#endregion
|
|
15
|
-
export { useCloudThreadListRuntime };
|
|
16
15
|
//# sourceMappingURL=useCloudThreadListRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCloudThreadListRuntime.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListRuntime.ts"],"mappings":";;;KAOK;EACH;;KAGG;EACH,OAAO;EAEP,mBAAmB;EAEnB,WAAW,QAAQ;EACnB,QAAQ,mBAAmB;;
|
|
1
|
+
{"version":3,"file":"useCloudThreadListRuntime.d.ts","names":[],"sources":["../../../../src/react/runtimes/cloud/useCloudThreadListRuntime.ts"],"mappings":";;;KAOK;EACH;;KAGG;EACH,OAAO;EAEP,mBAAmB;EAEnB,WAAW,QAAQ;EACnB,QAAQ,mBAAmB;;wBAGb,4BACd,gBACG,kBACF,yBAAsB"}
|
|
@@ -3,7 +3,7 @@ import { JoinStrategy } from "../../runtime/utils/external-message-conversion.js
|
|
|
3
3
|
import { useExternalMessageConverter } from "./external-message-converter.js";
|
|
4
4
|
import { ThreadState } from "../../runtime/api/thread-runtime.js";
|
|
5
5
|
//#region src/react/runtimes/createMessageConverter.d.ts
|
|
6
|
-
declare const createMessageConverter: <T extends object>(callback: useExternalMessageConverter.Callback<T>) => {
|
|
6
|
+
export declare const createMessageConverter: <T extends object>(callback: useExternalMessageConverter.Callback<T>) => {
|
|
7
7
|
useThreadMessages: ({ messages, isRunning, joinStrategy, metadata }: {
|
|
8
8
|
messages: T[];
|
|
9
9
|
isRunning: boolean;
|
|
@@ -17,5 +17,4 @@ declare const createMessageConverter: <T extends object>(callback: useExternalMe
|
|
|
17
17
|
useOriginalMessages: () => unknown[];
|
|
18
18
|
};
|
|
19
19
|
//#endregion
|
|
20
|
-
export { createMessageConverter };
|
|
21
20
|
//# sourceMappingURL=createMessageConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMessageConverter.d.ts","names":[],"sources":["../../../src/react/runtimes/createMessageConverter.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"createMessageConverter.d.ts","names":[],"sources":["../../../src/react/runtimes/createMessageConverter.ts"],"mappings":";;;;;qBAWa,yBAA0B,kBACrC,UAAU,4BAA4B,SAAS;EAQ1C,sBAAA,UAAA,WAAA,cAAA;IACD,UAAU;IACV;IACA,eAAe;IACf,WAAW,4BAA4B;QACxC;EAUW,mBAAA,UAAA,KAAG,qBAAA,WAEH,4BAA4B,aAAQ;EAKvC,qBAAA,OAAA,cAAc,gBAAgB;EAO9B,oBAAA,OAAA,cAAc,gBAAgB"}
|
|
@@ -2,7 +2,7 @@ import { RuntimeExtrasBrand } from "../../runtime/utils/runtime-extras-brand.js"
|
|
|
2
2
|
import { AssistantClient } from "@assistant-ui/store";
|
|
3
3
|
//#region src/react/runtimes/createRuntimeExtras.d.ts
|
|
4
4
|
/** @deprecated Internal API for external-store adapter authors. Not part of the public API; may change or be removed without notice. */
|
|
5
|
-
type RuntimeExtras<T extends object> = {
|
|
5
|
+
export type RuntimeExtras<T extends object> = {
|
|
6
6
|
provide: (value: T) => T;
|
|
7
7
|
is: (extras: unknown) => extras is T;
|
|
8
8
|
tryGet: (extras: unknown) => T | undefined;
|
|
@@ -14,9 +14,8 @@ type RuntimeExtras<T extends object> = {
|
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
16
|
/** @deprecated Internal API for external-store adapter authors. Not part of the public API; may change or be removed without notice. */
|
|
17
|
-
declare const unstable_createRuntimeExtrasFromBrand: <T extends object>(brand: RuntimeExtrasBrand<T>) => RuntimeExtras<T>;
|
|
17
|
+
export declare const unstable_createRuntimeExtrasFromBrand: <T extends object>(brand: RuntimeExtrasBrand<T>) => RuntimeExtras<T>;
|
|
18
18
|
/** @deprecated Internal API for external-store adapter authors. Not part of the public API; may change or be removed without notice. */
|
|
19
|
-
declare const createRuntimeExtras: <T extends object>(runtimeName: string) => RuntimeExtras<T>;
|
|
19
|
+
export declare const createRuntimeExtras: <T extends object>(runtimeName: string) => RuntimeExtras<T>;
|
|
20
20
|
//#endregion
|
|
21
|
-
export { RuntimeExtras, createRuntimeExtras, unstable_createRuntimeExtrasFromBrand };
|
|
22
21
|
//# sourceMappingURL=createRuntimeExtras.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRuntimeExtras.d.ts","names":[],"sources":["../../../src/react/runtimes/createRuntimeExtras.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"createRuntimeExtras.d.ts","names":[],"sources":["../../../src/react/runtimes/createRuntimeExtras.ts"],"mappings":";;;;YAUY,cAAc;EACxB,UAAU,OAAO,MAAM;EACvB,KAAK,oBAAoB,UAAU;EACnC,SAAS,oBAAoB;EAC7B,MAAM,QAAQ,oBAAoB;EAClC;QACM;KACH,GAAG,SAAS,QAAQ,MAAM,IAAI;KAC9B,GAAG,SAAS,QAAQ,MAAM,GAAG,UAAU,IAAI;;;;qBAKnC,wCAAyC,kBACpD,OAAO,mBAAmB,OACzB,cAAc;;qBA0BJ,sBAAuB,kBAClC,wBACC,cAAc"}
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { ThreadMessage } from "../../types/message.js";
|
|
2
2
|
import { ExternalMessageConverterCallback, ExternalMessageConverterMessage, ExternalMessageConverterMetadata, JoinStrategy } from "../../runtime/utils/external-message-conversion.js";
|
|
3
|
+
import "../../index.js";
|
|
3
4
|
//#region src/react/runtimes/external-message-converter.d.ts
|
|
4
|
-
|
|
5
|
+
export type ExternalMessageConversionCache = {
|
|
6
|
+
readonly __brand: unique symbol;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Creates a cache for plain external message conversion. Pass the same cache on every call for one message list, and a source message that has not changed since the previous call converts to the same `ThreadMessage` object.
|
|
10
|
+
*
|
|
11
|
+
* Entries are keyed by source message identity and rebuilt whenever `callback` or `metadata` is a different object than on the previous call, so keep both referentially stable.
|
|
12
|
+
*/
|
|
13
|
+
export declare const createExternalMessageConversionCache: () => ExternalMessageConversionCache;
|
|
14
|
+
export declare namespace useExternalMessageConverter {
|
|
5
15
|
type Message = ExternalMessageConverterMessage;
|
|
6
16
|
type Metadata = ExternalMessageConverterMetadata;
|
|
7
17
|
type Callback<T> = ExternalMessageConverterCallback<T>;
|
|
8
18
|
}
|
|
9
|
-
declare const convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata) => ThreadMessage[];
|
|
10
|
-
declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messages, isRunning, joinStrategy, metadata }: {
|
|
19
|
+
export declare const convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata, cache?: ExternalMessageConversionCache) => ThreadMessage[];
|
|
20
|
+
export declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messages, isRunning, joinStrategy, metadata }: {
|
|
11
21
|
callback: useExternalMessageConverter.Callback<T>;
|
|
12
22
|
messages: T[];
|
|
13
23
|
isRunning: boolean;
|
|
@@ -15,5 +25,5 @@ declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messa
|
|
|
15
25
|
metadata?: useExternalMessageConverter.Metadata | undefined;
|
|
16
26
|
}) => ThreadMessage[];
|
|
17
27
|
//#endregion
|
|
18
|
-
export {
|
|
28
|
+
export type { JoinStrategy };
|
|
19
29
|
//# sourceMappingURL=external-message-converter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-message-converter.d.ts","names":[],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"external-message-converter.d.ts","names":[],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"mappings":";;;;YAeY;WACD;;;;;;;qBAQE,4CACP;yBAGW;OACH,UAAU;OACV,WAAW;OACX,SAAS,KAAK,iCAAiC;;qBAGhD,0BAA2B,UAAU,SAChD,UAAU,KACV,UAAU,4BAA4B,SAAS,IAC/C,oBACA,UAAU,4BAA4B,UACtC,QAAQ,mCAAA;qBAWG,8BAA+B,UAAU,WAAS,UAAA,UAAA,WAAA,cAAA;EAO7D,UAAU,4BAA4B,SAAS;EAC/C,UAAU;EACV;EACA,eAAe;EACf,WAAW,4BAA4B;MAAA"}
|