@assistant-ui/core 0.3.13 → 0.3.15
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/speech.d.ts.map +1 -1
- package/dist/adapters/speech.js +9 -15
- package/dist/adapters/speech.js.map +1 -1
- package/dist/adapters/thread-history.d.ts +2 -0
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/adapters/voice.d.ts.map +1 -1
- package/dist/adapters/voice.js +38 -15
- package/dist/adapters/voice.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +3 -2
- package/dist/internal.js +8 -7
- 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 +19 -4
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +4 -0
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +50 -3
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/model-context/frame/types.d.ts +4 -1
- package/dist/model-context/frame/types.d.ts.map +1 -1
- package/dist/model-context/frame/types.js.map +1 -1
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/registry.js +16 -4
- package/dist/model-context/registry.js.map +1 -1
- package/dist/react/RuntimeAdapter.d.ts +8 -1
- package/dist/react/RuntimeAdapter.d.ts.map +1 -1
- package/dist/react/RuntimeAdapter.js +23 -18
- package/dist/react/RuntimeAdapter.js.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +28 -12
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/client/AdaptedRemoteThread.d.ts +11 -0
- package/dist/react/client/AdaptedRemoteThread.d.ts.map +1 -0
- package/dist/react/client/AdaptedRemoteThread.js +27 -0
- package/dist/react/client/AdaptedRemoteThread.js.map +1 -0
- package/dist/react/client/InMemoryThreadList.d.ts +19 -0
- package/dist/react/client/InMemoryThreadList.d.ts.map +1 -0
- package/dist/react/client/InMemoryThreadList.js +418 -0
- package/dist/react/client/InMemoryThreadList.js.map +1 -0
- package/dist/react/client/Interactables.d.ts.map +1 -1
- package/dist/react/client/Interactables.js +159 -102
- package/dist/react/client/Interactables.js.map +1 -1
- package/dist/react/client/RemoteThreadList.d.ts +34 -0
- package/dist/react/client/RemoteThreadList.d.ts.map +1 -0
- package/dist/react/client/RemoteThreadList.js +898 -0
- package/dist/react/client/RemoteThreadList.js.map +1 -0
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +38 -27
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/index.d.ts +7 -2
- package/dist/react/index.js +5 -2
- package/dist/react/interactables-legacy/Interactables.d.ts.map +1 -1
- package/dist/react/interactables-legacy/Interactables.js +145 -110
- package/dist/react/interactables-legacy/Interactables.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.js +20 -19
- package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.js +2 -4
- package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.js +2 -4
- package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.js +2 -6
- package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.js +2 -6
- package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.js +2 -4
- package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.js +2 -4
- package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.js +6 -2
- package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts +3 -0
- package/dist/react/primitive-hooks/useThreadIsEmpty.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsEmpty.js +3 -0
- package/dist/react/primitive-hooks/useThreadIsEmpty.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts +3 -0
- package/dist/react/primitive-hooks/useThreadIsRunning.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadIsRunning.js +3 -0
- package/dist/react/primitive-hooks/useThreadIsRunning.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.d.ts +13 -0
- package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/react/primitives/thread/ThreadMessages.js +1 -1
- package/dist/react/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +24 -10
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +115 -71
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +14 -2
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +232 -63
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadResource.d.ts +30 -0
- package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -0
- package/dist/react/runtimes/RemoteThreadResource.js +136 -0
- package/dist/react/runtimes/RemoteThreadResource.js.map +1 -0
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +3 -10
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
- package/dist/react/runtimes/RuntimeAdapterProvider.js +3 -6
- package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
- package/dist/react/runtimes/assistant-transport/commandQueue.d.ts +17 -0
- package/dist/react/runtimes/assistant-transport/commandQueue.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/commandQueue.js +55 -0
- package/dist/react/runtimes/assistant-transport/commandQueue.js.map +1 -0
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts +11 -0
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js +165 -0
- package/dist/react/runtimes/assistant-transport/replayBoundaryStream.js.map +1 -0
- package/dist/react/runtimes/assistant-transport/runManager.d.ts +15 -0
- package/dist/react/runtimes/assistant-transport/runManager.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/runManager.js +86 -0
- package/dist/react/runtimes/assistant-transport/runManager.js.map +1 -0
- package/dist/react/runtimes/assistant-transport/types.d.ts +130 -0
- package/dist/react/runtimes/assistant-transport/types.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/types.js +0 -0
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts +14 -0
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js +296 -0
- package/dist/react/runtimes/assistant-transport/useAssistantTransportRuntime.js.map +1 -0
- package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts +7 -0
- package/dist/react/runtimes/assistant-transport/useConvertedState.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/useConvertedState.js +25 -0
- package/dist/react/runtimes/assistant-transport/useConvertedState.js.map +1 -0
- package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts +7 -0
- package/dist/react/runtimes/assistant-transport/useLatestRef.d.ts.map +1 -0
- package/dist/react/runtimes/assistant-transport/useLatestRef.js +27 -0
- package/dist/react/runtimes/assistant-transport/useLatestRef.js.map +1 -0
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +39 -13
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +2 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +3 -3
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +4 -0
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +7 -0
- 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 +60 -17
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts +16 -0
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.js +36 -0
- package/dist/react/runtimes/cloud/useCloudThreadListRuntime.js.map +1 -0
- package/dist/react/runtimes/external-message-converter.js +14 -14
- package/dist/react/runtimes/external-message-converter.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.js +44 -28
- package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.js +1 -1
- package/dist/react/runtimes/useRuntimeAdapters.d.ts +9 -0
- package/dist/react/runtimes/useRuntimeAdapters.d.ts.map +1 -0
- package/dist/react/runtimes/useRuntimeAdapters.js +20 -0
- package/dist/react/runtimes/useRuntimeAdapters.js.map +1 -0
- package/dist/runtime/api/composer-runtime.d.ts +5 -0
- 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.js +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +1 -0
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js +4 -2
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +12 -2
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +8 -2
- 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 +8 -7
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +1 -0
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +3 -3
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +0 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js +10 -4
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +6 -0
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/internal.js +5 -5
- package/dist/runtime/queue/message-queue.d.ts.map +1 -1
- package/dist/runtime/queue/message-queue.js +2 -1
- package/dist/runtime/queue/message-queue.js.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +27 -18
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtime/utils/thread-runtime-lifecycle.d.ts +8 -0
- package/dist/runtime/utils/thread-runtime-lifecycle.d.ts.map +1 -0
- package/dist/runtime/utils/thread-runtime-lifecycle.js +11 -0
- package/dist/runtime/utils/thread-runtime-lifecycle.js.map +1 -0
- package/dist/runtimes/external-store/external-store-shared-options.js.map +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 +4 -1
- 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 +8 -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 +37 -13
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +102 -0
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -0
- package/dist/runtimes/inert/InertThreadRuntimeCore.js +156 -0
- package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -0
- package/dist/runtimes/internal.d.ts +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +3 -0
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +78 -19
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts +12 -59
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js +10 -142
- package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/adapter-changed.d.ts +9 -0
- package/dist/runtimes/remote-thread-list/adapter-changed.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/adapter-changed.js +13 -0
- package/dist/runtimes/remote-thread-list/adapter-changed.js.map +1 -0
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/empty-thread-core.js +16 -152
- package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +2 -0
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/optimistic-state.js +11 -0
- package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/types.d.ts +32 -1
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +1 -12
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +67 -38
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
- package/dist/store/clients/external-thread.js +1 -1
- package/dist/store/clients/external-thread.js.map +1 -1
- package/dist/store/clients/suggestions.js +2 -2
- package/dist/store/clients/suggestions.js.map +1 -1
- package/dist/store/clients/thread-selection-events.d.ts +10 -0
- package/dist/store/clients/thread-selection-events.d.ts.map +1 -0
- package/dist/store/clients/thread-selection-events.js +40 -0
- package/dist/store/clients/thread-selection-events.js.map +1 -0
- package/dist/store/env.d.ts +5 -0
- package/dist/store/env.d.ts.map +1 -0
- package/dist/store/env.js +12 -0
- package/dist/store/env.js.map +1 -0
- package/dist/store/index.d.ts +5 -3
- package/dist/store/index.js +4 -2
- package/dist/store/internal.d.ts +4 -1
- package/dist/store/internal.js +4 -1
- package/dist/store/primitive-predicates.d.ts +19 -0
- package/dist/store/primitive-predicates.d.ts.map +1 -0
- package/dist/store/primitive-predicates.js +19 -0
- package/dist/store/primitive-predicates.js.map +1 -0
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/attachment-runtime-client.js +18 -11
- package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/handle-runtime-action.d.ts +5 -0
- package/dist/store/runtime-clients/handle-runtime-action.d.ts.map +1 -0
- package/dist/store/runtime-clients/handle-runtime-action.js +14 -0
- package/dist/store/runtime-clients/handle-runtime-action.js.map +1 -0
- package/dist/store/runtime-clients/handle-thread-list-action.d.ts +5 -0
- package/dist/store/runtime-clients/handle-thread-list-action.d.ts.map +1 -0
- package/dist/store/runtime-clients/handle-thread-list-action.js +7 -0
- package/dist/store/runtime-clients/handle-thread-list-action.js.map +1 -0
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js +62 -29
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.js +5 -6
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
- package/dist/store/scopes/composer.d.ts +9 -4
- package/dist/store/scopes/composer.d.ts.map +1 -1
- package/dist/store/scopes/thread-list-item.d.ts +7 -6
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/thread.d.ts +8 -7
- package/dist/store/scopes/thread.d.ts.map +1 -1
- package/dist/store/scopes/threads.d.ts +17 -1
- package/dist/store/scopes/threads.d.ts.map +1 -1
- package/dist/subscribable/subscribable.d.ts +2 -1
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +23 -18
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/types/message.d.ts +1 -1
- package/dist/types/message.js.map +1 -1
- package/dist/utils/composite-context-provider.d.ts +1 -0
- package/dist/utils/composite-context-provider.d.ts.map +1 -1
- package/dist/utils/composite-context-provider.js +25 -9
- package/dist/utils/composite-context-provider.js.map +1 -1
- package/dist/utils/notify-event-listeners.d.ts +2 -2
- package/dist/utils/notify-event-listeners.d.ts.map +1 -1
- package/dist/utils/notify-event-listeners.js +2 -2
- package/dist/utils/notify-event-listeners.js.map +1 -1
- package/dist/utils/silent-runtime-action.d.ts +6 -0
- package/dist/utils/silent-runtime-action.d.ts.map +1 -0
- package/dist/utils/silent-runtime-action.js +7 -0
- package/dist/utils/silent-runtime-action.js.map +1 -0
- package/package.json +8 -8
- package/src/adapters/speech.test.ts +118 -1
- package/src/adapters/speech.ts +21 -22
- package/src/adapters/thread-history.ts +2 -0
- package/src/adapters/voice.test.ts +134 -0
- package/src/adapters/voice.ts +35 -27
- package/src/index.ts +1 -0
- package/src/internal.ts +1 -0
- package/src/model-context/frame/host.test.ts +87 -5
- package/src/model-context/frame/host.ts +18 -4
- package/src/model-context/frame/provider.test.ts +347 -20
- package/src/model-context/frame/provider.ts +58 -2
- package/src/model-context/frame/types.ts +5 -0
- package/src/model-context/registry.test.ts +131 -0
- package/src/model-context/registry.ts +16 -6
- package/src/react/RuntimeAdapter.test.ts +2 -0
- package/src/react/RuntimeAdapter.ts +20 -8
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +34 -17
- package/src/react/client/AdaptedRemoteThread.ts +41 -0
- package/src/react/client/InMemoryThreadList.test.tsx +148 -0
- package/src/react/client/InMemoryThreadList.ts +290 -0
- package/src/react/client/Interactables.test.ts +326 -2
- package/src/react/client/Interactables.ts +227 -110
- package/src/react/client/RemoteThreadList.test.ts +1222 -0
- package/src/react/client/RemoteThreadList.ts +1136 -0
- package/src/react/client/Tools.ts +36 -29
- package/src/react/index.ts +13 -0
- package/src/react/interactables-legacy/Interactables.test.ts +317 -0
- package/src/react/interactables-legacy/Interactables.ts +204 -128
- package/src/react/primitive-hooks/useActionBarCopy.test.ts +15 -0
- package/src/react/primitive-hooks/useActionBarCopy.ts +15 -10
- package/src/react/primitive-hooks/useActionBarEdit.ts +2 -1
- package/src/react/primitive-hooks/useActionBarReload.ts +2 -6
- package/src/react/primitive-hooks/useBranchPickerNext.ts +2 -7
- package/src/react/primitive-hooks/useBranchPickerPrevious.ts +2 -7
- package/src/react/primitive-hooks/useComposerCancel.ts +2 -1
- package/src/react/primitive-hooks/useComposerSend.ts +2 -5
- package/src/react/primitive-hooks/useSuggestionTrigger.test.ts +11 -0
- package/src/react/primitive-hooks/useSuggestionTrigger.ts +4 -5
- package/src/react/primitive-hooks/useThreadIsEmpty.ts +3 -0
- package/src/react/primitive-hooks/useThreadIsRunning.ts +3 -0
- package/src/react/primitives/message/MessageParts.tsx +0 -1
- package/src/react/primitives/thread/ThreadMessages.tsx +2 -1
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.retry.test.tsx +116 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +1 -1
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +57 -6
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.title.test.tsx +272 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +171 -124
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.republish.test.ts +87 -0
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +327 -83
- package/src/react/runtimes/RemoteThreadResource.test.ts +141 -0
- package/src/react/runtimes/RemoteThreadResource.ts +233 -0
- package/src/react/runtimes/RuntimeAdapterProvider.tsx +8 -20
- package/src/react/runtimes/assistant-transport/commandQueue.ts +68 -0
- package/src/react/runtimes/assistant-transport/replayBoundaryStream.test.ts +455 -0
- package/src/react/runtimes/assistant-transport/replayBoundaryStream.ts +172 -0
- package/src/react/runtimes/assistant-transport/runManager.ts +124 -0
- package/src/react/runtimes/assistant-transport/transport-delivery.test.tsx +79 -0
- package/src/react/runtimes/assistant-transport/transport-parentid.test.tsx +97 -0
- package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +414 -0
- package/src/react/runtimes/assistant-transport/types.ts +170 -0
- package/src/react/runtimes/assistant-transport/useAssistantTransport.spec.md +141 -0
- package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.test.tsx +683 -0
- package/src/react/runtimes/assistant-transport/useAssistantTransportRuntime.ts +483 -0
- package/src/react/runtimes/assistant-transport/useConvertedState.ts +20 -0
- package/src/react/runtimes/assistant-transport/useLatestRef.ts +9 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +131 -6
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +61 -15
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +6 -4
- package/src/react/runtimes/cloud/auiV0.ts +17 -1
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.test.tsx +98 -3
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +104 -27
- package/src/react/runtimes/cloud/useCloudThreadListRuntime.test.tsx +56 -0
- package/src/react/runtimes/cloud/useCloudThreadListRuntime.ts +31 -0
- package/src/react/runtimes/external-message-converter.test.ts +143 -0
- package/src/react/runtimes/external-message-converter.ts +41 -41
- package/src/react/runtimes/remote-thread-hook-on-tap.test.ts +58 -0
- package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +83 -0
- package/src/react/runtimes/useExternalStoreRuntime.suggestions.test.tsx +13 -3
- package/src/react/runtimes/useExternalStoreRuntime.ts +7 -0
- package/src/react/runtimes/useExternalStoreSharedOptions.ts +3 -1
- package/src/react/runtimes/useLocalRuntime.test.tsx +134 -8
- package/src/react/runtimes/useRuntimeAdapters.test.tsx +62 -0
- package/src/react/runtimes/useRuntimeAdapters.ts +28 -0
- package/src/runtime/api/composer-runtime.ts +5 -0
- package/src/runtime/api/thread-list-runtime.ts +3 -1
- package/src/runtime/api/thread-runtime.ts +20 -2
- package/src/runtime/base/base-composer-runtime-core.ts +6 -5
- package/src/runtime/base/base-thread-runtime-core.test.ts +191 -0
- package/src/runtime/base/base-thread-runtime-core.ts +11 -2
- package/src/runtime/base/default-thread-composer-runtime-core.ts +12 -4
- package/src/runtime/interfaces/thread-runtime-core.ts +6 -0
- package/src/runtime/queue/message-queue.ts +2 -1
- package/src/runtime/utils/message-repository.ts +26 -18
- package/src/runtime/utils/thread-runtime-lifecycle.ts +18 -0
- package/src/runtimes/external-store/external-store-shared-options.ts +3 -1
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +4 -1
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +103 -34
- package/src/runtimes/inert/InertThreadRuntimeCore.test.ts +253 -0
- package/src/runtimes/inert/InertThreadRuntimeCore.ts +232 -0
- package/src/runtimes/local/local-thread-runtime-core.test.ts +692 -4
- package/src/runtimes/local/local-thread-runtime-core.ts +117 -22
- package/src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts +17 -205
- package/src/runtimes/remote-thread-list/adapter-changed.ts +10 -0
- package/src/runtimes/remote-thread-list/empty-thread-core.ts +28 -217
- package/src/runtimes/remote-thread-list/optimistic-state.test.ts +18 -0
- package/src/runtimes/remote-thread-list/optimistic-state.ts +13 -0
- package/src/runtimes/remote-thread-list/types.ts +34 -0
- package/src/runtimes/tool-invocations/EDGE_CASES.md +17 -6
- package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +243 -0
- package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +127 -61
- package/src/store/clients/external-thread.ts +1 -1
- package/src/store/clients/model-context-client.test.ts +16 -8
- package/src/store/clients/suggestions.ts +2 -2
- package/src/store/clients/thread-selection-events.ts +21 -0
- package/src/store/env.ts +11 -0
- package/src/store/index.ts +14 -1
- package/src/store/internal.ts +13 -0
- package/src/store/primitive-predicates.test.ts +184 -0
- package/src/store/primitive-predicates.ts +43 -0
- package/src/store/runtime-clients/attachment-runtime-client.test.ts +41 -0
- package/src/store/runtime-clients/attachment-runtime-client.ts +2 -1
- package/src/store/runtime-clients/handle-runtime-action.test.ts +40 -0
- package/src/store/runtime-clients/handle-runtime-action.ts +14 -0
- package/src/store/runtime-clients/handle-thread-list-action.test.ts +69 -0
- package/src/store/runtime-clients/handle-thread-list-action.ts +6 -0
- package/src/store/runtime-clients/thread-list-item-runtime-client.ts +15 -7
- package/src/store/runtime-clients/thread-list-runtime-client.ts +9 -6
- package/src/store/scopes/composer.ts +9 -4
- package/src/store/scopes/thread-list-item.ts +7 -6
- package/src/store/scopes/thread.ts +8 -7
- package/src/store/scopes/threads.ts +14 -0
- package/src/subscribable/subscribable.test.ts +77 -1
- package/src/subscribable/subscribable.ts +38 -23
- package/src/tests/MessageRepository.test.ts +48 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-errors.test.ts +2 -2
- package/src/tests/RemoteThreadListThreadListRuntimeCore-loadMore.test.ts +8 -6
- package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-unarchive.test.ts +25 -0
- package/src/tests/auiV0Encode.test.ts +66 -0
- package/src/tests/base-composer-runtime-core-send.test.ts +30 -0
- package/src/tests/base-composer-runtime-core.test.ts +28 -0
- package/src/tests/composer-can-cancel.test.ts +101 -0
- package/src/tests/empty-thread-core.test.ts +6 -0
- package/src/tests/external-store-thread-list-runtime-core.test.ts +101 -0
- package/src/tests/external-store-thread-runtime-core-adapter.test.ts +211 -1
- package/src/tests/external-store-thread-runtime-core.test.ts +124 -0
- package/src/tests/external-thread-isEmpty.test.tsx +100 -0
- package/src/tests/interactables-toolui-migration.test.tsx +66 -0
- package/src/tests/message-queue.test.ts +28 -0
- package/src/tests/remote-thread-list-adapter-switch.test.ts +383 -0
- package/src/tests/session-reset-notification.test.ts +145 -0
- package/src/tests/thread-switch-events.test.tsx +99 -1
- package/src/tests/tools-scope-migration.test.tsx +58 -0
- package/src/tests/useRemoteThreadListRuntime-controlled.test.tsx +67 -0
- package/src/types/message.ts +1 -1
- package/src/utils/composite-context-provider.test.ts +139 -0
- package/src/utils/composite-context-provider.ts +26 -8
- package/src/utils/notify-event-listeners.ts +10 -5
- package/src/utils/silent-runtime-action.ts +6 -0
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InertThreadRuntimeCore, createInertComposer } from "../inert/InertThreadRuntimeCore.js";
|
|
2
2
|
//#region src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts
|
|
3
3
|
const READONLY_THREAD_ERROR = /* @__PURE__ */ new Error("This is a readonly thread. You cannot perform mutations on readonly threads.");
|
|
4
|
-
var ReadonlyThreadRuntimeCore = class extends
|
|
4
|
+
var ReadonlyThreadRuntimeCore = class extends InertThreadRuntimeCore {
|
|
5
|
+
get error() {
|
|
6
|
+
return READONLY_THREAD_ERROR;
|
|
7
|
+
}
|
|
5
8
|
_messages = [];
|
|
6
9
|
get messages() {
|
|
7
10
|
return this._messages;
|
|
@@ -24,152 +27,17 @@ var ReadonlyThreadRuntimeCore = class extends BaseSubscribable {
|
|
|
24
27
|
if (this._messages.findIndex((m) => m.id === messageId) === -1) return [];
|
|
25
28
|
return [messageId];
|
|
26
29
|
}
|
|
27
|
-
switchToBranch() {
|
|
28
|
-
throw READONLY_THREAD_ERROR;
|
|
29
|
-
}
|
|
30
|
-
append() {
|
|
31
|
-
throw READONLY_THREAD_ERROR;
|
|
32
|
-
}
|
|
33
|
-
deleteMessage() {
|
|
34
|
-
throw READONLY_THREAD_ERROR;
|
|
35
|
-
}
|
|
36
|
-
startRun() {
|
|
37
|
-
throw READONLY_THREAD_ERROR;
|
|
38
|
-
}
|
|
39
|
-
resumeRun() {
|
|
40
|
-
throw READONLY_THREAD_ERROR;
|
|
41
|
-
}
|
|
42
|
-
cancelRun() {}
|
|
43
|
-
addToolResult() {
|
|
44
|
-
throw READONLY_THREAD_ERROR;
|
|
45
|
-
}
|
|
46
|
-
resumeToolCall() {
|
|
47
|
-
throw READONLY_THREAD_ERROR;
|
|
48
|
-
}
|
|
49
|
-
respondToToolApproval() {
|
|
50
|
-
throw READONLY_THREAD_ERROR;
|
|
51
|
-
}
|
|
52
|
-
speak() {
|
|
53
|
-
throw READONLY_THREAD_ERROR;
|
|
54
|
-
}
|
|
55
|
-
stopSpeaking() {}
|
|
56
|
-
connectVoice() {
|
|
57
|
-
throw READONLY_THREAD_ERROR;
|
|
58
|
-
}
|
|
59
|
-
disconnectVoice() {}
|
|
60
|
-
getVoiceVolume = () => 0;
|
|
61
|
-
subscribeVoiceVolume = () => () => {};
|
|
62
|
-
muteVoice() {
|
|
63
|
-
throw READONLY_THREAD_ERROR;
|
|
64
|
-
}
|
|
65
|
-
unmuteVoice() {
|
|
66
|
-
throw READONLY_THREAD_ERROR;
|
|
67
|
-
}
|
|
68
|
-
submitFeedback() {
|
|
69
|
-
throw READONLY_THREAD_ERROR;
|
|
70
|
-
}
|
|
71
|
-
getModelContext() {
|
|
72
|
-
return {};
|
|
73
|
-
}
|
|
74
|
-
exportExternalState() {
|
|
75
|
-
throw READONLY_THREAD_ERROR;
|
|
76
|
-
}
|
|
77
|
-
importExternalState() {
|
|
78
|
-
throw READONLY_THREAD_ERROR;
|
|
79
|
-
}
|
|
80
|
-
composer = {
|
|
81
|
-
attachments: [],
|
|
82
|
-
attachmentAccept: "*",
|
|
83
|
-
async addAttachment() {
|
|
84
|
-
throw READONLY_THREAD_ERROR;
|
|
85
|
-
},
|
|
86
|
-
async removeAttachment() {
|
|
87
|
-
throw READONLY_THREAD_ERROR;
|
|
88
|
-
},
|
|
89
|
-
isEditing: false,
|
|
90
|
-
canCancel: false,
|
|
91
|
-
canSend: false,
|
|
92
|
-
isEmpty: true,
|
|
93
|
-
text: "",
|
|
94
|
-
setText() {
|
|
95
|
-
throw READONLY_THREAD_ERROR;
|
|
96
|
-
},
|
|
97
|
-
role: "user",
|
|
98
|
-
setRole() {
|
|
99
|
-
throw READONLY_THREAD_ERROR;
|
|
100
|
-
},
|
|
101
|
-
runConfig: {},
|
|
102
|
-
setRunConfig() {
|
|
103
|
-
throw READONLY_THREAD_ERROR;
|
|
104
|
-
},
|
|
105
|
-
async reset() {},
|
|
106
|
-
async clearAttachments() {},
|
|
107
|
-
send() {
|
|
108
|
-
throw READONLY_THREAD_ERROR;
|
|
109
|
-
},
|
|
110
|
-
cancel() {},
|
|
111
|
-
queue: [],
|
|
112
|
-
moveQueueItem() {},
|
|
113
|
-
removeQueueItem() {},
|
|
114
|
-
dictation: void 0,
|
|
115
|
-
startDictation() {
|
|
116
|
-
throw READONLY_THREAD_ERROR;
|
|
117
|
-
},
|
|
118
|
-
stopDictation() {},
|
|
119
|
-
quote: void 0,
|
|
120
|
-
setQuote() {
|
|
121
|
-
throw READONLY_THREAD_ERROR;
|
|
122
|
-
},
|
|
123
|
-
subscribe() {
|
|
124
|
-
return () => {};
|
|
125
|
-
},
|
|
126
|
-
unstable_on() {
|
|
127
|
-
return () => {};
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
getEditComposer() {}
|
|
131
|
-
beginEdit() {
|
|
132
|
-
throw READONLY_THREAD_ERROR;
|
|
133
|
-
}
|
|
134
|
-
speech = void 0;
|
|
135
|
-
voice = void 0;
|
|
136
|
-
capabilities = {
|
|
137
|
-
switchToBranch: false,
|
|
138
|
-
switchBranchDuringRun: false,
|
|
139
|
-
edit: false,
|
|
140
|
-
delete: false,
|
|
141
|
-
reload: false,
|
|
142
|
-
refetchThread: false,
|
|
143
|
-
cancel: false,
|
|
144
|
-
unstable_copy: false,
|
|
145
|
-
speech: false,
|
|
146
|
-
dictation: false,
|
|
147
|
-
voice: false,
|
|
148
|
-
attachments: false,
|
|
149
|
-
feedback: false,
|
|
150
|
-
queue: false
|
|
151
|
-
};
|
|
152
|
-
isDisabled = false;
|
|
153
|
-
isSendDisabled = false;
|
|
154
|
-
isLoading = false;
|
|
155
|
-
state = null;
|
|
156
|
-
suggestions = [];
|
|
157
|
-
extras = void 0;
|
|
158
|
-
import() {
|
|
159
|
-
throw READONLY_THREAD_ERROR;
|
|
160
|
-
}
|
|
161
30
|
export() {
|
|
162
31
|
return { messages: this._messages.map((message, idx) => ({
|
|
163
32
|
message,
|
|
164
33
|
parentId: this._messages[idx - 1]?.id ?? null
|
|
165
34
|
})) };
|
|
166
35
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
36
|
+
composer = createInertComposer(READONLY_THREAD_ERROR, false);
|
|
37
|
+
isLoading = false;
|
|
38
|
+
cancelRun() {}
|
|
39
|
+
stopSpeaking() {}
|
|
40
|
+
disconnectVoice() {}
|
|
173
41
|
};
|
|
174
42
|
//#endregion
|
|
175
43
|
export { ReadonlyThreadRuntimeCore };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadonlyThreadRuntimeCore.js","names":["
|
|
1
|
+
{"version":3,"file":"ReadonlyThreadRuntimeCore.js","names":["ThreadMessage","InertThreadRuntimeCore","createInertComposer","READONLY_THREAD_ERROR","Error","ReadonlyThreadRuntimeCore","error","_messages","messages","setMessages","_notifySubscribers","getMessageById","messageId","idx","findIndex","m","id","undefined","parentId","message","index","getBranches","export","map","composer","isLoading","cancelRun","stopSpeaking","disconnectVoice"],"sources":["../../../src/runtimes/readonly/ReadonlyThreadRuntimeCore.ts"],"sourcesContent":["import type { ThreadMessage } from \"../../types/message\";\nimport {\n InertThreadRuntimeCore,\n createInertComposer,\n} from \"../inert/InertThreadRuntimeCore\";\n\nconst READONLY_THREAD_ERROR = new Error(\n \"This is a readonly thread. You cannot perform mutations on readonly threads.\",\n);\n\nexport class ReadonlyThreadRuntimeCore extends InertThreadRuntimeCore {\n protected get error() {\n return READONLY_THREAD_ERROR;\n }\n\n private _messages: readonly ThreadMessage[] = [];\n\n get messages() {\n return this._messages;\n }\n\n setMessages(messages: readonly ThreadMessage[]) {\n if (this._messages === messages) return;\n this._messages = messages;\n this._notifySubscribers();\n }\n\n getMessageById(messageId: string) {\n const idx = this._messages.findIndex((m) => m.id === messageId);\n if (idx === -1) return undefined;\n return {\n parentId: this._messages[idx - 1]?.id ?? null,\n message: this._messages[idx]!,\n index: idx,\n };\n }\n\n getBranches(messageId: string) {\n const idx = this._messages.findIndex((m) => m.id === messageId);\n if (idx === -1) return [];\n return [messageId];\n }\n\n export() {\n return {\n messages: this._messages.map((message, idx) => ({\n message,\n parentId: this._messages[idx - 1]?.id ?? null,\n })),\n };\n }\n\n composer = createInertComposer(READONLY_THREAD_ERROR, false);\n\n isLoading = false;\n\n override cancelRun(): void {}\n\n override stopSpeaking(): void {}\n\n override disconnectVoice(): void {}\n}\n"],"mappings":";;AAMA,MAAMG,wCAAwB,IAAIC,MAChC,8EACF;AAEA,IAAaC,4BAAb,cAA+CJ,uBAAuB;CACpE,IAAcK,QAAQ;EACpB,OAAOH;CACT;CAEA,YAA8C,CAAA;CAE9C,IAAIK,WAAW;EACb,OAAO,KAAKD;CACd;CAEAE,YAAYD,UAAoC;EAC9C,IAAI,KAAKD,cAAcC,UAAU;EACjC,KAAKD,YAAYC;EACjB,KAAKE,mBAAmB;CAC1B;CAEAC,eAAeC,WAAmB;EAChC,MAAMC,MAAM,KAAKN,UAAUO,WAAWC,MAAMA,EAAEC,OAAOJ,SAAS;EAC9D,IAAIC,QAAQ,IAAI,OAAOI,KAAAA;EACvB,OAAO;GACLC,UAAU,KAAKX,UAAUM,MAAM,EAAE,EAAEG,MAAM;GACzCG,SAAS,KAAKZ,UAAUM;GACxBO,OAAOP;EACT;CACF;CAEAQ,YAAYT,WAAmB;EAE7B,IADY,KAAKL,UAAUO,WAAWC,MAAMA,EAAEC,OAAOJ,SACjDC,MAAQ,IAAI,OAAO,CAAA;EACvB,OAAO,CAACD,SAAS;CACnB;CAEAU,SAAS;EACP,OAAO,EACLd,UAAU,KAAKD,UAAUgB,KAAKJ,SAASN,SAAS;GAC9CM;GACAD,UAAU,KAAKX,UAAUM,MAAM,EAAE,EAAEG,MAAM;EAC3C,EAAE,EACJ;CACF;CAEAQ,WAAWtB,oBAAoBC,uBAAuB,KAAK;CAE3DsB,YAAY;CAEZ,YAA2B,CAAC;CAE5B,eAA8B,CAAC;CAE/B,kBAAiC,CAAC;AACpC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SILENT_RUNTIME_ACTION } from "../../utils/silent-runtime-action.js";
|
|
2
|
+
//#region src/runtimes/remote-thread-list/adapter-changed.d.ts
|
|
3
|
+
declare class ThreadListAdapterChangedError extends Error {
|
|
4
|
+
readonly [SILENT_RUNTIME_ACTION] = true;
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { ThreadListAdapterChangedError };
|
|
9
|
+
//# sourceMappingURL=adapter-changed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-changed.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/adapter-changed.ts"],"mappings":";;cAEa,sCAAsC;YACvC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SILENT_RUNTIME_ACTION } from "../../utils/silent-runtime-action.js";
|
|
2
|
+
//#region src/runtimes/remote-thread-list/adapter-changed.ts
|
|
3
|
+
var ThreadListAdapterChangedError = class extends Error {
|
|
4
|
+
[SILENT_RUNTIME_ACTION] = true;
|
|
5
|
+
constructor() {
|
|
6
|
+
super("Thread list adapter changed while an operation was pending.");
|
|
7
|
+
this.name = "ThreadListAdapterChangedError";
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { ThreadListAdapterChangedError };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=adapter-changed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-changed.js","names":["SILENT_RUNTIME_ACTION","ThreadListAdapterChangedError","Error","constructor","name"],"sources":["../../../src/runtimes/remote-thread-list/adapter-changed.ts"],"sourcesContent":["import { SILENT_RUNTIME_ACTION } from \"../../utils/silent-runtime-action\";\n\nexport class ThreadListAdapterChangedError extends Error {\n readonly [SILENT_RUNTIME_ACTION] = true;\n\n constructor() {\n super(\"Thread list adapter changed while an operation was pending.\");\n this.name = \"ThreadListAdapterChangedError\";\n }\n}\n"],"mappings":";;AAEA,IAAaC,gCAAb,cAAmDC,MAAM;CACvD,CAAUF,yBAAyB;CAEnCG,cAAc;EACZ,MAAM,6DAA6D;EACnE,KAAKC,OAAO;CACd;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-thread-core.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/empty-thread-core.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"empty-thread-core.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/empty-thread-core.ts"],"mappings":";;cA2Ca,mBAAmB"}
|
|
@@ -1,164 +1,28 @@
|
|
|
1
|
+
import { InertThreadRuntimeCore, createInertComposer } from "../inert/InertThreadRuntimeCore.js";
|
|
1
2
|
//#region src/runtimes/remote-thread-list/empty-thread-core.ts
|
|
2
3
|
const EMPTY_THREAD_ERROR = /* @__PURE__ */ new Error("This is the empty thread, a placeholder for the main thread. You cannot perform any actions on this thread instance. This error is probably because you tried to call a thread method in your render function. Call the method inside a `useEffect` hook instead.");
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
var EmptyThreadRuntimeCore = class extends InertThreadRuntimeCore {
|
|
5
|
+
get error() {
|
|
6
|
+
return EMPTY_THREAD_ERROR;
|
|
7
|
+
}
|
|
8
|
+
messages = [];
|
|
9
|
+
composer = createInertComposer(EMPTY_THREAD_ERROR, true);
|
|
10
|
+
isLoading = true;
|
|
11
|
+
getMessageById() {}
|
|
5
12
|
getBranches() {
|
|
6
13
|
return [];
|
|
7
|
-
}
|
|
8
|
-
switchToBranch() {
|
|
9
|
-
throw EMPTY_THREAD_ERROR;
|
|
10
|
-
},
|
|
11
|
-
append() {
|
|
12
|
-
throw EMPTY_THREAD_ERROR;
|
|
13
|
-
},
|
|
14
|
-
deleteMessage() {
|
|
15
|
-
throw EMPTY_THREAD_ERROR;
|
|
16
|
-
},
|
|
17
|
-
startRun() {
|
|
18
|
-
throw EMPTY_THREAD_ERROR;
|
|
19
|
-
},
|
|
20
|
-
resumeRun() {
|
|
21
|
-
throw EMPTY_THREAD_ERROR;
|
|
22
|
-
},
|
|
23
|
-
cancelRun() {
|
|
24
|
-
throw EMPTY_THREAD_ERROR;
|
|
25
|
-
},
|
|
26
|
-
addToolResult() {
|
|
27
|
-
throw EMPTY_THREAD_ERROR;
|
|
28
|
-
},
|
|
29
|
-
resumeToolCall() {
|
|
30
|
-
throw EMPTY_THREAD_ERROR;
|
|
31
|
-
},
|
|
32
|
-
respondToToolApproval() {
|
|
33
|
-
throw EMPTY_THREAD_ERROR;
|
|
34
|
-
},
|
|
35
|
-
speak() {
|
|
36
|
-
throw EMPTY_THREAD_ERROR;
|
|
37
|
-
},
|
|
38
|
-
stopSpeaking() {
|
|
39
|
-
throw EMPTY_THREAD_ERROR;
|
|
40
|
-
},
|
|
41
|
-
connectVoice() {
|
|
42
|
-
throw EMPTY_THREAD_ERROR;
|
|
43
|
-
},
|
|
44
|
-
disconnectVoice() {
|
|
45
|
-
throw EMPTY_THREAD_ERROR;
|
|
46
|
-
},
|
|
47
|
-
getVoiceVolume: () => 0,
|
|
48
|
-
subscribeVoiceVolume: () => () => {},
|
|
49
|
-
muteVoice() {
|
|
50
|
-
throw EMPTY_THREAD_ERROR;
|
|
51
|
-
},
|
|
52
|
-
unmuteVoice() {
|
|
53
|
-
throw EMPTY_THREAD_ERROR;
|
|
54
|
-
},
|
|
55
|
-
submitFeedback() {
|
|
56
|
-
throw EMPTY_THREAD_ERROR;
|
|
57
|
-
},
|
|
58
|
-
getModelContext() {
|
|
59
|
-
return {};
|
|
60
|
-
},
|
|
61
|
-
exportExternalState() {
|
|
62
|
-
throw EMPTY_THREAD_ERROR;
|
|
63
|
-
},
|
|
64
|
-
importExternalState() {
|
|
65
|
-
throw EMPTY_THREAD_ERROR;
|
|
66
|
-
},
|
|
67
|
-
composer: {
|
|
68
|
-
attachments: [],
|
|
69
|
-
attachmentAccept: "*",
|
|
70
|
-
async addAttachment() {
|
|
71
|
-
throw EMPTY_THREAD_ERROR;
|
|
72
|
-
},
|
|
73
|
-
async removeAttachment() {
|
|
74
|
-
throw EMPTY_THREAD_ERROR;
|
|
75
|
-
},
|
|
76
|
-
isEditing: true,
|
|
77
|
-
canCancel: false,
|
|
78
|
-
canSend: false,
|
|
79
|
-
isEmpty: true,
|
|
80
|
-
text: "",
|
|
81
|
-
setText() {
|
|
82
|
-
throw EMPTY_THREAD_ERROR;
|
|
83
|
-
},
|
|
84
|
-
role: "user",
|
|
85
|
-
setRole() {
|
|
86
|
-
throw EMPTY_THREAD_ERROR;
|
|
87
|
-
},
|
|
88
|
-
runConfig: {},
|
|
89
|
-
setRunConfig() {
|
|
90
|
-
throw EMPTY_THREAD_ERROR;
|
|
91
|
-
},
|
|
92
|
-
async reset() {},
|
|
93
|
-
async clearAttachments() {},
|
|
94
|
-
send() {
|
|
95
|
-
throw EMPTY_THREAD_ERROR;
|
|
96
|
-
},
|
|
97
|
-
cancel() {},
|
|
98
|
-
queue: [],
|
|
99
|
-
moveQueueItem() {},
|
|
100
|
-
removeQueueItem() {},
|
|
101
|
-
dictation: void 0,
|
|
102
|
-
startDictation() {
|
|
103
|
-
throw EMPTY_THREAD_ERROR;
|
|
104
|
-
},
|
|
105
|
-
stopDictation() {},
|
|
106
|
-
quote: void 0,
|
|
107
|
-
setQuote() {
|
|
108
|
-
throw EMPTY_THREAD_ERROR;
|
|
109
|
-
},
|
|
110
|
-
subscribe() {
|
|
111
|
-
return () => {};
|
|
112
|
-
},
|
|
113
|
-
unstable_on() {
|
|
114
|
-
return () => {};
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
getEditComposer() {},
|
|
118
|
-
beginEdit() {
|
|
119
|
-
throw EMPTY_THREAD_ERROR;
|
|
120
|
-
},
|
|
121
|
-
speech: void 0,
|
|
122
|
-
voice: void 0,
|
|
123
|
-
capabilities: {
|
|
124
|
-
switchToBranch: false,
|
|
125
|
-
switchBranchDuringRun: false,
|
|
126
|
-
edit: false,
|
|
127
|
-
delete: false,
|
|
128
|
-
reload: false,
|
|
129
|
-
refetchThread: false,
|
|
130
|
-
cancel: false,
|
|
131
|
-
unstable_copy: false,
|
|
132
|
-
speech: false,
|
|
133
|
-
dictation: false,
|
|
134
|
-
voice: false,
|
|
135
|
-
attachments: false,
|
|
136
|
-
feedback: false,
|
|
137
|
-
queue: false
|
|
138
|
-
},
|
|
139
|
-
isDisabled: false,
|
|
140
|
-
isSendDisabled: false,
|
|
141
|
-
isLoading: true,
|
|
142
|
-
messages: [],
|
|
143
|
-
state: null,
|
|
144
|
-
suggestions: [],
|
|
145
|
-
extras: void 0,
|
|
146
|
-
subscribe() {
|
|
147
|
-
return () => {};
|
|
148
|
-
},
|
|
149
|
-
import() {
|
|
150
|
-
throw EMPTY_THREAD_ERROR;
|
|
151
|
-
},
|
|
14
|
+
}
|
|
152
15
|
export() {
|
|
153
16
|
return { messages: [] };
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
throw EMPTY_THREAD_ERROR;
|
|
157
|
-
},
|
|
158
|
-
unstable_on() {
|
|
17
|
+
}
|
|
18
|
+
subscribe() {
|
|
159
19
|
return () => {};
|
|
160
20
|
}
|
|
21
|
+
waitForUpdate() {
|
|
22
|
+
return Promise.reject(EMPTY_THREAD_ERROR);
|
|
23
|
+
}
|
|
161
24
|
};
|
|
25
|
+
const EMPTY_THREAD_CORE = new EmptyThreadRuntimeCore();
|
|
162
26
|
//#endregion
|
|
163
27
|
export { EMPTY_THREAD_CORE };
|
|
164
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-thread-core.js","names":["
|
|
1
|
+
{"version":3,"file":"empty-thread-core.js","names":["Unsubscribe","ThreadRuntimeCore","InertThreadRuntimeCore","createInertComposer","EMPTY_THREAD_ERROR","Error","EmptyThreadRuntimeCore","error","messages","composer","isLoading","getMessageById","undefined","getBranches","export","subscribe","waitForUpdate","Promise","reject","EMPTY_THREAD_CORE"],"sources":["../../../src/runtimes/remote-thread-list/empty-thread-core.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ThreadRuntimeCore } from \"../../runtime/interfaces/thread-runtime-core\";\nimport {\n InertThreadRuntimeCore,\n createInertComposer,\n} from \"../inert/InertThreadRuntimeCore\";\n\nconst EMPTY_THREAD_ERROR = new Error(\n \"This is the empty thread, a placeholder for the main thread. You cannot perform any actions on this thread instance. This error is probably because you tried to call a thread method in your render function. Call the method inside a `useEffect` hook instead.\",\n);\n\nclass EmptyThreadRuntimeCore extends InertThreadRuntimeCore {\n protected get error() {\n return EMPTY_THREAD_ERROR;\n }\n\n messages = [] as never[];\n\n composer = createInertComposer(EMPTY_THREAD_ERROR, true);\n\n isLoading = true;\n\n getMessageById() {\n return undefined;\n }\n\n getBranches() {\n return [];\n }\n\n export() {\n return { messages: [] };\n }\n\n override subscribe(): Unsubscribe {\n return () => {};\n }\n\n override waitForUpdate(): Promise<void> {\n return Promise.reject(EMPTY_THREAD_ERROR);\n }\n}\n\nexport const EMPTY_THREAD_CORE: ThreadRuntimeCore =\n new EmptyThreadRuntimeCore();\n"],"mappings":";;AAOA,MAAMI,qCAAqB,IAAIC,MAC7B,mQACF;AAEA,IAAMC,yBAAN,cAAqCJ,uBAAuB;CAC1D,IAAcK,QAAQ;EACpB,OAAOH;CACT;CAEAI,WAAW,CAAA;CAEXC,WAAWN,oBAAoBC,oBAAoB,IAAI;CAEvDM,YAAY;CAEZC,iBAAiB,CAEjB;CAEAE,cAAc;EACZ,OAAO,CAAA;CACT;CAEAC,SAAS;EACP,OAAO,EAAEN,UAAU,CAAA,EAAG;CACxB;CAEA,YAAkC;EAChC,aAAa,CAAC;CAChB;CAEA,gBAAwC;EACtC,OAAOS,QAAQC,OAAOd,kBAAkB;CAC1C;AACF;AAEA,MAAae,oBACX,IAAIb,uBAAuB"}
|
|
@@ -20,6 +20,7 @@ declare class OptimisticState<TState> extends BaseSubscribable {
|
|
|
20
20
|
*/
|
|
21
21
|
private readonly _completedOptimistics;
|
|
22
22
|
private _nextTransformOrder;
|
|
23
|
+
private _epoch;
|
|
23
24
|
private _baseValue;
|
|
24
25
|
private _cachedValue;
|
|
25
26
|
constructor(initialState: TState);
|
|
@@ -27,6 +28,7 @@ declare class OptimisticState<TState> extends BaseSubscribable {
|
|
|
27
28
|
get baseValue(): TState;
|
|
28
29
|
get value(): TState;
|
|
29
30
|
update(state: TState): void;
|
|
31
|
+
reset(state: TState): void;
|
|
30
32
|
optimisticUpdate<TResult>(transform: Transform<TState, TResult>): Promise<TResult>;
|
|
31
33
|
}
|
|
32
34
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistic-state.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/optimistic-state.ts"],"mappings":";;KAEK,UAAU,QAAQ;EACrB,eAAe,QAAQ;;EAGvB,QAAQ,OAAO,QAAQ,QAAQ,YAAY;;EAG3C,cAAc,OAAO,WAAW;;EAGhC,WAAW,OAAO,QAAQ,MAAM,QAAQ,aAAa;;cAuB1C,gBAAgB,gBAAgB;mBAC1B;;;;;;;;mBAUA;UAGT;UAEA;UACA;EAEW,YAAA,cAAc;UAMzB;MAwBG,aAAa;MAIb,SAAS;EAIb,OAAO,OAAO;
|
|
1
|
+
{"version":3,"file":"optimistic-state.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/optimistic-state.ts"],"mappings":";;KAEK,UAAU,QAAQ;EACrB,eAAe,QAAQ;;EAGvB,QAAQ,OAAO,QAAQ,QAAQ,YAAY;;EAG3C,cAAc,OAAO,WAAW;;EAGhC,WAAW,OAAO,QAAQ,MAAM,QAAQ,aAAa;;cAuB1C,gBAAgB,gBAAgB;mBAC1B;;;;;;;;mBAUA;UAGT;UACA;UAEA;UACA;EAEW,YAAA,cAAc;UAMzB;MAwBG,aAAa;MAIb,SAAS;EAIb,OAAO,OAAO;EAKd,MAAM,OAAO;EAUP,iBAAiB,SAC5B,WAAW,UAAU,QAAQ,WAC5B,QAAQ"}
|
|
@@ -16,6 +16,7 @@ var OptimisticState = class extends BaseSubscribable {
|
|
|
16
16
|
*/
|
|
17
17
|
_completedOptimistics = [];
|
|
18
18
|
_nextTransformOrder = 0;
|
|
19
|
+
_epoch = 0;
|
|
19
20
|
_baseValue;
|
|
20
21
|
_cachedValue;
|
|
21
22
|
constructor(initialState) {
|
|
@@ -44,7 +45,16 @@ var OptimisticState = class extends BaseSubscribable {
|
|
|
44
45
|
this._baseValue = state;
|
|
45
46
|
this._updateState();
|
|
46
47
|
}
|
|
48
|
+
reset(state) {
|
|
49
|
+
this._epoch++;
|
|
50
|
+
this._pendingTransforms.length = 0;
|
|
51
|
+
this._completedOptimistics.length = 0;
|
|
52
|
+
this._baseValue = state;
|
|
53
|
+
this._cachedValue = state;
|
|
54
|
+
this._notifySubscribers();
|
|
55
|
+
}
|
|
47
56
|
async optimisticUpdate(transform) {
|
|
57
|
+
const epoch = this._epoch;
|
|
48
58
|
const order = this._nextTransformOrder++;
|
|
49
59
|
const task = transform.execute();
|
|
50
60
|
const pendingTransform = {
|
|
@@ -56,6 +66,7 @@ var OptimisticState = class extends BaseSubscribable {
|
|
|
56
66
|
this._pendingTransforms.push(pendingTransform);
|
|
57
67
|
this._updateState();
|
|
58
68
|
const result = await task;
|
|
69
|
+
if (epoch !== this._epoch) return result;
|
|
59
70
|
this._baseValue = pipeTransforms(this._baseValue, result, [transform.optimistic, transform.then]);
|
|
60
71
|
for (const completed of this._completedOptimistics) if (transform.then || completed.order > pendingTransform.order) this._baseValue = completed.optimistic(this._baseValue);
|
|
61
72
|
if (transform.optimistic) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistic-state.js","names":["BaseSubscribable","Transform","execute","Promise","TResult","then","state","TState","result","optimistic","loading","task","PendingTransform","order","CompletedOptimistic","pipeTransforms","initialState","extraParam","TExtra","transforms","extra","reduce","transform","OptimisticState","_pendingTransforms","Array","_completedOptimistics","_nextTransformOrder","_baseValue","_cachedValue","constructor","_updateState","activeTransforms","map","apply","sort","a","b","_notifySubscribers","baseValue","value","update","optimisticUpdate","pendingTransform","push","completed","index","indexOf","splice"
|
|
1
|
+
{"version":3,"file":"optimistic-state.js","names":["BaseSubscribable","Transform","execute","Promise","TResult","then","state","TState","result","optimistic","loading","task","PendingTransform","order","CompletedOptimistic","pipeTransforms","initialState","extraParam","TExtra","transforms","extra","reduce","transform","OptimisticState","_pendingTransforms","Array","_completedOptimistics","_nextTransformOrder","_epoch","_baseValue","_cachedValue","constructor","_updateState","activeTransforms","map","apply","sort","a","b","_notifySubscribers","baseValue","value","update","reset","length","optimisticUpdate","epoch","pendingTransform","push","completed","index","indexOf","splice"],"sources":["../../../src/runtimes/remote-thread-list/optimistic-state.ts"],"sourcesContent":["import { BaseSubscribable } from \"../../subscribable/subscribable\";\n\ntype Transform<TState, TResult> = {\n execute: () => Promise<TResult>;\n\n /** transform the state after the promise resolves */\n then?: (state: TState, result: TResult) => TState;\n\n /** transform the state during resolution and afterwards */\n optimistic?: (state: TState) => TState;\n\n /** transform the state only while loading */\n loading?: (state: TState, task: Promise<TResult>) => TState;\n};\n\ntype PendingTransform<TState, TResult> = Transform<TState, TResult> & {\n order: number;\n task: Promise<TResult>;\n};\n\ntype CompletedOptimistic<TState> = {\n order: number;\n optimistic: (state: TState) => TState;\n};\n\nconst pipeTransforms = <TState, TExtra>(\n initialState: TState,\n extraParam: TExtra,\n transforms: (((state: TState, extra: TExtra) => TState) | undefined)[],\n): TState => {\n return transforms.reduce((state, transform) => {\n return transform?.(state, extraParam) ?? state;\n }, initialState);\n};\n\nexport class OptimisticState<TState> extends BaseSubscribable {\n private readonly _pendingTransforms: Array<PendingTransform<TState, any>> =\n [];\n\n /**\n * Completed optimistic callbacks remain active while any transform is\n * pending, so later state replacements cannot erase them. Invocation order\n * determines which overlapping optimistic update wins.\n *\n * Correctness requirement: `optimistic` callbacks must be idempotent.\n */\n private readonly _completedOptimistics: Array<CompletedOptimistic<TState>> =\n [];\n\n private _nextTransformOrder = 0;\n private _epoch = 0;\n\n private _baseValue: TState;\n private _cachedValue: TState;\n\n public constructor(initialState: TState) {\n super();\n this._baseValue = initialState;\n this._cachedValue = initialState;\n }\n\n private _updateState(): void {\n const activeTransforms = [\n ...this._pendingTransforms.map((transform) => ({\n order: transform.order,\n apply: (state: TState) =>\n pipeTransforms(state, transform.task, [\n transform.loading,\n transform.optimistic,\n ]),\n })),\n ...this._completedOptimistics.map(({ order, optimistic }) => ({\n order,\n apply: optimistic,\n })),\n ].sort((a, b) => a.order - b.order);\n\n this._cachedValue = activeTransforms.reduce(\n (state, transform) => transform.apply(state),\n this._baseValue,\n );\n\n this._notifySubscribers();\n }\n\n public get baseValue(): TState {\n return this._baseValue;\n }\n\n public get value(): TState {\n return this._cachedValue;\n }\n\n public update(state: TState): void {\n this._baseValue = state;\n this._updateState();\n }\n\n public reset(state: TState): void {\n // In-flight optimisticUpdate calls must not write into the replacement state.\n this._epoch++;\n this._pendingTransforms.length = 0;\n this._completedOptimistics.length = 0;\n this._baseValue = state;\n this._cachedValue = state;\n this._notifySubscribers();\n }\n\n public async optimisticUpdate<TResult>(\n transform: Transform<TState, TResult>,\n ): Promise<TResult> {\n const epoch = this._epoch;\n const order = this._nextTransformOrder++;\n const task = transform.execute();\n const pendingTransform = {\n ...transform,\n order,\n task,\n };\n try {\n this._pendingTransforms.push(pendingTransform);\n this._updateState();\n\n const result = await task;\n if (epoch !== this._epoch) return result;\n this._baseValue = pipeTransforms(this._baseValue, result, [\n transform.optimistic,\n transform.then,\n ]);\n\n // `then` can replace state with a stale snapshot, so replay every\n // completed effect; otherwise replay only newer overlapping effects.\n for (const completed of this._completedOptimistics) {\n if (transform.then || completed.order > pendingTransform.order) {\n this._baseValue = completed.optimistic(this._baseValue);\n }\n }\n\n if (transform.optimistic) {\n this._completedOptimistics.push({\n order: pendingTransform.order,\n optimistic: transform.optimistic,\n });\n this._completedOptimistics.sort((a, b) => a.order - b.order);\n }\n\n return result;\n } finally {\n const index = this._pendingTransforms.indexOf(pendingTransform);\n if (index > -1) {\n this._pendingTransforms.splice(index, 1);\n }\n\n if (this._pendingTransforms.length === 0) {\n this._completedOptimistics.length = 0;\n }\n\n this._updateState();\n }\n }\n}\n"],"mappings":";;AAyBA,MAAMe,kBACJC,cACAC,YACAE,eACW;CACX,OAAOA,WAAWE,QAAQf,OAAOgB,cAAc;EAC7C,OAAOA,YAAYhB,OAAOW,UAAU,KAAKX;CAC3C,GAAGU,YAAY;AACjB;AAEA,IAAaO,kBAAb,cAA6CvB,iBAAiB;CAC5D,qBACE,CAAA;;;;;;;;CASF,wBACE,CAAA;CAEF,sBAA8B;CAC9B,SAAiB;CAEjB;CACA;CAEA,YAAmBgB,cAAsB;EACvC,MAAM;EACN,KAAKa,aAAab;EAClB,KAAKc,eAAed;CACtB;CAEA,eAA6B;EAC3B,MAAMiB,mBAAmB,CACvB,GAAG,KAAKT,mBAAmBU,KAAKZ,eAAe;GAC7CT,OAAOS,UAAUT;GACjBsB,QAAQ7B,UACNS,eAAeT,OAAOgB,UAAUX,MAAM,CACpCW,UAAUZ,SACVY,UAAUb,UAAU,CACrB;EACL,EAAE,GACF,GAAG,KAAKiB,sBAAsBQ,KAAK,EAAErB,OAAOJ,kBAAkB;GAC5DI;GACAsB,OAAO1B;EACT,EAAE,CAAC,CACJ,CAAC2B,MAAMC,GAAGC,MAAMD,EAAExB,QAAQyB,EAAEzB,KAAK;EAElC,KAAKiB,eAAeG,iBAAiBZ,QAClCf,OAAOgB,cAAcA,UAAUa,MAAM7B,KAAK,GAC3C,KAAKuB,UACP;EAEA,KAAKU,mBAAmB;CAC1B;CAEA,IAAWC,YAAoB;EAC7B,OAAO,KAAKX;CACd;CAEA,IAAWY,QAAgB;EACzB,OAAO,KAAKX;CACd;CAEA,OAAcxB,OAAqB;EACjC,KAAKuB,aAAavB;EAClB,KAAK0B,aAAa;CACpB;CAEA,MAAa1B,OAAqB;EAEhC,KAAKsB;EACL,KAAKJ,mBAAmBoB,SAAS;EACjC,KAAKlB,sBAAsBkB,SAAS;EACpC,KAAKf,aAAavB;EAClB,KAAKwB,eAAexB;EACpB,KAAKiC,mBAAmB;CAC1B;CAEA,MAAaM,iBACXvB,WACkB;EAClB,MAAMwB,QAAQ,KAAKlB;EACnB,MAAMf,QAAQ,KAAKc;EACnB,MAAMhB,OAAOW,UAAUpB,QAAQ;EAC/B,MAAM6C,mBAAmB;GACvB,GAAGzB;GACHT;GACAF;EACF;EACA,IAAI;GACF,KAAKa,mBAAmBwB,KAAKD,gBAAgB;GAC7C,KAAKf,aAAa;GAElB,MAAMxB,SAAS,MAAMG;GACrB,IAAImC,UAAU,KAAKlB,QAAQ,OAAOpB;GAClC,KAAKqB,aAAad,eAAe,KAAKc,YAAYrB,QAAQ,CACxDc,UAAUb,YACVa,UAAUjB,IAAI,CACf;GAID,KAAK,MAAM4C,aAAa,KAAKvB,uBAC3B,IAAIJ,UAAUjB,QAAQ4C,UAAUpC,QAAQkC,iBAAiBlC,OACvD,KAAKgB,aAAaoB,UAAUxC,WAAW,KAAKoB,UAAU;GAI1D,IAAIP,UAAUb,YAAY;IACxB,KAAKiB,sBAAsBsB,KAAK;KAC9BnC,OAAOkC,iBAAiBlC;KACxBJ,YAAYa,UAAUb;IACxB,CAAC;IACD,KAAKiB,sBAAsBU,MAAMC,GAAGC,MAAMD,EAAExB,QAAQyB,EAAEzB,KAAK;GAC7D;GAEA,OAAOL;EACT,UAAU;GACR,MAAM0C,QAAQ,KAAK1B,mBAAmB2B,QAAQJ,gBAAgB;GAC9D,IAAIG,QAAQ,IACV,KAAK1B,mBAAmB4B,OAAOF,OAAO,CAAC;GAGzC,IAAI,KAAK1B,mBAAmBoB,WAAW,GACrC,KAAKlB,sBAAsBkB,SAAS;GAGtC,KAAKZ,aAAa;EACpB;CACF;AACF"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ThreadMessage } from "../../types/message.js";
|
|
2
|
+
import { AttachmentAdapter } from "../../adapters/attachment.js";
|
|
3
|
+
import { ModelContextProvider } from "../../model-context/types.js";
|
|
4
|
+
import { ThreadHistoryAdapter } from "../../adapters/thread-history.js";
|
|
2
5
|
import { AssistantRuntime } from "../../runtime/api/assistant-runtime.js";
|
|
3
6
|
import { AssistantStream } from "assistant-stream";
|
|
4
7
|
//#region src/runtimes/remote-thread-list/types.d.ts
|
|
@@ -25,6 +28,11 @@ type RemoteThreadListResponse = {
|
|
|
25
28
|
type RemoteThreadListPageOptions = {
|
|
26
29
|
after?: string | undefined;
|
|
27
30
|
};
|
|
31
|
+
type RuntimeAdapters = {
|
|
32
|
+
modelContext?: ModelContextProvider | undefined;
|
|
33
|
+
history?: ThreadHistoryAdapter | undefined;
|
|
34
|
+
attachments?: AttachmentAdapter | undefined;
|
|
35
|
+
};
|
|
28
36
|
type RemoteThreadListAdapter = {
|
|
29
37
|
list(params?: RemoteThreadListPageOptions): Promise<RemoteThreadListResponse>;
|
|
30
38
|
rename(remoteId: string, newTitle: string): Promise<void>;
|
|
@@ -40,15 +48,38 @@ type RemoteThreadListAdapter = {
|
|
|
40
48
|
* inject per-thread context such as a history or attachments adapter (see
|
|
41
49
|
* `useCloudThreadListAdapter` for the canonical shape).
|
|
42
50
|
*
|
|
51
|
+
* `useRemoteThreadListRuntime` renders this component when present. If it
|
|
52
|
+
* is omitted, that host synthesizes a `RuntimeAdapterProvider` from
|
|
53
|
+
* `unstable_useAdapters`. The `RemoteThreadList` store entry ignores it;
|
|
54
|
+
* expose `unstable_useAdapters` for that host.
|
|
55
|
+
*
|
|
43
56
|
* The Provider must render `children` on its first commit; deferring them
|
|
44
57
|
* behind a loading state, a Suspense boundary, or a `useEffect`-gated render
|
|
45
58
|
* is unsupported and leaves thread context unavailable to downstream
|
|
46
59
|
* consumers. Load data inside an always-mounted child instead.
|
|
47
60
|
*/
|
|
48
61
|
unstable_Provider?: RemoteThreadListProviderComponent | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Hook the `RemoteThreadList` store entry calls once for the main-thread
|
|
64
|
+
* slot, then provides to the `thread` factory. This is not mounted per
|
|
65
|
+
* listed thread. `useRemoteThreadListRuntime` also calls it when
|
|
66
|
+
* `unstable_Provider` is omitted. Resolve `threadListItem` lazily on each
|
|
67
|
+
* adapter call; do not capture it at hook mount. The hook must keep a
|
|
68
|
+
* stable hook count across adapter swaps; a different count throws.
|
|
69
|
+
* Memoize the returned object.
|
|
70
|
+
*
|
|
71
|
+
* Per-thread history also requires the `thread` factory to be keyed by
|
|
72
|
+
* thread id (`withKey(id, thread(...))`). History loaders such as
|
|
73
|
+
* `useExternalHistory` run once per mount; an unkeyed factory keeps one
|
|
74
|
+
* instance across switches and the next thread's messages never load.
|
|
75
|
+
*/
|
|
76
|
+
unstable_useAdapters?: (() => RuntimeAdapters | null | undefined) | undefined;
|
|
49
77
|
};
|
|
50
78
|
type RemoteThreadListOptions = {
|
|
51
79
|
runtimeHook: () => AssistantRuntime;
|
|
80
|
+
/**
|
|
81
|
+
* The adapter reference should remain stable across renders. Replacing it reloads the list and drops cached threads that are not in the replacement page. In-flight mutations from the previous adapter are cancelled.
|
|
82
|
+
*/
|
|
52
83
|
adapter: RemoteThreadListAdapter;
|
|
53
84
|
/**
|
|
54
85
|
* When provided, the runtime starts on this thread instead of creating a
|
|
@@ -85,5 +116,5 @@ type RemoteThreadListOptions = {
|
|
|
85
116
|
allowNesting?: boolean | undefined;
|
|
86
117
|
};
|
|
87
118
|
//#endregion
|
|
88
|
-
export { RemoteThreadInitializeResponse, RemoteThreadListAdapter, RemoteThreadListOptions, RemoteThreadListPageOptions, RemoteThreadListProviderComponent, RemoteThreadListResponse, RemoteThreadMetadata };
|
|
119
|
+
export { RemoteThreadInitializeResponse, RemoteThreadListAdapter, RemoteThreadListOptions, RemoteThreadListPageOptions, RemoteThreadListProviderComponent, RemoteThreadListResponse, RemoteThreadMetadata, RuntimeAdapters };
|
|
89
120
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/runtimes/remote-thread-list/types.ts"],"mappings":";;;;;;;KAQK;EAAkC;;KAE3B,sCACN,OAAO,+CACH,OAAO;KAGL;EACV;EACA;;KAGU;WACD;WACA;WACA;WACA;WACA,gBAAgB;WAChB,SAAS;;KAGR;EACV,SAAS;EACT;;KAGU;EACV;;KAGU;EACV,eAAe;EACf,UAAU;EACV,cAAc;;KAGJ;EACV,KAAK,SAAS,8BAA8B,QAAQ;EAEpD,OAAO,kBAAkB,mBAAmB;EAC5C,cACE,kBACA,QAAQ,sCACP;EACH,QAAQ,mBAAmB;EAC3B,UAAU,mBAAmB;EAC7B,OAAO,mBAAmB;EAC1B,WAAW,mBAAmB,QAAQ;EACtC,cACE,kBACA,4BAA4B,kBAC3B,QAAQ;EACX,MAAM,mBAAmB,QAAQ;;;;;;;;;;;;;;;;EAiBjC,oBAAoB;;;;;;;;;;;;;;;EAgBpB,8BAA8B;;KAGpB;EACV,mBAAmB;;;;EAKnB,SAAS;;;;;;;;EAST;;;;;;EAOA;;;;;;;;;;;;;EAcA,qBAAqB;;;;;;EAOrB"}
|
|
@@ -49,19 +49,7 @@ declare class ToolInvocationTracker {
|
|
|
49
49
|
private readonly _getTools;
|
|
50
50
|
private readonly _callbacks;
|
|
51
51
|
private readonly _entries;
|
|
52
|
-
/**
|
|
53
|
-
* Tool call ids whose `execute` should be short-circuited in the wrapper.
|
|
54
|
-
* Populated when an entry is created with a result already attached
|
|
55
|
-
* (history reload, mid-run resume, etc.) — `execute` is suppressed so
|
|
56
|
-
* client-side side effects don't double-run. Membership outlives the
|
|
57
|
-
* entry: `reset()` deliberately does *not* clear this so post-abort
|
|
58
|
-
* cancellation `result` chunks for pre-resolved entries can still be
|
|
59
|
-
* recognized and dropped. Growth is bounded by the number of pre-resolved
|
|
60
|
-
* tool calls observed in the session.
|
|
61
|
-
*/
|
|
62
|
-
private readonly _skipExecuteStreamIds;
|
|
63
52
|
private readonly _humanInput;
|
|
64
|
-
/** In-flight `execute` invocations keyed by tool call id. */
|
|
65
53
|
private readonly _executing;
|
|
66
54
|
private readonly _settledResolvers;
|
|
67
55
|
private _statuses;
|
|
@@ -119,6 +107,7 @@ declare class ToolInvocationTracker {
|
|
|
119
107
|
*/
|
|
120
108
|
getStatuses(): ReadonlyMap<string, ToolExecutionStatus>;
|
|
121
109
|
private _getWrappedTools;
|
|
110
|
+
private _captureExecution;
|
|
122
111
|
private _onHumanInput;
|
|
123
112
|
private _onExecutionStart;
|
|
124
113
|
private _onExecutionEnd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolInvocationTracker.d.ts","names":[],"sources":["../../../src/runtimes/tool-invocations/ToolInvocationTracker.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"ToolInvocationTracker.d.ts","names":[],"sources":["../../../src/runtimes/tool-invocations/ToolInvocationTracker.ts"],"mappings":";;;;;;;KAuBY;EACN;;EAEA;EACA;IAAW;IAAe;;;KAGpB;WACD;WACA;WACA;WACA,QAAQ;WACR;WACA,WAAW;WACX,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;cA8EtB;mBACM;mBACA;mBAEA;mBACA;mBAQA;mBACA;UAET;UAEA;UACA;;UAGA;UACA;UAEA;;;;;;;;;UAUA;UACA;EAGN,YAAA,gBAAgB,eAAe,mBAC/B,WAAW,sBAAsB;;;;;;UAa3B;;;;;EAsDD,SAAS,UAAU,sBAAsB;;;;;;EAmEzC;;;;;EAwBA,SAAS;;;;;;;EAkCT,OAAO,oBAAoB;;;;;;;EAoB3B,eAAe,oBAAoB;UAMlC;UA6CA;UAaA;UAmCA;UAYA;UA0BA;UAiCA;UAWA;UAaA;UAOA;UAUA;UAKA;UAgBA;;;;;;;;UA4BA;UAWA;UA0GA;;kBAiFO;OACH,kBAAkB;OAElB;aACD,mBAAmB;;aAEnB;;;;;;aAMA;;OAGC;;;;;IAKV,WAAW,SAAS;;;;;;IAMpB,mBACE,UAAU,oBAAoB"}
|