@assistant-ui/core 0.3.20 → 0.3.21
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 +42 -34
- package/dist/adapters/attachment.d.ts.map +1 -1
- package/dist/adapters/attachment.js +51 -21
- package/dist/adapters/attachment.js.map +1 -1
- package/dist/adapters/directive-formatter.d.ts +1 -3
- package/dist/adapters/directive-formatter.d.ts.map +1 -1
- package/dist/adapters/feedback.d.ts +6 -7
- package/dist/adapters/feedback.d.ts.map +1 -1
- package/dist/adapters/index.d.ts +14 -9
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +1 -1
- package/dist/adapters/speech.d.ts +57 -58
- package/dist/adapters/speech.d.ts.map +1 -1
- package/dist/adapters/speech.js +16 -2
- package/dist/adapters/speech.js.map +1 -1
- package/dist/adapters/suggestion.d.ts +14 -16
- package/dist/adapters/suggestion.d.ts.map +1 -1
- package/dist/adapters/thread-history.d.ts +54 -51
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/adapters/trigger.d.ts +7 -9
- package/dist/adapters/trigger.d.ts.map +1 -1
- package/dist/adapters/voice.d.ts +46 -40
- package/dist/adapters/voice.d.ts.map +1 -1
- package/dist/adapters/voice.js +17 -3
- package/dist/adapters/voice.js.map +1 -1
- package/dist/index.d.ts +70 -56
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/internal/duplicate-detection.d.ts +0 -2
- package/dist/internal/duplicate-detection.d.ts.map +1 -1
- package/dist/internal.d.ts +27 -58
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +8 -6
- package/dist/model-context/frame/host.d.ts +19 -21
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +3 -1
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +27 -28
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +6 -0
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/model-context/frame/types.d.ts +19 -21
- package/dist/model-context/frame/types.d.ts.map +1 -1
- package/dist/model-context/frame/validate.d.ts +3 -0
- package/dist/model-context/frame/validate.d.ts.map +1 -0
- package/dist/model-context/frame/validate.js +26 -0
- package/dist/model-context/frame/validate.js.map +1 -0
- package/dist/model-context/interactable-composer-metadata.d.ts +42 -29
- package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
- package/dist/model-context/interactable-composer-metadata.js +30 -6
- package/dist/model-context/interactable-composer-metadata.js.map +1 -1
- package/dist/model-context/registry-handles.d.ts +6 -8
- package/dist/model-context/registry-handles.d.ts.map +1 -1
- package/dist/model-context/registry.d.ts +14 -16
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/tool-call-text.d.ts +13 -14
- package/dist/model-context/tool-call-text.d.ts.map +1 -1
- package/dist/model-context/tool.d.ts +10 -11
- package/dist/model-context/tool.d.ts.map +1 -1
- package/dist/model-context/types.d.ts +32 -34
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/react/AssistantProvider.d.ts +6 -8
- package/dist/react/AssistantProvider.d.ts.map +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts +23 -25
- package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/react/RuntimeAdapter.d.ts +2 -5
- package/dist/react/RuntimeAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +24 -18
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +58 -25
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/adapters/TitleGenerationAdapter.d.ts +2 -4
- package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
- package/dist/react/client/AdaptedRemoteThread.d.ts +5 -7
- package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.d.ts +1 -3
- package/dist/react/client/DataRenderers.d.ts.map +1 -1
- package/dist/react/client/InMemoryThreadList.d.ts +6 -8
- package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
- package/dist/react/client/Interactables.d.ts +2 -4
- package/dist/react/client/Interactables.d.ts.map +1 -1
- package/dist/react/client/Interactables.js +306 -101
- package/dist/react/client/Interactables.js.map +1 -1
- package/dist/react/client/RemoteThreadList.d.ts +32 -34
- package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
- package/dist/react/client/RemoteThreadList.js +2 -1
- package/dist/react/client/RemoteThreadList.js.map +1 -1
- package/dist/react/client/Tools.d.ts +9 -11
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +4 -8
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/client/interactable-model-context.d.ts +9 -10
- package/dist/react/client/interactable-model-context.d.ts.map +1 -1
- package/dist/react/client/interactable-model-context.js +32 -22
- package/dist/react/client/interactable-model-context.js.map +1 -1
- package/dist/react/index.d.ts +160 -122
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +5 -5
- package/dist/react/interactables-legacy/Interactables.d.ts +1 -3
- package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
- package/dist/react/interactables-legacy/Interactables.js +15 -8
- package/dist/react/interactables-legacy/Interactables.js.map +1 -1
- package/dist/react/interactables-legacy/interactable-model-context.d.ts +6 -8
- package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
- package/dist/react/interactables-legacy/interactable-model-context.js +13 -14
- package/dist/react/interactables-legacy/interactable-model-context.js.map +1 -1
- package/dist/react/interactables-legacy/scopes.d.ts +33 -36
- package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +6 -8
- package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
- package/dist/react/interactables-legacy/useInteractableState.d.ts +6 -7
- package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts +23 -13
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +54 -25
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
- package/dist/react/model-context/define-mcp-toolkit.d.ts +11 -13
- package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
- package/dist/react/model-context/define-toolkit.d.ts +12 -4
- package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
- package/dist/react/model-context/external-tool.d.ts +0 -2
- package/dist/react/model-context/external-tool.d.ts.map +1 -1
- package/dist/react/model-context/human-tool.d.ts +0 -2
- package/dist/react/model-context/human-tool.d.ts.map +1 -1
- package/dist/react/model-context/interactableTool.d.ts +23 -25
- package/dist/react/model-context/interactableTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantDataUI.d.ts +4 -6
- package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +4 -6
- package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts +4 -6
- package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/provider-tool.d.ts +3 -4
- package/dist/react/model-context/provider-tool.d.ts.map +1 -1
- package/dist/react/model-context/stub-tool.d.ts +0 -2
- package/dist/react/model-context/stub-tool.d.ts.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +37 -24
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantContext.d.ts +2 -5
- package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.d.ts +5 -7
- package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantInstructions.d.ts +2 -5
- package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantTool.d.ts +8 -11
- package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.d.ts +11 -13
- package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/useAuiToolOverrides.d.ts +2 -3
- package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.d.ts +2 -4
- package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/react/model-context/useInteractable.d.ts +37 -36
- package/dist/react/model-context/useInteractable.d.ts.map +1 -1
- package/dist/react/model-context/useInteractableState.d.ts +10 -8
- package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
- package/dist/react/model-context/useInteractableVersions.d.ts +3 -5
- package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts +5 -6
- package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts +6 -8
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts +2 -4
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts +4 -6
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.d.ts +2 -4
- package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts +2 -4
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts +2 -4
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts +2 -4
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts +2 -4
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +3 -5
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.d.ts +2 -4
- package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerDictate.d.ts +2 -4
- package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.d.ts +3 -5
- package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts +1 -3
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts +2 -4
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageBranching.d.ts +4 -6
- package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.d.ts +0 -2
- package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageReload.d.ts +2 -4
- package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +6 -8
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.js +4 -4
- package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +0 -2
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +0 -2
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts +1 -3
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts +1 -3
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts +1 -3
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts +1 -3
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts +2 -4
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListNew.d.ts +1 -3
- package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessageIds.d.ts +0 -2
- package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessages.d.ts +1 -3
- package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useVoice.d.ts +5 -7
- package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +25 -26
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts +22 -23
- package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerIf.d.ts +10 -9
- package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.d.ts +11 -14
- package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +26 -28
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
- package/dist/react/primitives/generativeUI/GenerativeUI.js +16 -6
- package/dist/react/primitives/generativeUI/GenerativeUI.js.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.d.ts +26 -23
- package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.js +14 -15
- package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.d.ts +120 -117
- package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js +3 -3
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +199 -185
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +124 -82
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/primitives/message/MessageQuote.d.ts +6 -8
- package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +2 -4
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
- package/dist/react/primitives/part/PartMessages.d.ts +13 -15
- package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts +54 -56
- package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts +20 -21
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.js +24 -5
- package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts +22 -23
- package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +4 -6
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts +3 -5
- package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +3 -5
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +2 -4
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIdProvider.d.ts +2 -4
- package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts +2 -4
- package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts +2 -4
- package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts +2 -4
- package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.d.ts +5 -7
- package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts +2 -4
- package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts +3 -5
- package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.js +5 -1
- package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +3 -5
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +3 -6
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +209 -219
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +53 -39
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +185 -196
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +13 -4
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadResource.d.ts +14 -19
- package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadResource.js +3 -1
- package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +8 -9
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +9 -11
- package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +4 -5
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +9 -2
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -1
- package/dist/react/runtimes/assistant-transport/runManager.d.ts +7 -9
- package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/runManager.js +4 -1
- package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -1
- package/dist/react/runtimes/assistant-transport/types.d.ts +106 -100
- package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +3 -5
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +17 -6
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
- package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +2 -4
- package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -1
- package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +1 -3
- package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -7
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +410 -213
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +14 -16
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +8 -4
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +136 -123
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +60 -9
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts +9 -10
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts +4 -5
- package/dist/react/runtimes/cloud/createCloudThreadListAdapterCreateFallback.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/sdkIdentity.d.ts +1 -3
- package/dist/react/runtimes/cloud/sdkIdentity.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/sdkIdentity.js +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +2 -4
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +8 -9
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/createMessageConverter.d.ts +14 -17
- package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
- package/dist/react/runtimes/createMessageConverter.js.map +1 -1
- package/dist/react/runtimes/createRuntimeExtras.d.ts +11 -13
- package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
- package/dist/react/runtimes/external-message-converter.d.ts +14 -18
- package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
- package/dist/react/runtimes/external-store-history-copy.d.ts +25 -0
- package/dist/react/runtimes/external-store-history-copy.d.ts.map +1 -0
- package/dist/react/runtimes/external-store-history-copy.js +148 -0
- package/dist/react/runtimes/external-store-history-copy.js.map +1 -0
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts +2 -4
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.js +72 -35
- package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +1 -3
- package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts +26 -37
- package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.js +142 -34
- package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +2 -4
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useRuntimeAdapters.d.ts +1 -3
- package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -1
- package/dist/react/runtimes/useStreamingTiming.d.ts +3 -5
- package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +46 -43
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/react/types/scopes/dataRenderers.d.ts +8 -11
- package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
- package/dist/react/types/scopes/interactables.d.ts +50 -49
- package/dist/react/types/scopes/interactables.d.ts.map +1 -1
- package/dist/react/types/scopes/tools.d.ts +17 -19
- package/dist/react/types/scopes/tools.d.ts.map +1 -1
- package/dist/react/types/store-augmentation.d.ts +10 -11
- package/dist/react/types/store-augmentation.d.ts.map +1 -1
- package/dist/react/utils/getMessageQuote.d.ts +5 -6
- package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
- package/dist/react/utils/groupParts.d.ts +28 -29
- package/dist/react/utils/groupParts.d.ts.map +1 -1
- package/dist/react/utils/useJSONEqual.d.ts +1 -3
- package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
- package/dist/react/utils/useJSONSchemaDependency.d.ts +2 -4
- package/dist/react/utils/useJSONSchemaDependency.d.ts.map +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts +26 -28
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts +46 -43
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.js.map +1 -1
- package/dist/runtime/api/bindings.d.ts +31 -30
- package/dist/runtime/api/bindings.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.d.ts +207 -193
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.js +4 -0
- package/dist/runtime/api/composer-runtime.js.map +1 -1
- package/dist/runtime/api/message-part-runtime.d.ts +28 -26
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.js +22 -0
- package/dist/runtime/api/message-part-runtime.js.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts +87 -84
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.js +1 -1
- package/dist/runtime/api/message-runtime.js.map +1 -1
- package/dist/runtime/api/paths.d.ts +48 -50
- package/dist/runtime/api/paths.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.d.ts +64 -66
- package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +73 -76
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +299 -300
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +2 -1
- package/dist/runtime/api/thread-runtime.js.map +1 -1
- package/dist/runtime/base/base-assistant-runtime-core.d.ts +8 -10
- package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts +149 -99
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +400 -122
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +120 -108
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +109 -41
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +29 -29
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js +10 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +27 -29
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js +21 -6
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
- package/dist/runtime/branch/external-thread-branch-adapter.d.ts +14 -16
- package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts +7 -9
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/composer-runtime-core.d.ts +88 -72
- package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +63 -65
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +210 -197
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts +25 -20
- package/dist/runtime/internal.d.ts.map +1 -0
- package/dist/runtime/queue/external-thread-queue-adapter.d.ts +35 -37
- package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.d.ts +29 -31
- package/dist/runtime/queue/message-queue.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.js +1 -1
- package/dist/runtime/queue/queue-item.d.ts +5 -7
- package/dist/runtime/queue/queue-item.d.ts.map +1 -1
- package/dist/runtime/utils/abortable-thread-load.d.ts +7 -8
- package/dist/runtime/utils/abortable-thread-load.d.ts.map +1 -1
- package/dist/runtime/utils/attachment-add-operations.d.ts +13 -11
- package/dist/runtime/utils/attachment-add-operations.d.ts.map +1 -1
- package/dist/runtime/utils/attachment-add-operations.js +24 -2
- package/dist/runtime/utils/attachment-add-operations.js.map +1 -1
- package/dist/runtime/utils/attachment-send-operations.d.ts +12 -0
- package/dist/runtime/utils/attachment-send-operations.d.ts.map +1 -0
- package/dist/runtime/utils/attachment-send-operations.js +34 -0
- package/dist/runtime/utils/attachment-send-operations.js.map +1 -0
- package/dist/runtime/utils/auto-status.d.ts +4 -5
- package/dist/runtime/utils/auto-status.d.ts.map +1 -1
- package/dist/runtime/utils/auto-status.js +3 -5
- package/dist/runtime/utils/auto-status.js.map +1 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts +26 -27
- package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
- package/dist/runtime/utils/external-message-conversion.d.ts +32 -32
- package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
- package/dist/runtime/utils/external-message-conversion.js +3 -3
- package/dist/runtime/utils/external-message-conversion.js.map +1 -1
- package/dist/runtime/utils/external-store-message.d.ts +2 -4
- package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository-session.d.ts +21 -23
- package/dist/runtime/utils/message-repository-session.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts +50 -51
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +8 -7
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtime/utils/pending-tool-calls.d.ts +10 -11
- package/dist/runtime/utils/pending-tool-calls.d.ts.map +1 -1
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +6 -8
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
- package/dist/runtime/utils/runtime-extras-brand.d.ts +4 -6
- package/dist/runtime/utils/runtime-extras-brand.d.ts.map +1 -1
- package/dist/runtime/utils/stored-message-parts.d.ts +5 -5
- package/dist/runtime/utils/stored-message-parts.d.ts.map +1 -1
- package/dist/runtime/utils/stored-message-parts.js +22 -2
- package/dist/runtime/utils/stored-message-parts.js.map +1 -1
- package/dist/runtime/utils/streaming-timing.d.ts +19 -21
- package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts +36 -32
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.js +16 -6
- package/dist/runtime/utils/thread-message-like.js.map +1 -1
- package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +4 -5
- package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -1
- package/dist/runtime/utils/thread-runtime-lifecycle.js +31 -4
- package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -1
- package/dist/runtime/utils/tool-call-tree.d.ts +6 -8
- package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -1
- package/dist/runtime/utils/tool-interactions.d.ts +10 -0
- package/dist/runtime/utils/tool-interactions.d.ts.map +1 -0
- package/dist/runtime/utils/tool-interactions.js +92 -0
- package/dist/runtime/utils/tool-interactions.js.map +1 -0
- package/dist/runtimes/assistant-transport/utils.d.ts +0 -2
- package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-adapter.d.ts +215 -198
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts +5 -6
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-runtime-core.js +4 -1
- package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/external-store-shared-options.d.ts +1 -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 +38 -40
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +2 -2
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +117 -124
- 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 +44 -14
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/thread-message-converter.d.ts +3 -5
- package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +94 -95
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.js +3 -0
- package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/internal.d.ts +20 -16
- package/dist/runtimes/internal.d.ts.map +1 -0
- package/dist/runtimes/local/local-runtime-core.d.ts +6 -8
- package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-runtime-options.d.ts +40 -42
- package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +40 -42
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +93 -97
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +178 -31
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/local/should-continue.d.ts +1 -3
- package/dist/runtimes/local/should-continue.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +76 -53
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +28 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +11 -13
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +2 -4
- 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 -3
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +33 -29
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.js +8 -3
- package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +44 -46
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.js +1 -1
- package/dist/runtimes/remote-thread-list/title-generation.d.ts +25 -26
- package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/title.d.ts +3 -5
- package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/types.d.ts +111 -112
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +144 -145
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +22 -7
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
- package/dist/store/clients/chain-of-thought-client.d.ts +7 -9
- package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
- package/dist/store/clients/external-thread.d.ts +53 -54
- package/dist/store/clients/external-thread.d.ts.map +1 -1
- package/dist/store/clients/external-thread.js +1256 -731
- package/dist/store/clients/external-thread.js.map +1 -1
- package/dist/store/clients/model-context-client.d.ts +1 -3
- package/dist/store/clients/model-context-client.d.ts.map +1 -1
- package/dist/store/clients/no-op-composer-client.d.ts +2 -4
- package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
- package/dist/store/clients/no-op-composer-client.js +3 -1
- package/dist/store/clients/no-op-composer-client.js.map +1 -1
- package/dist/store/clients/runtime-adapter.d.ts +1 -3
- package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
- package/dist/store/clients/single-thread-list.d.ts +3 -4
- package/dist/store/clients/single-thread-list.d.ts.map +1 -1
- package/dist/store/clients/submission-message.d.ts +8 -0
- package/dist/store/clients/submission-message.d.ts.map +1 -0
- package/dist/store/clients/submission-message.js +22 -0
- package/dist/store/clients/submission-message.js.map +1 -0
- package/dist/store/clients/suggestions.d.ts +5 -7
- package/dist/store/clients/suggestions.d.ts.map +1 -1
- package/dist/store/clients/thread-message-client.d.ts +10 -9
- package/dist/store/clients/thread-message-client.d.ts.map +1 -1
- package/dist/store/clients/thread-message-client.js +81 -82
- package/dist/store/clients/thread-message-client.js.map +1 -1
- package/dist/store/clients/thread-selection-events.d.ts +0 -2
- package/dist/store/clients/thread-selection-events.d.ts.map +1 -1
- package/dist/store/clients/thread-tasks.d.ts +4 -6
- package/dist/store/clients/thread-tasks.d.ts.map +1 -1
- package/dist/store/env.d.ts +0 -2
- package/dist/store/env.d.ts.map +1 -1
- package/dist/store/index.d.ts +33 -36
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +5 -5
- package/dist/store/internal.d.ts +12 -12
- package/dist/store/internal.d.ts.map +1 -0
- package/dist/store/internal.js +2 -2
- package/dist/store/primitive-predicates.d.ts +3 -4
- package/dist/store/primitive-predicates.d.ts.map +1 -1
- package/dist/store/primitive-predicates.js +9 -4
- package/dist/store/primitive-predicates.js.map +1 -1
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts +3 -5
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +10 -12
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.js +65 -62
- package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/handle-runtime-action.d.ts +0 -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 +0 -2
- package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -1
- package/dist/store/runtime-clients/liveRef.d.ts +1 -3
- package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts +3 -5
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.js +26 -16
- package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts +9 -9
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.js +121 -113
- package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +4 -6
- 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 +5 -7
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts +3 -5
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.js +221 -158
- package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/useSubscribable.d.ts +2 -4
- package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
- package/dist/store/scope-registration.d.ts +28 -29
- package/dist/store/scope-registration.d.ts.map +1 -1
- package/dist/store/scopes/attachment.d.ts +15 -17
- package/dist/store/scopes/attachment.d.ts.map +1 -1
- package/dist/store/scopes/chain-of-thought.d.ts +28 -29
- package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
- package/dist/store/scopes/composer.d.ts +141 -128
- package/dist/store/scopes/composer.d.ts.map +1 -1
- package/dist/store/scopes/message.d.ts +114 -107
- package/dist/store/scopes/message.d.ts.map +1 -1
- package/dist/store/scopes/model-context.d.ts +7 -9
- package/dist/store/scopes/model-context.d.ts.map +1 -1
- package/dist/store/scopes/part.d.ts +49 -45
- package/dist/store/scopes/part.d.ts.map +1 -1
- package/dist/store/scopes/queue-item.d.ts +18 -20
- package/dist/store/scopes/queue-item.d.ts.map +1 -1
- package/dist/store/scopes/suggestion.d.ts +10 -12
- package/dist/store/scopes/suggestion.d.ts.map +1 -1
- package/dist/store/scopes/suggestions.d.ts +13 -15
- package/dist/store/scopes/suggestions.d.ts.map +1 -1
- package/dist/store/scopes/task.d.ts +23 -25
- package/dist/store/scopes/task.d.ts.map +1 -1
- package/dist/store/scopes/thread-list-item.d.ts +63 -65
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/thread.d.ts +192 -194
- package/dist/store/scopes/thread.d.ts.map +1 -1
- package/dist/store/scopes/threads.d.ts +45 -47
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/subscribable/subscribable.d.ts +58 -53
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +35 -7
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/types/attachment.d.ts +26 -27
- package/dist/types/attachment.d.ts.map +1 -1
- package/dist/types/augmentations.d.ts +4 -4
- package/dist/types/augmentations.d.ts.map +1 -1
- package/dist/types/directive.d.ts +11 -13
- package/dist/types/directive.d.ts.map +1 -1
- package/dist/types/error.d.ts +7 -8
- package/dist/types/error.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/message.d.ts +322 -284
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/types/quote.d.ts +2 -4
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/types/trigger.d.ts +8 -10
- package/dist/types/trigger.d.ts.map +1 -1
- package/dist/types/unsubscribe.d.ts +0 -2
- package/dist/types/unsubscribe.d.ts.map +1 -1
- package/dist/utils/abortable-iterable.d.ts +0 -2
- package/dist/utils/abortable-iterable.d.ts.map +1 -1
- package/dist/utils/composite-context-provider.d.ts +8 -11
- package/dist/utils/composite-context-provider.d.ts.map +1 -1
- package/dist/utils/data-url.d.ts +10 -12
- package/dist/utils/data-url.d.ts.map +1 -1
- package/dist/utils/getGroupStatus.d.ts +17 -18
- package/dist/utils/getGroupStatus.d.ts.map +1 -1
- package/dist/utils/id.d.ts +0 -2
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/image-media-type.d.ts +0 -2
- package/dist/utils/image-media-type.d.ts.map +1 -1
- package/dist/utils/invoke-user-callback.d.ts +0 -2
- package/dist/utils/invoke-user-callback.d.ts.map +1 -1
- package/dist/utils/json/is-json-equal.d.ts +0 -2
- package/dist/utils/json/is-json-equal.d.ts.map +1 -1
- package/dist/utils/json/is-json.d.ts +1 -3
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/stable-stringify-tool-args.d.ts +1 -3
- package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -1
- package/dist/utils/normalizePartStatus.d.ts +2 -3
- package/dist/utils/normalizePartStatus.d.ts.map +1 -1
- package/dist/utils/normalizePartStatus.js +3 -2
- package/dist/utils/normalizePartStatus.js.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 +0 -2
- package/dist/utils/record.d.ts.map +1 -1
- package/dist/utils/silent-runtime-action.d.ts +0 -2
- package/dist/utils/silent-runtime-action.d.ts.map +1 -1
- package/dist/utils/text.d.ts +1 -3
- package/dist/utils/text.d.ts.map +1 -1
- package/dist/utils/wire-media.d.ts +0 -2
- package/dist/utils/wire-media.d.ts.map +1 -1
- package/package.json +11 -10
- package/src/adapters/attachment.test.ts +98 -1
- package/src/adapters/attachment.ts +70 -20
- package/src/adapters/speech.test.ts +94 -0
- package/src/adapters/speech.ts +16 -2
- package/src/adapters/thread-history.ts +16 -5
- package/src/adapters/voice.test.ts +169 -0
- package/src/adapters/voice.ts +25 -4
- package/src/index.ts +14 -2
- package/src/internal.ts +7 -0
- package/src/model-context/frame/host.test.ts +51 -1
- package/src/model-context/frame/host.ts +3 -1
- package/src/model-context/frame/provider.test.ts +61 -0
- package/src/model-context/frame/provider.ts +8 -1
- package/src/model-context/frame/validate.ts +57 -0
- package/src/model-context/interactable-composer-metadata.test.ts +82 -0
- package/src/model-context/interactable-composer-metadata.ts +45 -2
- package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +594 -0
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +98 -35
- package/src/react/client/Interactables.test.ts +853 -1
- package/src/react/client/Interactables.ts +325 -45
- package/src/react/client/RemoteThreadList.initialize-failure.test.ts +124 -0
- package/src/react/client/RemoteThreadList.ts +6 -0
- package/src/react/client/Tools.ts +2 -3
- package/src/react/client/interactable-model-context.test.ts +56 -13
- package/src/react/client/interactable-model-context.ts +48 -23
- package/src/react/index.ts +2 -2
- package/src/react/interactables-legacy/Interactables.test.ts +212 -1
- package/src/react/interactables-legacy/Interactables.ts +25 -14
- package/src/react/interactables-legacy/interactable-model-context.ts +26 -24
- package/src/react/interactables-shared/useInteractablePersistenceQueue.test.tsx +22 -2
- package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +63 -11
- package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +33 -0
- package/src/react/primitive-hooks/useSuggestionTrigger.ts +7 -4
- package/src/react/primitives/generativeUI/GenerativeUI.test.tsx +124 -8
- package/src/react/primitives/generativeUI/GenerativeUI.tsx +35 -15
- package/src/react/primitives/message/MessageAttachments.test.tsx +2 -6
- package/src/react/primitives/message/MessageAttachments.tsx +14 -8
- package/src/react/primitives/message/MessageGroupedParts.test.tsx +151 -7
- package/src/react/primitives/message/MessageGroupedParts.tsx +19 -6
- package/src/react/primitives/message/MessageParts.test.tsx +84 -0
- package/src/react/primitives/message/MessageParts.tool-interaction.test.tsx +69 -0
- package/src/react/primitives/message/MessageParts.tsx +29 -8
- package/src/react/primitives/thread/ThreadSuggestions.test.tsx +97 -0
- package/src/react/primitives/thread/ThreadSuggestions.tsx +29 -6
- package/src/react/providers/ReadonlyThreadProvider.tsx +2 -2
- package/src/react/providers/TextMessagePartProvider.tsx +3 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +93 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +160 -3
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +38 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +73 -53
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +19 -3
- package/src/react/runtimes/RemoteThreadResource.ts +5 -2
- package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +3 -1
- package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +10 -2
- package/src/react/runtimes/assistant-transport/runManager.ts +3 -0
- package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +57 -0
- package/src/react/runtimes/assistant-transport/transport-thread-id.test.tsx +571 -0
- package/src/react/runtimes/assistant-transport/types.ts +9 -1
- package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +10 -0
- package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +42 -0
- package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +33 -9
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.integration.test.tsx +289 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.copy.test.tsx +471 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.engagement.test.tsx +330 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +78 -2
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +361 -2
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +571 -216
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +25 -0
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +7 -3
- package/src/react/runtimes/cloud/auiV0.ts +158 -9
- package/src/react/runtimes/cloud/auiV0DecodeSafely.test.ts +352 -1
- package/src/react/runtimes/createMessageConverter.ts +9 -3
- package/src/react/runtimes/external-store-history-copy.ts +223 -0
- package/src/react/runtimes/useExternalStoreRuntime.history-copy.test.tsx +483 -0
- package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +76 -1
- package/src/react/runtimes/useExternalStoreRuntime.ts +25 -5
- package/src/react/runtimes/useLocalRuntime.test.tsx +145 -1
- package/src/react/runtimes/useLocalRuntime.ts +8 -5
- package/src/react/types/MessagePartComponentTypes.ts +10 -0
- package/src/react/types/scopes/interactables.ts +3 -0
- package/src/runtime/api/attachment-runtime.ts +10 -5
- package/src/runtime/api/bindings.ts +6 -1
- package/src/runtime/api/composer-runtime.ts +29 -6
- package/src/runtime/api/message-part-runtime.test.ts +215 -0
- package/src/runtime/api/message-part-runtime.ts +40 -0
- package/src/runtime/api/message-runtime.test.ts +112 -2
- package/src/runtime/api/message-runtime.ts +10 -5
- package/src/runtime/api/thread-list-item-runtime.ts +5 -5
- package/src/runtime/api/thread-list-runtime.ts +3 -3
- package/src/runtime/api/thread-runtime.test.ts +59 -0
- package/src/runtime/api/thread-runtime.ts +21 -11
- package/src/runtime/base/base-composer-runtime-core.ts +548 -153
- package/src/runtime/base/base-thread-runtime-core.test.ts +744 -9
- package/src/runtime/base/base-thread-runtime-core.ts +154 -27
- package/src/runtime/base/default-edit-composer-runtime-core.ts +13 -1
- package/src/runtime/base/default-thread-composer-runtime-core.ts +29 -10
- package/src/runtime/interfaces/composer-runtime-core.ts +19 -0
- package/src/runtime/interfaces/thread-runtime-core.ts +22 -1
- package/src/runtime/utils/attachment-add-operations.ts +45 -2
- package/src/runtime/utils/attachment-send-operations.ts +54 -0
- package/src/runtime/utils/auto-status.test.ts +54 -0
- package/src/runtime/utils/auto-status.ts +3 -10
- package/src/runtime/utils/external-message-conversion.test.ts +48 -0
- package/src/runtime/utils/external-message-conversion.ts +3 -4
- package/src/runtime/utils/message-repository.test.ts +69 -1
- package/src/runtime/utils/message-repository.ts +14 -7
- package/src/runtime/utils/stored-message-parts.ts +43 -1
- package/src/runtime/utils/thread-message-like.test.ts +58 -0
- package/src/runtime/utils/thread-message-like.ts +72 -46
- package/src/runtime/utils/thread-runtime-lifecycle.test.ts +67 -0
- package/src/runtime/utils/thread-runtime-lifecycle.ts +42 -8
- package/src/runtime/utils/tool-interactions.test.ts +193 -0
- package/src/runtime/utils/tool-interactions.ts +147 -0
- package/src/runtimes/external-store/external-store-adapter.ts +22 -1
- package/src/runtimes/external-store/external-store-runtime-core.ts +10 -2
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +2 -2
- package/src/runtimes/external-store/external-store-thread-runtime-core.test.ts +49 -0
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +76 -29
- package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +127 -56
- package/src/runtimes/inert/InertThreadRuntimeCore.ts +10 -1
- package/src/runtimes/local/local-thread-runtime-core.edit-cancellation.test.ts +70 -0
- package/src/runtimes/local/local-thread-runtime-core.test.ts +1649 -108
- package/src/runtimes/local/local-thread-runtime-core.ts +301 -47
- package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +53 -1
- package/src/runtimes/remote-thread-list/optimistic-state.ts +8 -3
- package/src/runtimes/tool-invocations/EDGE_CASES.md +19 -4
- package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +392 -39
- package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +31 -8
- package/src/store/clients/external-thread.test.ts +145 -0
- package/src/store/clients/external-thread.ts +635 -131
- package/src/store/clients/model-context-client.test.ts +8 -8
- package/src/store/clients/no-op-composer-client.ts +2 -0
- package/src/store/clients/submission-message.ts +27 -0
- package/src/store/clients/thread-message-client.test.ts +39 -0
- package/src/store/clients/thread-message-client.ts +13 -6
- package/src/store/index.ts +2 -2
- package/src/store/internal.ts +1 -0
- package/src/store/primitive-predicates.test.ts +103 -0
- package/src/store/primitive-predicates.ts +15 -3
- package/src/store/runtime-clients/composer-runtime-client.ts +4 -3
- package/src/store/runtime-clients/message-part-runtime-client.test.ts +42 -0
- package/src/store/runtime-clients/message-part-runtime-client.ts +4 -0
- package/src/store/runtime-clients/message-runtime-client.ts +5 -0
- package/src/store/runtime-clients/thread-runtime-client.test.tsx +138 -5
- package/src/store/runtime-clients/thread-runtime-client.ts +46 -9
- package/src/store/scopes/composer.ts +22 -4
- package/src/store/scopes/message.ts +8 -0
- package/src/store/scopes/part.ts +8 -0
- package/src/subscribable/subscribable.test.ts +198 -1
- package/src/subscribable/subscribable.ts +49 -7
- package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +95 -1
- package/src/tests/auiV0Encode.test.ts +408 -1
- package/src/tests/base-composer-runtime-core-send.test.ts +722 -29
- package/src/tests/base-composer-runtime-core.test.ts +196 -0
- package/src/tests/composer-can-send.test.ts +98 -1
- package/src/tests/composer-submission.test.tsx +796 -0
- package/src/tests/default-edit-composer-runtime-core.test.ts +102 -2
- package/src/tests/external-store-thread-list-runtime-core.test.ts +111 -0
- package/src/tests/external-store-thread-runtime-core-adapter.test.ts +581 -1
- package/src/tests/external-store-thread-runtime-core.test.ts +186 -0
- package/src/tests/external-thread-attachments.test.tsx +741 -3
- package/src/tests/external-thread-isLast.test.tsx +69 -0
- package/src/tests/get-thread-state-isRunning.test.ts +2 -2
- package/src/tests/remote-thread-list-adapter-switch.test.ts +45 -1
- package/src/types/message.ts +49 -2
- package/src/utils/normalizePartStatus.ts +14 -1
- package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -15
- package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
- package/dist/tests/remote-thread-list-test-helpers.js +0 -59
- package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
|
@@ -1,148 +1,161 @@
|
|
|
1
|
-
import { MessageStatus,
|
|
2
|
-
import { CompleteAttachment } from "../../../types/attachment.js";
|
|
3
|
-
import {
|
|
4
|
-
import { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
import type { MessageStatus, PartProviderMetadata, SourceProviderMetadata, ThreadMessage, ToolCallMessagePartMcpMetadata, ToolCallTiming, ToolApprovalDisplay, ToolApprovalOption, ReasoningMessagePart, TextMessagePart, ImageMessagePart, FileMessagePart, Unstable_ToolInteractionLog } from "../../../types/message.js";
|
|
2
|
+
import type { CompleteAttachment } from "../../../types/attachment.js";
|
|
3
|
+
import type { CloudMessage } from "assistant-cloud";
|
|
4
|
+
import type { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
|
|
5
|
+
import type { ToolModelContentPart } from "assistant-stream";
|
|
6
|
+
import type { ExportedMessageRepositoryItem } from "../../../runtime/utils/message-repository.js";
|
|
7
7
|
type AuiV0ToolApproval = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly prompt?: string;
|
|
10
|
+
readonly display?: ToolApprovalDisplay;
|
|
11
|
+
readonly allowFreeform?: boolean;
|
|
12
|
+
readonly dismissible?: boolean;
|
|
13
|
+
readonly approved?: boolean;
|
|
14
|
+
readonly reason?: string;
|
|
15
|
+
readonly isAutomatic?: boolean;
|
|
16
|
+
readonly options?: readonly ToolApprovalOption[];
|
|
17
|
+
readonly optionId?: string;
|
|
18
|
+
readonly text?: string;
|
|
19
|
+
readonly resolution?: "cancelled" | "expired";
|
|
19
20
|
};
|
|
20
21
|
type AuiV0MessagePart = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
readonly type: "text";
|
|
23
|
+
readonly text: string;
|
|
24
|
+
readonly providerMetadata?: NonNullable<TextMessagePart["providerMetadata"]>;
|
|
25
|
+
readonly parentId?: string;
|
|
24
26
|
} | {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
readonly type: "reasoning";
|
|
28
|
+
readonly text: string;
|
|
29
|
+
readonly unstable_summary?: string;
|
|
30
|
+
readonly providerMetadata?: NonNullable<ReasoningMessagePart["providerMetadata"]>;
|
|
31
|
+
readonly parentId?: string;
|
|
30
32
|
} | {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
readonly type: "source";
|
|
34
|
+
readonly sourceType: "url";
|
|
35
|
+
readonly id: string;
|
|
36
|
+
readonly url: string;
|
|
37
|
+
readonly title?: string;
|
|
38
|
+
readonly providerMetadata?: SourceProviderMetadata;
|
|
39
|
+
readonly parentId?: string;
|
|
38
40
|
} | {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
readonly type: "source";
|
|
42
|
+
readonly sourceType: "document";
|
|
43
|
+
readonly id: string;
|
|
44
|
+
readonly title: string;
|
|
45
|
+
readonly mediaType: string;
|
|
46
|
+
readonly filename?: string;
|
|
47
|
+
readonly providerMetadata?: SourceProviderMetadata;
|
|
48
|
+
readonly parentId?: string;
|
|
47
49
|
} | (AuiV0ToolCallPart & ({
|
|
48
|
-
|
|
50
|
+
readonly args: ReadonlyJSONObject;
|
|
49
51
|
} | {
|
|
50
|
-
|
|
52
|
+
readonly argsText: string;
|
|
51
53
|
})) | {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
readonly type: "image";
|
|
55
|
+
readonly image: string;
|
|
56
|
+
readonly filename?: string;
|
|
57
|
+
readonly providerMetadata?: NonNullable<ImageMessagePart["providerMetadata"]>;
|
|
54
58
|
} | {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
readonly type: "file";
|
|
60
|
+
readonly data: string;
|
|
61
|
+
readonly mimeType: string;
|
|
62
|
+
readonly filename?: string;
|
|
63
|
+
readonly sourceType?: "url" | "id";
|
|
64
|
+
readonly providerMetadata?: NonNullable<FileMessagePart["providerMetadata"]>;
|
|
65
|
+
readonly parentId?: string;
|
|
61
66
|
} | {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
readonly type: "data";
|
|
68
|
+
readonly name: string;
|
|
69
|
+
readonly data: ReadonlyJSONValue;
|
|
65
70
|
} | {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
readonly type: "audio";
|
|
72
|
+
readonly audio: {
|
|
73
|
+
readonly data: string;
|
|
74
|
+
readonly format: "mp3" | "wav";
|
|
75
|
+
};
|
|
71
76
|
} | {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
readonly type: "generative-ui";
|
|
78
|
+
readonly spec: ReadonlyJSONObject;
|
|
79
|
+
readonly id?: string;
|
|
80
|
+
readonly parentId?: string;
|
|
76
81
|
};
|
|
77
82
|
type AuiV0ToolCallPart = {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
readonly
|
|
85
|
-
readonly
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
83
|
+
readonly type: "tool-call";
|
|
84
|
+
readonly toolCallId: string;
|
|
85
|
+
readonly toolName: string;
|
|
86
|
+
readonly result?: ReadonlyJSONValue;
|
|
87
|
+
readonly artifact?: ReadonlyJSONValue;
|
|
88
|
+
readonly modelContent?: readonly ToolModelContentPart[];
|
|
89
|
+
readonly providerMetadata?: PartProviderMetadata;
|
|
90
|
+
readonly isPreliminary?: true;
|
|
91
|
+
readonly isError?: true;
|
|
92
|
+
readonly interrupt?: {
|
|
93
|
+
readonly type: "human";
|
|
94
|
+
readonly payload: ReadonlyJSONValue;
|
|
95
|
+
};
|
|
96
|
+
readonly timing?: ToolCallTiming;
|
|
97
|
+
readonly mcp?: ToolCallMessagePartMcpMetadata;
|
|
98
|
+
readonly approval?: AuiV0ToolApproval;
|
|
99
|
+
readonly parentId?: string;
|
|
100
|
+
readonly messages?: readonly AuiV0Message[];
|
|
101
|
+
readonly unstable_interactions?: Unstable_ToolInteractionLog;
|
|
92
102
|
};
|
|
93
103
|
type AuiV0AttachmentPart = {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
104
|
+
readonly type: "text";
|
|
105
|
+
readonly text: string;
|
|
106
|
+
readonly providerMetadata?: NonNullable<TextMessagePart["providerMetadata"]>;
|
|
107
|
+
readonly parentId?: string;
|
|
97
108
|
} | {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
109
|
+
readonly type: "image";
|
|
110
|
+
readonly image: string;
|
|
111
|
+
readonly filename?: string;
|
|
112
|
+
readonly providerMetadata?: NonNullable<ImageMessagePart["providerMetadata"]>;
|
|
101
113
|
} | {
|
|
102
|
-
|
|
103
|
-
readonly data: string;
|
|
104
|
-
readonly mimeType: string;
|
|
105
|
-
readonly filename?: string;
|
|
106
|
-
readonly sourceType?: "url" | "id";
|
|
107
|
-
readonly parentId?: string;
|
|
108
|
-
} | {
|
|
109
|
-
readonly type: "audio";
|
|
110
|
-
readonly audio: {
|
|
114
|
+
readonly type: "file";
|
|
111
115
|
readonly data: string;
|
|
112
|
-
readonly
|
|
113
|
-
|
|
116
|
+
readonly mimeType: string;
|
|
117
|
+
readonly filename?: string;
|
|
118
|
+
readonly sourceType?: "url" | "id";
|
|
119
|
+
readonly providerMetadata?: NonNullable<FileMessagePart["providerMetadata"]>;
|
|
120
|
+
readonly parentId?: string;
|
|
121
|
+
} | {
|
|
122
|
+
readonly type: "audio";
|
|
123
|
+
readonly audio: {
|
|
124
|
+
readonly data: string;
|
|
125
|
+
readonly format: "mp3" | "wav";
|
|
126
|
+
};
|
|
114
127
|
} | {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
128
|
+
readonly type: "data";
|
|
129
|
+
readonly name: string;
|
|
130
|
+
readonly data: ReadonlyJSONValue;
|
|
118
131
|
};
|
|
119
132
|
type AuiV0Attachment = {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
133
|
+
readonly id: string;
|
|
134
|
+
readonly type: CompleteAttachment["type"];
|
|
135
|
+
readonly name: string;
|
|
136
|
+
readonly contentType?: string;
|
|
137
|
+
readonly status: CompleteAttachment["status"];
|
|
138
|
+
readonly content: readonly AuiV0AttachmentPart[];
|
|
126
139
|
};
|
|
127
140
|
type AuiV0Message = {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
141
|
+
readonly id?: string;
|
|
142
|
+
readonly createdAt?: string;
|
|
143
|
+
readonly role: "assistant" | "user" | "system";
|
|
144
|
+
readonly status?: MessageStatus;
|
|
145
|
+
readonly content: readonly AuiV0MessagePart[];
|
|
146
|
+
readonly attachments?: readonly AuiV0Attachment[];
|
|
147
|
+
readonly metadata: {
|
|
148
|
+
readonly unstable_state?: ReadonlyJSONValue;
|
|
149
|
+
readonly unstable_annotations: readonly ReadonlyJSONValue[];
|
|
150
|
+
readonly unstable_data: readonly ReadonlyJSONValue[];
|
|
151
|
+
readonly steps: readonly {
|
|
152
|
+
readonly usage?: {
|
|
153
|
+
readonly inputTokens: number;
|
|
154
|
+
readonly outputTokens: number;
|
|
155
|
+
};
|
|
156
|
+
}[];
|
|
157
|
+
readonly custom: ReadonlyJSONObject;
|
|
158
|
+
};
|
|
146
159
|
};
|
|
147
160
|
export declare function auiV0Encode(message: ThreadMessage): AuiV0Message;
|
|
148
161
|
/**
|
|
@@ -152,10 +165,10 @@ export declare function auiV0Encode(message: ThreadMessage): AuiV0Message;
|
|
|
152
165
|
* single stored row is malformed.
|
|
153
166
|
*/
|
|
154
167
|
export declare function auiV0DecodeSafely(cloudMessage: CloudMessage & {
|
|
155
|
-
|
|
168
|
+
format: "aui/v0";
|
|
156
169
|
}): ExportedMessageRepositoryItem | null;
|
|
157
170
|
export declare function auiV0Decode(cloudMessage: CloudMessage & {
|
|
158
|
-
|
|
171
|
+
format: "aui/v0";
|
|
159
172
|
}): ExportedMessageRepositoryItem;
|
|
160
|
-
|
|
173
|
+
export {};
|
|
161
174
|
//# sourceMappingURL=auiV0.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auiV0.d.ts","
|
|
1
|
+
{"version":3,"file":"auiV0.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isJSONValue, isRecord } from "../../../utils/json/is-json.js";
|
|
2
|
+
import { readToolInteractionLog } from "../../../runtime/utils/tool-interactions.js";
|
|
2
3
|
import { fromThreadMessageLike } from "../../../runtime/utils/thread-message-like.js";
|
|
3
|
-
import { isStoredAuiV0RolePart, isStoredMessageRole, parseStoredAttachment, parseStoredDate } from "../../../runtime/utils/stored-message-parts.js";
|
|
4
|
+
import { isStoredAuiV0RolePart, isStoredMessageRole, isStoredMessageStatus, parseStoredAttachment, parseStoredDate, parseStoredThreadSteps } from "../../../runtime/utils/stored-message-parts.js";
|
|
4
5
|
//#region src/react/runtimes/cloud/auiV0.ts
|
|
5
6
|
const encodeAttachmentPart = (part) => {
|
|
6
7
|
const type = part.type;
|
|
@@ -8,12 +9,14 @@ const encodeAttachmentPart = (part) => {
|
|
|
8
9
|
case "text": return {
|
|
9
10
|
type: "text",
|
|
10
11
|
text: part.text,
|
|
12
|
+
...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
|
|
11
13
|
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
12
14
|
};
|
|
13
15
|
case "image": return {
|
|
14
16
|
type: "image",
|
|
15
17
|
image: part.image,
|
|
16
|
-
...part.filename != null ? { filename: part.filename } : void 0
|
|
18
|
+
...part.filename != null ? { filename: part.filename } : void 0,
|
|
19
|
+
...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0
|
|
17
20
|
};
|
|
18
21
|
case "file": return {
|
|
19
22
|
type: "file",
|
|
@@ -21,6 +24,7 @@ const encodeAttachmentPart = (part) => {
|
|
|
21
24
|
mimeType: part.mimeType,
|
|
22
25
|
...part.filename != null ? { filename: part.filename } : void 0,
|
|
23
26
|
...part.sourceType != null ? { sourceType: part.sourceType } : void 0,
|
|
27
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
|
|
24
28
|
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
25
29
|
};
|
|
26
30
|
case "audio": return {
|
|
@@ -51,6 +55,36 @@ const encodeAttachments = (message) => {
|
|
|
51
55
|
content: content.map(encodeAttachmentPart)
|
|
52
56
|
}));
|
|
53
57
|
};
|
|
58
|
+
const serializableArtifact = (artifact) => {
|
|
59
|
+
if (artifact === void 0) return void 0;
|
|
60
|
+
try {
|
|
61
|
+
const serialized = JSON.stringify(artifact);
|
|
62
|
+
return serialized === void 0 ? void 0 : JSON.parse(serialized);
|
|
63
|
+
} catch {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
const hasLosslessJSONShape = (value, depth = 0) => {
|
|
68
|
+
if (depth > 100) return false;
|
|
69
|
+
if (value === void 0 || typeof value === "function") return false;
|
|
70
|
+
if (typeof value === "number") return Number.isFinite(value);
|
|
71
|
+
if (typeof value !== "object" || value === null) return true;
|
|
72
|
+
if (typeof value.toJSON === "function") return true;
|
|
73
|
+
if ((value instanceof Map || value instanceof Set) && value.size > 0) return false;
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
if (Reflect.ownKeys(value).length !== value.length + 1) return false;
|
|
76
|
+
for (let index = 0; index < value.length; index++) if (!Object.hasOwn(value, index) || !hasLosslessJSONShape(value[index], depth + 1)) return false;
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
return Reflect.ownKeys(value).every((key) => typeof key === "string" && Object.getOwnPropertyDescriptor(value, key)?.enumerable === true && hasLosslessJSONShape(value[key], depth + 1));
|
|
80
|
+
};
|
|
81
|
+
const losesDataInJSON = (value) => {
|
|
82
|
+
try {
|
|
83
|
+
return !hasLosslessJSONShape(value);
|
|
84
|
+
} catch {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
54
88
|
function auiV0Encode(message) {
|
|
55
89
|
const status = message.status?.type === "running" ? {
|
|
56
90
|
type: "incomplete",
|
|
@@ -65,6 +99,7 @@ function auiV0Encode(message) {
|
|
|
65
99
|
case "text": return {
|
|
66
100
|
type: "text",
|
|
67
101
|
text: part.text,
|
|
102
|
+
...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
|
|
68
103
|
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
69
104
|
};
|
|
70
105
|
case "reasoning": return {
|
|
@@ -94,14 +129,22 @@ function auiV0Encode(message) {
|
|
|
94
129
|
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
|
|
95
130
|
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
96
131
|
};
|
|
97
|
-
case "tool-call":
|
|
98
|
-
|
|
132
|
+
case "tool-call": {
|
|
133
|
+
const result = serializableArtifact(part.result);
|
|
134
|
+
if (part.result !== void 0 && (result === void 0 || losesDataInJSON(part.result))) console.warn(result === void 0 ? `tool-call result for ${part.toolCallId} cannot be serialized as JSON; omitted` : `tool-call result for ${part.toolCallId} loses data in JSON; persisted as its JSON form`);
|
|
135
|
+
const artifact = serializableArtifact(part.artifact);
|
|
136
|
+
if (part.artifact !== void 0 && artifact === void 0) console.warn(`tool-call artifact is not JSON for ${part.toolCallId}`);
|
|
137
|
+
const interactions = readToolInteractionLog(part.unstable_interactions);
|
|
99
138
|
return {
|
|
100
139
|
type: "tool-call",
|
|
101
140
|
toolCallId: part.toolCallId,
|
|
102
141
|
toolName: part.toolName,
|
|
103
142
|
...JSON.stringify(part.args) === part.argsText ? { args: part.args } : { argsText: part.argsText },
|
|
104
|
-
...
|
|
143
|
+
...result !== void 0 ? { result } : void 0,
|
|
144
|
+
...artifact !== void 0 ? { artifact } : void 0,
|
|
145
|
+
...part.modelContent !== void 0 ? { modelContent: part.modelContent } : void 0,
|
|
146
|
+
...part.providerMetadata !== void 0 ? { providerMetadata: part.providerMetadata } : void 0,
|
|
147
|
+
...part.isPreliminary ? { isPreliminary: true } : void 0,
|
|
105
148
|
...part.isError ? { isError: true } : void 0,
|
|
106
149
|
...part.interrupt !== void 0 ? { interrupt: {
|
|
107
150
|
type: part.interrupt.type,
|
|
@@ -111,11 +154,15 @@ function auiV0Encode(message) {
|
|
|
111
154
|
...part.mcp !== void 0 ? { mcp: part.mcp } : void 0,
|
|
112
155
|
...part.approval ? { approval: part.approval } : void 0,
|
|
113
156
|
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0,
|
|
114
|
-
...part.messages !== void 0 ? { messages: part.messages.map(encodeNestedMessage) } : void 0
|
|
157
|
+
...part.messages !== void 0 ? { messages: part.messages.map(encodeNestedMessage) } : void 0,
|
|
158
|
+
...interactions !== void 0 ? { unstable_interactions: interactions } : void 0
|
|
115
159
|
};
|
|
160
|
+
}
|
|
116
161
|
case "image": return {
|
|
117
162
|
type: "image",
|
|
118
|
-
image: part.image
|
|
163
|
+
image: part.image,
|
|
164
|
+
...part.filename != null ? { filename: part.filename } : void 0,
|
|
165
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0
|
|
119
166
|
};
|
|
120
167
|
case "file": return {
|
|
121
168
|
type: "file",
|
|
@@ -123,6 +170,7 @@ function auiV0Encode(message) {
|
|
|
123
170
|
mimeType: part.mimeType,
|
|
124
171
|
...part.filename ? { filename: part.filename } : void 0,
|
|
125
172
|
...part.sourceType ? { sourceType: part.sourceType } : void 0,
|
|
173
|
+
...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : void 0,
|
|
126
174
|
...part.parentId !== void 0 ? { parentId: part.parentId } : void 0
|
|
127
175
|
};
|
|
128
176
|
case "data":
|
|
@@ -177,14 +225,17 @@ const readableAuiV0Message = (value, depth) => {
|
|
|
177
225
|
if (role === "system" && content.length !== 1) return null;
|
|
178
226
|
const { attachments, createdAt, status, metadata, ...rest } = value;
|
|
179
227
|
const storedCreatedAt = parseStoredDate(createdAt);
|
|
180
|
-
const readableMetadata =
|
|
228
|
+
const readableMetadata = !isRecord(metadata) ? metadata : role === "assistant" ? {
|
|
229
|
+
...metadata,
|
|
230
|
+
steps: parseStoredThreadSteps(metadata.steps)
|
|
231
|
+
} : {
|
|
181
232
|
...metadata,
|
|
182
233
|
steps: void 0
|
|
183
234
|
};
|
|
184
235
|
return {
|
|
185
236
|
...rest,
|
|
186
237
|
...storedCreatedAt ? { createdAt } : void 0,
|
|
187
|
-
...role === "assistant" && status
|
|
238
|
+
...role === "assistant" && isStoredMessageStatus(status) ? { status } : void 0,
|
|
188
239
|
...metadata !== void 0 ? { metadata: readableMetadata } : void 0,
|
|
189
240
|
content,
|
|
190
241
|
...role === "user" && Array.isArray(attachments) ? { attachments: readableAuiV0Attachments(attachments) } : void 0
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"auiV0.js","names":["MessageStatus","PartProviderMetadata","SourceProviderMetadata","ThreadMessage","ToolCallMessagePartMcpMetadata","ToolCallTiming","ToolApprovalDisplay","ToolApprovalOption","ReasoningMessagePart","TextMessagePart","ImageMessagePart","FileMessagePart","Unstable_ToolInteractionLog","CompleteAttachment","fromThreadMessageLike","ThreadMessageLike","readToolInteractionLog","CloudMessage","isJSONValue","isRecord","MAX_STORED_MESSAGE_DEPTH","isStoredAuiV0RolePart","isStoredMessageStatus","isStoredMessageRole","parseStoredAttachment","parseStoredDate","parseStoredThreadSteps","ReadonlyJSONObject","ReadonlyJSONValue","ToolModelContentPart","ExportedMessageRepositoryItem","AuiV0ToolApproval","id","prompt","display","allowFreeform","dismissible","approved","reason","isAutomatic","options","optionId","text","resolution","AuiV0MessagePart","type","providerMetadata","NonNullable","parentId","unstable_summary","sourceType","url","title","mediaType","filename","AuiV0ToolCallPart","args","argsText","image","data","mimeType","name","audio","format","spec","toolCallId","toolName","result","artifact","modelContent","isPreliminary","isError","interrupt","payload","timing","mcp","approval","messages","AuiV0Message","unstable_interactions","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","serializableArtifact","serialized","parse","hasLosslessJSONShape","value","depth","Number","isFinite","toJSON","Map","Set","size","Array","isArray","Reflect","ownKeys","index","Object","hasOwn","every","key","getOwnPropertyDescriptor","enumerable","Record","losesDataInJSON","auiV0Encode","interactions","encodeNestedMessage","readableAuiV0Parts","flatMap","toolCall","nested","readableAuiV0Message","readableAuiV0Attachments","attachment","parsed","rest","storedCreatedAt","readableMetadata","auiV0DecodeSafely","cloudMessage","parent_id","decodeAuiV0Message","created_at","error","auiV0Decode","toISOString","Omit","Date","fallbackId","nestedIndex"],"sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"sourcesContent":["import type {\n MessageStatus,\n PartProviderMetadata,\n SourceProviderMetadata,\n ThreadMessage,\n ToolCallMessagePartMcpMetadata,\n ToolCallTiming,\n ToolApprovalDisplay,\n ToolApprovalOption,\n ReasoningMessagePart,\n TextMessagePart,\n ImageMessagePart,\n FileMessagePart,\n Unstable_ToolInteractionLog,\n} from \"../../../types/message\";\nimport type { CompleteAttachment } from \"../../../types/attachment\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../../runtime/utils/thread-message-like\";\nimport { readToolInteractionLog } from \"../../../runtime/utils/tool-interactions\";\nimport type { CloudMessage } from \"assistant-cloud\";\nimport { isJSONValue, isRecord } from \"../../../utils/json/is-json\";\nimport {\n MAX_STORED_MESSAGE_DEPTH,\n isStoredAuiV0RolePart,\n isStoredMessageStatus,\n isStoredMessageRole,\n parseStoredAttachment,\n parseStoredDate,\n parseStoredThreadSteps,\n} from \"../../../runtime/utils/stored-message-parts\";\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"assistant-stream/utils\";\nimport type { ToolModelContentPart } from \"assistant-stream\";\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 dismissible?: 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 providerMetadata?: NonNullable<\n TextMessagePart[\"providerMetadata\"]\n >;\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 readonly filename?: string;\n readonly providerMetadata?: NonNullable<\n ImageMessagePart[\"providerMetadata\"]\n >;\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 providerMetadata?: NonNullable<\n FileMessagePart[\"providerMetadata\"]\n >;\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 artifact?: ReadonlyJSONValue;\n readonly modelContent?: readonly ToolModelContentPart[];\n readonly providerMetadata?: PartProviderMetadata;\n readonly isPreliminary?: true;\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 readonly unstable_interactions?: Unstable_ToolInteractionLog;\n};\n\ntype AuiV0AttachmentPart =\n | {\n readonly type: \"text\";\n readonly text: string;\n readonly providerMetadata?: NonNullable<\n TextMessagePart[\"providerMetadata\"]\n >;\n readonly parentId?: string;\n }\n | {\n readonly type: \"image\";\n readonly image: string;\n readonly filename?: string;\n readonly providerMetadata?: NonNullable<\n ImageMessagePart[\"providerMetadata\"]\n >;\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 providerMetadata?: NonNullable<\n FileMessagePart[\"providerMetadata\"]\n >;\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.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\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 ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : 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.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\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\nconst serializableArtifact = (\n artifact: unknown,\n): ReadonlyJSONValue | undefined => {\n if (artifact === undefined) return undefined;\n try {\n const serialized = JSON.stringify(artifact);\n return serialized === undefined ? undefined : JSON.parse(serialized);\n } catch {\n return undefined;\n }\n};\n\n// Diagnostic only: names the data JSON.stringify silently loses (Map and Set\n// entries, symbol-keyed or non-enumerable own data, extra array properties,\n// undefined, functions, non-finite numbers). A wrapper that keeps its data\n// behind prototype getters or a Map from another realm has no own keys and is\n// indistinguishable from an empty object here, so it passes exactly as it does\n// on main.\nconst hasLosslessJSONShape = (value: unknown, depth = 0): boolean => {\n if (depth > 100) return false;\n if (value === undefined || typeof value === \"function\") return false;\n if (typeof value === \"number\") return Number.isFinite(value);\n if (typeof value !== \"object\" || value === null) return true;\n // A toJSON is the value's own serializer, so whatever it emits is intended.\n if (typeof (value as { toJSON?: unknown }).toJSON === \"function\") return true;\n if ((value instanceof Map || value instanceof Set) && value.size > 0) {\n return false;\n }\n\n if (Array.isArray(value)) {\n if (Reflect.ownKeys(value).length !== value.length + 1) return false;\n for (let index = 0; index < value.length; index++) {\n if (\n !Object.hasOwn(value, index) ||\n !hasLosslessJSONShape(value[index], depth + 1)\n ) {\n return false;\n }\n }\n return true;\n }\n\n return Reflect.ownKeys(value).every(\n (key) =>\n typeof key === \"string\" &&\n Object.getOwnPropertyDescriptor(value, key)?.enumerable === true &&\n hasLosslessJSONShape((value as Record<string, unknown>)[key], depth + 1),\n );\n};\n\n// Reading a getter a second time can throw where JSON.stringify's read did\n// not; a diagnostic that throws is reported as loss rather than failing the\n// write.\nconst losesDataInJSON = (value: unknown): boolean => {\n try {\n return !hasLosslessJSONShape(value);\n } catch {\n return true;\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.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\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 // Persisting what JSON can carry keeps the tool call answered on\n // reload; a part with no result is rejected by providers as an\n // unanswered call, which is worse than a hollowed-out result.\n const result = serializableArtifact(part.result);\n if (\n part.result !== undefined &&\n (result === undefined || losesDataInJSON(part.result))\n ) {\n console.warn(\n result === undefined\n ? `tool-call result for ${part.toolCallId} cannot be serialized as JSON; omitted`\n : `tool-call result for ${part.toolCallId} loses data in JSON; persisted as its JSON form`,\n );\n }\n const artifact = serializableArtifact(part.artifact);\n if (part.artifact !== undefined && artifact === undefined) {\n console.warn(\n `tool-call artifact is not JSON for ${part.toolCallId}`,\n );\n }\n const interactions = readToolInteractionLog(\n part.unstable_interactions,\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 ...(result !== undefined ? { result } : undefined),\n ...(artifact !== undefined ? { artifact } : undefined),\n ...(part.modelContent !== undefined\n ? { modelContent: part.modelContent }\n : undefined),\n ...(part.providerMetadata !== undefined\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n ...(part.isPreliminary ? { isPreliminary: true } : 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 ...(interactions !== undefined\n ? { unstable_interactions: interactions }\n : undefined),\n };\n }\n\n case \"image\":\n return {\n type: \"image\",\n image: part.image,\n ...(part.filename != null\n ? { filename: part.filename }\n : undefined),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : undefined),\n };\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.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : 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 = !isRecord(metadata)\n ? metadata\n : role === \"assistant\"\n ? { ...metadata, steps: parseStoredThreadSteps(metadata.steps) }\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\" && isStoredMessageStatus(status)\n ? { status }\n : 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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"}
|