@assistant-ui/react 0.12.9 → 0.12.11
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/client/DataRenderers.d.ts +3 -0
- package/dist/client/DataRenderers.d.ts.map +1 -0
- package/dist/client/DataRenderers.js +33 -0
- package/dist/client/DataRenderers.js.map +1 -0
- package/dist/client/ExternalThread.d.ts +1 -1
- package/dist/client/ExternalThread.d.ts.map +1 -1
- package/dist/client/ExternalThread.js +136 -127
- package/dist/client/ExternalThread.js.map +1 -1
- package/dist/client/InMemoryThreadList.d.ts.map +1 -1
- package/dist/client/InMemoryThreadList.js +62 -53
- package/dist/client/InMemoryThreadList.js.map +1 -1
- package/dist/client/Tools.d.ts.map +1 -1
- package/dist/client/Tools.js +10 -10
- package/dist/client/Tools.js.map +1 -1
- package/dist/client/index.d.ts +4 -3
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +6 -3
- package/dist/client/index.js.map +1 -1
- package/dist/context/providers/ChainOfThoughtByIndicesProvider.js +2 -2
- package/dist/context/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
- package/dist/context/providers/MessageByIndexProvider.js +1 -1
- package/dist/context/providers/MessageByIndexProvider.js.map +1 -1
- package/dist/context/providers/MessageProvider.d.ts +1 -1
- package/dist/context/providers/MessageProvider.d.ts.map +1 -1
- package/dist/context/providers/MessageProvider.js +1 -1
- package/dist/context/providers/MessageProvider.js.map +1 -1
- package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/context/providers/TextMessagePartProvider.js +6 -9
- package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
- package/dist/context/providers/ThreadListItemProvider.js +1 -1
- package/dist/context/providers/ThreadListItemProvider.js.map +1 -1
- package/dist/context/react/utils/ensureBinding.js +1 -1
- package/dist/context/react/utils/ensureBinding.js.map +1 -1
- package/dist/context/react/utils/useRuntimeState.d.ts +1 -1
- package/dist/context/react/utils/useRuntimeState.d.ts.map +1 -1
- package/dist/context/react/utils/useRuntimeState.js.map +1 -1
- package/dist/context/stores/ThreadViewport.d.ts +1 -1
- package/dist/context/stores/ThreadViewport.d.ts.map +1 -1
- package/dist/context/stores/ThreadViewport.js.map +1 -1
- package/dist/devtools/DevToolsHooks.d.ts +1 -1
- package/dist/devtools/DevToolsHooks.d.ts.map +1 -1
- package/dist/hooks/useMessageQuote.d.ts +17 -0
- package/dist/hooks/useMessageQuote.d.ts.map +1 -0
- package/dist/hooks/useMessageQuote.js +20 -0
- package/dist/hooks/useMessageQuote.js.map +1 -0
- package/dist/hooks/useMessageTiming.d.ts +17 -0
- package/dist/hooks/useMessageTiming.d.ts.map +1 -0
- package/dist/hooks/useMessageTiming.js +20 -0
- package/dist/hooks/useMessageTiming.js.map +1 -0
- package/dist/internal.d.ts +3 -11
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +3 -9
- package/dist/internal.js.map +1 -1
- package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/legacy-runtime/AssistantRuntimeProvider.js +1 -2
- package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
- package/dist/legacy-runtime/RuntimeAdapter.js +37 -24
- package/dist/legacy-runtime/RuntimeAdapter.js.map +1 -1
- package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts +2 -2
- package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.js +384 -80
- package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/legacy-runtime/cloud/auiV0.d.ts +8 -9
- package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -1
- package/dist/legacy-runtime/cloud/auiV0.js +20 -45
- package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
- package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +1 -1
- package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +4 -5
- package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -1
- package/dist/legacy-runtime/hooks/AssistantContext.d.ts +12 -12
- package/dist/legacy-runtime/hooks/AssistantContext.js +1 -1
- package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +157 -157
- package/dist/legacy-runtime/hooks/AttachmentContext.js +1 -1
- package/dist/legacy-runtime/hooks/ComposerContext.d.ts +17 -17
- package/dist/legacy-runtime/hooks/ComposerContext.js +4 -4
- package/dist/legacy-runtime/hooks/MessageContext.d.ts +27 -27
- package/dist/legacy-runtime/hooks/MessageContext.js +5 -5
- package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +12 -12
- package/dist/legacy-runtime/hooks/MessagePartContext.js +1 -1
- package/dist/legacy-runtime/hooks/ThreadContext.d.ts +27 -27
- package/dist/legacy-runtime/hooks/ThreadContext.js +4 -4
- package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +12 -12
- package/dist/legacy-runtime/hooks/ThreadListItemContext.js +1 -1
- package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts +2 -63
- package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/AssistantRuntime.js +1 -45
- package/dist/legacy-runtime/runtime/AssistantRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts +2 -62
- package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/AttachmentRuntime.js +1 -55
- package/dist/legacy-runtime/runtime/AttachmentRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts +3 -171
- package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/ComposerRuntime.js +1 -240
- package/dist/legacy-runtime/runtime/ComposerRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/MessagePartRuntime.d.ts +2 -39
- package/dist/legacy-runtime/runtime/MessagePartRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/MessagePartRuntime.js +1 -66
- package/dist/legacy-runtime/runtime/MessagePartRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/MessageRuntime.d.ts +3 -91
- package/dist/legacy-runtime/runtime/MessageRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/MessageRuntime.js +1 -200
- package/dist/legacy-runtime/runtime/MessageRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts +2 -36
- package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/RuntimeBindings.js +3 -0
- package/dist/legacy-runtime/runtime/RuntimeBindings.js.map +1 -1
- package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts +1 -63
- package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts +4 -49
- package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadListItemRuntime.js +1 -87
- package/dist/legacy-runtime/runtime/ThreadListItemRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadListRuntime.d.ts +3 -43
- package/dist/legacy-runtime/runtime/ThreadListRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadListRuntime.js +1 -138
- package/dist/legacy-runtime/runtime/ThreadListRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts +3 -270
- package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadRuntime.js +1 -242
- package/dist/legacy-runtime/runtime/ThreadRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime/index.d.ts +1 -8
- package/dist/legacy-runtime/runtime/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts +1 -2
- package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts +1 -2
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.d.ts +2 -4
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.js +2 -3
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/feedback/index.d.ts +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/feedback/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/index.d.ts +2 -3
- package/dist/legacy-runtime/runtime-cores/adapters/speech/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/index.js +1 -2
- package/dist/legacy-runtime/runtime-cores/adapters/speech/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/suggestion/index.d.ts +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/suggestion/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.d.ts +1 -2
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.js +1 -2
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +6 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +38 -28
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.js +122 -31
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts +1 -10
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js +1 -19
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts +1 -53
- package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.js +1 -312
- package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts +1 -27
- package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.js +1 -49
- package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts +1 -23
- package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.js +1 -40
- package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts +1 -16
- package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts +1 -11
- package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js +1 -10
- package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts +1 -66
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js +1 -159
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts +1 -61
- package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts +1 -36
- package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts +1 -110
- package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/index.d.ts +1 -2
- package/dist/legacy-runtime/runtime-cores/core/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts +1 -80
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts +1 -8
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.js +1 -18
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts +2 -41
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js +1 -173
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts +1 -46
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js +1 -259
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts +2 -6
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.js +1 -11
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts +2 -33
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js +1 -126
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts +1 -4
- package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js +1 -31
- package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.js +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts +2 -1
- package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js +4 -1
- package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts +2 -8
- package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js +2 -22
- package/dist/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts +3 -3
- package/dist/legacy-runtime/runtime-cores/external-store/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/index.js +2 -1
- package/dist/legacy-runtime/runtime-cores/external-store/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/index.d.ts +2 -1
- package/dist/legacy-runtime/runtime-cores/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/index.js +1 -1
- package/dist/legacy-runtime/runtime-cores/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts +1 -38
- package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts +1 -10
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.js +1 -21
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts +10 -30
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts +2 -45
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js +1 -86
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts +1 -58
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +1 -415
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/index.d.ts +1 -1
- package/dist/legacy-runtime/runtime-cores/local/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/index.js +1 -0
- package/dist/legacy-runtime/runtime-cores/local/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts +1 -2
- package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/shouldContinue.js +1 -13
- package/dist/legacy-runtime/runtime-cores/local/shouldContinue.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts +1 -1
- package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.js +1 -1
- package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts +1 -7
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js +1 -37
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts +1 -2
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js +1 -141
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts +1 -22
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.js +1 -56
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +39 -39
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.js +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +41 -67
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +13 -72
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js +10 -3
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts +1 -12
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js +1 -28
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.d.ts +2 -2
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.js +2 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts +1 -38
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts +2 -2
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js +1 -2
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts +3 -163
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +2 -393
- package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js.map +1 -1
- package/dist/model-context/frame/index.d.ts +4 -3
- package/dist/model-context/frame/index.d.ts.map +1 -1
- package/dist/model-context/frame/index.js +3 -3
- package/dist/model-context/frame/index.js.map +1 -1
- package/dist/model-context/frame/useAssistantFrameHost.d.ts +2 -2
- package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -1
- package/dist/model-context/frame/useAssistantFrameHost.js +1 -1
- package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
- package/dist/model-context/index.d.ts +6 -3
- package/dist/model-context/index.d.ts.map +1 -1
- package/dist/model-context/index.js +5 -2
- package/dist/model-context/index.js.map +1 -1
- package/dist/model-context/makeAssistantDataUI.d.ts +7 -0
- package/dist/model-context/makeAssistantDataUI.d.ts.map +1 -0
- package/dist/model-context/makeAssistantDataUI.js +11 -0
- package/dist/model-context/makeAssistantDataUI.js.map +1 -0
- package/dist/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/model-context/makeAssistantTool.js.map +1 -1
- package/dist/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/model-context/makeAssistantToolUI.js.map +1 -1
- package/dist/model-context/makeAssistantVisible.js +1 -1
- package/dist/model-context/makeAssistantVisible.js.map +1 -1
- package/dist/model-context/registry/index.d.ts +2 -2
- package/dist/model-context/registry/index.d.ts.map +1 -1
- package/dist/model-context/registry/index.js +1 -2
- package/dist/model-context/registry/index.js.map +1 -1
- package/dist/model-context/toolbox.d.ts.map +1 -1
- package/dist/model-context/toolbox.js.map +1 -1
- package/dist/model-context/useAssistantDataUI.d.ts +7 -0
- package/dist/model-context/useAssistantDataUI.d.ts.map +1 -0
- package/dist/model-context/useAssistantDataUI.js +12 -0
- package/dist/model-context/useAssistantDataUI.js.map +1 -0
- package/dist/model-context/useAssistantInstructions.d.ts +2 -4
- package/dist/model-context/useAssistantInstructions.d.ts.map +1 -1
- package/dist/model-context/useAssistantInstructions.js.map +1 -1
- package/dist/model-context/useAssistantTool.d.ts +2 -3
- package/dist/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/model-context/useAssistantTool.js.map +1 -1
- package/dist/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/model-context/useInlineRender.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.js +7 -6
- package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.js +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarExportMarkdown.js +4 -3
- package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.js +4 -3
- package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js +1 -1
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
- package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
- package/dist/primitives/actionBar/useActionBarFloatStatus.js +5 -5
- package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
- package/dist/primitives/actionBarMore/scope.d.ts.map +1 -1
- package/dist/primitives/actionBarMore/scope.js.map +1 -1
- package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
- package/dist/primitives/assistantModal/scope.js.map +1 -1
- package/dist/primitives/attachment/AttachmentName.js +1 -1
- package/dist/primitives/attachment/AttachmentName.js.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.js +2 -2
- package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerCount.js +1 -1
- package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.js +3 -3
- package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNumber.js +1 -1
- package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.js +3 -3
- package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtParts.js +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.js +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
- package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAttachments.js +1 -1
- package/dist/primitives/composer/ComposerAttachments.js.map +1 -1
- package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerCancel.js +1 -1
- package/dist/primitives/composer/ComposerCancel.js.map +1 -1
- package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerDictate.js +3 -3
- package/dist/primitives/composer/ComposerDictate.js.map +1 -1
- package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerDictationTranscript.js +1 -1
- package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
- package/dist/primitives/composer/ComposerIf.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerIf.js +4 -4
- package/dist/primitives/composer/ComposerIf.js.map +1 -1
- package/dist/primitives/composer/ComposerInput.d.ts +35 -45
- package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerInput.js +25 -9
- package/dist/primitives/composer/ComposerInput.js.map +1 -1
- package/dist/primitives/composer/ComposerQuote.d.ts +52 -0
- package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerQuote.js +57 -0
- package/dist/primitives/composer/ComposerQuote.js.map +1 -0
- package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerSend.js.map +1 -1
- package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerStopDictation.js +1 -1
- package/dist/primitives/composer/ComposerStopDictation.js.map +1 -1
- package/dist/primitives/composer/index.d.ts +3 -0
- package/dist/primitives/composer/index.d.ts.map +1 -1
- package/dist/primitives/composer/index.js +3 -0
- package/dist/primitives/composer/index.js.map +1 -1
- package/dist/primitives/error/ErrorMessage.js +4 -4
- package/dist/primitives/error/ErrorMessage.js.map +1 -1
- package/dist/primitives/index.d.ts +3 -0
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +3 -0
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/primitives/message/MessageAttachments.js +4 -4
- package/dist/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/primitives/message/MessageError.d.ts.map +1 -1
- package/dist/primitives/message/MessageError.js +2 -2
- package/dist/primitives/message/MessageError.js.map +1 -1
- package/dist/primitives/message/MessageIf.d.ts.map +1 -1
- package/dist/primitives/message/MessageIf.js +3 -3
- package/dist/primitives/message/MessageIf.js.map +1 -1
- package/dist/primitives/message/MessageParts.d.ts +9 -1
- package/dist/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/primitives/message/MessageParts.js +24 -10
- package/dist/primitives/message/MessageParts.js.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.d.ts +8 -1
- package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
- package/dist/primitives/message/MessagePartsGrouped.js +22 -8
- package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
- package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
- package/dist/primitives/message/MessageRoot.js +6 -5
- package/dist/primitives/message/MessageRoot.js.map +1 -1
- package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -1
- package/dist/primitives/messagePart/MessagePartInProgress.js +1 -1
- package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartData.d.ts +1 -1
- package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -1
- package/dist/primitives/messagePart/useMessagePartData.js +3 -3
- package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartFile.d.ts +2 -2
- package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -1
- package/dist/primitives/messagePart/useMessagePartFile.js +3 -3
- package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartImage.d.ts +2 -2
- package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -1
- package/dist/primitives/messagePart/useMessagePartImage.js +3 -3
- package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +2 -2
- package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -1
- package/dist/primitives/messagePart/useMessagePartReasoning.js +3 -3
- package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartSource.d.ts +2 -2
- package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -1
- package/dist/primitives/messagePart/useMessagePartSource.js +3 -3
- package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
- package/dist/primitives/messagePart/useMessagePartText.d.ts +3 -3
- package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -1
- package/dist/primitives/messagePart/useMessagePartText.js +3 -3
- package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
- package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -1
- package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts +24 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +37 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts +31 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +85 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -0
- package/dist/primitives/selectionToolbar/index.d.ts +3 -0
- package/dist/primitives/selectionToolbar/index.d.ts.map +1 -0
- package/dist/primitives/selectionToolbar/index.js +3 -0
- package/dist/primitives/selectionToolbar/index.js.map +1 -0
- package/dist/primitives/suggestion/SuggestionDescription.js +1 -1
- package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionTitle.js +1 -1
- package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
- package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
- package/dist/primitives/suggestion/SuggestionTrigger.js +6 -3
- package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
- package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadEmpty.js +1 -1
- package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
- package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadIf.js +7 -7
- package/dist/primitives/thread/ThreadIf.js.map +1 -1
- package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadMessages.js +3 -3
- package/dist/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.js +5 -2
- package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
- package/dist/primitives/thread/ThreadSuggestions.js +1 -1
- package/dist/primitives/thread/ThreadSuggestions.js.map +1 -1
- package/dist/primitives/thread/ThreadViewportSlack.js +4 -4
- package/dist/primitives/thread/ThreadViewportSlack.js.map +1 -1
- package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
- package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.js +1 -1
- package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.js +1 -1
- package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.js +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTitle.js +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTitle.js.map +1 -1
- package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -1
- package/dist/primitives/threadListItemMore/scope.js.map +1 -1
- package/dist/types/MessagePartComponentTypes.d.ts +4 -2
- package/dist/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/types/MessagePartComponentTypes.js.map +1 -1
- package/dist/types/index.d.ts +3 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/scopes/dataRenderers.d.ts +13 -0
- package/dist/types/scopes/dataRenderers.d.ts.map +1 -0
- package/dist/types/scopes/dataRenderers.js +2 -0
- package/dist/types/scopes/dataRenderers.js.map +1 -0
- package/dist/types/scopes/index.d.ts +2 -11
- package/dist/types/scopes/index.d.ts.map +1 -1
- package/dist/types/scopes/tools.d.ts +1 -2
- package/dist/types/scopes/tools.d.ts.map +1 -1
- package/dist/types/store-augmentation.d.ts +5 -25
- package/dist/types/store-augmentation.d.ts.map +1 -1
- package/dist/types/store-augmentation.js +1 -1
- package/dist/types/store-augmentation.js.map +1 -1
- package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
- package/dist/utils/RequireAtLeastOne.js.map +1 -1
- package/dist/utils/getSelectionMessageId.d.ts +2 -0
- package/dist/utils/getSelectionMessageId.d.ts.map +1 -0
- package/dist/utils/getSelectionMessageId.js +21 -0
- package/dist/utils/getSelectionMessageId.js.map +1 -0
- package/dist/utils/hooks/useOnResizeContent.d.ts.map +1 -1
- package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
- package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
- package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
- package/dist/utils/smooth/useSmooth.d.ts +1 -2
- package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
- package/dist/utils/smooth/useSmooth.js +18 -8
- package/dist/utils/smooth/useSmooth.js.map +1 -1
- package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
- package/dist/utils/useToolArgsFieldStatus.js +5 -5
- package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
- package/package.json +8 -5
- package/src/client/DataRenderers.ts +42 -0
- package/src/client/ExternalThread.ts +149 -136
- package/src/client/InMemoryThreadList.ts +68 -54
- package/src/client/Tools.ts +10 -10
- package/src/client/index.ts +7 -3
- package/src/context/providers/ChainOfThoughtByIndicesProvider.tsx +3 -3
- package/src/context/providers/MessageByIndexProvider.tsx +1 -1
- package/src/context/providers/MessageProvider.tsx +2 -2
- package/src/context/providers/TextMessagePartProvider.tsx +6 -9
- package/src/context/providers/ThreadListItemProvider.tsx +1 -1
- package/src/context/react/utils/ensureBinding.ts +1 -1
- package/src/context/react/utils/useRuntimeState.ts +1 -1
- package/src/context/stores/{ThreadViewport.tsx → ThreadViewport.ts} +1 -1
- package/src/devtools/DevToolsHooks.ts +1 -1
- package/src/hooks/useMessageQuote.ts +27 -0
- package/src/hooks/useMessageTiming.ts +24 -0
- package/src/internal.ts +22 -13
- package/src/legacy-runtime/AssistantRuntimeProvider.tsx +5 -6
- package/src/legacy-runtime/RuntimeAdapter.ts +42 -24
- package/src/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.ts +646 -0
- package/src/legacy-runtime/cloud/auiV0.ts +29 -53
- package/src/legacy-runtime/cloud/{useCloudThreadListRuntime.tsx → useCloudThreadListRuntime.ts} +5 -7
- package/src/legacy-runtime/hooks/AssistantContext.ts +1 -1
- package/src/legacy-runtime/hooks/AttachmentContext.ts +1 -1
- package/src/legacy-runtime/hooks/ComposerContext.ts +6 -6
- package/src/legacy-runtime/hooks/MessageContext.ts +5 -5
- package/src/legacy-runtime/hooks/MessagePartContext.ts +1 -1
- package/src/legacy-runtime/hooks/ThreadContext.ts +5 -5
- package/src/legacy-runtime/hooks/ThreadListItemContext.ts +1 -1
- package/src/legacy-runtime/runtime/AssistantRuntime.ts +2 -111
- package/src/legacy-runtime/runtime/AttachmentRuntime.ts +7 -119
- package/src/legacy-runtime/runtime/ComposerRuntime.ts +15 -475
- package/src/legacy-runtime/runtime/MessagePartRuntime.ts +2 -117
- package/src/legacy-runtime/runtime/MessageRuntime.ts +3 -335
- package/src/legacy-runtime/runtime/RuntimeBindings.ts +12 -69
- package/src/legacy-runtime/runtime/RuntimePathTypes.ts +8 -61
- package/src/legacy-runtime/runtime/ThreadListItemRuntime.ts +7 -152
- package/src/legacy-runtime/runtime/ThreadListRuntime.ts +6 -224
- package/src/legacy-runtime/runtime/ThreadRuntime.ts +14 -561
- package/src/legacy-runtime/runtime/index.ts +10 -13
- package/src/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.tsx +4 -2
- package/src/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.ts +4 -4
- package/src/legacy-runtime/runtime-cores/adapters/attachment/index.ts +9 -4
- package/src/legacy-runtime/runtime-cores/adapters/feedback/index.ts +2 -1
- package/src/legacy-runtime/runtime-cores/adapters/speech/index.ts +6 -3
- package/src/legacy-runtime/runtime-cores/adapters/suggestion/index.ts +2 -1
- package/src/legacy-runtime/runtime-cores/adapters/thread-history/index.ts +9 -2
- package/src/legacy-runtime/runtime-cores/assistant-transport/transport-scheduling.test.ts +136 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +6 -1
- package/src/legacy-runtime/runtime-cores/assistant-transport/{useAssistantTransportRuntime.tsx → useAssistantTransportRuntime.ts} +46 -36
- package/src/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.test.ts +223 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.ts +175 -46
- package/src/legacy-runtime/runtime-cores/assistant-transport/utils.ts +5 -37
- package/src/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.ts +6 -0
- package/src/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.ts +4 -0
- package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.ts +13 -0
- package/src/legacy-runtime/runtime-cores/core/index.ts +3 -3
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.ts +6 -0
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.ts +2 -0
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.ts +4 -0
- package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.ts +2 -23
- package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.ts +2 -0
- package/src/legacy-runtime/runtime-cores/external-store/auto-status.ts +1 -0
- package/src/legacy-runtime/runtime-cores/external-store/{createMessageConverter.tsx → createMessageConverter.ts} +3 -3
- package/src/legacy-runtime/runtime-cores/external-store/{external-message-converter.tsx → external-message-converter.ts} +13 -4
- package/src/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.ts +5 -0
- package/src/legacy-runtime/runtime-cores/external-store/index.ts +9 -6
- package/src/legacy-runtime/runtime-cores/external-store/{useExternalStoreRuntime.tsx → useExternalStoreRuntime.ts} +1 -1
- package/src/legacy-runtime/runtime-cores/index.ts +3 -4
- package/src/legacy-runtime/runtime-cores/local/ChatModelAdapter.ts +7 -0
- package/src/legacy-runtime/runtime-cores/local/LocalRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.ts +36 -0
- package/src/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.ts +2 -0
- package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.ts +1 -0
- package/src/legacy-runtime/runtime-cores/local/index.ts +10 -6
- package/src/legacy-runtime/runtime-cores/local/shouldContinue.ts +1 -0
- package/src/legacy-runtime/runtime-cores/local/{useLocalRuntime.tsx → useLocalRuntime.ts} +1 -3
- package/src/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.ts +1 -0
- package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.ts +1 -0
- package/src/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.ts +1 -89
- package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.tsx +1 -1
- package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +33 -136
- package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.tsx +11 -3
- package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.ts +1 -0
- package/src/legacy-runtime/runtime-cores/remote-thread-list/index.ts +5 -3
- package/src/legacy-runtime/runtime-cores/remote-thread-list/types.ts +7 -0
- package/src/legacy-runtime/runtime-cores/remote-thread-list/{useRemoteThreadListRuntime.tsx → useRemoteThreadListRuntime.ts} +9 -5
- package/src/legacy-runtime/runtime-cores/utils/MessageRepository.ts +3 -0
- package/src/model-context/frame/AssistantFrame.test.ts +6 -4
- package/src/model-context/frame/index.ts +9 -3
- package/src/model-context/frame/useAssistantFrameHost.ts +2 -2
- package/src/model-context/index.ts +12 -3
- package/src/model-context/makeAssistantDataUI.ts +22 -0
- package/src/model-context/makeAssistantVisible.tsx +1 -1
- package/src/model-context/registry/index.ts +6 -2
- package/src/model-context/useAssistantDataUI.ts +18 -0
- package/src/model-context/{useAssistantInstructions.tsx → useAssistantInstructions.ts} +2 -4
- package/src/model-context/{useAssistantTool.tsx → useAssistantTool.ts} +2 -3
- package/src/primitives/actionBar/ActionBarCopy.tsx +7 -6
- package/src/primitives/actionBar/{ActionBarEdit.tsx → ActionBarEdit.ts} +1 -1
- package/src/primitives/actionBar/ActionBarExportMarkdown.tsx +4 -3
- package/src/primitives/actionBar/{ActionBarSpeak.tsx → ActionBarSpeak.ts} +4 -3
- package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +1 -1
- package/src/primitives/actionBar/{useActionBarFloatStatus.tsx → useActionBarFloatStatus.ts} +5 -5
- package/src/primitives/attachment/AttachmentName.tsx +1 -1
- package/src/primitives/attachment/AttachmentThumb.tsx +2 -2
- package/src/primitives/branchPicker/BranchPickerCount.tsx +1 -1
- package/src/primitives/branchPicker/{BranchPickerNext.tsx → BranchPickerNext.ts} +3 -3
- package/src/primitives/branchPicker/BranchPickerNumber.tsx +1 -1
- package/src/primitives/branchPicker/{BranchPickerPrevious.tsx → BranchPickerPrevious.ts} +3 -3
- package/src/primitives/chainOfThought/{ChainOfThoughtAccordionTrigger.tsx → ChainOfThoughtAccordionTrigger.ts} +1 -3
- package/src/primitives/chainOfThought/ChainOfThoughtParts.tsx +1 -3
- package/src/primitives/composer/{ComposerAddAttachment.tsx → ComposerAddAttachment.ts} +1 -1
- package/src/primitives/composer/ComposerAttachments.tsx +2 -2
- package/src/primitives/composer/{ComposerCancel.tsx → ComposerCancel.ts} +1 -1
- package/src/primitives/composer/{ComposerDictate.tsx → ComposerDictate.ts} +4 -4
- package/src/primitives/composer/ComposerDictationTranscript.tsx +1 -3
- package/src/primitives/composer/{ComposerIf.tsx → ComposerIf.ts} +4 -4
- package/src/primitives/composer/ComposerInput.tsx +57 -17
- package/src/primitives/composer/ComposerQuote.tsx +109 -0
- package/src/primitives/composer/{ComposerStopDictation.tsx → ComposerStopDictation.ts} +1 -1
- package/src/primitives/composer/index.ts +3 -0
- package/src/primitives/error/ErrorMessage.tsx +4 -4
- package/src/primitives/index.ts +3 -0
- package/src/primitives/message/MessageAttachments.tsx +5 -5
- package/src/primitives/message/{MessageError.tsx → MessageError.ts} +3 -3
- package/src/primitives/message/{MessageIf.tsx → MessageIf.ts} +3 -3
- package/src/primitives/message/MessageParts.tsx +40 -10
- package/src/primitives/message/MessagePartsGrouped.tsx +40 -8
- package/src/primitives/message/MessageRoot.tsx +6 -5
- package/src/primitives/messagePart/{MessagePartInProgress.tsx → MessagePartInProgress.ts} +1 -3
- package/src/primitives/messagePart/{useMessagePartData.tsx → useMessagePartData.ts} +4 -4
- package/src/primitives/messagePart/useMessagePartFile.ts +17 -0
- package/src/primitives/messagePart/useMessagePartImage.ts +17 -0
- package/src/primitives/messagePart/useMessagePartReasoning.ts +20 -0
- package/src/primitives/messagePart/useMessagePartSource.ts +17 -0
- package/src/primitives/messagePart/useMessagePartText.ts +22 -0
- package/src/primitives/selectionToolbar/SelectionToolbarQuote.tsx +62 -0
- package/src/primitives/selectionToolbar/SelectionToolbarRoot.tsx +131 -0
- package/src/primitives/selectionToolbar/index.ts +8 -0
- package/src/primitives/suggestion/SuggestionDescription.tsx +1 -1
- package/src/primitives/suggestion/SuggestionTitle.tsx +1 -1
- package/src/primitives/suggestion/{SuggestionTrigger.tsx → SuggestionTrigger.ts} +6 -3
- package/src/primitives/thread/{ThreadEmpty.tsx → ThreadEmpty.ts} +1 -1
- package/src/primitives/thread/{ThreadIf.tsx → ThreadIf.ts} +8 -8
- package/src/primitives/thread/ThreadMessages.tsx +4 -4
- package/src/primitives/thread/{ThreadSuggestion.tsx → ThreadSuggestion.ts} +5 -2
- package/src/primitives/thread/ThreadSuggestions.tsx +1 -1
- package/src/primitives/thread/ThreadViewportSlack.tsx +5 -5
- package/src/primitives/threadList/ThreadListItems.tsx +2 -2
- package/src/primitives/threadList/ThreadListNew.tsx +1 -1
- package/src/primitives/threadListItem/ThreadListItemRoot.tsx +1 -1
- package/src/primitives/threadListItem/ThreadListItemTitle.test.tsx +52 -0
- package/src/primitives/threadListItem/ThreadListItemTitle.tsx +1 -1
- package/src/tests/BaseComposerRuntimeCore.test.ts +318 -0
- package/src/tests/BaseSubscribable.test.ts +54 -0
- package/src/tests/DataRenderers.test.ts +223 -0
- package/src/tests/ExternalStoreThreadRuntimeCore.test.ts +510 -0
- package/src/tests/LocalThreadRuntimeCore.test.ts +321 -0
- package/src/tests/external-message-converter.test.ts +1 -1
- package/src/tests/shouldContinue.test.ts +89 -0
- package/src/types/{MessagePartComponentTypes.tsx → MessagePartComponentTypes.ts} +9 -2
- package/src/types/index.ts +9 -8
- package/src/types/scopes/dataRenderers.ts +15 -0
- package/src/types/scopes/index.ts +10 -22
- package/src/types/scopes/tools.ts +1 -2
- package/src/types/store-augmentation.ts +5 -25
- package/src/utils/getSelectionMessageId.ts +20 -0
- package/src/utils/smooth/SmoothContext.tsx +2 -2
- package/src/utils/smooth/{useSmooth.tsx → useSmooth.ts} +22 -11
- package/src/utils/{useToolArgsFieldStatus.tsx → useToolArgsFieldStatus.ts} +5 -5
- package/dist/client/ChainOfThoughtClient.d.ts +0 -15
- package/dist/client/ChainOfThoughtClient.d.ts.map +0 -1
- package/dist/client/ChainOfThoughtClient.js +0 -21
- package/dist/client/ChainOfThoughtClient.js.map +0 -1
- package/dist/client/ModelContextClient.d.ts +0 -3
- package/dist/client/ModelContextClient.d.ts.map +0 -1
- package/dist/client/ModelContextClient.js +0 -17
- package/dist/client/ModelContextClient.js.map +0 -1
- package/dist/client/NoOpComposerClient.d.ts +0 -7
- package/dist/client/NoOpComposerClient.d.ts.map +0 -1
- package/dist/client/NoOpComposerClient.js +0 -61
- package/dist/client/NoOpComposerClient.js.map +0 -1
- package/dist/client/Suggestions.d.ts +0 -11
- package/dist/client/Suggestions.d.ts.map +0 -1
- package/dist/client/Suggestions.js +0 -43
- package/dist/client/Suggestions.js.map +0 -1
- package/dist/client/ThreadMessageClient.d.ts +0 -11
- package/dist/client/ThreadMessageClient.d.ts.map +0 -1
- package/dist/client/ThreadMessageClient.js +0 -121
- package/dist/client/ThreadMessageClient.js.map +0 -1
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts +0 -8
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.js +0 -14
- package/dist/legacy-runtime/client/AttachmentRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts +0 -13
- package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/ComposerRuntimeClient.js +0 -84
- package/dist/legacy-runtime/client/ComposerRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts +0 -8
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.js +0 -15
- package/dist/legacy-runtime/client/MessagePartRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts +0 -11
- package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/MessageRuntimeClient.js +0 -81
- package/dist/legacy-runtime/client/MessageRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts +0 -8
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js +0 -44
- package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +0 -11
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.js +0 -57
- package/dist/legacy-runtime/client/ThreadListRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts +0 -8
- package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts.map +0 -1
- package/dist/legacy-runtime/client/ThreadRuntimeClient.js +0 -94
- package/dist/legacy-runtime/client/ThreadRuntimeClient.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/BaseSubject.d.ts +0 -11
- package/dist/legacy-runtime/runtime/subscribable/BaseSubject.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/BaseSubject.js +0 -31
- package/dist/legacy-runtime/runtime/subscribable/BaseSubject.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.d.ts +0 -13
- package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.js +0 -37
- package/dist/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.d.ts +0 -13
- package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.js +0 -34
- package/dist/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.d.ts +0 -12
- package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.js +0 -39
- package/dist/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.d.ts +0 -3
- package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.js +0 -2
- package/dist/legacy-runtime/runtime/subscribable/SKIP_UPDATE.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.d.ts +0 -13
- package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.js +0 -41
- package/dist/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/Subscribable.d.ts +0 -16
- package/dist/legacy-runtime/runtime/subscribable/Subscribable.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/Subscribable.js +0 -2
- package/dist/legacy-runtime/runtime/subscribable/Subscribable.js.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/shallowEqual.d.ts +0 -2
- package/dist/legacy-runtime/runtime/subscribable/shallowEqual.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime/subscribable/shallowEqual.js +0 -16
- package/dist/legacy-runtime/runtime/subscribable/shallowEqual.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.d.ts +0 -64
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.js +0 -2
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.d.ts +0 -13
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.js +0 -79
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.d.ts +0 -11
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.js +0 -35
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.d.ts +0 -11
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.js +0 -35
- package/dist/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.d.ts +0 -43
- package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.js +0 -2
- package/dist/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.d.ts +0 -110
- package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.js +0 -2
- package/dist/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.d.ts +0 -61
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.js +0 -152
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.d.ts +0 -5
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.js +0 -42
- package/dist/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.d.ts +0 -10
- package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.js +0 -2
- package/dist/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.d.ts +0 -21
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.js +0 -2
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.js.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.d.ts +0 -16
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.d.ts.map +0 -1
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.js +0 -2
- package/dist/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.js.map +0 -1
- package/dist/legacy-runtime/util-hooks/tapSubscribable.d.ts +0 -3
- package/dist/legacy-runtime/util-hooks/tapSubscribable.d.ts.map +0 -1
- package/dist/legacy-runtime/util-hooks/tapSubscribable.js +0 -12
- package/dist/legacy-runtime/util-hooks/tapSubscribable.js.map +0 -1
- package/dist/model-context/ModelContextTypes.d.ts +0 -29
- package/dist/model-context/ModelContextTypes.d.ts.map +0 -1
- package/dist/model-context/ModelContextTypes.js +0 -41
- package/dist/model-context/ModelContextTypes.js.map +0 -1
- package/dist/model-context/frame/AssistantFrameHost.d.ts +0 -37
- package/dist/model-context/frame/AssistantFrameHost.d.ts.map +0 -1
- package/dist/model-context/frame/AssistantFrameHost.js +0 -161
- package/dist/model-context/frame/AssistantFrameHost.js.map +0 -1
- package/dist/model-context/frame/AssistantFrameProvider.d.ts +0 -41
- package/dist/model-context/frame/AssistantFrameProvider.d.ts.map +0 -1
- package/dist/model-context/frame/AssistantFrameProvider.js +0 -167
- package/dist/model-context/frame/AssistantFrameProvider.js.map +0 -1
- package/dist/model-context/frame/AssistantFrameTypes.d.ts +0 -29
- package/dist/model-context/frame/AssistantFrameTypes.d.ts.map +0 -1
- package/dist/model-context/frame/AssistantFrameTypes.js +0 -2
- package/dist/model-context/frame/AssistantFrameTypes.js.map +0 -1
- package/dist/model-context/registry/ModelContextRegistry.d.ts +0 -19
- package/dist/model-context/registry/ModelContextRegistry.d.ts.map +0 -1
- package/dist/model-context/registry/ModelContextRegistry.js +0 -114
- package/dist/model-context/registry/ModelContextRegistry.js.map +0 -1
- package/dist/model-context/registry/ModelContextRegistryHandles.d.ts +0 -14
- package/dist/model-context/registry/ModelContextRegistryHandles.d.ts.map +0 -1
- package/dist/model-context/registry/ModelContextRegistryHandles.js +0 -2
- package/dist/model-context/registry/ModelContextRegistryHandles.js.map +0 -1
- package/dist/model-context/tool.d.ts +0 -3
- package/dist/model-context/tool.d.ts.map +0 -1
- package/dist/model-context/tool.js +0 -5
- package/dist/model-context/tool.js.map +0 -1
- package/dist/types/AssistantTypes.d.ts +0 -108
- package/dist/types/AssistantTypes.d.ts.map +0 -1
- package/dist/types/AssistantTypes.js +0 -2
- package/dist/types/AssistantTypes.js.map +0 -1
- package/dist/types/AttachmentTypes.d.ts +0 -35
- package/dist/types/AttachmentTypes.d.ts.map +0 -1
- package/dist/types/AttachmentTypes.js +0 -2
- package/dist/types/AttachmentTypes.js.map +0 -1
- package/dist/types/MessagePartTypes.d.ts +0 -62
- package/dist/types/MessagePartTypes.d.ts.map +0 -1
- package/dist/types/MessagePartTypes.js +0 -2
- package/dist/types/MessagePartTypes.js.map +0 -1
- package/dist/types/Unsubscribe.d.ts +0 -2
- package/dist/types/Unsubscribe.d.ts.map +0 -1
- package/dist/types/Unsubscribe.js +0 -2
- package/dist/types/Unsubscribe.js.map +0 -1
- package/dist/types/scopes/attachment.d.ts +0 -22
- package/dist/types/scopes/attachment.d.ts.map +0 -1
- package/dist/types/scopes/attachment.js +0 -2
- package/dist/types/scopes/attachment.js.map +0 -1
- package/dist/types/scopes/chainOfThought.d.ts +0 -40
- package/dist/types/scopes/chainOfThought.d.ts.map +0 -1
- package/dist/types/scopes/chainOfThought.js +0 -2
- package/dist/types/scopes/chainOfThought.js.map +0 -1
- package/dist/types/scopes/composer.d.ts +0 -67
- package/dist/types/scopes/composer.d.ts.map +0 -1
- package/dist/types/scopes/composer.js +0 -2
- package/dist/types/scopes/composer.js.map +0 -1
- package/dist/types/scopes/message.d.ts +0 -87
- package/dist/types/scopes/message.d.ts.map +0 -1
- package/dist/types/scopes/message.js +0 -2
- package/dist/types/scopes/message.js.map +0 -1
- package/dist/types/scopes/modelContext.d.ts +0 -12
- package/dist/types/scopes/modelContext.d.ts.map +0 -1
- package/dist/types/scopes/modelContext.js +0 -2
- package/dist/types/scopes/modelContext.js.map +0 -1
- package/dist/types/scopes/part.d.ts +0 -43
- package/dist/types/scopes/part.d.ts.map +0 -1
- package/dist/types/scopes/part.js +0 -2
- package/dist/types/scopes/part.js.map +0 -1
- package/dist/types/scopes/suggestion.d.ts +0 -20
- package/dist/types/scopes/suggestion.d.ts.map +0 -1
- package/dist/types/scopes/suggestion.js +0 -2
- package/dist/types/scopes/suggestion.js.map +0 -1
- package/dist/types/scopes/suggestions.d.ts +0 -20
- package/dist/types/scopes/suggestions.d.ts.map +0 -1
- package/dist/types/scopes/suggestions.js +0 -2
- package/dist/types/scopes/suggestions.js.map +0 -1
- package/dist/types/scopes/thread.d.ts +0 -138
- package/dist/types/scopes/thread.d.ts.map +0 -1
- package/dist/types/scopes/thread.js +0 -2
- package/dist/types/scopes/thread.js.map +0 -1
- package/dist/types/scopes/threadListItem.d.ts +0 -50
- package/dist/types/scopes/threadListItem.d.ts.map +0 -1
- package/dist/types/scopes/threadListItem.js +0 -2
- package/dist/types/scopes/threadListItem.js.map +0 -1
- package/dist/types/scopes/threads.d.ts +0 -28
- package/dist/types/scopes/threads.d.ts.map +0 -1
- package/dist/types/scopes/threads.js +0 -2
- package/dist/types/scopes/threads.js.map +0 -1
- package/dist/utils/CompositeContextProvider.d.ts +0 -10
- package/dist/utils/CompositeContextProvider.d.ts.map +0 -1
- package/dist/utils/CompositeContextProvider.js +0 -29
- package/dist/utils/CompositeContextProvider.js.map +0 -1
- package/dist/utils/getThreadMessageText.d.ts +0 -3
- package/dist/utils/getThreadMessageText.d.ts.map +0 -1
- package/dist/utils/getThreadMessageText.js +0 -5
- package/dist/utils/getThreadMessageText.js.map +0 -1
- package/dist/utils/idUtils.d.ts +0 -6
- package/dist/utils/idUtils.d.ts.map +0 -1
- package/dist/utils/idUtils.js +0 -9
- package/dist/utils/idUtils.js.map +0 -1
- package/src/client/ChainOfThoughtClient.ts +0 -43
- package/src/client/ModelContextClient.ts +0 -23
- package/src/client/NoOpComposerClient.tsx +0 -66
- package/src/client/Suggestions.ts +0 -74
- package/src/client/ThreadMessageClient.tsx +0 -178
- package/src/legacy-runtime/client/AttachmentRuntimeClient.ts +0 -19
- package/src/legacy-runtime/client/ComposerRuntimeClient.ts +0 -136
- package/src/legacy-runtime/client/MessagePartRuntimeClient.ts +0 -20
- package/src/legacy-runtime/client/MessageRuntimeClient.ts +0 -151
- package/src/legacy-runtime/client/ThreadListItemRuntimeClient.ts +0 -59
- package/src/legacy-runtime/client/ThreadListRuntimeClient.ts +0 -100
- package/src/legacy-runtime/client/ThreadRuntimeClient.ts +0 -148
- package/src/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.tsx +0 -182
- package/src/legacy-runtime/runtime/subscribable/BaseSubject.ts +0 -36
- package/src/legacy-runtime/runtime/subscribable/EventSubscriptionSubject.ts +0 -44
- package/src/legacy-runtime/runtime/subscribable/LazyMemoizeSubject.ts +0 -42
- package/src/legacy-runtime/runtime/subscribable/NestedSubscriptionSubject.ts +0 -58
- package/src/legacy-runtime/runtime/subscribable/SKIP_UPDATE.ts +0 -2
- package/src/legacy-runtime/runtime/subscribable/ShallowMemoizeSubject.ts +0 -47
- package/src/legacy-runtime/runtime/subscribable/Subscribable.ts +0 -26
- package/src/legacy-runtime/runtime/subscribable/shallowEqual.ts +0 -16
- package/src/legacy-runtime/runtime-cores/adapters/attachment/AttachmentAdapter.ts +0 -71
- package/src/legacy-runtime/runtime-cores/adapters/attachment/CompositeAttachmentAdapter.ts +0 -107
- package/src/legacy-runtime/runtime-cores/adapters/attachment/SimpleImageAttachmentAdapter.ts +0 -49
- package/src/legacy-runtime/runtime-cores/adapters/attachment/SimpleTextAttachmentAdapter.ts +0 -50
- package/src/legacy-runtime/runtime-cores/adapters/feedback/FeedbackAdapter.ts +0 -43
- package/src/legacy-runtime/runtime-cores/adapters/speech/SpeechAdapterTypes.ts +0 -121
- package/src/legacy-runtime/runtime-cores/adapters/speech/WebSpeechDictationAdapter.ts +0 -255
- package/src/legacy-runtime/runtime-cores/adapters/speech/WebSpeechSynthesisAdapter.ts +0 -48
- package/src/legacy-runtime/runtime-cores/adapters/suggestion/SuggestionAdapter.ts +0 -14
- package/src/legacy-runtime/runtime-cores/adapters/thread-history/MessageFormatAdapter.ts +0 -25
- package/src/legacy-runtime/runtime-cores/adapters/thread-history/ThreadHistoryAdapter.ts +0 -26
- package/src/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.tsx +0 -404
- package/src/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.tsx +0 -72
- package/src/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.tsx +0 -65
- package/src/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.tsx +0 -19
- package/src/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.tsx +0 -20
- package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.tsx +0 -237
- package/src/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.tsx +0 -86
- package/src/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.tsx +0 -49
- package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.tsx +0 -154
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx +0 -111
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.tsx +0 -26
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.tsx +0 -235
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx +0 -368
- package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx +0 -227
- package/src/legacy-runtime/runtime-cores/external-store/auto-status.tsx +0 -67
- package/src/legacy-runtime/runtime-cores/external-store/getExternalStoreMessage.tsx +0 -37
- package/src/legacy-runtime/runtime-cores/local/ChatModelAdapter.tsx +0 -64
- package/src/legacy-runtime/runtime-cores/local/LocalRuntimeCore.tsx +0 -32
- package/src/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.tsx +0 -60
- package/src/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.tsx +0 -116
- package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +0 -519
- package/src/legacy-runtime/runtime-cores/local/shouldContinue.tsx +0 -26
- package/src/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.tsx +0 -41
- package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx +0 -194
- package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.tsx +0 -43
- package/src/legacy-runtime/runtime-cores/remote-thread-list/types.tsx +0 -49
- package/src/legacy-runtime/runtime-cores/utils/MessageRepository.tsx +0 -551
- package/src/legacy-runtime/util-hooks/tapSubscribable.ts +0 -16
- package/src/model-context/ModelContextTypes.ts +0 -76
- package/src/model-context/frame/AssistantFrameHost.ts +0 -218
- package/src/model-context/frame/AssistantFrameProvider.ts +0 -230
- package/src/model-context/frame/AssistantFrameTypes.ts +0 -40
- package/src/model-context/registry/ModelContextRegistry.ts +0 -165
- package/src/model-context/registry/ModelContextRegistryHandles.ts +0 -19
- package/src/model-context/tool.ts +0 -9
- package/src/primitives/messagePart/useMessagePartFile.tsx +0 -18
- package/src/primitives/messagePart/useMessagePartImage.tsx +0 -18
- package/src/primitives/messagePart/useMessagePartReasoning.tsx +0 -18
- package/src/primitives/messagePart/useMessagePartSource.tsx +0 -18
- package/src/primitives/messagePart/useMessagePartText.tsx +0 -18
- package/src/tests/MessageRepository.test.ts +0 -786
- package/src/types/AssistantTypes.ts +0 -166
- package/src/types/AttachmentTypes.ts +0 -45
- package/src/types/MessagePartTypes.ts +0 -82
- package/src/types/Unsubscribe.tsx +0 -1
- package/src/types/scopes/attachment.ts +0 -22
- package/src/types/scopes/chainOfThought.ts +0 -42
- package/src/types/scopes/composer.ts +0 -68
- package/src/types/scopes/message.ts +0 -78
- package/src/types/scopes/modelContext.ts +0 -14
- package/src/types/scopes/part.ts +0 -49
- package/src/types/scopes/suggestion.ts +0 -20
- package/src/types/scopes/suggestions.ts +0 -21
- package/src/types/scopes/thread.ts +0 -141
- package/src/types/scopes/threadListItem.ts +0 -44
- package/src/types/scopes/threads.ts +0 -36
- package/src/utils/CompositeContextProvider.ts +0 -36
- package/src/utils/getThreadMessageText.tsx +0 -15
- package/src/utils/idUtils.tsx +0 -14
- /package/src/model-context/{makeAssistantTool.tsx → makeAssistantTool.ts} +0 -0
- /package/src/model-context/{makeAssistantToolUI.tsx → makeAssistantToolUI.ts} +0 -0
- /package/src/model-context/{toolbox.tsx → toolbox.ts} +0 -0
- /package/src/model-context/{useAssistantToolUI.tsx → useAssistantToolUI.ts} +0 -0
- /package/src/model-context/{useInlineRender.tsx → useInlineRender.ts} +0 -0
- /package/src/primitives/actionBar/{ActionBarReload.tsx → ActionBarReload.ts} +0 -0
- /package/src/primitives/actionBarMore/{scope.tsx → scope.ts} +0 -0
- /package/src/primitives/assistantModal/{scope.tsx → scope.ts} +0 -0
- /package/src/primitives/attachment/{AttachmentRemove.tsx → AttachmentRemove.ts} +0 -0
- /package/src/primitives/composer/{ComposerSend.tsx → ComposerSend.ts} +0 -0
- /package/src/primitives/reasoning/{useScrollLock.tsx → useScrollLock.ts} +0 -0
- /package/src/primitives/thread/{ThreadScrollToBottom.tsx → ThreadScrollToBottom.ts} +0 -0
- /package/src/primitives/thread/{useThreadViewportAutoScroll.tsx → useThreadViewportAutoScroll.ts} +0 -0
- /package/src/primitives/threadListItemMore/{scope.tsx → scope.ts} +0 -0
- /package/src/utils/{RequireAtLeastOne.tsx → RequireAtLeastOne.ts} +0 -0
- /package/src/utils/hooks/{useOnResizeContent.tsx → useOnResizeContent.ts} +0 -0
- /package/src/utils/hooks/{useOnScrollToBottom.tsx → useOnScrollToBottom.ts} +0 -0
|
@@ -1,786 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
|
|
2
|
-
import {
|
|
3
|
-
MessageRepository,
|
|
4
|
-
ExportedMessageRepository,
|
|
5
|
-
} from "../legacy-runtime/runtime-cores/utils/MessageRepository";
|
|
6
|
-
import type { ThreadMessage, TextMessagePart } from "../types/AssistantTypes";
|
|
7
|
-
import type { ThreadMessageLike } from "../legacy-runtime/runtime-cores";
|
|
8
|
-
|
|
9
|
-
// Mock generateId and generateOptimisticId to make tests deterministic
|
|
10
|
-
const mockGenerateId = vi.fn();
|
|
11
|
-
const mockGenerateOptimisticId = vi.fn();
|
|
12
|
-
const mockIsOptimisticId = vi.fn((id: string) =>
|
|
13
|
-
id.startsWith("__optimistic__"),
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
vi.mock("../utils/idUtils", () => ({
|
|
17
|
-
generateId: () => mockGenerateId(),
|
|
18
|
-
generateOptimisticId: () => mockGenerateOptimisticId(),
|
|
19
|
-
isOptimisticId: (id: string) => mockIsOptimisticId(id),
|
|
20
|
-
}));
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Tests for the MessageRepository class, which manages message threads with branching capabilities.
|
|
24
|
-
*
|
|
25
|
-
* This suite verifies that the repository:
|
|
26
|
-
* - Correctly manages message additions, updates, and deletions
|
|
27
|
-
* - Properly maintains parent-child relationships between messages
|
|
28
|
-
* - Handles branch creation and switching between branches
|
|
29
|
-
* - Successfully imports and exports repository state
|
|
30
|
-
* - Correctly manages optimistic messages in the thread
|
|
31
|
-
* - Handles edge cases and error conditions gracefully
|
|
32
|
-
*/
|
|
33
|
-
describe("MessageRepository", () => {
|
|
34
|
-
let repository: MessageRepository;
|
|
35
|
-
let nextMockId = 1;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Creates a test ThreadMessage with the given overrides.
|
|
39
|
-
*/
|
|
40
|
-
const createTestMessage = (overrides = {}): ThreadMessage => ({
|
|
41
|
-
id: "test-id",
|
|
42
|
-
role: "assistant",
|
|
43
|
-
createdAt: new Date(),
|
|
44
|
-
content: [{ type: "text", text: "Test message" }],
|
|
45
|
-
status: { type: "complete", reason: "stop" },
|
|
46
|
-
metadata: {
|
|
47
|
-
unstable_state: null,
|
|
48
|
-
unstable_annotations: [],
|
|
49
|
-
unstable_data: [],
|
|
50
|
-
steps: [],
|
|
51
|
-
custom: {},
|
|
52
|
-
},
|
|
53
|
-
...overrides,
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Creates a test CoreMessage with the given overrides.
|
|
58
|
-
*/
|
|
59
|
-
const createThreadMessageLike = (overrides = {}): ThreadMessageLike => ({
|
|
60
|
-
role: "assistant",
|
|
61
|
-
content: [{ type: "text", text: "Test message" }],
|
|
62
|
-
...overrides,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
beforeEach(() => {
|
|
66
|
-
repository = new MessageRepository();
|
|
67
|
-
// Reset mocks with predictable counter-based values
|
|
68
|
-
nextMockId = 1;
|
|
69
|
-
mockGenerateId.mockImplementation(() => `mock-id-${nextMockId++}`);
|
|
70
|
-
mockGenerateOptimisticId.mockImplementation(
|
|
71
|
-
() => `__optimistic__mock-id-${nextMockId++}`,
|
|
72
|
-
);
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
afterEach(() => {
|
|
76
|
-
vi.clearAllMocks();
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
// Core functionality tests - these test the public contract
|
|
80
|
-
describe("Basic CRUD operations", () => {
|
|
81
|
-
/**
|
|
82
|
-
* Tests the ability to add a new message to the repository.
|
|
83
|
-
* The message should be retrievable from the repository.
|
|
84
|
-
*/
|
|
85
|
-
it("should add a new message to the repository", () => {
|
|
86
|
-
const message = createTestMessage({ id: "message-id" });
|
|
87
|
-
repository.addOrUpdateMessage(null, message);
|
|
88
|
-
|
|
89
|
-
const messages = repository.getMessages();
|
|
90
|
-
expect(messages).toContain(message);
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Tests the ability to update an existing message in the repository.
|
|
95
|
-
* The update should replace the message content while maintaining its position.
|
|
96
|
-
*/
|
|
97
|
-
it("should update an existing message", () => {
|
|
98
|
-
const message = createTestMessage({ id: "message-id" });
|
|
99
|
-
repository.addOrUpdateMessage(null, message);
|
|
100
|
-
|
|
101
|
-
const updatedContent = [
|
|
102
|
-
{ type: "text", text: "Updated message" },
|
|
103
|
-
] as const;
|
|
104
|
-
const updatedMessage = createTestMessage({
|
|
105
|
-
id: "message-id",
|
|
106
|
-
content: updatedContent,
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
repository.addOrUpdateMessage(null, updatedMessage);
|
|
110
|
-
|
|
111
|
-
const retrievedMessage = repository.getMessage("message-id").message;
|
|
112
|
-
expect(retrievedMessage.content).toEqual(updatedContent);
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Tests that the repository correctly establishes parent-child relationships.
|
|
117
|
-
* The child message should reference its parent properly.
|
|
118
|
-
*/
|
|
119
|
-
it("should establish parent-child relationships between messages", () => {
|
|
120
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
121
|
-
const child = createTestMessage({ id: "child-id" });
|
|
122
|
-
|
|
123
|
-
repository.addOrUpdateMessage(null, parent);
|
|
124
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
125
|
-
|
|
126
|
-
const childWithParent = repository.getMessage("child-id");
|
|
127
|
-
expect(childWithParent.parentId).toBe("parent-id");
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Tests that adding a message with a non-existent parent ID throws an error.
|
|
132
|
-
* This maintains data integrity in the repository.
|
|
133
|
-
*/
|
|
134
|
-
it("should throw an error when parent message is not found", () => {
|
|
135
|
-
const message = createTestMessage();
|
|
136
|
-
|
|
137
|
-
expect(() => {
|
|
138
|
-
repository.addOrUpdateMessage("non-existent-id", message);
|
|
139
|
-
}).toThrow(/Parent message not found/);
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Tests that getMessages() returns all messages in the active branch in the correct order.
|
|
144
|
-
* The order should be from root to head.
|
|
145
|
-
*/
|
|
146
|
-
it("should retrieve all messages in the current branch", () => {
|
|
147
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
148
|
-
const child = createTestMessage({ id: "child-id" });
|
|
149
|
-
const grandchild = createTestMessage({ id: "grandchild-id" });
|
|
150
|
-
|
|
151
|
-
repository.addOrUpdateMessage(null, parent);
|
|
152
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
153
|
-
repository.addOrUpdateMessage("child-id", grandchild);
|
|
154
|
-
|
|
155
|
-
const messages = repository.getMessages();
|
|
156
|
-
|
|
157
|
-
// Should return messages in order from root to head
|
|
158
|
-
expect(messages.map((m) => m.id)).toEqual([
|
|
159
|
-
"parent-id",
|
|
160
|
-
"child-id",
|
|
161
|
-
"grandchild-id",
|
|
162
|
-
]);
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Tests that the head message is updated correctly as messages are added.
|
|
167
|
-
* The head should always point to the most recently added message in the active branch.
|
|
168
|
-
*/
|
|
169
|
-
it("should track the head message", () => {
|
|
170
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
171
|
-
const child = createTestMessage({ id: "child-id" });
|
|
172
|
-
|
|
173
|
-
repository.addOrUpdateMessage(null, parent);
|
|
174
|
-
expect(repository.headId).toBe("parent-id");
|
|
175
|
-
|
|
176
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
177
|
-
expect(repository.headId).toBe("child-id");
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* Tests that deleting a message adjusts the head pointer correctly.
|
|
182
|
-
* After deleting the head, the head should point to its parent.
|
|
183
|
-
*/
|
|
184
|
-
it("should delete a message and adjust the head", () => {
|
|
185
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
186
|
-
const child = createTestMessage({ id: "child-id" });
|
|
187
|
-
|
|
188
|
-
repository.addOrUpdateMessage(null, parent);
|
|
189
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
190
|
-
|
|
191
|
-
// Initial head should be child
|
|
192
|
-
expect(repository.headId).toBe("child-id");
|
|
193
|
-
|
|
194
|
-
// Delete child
|
|
195
|
-
repository.deleteMessage("child-id");
|
|
196
|
-
|
|
197
|
-
// Head should now be parent
|
|
198
|
-
expect(repository.headId).toBe("parent-id");
|
|
199
|
-
|
|
200
|
-
// Child should be gone
|
|
201
|
-
const messages = repository.getMessages();
|
|
202
|
-
expect(messages.map((m) => m.id)).toEqual(["parent-id"]);
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Tests that clearing the repository removes all messages.
|
|
207
|
-
* The repository should be empty and the head should be null after clearing.
|
|
208
|
-
*/
|
|
209
|
-
it("should clear all messages", () => {
|
|
210
|
-
const message = createTestMessage();
|
|
211
|
-
repository.addOrUpdateMessage(null, message);
|
|
212
|
-
|
|
213
|
-
repository.clear();
|
|
214
|
-
|
|
215
|
-
expect(repository.getMessages()).toHaveLength(0);
|
|
216
|
-
expect(repository.headId).toBeNull();
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
describe("Branch management", () => {
|
|
221
|
-
/**
|
|
222
|
-
* Tests creating multiple branches from a parent message.
|
|
223
|
-
* Both branches should have the same parent and be separately accessible.
|
|
224
|
-
*/
|
|
225
|
-
it("should create multiple branches from a parent message", () => {
|
|
226
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
227
|
-
const branch1 = createTestMessage({ id: "branch1-id" });
|
|
228
|
-
const branch2 = createTestMessage({ id: "branch2-id" });
|
|
229
|
-
|
|
230
|
-
repository.addOrUpdateMessage(null, parent);
|
|
231
|
-
repository.addOrUpdateMessage("parent-id", branch1);
|
|
232
|
-
repository.addOrUpdateMessage("parent-id", branch2);
|
|
233
|
-
|
|
234
|
-
// Test we can switch between branches
|
|
235
|
-
repository.switchToBranch("branch1-id");
|
|
236
|
-
expect(repository.headId).toBe("branch1-id");
|
|
237
|
-
|
|
238
|
-
repository.switchToBranch("branch2-id");
|
|
239
|
-
expect(repository.headId).toBe("branch2-id");
|
|
240
|
-
|
|
241
|
-
// Get branches from a child to verify siblings
|
|
242
|
-
const branches = repository.getBranches("branch1-id");
|
|
243
|
-
expect(branches).toContain("branch1-id");
|
|
244
|
-
expect(branches).toContain("branch2-id");
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Tests switching between branches and verifying each branch's content.
|
|
249
|
-
* Each branch should maintain its own path of messages.
|
|
250
|
-
*/
|
|
251
|
-
it("should switch between branches and maintain branch state", () => {
|
|
252
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
253
|
-
const branch1 = createTestMessage({ id: "branch1-id" });
|
|
254
|
-
const branch2 = createTestMessage({ id: "branch2-id" });
|
|
255
|
-
|
|
256
|
-
repository.addOrUpdateMessage(null, parent);
|
|
257
|
-
repository.addOrUpdateMessage("parent-id", branch1);
|
|
258
|
-
repository.addOrUpdateMessage("parent-id", branch2);
|
|
259
|
-
|
|
260
|
-
// Switch to first branch
|
|
261
|
-
repository.switchToBranch("branch1-id");
|
|
262
|
-
expect(repository.headId).toBe("branch1-id");
|
|
263
|
-
|
|
264
|
-
// Messages should show parent -> branch1 path
|
|
265
|
-
const messages1 = repository.getMessages();
|
|
266
|
-
expect(messages1.map((m) => m.id)).toEqual(["parent-id", "branch1-id"]);
|
|
267
|
-
|
|
268
|
-
// Switch to second branch
|
|
269
|
-
repository.switchToBranch("branch2-id");
|
|
270
|
-
expect(repository.headId).toBe("branch2-id");
|
|
271
|
-
|
|
272
|
-
// Messages should show parent -> branch2 path
|
|
273
|
-
const messages2 = repository.getMessages();
|
|
274
|
-
expect(messages2.map((m) => m.id)).toEqual(["parent-id", "branch2-id"]);
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
/**
|
|
278
|
-
* Tests that trying to switch to a non-existent branch throws an error.
|
|
279
|
-
* This ensures that the repository maintains valid state.
|
|
280
|
-
*/
|
|
281
|
-
it("should throw error when switching to a non-existent branch", () => {
|
|
282
|
-
expect(() => {
|
|
283
|
-
repository.switchToBranch("non-existent-id");
|
|
284
|
-
}).toThrow(/Branch not found/);
|
|
285
|
-
});
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* Tests resetting the head to an earlier message in the tree.
|
|
289
|
-
* This should truncate the active branch at the specified message.
|
|
290
|
-
*/
|
|
291
|
-
it("should reset head to an earlier message in the tree", () => {
|
|
292
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
293
|
-
const child = createTestMessage({ id: "child-id" });
|
|
294
|
-
const grandchild = createTestMessage({ id: "grandchild-id" });
|
|
295
|
-
|
|
296
|
-
repository.addOrUpdateMessage(null, parent);
|
|
297
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
298
|
-
repository.addOrUpdateMessage("child-id", grandchild);
|
|
299
|
-
|
|
300
|
-
// Reset to parent
|
|
301
|
-
repository.resetHead("parent-id");
|
|
302
|
-
|
|
303
|
-
// Head should be parent
|
|
304
|
-
expect(repository.headId).toBe("parent-id");
|
|
305
|
-
|
|
306
|
-
// Messages should only include parent
|
|
307
|
-
const messages = repository.getMessages();
|
|
308
|
-
expect(messages.map((m) => m.id)).toEqual(["parent-id"]);
|
|
309
|
-
});
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* Tests that resetting head to a message with children removes those children.
|
|
313
|
-
* All descendants should be deleted from the repository.
|
|
314
|
-
*/
|
|
315
|
-
it("should remove children when resetting head to a message with children", () => {
|
|
316
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
317
|
-
const child = createTestMessage({ id: "child-id" });
|
|
318
|
-
const grandchild1 = createTestMessage({ id: "grandchild1-id" });
|
|
319
|
-
const grandchild2 = createTestMessage({ id: "grandchild2-id" });
|
|
320
|
-
const greatGrandchild = createTestMessage({ id: "greatgrandchild-id" });
|
|
321
|
-
|
|
322
|
-
// Build tree: parent -> child -> grandchild1
|
|
323
|
-
// \-> grandchild2 -> greatGrandchild
|
|
324
|
-
repository.addOrUpdateMessage(null, parent);
|
|
325
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
326
|
-
repository.addOrUpdateMessage("child-id", grandchild1);
|
|
327
|
-
repository.addOrUpdateMessage("child-id", grandchild2);
|
|
328
|
-
repository.addOrUpdateMessage("grandchild2-id", greatGrandchild);
|
|
329
|
-
|
|
330
|
-
// Reset to child (which has children)
|
|
331
|
-
repository.resetHead("child-id");
|
|
332
|
-
|
|
333
|
-
// Head should be child
|
|
334
|
-
expect(repository.headId).toBe("child-id");
|
|
335
|
-
|
|
336
|
-
// Messages should only include parent and child
|
|
337
|
-
const messages = repository.getMessages();
|
|
338
|
-
expect(messages.map((m) => m.id)).toEqual(["parent-id", "child-id"]);
|
|
339
|
-
|
|
340
|
-
// Verify children are removed from repository
|
|
341
|
-
expect(() => repository.getMessage("grandchild1-id")).toThrow(
|
|
342
|
-
/Message not found/,
|
|
343
|
-
);
|
|
344
|
-
expect(() => repository.getMessage("grandchild2-id")).toThrow(
|
|
345
|
-
/Message not found/,
|
|
346
|
-
);
|
|
347
|
-
expect(() => repository.getMessage("greatgrandchild-id")).toThrow(
|
|
348
|
-
/Message not found/,
|
|
349
|
-
);
|
|
350
|
-
|
|
351
|
-
// Verify branches are empty for the child
|
|
352
|
-
const branches = repository.getBranches("child-id");
|
|
353
|
-
expect(branches).toEqual(["child-id"]);
|
|
354
|
-
});
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* Tests resetting the head to null.
|
|
358
|
-
* This should clear the active branch completely.
|
|
359
|
-
*/
|
|
360
|
-
it("should reset head to null when null is passed", () => {
|
|
361
|
-
const message = createTestMessage();
|
|
362
|
-
repository.addOrUpdateMessage(null, message);
|
|
363
|
-
|
|
364
|
-
repository.resetHead(null);
|
|
365
|
-
|
|
366
|
-
expect(repository.headId).toBeNull();
|
|
367
|
-
expect(repository.getMessages()).toHaveLength(0);
|
|
368
|
-
});
|
|
369
|
-
});
|
|
370
|
-
|
|
371
|
-
describe("Optimistic messages", () => {
|
|
372
|
-
/**
|
|
373
|
-
* Tests creating an optimistic message with a unique ID.
|
|
374
|
-
* The message should have a running status and the correct ID.
|
|
375
|
-
*/
|
|
376
|
-
it("should create an optimistic message with a unique ID", () => {
|
|
377
|
-
mockGenerateOptimisticId.mockReturnValue("__optimistic__generated-id");
|
|
378
|
-
|
|
379
|
-
const coreMessage = createThreadMessageLike();
|
|
380
|
-
const optimisticId = repository.appendOptimisticMessage(
|
|
381
|
-
null,
|
|
382
|
-
coreMessage,
|
|
383
|
-
);
|
|
384
|
-
|
|
385
|
-
expect(optimisticId).toBe("__optimistic__generated-id");
|
|
386
|
-
expect(repository.getMessage(optimisticId).message.status?.type).toBe(
|
|
387
|
-
"running",
|
|
388
|
-
);
|
|
389
|
-
});
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* Tests creating an optimistic message as a child of a specified parent.
|
|
393
|
-
* The message should have the correct parent relationship.
|
|
394
|
-
*/
|
|
395
|
-
it("should create an optimistic message as a child of a specified parent", () => {
|
|
396
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
397
|
-
repository.addOrUpdateMessage(null, parent);
|
|
398
|
-
|
|
399
|
-
const coreMessage = createThreadMessageLike();
|
|
400
|
-
const optimisticId = repository.appendOptimisticMessage(
|
|
401
|
-
"parent-id",
|
|
402
|
-
coreMessage,
|
|
403
|
-
);
|
|
404
|
-
|
|
405
|
-
// Verify parent relationship
|
|
406
|
-
const result = repository.getMessage(optimisticId);
|
|
407
|
-
expect(result.parentId).toBe("parent-id");
|
|
408
|
-
});
|
|
409
|
-
|
|
410
|
-
/**
|
|
411
|
-
* Tests that optimistic IDs are unique even if the first generated ID
|
|
412
|
-
* already exists in the repository.
|
|
413
|
-
*/
|
|
414
|
-
it("should retry generating unique optimistic IDs if initial one exists", () => {
|
|
415
|
-
// First call returns an ID that already exists
|
|
416
|
-
mockGenerateOptimisticId.mockReturnValueOnce("__optimistic__existing-id");
|
|
417
|
-
|
|
418
|
-
// Create a message with the ID that will conflict
|
|
419
|
-
const existingMessage = createTestMessage({
|
|
420
|
-
id: "__optimistic__existing-id",
|
|
421
|
-
});
|
|
422
|
-
repository.addOrUpdateMessage(null, existingMessage);
|
|
423
|
-
|
|
424
|
-
// Second call returns a unique ID
|
|
425
|
-
mockGenerateOptimisticId.mockReturnValueOnce("__optimistic__unique-id");
|
|
426
|
-
|
|
427
|
-
const coreMessage = createThreadMessageLike();
|
|
428
|
-
const optimisticId = repository.appendOptimisticMessage(
|
|
429
|
-
null,
|
|
430
|
-
coreMessage,
|
|
431
|
-
);
|
|
432
|
-
|
|
433
|
-
// Should have used the second ID
|
|
434
|
-
expect(optimisticId).toBe("__optimistic__unique-id");
|
|
435
|
-
expect(mockGenerateOptimisticId).toHaveBeenCalledTimes(2);
|
|
436
|
-
});
|
|
437
|
-
});
|
|
438
|
-
|
|
439
|
-
describe("Export and import", () => {
|
|
440
|
-
/**
|
|
441
|
-
* Tests exporting the repository state.
|
|
442
|
-
* The exported state should correctly represent all messages and relationships.
|
|
443
|
-
*/
|
|
444
|
-
it("should export the repository state", () => {
|
|
445
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
446
|
-
const child = createTestMessage({ id: "child-id" });
|
|
447
|
-
|
|
448
|
-
repository.addOrUpdateMessage(null, parent);
|
|
449
|
-
repository.addOrUpdateMessage("parent-id", child);
|
|
450
|
-
|
|
451
|
-
const exported = repository.export();
|
|
452
|
-
|
|
453
|
-
expect(exported.headId).toBe("child-id");
|
|
454
|
-
expect(exported.messages).toHaveLength(2);
|
|
455
|
-
expect(
|
|
456
|
-
exported.messages.find((m) => m.message.id === "parent-id")?.parentId,
|
|
457
|
-
).toBeNull();
|
|
458
|
-
expect(
|
|
459
|
-
exported.messages.find((m) => m.message.id === "child-id")?.parentId,
|
|
460
|
-
).toBe("parent-id");
|
|
461
|
-
});
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Tests importing repository state.
|
|
465
|
-
* The imported state should correctly restore all messages and relationships.
|
|
466
|
-
*/
|
|
467
|
-
it("should import repository state", () => {
|
|
468
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
469
|
-
const child = createTestMessage({ id: "child-id" });
|
|
470
|
-
|
|
471
|
-
const exported = {
|
|
472
|
-
headId: "child-id",
|
|
473
|
-
messages: [
|
|
474
|
-
{ message: parent, parentId: null },
|
|
475
|
-
{ message: child, parentId: "parent-id" },
|
|
476
|
-
],
|
|
477
|
-
};
|
|
478
|
-
|
|
479
|
-
repository.import(exported);
|
|
480
|
-
|
|
481
|
-
expect(repository.headId).toBe("child-id");
|
|
482
|
-
const messages = repository.getMessages();
|
|
483
|
-
expect(messages.map((m) => m.id)).toEqual(["parent-id", "child-id"]);
|
|
484
|
-
});
|
|
485
|
-
|
|
486
|
-
/**
|
|
487
|
-
* Tests importing with a specified head that is not the most recent message.
|
|
488
|
-
* This simulates restoring a specific branch even if it's not the latest one.
|
|
489
|
-
*/
|
|
490
|
-
it("should import with a specified head that is not the most recent message", () => {
|
|
491
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
492
|
-
const child1 = createTestMessage({ id: "child1-id" });
|
|
493
|
-
const child2 = createTestMessage({ id: "child2-id" });
|
|
494
|
-
|
|
495
|
-
const exported = {
|
|
496
|
-
headId: "child1-id", // Specify child1 as head, not the last message
|
|
497
|
-
messages: [
|
|
498
|
-
{ message: parent, parentId: null },
|
|
499
|
-
{ message: child1, parentId: "parent-id" },
|
|
500
|
-
{ message: child2, parentId: "parent-id" }, // Sibling of child1
|
|
501
|
-
],
|
|
502
|
-
};
|
|
503
|
-
|
|
504
|
-
repository.import(exported);
|
|
505
|
-
|
|
506
|
-
// Head should be as specified
|
|
507
|
-
expect(repository.headId).toBe("child1-id");
|
|
508
|
-
|
|
509
|
-
// Active branch should be parent -> child1
|
|
510
|
-
const messages = repository.getMessages();
|
|
511
|
-
expect(messages.map((m) => m.id)).toEqual(["parent-id", "child1-id"]);
|
|
512
|
-
|
|
513
|
-
// We should be able to switch to child2
|
|
514
|
-
repository.switchToBranch("child2-id");
|
|
515
|
-
expect(repository.headId).toBe("child2-id");
|
|
516
|
-
});
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Tests that importing with invalid parent references throws an error.
|
|
520
|
-
* This ensures data integrity during import.
|
|
521
|
-
*/
|
|
522
|
-
it("should throw an error when importing with invalid parent references", () => {
|
|
523
|
-
const child = createTestMessage({ id: "child-id" });
|
|
524
|
-
|
|
525
|
-
const exported = {
|
|
526
|
-
headId: "child-id",
|
|
527
|
-
messages: [{ message: child, parentId: "non-existent-id" }],
|
|
528
|
-
};
|
|
529
|
-
|
|
530
|
-
expect(() => {
|
|
531
|
-
repository.import(exported);
|
|
532
|
-
}).toThrow(/Parent message not found/);
|
|
533
|
-
});
|
|
534
|
-
});
|
|
535
|
-
|
|
536
|
-
describe("ExportedMessageRepository utility", () => {
|
|
537
|
-
/**
|
|
538
|
-
* Tests converting an array of messages to repository format.
|
|
539
|
-
* The converted format should establish proper parent-child relationships.
|
|
540
|
-
*/
|
|
541
|
-
it("should convert an array of messages to repository format", () => {
|
|
542
|
-
mockGenerateId.mockReturnValue("generated-id");
|
|
543
|
-
|
|
544
|
-
const messages: ThreadMessageLike[] = [
|
|
545
|
-
{
|
|
546
|
-
role: "user" as const,
|
|
547
|
-
content: [
|
|
548
|
-
{ type: "text" as const, text: "Hello" },
|
|
549
|
-
] as TextMessagePart[],
|
|
550
|
-
},
|
|
551
|
-
{
|
|
552
|
-
role: "assistant" as const,
|
|
553
|
-
content: [
|
|
554
|
-
{ type: "text" as const, text: "Hi there" },
|
|
555
|
-
] as TextMessagePart[],
|
|
556
|
-
},
|
|
557
|
-
];
|
|
558
|
-
|
|
559
|
-
const result = ExportedMessageRepository.fromArray(messages);
|
|
560
|
-
|
|
561
|
-
expect(result.messages).toHaveLength(2);
|
|
562
|
-
expect(result.messages[0]!.parentId).toBeNull();
|
|
563
|
-
expect(result.messages[1]!.parentId).toBe("generated-id");
|
|
564
|
-
});
|
|
565
|
-
|
|
566
|
-
/**
|
|
567
|
-
* Tests handling empty message arrays.
|
|
568
|
-
* The repository should handle this gracefully.
|
|
569
|
-
*/
|
|
570
|
-
it("should handle empty message arrays", () => {
|
|
571
|
-
const result = ExportedMessageRepository.fromArray([]);
|
|
572
|
-
expect(result.messages).toHaveLength(0);
|
|
573
|
-
});
|
|
574
|
-
});
|
|
575
|
-
|
|
576
|
-
describe("Complex scenarios", () => {
|
|
577
|
-
/**
|
|
578
|
-
* Tests that the tree structure is maintained after deleting nodes.
|
|
579
|
-
* Child nodes should be preserved and accessible after deleting a sibling.
|
|
580
|
-
*/
|
|
581
|
-
it("should maintain tree structure after deletions", () => {
|
|
582
|
-
// Create tree:
|
|
583
|
-
// root
|
|
584
|
-
// └── A
|
|
585
|
-
// ├── B
|
|
586
|
-
// └── C
|
|
587
|
-
|
|
588
|
-
const root = createTestMessage({ id: "root-id" });
|
|
589
|
-
const nodeA = createTestMessage({ id: "A-id" });
|
|
590
|
-
const nodeB = createTestMessage({ id: "B-id" });
|
|
591
|
-
const nodeC = createTestMessage({ id: "C-id" });
|
|
592
|
-
|
|
593
|
-
repository.addOrUpdateMessage(null, root);
|
|
594
|
-
repository.addOrUpdateMessage("root-id", nodeA);
|
|
595
|
-
repository.addOrUpdateMessage("A-id", nodeB);
|
|
596
|
-
repository.addOrUpdateMessage("A-id", nodeC);
|
|
597
|
-
|
|
598
|
-
// Delete B
|
|
599
|
-
repository.deleteMessage("B-id");
|
|
600
|
-
|
|
601
|
-
// Verify A still has C as child
|
|
602
|
-
repository.switchToBranch("C-id");
|
|
603
|
-
expect(repository.headId).toBe("C-id");
|
|
604
|
-
|
|
605
|
-
// Check that we still have root -> A -> C path
|
|
606
|
-
const messages = repository.getMessages();
|
|
607
|
-
expect(messages.map((m) => m.id)).toEqual(["root-id", "A-id", "C-id"]);
|
|
608
|
-
});
|
|
609
|
-
|
|
610
|
-
/**
|
|
611
|
-
* Tests relinking children when deleting a middle node.
|
|
612
|
-
* Children of the deleted node should be relinked to the specified replacement.
|
|
613
|
-
*/
|
|
614
|
-
it("should relink children when deleting a middle node", () => {
|
|
615
|
-
// Create: root -> A -> B -> C
|
|
616
|
-
const root = createTestMessage({ id: "root-id" });
|
|
617
|
-
const nodeA = createTestMessage({ id: "A-id" });
|
|
618
|
-
const nodeB = createTestMessage({ id: "B-id" });
|
|
619
|
-
const nodeC = createTestMessage({ id: "C-id" });
|
|
620
|
-
|
|
621
|
-
repository.addOrUpdateMessage(null, root);
|
|
622
|
-
repository.addOrUpdateMessage("root-id", nodeA);
|
|
623
|
-
repository.addOrUpdateMessage("A-id", nodeB);
|
|
624
|
-
repository.addOrUpdateMessage("B-id", nodeC);
|
|
625
|
-
|
|
626
|
-
// Delete B, specifying A as the new parent for B's children
|
|
627
|
-
repository.deleteMessage("B-id", "A-id");
|
|
628
|
-
|
|
629
|
-
// Verify C is now a child of A directly
|
|
630
|
-
const c = repository.getMessage("C-id");
|
|
631
|
-
expect(c.parentId).toBe("A-id");
|
|
632
|
-
|
|
633
|
-
// Check that we have a path from root to C
|
|
634
|
-
repository.switchToBranch("C-id");
|
|
635
|
-
const messages = repository.getMessages();
|
|
636
|
-
|
|
637
|
-
// Must contain root, A, and C (B was deleted)
|
|
638
|
-
expect(messages.some((m) => m.id === "root-id")).toBe(true);
|
|
639
|
-
expect(messages.some((m) => m.id === "A-id")).toBe(true);
|
|
640
|
-
expect(messages.some((m) => m.id === "C-id")).toBe(true);
|
|
641
|
-
expect(messages.some((m) => m.id === "B-id")).toBe(false);
|
|
642
|
-
});
|
|
643
|
-
|
|
644
|
-
/**
|
|
645
|
-
* Tests deleting a node with multiple children and ensuring all children
|
|
646
|
-
* are properly relinked to the specified replacement.
|
|
647
|
-
*/
|
|
648
|
-
it("should relink multiple children when deleting a parent node", () => {
|
|
649
|
-
// Create: root -> A -> B (and A -> C, A -> D)
|
|
650
|
-
const root = createTestMessage({ id: "root-id" });
|
|
651
|
-
const nodeA = createTestMessage({ id: "A-id" });
|
|
652
|
-
const nodeB = createTestMessage({ id: "B-id" });
|
|
653
|
-
const nodeC = createTestMessage({ id: "C-id" });
|
|
654
|
-
const nodeD = createTestMessage({ id: "D-id" });
|
|
655
|
-
|
|
656
|
-
repository.addOrUpdateMessage(null, root);
|
|
657
|
-
repository.addOrUpdateMessage("root-id", nodeA);
|
|
658
|
-
repository.addOrUpdateMessage("A-id", nodeB);
|
|
659
|
-
repository.addOrUpdateMessage("A-id", nodeC);
|
|
660
|
-
repository.addOrUpdateMessage("A-id", nodeD);
|
|
661
|
-
|
|
662
|
-
// Delete A, specifying root as the new parent for A's children
|
|
663
|
-
repository.deleteMessage("A-id", "root-id");
|
|
664
|
-
|
|
665
|
-
// Verify B, C, D are now children of root
|
|
666
|
-
expect(repository.getMessage("B-id").parentId).toBe("root-id");
|
|
667
|
-
expect(repository.getMessage("C-id").parentId).toBe("root-id");
|
|
668
|
-
expect(repository.getMessage("D-id").parentId).toBe("root-id");
|
|
669
|
-
|
|
670
|
-
// This test is checking specifically that after deletion and relinking,
|
|
671
|
-
// we can still access each branch. The exact message structure may vary depending
|
|
672
|
-
// on implementation details of MessageRepository's internal tree management.
|
|
673
|
-
// Instead of checking array length and order exactly, we'll verify that:
|
|
674
|
-
// 1. We can access each branch
|
|
675
|
-
// 2. Each branch contains both root and the target message
|
|
676
|
-
|
|
677
|
-
// Verify B branch
|
|
678
|
-
repository.switchToBranch("B-id");
|
|
679
|
-
const bMessages = repository.getMessages();
|
|
680
|
-
expect(bMessages.some((m) => m.id === "root-id")).toBe(true);
|
|
681
|
-
expect(bMessages.some((m) => m.id === "B-id")).toBe(true);
|
|
682
|
-
expect(bMessages.some((m) => m.id === "A-id")).toBe(false);
|
|
683
|
-
|
|
684
|
-
// Verify C branch
|
|
685
|
-
repository.switchToBranch("C-id");
|
|
686
|
-
const cMessages = repository.getMessages();
|
|
687
|
-
expect(cMessages.some((m) => m.id === "root-id")).toBe(true);
|
|
688
|
-
expect(cMessages.some((m) => m.id === "C-id")).toBe(true);
|
|
689
|
-
expect(cMessages.some((m) => m.id === "A-id")).toBe(false);
|
|
690
|
-
|
|
691
|
-
// Verify D branch
|
|
692
|
-
repository.switchToBranch("D-id");
|
|
693
|
-
const dMessages = repository.getMessages();
|
|
694
|
-
expect(dMessages.some((m) => m.id === "root-id")).toBe(true);
|
|
695
|
-
expect(dMessages.some((m) => m.id === "D-id")).toBe(true);
|
|
696
|
-
expect(dMessages.some((m) => m.id === "A-id")).toBe(false);
|
|
697
|
-
});
|
|
698
|
-
|
|
699
|
-
/**
|
|
700
|
-
* Tests that updating a message preserves its position in the tree.
|
|
701
|
-
*/
|
|
702
|
-
it("should preserve message position when updating content", () => {
|
|
703
|
-
const parent = createTestMessage({ id: "parent-id" });
|
|
704
|
-
const child1 = createTestMessage({ id: "child1-id" });
|
|
705
|
-
const child2 = createTestMessage({ id: "child2-id" });
|
|
706
|
-
|
|
707
|
-
repository.addOrUpdateMessage(null, parent);
|
|
708
|
-
repository.addOrUpdateMessage("parent-id", child1);
|
|
709
|
-
repository.addOrUpdateMessage("child1-id", child2);
|
|
710
|
-
|
|
711
|
-
// Update child1 with new content
|
|
712
|
-
const updatedChild1 = createTestMessage({
|
|
713
|
-
id: "child1-id",
|
|
714
|
-
content: [{ type: "text", text: "Updated content" }],
|
|
715
|
-
});
|
|
716
|
-
|
|
717
|
-
repository.addOrUpdateMessage("parent-id", updatedChild1);
|
|
718
|
-
|
|
719
|
-
// Verify structure is preserved
|
|
720
|
-
const messages = repository.getMessages();
|
|
721
|
-
expect(messages.map((m) => m.id)).toEqual([
|
|
722
|
-
"parent-id",
|
|
723
|
-
"child1-id",
|
|
724
|
-
"child2-id",
|
|
725
|
-
]);
|
|
726
|
-
|
|
727
|
-
// Verify content was updated
|
|
728
|
-
const MessagePart = messages[1]!.content[0];
|
|
729
|
-
expect(MessagePart.type).toBe("text");
|
|
730
|
-
expect((MessagePart as TextMessagePart).text).toBe("Updated content");
|
|
731
|
-
});
|
|
732
|
-
|
|
733
|
-
/**
|
|
734
|
-
* Tests re-parenting a root message when new messages are inserted at the start.
|
|
735
|
-
* This simulates the external store runtime scenario where new messages are
|
|
736
|
-
* prepended to the list, requiring the previous root to be re-parented.
|
|
737
|
-
*
|
|
738
|
-
* Scenario:
|
|
739
|
-
* 1. Initial state: A -> B -> C (A is root at level 0)
|
|
740
|
-
* 2. New messages inserted: X -> Y -> A -> B -> C (X is new root, A needs re-parenting to Y)
|
|
741
|
-
* 3. A should be updated to have Y as parent and level should be recalculated
|
|
742
|
-
*/
|
|
743
|
-
it("should handle re-parenting when messages are inserted at the start", () => {
|
|
744
|
-
// Initial state: A -> B -> C
|
|
745
|
-
const messageA = createTestMessage({ id: "A" });
|
|
746
|
-
const messageB = createTestMessage({ id: "B" });
|
|
747
|
-
const messageC = createTestMessage({ id: "C" });
|
|
748
|
-
|
|
749
|
-
repository.addOrUpdateMessage(null, messageA);
|
|
750
|
-
repository.addOrUpdateMessage("A", messageB);
|
|
751
|
-
repository.addOrUpdateMessage("B", messageC);
|
|
752
|
-
|
|
753
|
-
// Verify initial state
|
|
754
|
-
expect(repository.getMessages().map((m) => m.id)).toEqual([
|
|
755
|
-
"A",
|
|
756
|
-
"B",
|
|
757
|
-
"C",
|
|
758
|
-
]);
|
|
759
|
-
expect(repository.headId).toBe("C");
|
|
760
|
-
|
|
761
|
-
// Now insert new messages at the start: X -> Y
|
|
762
|
-
const messageX = createTestMessage({ id: "X" });
|
|
763
|
-
const messageY = createTestMessage({ id: "Y" });
|
|
764
|
-
|
|
765
|
-
repository.addOrUpdateMessage(null, messageX);
|
|
766
|
-
repository.addOrUpdateMessage("X", messageY);
|
|
767
|
-
|
|
768
|
-
// Re-parent A to be a child of Y instead of root
|
|
769
|
-
repository.addOrUpdateMessage("Y", messageA);
|
|
770
|
-
|
|
771
|
-
// Expected structure: X -> Y -> A -> B -> C
|
|
772
|
-
const messages = repository.getMessages();
|
|
773
|
-
expect(messages.map((m) => m.id)).toEqual(["X", "Y", "A", "B", "C"]);
|
|
774
|
-
|
|
775
|
-
// Verify parent relationships
|
|
776
|
-
expect(repository.getMessage("X").parentId).toBeNull();
|
|
777
|
-
expect(repository.getMessage("Y").parentId).toBe("X");
|
|
778
|
-
expect(repository.getMessage("A").parentId).toBe("Y");
|
|
779
|
-
expect(repository.getMessage("B").parentId).toBe("A");
|
|
780
|
-
expect(repository.getMessage("C").parentId).toBe("B");
|
|
781
|
-
|
|
782
|
-
// Verify head is still C
|
|
783
|
-
expect(repository.headId).toBe("C");
|
|
784
|
-
});
|
|
785
|
-
});
|
|
786
|
-
});
|