@assistant-ui/core 0.2.20 → 0.2.22
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 +2 -2
- package/dist/adapters/attachment.d.ts.map +1 -1
- package/dist/adapters/attachment.js +14 -7
- package/dist/adapters/attachment.js.map +1 -1
- package/dist/adapters/directive-formatter.d.ts +0 -1
- package/dist/adapters/directive-formatter.d.ts.map +1 -1
- package/dist/adapters/feedback.d.ts +0 -1
- package/dist/adapters/feedback.d.ts.map +1 -1
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.js +2 -1
- package/dist/adapters/speech.d.ts +0 -1
- package/dist/adapters/speech.d.ts.map +1 -1
- package/dist/adapters/speech.js +9 -2
- package/dist/adapters/speech.js.map +1 -1
- package/dist/adapters/suggestion.d.ts +16 -2
- package/dist/adapters/suggestion.d.ts.map +1 -1
- package/dist/adapters/suggestion.js +36 -0
- package/dist/adapters/suggestion.js.map +1 -0
- package/dist/adapters/thread-history.d.ts +2 -2
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/adapters/trigger.d.ts +5 -3
- package/dist/adapters/trigger.d.ts.map +1 -1
- package/dist/adapters/voice.d.ts +0 -1
- package/dist/adapters/voice.d.ts.map +1 -1
- package/dist/adapters/voice.js +13 -5
- package/dist/adapters/voice.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/duplicate-detection.d.ts.map +1 -1
- package/dist/internal.d.ts +9 -1
- package/dist/internal.js +8 -2
- package/dist/model-context/frame/host.d.ts +1 -1
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +5 -0
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +0 -1
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +1 -0
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/model-context/frame/types.d.ts.map +1 -1
- package/dist/model-context/interactable-composer-metadata.d.ts +4 -2
- package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
- package/dist/model-context/interactable-composer-metadata.js.map +1 -1
- package/dist/model-context/registry-handles.d.ts +0 -1
- package/dist/model-context/registry-handles.d.ts.map +1 -1
- package/dist/model-context/registry.d.ts +0 -1
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/tool.d.ts +23 -9
- package/dist/model-context/tool.d.ts.map +1 -1
- package/dist/model-context/tool.js +0 -25
- package/dist/model-context/tool.js.map +1 -1
- package/dist/model-context/types.d.ts +0 -1
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/react/AssistantProvider.d.ts +0 -1
- package/dist/react/AssistantProvider.d.ts.map +1 -1
- package/dist/react/AssistantProvider.js.map +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts +1 -6
- package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/react/RuntimeAdapter.d.ts +1 -0
- package/dist/react/RuntimeAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts +13 -2
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +196 -54
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/adapters/TitleGenerationAdapter.d.ts +0 -1
- package/dist/react/adapters/TitleGenerationAdapter.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.d.ts +0 -1
- package/dist/react/client/DataRenderers.d.ts.map +1 -1
- package/dist/react/client/Interactables.d.ts +0 -1
- package/dist/react/client/Interactables.d.ts.map +1 -1
- package/dist/react/client/Interactables.js.map +1 -1
- package/dist/react/client/Tools.d.ts +3 -2
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/interactable-model-context.d.ts +0 -1
- package/dist/react/client/interactable-model-context.d.ts.map +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/interactables-legacy/Interactables.d.ts +0 -1
- package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
- package/dist/react/interactables-legacy/interactable-model-context.d.ts +0 -1
- package/dist/react/interactables-legacy/interactable-model-context.d.ts.map +1 -1
- package/dist/react/interactables-legacy/scopes.d.ts +4 -2
- package/dist/react/interactables-legacy/scopes.d.ts.map +1 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.d.ts +0 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.d.ts.map +1 -1
- package/dist/react/interactables-legacy/useInteractableState.d.ts.map +1 -1
- package/dist/react/model-context/define-mcp-toolkit.d.ts +19 -4
- package/dist/react/model-context/define-mcp-toolkit.d.ts.map +1 -1
- package/dist/react/model-context/define-mcp-toolkit.js +17 -5
- package/dist/react/model-context/define-mcp-toolkit.js.map +1 -1
- package/dist/react/model-context/define-toolkit.d.ts +1 -2
- package/dist/react/model-context/define-toolkit.d.ts.map +1 -1
- package/dist/react/model-context/external-tool.d.ts.map +1 -1
- package/dist/react/model-context/human-tool.d.ts.map +1 -1
- package/dist/react/model-context/interactableTool.d.ts +2 -2
- package/dist/react/model-context/interactableTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantDataUI.d.ts +2 -2
- package/dist/react/model-context/makeAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +2 -2
- package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts +2 -2
- package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/provider-tool.d.ts +0 -1
- package/dist/react/model-context/provider-tool.d.ts.map +1 -1
- package/dist/react/model-context/stub-tool.d.ts.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +5 -5
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantContext.d.ts +1 -0
- package/dist/react/model-context/useAssistantContext.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.d.ts +3 -2
- package/dist/react/model-context/useAssistantDataUI.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantInstructions.d.ts +1 -0
- package/dist/react/model-context/useAssistantInstructions.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantTool.d.ts +4 -2
- package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.d.ts +3 -2
- package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/useAuiToolOverrides.d.ts +0 -1
- package/dist/react/model-context/useAuiToolOverrides.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.d.ts +0 -1
- package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/react/model-context/useInteractable.d.ts +7 -4
- package/dist/react/model-context/useInteractable.d.ts.map +1 -1
- package/dist/react/model-context/useInteractable.js.map +1 -1
- package/dist/react/model-context/useInteractableState.d.ts.map +1 -1
- package/dist/react/model-context/useInteractableVersions.d.ts +0 -1
- package/dist/react/model-context/useInteractableVersions.d.ts.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts +3 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts +1 -4
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.js +13 -13
- package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarFeedback.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts +0 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerDictate.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.d.ts +0 -1
- package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageBranching.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.js +5 -1
- package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts +1 -5
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListNew.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessageIds.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadMessages.d.ts +0 -1
- package/dist/react/primitive-hooks/useThreadMessages.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useVoice.d.ts +0 -1
- package/dist/react/primitive-hooks/useVoice.d.ts.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts +7 -4
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts +4 -3
- package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
- package/dist/react/primitives/composer/ComposerIf.d.ts +4 -3
- package/dist/react/primitives/composer/ComposerIf.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.d.ts +2 -2
- package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts +2 -2
- package/dist/react/primitives/generativeUI/GenerativeUI.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.d.ts +4 -3
- package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.d.ts +1 -6
- package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +44 -25
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +48 -37
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/primitives/message/MessageQuote.d.ts +2 -2
- package/dist/react/primitives/message/MessageQuote.d.ts.map +1 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts +0 -1
- package/dist/react/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
- package/dist/react/primitives/part/PartMessages.d.ts +2 -2
- package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
- package/dist/react/primitives/part/PartMessages.js.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts +35 -17
- package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts +6 -4
- package/dist/react/primitives/thread/ThreadSuggestions.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts +4 -3
- package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts +0 -1
- package/dist/react/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts +0 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +0 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +0 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +18 -30
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
- package/dist/react/providers/MessageByIdProvider.d.ts +0 -1
- package/dist/react/providers/MessageByIdProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts +0 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts +0 -1
- package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.js +18 -30
- package/dist/react/providers/PartByIndexProvider.js.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts +0 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.d.ts +0 -1
- package/dist/react/providers/ReadonlyThreadProvider.d.ts.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts +0 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts +0 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +0 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +2 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +2 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +12 -3
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +70 -27
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +0 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +0 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +1 -4
- 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 +12 -2
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +30 -1
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +0 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/createMessageConverter.d.ts +1 -7
- package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -1
- package/dist/react/runtimes/createRuntimeExtras.d.ts +0 -1
- package/dist/react/runtimes/createRuntimeExtras.d.ts.map +1 -1
- package/dist/react/runtimes/external-message-converter.d.ts +1 -8
- package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
- package/dist/react/runtimes/external-message-converter.js +43 -45
- package/dist/react/runtimes/external-message-converter.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts +0 -1
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +0 -1
- package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts +3 -5
- package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.js +9 -1
- package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +0 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useStreamingTiming.d.ts +0 -1
- package/dist/react/runtimes/useStreamingTiming.d.ts.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +6 -3
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/react/types/scopes/dataRenderers.d.ts +1 -1
- package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
- package/dist/react/types/scopes/interactables.d.ts +4 -2
- package/dist/react/types/scopes/interactables.d.ts.map +1 -1
- package/dist/react/types/scopes/tools.d.ts +5 -3
- package/dist/react/types/scopes/tools.d.ts.map +1 -1
- package/dist/react/types/store-augmentation.d.ts +1 -2
- package/dist/react/types/store-augmentation.d.ts.map +1 -1
- package/dist/react/utils/getMessageQuote.d.ts +0 -1
- package/dist/react/utils/getMessageQuote.d.ts.map +1 -1
- package/dist/react/utils/groupParts.d.ts +2 -2
- package/dist/react/utils/groupParts.d.ts.map +1 -1
- package/dist/react/utils/useJSONEqual.d.ts.map +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts +0 -1
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts +0 -1
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
- package/dist/runtime/api/bindings.d.ts +0 -1
- package/dist/runtime/api/bindings.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.d.ts +6 -4
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.d.ts +0 -1
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts +6 -16
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.js +5 -5
- package/dist/runtime/api/message-runtime.js.map +1 -1
- package/dist/runtime/api/paths.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.d.ts +0 -1
- package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.js +2 -1
- package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +0 -1
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +3 -1
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/base/base-assistant-runtime-core.d.ts +0 -1
- package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts +4 -2
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +51 -10
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +2 -4
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +3 -2
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +1 -5
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js +4 -2
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -0
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js +2 -2
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
- package/dist/runtime/branch/external-thread-branch-adapter.d.ts.map +1 -1
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts +0 -1
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/composer-runtime-core.d.ts +2 -2
- package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +0 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +2 -2
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/queue/external-thread-queue-adapter.d.ts +0 -1
- package/dist/runtime/queue/external-thread-queue-adapter.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.d.ts +6 -4
- package/dist/runtime/queue/message-queue.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.js +1 -1
- package/dist/runtime/utils/auto-status.d.ts +0 -1
- package/dist/runtime/utils/auto-status.d.ts.map +1 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts +0 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
- package/dist/runtime/utils/external-store-message.d.ts +0 -1
- package/dist/runtime/utils/external-store-message.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts +1 -5
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +3 -1
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +0 -1
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
- package/dist/runtime/utils/streaming-timing.d.ts +5 -3
- package/dist/runtime/utils/streaming-timing.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts +2 -2
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.js +4 -1
- package/dist/runtime/utils/thread-message-like.js.map +1 -1
- package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-adapter.d.ts +2 -2
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts +0 -1
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-shared-options.d.ts +0 -1
- 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 +0 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +2 -0
- 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 +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/thread-message-converter.d.ts +0 -1
- package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
- package/dist/runtimes/local/local-runtime-core.d.ts +0 -1
- package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-runtime-options.d.ts +0 -1
- package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +0 -1
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +5 -21
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +29 -17
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/local/should-continue.d.ts +0 -1
- package/dist/runtimes/local/should-continue.d.ts.map +1 -1
- package/dist/runtimes/local/should-continue.js +2 -2
- package/dist/runtimes/local/should-continue.js.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +0 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +1 -2
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.js +5 -3
- package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +0 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +10 -8
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.js +22 -9
- package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +0 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/types.d.ts +1 -2
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +2 -2
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +1 -2
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
- package/dist/store/clients/chain-of-thought-client.d.ts +0 -1
- package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -1
- package/dist/store/clients/model-context-client.d.ts +0 -1
- package/dist/store/clients/model-context-client.d.ts.map +1 -1
- package/dist/store/clients/no-op-composer-client.d.ts +0 -1
- package/dist/store/clients/no-op-composer-client.d.ts.map +1 -1
- package/dist/store/clients/runtime-adapter.d.ts +0 -1
- package/dist/store/clients/runtime-adapter.d.ts.map +1 -1
- package/dist/store/clients/suggestions.d.ts +0 -1
- package/dist/store/clients/suggestions.d.ts.map +1 -1
- package/dist/store/clients/thread-message-client.d.ts +0 -1
- package/dist/store/clients/thread-message-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts +0 -1
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +0 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/liveRef.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts +0 -1
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts +0 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +0 -1
- 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 +0 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts +0 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/useSubscribable.d.ts +0 -1
- package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
- package/dist/store/scope-registration.d.ts +1 -2
- package/dist/store/scope-registration.d.ts.map +1 -1
- package/dist/store/scopes/attachment.d.ts +0 -1
- package/dist/store/scopes/attachment.d.ts.map +1 -1
- package/dist/store/scopes/chain-of-thought.d.ts +0 -1
- package/dist/store/scopes/chain-of-thought.d.ts.map +1 -1
- package/dist/store/scopes/composer.d.ts +0 -1
- package/dist/store/scopes/composer.d.ts.map +1 -1
- package/dist/store/scopes/message.d.ts +6 -4
- package/dist/store/scopes/message.d.ts.map +1 -1
- package/dist/store/scopes/model-context.d.ts +0 -1
- package/dist/store/scopes/model-context.d.ts.map +1 -1
- package/dist/store/scopes/part.d.ts +0 -1
- package/dist/store/scopes/part.d.ts.map +1 -1
- package/dist/store/scopes/queue-item.d.ts.map +1 -1
- package/dist/store/scopes/suggestion.d.ts.map +1 -1
- package/dist/store/scopes/suggestions.d.ts +0 -1
- package/dist/store/scopes/suggestions.d.ts.map +1 -1
- package/dist/store/scopes/thread-list-item.d.ts +0 -1
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/thread.d.ts +4 -3
- package/dist/store/scopes/thread.d.ts.map +1 -1
- package/dist/store/scopes/threads.d.ts +0 -1
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/subscribable/subscribable.d.ts +1 -2
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +11 -3
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.d.ts +2 -2
- package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.js +5 -2
- package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
- package/dist/types/attachment.d.ts +3 -2
- package/dist/types/attachment.d.ts.map +1 -1
- package/dist/types/attachment.js +6 -0
- package/dist/types/attachment.js.map +1 -0
- package/dist/types/directive.d.ts +3 -2
- package/dist/types/directive.d.ts.map +1 -1
- package/dist/types/error.d.ts +15 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +46 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/message.d.ts +71 -33
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/types/quote.d.ts.map +1 -1
- package/dist/types/trigger.d.ts +0 -1
- package/dist/types/trigger.d.ts.map +1 -1
- package/dist/types/unsubscribe.d.ts.map +1 -1
- package/dist/utils/composite-context-provider.d.ts +1 -0
- package/dist/utils/composite-context-provider.d.ts.map +1 -1
- package/dist/utils/data-url.d.ts +9 -0
- package/dist/utils/data-url.d.ts.map +1 -0
- package/dist/utils/data-url.js +14 -0
- package/dist/utils/data-url.js.map +1 -0
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/json/is-json-equal.d.ts.map +1 -1
- package/dist/utils/json/is-json.d.ts +0 -1
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/is-json.js +1 -1
- package/dist/utils/json/is-json.js.map +1 -1
- package/dist/utils/json/stable-stringify-tool-args.d.ts +7 -0
- package/dist/utils/json/stable-stringify-tool-args.d.ts.map +1 -0
- package/dist/utils/json/stable-stringify-tool-args.js +32 -0
- package/dist/utils/json/stable-stringify-tool-args.js.map +1 -0
- package/dist/utils/notify-event-listeners.d.ts +6 -0
- package/dist/utils/notify-event-listeners.d.ts.map +1 -0
- package/dist/utils/notify-event-listeners.js +16 -0
- package/dist/utils/notify-event-listeners.js.map +1 -0
- package/dist/utils/text.d.ts +0 -1
- package/dist/utils/text.d.ts.map +1 -1
- package/package.json +14 -10
- package/src/adapters/attachment.test.ts +107 -0
- package/src/adapters/attachment.ts +20 -10
- package/src/adapters/index.ts +6 -1
- package/src/adapters/speech.test.ts +88 -0
- package/src/adapters/speech.ts +17 -2
- package/src/adapters/suggestion.test.ts +187 -0
- package/src/adapters/suggestion.ts +75 -1
- package/src/adapters/voice.test.ts +130 -0
- package/src/adapters/voice.ts +26 -6
- package/src/index.ts +15 -1
- package/src/internal.ts +21 -0
- package/src/model-context/frame/host.test.ts +100 -0
- package/src/model-context/frame/host.ts +10 -0
- package/src/model-context/frame/provider.test.ts +83 -0
- package/src/model-context/frame/provider.ts +1 -0
- package/src/model-context/tool.test.ts +110 -0
- package/src/model-context/tool.ts +31 -9
- package/src/react/adapters/LocalStorageThreadListAdapter.test.ts +304 -0
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +307 -60
- package/src/react/index.ts +2 -0
- package/src/react/model-context/define-mcp-toolkit.ts +39 -6
- package/src/react/model-context/define-toolkit.test.ts +107 -0
- package/src/react/primitive-hooks/useActionBarCopy.test.ts +79 -0
- package/src/react/primitive-hooks/useActionBarCopy.ts +4 -3
- package/src/react/primitive-hooks/useMessageError.test.ts +64 -0
- package/src/react/primitive-hooks/useMessageError.ts +19 -6
- package/src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx +1 -3
- package/src/react/primitives/message/MessageParts.tsx +48 -35
- package/src/react/providers/ChainOfThoughtPartByIndexProvider.tsx +19 -2
- package/src/react/providers/PartByIndexProvider.tsx +16 -2
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +18 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +4 -1
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +96 -26
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +69 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +1 -1
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.test.ts +127 -0
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +15 -4
- package/src/react/runtimes/cloud/auiV0.ts +71 -2
- package/src/react/runtimes/external-message-converter.test.tsx +123 -0
- package/src/react/runtimes/external-message-converter.ts +36 -11
- package/src/react/runtimes/useLocalRuntime.test.tsx +56 -0
- package/src/react/runtimes/useLocalRuntime.ts +13 -1
- package/src/runtime/api/message-runtime.test.ts +81 -0
- package/src/runtime/api/message-runtime.ts +4 -6
- package/src/runtime/api/thread-list-item-runtime.ts +6 -1
- package/src/runtime/base/base-composer-runtime-core.ts +95 -30
- package/src/runtime/base/base-thread-runtime-core.ts +2 -1
- package/src/runtime/base/default-edit-composer-runtime-core.ts +4 -2
- package/src/runtime/base/default-thread-composer-runtime-core.ts +2 -2
- package/src/runtime/utils/message-repository.ts +8 -3
- package/src/runtime/utils/thread-message-like.ts +3 -0
- package/src/runtimes/local/local-thread-runtime-core.test.ts +276 -3
- package/src/runtimes/local/local-thread-runtime-core.ts +29 -25
- package/src/runtimes/local/should-continue.ts +5 -2
- package/src/runtimes/remote-thread-list/adapter/in-memory.test.ts +14 -0
- package/src/runtimes/remote-thread-list/adapter/in-memory.ts +13 -5
- package/src/runtimes/remote-thread-list/optimistic-state.test.ts +63 -0
- package/src/runtimes/remote-thread-list/optimistic-state.ts +49 -17
- package/src/runtimes/remote-thread-list/types.ts +1 -1
- package/src/runtimes/tool-invocations/EDGE_CASES.md +13 -19
- package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +127 -6
- package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +4 -2
- package/src/subscribable/subscribable.test.ts +58 -0
- package/src/subscribable/subscribable.ts +13 -3
- package/src/tests/MessageRepository.test.ts +26 -0
- package/src/tests/OptimisticState-list-race.test.ts +33 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +42 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-order.test.ts +223 -0
- package/src/tests/attachment-adapters.test.ts +14 -2
- package/src/tests/auiV0Encode.test.ts +134 -1
- package/src/tests/base-composer-runtime-core-addAttachment.test.ts +123 -5
- package/src/tests/base-composer-runtime-core-send.test.ts +573 -0
- package/src/tests/default-edit-composer-runtime-core.test.ts +43 -5
- package/src/tests/event-subscription-listener-errors.test.ts +205 -0
- package/src/tests/remote-thread-list-test-helpers.ts +14 -7
- package/src/tests/thread-message-like.test.ts +97 -0
- package/src/types/attachment.ts +6 -0
- package/src/types/error.test.ts +122 -0
- package/src/types/error.ts +74 -0
- package/src/types/index.ts +1 -0
- package/src/types/message.ts +12 -3
- package/src/utils/data-url.test.ts +50 -0
- package/src/utils/data-url.ts +9 -0
- package/src/utils/json/is-json-equal.test.ts +84 -0
- package/src/utils/json/is-json.test.ts +123 -0
- package/src/utils/json/is-json.ts +1 -1
- package/src/utils/json/stable-stringify-tool-args.test.ts +105 -0
- package/src/utils/json/stable-stringify-tool-args.ts +70 -0
- package/src/utils/notify-event-listeners.ts +30 -0
|
@@ -4,6 +4,7 @@ import { fromThreadMessageLike } from "../../runtime/utils/thread-message-like.j
|
|
|
4
4
|
import { bindExternalStoreMessage, getExternalStoreMessages, symbolInnerMessage } from "../../runtime/utils/external-store-message.js";
|
|
5
5
|
import { getAutoStatus, isAutoStatus } from "../../runtime/utils/auto-status.js";
|
|
6
6
|
import { ThreadMessageConverter } from "../../runtimes/external-store/thread-message-converter.js";
|
|
7
|
+
import { useState } from "@assistant-ui/tap/react-shim";
|
|
7
8
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
8
9
|
//#region src/react/runtimes/external-message-converter.ts
|
|
9
10
|
const isPendingToolCall = (c) => c.type === "tool-call" && c.result === void 0;
|
|
@@ -56,7 +57,7 @@ const joinExternalMessages = (messages) => {
|
|
|
56
57
|
if (output.attachments) assistantMessage.attachments = [...assistantMessage.attachments ?? [], ...output.attachments];
|
|
57
58
|
if (output.metadata) {
|
|
58
59
|
assistantMessage.metadata ??= {};
|
|
59
|
-
if (output.metadata.unstable_state) assistantMessage.metadata.unstable_state = output.metadata.unstable_state;
|
|
60
|
+
if (output.metadata.unstable_state !== void 0) assistantMessage.metadata.unstable_state = output.metadata.unstable_state;
|
|
60
61
|
if (output.metadata.unstable_annotations) assistantMessage.metadata.unstable_annotations = [...assistantMessage.metadata.unstable_annotations ?? [], ...output.metadata.unstable_annotations];
|
|
61
62
|
if (output.metadata.unstable_data) assistantMessage.metadata.unstable_data = [...assistantMessage.metadata.unstable_data ?? [], ...output.metadata.unstable_data];
|
|
62
63
|
if (output.metadata.steps) assistantMessage.metadata.steps = [...assistantMessage.metadata.steps ?? [], ...output.metadata.steps];
|
|
@@ -176,8 +177,9 @@ const convertExternalMessages = (messages, callback, isRunning, metadata) => {
|
|
|
176
177
|
return result;
|
|
177
178
|
};
|
|
178
179
|
const useExternalMessageConverter = (t0) => {
|
|
179
|
-
const $ = c(
|
|
180
|
+
const $ = c(13);
|
|
180
181
|
const { callback, messages, isRunning, joinStrategy, metadata } = t0;
|
|
182
|
+
const [caches] = useState(_temp);
|
|
181
183
|
let t1;
|
|
182
184
|
if ($[0] !== metadata) {
|
|
183
185
|
t1 = metadata ?? {};
|
|
@@ -185,52 +187,38 @@ const useExternalMessageConverter = (t0) => {
|
|
|
185
187
|
$[1] = t1;
|
|
186
188
|
} else t1 = $[1];
|
|
187
189
|
let t2;
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
191
|
-
t2 = /* @__PURE__ */ new WeakMap();
|
|
192
|
-
t3 = /* @__PURE__ */ new WeakMap();
|
|
193
|
-
t4 = new ThreadMessageConverter();
|
|
194
|
-
$[2] = t2;
|
|
195
|
-
$[3] = t3;
|
|
196
|
-
$[4] = t4;
|
|
197
|
-
} else {
|
|
198
|
-
t2 = $[2];
|
|
199
|
-
t3 = $[3];
|
|
200
|
-
t4 = $[4];
|
|
201
|
-
}
|
|
202
|
-
let t5;
|
|
203
|
-
if ($[5] !== callback || $[6] !== t1) {
|
|
204
|
-
t5 = {
|
|
190
|
+
if ($[2] !== caches || $[3] !== callback || $[4] !== t1) {
|
|
191
|
+
t2 = {
|
|
205
192
|
metadata: t1,
|
|
206
193
|
callback,
|
|
207
|
-
|
|
208
|
-
chunkCache: t3,
|
|
209
|
-
converterCache: t4
|
|
194
|
+
...caches
|
|
210
195
|
};
|
|
211
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
$[
|
|
214
|
-
|
|
215
|
-
|
|
196
|
+
$[2] = caches;
|
|
197
|
+
$[3] = callback;
|
|
198
|
+
$[4] = t1;
|
|
199
|
+
$[5] = t2;
|
|
200
|
+
} else t2 = $[5];
|
|
201
|
+
const state = t2;
|
|
216
202
|
let threadMessages;
|
|
217
|
-
if ($[
|
|
203
|
+
if ($[6] !== isRunning || $[7] !== joinStrategy || $[8] !== messages || $[9] !== state) {
|
|
218
204
|
const callbackResults = [];
|
|
219
205
|
for (const message of messages) {
|
|
220
206
|
let result = state.callbackCache.get(message);
|
|
221
|
-
if (!result) {
|
|
207
|
+
if (!result || result.metadata !== state.metadata || result.callback !== state.callback) {
|
|
222
208
|
const output = state.callback(message, state.metadata);
|
|
223
209
|
result = {
|
|
224
210
|
input: message,
|
|
225
|
-
outputs: Array.isArray(output) ? output : [output]
|
|
211
|
+
outputs: Array.isArray(output) ? output : [output],
|
|
212
|
+
metadata: state.metadata,
|
|
213
|
+
callback: state.callback
|
|
226
214
|
};
|
|
227
215
|
state.callbackCache.set(message, result);
|
|
228
216
|
}
|
|
229
217
|
callbackResults.push(result);
|
|
230
218
|
}
|
|
231
|
-
let
|
|
232
|
-
if ($[
|
|
233
|
-
|
|
219
|
+
let t3;
|
|
220
|
+
if ($[11] !== state.chunkCache) {
|
|
221
|
+
t3 = (m) => {
|
|
234
222
|
const key = m.outputs[0];
|
|
235
223
|
if (!key) return m;
|
|
236
224
|
const cached = state.chunkCache.get(key);
|
|
@@ -238,16 +226,19 @@ const useExternalMessageConverter = (t0) => {
|
|
|
238
226
|
state.chunkCache.set(key, m);
|
|
239
227
|
return m;
|
|
240
228
|
};
|
|
241
|
-
$[
|
|
242
|
-
$[
|
|
243
|
-
} else
|
|
244
|
-
const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(
|
|
229
|
+
$[11] = state.chunkCache;
|
|
230
|
+
$[12] = t3;
|
|
231
|
+
} else t3 = $[12];
|
|
232
|
+
const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(t3);
|
|
245
233
|
threadMessages = state.converterCache.convertMessages(chunks, (cache, message_0, idx) => {
|
|
246
234
|
const isLast = idx === chunks.length - 1;
|
|
247
235
|
const joined = joinExternalMessages(message_0.outputs);
|
|
248
|
-
const
|
|
236
|
+
const hasInterruptedToolCalls = typeof joined.content === "object" && joined.content.some(isInterruptedToolCall);
|
|
237
|
+
const hasPendingToolCalls = typeof joined.content === "object" && joined.content.some(isPendingToolCall);
|
|
238
|
+
const autoStatus = getAutoStatus(isLast, isRunning, hasInterruptedToolCalls, hasPendingToolCalls, isLast ? state.metadata.error : void 0);
|
|
249
239
|
if (cache && (cache.role !== "assistant" || !isAutoStatus(cache.status) || cache.status === autoStatus)) {
|
|
250
|
-
|
|
240
|
+
const inputs = getExternalStoreMessages(cache);
|
|
241
|
+
if (shallowArrayEqual(inputs, message_0.inputs)) return cache;
|
|
251
242
|
}
|
|
252
243
|
const newMessage = fromThreadMessageLike(joined, idx.toString(), autoStatus);
|
|
253
244
|
bindExternalStoreMessage(newMessage, message_0.inputs);
|
|
@@ -258,12 +249,12 @@ const useExternalMessageConverter = (t0) => {
|
|
|
258
249
|
const lastMessage = threadMessages.at(-1);
|
|
259
250
|
if (!lastMessage || lastMessage.role !== "assistant") threadMessages.push(createErrorAssistantMessage(state.metadata.error));
|
|
260
251
|
}
|
|
261
|
-
$[
|
|
262
|
-
$[
|
|
263
|
-
$[
|
|
264
|
-
$[
|
|
265
|
-
$[
|
|
266
|
-
} else threadMessages = $[
|
|
252
|
+
$[6] = isRunning;
|
|
253
|
+
$[7] = joinStrategy;
|
|
254
|
+
$[8] = messages;
|
|
255
|
+
$[9] = state;
|
|
256
|
+
$[10] = threadMessages;
|
|
257
|
+
} else threadMessages = $[10];
|
|
267
258
|
return threadMessages;
|
|
268
259
|
};
|
|
269
260
|
const shallowArrayEqual = (a, b) => {
|
|
@@ -271,6 +262,13 @@ const shallowArrayEqual = (a, b) => {
|
|
|
271
262
|
for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
|
|
272
263
|
return true;
|
|
273
264
|
};
|
|
265
|
+
function _temp() {
|
|
266
|
+
return {
|
|
267
|
+
callbackCache: /* @__PURE__ */ new WeakMap(),
|
|
268
|
+
chunkCache: /* @__PURE__ */ new WeakMap(),
|
|
269
|
+
converterCache: new ThreadMessageConverter()
|
|
270
|
+
};
|
|
271
|
+
}
|
|
274
272
|
//#endregion
|
|
275
273
|
export { convertExternalMessages, useExternalMessageConverter };
|
|
276
274
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-message-converter.js","names":["c","_c","useMemo","ThreadMessageConverter","getExternalStoreMessages","symbolInnerMessage","bindExternalStoreMessage","fromThreadMessageLike","ThreadMessageLike","getAutoStatus","isAutoStatus","ToolExecutionStatus","ReadonlyJSONValue","generateErrorMessageId","ThreadAssistantMessage","ThreadMessage","ToolCallMessagePart","MessageTiming","JoinStrategy","ThreadMessageLikeContentItem","Exclude","isPendingToolCall","type","result","undefined","isInterruptedToolCall","interrupt","approval","approved","resolution","useExternalMessageConverter","Message","convertConfig","joinStrategy","role","toolCallId","toolName","artifact","isError","messages","Metadata","toolStatuses","Record","error","messageTiming","Callback","message","T","metadata","CallbackResult","input","outputs","ChunkResult","inputs","Mutable","P","mergeInnerMessages","existing","incoming","joinExternalMessages","assistantMessage","Omit","content","output","toolCallIdx","findIndex","toolCall","Error","const","text","map","length","id","createdAt","status","attachments","unstable_state","unstable_annotations","unstable_data","steps","custom","timing","submittedFeedback","isOptimistic","part","existingIdx","parentId","push","unsupportedRole","chunkExternalMessages","callbackResults","results","isAssistant","pendingNone","flush","callbackResult","at","createErrorAssistantMessage","msg","reason","Date","convertExternalMessages","WeakKey","callback","isRunning","Array","isArray","chunks","idx","isLast","joined","hasInterruptedToolCalls","some","hasPendingToolCalls","autoStatus","newMessage","toString","lastMessage","t0","$","t1","t2","t3","t4","Symbol","for","WeakMap","t5","callbackCache","chunkCache","converterCache","state","threadMessages","get","set","t6","m","key","cached","shallowArrayEqual","convertMessages","cache","message_0","a","b","i"],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { ThreadMessageConverter } from \"../../runtimes/external-store/thread-message-converter\";\nimport {\n getExternalStoreMessages,\n symbolInnerMessage,\n bindExternalStoreMessage,\n} from \"../../runtime/utils/external-store-message\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../runtime/utils/thread-message-like\";\nimport { getAutoStatus, isAutoStatus } from \"../../runtime/utils/auto-status\";\nimport type { ToolExecutionStatus } from \"../../runtimes/tool-invocations/ToolInvocationTracker\";\nimport type { ReadonlyJSONValue } from \"assistant-stream/utils\";\nimport { generateErrorMessageId } from \"../../utils/id\";\nimport type {\n ThreadAssistantMessage,\n ThreadMessage,\n ToolCallMessagePart,\n} from \"../../types/message\";\nimport type { MessageTiming } from \"../../types/message\";\n\nexport type JoinStrategy = \"concat-content\" | \"none\";\n\ntype ThreadMessageLikeContentItem = Exclude<\n ThreadMessageLike[\"content\"],\n string\n>[number];\n\nconst isPendingToolCall = (c: ThreadMessageLikeContentItem): boolean =>\n c.type === \"tool-call\" && c.result === undefined;\n\nconst isInterruptedToolCall = (c: ThreadMessageLikeContentItem): boolean => {\n if (c.type !== \"tool-call\" || c.result !== undefined) return false;\n return (\n c.interrupt != null ||\n (c.approval != null &&\n c.approval.approved === undefined &&\n c.approval.resolution === undefined)\n );\n};\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | (ThreadMessageLike & {\n readonly convertConfig?: {\n readonly joinStrategy?: JoinStrategy;\n };\n })\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n artifact?: any;\n isError?: boolean;\n messages?: readonly ThreadMessage[];\n };\n\n export type Metadata = {\n readonly toolStatuses?: Record<string, ToolExecutionStatus>;\n readonly error?: ReadonlyJSONValue;\n readonly messageTiming?: Record<string, MessageTiming>;\n };\n\n export type Callback<T> = (\n message: T,\n metadata: Metadata,\n ) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst mergeInnerMessages = (existing: object, incoming: object) => ({\n [symbolInnerMessage]: [\n ...((existing as any)[symbolInnerMessage] ?? []),\n ...((incoming as any)[symbolInnerMessage] ?? []),\n ],\n});\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n // Ignore orphaned tool results so one bad tool message does not\n // prevent rendering the rest of the conversation.\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallMessagePart;\n if (output.toolName !== undefined) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n ...{\n [symbolInnerMessage]: [\n ...((toolCall as any)[symbolInnerMessage] ?? []),\n output,\n ],\n },\n result: output.result,\n artifact: output.artifact,\n isError: output.isError,\n messages: output.messages,\n };\n }\n } else {\n const role = output.role;\n const content = (\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content\n ).map((c) => ({\n ...c,\n ...{ [symbolInnerMessage]: [output] },\n }));\n switch (role) {\n case \"system\":\n case \"user\":\n return {\n ...output,\n content,\n };\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_state) {\n assistantMessage.metadata.unstable_state =\n output.metadata.unstable_state;\n }\n if (output.metadata.unstable_annotations) {\n assistantMessage.metadata.unstable_annotations = [\n ...(assistantMessage.metadata.unstable_annotations ?? []),\n ...output.metadata.unstable_annotations,\n ];\n }\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n\n if (output.metadata.timing) {\n assistantMessage.metadata.timing = output.metadata.timing;\n }\n\n if (output.metadata.submittedFeedback) {\n assistantMessage.metadata.submittedFeedback =\n output.metadata.submittedFeedback;\n }\n\n if (output.metadata.isOptimistic) {\n assistantMessage.metadata.isOptimistic = true;\n }\n }\n // TODO keep this in sync\n }\n\n // Add content parts, merging reasoning parts with same parentId\n for (const part of content) {\n if (part.type === \"tool-call\") {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"tool-call\" && c.toolCallId === part.toolCallId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n ...part,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n\n if (\n part.type === \"reasoning\" &&\n \"parentId\" in part &&\n part.parentId\n ) {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"reasoning\" &&\n \"parentId\" in c &&\n c.parentId === part.parentId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n text: `${existing.text}\\n\\n${part.text}`,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n assistantMessage.content.push(part);\n }\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T>(\n callbackResults: CallbackResult<T>[],\n joinStrategy?: JoinStrategy,\n) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let pendingNone = false; // true if the previous assistant message had joinStrategy \"none\"\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n isAssistant = false;\n pendingNone = false;\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (\n (pendingNone && output.role !== \"tool\") ||\n !isAssistant ||\n output.role === \"user\" ||\n output.role === \"system\"\n ) {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n\n if (\n output.role === \"assistant\" &&\n (output.convertConfig?.joinStrategy === \"none\" ||\n joinStrategy === \"none\")\n ) {\n pendingNone = true;\n }\n }\n }\n flush();\n return results;\n};\n\nfunction createErrorAssistantMessage(\n error: ReadonlyJSONValue,\n): ThreadAssistantMessage {\n const msg: ThreadAssistantMessage = {\n id: generateErrorMessageId(),\n role: \"assistant\",\n content: [],\n status: { type: \"incomplete\", reason: \"error\", error },\n createdAt: new Date(),\n metadata: {\n unstable_state: null,\n unstable_annotations: [],\n unstable_data: [],\n custom: {},\n steps: [],\n },\n };\n bindExternalStoreMessage(msg, []);\n return msg;\n}\n\nexport const convertExternalMessages = <T extends WeakKey>(\n messages: T[],\n callback: useExternalMessageConverter.Callback<T>,\n isRunning: boolean,\n metadata: useExternalMessageConverter.Metadata,\n) => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n const output = callback(message, metadata);\n const outputs = Array.isArray(output) ? output : [output];\n const result = { input: message, outputs };\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults);\n\n const result = chunks.map((message, idx) => {\n const isLast = idx === chunks.length - 1;\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? metadata.error : undefined,\n );\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n });\n\n if (metadata.error) {\n const lastMessage = result.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n result.push(createErrorAssistantMessage(metadata.error));\n }\n }\n\n return result;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n joinStrategy,\n metadata,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n joinStrategy?: JoinStrategy | undefined;\n metadata?: useExternalMessageConverter.Metadata | undefined;\n}) => {\n const state = useMemo(\n () => ({\n metadata: metadata ?? {},\n callback,\n callbackCache: new WeakMap<T, CallbackResult<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }),\n [callback, metadata],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (!result) {\n const output = state.callback(message, state.metadata);\n const outputs = Array.isArray(output) ? output : [output];\n result = { input: message, outputs };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(\n (m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs))\n return cached;\n state.chunkCache.set(key, m);\n return m;\n },\n );\n\n const threadMessages = state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? state.metadata.error : undefined,\n );\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessages<T>(cache);\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n },\n );\n\n bindExternalStoreMessage(threadMessages, messages);\n\n if (state.metadata.error) {\n const lastMessage = threadMessages.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n threadMessages.push(createErrorAssistantMessage(state.metadata.error));\n }\n }\n\n return threadMessages;\n }, [state, messages, isRunning, joinStrategy]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"external-message-converter.js","names":["c","_c","useMemo","useState","ThreadMessageConverter","getExternalStoreMessages","symbolInnerMessage","bindExternalStoreMessage","fromThreadMessageLike","ThreadMessageLike","getAutoStatus","isAutoStatus","ToolExecutionStatus","ReadonlyJSONValue","generateErrorMessageId","ThreadAssistantMessage","ThreadMessage","ToolCallMessagePart","MessageTiming","JoinStrategy","ThreadMessageLikeContentItem","Exclude","isPendingToolCall","type","result","undefined","isInterruptedToolCall","interrupt","approval","approved","resolution","useExternalMessageConverter","Message","convertConfig","joinStrategy","role","toolCallId","toolName","artifact","isError","messages","Metadata","toolStatuses","Record","error","messageTiming","Callback","message","T","metadata","CallbackResult","input","outputs","CallbackCacheEntry","callback","ChunkResult","inputs","Mutable","P","mergeInnerMessages","existing","incoming","joinExternalMessages","assistantMessage","Omit","content","output","toolCallIdx","findIndex","toolCall","Error","const","text","map","length","id","createdAt","status","attachments","unstable_state","unstable_annotations","unstable_data","steps","custom","timing","submittedFeedback","isOptimistic","part","existingIdx","parentId","push","unsupportedRole","chunkExternalMessages","callbackResults","results","isAssistant","pendingNone","flush","callbackResult","at","createErrorAssistantMessage","msg","reason","Date","convertExternalMessages","WeakKey","isRunning","Array","isArray","chunks","idx","isLast","joined","hasInterruptedToolCalls","some","hasPendingToolCalls","autoStatus","newMessage","toString","lastMessage","t0","$","caches","_temp","t1","t2","state","threadMessages","callbackCache","get","set","t3","chunkCache","m","key","cached","shallowArrayEqual","converterCache","convertMessages","cache","message_0","a","b","i","WeakMap"],"sources":["../../../src/react/runtimes/external-message-converter.ts"],"sourcesContent":["\"use client\";\n\nimport { useMemo, useState } from \"react\";\nimport { ThreadMessageConverter } from \"../../runtimes/external-store/thread-message-converter\";\nimport {\n getExternalStoreMessages,\n symbolInnerMessage,\n bindExternalStoreMessage,\n} from \"../../runtime/utils/external-store-message\";\nimport {\n fromThreadMessageLike,\n type ThreadMessageLike,\n} from \"../../runtime/utils/thread-message-like\";\nimport { getAutoStatus, isAutoStatus } from \"../../runtime/utils/auto-status\";\nimport type { ToolExecutionStatus } from \"../../runtimes/tool-invocations/ToolInvocationTracker\";\nimport type { ReadonlyJSONValue } from \"assistant-stream/utils\";\nimport { generateErrorMessageId } from \"../../utils/id\";\nimport type {\n ThreadAssistantMessage,\n ThreadMessage,\n ToolCallMessagePart,\n} from \"../../types/message\";\nimport type { MessageTiming } from \"../../types/message\";\n\nexport type JoinStrategy = \"concat-content\" | \"none\";\n\ntype ThreadMessageLikeContentItem = Exclude<\n ThreadMessageLike[\"content\"],\n string\n>[number];\n\nconst isPendingToolCall = (c: ThreadMessageLikeContentItem): boolean =>\n c.type === \"tool-call\" && c.result === undefined;\n\nconst isInterruptedToolCall = (c: ThreadMessageLikeContentItem): boolean => {\n if (c.type !== \"tool-call\" || c.result !== undefined) return false;\n return (\n c.interrupt != null ||\n (c.approval != null &&\n c.approval.approved === undefined &&\n c.approval.resolution === undefined)\n );\n};\n\nexport namespace useExternalMessageConverter {\n export type Message =\n | (ThreadMessageLike & {\n readonly convertConfig?: {\n readonly joinStrategy?: JoinStrategy;\n };\n })\n | {\n role: \"tool\";\n toolCallId: string;\n toolName?: string | undefined;\n result: any;\n artifact?: any;\n isError?: boolean;\n messages?: readonly ThreadMessage[];\n };\n\n export type Metadata = {\n readonly toolStatuses?: Record<string, ToolExecutionStatus>;\n readonly error?: ReadonlyJSONValue;\n readonly messageTiming?: Record<string, MessageTiming>;\n };\n\n export type Callback<T> = (\n message: T,\n metadata: Metadata,\n ) => Message | Message[];\n}\n\ntype CallbackResult<T> = {\n input: T;\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype CallbackCacheEntry<T> = CallbackResult<T> & {\n metadata: useExternalMessageConverter.Metadata;\n callback: useExternalMessageConverter.Callback<T>;\n};\n\ntype ChunkResult<T> = {\n inputs: T[];\n outputs: useExternalMessageConverter.Message[];\n};\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\nconst mergeInnerMessages = (existing: object, incoming: object) => ({\n [symbolInnerMessage]: [\n ...((existing as any)[symbolInnerMessage] ?? []),\n ...((incoming as any)[symbolInnerMessage] ?? []),\n ],\n});\n\nconst joinExternalMessages = (\n messages: readonly useExternalMessageConverter.Message[],\n): ThreadMessageLike => {\n const assistantMessage: Mutable<Omit<ThreadMessageLike, \"metadata\">> & {\n content: Exclude<ThreadMessageLike[\"content\"][0], string>[];\n metadata?: Mutable<ThreadMessageLike[\"metadata\"]>;\n } = {\n role: \"assistant\",\n content: [],\n };\n for (const output of messages) {\n if (output.role === \"tool\") {\n const toolCallIdx = assistantMessage.content.findIndex(\n (c) => c.type === \"tool-call\" && c.toolCallId === output.toolCallId,\n );\n // Ignore orphaned tool results so one bad tool message does not\n // prevent rendering the rest of the conversation.\n if (toolCallIdx !== -1) {\n const toolCall = assistantMessage.content[\n toolCallIdx\n ]! as ToolCallMessagePart;\n if (output.toolName !== undefined) {\n if (toolCall.toolName !== output.toolName)\n throw new Error(\n `Tool call name ${output.toolCallId} ${output.toolName} does not match existing tool call ${toolCall.toolName}`,\n );\n }\n assistantMessage.content[toolCallIdx] = {\n ...toolCall,\n ...{\n [symbolInnerMessage]: [\n ...((toolCall as any)[symbolInnerMessage] ?? []),\n output,\n ],\n },\n result: output.result,\n artifact: output.artifact,\n isError: output.isError,\n messages: output.messages,\n };\n }\n } else {\n const role = output.role;\n const content = (\n typeof output.content === \"string\"\n ? [{ type: \"text\" as const, text: output.content }]\n : output.content\n ).map((c) => ({\n ...c,\n ...{ [symbolInnerMessage]: [output] },\n }));\n switch (role) {\n case \"system\":\n case \"user\":\n return {\n ...output,\n content,\n };\n case \"assistant\":\n if (assistantMessage.content.length === 0) {\n assistantMessage.id = output.id;\n assistantMessage.createdAt ??= output.createdAt;\n assistantMessage.status ??= output.status;\n\n if (output.attachments) {\n assistantMessage.attachments = [\n ...(assistantMessage.attachments ?? []),\n ...output.attachments,\n ];\n }\n\n if (output.metadata) {\n assistantMessage.metadata ??= {};\n if (output.metadata.unstable_state !== undefined) {\n assistantMessage.metadata.unstable_state =\n output.metadata.unstable_state;\n }\n if (output.metadata.unstable_annotations) {\n assistantMessage.metadata.unstable_annotations = [\n ...(assistantMessage.metadata.unstable_annotations ?? []),\n ...output.metadata.unstable_annotations,\n ];\n }\n if (output.metadata.unstable_data) {\n assistantMessage.metadata.unstable_data = [\n ...(assistantMessage.metadata.unstable_data ?? []),\n ...output.metadata.unstable_data,\n ];\n }\n if (output.metadata.steps) {\n assistantMessage.metadata.steps = [\n ...(assistantMessage.metadata.steps ?? []),\n ...output.metadata.steps,\n ];\n }\n if (output.metadata.custom) {\n assistantMessage.metadata.custom = {\n ...(assistantMessage.metadata.custom ?? {}),\n ...output.metadata.custom,\n };\n }\n\n if (output.metadata.timing) {\n assistantMessage.metadata.timing = output.metadata.timing;\n }\n\n if (output.metadata.submittedFeedback) {\n assistantMessage.metadata.submittedFeedback =\n output.metadata.submittedFeedback;\n }\n\n if (output.metadata.isOptimistic) {\n assistantMessage.metadata.isOptimistic = true;\n }\n }\n // TODO keep this in sync\n }\n\n // Add content parts, merging reasoning parts with same parentId\n for (const part of content) {\n if (part.type === \"tool-call\") {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"tool-call\" && c.toolCallId === part.toolCallId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n ...part,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n\n if (\n part.type === \"reasoning\" &&\n \"parentId\" in part &&\n part.parentId\n ) {\n const existingIdx = assistantMessage.content.findIndex(\n (c) =>\n c.type === \"reasoning\" &&\n \"parentId\" in c &&\n c.parentId === part.parentId,\n );\n if (existingIdx !== -1) {\n const existing = assistantMessage.content[\n existingIdx\n ] as typeof part;\n assistantMessage.content[existingIdx] = {\n ...existing,\n text: `${existing.text}\\n\\n${part.text}`,\n ...mergeInnerMessages(existing, part),\n };\n continue;\n }\n }\n assistantMessage.content.push(part);\n }\n break;\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n }\n }\n return assistantMessage;\n};\n\nconst chunkExternalMessages = <T>(\n callbackResults: CallbackResult<T>[],\n joinStrategy?: JoinStrategy,\n) => {\n const results: ChunkResult<T>[] = [];\n let isAssistant = false;\n let pendingNone = false; // true if the previous assistant message had joinStrategy \"none\"\n let inputs: T[] = [];\n let outputs: useExternalMessageConverter.Message[] = [];\n\n const flush = () => {\n if (outputs.length) {\n results.push({\n inputs,\n outputs,\n });\n }\n inputs = [];\n outputs = [];\n isAssistant = false;\n pendingNone = false;\n };\n\n for (const callbackResult of callbackResults) {\n for (const output of callbackResult.outputs) {\n if (\n (pendingNone && output.role !== \"tool\") ||\n !isAssistant ||\n output.role === \"user\" ||\n output.role === \"system\"\n ) {\n flush();\n }\n isAssistant = output.role === \"assistant\" || output.role === \"tool\";\n\n if (inputs.at(-1) !== callbackResult.input) {\n inputs.push(callbackResult.input);\n }\n outputs.push(output);\n\n if (\n output.role === \"assistant\" &&\n (output.convertConfig?.joinStrategy === \"none\" ||\n joinStrategy === \"none\")\n ) {\n pendingNone = true;\n }\n }\n }\n flush();\n return results;\n};\n\nfunction createErrorAssistantMessage(\n error: ReadonlyJSONValue,\n): ThreadAssistantMessage {\n const msg: ThreadAssistantMessage = {\n id: generateErrorMessageId(),\n role: \"assistant\",\n content: [],\n status: { type: \"incomplete\", reason: \"error\", error },\n createdAt: new Date(),\n metadata: {\n unstable_state: null,\n unstable_annotations: [],\n unstable_data: [],\n custom: {},\n steps: [],\n },\n };\n bindExternalStoreMessage(msg, []);\n return msg;\n}\n\nexport const convertExternalMessages = <T extends WeakKey>(\n messages: T[],\n callback: useExternalMessageConverter.Callback<T>,\n isRunning: boolean,\n metadata: useExternalMessageConverter.Metadata,\n) => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n const output = callback(message, metadata);\n const outputs = Array.isArray(output) ? output : [output];\n const result = { input: message, outputs };\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults);\n\n const result = chunks.map((message, idx) => {\n const isLast = idx === chunks.length - 1;\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? metadata.error : undefined,\n );\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n });\n\n if (metadata.error) {\n const lastMessage = result.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n result.push(createErrorAssistantMessage(metadata.error));\n }\n }\n\n return result;\n};\n\nexport const useExternalMessageConverter = <T extends WeakKey>({\n callback,\n messages,\n isRunning,\n joinStrategy,\n metadata,\n}: {\n callback: useExternalMessageConverter.Callback<T>;\n messages: T[];\n isRunning: boolean;\n joinStrategy?: JoinStrategy | undefined;\n metadata?: useExternalMessageConverter.Metadata | undefined;\n}) => {\n // The caches live for the component lifetime; React Compiler hoists\n // allocations without reactive dependencies out of useMemo, so re-creating\n // them on dependency change would not survive compilation. Staleness is\n // instead tracked per entry via the metadata/callback that produced it,\n // keeping correctness independent of memoization (which React treats as\n // droppable). A \"use no memo\" opt-out would restore the useMemo semantics\n // but leave cache flushing coupled to memo firing.\n const [caches] = useState(() => ({\n callbackCache: new WeakMap<T, CallbackCacheEntry<T>>(),\n chunkCache: new WeakMap<\n useExternalMessageConverter.Message,\n ChunkResult<T>\n >(),\n converterCache: new ThreadMessageConverter(),\n }));\n\n const state = useMemo(\n () => ({\n metadata: metadata ?? {},\n callback,\n ...caches,\n }),\n [callback, metadata, caches],\n );\n\n return useMemo(() => {\n const callbackResults: CallbackResult<T>[] = [];\n for (const message of messages) {\n let result = state.callbackCache.get(message);\n if (\n !result ||\n result.metadata !== state.metadata ||\n result.callback !== state.callback\n ) {\n const output = state.callback(message, state.metadata);\n const outputs = Array.isArray(output) ? output : [output];\n result = {\n input: message,\n outputs,\n metadata: state.metadata,\n callback: state.callback,\n };\n state.callbackCache.set(message, result);\n }\n callbackResults.push(result);\n }\n\n const chunks = chunkExternalMessages(callbackResults, joinStrategy).map(\n (m) => {\n const key = m.outputs[0];\n if (!key) return m;\n\n const cached = state.chunkCache.get(key);\n if (cached && shallowArrayEqual(cached.outputs, m.outputs))\n return cached;\n state.chunkCache.set(key, m);\n return m;\n },\n );\n\n const threadMessages = state.converterCache.convertMessages(\n chunks,\n (cache, message, idx) => {\n const isLast = idx === chunks.length - 1;\n\n const joined = joinExternalMessages(message.outputs);\n const hasInterruptedToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isInterruptedToolCall);\n const hasPendingToolCalls =\n typeof joined.content === \"object\" &&\n joined.content.some(isPendingToolCall);\n const autoStatus = getAutoStatus(\n isLast,\n isRunning,\n hasInterruptedToolCalls,\n hasPendingToolCalls,\n isLast ? state.metadata.error : undefined,\n );\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n ) {\n const inputs = getExternalStoreMessages<T>(cache);\n if (shallowArrayEqual(inputs, message.inputs)) {\n return cache;\n }\n }\n\n const newMessage = fromThreadMessageLike(\n joined,\n idx.toString(),\n autoStatus,\n );\n bindExternalStoreMessage(newMessage, message.inputs);\n return newMessage;\n },\n );\n\n bindExternalStoreMessage(threadMessages, messages);\n\n if (state.metadata.error) {\n const lastMessage = threadMessages.at(-1);\n if (!lastMessage || lastMessage.role !== \"assistant\") {\n threadMessages.push(createErrorAssistantMessage(state.metadata.error));\n }\n }\n\n return threadMessages;\n }, [state, messages, isRunning, joinStrategy]);\n};\n\nconst shallowArrayEqual = (a: unknown[], b: unknown[]) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ExternalStoreAdapter } from "../../runtimes/external-store/external-store-adapter.js";
|
|
2
2
|
import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
|
|
3
|
-
|
|
4
3
|
//#region src/react/runtimes/useExternalStoreRuntime.d.ts
|
|
5
4
|
declare const useExternalStoreRuntime: <T>(store: ExternalStoreAdapter<T>) => AssistantRuntime;
|
|
6
5
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExternalStoreRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreRuntime.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useExternalStoreRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreRuntime.ts"],"mappings":";;;cASa,0BAA2B,GACtC,OAAO,qBAAqB,OAC3B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ExternalStoreSharedOptions } from "../../runtimes/external-store/external-store-shared-options.js";
|
|
2
|
-
|
|
3
2
|
//#region src/react/runtimes/useExternalStoreSharedOptions.d.ts
|
|
4
3
|
declare const useExternalStoreSharedOptions: (options: ExternalStoreSharedOptions) => ExternalStoreSharedOptions;
|
|
5
4
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExternalStoreSharedOptions.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useExternalStoreSharedOptions.d.ts","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"mappings":";;cAKa,gCACX,SAAS,+BACR"}
|
|
@@ -6,10 +6,11 @@ import { ChatModelAdapter } from "../../runtime/utils/chat-model-adapter.js";
|
|
|
6
6
|
import { ThreadMessageLike } from "../../runtime/utils/thread-message-like.js";
|
|
7
7
|
import { SuggestionAdapter } from "../../adapters/suggestion.js";
|
|
8
8
|
import { ThreadHistoryAdapter } from "../../adapters/thread-history.js";
|
|
9
|
+
import "../../adapters/index.js";
|
|
9
10
|
import { LocalRuntimeOptionsBase } from "../../runtimes/local/local-runtime-options.js";
|
|
10
11
|
import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
|
|
12
|
+
import "../../index.js";
|
|
11
13
|
import { AssistantCloud } from "assistant-cloud";
|
|
12
|
-
|
|
13
14
|
//#region src/react/runtimes/useLocalRuntime.d.ts
|
|
14
15
|
type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, "adapters"> & {
|
|
15
16
|
cloud?: AssistantCloud | undefined;
|
|
@@ -36,10 +37,7 @@ declare const splitLocalRuntimeOptions: <T extends LocalRuntimeOptions>(options:
|
|
|
36
37
|
};
|
|
37
38
|
otherOptions: Omit<T, "adapters" | "maxSteps" | "unstable_humanToolNames" | "unstable_enableMessageQueue" | "cloud" | "initialMessages">;
|
|
38
39
|
};
|
|
39
|
-
declare const useLocalRuntime: (chatModel: ChatModelAdapter, {
|
|
40
|
-
cloud,
|
|
41
|
-
...options
|
|
42
|
-
}?: LocalRuntimeOptions) => AssistantRuntime;
|
|
40
|
+
declare const useLocalRuntime: (chatModel: ChatModelAdapter, { cloud, ...options }?: LocalRuntimeOptions) => AssistantRuntime;
|
|
43
41
|
//#endregion
|
|
44
42
|
export { LocalRuntimeOptions, splitLocalRuntimeOptions, useLocalRuntime };
|
|
45
43
|
//# sourceMappingURL=useLocalRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;;KAcY,sBAAsB,KAAK;EACrC,QAAQ;EACR,2BAA2B;EAC3B,WAAW,KAAK;;cA2DL,2BAA4B,UAAU,qBACjD,SAAS;;;;;;;;;;;;;;;;;;;;cAyBE,kBACX,WAAW,oBACX,UAAA,YAAuB,wBACtB"}
|
|
@@ -18,6 +18,7 @@ const useLocalThreadRuntime = (chatModel, { initialMessages, ...options }) => {
|
|
|
18
18
|
};
|
|
19
19
|
const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));
|
|
20
20
|
const threadIdRef = useRef(void 0);
|
|
21
|
+
const historyLoadPromiseRef = useRef(void 0);
|
|
21
22
|
threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);
|
|
22
23
|
useEffect(() => {
|
|
23
24
|
runtime.threads.getMainThreadRuntimeCore().__internal_setGetThreadId(() => threadIdRef.current);
|
|
@@ -29,8 +30,15 @@ const useLocalThreadRuntime = (chatModel, { initialMessages, ...options }) => {
|
|
|
29
30
|
}, [runtime]);
|
|
30
31
|
useEffect(() => {
|
|
31
32
|
runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);
|
|
32
|
-
runtime.threads.getMainThreadRuntimeCore().__internal_load();
|
|
33
33
|
});
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const loadPromise = runtime.threads.getMainThreadRuntimeCore().__internal_load();
|
|
36
|
+
if (historyLoadPromiseRef.current === loadPromise) return;
|
|
37
|
+
historyLoadPromiseRef.current = loadPromise;
|
|
38
|
+
loadPromise.catch((error) => {
|
|
39
|
+
console.error("[assistant-ui] local thread history load failed:", error);
|
|
40
|
+
});
|
|
41
|
+
}, [runtime]);
|
|
34
42
|
useEffect(() => {
|
|
35
43
|
if (!modelContext) return void 0;
|
|
36
44
|
return runtime.registerModelContextProvider(modelContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLocalRuntime.js","names":["useEffect","useMemo","useRef","useState","AssistantRuntime","ChatModelAdapter","ThreadMessageLike","LocalRuntimeOptionsBase","AssistantRuntimeImpl","LocalRuntimeCore","useAuiState","useRemoteThreadListRuntime","useCloudThreadListAdapter","useRuntimeAdapters","AssistantCloud","LocalRuntimeOptions","Omit","cloud","initialMessages","adapters","useLocalThreadRuntime","chatModel","options","modelContext","threadListAdapters","opt","runtime","threadIdRef","undefined","current","s","threadListItem","remoteId","threads","getMainThreadRuntimeCore","__internal_setGetThreadId","detach","__internal_setOptions","__internal_load","registerModelContextProvider","splitLocalRuntimeOptions","T","maxSteps","unstable_humanToolNames","unstable_enableMessageQueue","rest","localRuntimeOptions","otherOptions","useLocalRuntime","cloudAdapter","runtimeHook","RuntimeHook","adapter","allowNesting"],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n AssistantRuntime,\n ChatModelAdapter,\n ThreadMessageLike,\n} from \"../../index\";\nimport type { LocalRuntimeOptionsBase } from \"../../runtimes/local/local-runtime-options\";\nimport { AssistantRuntimeImpl, LocalRuntimeCore } from \"../../internal\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useRemoteThreadListRuntime } from \"./useRemoteThreadListRuntime\";\nimport { useCloudThreadListAdapter } from \"./cloud/useCloudThreadListAdapter\";\nimport { useRuntimeAdapters } from \"./RuntimeAdapterProvider\";\nimport type { AssistantCloud } from \"assistant-cloud\";\n\nexport type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, \"adapters\"> & {\n cloud?: AssistantCloud | undefined;\n initialMessages?: readonly ThreadMessageLike[] | undefined;\n adapters?: Omit<LocalRuntimeOptionsBase[\"adapters\"], \"chatModel\"> | undefined;\n};\n\nconst useLocalThreadRuntime = (\n chatModel: ChatModelAdapter,\n { initialMessages, ...options }: LocalRuntimeOptions,\n): AssistantRuntime => {\n const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};\n const opt = {\n ...options,\n adapters: {\n ...threadListAdapters,\n ...options.adapters,\n chatModel,\n },\n };\n\n const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));\n\n const threadIdRef = useRef<string | undefined>(undefined);\n threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);\n\n useEffect(() => {\n runtime.threads\n .getMainThreadRuntimeCore()\n .__internal_setGetThreadId(() => threadIdRef.current);\n }, [runtime]);\n\n useEffect(() => {\n return () => {\n runtime.threads.getMainThreadRuntimeCore().detach();\n };\n }, [runtime]);\n\n useEffect(() => {\n runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);\n runtime.threads.getMainThreadRuntimeCore().__internal_load();\n });\n\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const splitLocalRuntimeOptions = <T extends LocalRuntimeOptions>(\n options: T,\n) => {\n const {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n unstable_enableMessageQueue,\n ...rest\n } = options;\n\n return {\n localRuntimeOptions: {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n unstable_enableMessageQueue,\n },\n otherOptions: rest,\n };\n};\n\nexport const useLocalRuntime = (\n chatModel: ChatModelAdapter,\n { cloud, ...options }: LocalRuntimeOptions = {},\n): AssistantRuntime => {\n const cloudAdapter = useCloudThreadListAdapter({ cloud });\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n return useLocalThreadRuntime(chatModel, options);\n },\n adapter: cloudAdapter,\n allowNesting: true,\n });\n};\n"],"mappings":";;;;;;;;AAoBA,MAAMoB,yBACJC,WACA,EAAEH,iBAAiB,GAAGI,cACD;CACrB,MAAM,EAAEC,cAAc,GAAGC,uBAAuBX,mBAAmB,KAAK,CAAC;CACzE,MAAMY,MAAM;EACV,GAAGH;EACHH,UAAU;GACR,GAAGK;GACH,GAAGF,QAAQH;GACXE;EACF;CACF;CAEA,MAAM,CAACK,WAAWvB,eAAe,IAAIM,iBAAiBgB,KAAKP,eAAe,CAAC;CAE3E,MAAMS,cAAczB,OAA2B0B,KAAAA,CAAS;
|
|
1
|
+
{"version":3,"file":"useLocalRuntime.js","names":["useEffect","useMemo","useRef","useState","AssistantRuntime","ChatModelAdapter","ThreadMessageLike","LocalRuntimeOptionsBase","AssistantRuntimeImpl","LocalRuntimeCore","useAuiState","useRemoteThreadListRuntime","useCloudThreadListAdapter","useRuntimeAdapters","AssistantCloud","LocalRuntimeOptions","Omit","cloud","initialMessages","adapters","useLocalThreadRuntime","chatModel","options","modelContext","threadListAdapters","opt","runtime","threadIdRef","undefined","historyLoadPromiseRef","Promise","current","s","threadListItem","remoteId","threads","getMainThreadRuntimeCore","__internal_setGetThreadId","detach","__internal_setOptions","loadPromise","__internal_load","catch","error","console","registerModelContextProvider","splitLocalRuntimeOptions","T","maxSteps","unstable_humanToolNames","unstable_enableMessageQueue","rest","localRuntimeOptions","otherOptions","useLocalRuntime","cloudAdapter","runtimeHook","RuntimeHook","adapter","allowNesting"],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n AssistantRuntime,\n ChatModelAdapter,\n ThreadMessageLike,\n} from \"../../index\";\nimport type { LocalRuntimeOptionsBase } from \"../../runtimes/local/local-runtime-options\";\nimport { AssistantRuntimeImpl, LocalRuntimeCore } from \"../../internal\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useRemoteThreadListRuntime } from \"./useRemoteThreadListRuntime\";\nimport { useCloudThreadListAdapter } from \"./cloud/useCloudThreadListAdapter\";\nimport { useRuntimeAdapters } from \"./RuntimeAdapterProvider\";\nimport type { AssistantCloud } from \"assistant-cloud\";\n\nexport type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, \"adapters\"> & {\n cloud?: AssistantCloud | undefined;\n initialMessages?: readonly ThreadMessageLike[] | undefined;\n adapters?: Omit<LocalRuntimeOptionsBase[\"adapters\"], \"chatModel\"> | undefined;\n};\n\nconst useLocalThreadRuntime = (\n chatModel: ChatModelAdapter,\n { initialMessages, ...options }: LocalRuntimeOptions,\n): AssistantRuntime => {\n const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};\n const opt = {\n ...options,\n adapters: {\n ...threadListAdapters,\n ...options.adapters,\n chatModel,\n },\n };\n\n const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));\n\n const threadIdRef = useRef<string | undefined>(undefined);\n const historyLoadPromiseRef = useRef<Promise<void> | undefined>(undefined);\n threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);\n\n useEffect(() => {\n runtime.threads\n .getMainThreadRuntimeCore()\n .__internal_setGetThreadId(() => threadIdRef.current);\n }, [runtime]);\n\n useEffect(() => {\n return () => {\n runtime.threads.getMainThreadRuntimeCore().detach();\n };\n }, [runtime]);\n\n useEffect(() => {\n runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);\n });\n\n useEffect(() => {\n const loadPromise = runtime.threads\n .getMainThreadRuntimeCore()\n .__internal_load();\n if (historyLoadPromiseRef.current === loadPromise) return;\n\n historyLoadPromiseRef.current = loadPromise;\n void loadPromise.catch((error: unknown) => {\n console.error(\"[assistant-ui] local thread history load failed:\", error);\n });\n }, [runtime]);\n\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const splitLocalRuntimeOptions = <T extends LocalRuntimeOptions>(\n options: T,\n) => {\n const {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n unstable_enableMessageQueue,\n ...rest\n } = options;\n\n return {\n localRuntimeOptions: {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n unstable_enableMessageQueue,\n },\n otherOptions: rest,\n };\n};\n\nexport const useLocalRuntime = (\n chatModel: ChatModelAdapter,\n { cloud, ...options }: LocalRuntimeOptions = {},\n): AssistantRuntime => {\n const cloudAdapter = useCloudThreadListAdapter({ cloud });\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n return useLocalThreadRuntime(chatModel, options);\n },\n adapter: cloudAdapter,\n allowNesting: true,\n });\n};\n"],"mappings":";;;;;;;;AAoBA,MAAMoB,yBACJC,WACA,EAAEH,iBAAiB,GAAGI,cACD;CACrB,MAAM,EAAEC,cAAc,GAAGC,uBAAuBX,mBAAmB,KAAK,CAAC;CACzE,MAAMY,MAAM;EACV,GAAGH;EACHH,UAAU;GACR,GAAGK;GACH,GAAGF,QAAQH;GACXE;EACF;CACF;CAEA,MAAM,CAACK,WAAWvB,eAAe,IAAIM,iBAAiBgB,KAAKP,eAAe,CAAC;CAE3E,MAAMS,cAAczB,OAA2B0B,KAAAA,CAAS;CACxD,MAAMC,wBAAwB3B,OAAkC0B,KAAAA,CAAS;CACzED,YAAYI,UAAUrB,aAAasB,MAAMA,EAAEC,eAAeC,QAAQ;CAElElC,gBAAgB;EACd0B,QAAQS,QACLC,yBAAyB,CAAC,CAC1BC,gCAAgCV,YAAYI,OAAO;CACxD,GAAG,CAACL,OAAO,CAAC;CAEZ1B,gBAAgB;EACd,aAAa;GACX0B,QAAQS,QAAQC,yBAAyB,CAAC,CAACE,OAAO;EACpD;CACF,GAAG,CAACZ,OAAO,CAAC;CAEZ1B,gBAAgB;EACd0B,QAAQS,QAAQC,yBAAyB,CAAC,CAACG,sBAAsBd,GAAG;CACtE,CAAC;CAEDzB,gBAAgB;EACd,MAAMwC,cAAcd,QAAQS,QACzBC,yBAAyB,CAAC,CAC1BK,gBAAgB;EACnB,IAAIZ,sBAAsBE,YAAYS,aAAa;EAEnDX,sBAAsBE,UAAUS;EAChC,YAAiBE,OAAOC,UAAmB;GACzCC,QAAQD,MAAM,oDAAoDA,KAAK;EACzE,CAAC;CACH,GAAG,CAACjB,OAAO,CAAC;CAEZ1B,gBAAgB;EACd,IAAI,CAACuB,cAAc,OAAOK,KAAAA;EAC1B,OAAOF,QAAQmB,6BAA6BtB,YAAY;CAC1D,GAAG,CAACA,cAAcG,OAAO,CAAC;CAE1B,OAAOzB,cAAc,IAAIO,qBAAqBkB,OAAO,GAAG,CAACA,OAAO,CAAC;AACnE;AAEA,MAAaoB,4BACXxB,YACG;CACH,MAAM,EACJL,OACAC,iBACA8B,UACA7B,UACA8B,yBACAC,6BACA,GAAGC,SACD7B;CAEJ,OAAO;EACL8B,qBAAqB;GACnBnC;GACAC;GACA8B;GACA7B;GACA8B;GACAC;EACF;EACAG,cAAcF;CAChB;AACF;AAEA,MAAaG,mBACXjC,WACA,EAAEJ,OAAO,GAAGK,YAAiC,CAAC,MACzB;CAErB,OAAOX,2BAA2B;EAChC6C,aAAa,SAASC,cAAc;GAClC,OAAOrC,sBAAsBC,WAAWC,OAAO;EACjD;EACAoC,SALmB9C,0BAA0B,EAAEK,MAAM,CAK5CsC;EACTI,cAAc;CAChB,CAAC;AACH"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { RemoteThreadListOptions } from "../../runtimes/remote-thread-list/types.js";
|
|
2
2
|
import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
|
|
3
|
-
|
|
4
3
|
//#region src/react/runtimes/useRemoteThreadListRuntime.d.ts
|
|
5
4
|
declare const useRemoteThreadListRuntime: (options: RemoteThreadListOptions) => AssistantRuntime;
|
|
6
5
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;cA+Ca,6BACX,SAAS,4BACR"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { MessageTiming } from "../../types/message.js";
|
|
2
2
|
import { StreamingTimingAccessors, StreamingTimingOptions, StreamingTimingState } from "../../runtime/utils/streaming-timing.js";
|
|
3
|
-
|
|
4
3
|
//#region src/react/runtimes/useStreamingTiming.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Tracks per-message streaming timing client-side and returns finalized
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStreamingTiming.d.ts","names":[],"sources":["../../../src/react/runtimes/useStreamingTiming.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStreamingTiming.d.ts","names":[],"sources":["../../../src/react/runtimes/useStreamingTiming.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;cAmCa,qBAAsB,UACjC,mBAAmB,YACnB,oBACA,WAAW,yBAAyB,WACpC,UAAU,2BACT,eAAe"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DataMessagePart, FileMessagePart, GenerativeUIMessagePart, GenerativeUISpec, ImageMessagePart, MessagePartStatus, ReasoningMessagePart, SourceMessagePart, TextMessagePart, ToolApprovalResponse, ToolCallMessagePart, Unstable_AudioMessagePart } from "../../types/message.js";
|
|
2
2
|
import { QuoteInfo } from "../../types/quote.js";
|
|
3
3
|
import { MessagePartState } from "../../runtime/api/message-part-runtime.js";
|
|
4
|
+
import "../../index.js";
|
|
4
5
|
import { ToolResponse } from "assistant-stream";
|
|
5
6
|
import { ComponentType, PropsWithChildren } from "react";
|
|
6
|
-
|
|
7
7
|
//#region src/react/types/MessagePartComponentTypes.d.ts
|
|
8
8
|
type EmptyMessagePartProps = {
|
|
9
9
|
status: MessagePartStatus;
|
|
@@ -65,8 +65,11 @@ type GenerativeUIComponentRegistry = Record<string, ComponentType<any>>;
|
|
|
65
65
|
type GenerativeUIMessagePartProps = MessagePartState & GenerativeUIMessagePart;
|
|
66
66
|
type GenerativeUIMessagePartComponent = ComponentType<GenerativeUIMessagePartProps>;
|
|
67
67
|
type GenerativeUIRenderProps = {
|
|
68
|
-
/** The JSON spec to render. */
|
|
69
|
-
|
|
68
|
+
/** The JSON spec to render. */
|
|
69
|
+
spec: GenerativeUISpec;
|
|
70
|
+
/** The component allowlist. */
|
|
71
|
+
components: GenerativeUIComponentRegistry;
|
|
72
|
+
/** Optional fallback for unknown component names. */
|
|
70
73
|
Fallback?: ComponentType<{
|
|
71
74
|
component: string;
|
|
72
75
|
props?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessagePartComponentTypes.d.ts","names":[],"sources":["../../../src/react/types/MessagePartComponentTypes.ts"],"mappings":";;;;;;;KAmBY
|
|
1
|
+
{"version":3,"file":"MessagePartComponentTypes.d.ts","names":[],"sources":["../../../src/react/types/MessagePartComponentTypes.ts"],"mappings":";;;;;;;KAmBY;EACV,QAAQ;;KAEE,4BAA4B,cAAc;KAE1C,uBAAuB,mBAAmB;KAC1C,2BAA2B,cAAc;KAEzC,4BAA4B,mBAAmB;KAC/C,gCACV,cAAc;KAEJ,sBAAsB;EAChC;EACA;;KAEU,0BAA0B,cAAc;KAExC,yBAAyB,mBAAmB;KAC5C,6BAA6B,cAAc;KAE3C,wBAAwB,mBAAmB;KAC3C,4BAA4B,cAAc;KAE1C,uBAAuB,mBAAmB;KAC1C,2BAA2B,cAAc;KAEzC,iCAAiC,mBAC3C;KACU,qCACV,cAAc;KAEJ,qBAAqB,WAAW,mBAC1C,gBAAgB;KACN,yBAAyB,WAAW,cAC9C,qBAAqB;KAGX,yBACV,aACA,qBACE,mBACF,oBAAoB,OAAO;;;;;;;EAOzB,YAAY,QAAQ,UAAU,aAAa;;;;;EAK3C,SAAS;;;;;;;EAOT,oBAAoB,UAAU;;;KAItB,6BACV,aACA,iBACE,cAAc,yBAAyB,OAAO;KAEtC,wBAAwB;KACxB,4BAA4B,cAAc;;;;;;;;;KAU1C,gCAAgC,eAAe;KAE/C,+BAA+B,mBACzC;KACU,mCACV,cAAc;KAEJ;;EAEV,MAAM;;EAEN,YAAY;;EAEZ,WAAW;IAAgB;IAAmB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Unsubscribe } from "../../../types/unsubscribe.js";
|
|
2
|
+
import "../../../index.js";
|
|
2
3
|
import { DataMessagePartComponent } from "../MessagePartComponentTypes.js";
|
|
3
|
-
|
|
4
4
|
//#region src/react/types/scopes/dataRenderers.d.ts
|
|
5
5
|
type DataRenderersState = {
|
|
6
6
|
renderers: Record<string, DataMessagePartComponent[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataRenderers.d.ts","names":[],"sources":["../../../../src/react/types/scopes/dataRenderers.ts"],"mappings":";;;;KAGY
|
|
1
|
+
{"version":3,"file":"dataRenderers.d.ts","names":[],"sources":["../../../../src/react/types/scopes/dataRenderers.ts"],"mappings":";;;;KAGY;EACV,WAAW,eAAe;EAC1B,WAAW;;KAGD;EACV,YAAY;EACZ,UAAU,cAAc,QAAQ,2BAA2B;EAC3D,kBAAkB,QAAQ,2BAA2B;;KAG3C;EACV,SAAS"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Unsubscribe } from "../../../types/unsubscribe.js";
|
|
2
|
+
import "../../../index.js";
|
|
2
3
|
import { ToolCallMessagePartComponent } from "../MessagePartComponentTypes.js";
|
|
3
4
|
import { Tool } from "assistant-stream";
|
|
4
|
-
|
|
5
5
|
//#region src/react/types/scopes/interactables.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Schema type matching Tool["parameters"] from assistant-stream.
|
|
@@ -38,7 +38,9 @@ type Unstable_InteractablePersistenceStatus = {
|
|
|
38
38
|
error: unknown;
|
|
39
39
|
};
|
|
40
40
|
type Unstable_InteractablesState = {
|
|
41
|
-
/** Keyed by instance id */
|
|
41
|
+
/** Keyed by instance id */
|
|
42
|
+
definitions: Record<string, Unstable_InteractableDefinition>;
|
|
43
|
+
/** Per-id persistence sync status */
|
|
42
44
|
persistence: Record<string, Unstable_InteractablePersistenceStatus>;
|
|
43
45
|
};
|
|
44
46
|
type Unstable_InteractablePersistedState = Record<string, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactables.d.ts","names":[],"sources":["../../../../src/react/types/scopes/interactables.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"interactables.d.ts","names":[],"sources":["../../../../src/react/types/scopes/interactables.ts"],"mappings":";;;;;;;;;KAQY,mCAAmC,YAC7C,QAAQ;EAAQ;;KAGb;KAEO;EACV;EACA;EACA;EACA,aAAa;EACb;EACA;EACA,QAAQ;;KAGE;EACV;EACA;EACA;EACA,aAAa;EACb;;;;;;EAMA,eAAe;;KAGL;EACV;EACA;;KAGU;;EAEV,aAAa,eAAe;;EAE5B,aAAa,eAAe;;KAGlB,sCAAsC;EAE9C;EAAc;;KAGN;EACV,KAAK,OAAO,6CAA6C;;;;;;EAMzD,SACI,yDAGA,QAAQ;;KAGF;EACV,cAAc;;KAGJ;EACV,YAAY;EACZ,SAAS,KAAK,oCAAoC;EAClD,SAAS,YAAY,UAAU;EAC/B,eAAe;EACf,YAAY,OAAO;EACnB,sBACE,SAAS;EAEX,SAAS;;KAGC;EACV,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Unsubscribe } from "../../../types/unsubscribe.js";
|
|
2
|
+
import "../../../index.js";
|
|
2
3
|
import { ToolCallMessagePartComponent } from "../MessagePartComponentTypes.js";
|
|
3
|
-
|
|
4
4
|
//#region src/react/types/scopes/tools.d.ts
|
|
5
5
|
type McpAppResourceOutput = {
|
|
6
6
|
readonly render: ToolCallMessagePartComponent;
|
|
@@ -11,11 +11,13 @@ type McpAppResourceOutput = {
|
|
|
11
11
|
* registration of it is mounted.
|
|
12
12
|
*/
|
|
13
13
|
type ToolRegistration = {
|
|
14
|
-
readonly render: ToolCallMessagePartComponent;
|
|
14
|
+
readonly render: ToolCallMessagePartComponent;
|
|
15
|
+
/** Whether this UI renders standalone, outside the chain-of-thought trace. */
|
|
15
16
|
readonly standalone: boolean;
|
|
16
17
|
};
|
|
17
18
|
type ToolsState = {
|
|
18
|
-
/** Registered tool UIs (renderer + presentation options) keyed by tool name. */
|
|
19
|
+
/** Registered tool UIs (renderer + presentation options) keyed by tool name. */
|
|
20
|
+
toolUIs: Record<string, readonly ToolRegistration[]>;
|
|
19
21
|
mcpApp?: McpAppResourceOutput | undefined;
|
|
20
22
|
/**
|
|
21
23
|
* @deprecated Use {@link toolUIs} instead, whose entries carry the renderer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","names":[],"sources":["../../../../src/react/types/scopes/tools.ts"],"mappings":";;;;KAGY
|
|
1
|
+
{"version":3,"file":"tools.d.ts","names":[],"sources":["../../../../src/react/types/scopes/tools.ts"],"mappings":";;;;KAGY;WACD,QAAQ;;;;;;;KAQd;WACM,QAAQ;;WAER;;KAGC;;EAEV,SAAS,wBAAwB;EACjC,SAAS;;;;;;EAMT,OAAO,eAAe;;KAGZ;EACV,YAAY;EACZ,UACE,kBACA,QAAQ,8BACR;IAAY;MACX;;KAGO;EACV,SAAS"}
|
|
@@ -2,7 +2,6 @@ import { Unstable_InteractablesClientSchema } from "./scopes/interactables.js";
|
|
|
2
2
|
import { ToolsClientSchema } from "./scopes/tools.js";
|
|
3
3
|
import { InteractablesClientSchema } from "../interactables-legacy/scopes.js";
|
|
4
4
|
import { DataRenderersClientSchema } from "./scopes/dataRenderers.js";
|
|
5
|
-
|
|
6
5
|
//#region src/react/types/store-augmentation.d.ts
|
|
7
6
|
declare module "@assistant-ui/store" {
|
|
8
7
|
interface ScopeRegistry {
|
|
@@ -11,5 +10,5 @@ declare module "@assistant-ui/store" {
|
|
|
11
10
|
interactables: InteractablesClientSchema;
|
|
12
11
|
unstable_interactables: Unstable_InteractablesClientSchema;
|
|
13
12
|
}
|
|
14
|
-
}
|
|
13
|
+
}
|
|
15
14
|
//# sourceMappingURL=store-augmentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-augmentation.d.ts","names":[],"sources":["../../../src/react/types/store-augmentation.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"store-augmentation.d.ts","names":[],"sources":["../../../src/react/types/store-augmentation.ts"],"mappings":";;;;;;YAMY;IACR,OAAO;IACP,eAAe;IACf,eAAe;IACf,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMessageQuote.d.ts","names":[],"sources":["../../../src/react/utils/getMessageQuote.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getMessageQuote.d.ts","names":[],"sources":["../../../src/react/utils/getMessageQuote.ts"],"mappings":";;KAEK;EACH;IACE;;;cAIS,kBACX,OAAO,sBACN"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PartState } from "../../store/scopes/part.js";
|
|
2
2
|
import { ToolsState } from "../types/scopes/tools.js";
|
|
3
|
-
|
|
4
3
|
//#region src/react/utils/groupParts.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Registry context passed to a `groupBy` function as its second argument by
|
|
@@ -9,7 +8,8 @@ import { ToolsState } from "../types/scopes/tools.js";
|
|
|
9
8
|
* without the part itself having to carry that information.
|
|
10
9
|
*/
|
|
11
10
|
type GroupByContext = {
|
|
12
|
-
/** Tool UIs registered in the tool-UI registry, keyed by tool name. */
|
|
11
|
+
/** Tool UIs registered in the tool-UI registry, keyed by tool name. */
|
|
12
|
+
readonly toolUIs?: ToolsState["toolUIs"];
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
15
|
* Hierarchical adjacent-coalescing grouping for message parts.
|