@assistant-ui/core 0.1.14 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/attachment.d.ts +6 -0
- package/dist/adapters/attachment.d.ts.map +1 -1
- package/dist/adapters/attachment.js +54 -9
- package/dist/adapters/attachment.js.map +1 -1
- package/dist/adapters/{mention.d.ts → directive-formatter.d.ts} +2 -4
- package/dist/adapters/directive-formatter.d.ts.map +1 -0
- package/dist/adapters/{mention.js → directive-formatter.js} +4 -9
- package/dist/adapters/directive-formatter.js.map +1 -0
- package/dist/adapters/index.d.ts +1 -3
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +2 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/speech.d.ts.map +1 -1
- package/dist/adapters/speech.js +1 -3
- package/dist/adapters/speech.js.map +1 -1
- package/dist/adapters/thread-history.d.ts +1 -0
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/adapters/trigger.d.ts +1 -18
- package/dist/adapters/trigger.d.ts.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/model-context/frame/host.d.ts +1 -1
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +1 -0
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +1 -1
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +1 -0
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/model-context/registry.d.ts +2 -2
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/tool.d.ts +1 -1
- package/dist/model-context/tool.d.ts.map +1 -1
- package/dist/model-context/types.d.ts +1 -1
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/model-context/types.js +0 -3
- package/dist/model-context/types.js.map +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts +1 -1
- package/dist/react/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/client/DataRenderers.d.ts +1 -1
- package/dist/react/client/DataRenderers.d.ts.map +1 -1
- package/dist/react/client/DataRenderers.js +14 -0
- package/dist/react/client/DataRenderers.js.map +1 -1
- package/dist/react/client/Tools.d.ts +1 -1
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +1 -0
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts +1 -1
- package/dist/react/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.d.ts +2 -2
- package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.js +1 -0
- package/dist/react/model-context/useInlineRender.js.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +1 -0
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.js +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.d.ts +1 -1
- package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.js +1 -1
- package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +7 -1
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +60 -44
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/primitives/part/PartMessages.d.ts +1 -1
- package/dist/react/primitives/part/PartMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.js +2 -1
- package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts +1 -1
- package/dist/react/providers/MessageByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts +1 -1
- package/dist/react/providers/TextMessagePartProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts +1 -1
- package/dist/react/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +4 -2
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +28 -6
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +5 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +27 -9
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +2 -2
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +2 -2
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +4 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.js +10 -0
- package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.js +6 -0
- package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
- package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -1
- package/dist/react/runtimes/useToolInvocations.js +2 -0
- package/dist/react/runtimes/useToolInvocations.js.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/react/types/scopes/dataRenderers.d.ts +2 -0
- package/dist/react/types/scopes/dataRenderers.d.ts.map +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts +0 -1
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.js +0 -3
- package/dist/runtime/api/attachment-runtime.js.map +1 -1
- package/dist/runtime/api/bindings.d.ts +1 -0
- package/dist/runtime/api/bindings.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.d.ts +4 -2
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.js.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts +6 -6
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +4 -2
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js +6 -0
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +10 -9
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +4 -3
- package/dist/runtime/api/thread-runtime.js.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +22 -8
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +2 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js +26 -5
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +2 -0
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +7 -0
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/internal.d.ts.map +1 -1
- package/dist/runtime/internal.js +1 -4
- package/dist/runtime/internal.js.map +1 -1
- package/dist/runtime/utils/auto-status.d.ts +1 -1
- package/dist/runtime/utils/auto-status.d.ts.map +1 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts +1 -1
- package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.js.map +1 -1
- package/dist/runtimes/assistant-transport/utils.d.ts +1 -1
- package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -1
- package/dist/runtimes/assistant-transport/utils.js +1 -1
- package/dist/runtimes/assistant-transport/utils.js.map +1 -1
- package/dist/runtimes/external-store/external-store-adapter.d.ts +8 -0
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +27 -25
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +1 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +4 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +2 -2
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +3 -0
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/types.d.ts +14 -2
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts +2 -2
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts +2 -2
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +2 -2
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.js +1 -0
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/scopes/thread-list-item.d.ts +1 -0
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/threads.d.ts +1 -0
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +1 -15
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/tests/remote-thread-list-test-helpers.d.ts +12 -0
- package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -0
- package/dist/tests/remote-thread-list-test-helpers.js +48 -0
- package/dist/tests/remote-thread-list-test-helpers.js.map +1 -0
- package/dist/types/directive.d.ts +19 -0
- package/dist/types/directive.d.ts.map +1 -0
- package/dist/types/directive.js +2 -0
- package/dist/types/directive.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/trigger.d.ts +2 -2
- package/dist/types/trigger.d.ts.map +1 -1
- package/dist/utils/json/is-json.d.ts +1 -1
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/package.json +11 -11
- package/src/adapters/attachment.ts +68 -16
- package/src/adapters/{mention.ts → directive-formatter.ts} +8 -20
- package/src/adapters/index.ts +2 -9
- package/src/adapters/speech.ts +1 -16
- package/src/adapters/thread-history.ts +1 -8
- package/src/adapters/trigger.ts +1 -37
- package/src/index.ts +3 -24
- package/src/model-context/frame/host.ts +6 -5
- package/src/model-context/frame/provider.ts +6 -5
- package/src/model-context/registry.ts +6 -6
- package/src/model-context/tool.ts +1 -1
- package/src/model-context/types.ts +1 -17
- package/src/react/AssistantRuntimeProvider.tsx +1 -1
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +3 -1
- package/src/react/client/DataRenderers.ts +19 -3
- package/src/react/client/Tools.ts +4 -3
- package/src/react/model-context/makeAssistantTool.ts +1 -1
- package/src/react/model-context/makeAssistantToolUI.ts +1 -1
- package/src/react/model-context/useInlineRender.ts +3 -2
- package/src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx +1 -0
- package/src/react/primitives/composer/ComposerAttachments.tsx +7 -1
- package/src/react/primitives/message/MessageAttachments.tsx +7 -1
- package/src/react/primitives/message/MessageParts.tsx +94 -57
- package/src/react/primitives/part/PartMessages.tsx +1 -1
- package/src/react/primitives/thread/ThreadMessages.tsx +3 -2
- package/src/react/primitives/threadList/ThreadListItems.tsx +7 -1
- package/src/react/providers/AttachmentByIndexProvider.tsx +1 -1
- package/src/react/providers/ChainOfThoughtByIndicesProvider.tsx +1 -1
- package/src/react/providers/ChainOfThoughtPartByIndexProvider.tsx +1 -1
- package/src/react/providers/MessageByIndexProvider.tsx +1 -1
- package/src/react/providers/PartByIndexProvider.tsx +1 -1
- package/src/react/providers/QueueItemByIndexProvider.tsx +1 -1
- package/src/react/providers/SuggestionByIndexProvider.tsx +1 -1
- package/src/react/providers/TextMessagePartProvider.tsx +1 -1
- package/src/react/providers/ThreadListItemByIndexProvider.tsx +1 -1
- package/src/react/providers/ThreadListItemRuntimeProvider.tsx +1 -1
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +47 -15
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +31 -17
- package/src/react/runtimes/RuntimeAdapterProvider.tsx +1 -1
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +3 -3
- package/src/react/runtimes/cloud/auiV0.ts +5 -2
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +6 -3
- package/src/react/runtimes/useLocalRuntime.ts +10 -0
- package/src/react/runtimes/useRemoteThreadListRuntime.ts +6 -0
- package/src/react/runtimes/useToolInvocations.ts +2 -0
- package/src/react/types/MessagePartComponentTypes.ts +1 -1
- package/src/react/types/scopes/dataRenderers.ts +2 -0
- package/src/runtime/api/assistant-runtime.ts +1 -1
- package/src/runtime/api/attachment-runtime.ts +0 -4
- package/src/runtime/api/bindings.ts +1 -0
- package/src/runtime/api/composer-runtime.ts +4 -2
- package/src/runtime/api/message-runtime.ts +8 -8
- package/src/runtime/api/thread-list-runtime.ts +14 -5
- package/src/runtime/api/thread-runtime.ts +13 -12
- package/src/runtime/base/base-composer-runtime-core.ts +37 -16
- package/src/runtime/base/base-thread-runtime-core.ts +1 -1
- package/src/runtime/base/default-edit-composer-runtime-core.ts +35 -5
- package/src/runtime/interfaces/thread-list-runtime-core.ts +2 -0
- package/src/runtime/interfaces/thread-runtime-core.ts +7 -0
- package/src/runtime/internal.ts +1 -4
- package/src/runtime/utils/auto-status.ts +1 -1
- package/src/runtime/utils/chat-model-adapter.ts +1 -1
- package/src/runtime/utils/thread-message-like.ts +4 -1
- package/src/runtimes/assistant-transport/utils.ts +5 -1
- package/src/runtimes/external-store/external-store-adapter.ts +8 -0
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +35 -29
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +4 -0
- package/src/runtimes/remote-thread-list/adapter/in-memory.ts +2 -2
- package/src/runtimes/remote-thread-list/remote-thread-state.ts +3 -0
- package/src/runtimes/remote-thread-list/types.ts +14 -2
- package/src/store/runtime-clients/attachment-runtime-client.ts +2 -2
- package/src/store/runtime-clients/composer-runtime-client.ts +2 -2
- package/src/store/runtime-clients/message-part-runtime-client.ts +2 -2
- package/src/store/runtime-clients/message-runtime-client.ts +2 -2
- package/src/store/runtime-clients/thread-list-item-runtime-client.ts +1 -1
- package/src/store/runtime-clients/thread-list-runtime-client.ts +4 -3
- package/src/store/runtime-clients/thread-runtime-client.ts +3 -3
- package/src/store/scopes/thread-list-item.ts +1 -0
- package/src/store/scopes/threads.ts +1 -0
- package/src/subscribable/subscribable.ts +1 -24
- package/src/tests/OptimisticState-list-race.test.ts +5 -9
- package/src/tests/RemoteThreadListThreadListRuntimeCore-custom-metadata.test.ts +123 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-reload.test.ts +209 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-dedupe.test.ts +139 -0
- package/src/tests/attachment.test.ts +180 -0
- package/src/tests/base-composer-runtime-core-addAttachment.test.ts +154 -0
- package/src/tests/default-edit-composer-runtime-core.test.ts +312 -0
- package/src/tests/{mention-formatter.test.ts → directive-formatter.test.ts} +26 -1
- package/src/tests/external-store-thread-list-runtime-core.test.ts +212 -0
- package/src/tests/get-thread-state-isRunning.test.ts +93 -0
- package/src/tests/remote-thread-list-isLoading.test.ts +6 -10
- package/src/tests/remote-thread-list-test-helpers.ts +70 -0
- package/src/tests/thread-list-runtime-getLoadThreadsPromise.test.ts +17 -1
- package/src/types/directive.ts +19 -0
- package/src/types/index.ts +1 -3
- package/src/types/message.ts +0 -12
- package/src/types/trigger.ts +2 -10
- package/src/utils/json/is-json.ts +1 -1
- package/dist/adapters/mention.d.ts.map +0 -1
- package/dist/adapters/mention.js.map +0 -1
- package/dist/types/mention.d.ts +0 -21
- package/dist/types/mention.d.ts.map +0 -1
- package/dist/types/mention.js +0 -2
- package/dist/types/mention.js.map +0 -1
- package/src/types/mention.ts +0 -39
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
type THREAD_MAPPING_ID,
|
|
7
7
|
createThreadMappingId,
|
|
8
8
|
} from "../runtimes/remote-thread-list/remote-thread-state";
|
|
9
|
+
import { deferred } from "./remote-thread-list-test-helpers";
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Tests for the isLoading lifecycle of RemoteThreadListThreadListRuntimeCore.
|
|
@@ -70,16 +71,6 @@ const applyListResult = (
|
|
|
70
71
|
};
|
|
71
72
|
};
|
|
72
73
|
|
|
73
|
-
function deferred<T>() {
|
|
74
|
-
let resolve!: (v: T) => void;
|
|
75
|
-
let reject!: (e: unknown) => void;
|
|
76
|
-
const promise = new Promise<T>((res, rej) => {
|
|
77
|
-
resolve = res;
|
|
78
|
-
reject = rej;
|
|
79
|
-
});
|
|
80
|
-
return { promise, resolve, reject };
|
|
81
|
-
}
|
|
82
|
-
|
|
83
74
|
describe("RemoteThreadList isLoading lifecycle", () => {
|
|
84
75
|
it("starts as true before any loading begins", () => {
|
|
85
76
|
const state = new OptimisticState<RemoteThreadState>(INITIAL_STATE);
|
|
@@ -93,6 +84,7 @@ describe("RemoteThreadList isLoading lifecycle", () => {
|
|
|
93
84
|
state.optimisticUpdate({
|
|
94
85
|
execute: () => d.promise,
|
|
95
86
|
loading: (s) => ({ ...s, isLoading: true }),
|
|
87
|
+
// biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
|
|
96
88
|
then: applyListResult,
|
|
97
89
|
});
|
|
98
90
|
|
|
@@ -106,6 +98,7 @@ describe("RemoteThreadList isLoading lifecycle", () => {
|
|
|
106
98
|
const promise = state.optimisticUpdate({
|
|
107
99
|
execute: () => d.promise,
|
|
108
100
|
loading: (s) => ({ ...s, isLoading: true }),
|
|
101
|
+
// biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
|
|
109
102
|
then: applyListResult,
|
|
110
103
|
});
|
|
111
104
|
|
|
@@ -122,6 +115,7 @@ describe("RemoteThreadList isLoading lifecycle", () => {
|
|
|
122
115
|
const promise = state.optimisticUpdate({
|
|
123
116
|
execute: () => d.promise,
|
|
124
117
|
loading: (s) => ({ ...s, isLoading: true }),
|
|
118
|
+
// biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
|
|
125
119
|
then: applyListResult,
|
|
126
120
|
});
|
|
127
121
|
|
|
@@ -146,6 +140,7 @@ describe("RemoteThreadList isLoading lifecycle", () => {
|
|
|
146
140
|
const promise = state.optimisticUpdate({
|
|
147
141
|
execute: () => d.promise,
|
|
148
142
|
loading: (s) => ({ ...s, isLoading: true }),
|
|
143
|
+
// biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
|
|
149
144
|
then: applyListResult,
|
|
150
145
|
});
|
|
151
146
|
|
|
@@ -169,6 +164,7 @@ describe("RemoteThreadList isLoading error path", () => {
|
|
|
169
164
|
.optimisticUpdate({
|
|
170
165
|
execute: () => d.promise,
|
|
171
166
|
loading: (s) => ({ ...s, isLoading: true }),
|
|
167
|
+
// biome-ignore lint/suspicious/noThenProperty: OptimisticState reducer pattern
|
|
172
168
|
then: applyListResult,
|
|
173
169
|
})
|
|
174
170
|
.catch(() => {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { vi } from "vitest";
|
|
2
|
+
import { RemoteThreadListThreadListRuntimeCore } from "../react/runtimes/RemoteThreadListThreadListRuntimeCore";
|
|
3
|
+
import type { RemoteThreadListAdapter } from "../runtimes/remote-thread-list/types";
|
|
4
|
+
import type { ModelContextProvider } from "../model-context/types";
|
|
5
|
+
|
|
6
|
+
export function deferred<T>() {
|
|
7
|
+
let resolve!: (value: T) => void;
|
|
8
|
+
let reject!: (reason?: unknown) => void;
|
|
9
|
+
const promise = new Promise<T>((res, rej) => {
|
|
10
|
+
resolve = res;
|
|
11
|
+
reject = rej;
|
|
12
|
+
});
|
|
13
|
+
return { promise, resolve, reject };
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const contextProvider: ModelContextProvider = {
|
|
17
|
+
getModelContext: () => ({}),
|
|
18
|
+
subscribe: () => () => {},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export function makeAdapter(
|
|
22
|
+
overrides: Partial<RemoteThreadListAdapter> = {},
|
|
23
|
+
): RemoteThreadListAdapter {
|
|
24
|
+
return {
|
|
25
|
+
list: vi.fn(async () => ({ threads: [] })),
|
|
26
|
+
initialize: vi.fn(async (threadId: string) => ({
|
|
27
|
+
remoteId: threadId,
|
|
28
|
+
externalId: threadId,
|
|
29
|
+
})),
|
|
30
|
+
rename: vi.fn(async () => {}),
|
|
31
|
+
archive: vi.fn(async () => {}),
|
|
32
|
+
unarchive: vi.fn(async () => {}),
|
|
33
|
+
delete: vi.fn(async () => {}),
|
|
34
|
+
generateTitle: vi.fn(
|
|
35
|
+
async () =>
|
|
36
|
+
new ReadableStream({
|
|
37
|
+
start(c) {
|
|
38
|
+
c.close();
|
|
39
|
+
},
|
|
40
|
+
}) as never,
|
|
41
|
+
),
|
|
42
|
+
fetch: vi.fn(async (id: string) => ({
|
|
43
|
+
status: "regular" as const,
|
|
44
|
+
remoteId: id,
|
|
45
|
+
externalId: id,
|
|
46
|
+
title: "Test",
|
|
47
|
+
})),
|
|
48
|
+
...overrides,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function createCore(
|
|
53
|
+
adapter: RemoteThreadListAdapter,
|
|
54
|
+
threadId?: string,
|
|
55
|
+
): RemoteThreadListThreadListRuntimeCore {
|
|
56
|
+
const core = new RemoteThreadListThreadListRuntimeCore(
|
|
57
|
+
{ adapter, runtimeHook: () => ({}) as never, threadId },
|
|
58
|
+
contextProvider,
|
|
59
|
+
);
|
|
60
|
+
// `startThreadRuntime` blocks until a React component attaches a runtime;
|
|
61
|
+
// stub it so non-React unit tests don't hang.
|
|
62
|
+
(
|
|
63
|
+
core as unknown as {
|
|
64
|
+
_hookManager: {
|
|
65
|
+
startThreadRuntime: (id: string) => Promise<unknown>;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
)._hookManager.startThreadRuntime = async () => ({});
|
|
69
|
+
return core;
|
|
70
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
1
|
+
import { describe, it, expect, vi } from "vitest";
|
|
2
2
|
import { ThreadListRuntimeImpl } from "../runtime/api/thread-list-runtime";
|
|
3
3
|
import type { ThreadListRuntimeCore } from "../runtime/interfaces/thread-list-runtime-core";
|
|
4
4
|
import { EMPTY_THREAD_CORE } from "../runtimes/remote-thread-list/empty-thread-core";
|
|
@@ -73,3 +73,19 @@ describe("ThreadListRuntime.getLoadThreadsPromise", () => {
|
|
|
73
73
|
expect(resolved).toBe(true);
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
|
+
|
|
77
|
+
describe("ThreadListRuntime.reload", () => {
|
|
78
|
+
it("resolves to undefined when core omits reload", async () => {
|
|
79
|
+
const runtime = new ThreadListRuntimeImpl(createMockCore());
|
|
80
|
+
await expect(runtime.reload()).resolves.toBeUndefined();
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it("delegates to core.reload when implemented", async () => {
|
|
84
|
+
const reload = vi.fn<() => Promise<void>>(() => Promise.resolve());
|
|
85
|
+
const core = { ...createMockCore(), reload };
|
|
86
|
+
const runtime = new ThreadListRuntimeImpl(core);
|
|
87
|
+
|
|
88
|
+
await runtime.reload();
|
|
89
|
+
expect(reload).toHaveBeenCalledTimes(1);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Unstable_TriggerItem } from "./trigger";
|
|
2
|
+
|
|
3
|
+
/** Parsed segment from directive text: either literal text or a resolved directive. */
|
|
4
|
+
export type Unstable_DirectiveSegment =
|
|
5
|
+
| { readonly kind: "text"; readonly text: string }
|
|
6
|
+
| {
|
|
7
|
+
readonly kind: "mention";
|
|
8
|
+
readonly type: string;
|
|
9
|
+
readonly label: string;
|
|
10
|
+
readonly id: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
/** Configurable formatter for directive serialization and parsing. */
|
|
14
|
+
export type Unstable_DirectiveFormatter = {
|
|
15
|
+
/** Serialize a trigger item to directive text. */
|
|
16
|
+
serialize(item: Unstable_TriggerItem): string;
|
|
17
|
+
/** Parse text into alternating text and directive segments. */
|
|
18
|
+
parse(text: string): readonly Unstable_DirectiveSegment[];
|
|
19
|
+
};
|
package/src/types/index.ts
CHANGED
|
@@ -40,11 +40,9 @@ export type { Unsubscribe } from "./unsubscribe";
|
|
|
40
40
|
export type { QuoteInfo } from "./quote";
|
|
41
41
|
|
|
42
42
|
export type {
|
|
43
|
-
Unstable_MentionItem,
|
|
44
|
-
Unstable_MentionCategory,
|
|
45
43
|
Unstable_DirectiveSegment,
|
|
46
44
|
Unstable_DirectiveFormatter,
|
|
47
|
-
} from "./
|
|
45
|
+
} from "./directive";
|
|
48
46
|
|
|
49
47
|
export type {
|
|
50
48
|
Unstable_TriggerItem,
|
package/src/types/message.ts
CHANGED
|
@@ -4,10 +4,6 @@ import type {
|
|
|
4
4
|
} from "assistant-stream/utils";
|
|
5
5
|
import type { CompleteAttachment } from "./attachment";
|
|
6
6
|
|
|
7
|
-
// =============================================================================
|
|
8
|
-
// Message Parts
|
|
9
|
-
// =============================================================================
|
|
10
|
-
|
|
11
7
|
export type TextMessagePart = {
|
|
12
8
|
readonly type: "text";
|
|
13
9
|
readonly text: string;
|
|
@@ -90,10 +86,6 @@ export type ThreadAssistantMessagePart =
|
|
|
90
86
|
| ImageMessagePart
|
|
91
87
|
| DataMessagePart;
|
|
92
88
|
|
|
93
|
-
// =============================================================================
|
|
94
|
-
// Message Status
|
|
95
|
-
// =============================================================================
|
|
96
|
-
|
|
97
89
|
export type MessagePartStatus =
|
|
98
90
|
| {
|
|
99
91
|
readonly type: "running";
|
|
@@ -143,10 +135,6 @@ export type MessageStatus =
|
|
|
143
135
|
readonly error?: ReadonlyJSONValue;
|
|
144
136
|
};
|
|
145
137
|
|
|
146
|
-
// =============================================================================
|
|
147
|
-
// Thread Messages
|
|
148
|
-
// =============================================================================
|
|
149
|
-
|
|
150
138
|
export type MessageTiming = {
|
|
151
139
|
readonly streamStartTime: number;
|
|
152
140
|
readonly firstTokenTime?: number;
|
package/src/types/trigger.ts
CHANGED
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
import type { ReadonlyJSONObject } from "assistant-stream/utils";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
// Trigger Item (generic item for any trigger-based popover: @mention, /command)
|
|
5
|
-
// =============================================================================
|
|
6
|
-
|
|
3
|
+
/** A selectable item displayed inside a trigger popover (e.g. mention, slash command). */
|
|
7
4
|
export type Unstable_TriggerItem = {
|
|
8
5
|
readonly id: string;
|
|
9
6
|
readonly type: string;
|
|
10
7
|
readonly label: string;
|
|
11
|
-
readonly icon?: string | undefined;
|
|
12
8
|
readonly description?: string | undefined;
|
|
13
9
|
readonly metadata?: ReadonlyJSONObject | undefined;
|
|
14
10
|
};
|
|
15
11
|
|
|
16
|
-
|
|
17
|
-
// Trigger Category (for hierarchical navigation in trigger popovers)
|
|
18
|
-
// =============================================================================
|
|
19
|
-
|
|
12
|
+
/** A grouping of trigger items shown in a trigger popover. */
|
|
20
13
|
export type Unstable_TriggerCategory = {
|
|
21
14
|
readonly id: string;
|
|
22
15
|
readonly label: string;
|
|
23
|
-
readonly icon?: string | undefined;
|
|
24
16
|
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../../src/adapters/mention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,2BAA2B,EAC5B,4BAAyB;AAC1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAkB;AAMzD,MAAM,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAQ9D;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,EAAE,2BAmChD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mention.js","sourceRoot":"","sources":["../../src/adapters/mention.ts"],"names":[],"mappings":"AAaA,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,YAAY,GAAG,6CAA6C,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAgC;IAC7E,SAAS,CAAC,IAA0B;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,MAAM,QAAQ,GAAgC,EAAE,CAAC;QACjD,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC;iBACzC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE;gBACf,KAAK;gBACL,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK;aACtB,CAAC,CAAC;YACH,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC"}
|
package/dist/types/mention.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { Unstable_TriggerItem, Unstable_TriggerCategory } from "./trigger.js";
|
|
2
|
-
export type Unstable_MentionItem = Unstable_TriggerItem;
|
|
3
|
-
export type Unstable_MentionCategory = Unstable_TriggerCategory;
|
|
4
|
-
/** Parsed segment from directive text */
|
|
5
|
-
export type Unstable_DirectiveSegment = {
|
|
6
|
-
readonly kind: "text";
|
|
7
|
-
readonly text: string;
|
|
8
|
-
} | {
|
|
9
|
-
readonly kind: "mention";
|
|
10
|
-
readonly type: string;
|
|
11
|
-
readonly label: string;
|
|
12
|
-
readonly id: string;
|
|
13
|
-
};
|
|
14
|
-
/** Configurable formatter for mention directive serialization/parsing */
|
|
15
|
-
export type Unstable_DirectiveFormatter = {
|
|
16
|
-
/** Serialize a mention item to directive text */
|
|
17
|
-
serialize(item: Unstable_MentionItem): string;
|
|
18
|
-
/** Parse text into alternating text and mention segments */
|
|
19
|
-
parse(text: string): readonly Unstable_DirectiveSegment[];
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=mention.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../../src/types/mention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAkB;AAMhF,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAMxD,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AAMhE,yCAAyC;AACzC,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;AAMN,yEAAyE;AACzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,iDAAiD;IACjD,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;IAC9C,4DAA4D;IAC5D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,yBAAyB,EAAE,CAAC;CAC3D,CAAC"}
|
package/dist/types/mention.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mention.js","sourceRoot":"","sources":["../../src/types/mention.ts"],"names":[],"mappings":""}
|
package/src/types/mention.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Unstable_TriggerItem, Unstable_TriggerCategory } from "./trigger";
|
|
2
|
-
|
|
3
|
-
// =============================================================================
|
|
4
|
-
// Mention Item — alias of the generic TriggerItem for backward compatibility
|
|
5
|
-
// =============================================================================
|
|
6
|
-
|
|
7
|
-
export type Unstable_MentionItem = Unstable_TriggerItem;
|
|
8
|
-
|
|
9
|
-
// =============================================================================
|
|
10
|
-
// Mention Category — alias of the generic TriggerCategory
|
|
11
|
-
// =============================================================================
|
|
12
|
-
|
|
13
|
-
export type Unstable_MentionCategory = Unstable_TriggerCategory;
|
|
14
|
-
|
|
15
|
-
// =============================================================================
|
|
16
|
-
// Directive Segment (parsed representation of mention directives in text)
|
|
17
|
-
// =============================================================================
|
|
18
|
-
|
|
19
|
-
/** Parsed segment from directive text */
|
|
20
|
-
export type Unstable_DirectiveSegment =
|
|
21
|
-
| { readonly kind: "text"; readonly text: string }
|
|
22
|
-
| {
|
|
23
|
-
readonly kind: "mention";
|
|
24
|
-
readonly type: string;
|
|
25
|
-
readonly label: string;
|
|
26
|
-
readonly id: string;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
// =============================================================================
|
|
30
|
-
// Directive Formatter (configurable serialization/parsing for mentions)
|
|
31
|
-
// =============================================================================
|
|
32
|
-
|
|
33
|
-
/** Configurable formatter for mention directive serialization/parsing */
|
|
34
|
-
export type Unstable_DirectiveFormatter = {
|
|
35
|
-
/** Serialize a mention item to directive text */
|
|
36
|
-
serialize(item: Unstable_MentionItem): string;
|
|
37
|
-
/** Parse text into alternating text and mention segments */
|
|
38
|
-
parse(text: string): readonly Unstable_DirectiveSegment[];
|
|
39
|
-
};
|