@assistant-ui/core 0.3.16 → 0.3.18
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.map +1 -1
- package/dist/adapters/attachment.js +5 -4
- package/dist/adapters/attachment.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +4 -2
- package/dist/internal.js +4 -2
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +10 -4
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/frame/provider.d.ts +5 -0
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +101 -28
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/model-context/interactable-composer-metadata.d.ts.map +1 -1
- package/dist/model-context/interactable-composer-metadata.js +16 -9
- package/dist/model-context/interactable-composer-metadata.js.map +1 -1
- package/dist/model-context/registry.d.ts.map +1 -1
- package/dist/model-context/registry.js +3 -5
- package/dist/model-context/registry.js.map +1 -1
- package/dist/model-context/tool-call-text.d.ts +26 -0
- package/dist/model-context/tool-call-text.d.ts.map +1 -0
- package/dist/model-context/tool-call-text.js +18 -0
- package/dist/model-context/tool-call-text.js.map +1 -0
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/model-context/types.js +5 -4
- package/dist/model-context/types.js.map +1 -1
- package/dist/react/RuntimeAdapter.js +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/client/AdaptedRemoteThread.js +1 -1
- package/dist/react/client/InMemoryThreadList.d.ts.map +1 -1
- package/dist/react/client/InMemoryThreadList.js +63 -57
- package/dist/react/client/InMemoryThreadList.js.map +1 -1
- package/dist/react/client/Interactables.d.ts.map +1 -1
- package/dist/react/client/Interactables.js +25 -28
- package/dist/react/client/Interactables.js.map +1 -1
- package/dist/react/client/RemoteThreadList.d.ts +16 -0
- package/dist/react/client/RemoteThreadList.d.ts.map +1 -1
- package/dist/react/client/RemoteThreadList.js +354 -242
- package/dist/react/client/RemoteThreadList.js.map +1 -1
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +24 -18
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/index.d.ts +2 -1
- package/dist/react/index.js +2 -1
- package/dist/react/interactables-legacy/Interactables.js +246 -125
- package/dist/react/interactables-legacy/Interactables.js.map +1 -1
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.d.ts.map +1 -1
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.js +11 -9
- package/dist/react/interactables-shared/useInteractablePersistenceQueue.js.map +1 -1
- package/dist/react/model-context/makeAssistantTool.d.ts +2 -2
- package/dist/react/model-context/makeAssistantTool.js +1 -1
- package/dist/react/model-context/makeAssistantTool.js.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +2 -14
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/model-context/toolbox.js +1 -13
- package/dist/react/model-context/toolbox.js.map +1 -1
- package/dist/react/model-context/useAssistantContext.js +37 -7
- package/dist/react/model-context/useAssistantContext.js.map +1 -1
- package/dist/react/model-context/useAssistantTool.d.ts +2 -2
- package/dist/react/model-context/useAssistantTool.js +1 -1
- package/dist/react/model-context/useAssistantTool.js.map +1 -1
- package/dist/react/model-context/useAuiToolOverrides.js +31 -5
- package/dist/react/model-context/useAuiToolOverrides.js.map +1 -1
- package/dist/react/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/react/model-context/useInlineRender.js +10 -36
- package/dist/react/model-context/useInlineRender.js.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.d.ts.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.js +2 -1
- package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useMessageError.js +2 -8
- package/dist/react/primitive-hooks/useMessageError.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.d.ts.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.js +2 -4
- package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.js +4 -3
- package/dist/react/primitives/composer/ComposerAttachments.js.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.d.ts.map +1 -1
- package/dist/react/primitives/composer/ComposerQueue.js +4 -3
- package/dist/react/primitives/composer/ComposerQueue.js.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/react/primitives/message/MessageAttachments.js +7 -6
- package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageGroupedParts.js +2 -2
- package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +3 -3
- package/dist/react/primitives/message/MessageParts.js.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js +5 -4
- package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +6 -4
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +59 -29
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +11 -6
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +160 -143
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadResource.d.ts +2 -6
- package/dist/react/runtimes/RemoteThreadResource.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadResource.js +15 -13
- package/dist/react/runtimes/RemoteThreadResource.js.map +1 -1
- package/dist/react/runtimes/assistant-transport/useLatestRef.js +2 -2
- package/dist/react/runtimes/assistant-transport/useLatestRef.js.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +4 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +424 -52
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +5 -1
- 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/createCloudThreadListAdapter.d.ts +29 -0
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.js +160 -0
- package/dist/react/runtimes/cloud/createCloudThreadListAdapter.js.map +1 -0
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +1 -9
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +16 -153
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
- package/dist/react/runtimes/external-message-converter.js +1 -1
- package/dist/react/runtimes/external-message-converter.js.map +1 -1
- package/dist/react/runtimes/useExternalStoreRuntime.js +75 -46
- package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/react/runtimes/useRemoteThreadListRuntime.js +77 -29
- package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
- package/dist/react/types/MessagePartComponentTypes.d.ts +7 -3
- package/dist/react/types/MessagePartComponentTypes.d.ts.map +1 -1
- package/dist/react/types/scopes/tools.d.ts +2 -0
- package/dist/react/types/scopes/tools.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.d.ts +2 -2
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.js +1 -1
- package/dist/runtime/api/message-part-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.d.ts +7 -3
- package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.js +2 -2
- package/dist/runtime/api/thread-list-item-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts +12 -1
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js +23 -14
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/api/thread-runtime.d.ts +5 -1
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-runtime.js +1 -1
- 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 +16 -12
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +2 -2
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +8 -7
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/interfaces/composer-runtime-core.d.ts +12 -5
- package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +18 -3
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +15 -1
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.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/auto-status.js +6 -2
- package/dist/runtime/utils/auto-status.js.map +1 -1
- package/dist/runtime/utils/external-message-conversion.d.ts +3 -2
- package/dist/runtime/utils/external-message-conversion.d.ts.map +1 -1
- package/dist/runtime/utils/external-message-conversion.js +5 -4
- package/dist/runtime/utils/external-message-conversion.js.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts +1 -0
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +15 -6
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts +6 -3
- package/dist/runtime/utils/resolveToolApprovalResponse.d.ts.map +1 -1
- package/dist/runtime/utils/resolveToolApprovalResponse.js +12 -3
- package/dist/runtime/utils/resolveToolApprovalResponse.js.map +1 -1
- package/dist/runtime/utils/thread-message-like.d.ts +2 -10
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
- package/dist/runtime/utils/thread-message-like.js +1 -1
- package/dist/runtime/utils/thread-message-like.js.map +1 -1
- package/dist/runtime/utils/tool-call-tree.d.ts +39 -0
- package/dist/runtime/utils/tool-call-tree.d.ts.map +1 -0
- package/dist/runtime/utils/tool-call-tree.js +85 -0
- package/dist/runtime/utils/tool-call-tree.js.map +1 -0
- package/dist/runtimes/external-store/external-store-adapter.d.ts +29 -2
- 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.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +21 -27
- 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 +2 -1
- 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 +34 -28
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/inert/InertThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/internal.d.ts +2 -2
- package/dist/runtimes/internal.js +2 -2
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/local/local-thread-runtime-core.js +3 -1
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +18 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/remote-thread-state.js +148 -43
- package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -1
- package/dist/runtimes/remote-thread-list/title-generation.d.ts +49 -0
- package/dist/runtimes/remote-thread-list/title-generation.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/title-generation.js +197 -0
- package/dist/runtimes/remote-thread-list/title-generation.js.map +1 -0
- package/dist/runtimes/remote-thread-list/title.d.ts +11 -0
- package/dist/runtimes/remote-thread-list/title.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/title.js +14 -0
- package/dist/runtimes/remote-thread-list/title.js.map +1 -0
- package/dist/runtimes/remote-thread-list/types.d.ts +16 -5
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +31 -8
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +97 -60
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
- package/dist/store/clients/external-thread.d.ts +1 -1
- package/dist/store/clients/external-thread.d.ts.map +1 -1
- package/dist/store/clients/external-thread.js +30 -7
- package/dist/store/clients/external-thread.js.map +1 -1
- package/dist/store/clients/model-context-client.d.ts.map +1 -1
- package/dist/store/clients/model-context-client.js +2 -1
- package/dist/store/clients/model-context-client.js.map +1 -1
- package/dist/store/clients/single-thread-list.d.ts.map +1 -1
- package/dist/store/clients/single-thread-list.js +2 -1
- package/dist/store/clients/single-thread-list.js.map +1 -1
- package/dist/store/clients/suggestions.d.ts.map +1 -1
- package/dist/store/clients/suggestions.js +19 -6
- package/dist/store/clients/suggestions.js.map +1 -1
- package/dist/store/clients/thread-message-client.js +1 -1
- package/dist/store/clients/thread-selection-events.js +1 -1
- package/dist/store/index.d.ts +2 -1
- package/dist/store/index.js +2 -1
- package/dist/store/internal.d.ts +2 -2
- package/dist/store/internal.js +2 -2
- package/dist/store/primitive-predicates.d.ts +4 -1
- package/dist/store/primitive-predicates.d.ts.map +1 -1
- package/dist/store/primitive-predicates.js +9 -1
- package/dist/store/primitive-predicates.js.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +1 -0
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/composer-runtime-client.js +98 -62
- package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.d.ts +1 -0
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/message-runtime-client.js +221 -144
- package/dist/store/runtime-clients/message-runtime-client.js.map +1 -1
- 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 +2 -2
- 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 +128 -107
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.js +194 -122
- package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/useSubscribable.d.ts +3 -1
- package/dist/store/runtime-clients/useSubscribable.d.ts.map +1 -1
- package/dist/store/runtime-clients/useSubscribable.js +1 -1
- package/dist/store/runtime-clients/useSubscribable.js.map +1 -1
- package/dist/store/scopes/composer.d.ts +10 -2
- package/dist/store/scopes/composer.d.ts.map +1 -1
- package/dist/store/scopes/message.d.ts +30 -1
- package/dist/store/scopes/message.d.ts.map +1 -1
- package/dist/store/scopes/part.d.ts +6 -3
- package/dist/store/scopes/part.d.ts.map +1 -1
- package/dist/store/scopes/thread-list-item.d.ts +2 -2
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -1
- package/dist/store/scopes/thread.d.ts +8 -0
- package/dist/store/scopes/thread.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 +8 -1
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +24 -16
- package/dist/subscribable/subscribable.js.map +1 -1
- package/dist/types/attachment.d.ts +2 -1
- package/dist/types/attachment.d.ts.map +1 -1
- package/dist/types/attachment.js +2 -1
- package/dist/types/attachment.js.map +1 -1
- package/dist/types/message.d.ts +40 -1
- package/dist/types/message.d.ts.map +1 -1
- package/dist/types/message.js +7 -1
- package/dist/types/message.js.map +1 -1
- package/dist/utils/abortable-iterable.d.ts +19 -0
- package/dist/utils/abortable-iterable.d.ts.map +1 -0
- package/dist/utils/abortable-iterable.js +72 -0
- package/dist/utils/abortable-iterable.js.map +1 -0
- package/dist/utils/composite-context-provider.d.ts.map +1 -1
- package/dist/utils/composite-context-provider.js +20 -2
- package/dist/utils/composite-context-provider.js.map +1 -1
- package/dist/utils/record.d.ts +11 -0
- package/dist/utils/record.d.ts.map +1 -0
- package/dist/utils/record.js +12 -0
- package/dist/utils/record.js.map +1 -0
- package/package.json +12 -17
- package/src/adapters/attachment.test.ts +50 -1
- package/src/adapters/attachment.ts +7 -4
- package/src/index.ts +7 -1
- package/src/internal.ts +12 -0
- package/src/model-context/frame/host.test.ts +24 -0
- package/src/model-context/frame/host.ts +10 -4
- package/src/model-context/frame/provider.test.ts +288 -1
- package/src/model-context/frame/provider.ts +148 -30
- package/src/model-context/interactable-composer-metadata.test.ts +28 -0
- package/src/model-context/interactable-composer-metadata.ts +9 -3
- package/src/model-context/registry.test.ts +12 -0
- package/src/model-context/registry.ts +3 -2
- package/src/model-context/tool-call-text.test.ts +67 -0
- package/src/model-context/tool-call-text.ts +67 -0
- package/src/model-context/types.test.ts +25 -0
- package/src/model-context/types.ts +9 -4
- package/src/react/AssistantRuntimeProvider.test.tsx +66 -2
- package/src/react/RuntimeAdapter.test.ts +34 -0
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +1 -3
- package/src/react/client/InMemoryThreadList.ts +1 -0
- package/src/react/client/Interactables.test.ts +28 -0
- package/src/react/client/Interactables.ts +15 -13
- package/src/react/client/RemoteThreadList.background.test.ts +526 -0
- package/src/react/client/RemoteThreadList.concurrent.test.tsx +315 -0
- package/src/react/client/RemoteThreadList.test.ts +617 -3
- package/src/react/client/RemoteThreadList.ts +433 -167
- package/src/react/client/Tools.ts +29 -12
- package/src/react/index.ts +4 -0
- package/src/react/interactables-legacy/Interactables.ts +16 -16
- package/src/react/interactables-shared/useInteractablePersistenceQueue.ts +9 -10
- package/src/react/model-context/makeAssistantTool.ts +2 -2
- package/src/react/model-context/modelContextHooks.test.tsx +131 -0
- package/src/react/model-context/toolbox.test.ts +9 -9
- package/src/react/model-context/toolbox.ts +9 -36
- package/src/react/model-context/useAssistantContext.ts +4 -2
- package/src/react/model-context/useAssistantTool.ts +2 -2
- package/src/react/model-context/useAuiToolOverrides.ts +4 -2
- package/src/react/model-context/useInlineRender.test.tsx +48 -0
- package/src/react/model-context/useInlineRender.ts +14 -10
- package/src/react/model-context/useToolArgsStatus.test.tsx +30 -0
- package/src/react/model-context/useToolArgsStatus.ts +2 -1
- package/src/react/primitive-hooks/useMessageError.ts +2 -19
- package/src/react/primitive-hooks/useThreadListLoadMore.ts +2 -3
- package/src/react/primitives/composer/ComposerAttachments.test.tsx +76 -0
- package/src/react/primitives/composer/ComposerAttachments.tsx +9 -4
- package/src/react/primitives/composer/ComposerQueue.test.tsx +72 -0
- package/src/react/primitives/composer/ComposerQueue.tsx +7 -4
- package/src/react/primitives/message/MessageAttachments.test.tsx +107 -37
- package/src/react/primitives/message/MessageAttachments.tsx +10 -7
- package/src/react/primitives/message/MessageGroupedParts.tsx +2 -2
- package/src/react/primitives/message/MessageParts.tsx +3 -3
- package/src/react/primitives/threadList/ThreadListItems.test.tsx +99 -0
- package/src/react/primitives/threadList/ThreadListItems.tsx +8 -5
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.destroy.test.tsx +172 -0
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.running.test.tsx +127 -1
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.test.tsx +7 -1
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +99 -35
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.load-error.test.ts +132 -0
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.switch-delete.test.ts +274 -0
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +223 -152
- package/src/react/runtimes/RemoteThreadResource.test.ts +9 -0
- package/src/react/runtimes/RemoteThreadResource.ts +20 -16
- package/src/react/runtimes/assistant-transport/transport-scheduling.test.ts +51 -2
- package/src/react/runtimes/assistant-transport/useLatestRef.ts +2 -2
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +45 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +546 -5
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +546 -103
- package/src/react/runtimes/cloud/auiV0.ts +5 -0
- package/src/react/runtimes/cloud/createCloudThreadListAdapter.test.ts +103 -0
- package/src/react/runtimes/cloud/createCloudThreadListAdapter.ts +237 -0
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.test.tsx +90 -1
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +33 -238
- package/src/react/runtimes/external-message-converter.ts +1 -0
- package/src/react/runtimes/useExternalStoreRuntime.lifecycle.test.tsx +41 -0
- package/src/react/runtimes/useExternalStoreRuntime.ts +10 -4
- package/src/react/runtimes/useLocalRuntime.test.tsx +20 -0
- package/src/react/runtimes/useRemoteThreadListRuntime.concurrent.test.tsx +216 -0
- package/src/react/runtimes/useRemoteThreadListRuntime.load-error.test.tsx +108 -0
- package/src/react/runtimes/useRemoteThreadListRuntime.ts +57 -6
- package/src/react/types/MessagePartComponentTypes.ts +7 -3
- package/src/react/types/scopes/tools.ts +2 -0
- package/src/runtime/api/message-part-runtime.ts +3 -3
- package/src/runtime/api/message-runtime.test.ts +75 -0
- package/src/runtime/api/thread-list-item-runtime.ts +10 -3
- package/src/runtime/api/thread-list-runtime.ts +46 -12
- package/src/runtime/api/thread-runtime.test.ts +78 -0
- package/src/runtime/api/thread-runtime.ts +8 -1
- package/src/runtime/base/base-composer-runtime-core.ts +36 -8
- package/src/runtime/base/base-thread-runtime-core.test.ts +149 -4
- package/src/runtime/base/base-thread-runtime-core.ts +16 -8
- package/src/runtime/interfaces/composer-runtime-core.ts +10 -5
- package/src/runtime/interfaces/thread-list-runtime-core.ts +25 -2
- package/src/runtime/interfaces/thread-runtime-core.ts +17 -1
- package/src/runtime/utils/auto-status.test.ts +57 -0
- package/src/runtime/utils/auto-status.ts +13 -1
- package/src/runtime/utils/external-message-conversion.test.ts +165 -0
- package/src/runtime/utils/external-message-conversion.ts +18 -2
- package/src/runtime/utils/message-repository.ts +29 -17
- package/src/runtime/utils/resolveToolApprovalResponse.test.ts +73 -0
- package/src/runtime/utils/resolveToolApprovalResponse.ts +27 -6
- package/src/runtime/utils/thread-message-like.ts +3 -11
- package/src/runtime/utils/tool-call-tree.test.ts +191 -0
- package/src/runtime/utils/tool-call-tree.ts +97 -0
- package/src/runtimes/external-store/external-store-adapter.ts +38 -2
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +18 -13
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +56 -33
- package/src/runtimes/inert/InertThreadRuntimeCore.ts +1 -1
- package/src/runtimes/internal.ts +1 -0
- package/src/runtimes/local/local-thread-runtime-core.test.ts +29 -3
- package/src/runtimes/local/local-thread-runtime-core.ts +5 -1
- package/src/runtimes/remote-thread-list/remote-thread-state.test.ts +238 -0
- package/src/runtimes/remote-thread-list/remote-thread-state.ts +223 -44
- package/src/runtimes/remote-thread-list/title-generation.test.ts +602 -0
- package/src/runtimes/remote-thread-list/title-generation.ts +329 -0
- package/src/runtimes/remote-thread-list/title.test.ts +62 -0
- package/src/runtimes/remote-thread-list/title.ts +16 -0
- package/src/runtimes/remote-thread-list/types.ts +16 -5
- package/src/runtimes/tool-invocations/EDGE_CASES.md +110 -5
- package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +750 -136
- package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +144 -91
- package/src/store/clients/external-thread.ts +62 -11
- package/src/store/clients/model-context-client.ts +5 -1
- package/src/store/clients/single-thread-list.ts +1 -0
- package/src/store/clients/suggestions.test.ts +195 -1
- package/src/store/clients/suggestions.ts +45 -34
- package/src/store/index.ts +4 -0
- package/src/store/internal.ts +2 -0
- package/src/store/primitive-predicates.ts +35 -0
- package/src/store/runtime-clients/composer-runtime-client.ts +42 -9
- package/src/store/runtime-clients/message-runtime-client.ts +54 -6
- package/src/store/runtime-clients/thread-list-item-runtime-client.ts +4 -2
- package/src/store/runtime-clients/thread-list-runtime-client.ts +17 -2
- package/src/store/runtime-clients/thread-runtime-client.ts +58 -10
- package/src/store/runtime-clients/useSubscribable.ts +8 -2
- package/src/store/scopes/composer.ts +16 -4
- package/src/store/scopes/message.ts +14 -0
- package/src/store/scopes/part.ts +6 -3
- package/src/store/scopes/thread-list-item.ts +5 -2
- package/src/store/scopes/thread.ts +4 -0
- package/src/store/scopes/threads.ts +1 -0
- package/src/subscribable/subscribable.test.ts +50 -0
- package/src/subscribable/subscribable.ts +33 -21
- package/src/tests/MessageRepository.test.ts +116 -0
- package/src/tests/OptimisticState-list-race.test.ts +1 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-initialize-adapter-change.test.ts +38 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-load-race.test.ts +158 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-loadMore.test.ts +78 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-reload.test.ts +52 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-title-race.test.ts +89 -0
- package/src/tests/attachment-adapters.test.ts +14 -0
- package/src/tests/base-composer-runtime-core.test.ts +39 -0
- package/src/tests/external-store-optimistic-id.test.ts +79 -0
- package/src/tests/external-store-repository-instance.test.ts +166 -0
- package/src/tests/external-store-thread-list-runtime-core.test.ts +83 -0
- package/src/tests/external-store-thread-runtime-core-adapter.test.ts +49 -34
- package/src/tests/external-thread-attachments.test.tsx +224 -1
- package/src/tests/external-thread-parity.test.tsx +23 -0
- package/src/tests/remote-thread-list-adapter-switch.test.ts +66 -1
- package/src/tests/remote-thread-list-isLoading.test.ts +1 -0
- package/src/tests/thread-list-runtime-getLoadThreadsPromise.test.ts +1 -0
- package/src/tests/thread-switch-events.test.tsx +475 -2
- package/src/tests/tools-scope-migration.test.tsx +28 -0
- package/src/types/attachment.ts +4 -0
- package/src/types/message.ts +50 -2
- package/src/utils/abortable-iterable.test.ts +213 -0
- package/src/utils/abortable-iterable.ts +93 -0
- package/src/utils/composite-context-provider.test.ts +25 -0
- package/src/utils/composite-context-provider.ts +23 -2
- package/src/utils/record.test.ts +48 -0
- package/src/utils/record.ts +11 -0
|
@@ -3,14 +3,14 @@ import { ComposerClient } from "./composer-runtime-client.js";
|
|
|
3
3
|
import { liveRef } from "./liveRef.js";
|
|
4
4
|
import { MessageClient } from "./message-runtime-client.js";
|
|
5
5
|
import { ThreadSuggestions } from "../clients/suggestions.js";
|
|
6
|
+
import { useAssistantEmit, useClientLookup, useClientResource } from "@assistant-ui/store/client";
|
|
6
7
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
7
8
|
import { useEffect } from "@assistant-ui/tap/react-shim";
|
|
8
9
|
import { resource, useResource, withKey } from "@assistant-ui/tap";
|
|
9
|
-
import { useAssistantEmit, useClientLookup, useClientResource } from "@assistant-ui/store/client";
|
|
10
10
|
//#region src/store/runtime-clients/thread-runtime-client.ts
|
|
11
11
|
const useMessageClientById = (t0) => {
|
|
12
|
-
const $ = c(
|
|
13
|
-
const { runtime, id, threadIdRef } = t0;
|
|
12
|
+
const $ = c(7);
|
|
13
|
+
const { runtime, id, threadIdRef, threadId } = t0;
|
|
14
14
|
let t1;
|
|
15
15
|
if ($[0] !== id || $[1] !== runtime) {
|
|
16
16
|
t1 = runtime.getMessageById(id);
|
|
@@ -20,20 +20,22 @@ const useMessageClientById = (t0) => {
|
|
|
20
20
|
} else t1 = $[2];
|
|
21
21
|
const messageRuntime = t1;
|
|
22
22
|
let t2;
|
|
23
|
-
if ($[3] !== messageRuntime || $[4] !== threadIdRef) {
|
|
23
|
+
if ($[3] !== messageRuntime || $[4] !== threadId || $[5] !== threadIdRef) {
|
|
24
24
|
t2 = MessageClient({
|
|
25
25
|
runtime: messageRuntime,
|
|
26
|
-
threadIdRef
|
|
26
|
+
threadIdRef,
|
|
27
|
+
threadId
|
|
27
28
|
});
|
|
28
29
|
$[3] = messageRuntime;
|
|
29
|
-
$[4] =
|
|
30
|
-
$[5] =
|
|
31
|
-
|
|
30
|
+
$[4] = threadId;
|
|
31
|
+
$[5] = threadIdRef;
|
|
32
|
+
$[6] = t2;
|
|
33
|
+
} else t2 = $[6];
|
|
32
34
|
return useResource(t2);
|
|
33
35
|
};
|
|
34
36
|
const MessageClientById = resource(useMessageClientById);
|
|
35
37
|
const useThreadClient = (t0) => {
|
|
36
|
-
const $ = c(
|
|
38
|
+
const $ = c(83);
|
|
37
39
|
const { runtime } = t0;
|
|
38
40
|
const runtimeState = useSubscribable(runtime);
|
|
39
41
|
const emit = useAssistantEmit();
|
|
@@ -76,52 +78,75 @@ const useThreadClient = (t0) => {
|
|
|
76
78
|
} else t3 = $[5];
|
|
77
79
|
const threadIdRef = t3;
|
|
78
80
|
let t4;
|
|
79
|
-
if ($[6] !==
|
|
80
|
-
t4 =
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
$[
|
|
85
|
-
$[7] = threadIdRef;
|
|
81
|
+
if ($[6] !== emit || $[7] !== runtime) {
|
|
82
|
+
t4 = (event_0) => {
|
|
83
|
+
emit(event_0, { threadId: runtime.getState().threadId });
|
|
84
|
+
};
|
|
85
|
+
$[6] = emit;
|
|
86
|
+
$[7] = runtime;
|
|
86
87
|
$[8] = t4;
|
|
87
88
|
} else t4 = $[8];
|
|
88
|
-
const
|
|
89
|
+
const emitThreadEvent = t4;
|
|
89
90
|
let t5;
|
|
90
|
-
if ($[9] !==
|
|
91
|
-
t5 =
|
|
92
|
-
$[9] =
|
|
91
|
+
if ($[9] !== runtime) {
|
|
92
|
+
t5 = (text) => runtime.getState().suggestions.some((suggestion) => suggestion.prompt === text);
|
|
93
|
+
$[9] = runtime;
|
|
93
94
|
$[10] = t5;
|
|
94
95
|
} else t5 = $[10];
|
|
95
|
-
const
|
|
96
|
+
const isSuggestion = t5;
|
|
96
97
|
let t6;
|
|
97
|
-
if ($[11] !==
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
if ($[11] !== isSuggestion || $[12] !== runtime.composer || $[13] !== threadIdRef) {
|
|
99
|
+
t6 = ComposerClient({
|
|
100
|
+
runtime: runtime.composer,
|
|
101
|
+
threadIdRef,
|
|
102
|
+
isSuggestion
|
|
103
|
+
});
|
|
104
|
+
$[11] = isSuggestion;
|
|
105
|
+
$[12] = runtime.composer;
|
|
106
|
+
$[13] = threadIdRef;
|
|
107
|
+
$[14] = t6;
|
|
108
|
+
} else t6 = $[14];
|
|
109
|
+
const composer = useClientResource(t6);
|
|
110
|
+
let t7;
|
|
111
|
+
if ($[15] !== runtimeState.suggestions) {
|
|
112
|
+
t7 = ThreadSuggestions(runtimeState.suggestions);
|
|
113
|
+
$[15] = runtimeState.suggestions;
|
|
114
|
+
$[16] = t7;
|
|
115
|
+
} else t7 = $[16];
|
|
116
|
+
const suggestions = useClientResource(t7);
|
|
117
|
+
let t8;
|
|
118
|
+
if ($[17] !== runtime || $[18] !== runtimeState.messages || $[19] !== runtimeState.threadId || $[20] !== threadIdRef) {
|
|
119
|
+
let t9;
|
|
120
|
+
if ($[22] !== runtime || $[23] !== runtimeState.threadId || $[24] !== threadIdRef) {
|
|
121
|
+
t9 = (m) => withKey(m.id, MessageClientById({
|
|
101
122
|
runtime,
|
|
102
123
|
id: m.id,
|
|
103
|
-
threadIdRef
|
|
124
|
+
threadIdRef,
|
|
125
|
+
threadId: runtimeState.threadId
|
|
104
126
|
}), [
|
|
105
127
|
runtime,
|
|
106
128
|
m.id,
|
|
107
|
-
threadIdRef
|
|
129
|
+
threadIdRef,
|
|
130
|
+
runtimeState.threadId
|
|
108
131
|
]);
|
|
109
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
$[
|
|
116
|
-
$[
|
|
117
|
-
$[
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
132
|
+
$[22] = runtime;
|
|
133
|
+
$[23] = runtimeState.threadId;
|
|
134
|
+
$[24] = threadIdRef;
|
|
135
|
+
$[25] = t9;
|
|
136
|
+
} else t9 = $[25];
|
|
137
|
+
t8 = runtimeState.messages.map(t9);
|
|
138
|
+
$[17] = runtime;
|
|
139
|
+
$[18] = runtimeState.messages;
|
|
140
|
+
$[19] = runtimeState.threadId;
|
|
141
|
+
$[20] = threadIdRef;
|
|
142
|
+
$[21] = t8;
|
|
143
|
+
} else t8 = $[21];
|
|
144
|
+
const messages = useClientLookup(t8);
|
|
145
|
+
const t9 = messages.state.length === 0 && !runtimeState.isLoading;
|
|
146
|
+
let t10;
|
|
147
|
+
if ($[26] !== composer.state || $[27] !== messages.state || $[28] !== runtimeState.capabilities || $[29] !== runtimeState.extras || $[30] !== runtimeState.isDisabled || $[31] !== runtimeState.isLoading || $[32] !== runtimeState.isRunning || $[33] !== runtimeState.speech || $[34] !== runtimeState.state || $[35] !== runtimeState.suggestions || $[36] !== runtimeState.voice || $[37] !== t9) {
|
|
148
|
+
t10 = {
|
|
149
|
+
isEmpty: t9,
|
|
125
150
|
isDisabled: runtimeState.isDisabled,
|
|
126
151
|
isLoading: runtimeState.isLoading,
|
|
127
152
|
isRunning: runtimeState.isRunning,
|
|
@@ -134,107 +159,154 @@ const useThreadClient = (t0) => {
|
|
|
134
159
|
composer: composer.state,
|
|
135
160
|
messages: messages.state
|
|
136
161
|
};
|
|
137
|
-
$[
|
|
138
|
-
$[
|
|
139
|
-
$[
|
|
140
|
-
$[
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
143
|
-
$[
|
|
144
|
-
$[
|
|
145
|
-
$[
|
|
146
|
-
$[
|
|
147
|
-
$[
|
|
148
|
-
$[
|
|
149
|
-
$[
|
|
150
|
-
} else
|
|
151
|
-
const state =
|
|
152
|
-
let t9;
|
|
153
|
-
if ($[31] !== state) {
|
|
154
|
-
t9 = () => state;
|
|
155
|
-
$[31] = state;
|
|
156
|
-
$[32] = t9;
|
|
157
|
-
} else t9 = $[32];
|
|
158
|
-
let t10;
|
|
159
|
-
if ($[33] !== composer.methods) {
|
|
160
|
-
t10 = () => composer.methods;
|
|
161
|
-
$[33] = composer.methods;
|
|
162
|
-
$[34] = t10;
|
|
163
|
-
} else t10 = $[34];
|
|
162
|
+
$[26] = composer.state;
|
|
163
|
+
$[27] = messages.state;
|
|
164
|
+
$[28] = runtimeState.capabilities;
|
|
165
|
+
$[29] = runtimeState.extras;
|
|
166
|
+
$[30] = runtimeState.isDisabled;
|
|
167
|
+
$[31] = runtimeState.isLoading;
|
|
168
|
+
$[32] = runtimeState.isRunning;
|
|
169
|
+
$[33] = runtimeState.speech;
|
|
170
|
+
$[34] = runtimeState.state;
|
|
171
|
+
$[35] = runtimeState.suggestions;
|
|
172
|
+
$[36] = runtimeState.voice;
|
|
173
|
+
$[37] = t9;
|
|
174
|
+
$[38] = t10;
|
|
175
|
+
} else t10 = $[38];
|
|
176
|
+
const state = t10;
|
|
164
177
|
let t11;
|
|
165
|
-
if ($[
|
|
166
|
-
t11 = () =>
|
|
167
|
-
$[
|
|
168
|
-
$[
|
|
169
|
-
} else t11 = $[
|
|
178
|
+
if ($[39] !== state) {
|
|
179
|
+
t11 = () => state;
|
|
180
|
+
$[39] = state;
|
|
181
|
+
$[40] = t11;
|
|
182
|
+
} else t11 = $[40];
|
|
170
183
|
let t12;
|
|
171
|
-
if ($[
|
|
172
|
-
t12 = (
|
|
184
|
+
if ($[41] !== composer.methods) {
|
|
185
|
+
t12 = () => composer.methods;
|
|
186
|
+
$[41] = composer.methods;
|
|
187
|
+
$[42] = t12;
|
|
188
|
+
} else t12 = $[42];
|
|
189
|
+
let t13;
|
|
190
|
+
if ($[43] !== suggestions) {
|
|
191
|
+
t13 = () => suggestions.methods;
|
|
192
|
+
$[43] = suggestions;
|
|
193
|
+
$[44] = t13;
|
|
194
|
+
} else t13 = $[44];
|
|
195
|
+
let t14;
|
|
196
|
+
if ($[45] !== emit || $[46] !== isSuggestion || $[47] !== runtime) {
|
|
197
|
+
t14 = (message) => {
|
|
198
|
+
const appended = typeof message === "string" ? { content: [{
|
|
199
|
+
type: "text",
|
|
200
|
+
text: message
|
|
201
|
+
}] } : message;
|
|
202
|
+
if ((appended.role ?? "user") === "user") {
|
|
203
|
+
const text_0 = appended.content.map(_temp).join("");
|
|
204
|
+
emit("composer.send", {
|
|
205
|
+
threadId: runtime.getState().threadId,
|
|
206
|
+
chars: text_0.length,
|
|
207
|
+
attachments: appended.attachments?.length ?? 0,
|
|
208
|
+
...isSuggestion(text_0) ? { suggestion: true } : void 0
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
runtime.append(message);
|
|
212
|
+
};
|
|
213
|
+
$[45] = emit;
|
|
214
|
+
$[46] = isSuggestion;
|
|
215
|
+
$[47] = runtime;
|
|
216
|
+
$[48] = t14;
|
|
217
|
+
} else t14 = $[48];
|
|
218
|
+
let t15;
|
|
219
|
+
if ($[49] !== emitThreadEvent || $[50] !== runtime || $[51] !== runtimeState.isRunning) {
|
|
220
|
+
t15 = () => {
|
|
221
|
+
if (runtimeState.isRunning) emitThreadEvent("thread.cancelRun");
|
|
222
|
+
runtime.cancelRun();
|
|
223
|
+
};
|
|
224
|
+
$[49] = emitThreadEvent;
|
|
225
|
+
$[50] = runtime;
|
|
226
|
+
$[51] = runtimeState.isRunning;
|
|
227
|
+
$[52] = t15;
|
|
228
|
+
} else t15 = $[52];
|
|
229
|
+
let t16;
|
|
230
|
+
if ($[53] !== emitThreadEvent || $[54] !== runtime) {
|
|
231
|
+
t16 = () => {
|
|
232
|
+
runtime.connectVoice();
|
|
233
|
+
emitThreadEvent("thread.voiceStarted");
|
|
234
|
+
};
|
|
235
|
+
$[53] = emitThreadEvent;
|
|
236
|
+
$[54] = runtime;
|
|
237
|
+
$[55] = t16;
|
|
238
|
+
} else t16 = $[55];
|
|
239
|
+
let t17;
|
|
240
|
+
if ($[56] !== messages) {
|
|
241
|
+
t17 = (selector) => {
|
|
173
242
|
if ("id" in selector) return messages.get({ key: selector.id });
|
|
174
243
|
else return messages.get(selector);
|
|
175
244
|
};
|
|
176
|
-
$[
|
|
177
|
-
$[
|
|
178
|
-
} else
|
|
179
|
-
let
|
|
180
|
-
if ($[
|
|
181
|
-
|
|
182
|
-
$[
|
|
183
|
-
$[
|
|
184
|
-
} else
|
|
185
|
-
let
|
|
186
|
-
if ($[
|
|
187
|
-
|
|
188
|
-
getState:
|
|
189
|
-
composer:
|
|
190
|
-
suggestions:
|
|
191
|
-
append:
|
|
245
|
+
$[56] = messages;
|
|
246
|
+
$[57] = t17;
|
|
247
|
+
} else t17 = $[57];
|
|
248
|
+
let t18;
|
|
249
|
+
if ($[58] !== runtime) {
|
|
250
|
+
t18 = () => runtime;
|
|
251
|
+
$[58] = runtime;
|
|
252
|
+
$[59] = t18;
|
|
253
|
+
} else t18 = $[59];
|
|
254
|
+
let t19;
|
|
255
|
+
if ($[60] !== runtime.deleteMessage || $[61] !== runtime.disconnectVoice || $[62] !== runtime.export || $[63] !== runtime.getModelContext || $[64] !== runtime.getVoiceVolume || $[65] !== runtime.import || $[66] !== runtime.importExternalState || $[67] !== runtime.muteVoice || $[68] !== runtime.reset || $[69] !== runtime.resumeRun || $[70] !== runtime.startRun || $[71] !== runtime.stopSpeaking || $[72] !== runtime.subscribeVoiceVolume || $[73] !== runtime.unmuteVoice || $[74] !== t11 || $[75] !== t12 || $[76] !== t13 || $[77] !== t14 || $[78] !== t15 || $[79] !== t16 || $[80] !== t17 || $[81] !== t18) {
|
|
256
|
+
t19 = {
|
|
257
|
+
getState: t11,
|
|
258
|
+
composer: t12,
|
|
259
|
+
suggestions: t13,
|
|
260
|
+
append: t14,
|
|
192
261
|
deleteMessage: runtime.deleteMessage,
|
|
193
262
|
startRun: runtime.startRun,
|
|
194
263
|
resumeRun: runtime.resumeRun,
|
|
195
264
|
importExternalState: runtime.importExternalState,
|
|
196
|
-
cancelRun:
|
|
265
|
+
cancelRun: t15,
|
|
197
266
|
getModelContext: runtime.getModelContext,
|
|
198
267
|
export: runtime.export,
|
|
199
268
|
import: runtime.import,
|
|
200
269
|
reset: runtime.reset,
|
|
201
270
|
stopSpeaking: runtime.stopSpeaking,
|
|
202
|
-
connectVoice:
|
|
271
|
+
connectVoice: t16,
|
|
203
272
|
disconnectVoice: runtime.disconnectVoice,
|
|
204
273
|
getVoiceVolume: runtime.getVoiceVolume,
|
|
205
274
|
subscribeVoiceVolume: runtime.subscribeVoiceVolume,
|
|
206
275
|
muteVoice: runtime.muteVoice,
|
|
207
276
|
unmuteVoice: runtime.unmuteVoice,
|
|
208
|
-
message:
|
|
209
|
-
__internal_getRuntime:
|
|
277
|
+
message: t17,
|
|
278
|
+
__internal_getRuntime: t18
|
|
210
279
|
};
|
|
211
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
$[
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
216
|
-
$[
|
|
217
|
-
$[
|
|
218
|
-
$[
|
|
219
|
-
$[
|
|
220
|
-
$[
|
|
221
|
-
$[
|
|
222
|
-
$[
|
|
223
|
-
$[
|
|
224
|
-
$[
|
|
225
|
-
$[
|
|
226
|
-
$[
|
|
227
|
-
$[
|
|
228
|
-
$[
|
|
229
|
-
$[
|
|
230
|
-
$[
|
|
231
|
-
$[
|
|
232
|
-
$[
|
|
233
|
-
$[
|
|
234
|
-
} else
|
|
235
|
-
return
|
|
280
|
+
$[60] = runtime.deleteMessage;
|
|
281
|
+
$[61] = runtime.disconnectVoice;
|
|
282
|
+
$[62] = runtime.export;
|
|
283
|
+
$[63] = runtime.getModelContext;
|
|
284
|
+
$[64] = runtime.getVoiceVolume;
|
|
285
|
+
$[65] = runtime.import;
|
|
286
|
+
$[66] = runtime.importExternalState;
|
|
287
|
+
$[67] = runtime.muteVoice;
|
|
288
|
+
$[68] = runtime.reset;
|
|
289
|
+
$[69] = runtime.resumeRun;
|
|
290
|
+
$[70] = runtime.startRun;
|
|
291
|
+
$[71] = runtime.stopSpeaking;
|
|
292
|
+
$[72] = runtime.subscribeVoiceVolume;
|
|
293
|
+
$[73] = runtime.unmuteVoice;
|
|
294
|
+
$[74] = t11;
|
|
295
|
+
$[75] = t12;
|
|
296
|
+
$[76] = t13;
|
|
297
|
+
$[77] = t14;
|
|
298
|
+
$[78] = t15;
|
|
299
|
+
$[79] = t16;
|
|
300
|
+
$[80] = t17;
|
|
301
|
+
$[81] = t18;
|
|
302
|
+
$[82] = t19;
|
|
303
|
+
} else t19 = $[82];
|
|
304
|
+
return t19;
|
|
236
305
|
};
|
|
237
306
|
const ThreadClient = resource(useThreadClient);
|
|
307
|
+
function _temp(part) {
|
|
308
|
+
return part.type === "text" ? part.text : "";
|
|
309
|
+
}
|
|
238
310
|
//#endregion
|
|
239
311
|
export { ThreadClient };
|
|
240
312
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-runtime-client.js","names":["Unsubscribe","ThreadRuntimeEventType","ThreadRuntime","useMemo","useEffect","RefObject","useResource","resource","withKey","liveRef","ClientOutput","useAssistantEmit","useClientLookup","useClientResource","ComposerClient","MessageClient","ThreadSuggestions","useSubscribable","ThreadState","useMessageClientById","t0","$","_c","runtime","id","threadIdRef","t1","getMessageById","messageRuntime","t2","MessageClientById","useThreadClient","runtimeState","emit","unsubscribers","threadEvents","event","unsubscribe","unstable_on","threadId","getState","push","unsub","t3","t4","composer","t5","suggestions","t6","messages","t7","m","map","state","length","isLoading","t8","capabilities","extras","isDisabled","isRunning","speech","voice","isEmpty","t9","t10","methods","t11","t12","selector","get","key","t13","t14","append","cancelRun","connectVoice","deleteMessage","disconnectVoice","export","getModelContext","getVoiceVolume","import","importExternalState","muteVoice","reset","resumeRun","startRun","stopSpeaking","subscribeVoiceVolume","unmuteVoice","message","__internal_getRuntime","ThreadClient"],"sources":["../../../src/store/runtime-clients/thread-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ThreadRuntimeEventType } from \"../../runtime/interfaces/thread-runtime-core\";\nimport type { ThreadRuntime } from \"../../runtime/api/thread-runtime\";\nimport { useMemo, useEffect, type RefObject } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport { liveRef } from \"./liveRef\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport {\n useAssistantEmit,\n useClientLookup,\n useClientResource,\n} from \"@assistant-ui/store/client\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessageClient } from \"./message-runtime-client\";\nimport { ThreadSuggestions } from \"../clients/suggestions\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport type { ThreadState } from \"../scopes/thread\";\n\nconst useMessageClientById = ({\n runtime,\n id,\n threadIdRef,\n}: {\n runtime: ThreadRuntime;\n id: string;\n threadIdRef: RefObject<string>;\n}) => {\n const messageRuntime = useMemo(\n () => runtime.getMessageById(id),\n [runtime, id],\n );\n\n return useResource(MessageClient({ runtime: messageRuntime, threadIdRef }));\n};\n\nconst MessageClientById = resource(useMessageClientById);\n\nconst useThreadClient = ({\n runtime,\n}: {\n runtime: ThreadRuntime;\n}): ClientOutput<\"thread\"> => {\n const runtimeState = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n const threadEvents: ThreadRuntimeEventType[] = [\n \"runStart\",\n \"runEnd\",\n \"initialize\",\n \"modelContextUpdate\",\n ];\n\n for (const event of threadEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n const threadId = runtime.getState()?.threadId || \"unknown\";\n emit(`thread.${event}`, {\n threadId,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n const threadIdRef = useMemo(\n () => liveRef(() => runtime.getState()!.threadId),\n [runtime],\n );\n\n const composer = useClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n }),\n );\n const suggestions = useClientResource(\n ThreadSuggestions(runtimeState.suggestions),\n );\n const messages = useClientLookup(\n runtimeState.messages.map((m) =>\n withKey(m.id, MessageClientById({ runtime, id: m.id, threadIdRef }), [\n runtime,\n m.id,\n threadIdRef,\n ]),\n ),\n );\n\n const state = useMemo<ThreadState>(() => {\n return {\n isEmpty: messages.state.length === 0 && !runtimeState.isLoading,\n isDisabled: runtimeState.isDisabled,\n isLoading: runtimeState.isLoading,\n isRunning: runtimeState.isRunning,\n capabilities: runtimeState.capabilities,\n state: runtimeState.state,\n suggestions: runtimeState.suggestions,\n extras: runtimeState.extras,\n speech: runtimeState.speech,\n voice: runtimeState.voice,\n\n composer: composer.state,\n messages: messages.state,\n };\n }, [runtimeState, messages, composer.state]);\n\n return {\n getState: () => state,\n composer: () => composer.methods,\n suggestions: () => suggestions.methods,\n append: runtime.append,\n deleteMessage: runtime.deleteMessage,\n startRun: runtime.startRun,\n resumeRun: runtime.resumeRun,\n importExternalState: runtime.importExternalState,\n cancelRun: runtime.cancelRun,\n getModelContext: runtime.getModelContext,\n export: runtime.export,\n import: runtime.import,\n reset: runtime.reset,\n stopSpeaking: runtime.stopSpeaking,\n connectVoice: runtime.connectVoice,\n disconnectVoice: runtime.disconnectVoice,\n getVoiceVolume: runtime.getVoiceVolume,\n subscribeVoiceVolume: runtime.subscribeVoiceVolume,\n muteVoice: runtime.muteVoice,\n unmuteVoice: runtime.unmuteVoice,\n message: (selector) => {\n if (\"id\" in selector) {\n return messages.get({ key: selector.id });\n } else {\n return messages.get(selector);\n }\n },\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ThreadClient = resource(useThreadClient);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-runtime-client.js","names":["Unsubscribe","ThreadRuntimeEventType","CreateAppendMessage","ThreadRuntime","useMemo","useEffect","useCallback","RefObject","useResource","resource","withKey","liveRef","ClientOutput","useAssistantEmit","useClientLookup","useClientResource","ComposerClient","MessageClient","ThreadSuggestions","useSubscribable","ThreadState","useMessageClientById","t0","$","_c","runtime","id","threadIdRef","threadId","t1","getMessageById","messageRuntime","t2","MessageClientById","useThreadClient","runtimeState","emit","unsubscribers","threadEvents","event","unsubscribe","unstable_on","getState","push","unsub","t3","t4","event_0","emitThreadEvent","t5","text","suggestions","some","suggestion","prompt","isSuggestion","t6","composer","t7","t8","messages","t9","m","map","state","length","isLoading","t10","capabilities","extras","isDisabled","isRunning","speech","voice","isEmpty","t11","t12","methods","t13","t14","message","appended","content","type","role","text_0","_temp","join","chars","attachments","undefined","append","t15","cancelRun","t16","connectVoice","t17","selector","get","key","t18","t19","deleteMessage","disconnectVoice","export","getModelContext","getVoiceVolume","import","importExternalState","muteVoice","reset","resumeRun","startRun","stopSpeaking","subscribeVoiceVolume","unmuteVoice","__internal_getRuntime","ThreadClient","part"],"sources":["../../../src/store/runtime-clients/thread-runtime-client.ts"],"sourcesContent":["import type { Unsubscribe } from \"../../types/unsubscribe\";\nimport type { ThreadRuntimeEventType } from \"../../runtime/interfaces/thread-runtime-core\";\nimport type {\n CreateAppendMessage,\n ThreadRuntime,\n} from \"../../runtime/api/thread-runtime\";\nimport { useMemo, useEffect, useCallback, type RefObject } from \"react\";\nimport { useResource, resource, withKey } from \"@assistant-ui/tap\";\nimport { liveRef } from \"./liveRef\";\nimport type { ClientOutput } from \"@assistant-ui/store\";\nimport {\n useAssistantEmit,\n useClientLookup,\n useClientResource,\n} from \"@assistant-ui/store/client\";\nimport { ComposerClient } from \"./composer-runtime-client\";\nimport { MessageClient } from \"./message-runtime-client\";\nimport { ThreadSuggestions } from \"../clients/suggestions\";\nimport { useSubscribable } from \"./useSubscribable\";\nimport type { ThreadState } from \"../scopes/thread\";\n\nconst useMessageClientById = ({\n runtime,\n id,\n threadIdRef,\n threadId,\n}: {\n runtime: ThreadRuntime;\n id: string;\n threadIdRef: RefObject<string>;\n threadId: string;\n}) => {\n const messageRuntime = useMemo(\n () => runtime.getMessageById(id),\n [runtime, id],\n );\n\n return useResource(\n MessageClient({ runtime: messageRuntime, threadIdRef, threadId }),\n );\n};\n\nconst MessageClientById = resource(useMessageClientById);\n\nconst useThreadClient = ({\n runtime,\n}: {\n runtime: ThreadRuntime;\n}): ClientOutput<\"thread\"> => {\n const runtimeState = useSubscribable(runtime);\n const emit = useAssistantEmit();\n\n useEffect(() => {\n const unsubscribers: Unsubscribe[] = [];\n\n const threadEvents: ThreadRuntimeEventType[] = [\n \"runStart\",\n \"runEnd\",\n \"initialize\",\n \"modelContextUpdate\",\n ];\n\n for (const event of threadEvents) {\n const unsubscribe = runtime.unstable_on(event, () => {\n const threadId = runtime.getState()?.threadId || \"unknown\";\n emit(`thread.${event}`, {\n threadId,\n });\n });\n unsubscribers.push(unsubscribe);\n }\n\n return () => {\n for (const unsub of unsubscribers) unsub();\n };\n }, [runtime, emit]);\n\n const threadIdRef = useMemo(\n () => liveRef(() => runtime.getState()!.threadId),\n [runtime],\n );\n const emitThreadEvent = (\n event: \"thread.cancelRun\" | \"thread.voiceStarted\",\n ) => {\n emit(event, { threadId: runtime.getState()!.threadId });\n };\n const isSuggestion = useCallback(\n (text: string) =>\n runtime\n .getState()!\n .suggestions.some((suggestion) => suggestion.prompt === text),\n [runtime],\n );\n\n const composer = useClientResource(\n ComposerClient({\n runtime: runtime.composer,\n threadIdRef,\n isSuggestion,\n }),\n );\n const suggestions = useClientResource(\n ThreadSuggestions(runtimeState.suggestions),\n );\n const messages = useClientLookup(\n runtimeState.messages.map((m) =>\n withKey(\n m.id,\n MessageClientById({\n runtime,\n id: m.id,\n threadIdRef,\n threadId: runtimeState.threadId,\n }),\n [runtime, m.id, threadIdRef, runtimeState.threadId],\n ),\n ),\n );\n\n const state = useMemo<ThreadState>(() => {\n return {\n isEmpty: messages.state.length === 0 && !runtimeState.isLoading,\n isDisabled: runtimeState.isDisabled,\n isLoading: runtimeState.isLoading,\n isRunning: runtimeState.isRunning,\n capabilities: runtimeState.capabilities,\n state: runtimeState.state,\n suggestions: runtimeState.suggestions,\n extras: runtimeState.extras,\n speech: runtimeState.speech,\n voice: runtimeState.voice,\n\n composer: composer.state,\n messages: messages.state,\n };\n }, [runtimeState, messages, composer.state]);\n\n return {\n getState: () => state,\n composer: () => composer.methods,\n suggestions: () => suggestions.methods,\n append: (message) => {\n const appended: Exclude<CreateAppendMessage, string> =\n typeof message === \"string\"\n ? { content: [{ type: \"text\", text: message }] }\n : message;\n if ((appended.role ?? \"user\") === \"user\") {\n const text = appended.content\n .map((part) => (part.type === \"text\" ? part.text : \"\"))\n .join(\"\");\n emit(\"composer.send\", {\n threadId: runtime.getState()!.threadId,\n chars: text.length,\n attachments: appended.attachments?.length ?? 0,\n ...(isSuggestion(text) ? { suggestion: true } : undefined),\n });\n }\n runtime.append(message);\n },\n deleteMessage: runtime.deleteMessage,\n startRun: runtime.startRun,\n resumeRun: runtime.resumeRun,\n importExternalState: runtime.importExternalState,\n cancelRun: () => {\n if (runtimeState.isRunning) emitThreadEvent(\"thread.cancelRun\");\n runtime.cancelRun();\n },\n getModelContext: runtime.getModelContext,\n export: runtime.export,\n import: runtime.import,\n reset: runtime.reset,\n stopSpeaking: runtime.stopSpeaking,\n connectVoice: () => {\n runtime.connectVoice();\n emitThreadEvent(\"thread.voiceStarted\");\n },\n disconnectVoice: runtime.disconnectVoice,\n getVoiceVolume: runtime.getVoiceVolume,\n subscribeVoiceVolume: runtime.subscribeVoiceVolume,\n muteVoice: runtime.muteVoice,\n unmuteVoice: runtime.unmuteVoice,\n message: (selector) => {\n if (\"id\" in selector) {\n return messages.get({ key: selector.id });\n } else {\n return messages.get(selector);\n }\n },\n __internal_getRuntime: () => runtime,\n };\n};\n\nexport const ThreadClient = resource(useThreadClient);\n"],"mappings":";;;;;;;;;;AAqBA,MAAMqB,wBAAuBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAC,MAAA,EAAAC,SAAAC,IAAAC,aAAAC,aAAAN;CAU7B,IAAAO;CAAA,IAAAN,EAAA,OAAAG,MAAAH,EAAA,OAAAE,SAAA;EAESI,KAAAJ,QAAOK,eAAgBJ,EAAE;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAE;EAAAF,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CADlC,MAAAQ,iBACQF;CAEN,IAAAG;CAAA,IAAAT,EAAA,OAAAQ,kBAAAR,EAAA,OAAAK,YAAAL,EAAA,OAAAI,aAAA;EAGAK,KAAAf,cAAc;GAAAQ,SAAWM;GAAcJ;GAAAC;EAAwB,CAAC;EAACL,EAAA,KAAAQ;EAAAR,EAAA,KAAAK;EAAAL,EAAA,KAAAI;EAAAJ,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAD5Df,YACLwB,EACF;AAAC;AAGH,MAAMC,oBAAoBxB,SAASY,oBAAoB;AAEvD,MAAMa,mBAAkBZ,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,YAAAH;CAKvB,MAAAa,eAAqBhB,gBAAgBM,OAAO;CAC5C,MAAAW,OAAavB,iBAAiB;CAAE,IAAAgB;CAAA,IAAAG;CAAA,IAAAT,EAAA,OAAAa,QAAAb,EAAA,OAAAE,SAAA;EAEtBI,WAAA;GACR,MAAAQ,gBAAqC,CAAA;GASrC,KAAK,MAAAE,SAAeD;IANlB;IACA;IACA;IACA;GAGkBA,GAAY;IAC9B,MAAAE,cAAoBf,QAAOgB,YAAaF,aAAO;KAC7C,MAAAX,WAAiBH,QAAOiB,SAAoB,CAAC,EAAAd,YAA5B;KACjBQ,KAAK,UAAUG,SAAS,EAAAX,SAExB,CAAC;IAAC,CACH;IACDS,cAAaM,KAAMH,WAAW;GAAC;GAChC,aAEM;IACL,KAAK,MAAAI,SAAeP,eAAeO,MAAM;GAAE;EAC5C;EACAZ,KAAA,CAACP,SAASW,IAAI;EAACb,EAAA,KAAAa;EAAAb,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAS;CAAA,OAAA;EAAAH,KAAAN,EAAA;EAAAS,KAAAT,EAAA;CAAA;CAvBlBlB,UAAUwB,IAuBPG,EAAe;CAAC,IAAAa;CAAA,IAAAtB,EAAA,OAAAE,SAAA;EAGXoB,KAAAlC,cAAcc,QAAOiB,SAAU,CAAC,CAAAd,QAAU;EAACL,EAAA,KAAAE;EAAAF,EAAA,KAAAsB;CAAA,OAAAA,KAAAtB,EAAA;CADnD,MAAAI,cACQkB;CAEN,IAAAC;CAAA,IAAAvB,EAAA,OAAAa,QAAAb,EAAA,OAAAE,SAAA;EACsBqB,MAAAC,YAAA;GAGtBX,KAAKG,SAAO,EAAAX,UAAYH,QAAOiB,SAAU,CAAC,CAAAd,SAAW,CAAC;EAAC;EACxDL,EAAA,KAAAa;EAAAb,EAAA,KAAAE;EAAAF,EAAA,KAAAuB;CAAA,OAAAA,KAAAvB,EAAA;CAJD,MAAAyB,kBAAwBF;CAItB,IAAAG;CAAA,IAAA1B,EAAA,OAAAE,SAAA;EAEAwB,MAAAC,SACEzB,QAAOiB,SACK,CAAC,CAAAS,YACCC,MAAMC,eAAgBA,WAAUC,WAAYJ,IAAI;EAAC3B,EAAA,KAAAE;EAAAF,EAAA,MAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAJnE,MAAAgC,eAAqBN;CAMnB,IAAAO;CAAA,IAAAjC,EAAA,QAAAgC,gBAAAhC,EAAA,QAAAE,QAAAgC,YAAAlC,EAAA,QAAAI,aAAA;EAGA6B,KAAAxC,eAAe;GAAAS,SACJA,QAAOgC;GAAS9B;GAAA4B;EAG3B,CAAC;EAAChC,EAAA,MAAAgC;EAAAhC,EAAA,MAAAE,QAAAgC;EAAAlC,EAAA,MAAAI;EAAAJ,EAAA,MAAAiC;CAAA,OAAAA,KAAAjC,EAAA;CALJ,MAAAkC,WAAiB1C,kBACfyC,EAKF;CAAE,IAAAE;CAAA,IAAAnC,EAAA,QAAAY,aAAAgB,aAAA;EAEAO,KAAAxC,kBAAkBiB,aAAYgB,WAAY;EAAC5B,EAAA,MAAAY,aAAAgB;EAAA5B,EAAA,MAAAmC;CAAA,OAAAA,KAAAnC,EAAA;CAD7C,MAAA4B,cAAoBpC,kBAClB2C,EACF;CAAE,IAAAC;CAAA,IAAApC,EAAA,QAAAE,WAAAF,EAAA,QAAAY,aAAAyB,YAAArC,EAAA,QAAAY,aAAAP,YAAAL,EAAA,QAAAI,aAAA;EAAA,IAAAkC;EAAA,IAAAtC,EAAA,QAAAE,WAAAF,EAAA,QAAAY,aAAAP,YAAAL,EAAA,QAAAI,aAAA;GAE0BkC,MAAAC,MACxBpD,QACEoD,EAACpC,IACDO,kBAAkB;IAAAR;IAAAC,IAEZoC,EAACpC;IAAGC;IAAAC,UAEEO,aAAYP;GACxB,CAAC,GACD;IAACH;IAASqC,EAACpC;IAAKC;IAAaQ,aAAYP;GAAS,CACpD;GAACL,EAAA,MAAAE;GAAAF,EAAA,MAAAY,aAAAP;GAAAL,EAAA,MAAAI;GAAAJ,EAAA,MAAAsC;EAAA,OAAAA,KAAAtC,EAAA;EAVHoC,KAAAxB,aAAYyB,SAASG,IAAKF,EAW1B;EAACtC,EAAA,MAAAE;EAAAF,EAAA,MAAAY,aAAAyB;EAAArC,EAAA,MAAAY,aAAAP;EAAAL,EAAA,MAAAI;EAAAJ,EAAA,MAAAoC;CAAA,OAAAA,KAAApC,EAAA;CAZH,MAAAqC,WAAiB9C,gBACf6C,EAYF;CAIa,MAAAE,KAAAD,SAAQI,MAAMC,WAAY,KAA1B,CAAgC9B,aAAY+B;CAAU,IAAAC;CAAA,IAAA5C,EAAA,QAAAkC,SAAAO,SAAAzC,EAAA,QAAAqC,SAAAI,SAAAzC,EAAA,QAAAY,aAAAiC,gBAAA7C,EAAA,QAAAY,aAAAkC,UAAA9C,EAAA,QAAAY,aAAAmC,cAAA/C,EAAA,QAAAY,aAAA+B,aAAA3C,EAAA,QAAAY,aAAAoC,aAAAhD,EAAA,QAAAY,aAAAqC,UAAAjD,EAAA,QAAAY,aAAA6B,SAAAzC,EAAA,QAAAY,aAAAgB,eAAA5B,EAAA,QAAAY,aAAAsC,SAAAlD,EAAA,QAAAsC,IAAA;EAD1DM,MAAA;GAAAO,SACIb;GAAsDS,YACnDnC,aAAYmC;GAAWJ,WACxB/B,aAAY+B;GAAUK,WACtBpC,aAAYoC;GAAUH,cACnBjC,aAAYiC;GAAaJ,OAChC7B,aAAY6B;GAAMb,aACZhB,aAAYgB;GAAYkB,QAC7BlC,aAAYkC;GAAOG,QACnBrC,aAAYqC;GAAOC,OACpBtC,aAAYsC;GAAMhB,UAEfA,SAAQO;GAAMJ,UACdA,SAAQI;EACpB;EAACzC,EAAA,MAAAkC,SAAAO;EAAAzC,EAAA,MAAAqC,SAAAI;EAAAzC,EAAA,MAAAY,aAAAiC;EAAA7C,EAAA,MAAAY,aAAAkC;EAAA9C,EAAA,MAAAY,aAAAmC;EAAA/C,EAAA,MAAAY,aAAA+B;EAAA3C,EAAA,MAAAY,aAAAoC;EAAAhD,EAAA,MAAAY,aAAAqC;EAAAjD,EAAA,MAAAY,aAAA6B;EAAAzC,EAAA,MAAAY,aAAAgB;EAAA5B,EAAA,MAAAY,aAAAsC;EAAAlD,EAAA,MAAAsC;EAAAtC,EAAA,MAAA4C;CAAA,OAAAA,MAAA5C,EAAA;CAfH,MAAAyC,QACEG;CAe2C,IAAAQ;CAAA,IAAApD,EAAA,QAAAyC,OAAA;EAGjCW,YAAMX;EAAKzC,EAAA,MAAAyC;EAAAzC,EAAA,MAAAoD;CAAA,OAAAA,MAAApD,EAAA;CAAA,IAAAqD;CAAA,IAAArD,EAAA,QAAAkC,SAAAoB,SAAA;EACXD,YAAMnB,SAAQoB;EAAQtD,EAAA,MAAAkC,SAAAoB;EAAAtD,EAAA,MAAAqD;CAAA,OAAAA,MAAArD,EAAA;CAAA,IAAAuD;CAAA,IAAAvD,EAAA,QAAA4B,aAAA;EACnB2B,YAAM3B,YAAW0B;EAAQtD,EAAA,MAAA4B;EAAA5B,EAAA,MAAAuD;CAAA,OAAAA,MAAAvD,EAAA;CAAA,IAAAwD;CAAA,IAAAxD,EAAA,QAAAa,QAAAb,EAAA,QAAAgC,gBAAAhC,EAAA,QAAAE,SAAA;EAC9BsD,OAAAC,YAAA;GACN,MAAAC,WACE,OAAOD,YAAY,WAAnB,EAAAE,SACe,CAAC;IAAAC,MAAQ;IAAMjC,MAAQ8B;GAAQ,CAAC,EACrC,IAFVA;GAGF,KAAKC,SAAQG,QAAR,YAA6B,QAAM;IACtC,MAAAC,SAAaJ,SAAQC,QAAQnB,IACtBuB,KAAiD,CAAC,CAAAC,KACjD,EAAE;IACVnD,KAAK,iBAAiB;KAAAR,UACVH,QAAOiB,SAAU,CAAC,CAAAd;KAAU4D,OAC/BtC,OAAIe;KAAOwB,aACLR,SAAQQ,aAAoBxB,UAA5B;KAAiC,GAC1CV,aAAaL,MAAuC,IAApD,EAAAG,YAAmC,KAAiB,IAApDqC,KAAAA;IACN,CAAC;GAAC;GAEJjE,QAAOkE,OAAQX,OAAO;EAAC;EACxBzD,EAAA,MAAAa;EAAAb,EAAA,MAAAgC;EAAAhC,EAAA,MAAAE;EAAAF,EAAA,MAAAwD;CAAA,OAAAA,MAAAxD,EAAA;CAAA,IAAAqE;CAAA,IAAArE,EAAA,QAAAyB,mBAAAzB,EAAA,QAAAE,WAAAF,EAAA,QAAAY,aAAAoC,WAAA;EAKUqB,YAAA;GACT,IAAIzD,aAAYoC,WAAYvB,gBAAgB,kBAAkB;GAC9DvB,QAAOoE,UAAW;EAAC;EACpBtE,EAAA,MAAAyB;EAAAzB,EAAA,MAAAE;EAAAF,EAAA,MAAAY,aAAAoC;EAAAhD,EAAA,MAAAqE;CAAA,OAAAA,MAAArE,EAAA;CAAA,IAAAuE;CAAA,IAAAvE,EAAA,QAAAyB,mBAAAzB,EAAA,QAAAE,SAAA;EAMaqE,YAAA;GACZrE,QAAOsE,aAAc;GACrB/C,gBAAgB,qBAAqB;EAAC;EACvCzB,EAAA,MAAAyB;EAAAzB,EAAA,MAAAE;EAAAF,EAAA,MAAAuE;CAAA,OAAAA,MAAAvE,EAAA;CAAA,IAAAyE;CAAA,IAAAzE,EAAA,QAAAqC,UAAA;EAMQoC,OAAAC,aAAA;GACP,IAAI,QAAQA,UAAQ,OACXrC,SAAQsC,IAAK,EAAAC,KAAOF,SAAQvE,GAAI,CAAC;QAAC,OAElCkC,SAAQsC,IAAKD,QAAQ;EAC7B;EACF1E,EAAA,MAAAqC;EAAArC,EAAA,MAAAyE;CAAA,OAAAA,MAAAzE,EAAA;CAAA,IAAA6E;CAAA,IAAA7E,EAAA,QAAAE,SAAA;EACsB2E,YAAM3E;EAAOF,EAAA,MAAAE;EAAAF,EAAA,MAAA6E;CAAA,OAAAA,MAAA7E,EAAA;CAAA,IAAA8E;CAAA,IAAA9E,EAAA,QAAAE,QAAA6E,iBAAA/E,EAAA,QAAAE,QAAA8E,mBAAAhF,EAAA,QAAAE,QAAA+E,UAAAjF,EAAA,QAAAE,QAAAgF,mBAAAlF,EAAA,QAAAE,QAAAiF,kBAAAnF,EAAA,QAAAE,QAAAkF,UAAApF,EAAA,QAAAE,QAAAmF,uBAAArF,EAAA,QAAAE,QAAAoF,aAAAtF,EAAA,QAAAE,QAAAqF,SAAAvF,EAAA,QAAAE,QAAAsF,aAAAxF,EAAA,QAAAE,QAAAuF,YAAAzF,EAAA,QAAAE,QAAAwF,gBAAA1F,EAAA,QAAAE,QAAAyF,wBAAA3F,EAAA,QAAAE,QAAA0F,eAAA5F,EAAA,QAAAoD,OAAApD,EAAA,QAAAqD,OAAArD,EAAA,QAAAuD,OAAAvD,EAAA,QAAAwD,OAAAxD,EAAA,QAAAqE,OAAArE,EAAA,QAAAuE,OAAAvE,EAAA,QAAAyE,OAAAzE,EAAA,QAAA6E,KAAA;EAnD/BC,MAAA;GAAA3D,UACKiC;GAAWlB,UACXmB;GAAsBzB,aACnB2B;GAAyBa,QAC9BZ;GAiBPuB,eACc7E,QAAO6E;GAAcU,UAC1BvF,QAAOuF;GAASD,WACftF,QAAOsF;GAAUH,qBACPnF,QAAOmF;GAAoBf,WACrCD;GAGVa,iBACgBhF,QAAOgF;GAAgBD,QAChC/E,QAAO+E;GAAOG,QACdlF,QAAOkF;GAAOG,OACfrF,QAAOqF;GAAMG,cACNxF,QAAOwF;GAAalB,cACpBD;GAGbS,iBACgB9E,QAAO8E;GAAgBG,gBACxBjF,QAAOiF;GAAeQ,sBAChBzF,QAAOyF;GAAqBL,WACvCpF,QAAOoF;GAAUM,aACf1F,QAAO0F;GAAYnC,SACvBgB;GAMRoB,uBACsBhB;EACzB;EAAC7E,EAAA,MAAAE,QAAA6E;EAAA/E,EAAA,MAAAE,QAAA8E;EAAAhF,EAAA,MAAAE,QAAA+E;EAAAjF,EAAA,MAAAE,QAAAgF;EAAAlF,EAAA,MAAAE,QAAAiF;EAAAnF,EAAA,MAAAE,QAAAkF;EAAApF,EAAA,MAAAE,QAAAmF;EAAArF,EAAA,MAAAE,QAAAoF;EAAAtF,EAAA,MAAAE,QAAAqF;EAAAvF,EAAA,MAAAE,QAAAsF;EAAAxF,EAAA,MAAAE,QAAAuF;EAAAzF,EAAA,MAAAE,QAAAwF;EAAA1F,EAAA,MAAAE,QAAAyF;EAAA3F,EAAA,MAAAE,QAAA0F;EAAA5F,EAAA,MAAAoD;EAAApD,EAAA,MAAAqD;EAAArD,EAAA,MAAAuD;EAAAvD,EAAA,MAAAwD;EAAAxD,EAAA,MAAAqE;EAAArE,EAAA,MAAAuE;EAAAvE,EAAA,MAAAyE;EAAAzE,EAAA,MAAA6E;EAAA7E,EAAA,MAAA8E;CAAA,OAAAA,MAAA9E,EAAA;CAAA,OApDM8E;AAoDN;AAGH,MAAagB,eAAe5G,SAASyB,eAAe;AApJ5B,SAAAoD,MAAAgC,MAAA;CAAA,OAwGEA,KAAInC,SAAU,SAASmC,KAAIpE,OAA3B;AAAqC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { SubscribableWithState } from "../../subscribable/subscribable.js";
|
|
2
2
|
//#region src/store/runtime-clients/useSubscribable.d.ts
|
|
3
|
-
declare const useSubscribable: <T>(subscribable: Omit<SubscribableWithState<T, any>, "path">
|
|
3
|
+
declare const useSubscribable: <T>(subscribable: Omit<SubscribableWithState<T, any>, "path"> & {
|
|
4
|
+
getServerSnapshot?: () => T;
|
|
5
|
+
}) => T;
|
|
4
6
|
//#endregion
|
|
5
7
|
export { useSubscribable };
|
|
6
8
|
//# sourceMappingURL=useSubscribable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSubscribable.d.ts","names":[],"sources":["../../../src/store/runtime-clients/useSubscribable.ts"],"mappings":";;cAGa,kBAAmB,GAC9B,cAAc,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"useSubscribable.d.ts","names":[],"sources":["../../../src/store/runtime-clients/useSubscribable.ts"],"mappings":";;cAGa,kBAAmB,GAC9B,cAAc,KAAK,sBAAsB;EACvC,0BAA0B;MAC3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useSyncExternalStore } from "@assistant-ui/tap/react-shim";
|
|
2
2
|
//#region src/store/runtime-clients/useSubscribable.ts
|
|
3
3
|
const useSubscribable = (subscribable) => {
|
|
4
|
-
return useSyncExternalStore(subscribable.subscribe, subscribable.getState);
|
|
4
|
+
return useSyncExternalStore(subscribable.subscribe, subscribable.getState, subscribable.getServerSnapshot);
|
|
5
5
|
};
|
|
6
6
|
//#endregion
|
|
7
7
|
export { useSubscribable };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSubscribable.js","names":["useSyncExternalStore","SubscribableWithState","useSubscribable","subscribable","subscribe","getState"],"sources":["../../../src/store/runtime-clients/useSubscribable.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\n\nexport const useSubscribable = <T>(\n subscribable: Omit<SubscribableWithState<T, any>, \"path\"
|
|
1
|
+
{"version":3,"file":"useSubscribable.js","names":["useSyncExternalStore","SubscribableWithState","useSubscribable","subscribable","subscribe","getState","getServerSnapshot"],"sources":["../../../src/store/runtime-clients/useSubscribable.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport type { SubscribableWithState } from \"../../subscribable/subscribable\";\n\nexport const useSubscribable = <T>(\n subscribable: Omit<SubscribableWithState<T, any>, \"path\"> & {\n getServerSnapshot?: () => T;\n },\n) => {\n return useSyncExternalStore(\n subscribable.subscribe,\n subscribable.getState,\n subscribable.getServerSnapshot,\n );\n};\n"],"mappings":";;AAGA,MAAaE,mBAAkBC,iBAAA;CAAA,OAKtBH,qBACLG,aAAYC,WACZD,aAAYE,UACZF,aAAYG,iBACd;AAAC"}
|
|
@@ -101,12 +101,15 @@ type ComposerMeta = {
|
|
|
101
101
|
};
|
|
102
102
|
type ComposerEvents = {
|
|
103
103
|
/**
|
|
104
|
-
* The user sent
|
|
105
|
-
* came from an edit composer.
|
|
104
|
+
* The user sent a message, from the composer or through `thread.append`.
|
|
105
|
+
* `messageId` is set when the send came from an edit composer.
|
|
106
106
|
*/
|
|
107
107
|
"composer.send": {
|
|
108
108
|
threadId: string;
|
|
109
109
|
messageId?: string;
|
|
110
|
+
chars: number;
|
|
111
|
+
attachments: number;
|
|
112
|
+
suggestion?: boolean;
|
|
110
113
|
};
|
|
111
114
|
/**
|
|
112
115
|
* An attachment was added to the composer. `messageId` is set when the
|
|
@@ -115,6 +118,7 @@ type ComposerEvents = {
|
|
|
115
118
|
"composer.attachmentAdd": {
|
|
116
119
|
threadId: string;
|
|
117
120
|
messageId?: string;
|
|
121
|
+
contentType?: string;
|
|
118
122
|
};
|
|
119
123
|
"composer.attachmentAddError": {
|
|
120
124
|
threadId: string;
|
|
@@ -122,6 +126,10 @@ type ComposerEvents = {
|
|
|
122
126
|
attachmentId?: string;
|
|
123
127
|
reason: AttachmentAddErrorReason;
|
|
124
128
|
message: string;
|
|
129
|
+
contentType?: string;
|
|
130
|
+
};
|
|
131
|
+
"composer.cancel": {
|
|
132
|
+
threadId: string;
|
|
125
133
|
};
|
|
126
134
|
};
|
|
127
135
|
type ComposerClientSchema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer.d.ts","names":[],"sources":["../../../src/store/scopes/composer.ts"],"mappings":";;;;;;;;;KAaY,sBAAsB;;;;;;;EAOhC;;KAGU;WACD;WACA,MAAM;WACN,sBAAsB;WACtB,WAAW;WACX;;;;;;WAMA;;;;;;;;;WASA;WACA;WACA;WACA;;;;;WAMA,WAAW;;;;;WAMX,OAAO;;;;;WAMP,gBAAgB;;KAGf;EACV,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM;EACd,aAAa,WAAW;EACxB,cAAc,kBAAkB,OAAO,mBAAmB;EAC1D,oBAAoB;EACpB,WAAW;IAAY;;IAAoB;MAAe;EAC1D,SAAS;EACT,KAAK,OAAO;EACZ;EACA;;;;;EAMA;;;;EAKA;;;;EAKA,SAAS,OAAO;;;;EAKhB,UAAU;IAAY;;IAAoB;MAAe;EAEzD,0BAA0B;;KAGhB;EACV;EACA,OAAO;;KAGG;;;;;EAKV;
|
|
1
|
+
{"version":3,"file":"composer.d.ts","names":[],"sources":["../../../src/store/scopes/composer.ts"],"mappings":";;;;;;;;;KAaY,sBAAsB;;;;;;;EAOhC;;KAGU;WACD;WACA,MAAM;WACN,sBAAsB;WACtB,WAAW;WACX;;;;;;WAMA;;;;;;;;;WASA;WACA;WACA;WACA;;;;;WAMA,WAAW;;;;;WAMX,OAAO;;;;;WAMP,gBAAgB;;KAGf;EACV,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM;EACd,aAAa,WAAW;EACxB,cAAc,kBAAkB,OAAO,mBAAmB;EAC1D,oBAAoB;EACpB,WAAW;IAAY;;IAAoB;MAAe;EAC1D,SAAS;EACT,KAAK,OAAO;EACZ;EACA;;;;;EAMA;;;;EAKA;;;;EAKA,SAAS,OAAO;;;;EAKhB,UAAU;IAAY;;IAAoB;MAAe;EAEzD,0BAA0B;;KAGhB;EACV;EACA,OAAO;;KAGG;;;;;EAKV;IACE;IACA;IACA;IACA;IACA;;;;;;EAMF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;IACA,QAAQ;IACR;IACA;;EAEF;IAAqB;;;KAGX;EACV,SAAS;EACT,MAAM;EACN,QAAQ"}
|
|
@@ -80,10 +80,39 @@ type MessageMeta = {
|
|
|
80
80
|
index: number;
|
|
81
81
|
};
|
|
82
82
|
};
|
|
83
|
+
type MessageEvents = {
|
|
84
|
+
/** The user asked for this assistant message to be generated again. */
|
|
85
|
+
"message.reload": {
|
|
86
|
+
threadId: string;
|
|
87
|
+
messageId: string;
|
|
88
|
+
};
|
|
89
|
+
/** The user moved to another branch at this message. */
|
|
90
|
+
"message.branchSwitched": {
|
|
91
|
+
threadId: string;
|
|
92
|
+
messageId: string;
|
|
93
|
+
};
|
|
94
|
+
/** The user copied this message. */
|
|
95
|
+
"message.copied": {
|
|
96
|
+
threadId: string;
|
|
97
|
+
messageId: string;
|
|
98
|
+
};
|
|
99
|
+
/** Speech synthesis started for this message. */
|
|
100
|
+
"message.speak": {
|
|
101
|
+
threadId: string;
|
|
102
|
+
messageId: string;
|
|
103
|
+
};
|
|
104
|
+
/** This message entered an error status. */
|
|
105
|
+
"message.error": {
|
|
106
|
+
threadId: string;
|
|
107
|
+
messageId: string;
|
|
108
|
+
reason: "error";
|
|
109
|
+
};
|
|
110
|
+
};
|
|
83
111
|
type MessageClientSchema = {
|
|
84
112
|
methods: MessageMethods;
|
|
85
113
|
meta: MessageMeta;
|
|
114
|
+
events: MessageEvents;
|
|
86
115
|
};
|
|
87
116
|
//#endregion
|
|
88
|
-
export { MessageClientSchema, MessageMeta, MessageMethods, MessageState };
|
|
117
|
+
export { MessageClientSchema, MessageEvents, MessageMeta, MessageMethods, MessageState };
|
|
89
118
|
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","names":[],"sources":["../../../src/store/scopes/message.ts"],"mappings":";;;;;;;KAQY,eAAe;WAChB;WACA;WACA;WACA;;;;;;;;;;;;;;;;;WAiBA,QAAQ;WACR,UAAU;WACV,gBAAgB;WAChB;WACA;;WAEA;;KAGC;;;;EAIV,YAAY;EACZ,YAAY;EACZ,iBAAiB;EACjB,OAAO;IAAW,YAAY;;;EAE9B;;EAEA;EACA,eAAe;IAAY;;EAC3B,eAAe;IACb;IACA;;EAEF;EACA,KAAK;IAAY;;IAAoB;MAAuB;EAC5D,WAAW;IAAY;;IAAoB;MAAe;EAC1D,YAAY;EACZ,cAAc;EACd,0BAA0B;;KAGhB;EACV;EACA;IAAS;IAAY;;IAAiB;IAAe;;;KAG3C;EACV,SAAS;EACT,MAAM"}
|
|
1
|
+
{"version":3,"file":"message.d.ts","names":[],"sources":["../../../src/store/scopes/message.ts"],"mappings":";;;;;;;KAQY,eAAe;WAChB;WACA;WACA;WACA;;;;;;;;;;;;;;;;;WAiBA,QAAQ;WACR,UAAU;WACV,gBAAgB;WAChB;WACA;;WAEA;;KAGC;;;;EAIV,YAAY;EACZ,YAAY;EACZ,iBAAiB;EACjB,OAAO;IAAW,YAAY;;;EAE9B;;EAEA;EACA,eAAe;IAAY;;EAC3B,eAAe;IACb;IACA;;EAEF;EACA,KAAK;IAAY;;IAAoB;MAAuB;EAC5D,WAAW;IAAY;;IAAoB;MAAe;EAC1D,YAAY;EACZ,cAAc;EACd,0BAA0B;;KAGhB;EACV;EACA;IAAS;IAAY;;IAAiB;IAAe;;;KAG3C;;EAEV;IAAoB;IAAkB;;;EAEtC;IAA4B;IAAkB;;;EAE9C;IAAoB;IAAkB;;;EAEtC;IAAmB;IAAkB;;;EAErC;IAAmB;IAAkB;IAAmB;;;KAG9C;EACV,SAAS;EACT,MAAM;EACN,QAAQ"}
|
|
@@ -22,10 +22,13 @@ type PartMethods = {
|
|
|
22
22
|
resumeToolCall(payload: unknown): void;
|
|
23
23
|
/**
|
|
24
24
|
* Respond to a server-side tool approval gate. The approval id is read from
|
|
25
|
-
* the part. Accepts a boolean decision
|
|
26
|
-
* options.
|
|
25
|
+
* the part. Accepts a boolean decision, the id of one of the approval's
|
|
26
|
+
* options, or a free-form answer when the request asks for one.
|
|
27
|
+
*
|
|
28
|
+
* Resolves once the runtime has accepted the response, and rejects when it
|
|
29
|
+
* could not be recorded, so a renderer can leave its controls retryable.
|
|
27
30
|
*/
|
|
28
|
-
respondToToolApproval(response: ToolApprovalResponse): void
|
|
31
|
+
respondToToolApproval(response: ToolApprovalResponse): Promise<void>;
|
|
29
32
|
__internal_getRuntime?(): MessagePartRuntime;
|
|
30
33
|
};
|
|
31
34
|
type PartMeta = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"part.d.ts","names":[],"sources":["../../../src/store/scopes/part.ts"],"mappings":";;;;KAUY,aAAa,wBAAwB;WACtC,QAAQ,oBAAoB;;KAG3B;;;;EAIV,YAAY;;;;;EAKZ,cAAc,kBAAkB;;;;;EAKhC,eAAe
|
|
1
|
+
{"version":3,"file":"part.d.ts","names":[],"sources":["../../../src/store/scopes/part.ts"],"mappings":";;;;KAUY,aAAa,wBAAwB;WACtC,QAAQ,oBAAoB;;KAG3B;;;;EAIV,YAAY;;;;;EAKZ,cAAc,kBAAkB;;;;;EAKhC,eAAe;;;;;;;;;EASf,sBAAsB,UAAU,uBAAuB;EACvD,0BAA0B;;KAGhB;EAEN;EACA;IACM;IAAe;;IACf;IAAoB;;;EAG1B;EACA;IAAS;IAAe;;;KAGlB;EACV,SAAS;EACT,MAAM"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ThreadListItemStatus } from "../../runtime/interfaces/thread-list-runtime-core.js";
|
|
2
|
-
import { ThreadListItemRuntime } from "../../runtime/api/thread-list-item-runtime.js";
|
|
2
|
+
import { ThreadListItemGenerateTitleOptions, ThreadListItemRuntime } from "../../runtime/api/thread-list-item-runtime.js";
|
|
3
3
|
//#region src/store/scopes/thread-list-item.d.ts
|
|
4
4
|
type ThreadListItemState = {
|
|
5
5
|
readonly id: string;
|
|
@@ -27,7 +27,7 @@ type ThreadListItemMethods = {
|
|
|
27
27
|
archive(): void;
|
|
28
28
|
unarchive(): void;
|
|
29
29
|
delete(): void;
|
|
30
|
-
generateTitle(): void;
|
|
30
|
+
generateTitle(options?: ThreadListItemGenerateTitleOptions): void;
|
|
31
31
|
initialize(): Promise<{
|
|
32
32
|
remoteId: string;
|
|
33
33
|
externalId: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-list-item.d.ts","names":[],"sources":["../../../src/store/scopes/thread-list-item.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"thread-list-item.d.ts","names":[],"sources":["../../../src/store/scopes/thread-list-item.ts"],"mappings":";;;KAMY;WACD;WACA;WACA;WACA;WACA,gBAAgB;WAChB,QAAQ;WACR,SAAS;;;;;;;WAOT;;KAGC;EACV,YAAY;EACZ,SAAS;IAAY;;EACrB,OAAO;EACP,aAAa,QAAQ;EACrB;EACA;EACA;EACA,cAAc,UAAU;EACxB,cAAc;IAAU;IAAkB;;EAC1C;EACA,0BAA0B;;KAGhB;EACV;EACA;IACM;;IACA;IAAY;;IACZ;IAAe;IAAe;;;KAG1B;;;;;;;EAOV;IAA+B;;;;;;;EAM/B;IAAiC;;;KAGvB;EACV,SAAS;EACT,MAAM;EACN,QAAQ"}
|
|
@@ -152,6 +152,14 @@ type ThreadEvents = {
|
|
|
152
152
|
"thread.runEnd": {
|
|
153
153
|
threadId: string;
|
|
154
154
|
};
|
|
155
|
+
/** The user stopped the run in progress on this thread. */
|
|
156
|
+
"thread.cancelRun": {
|
|
157
|
+
threadId: string;
|
|
158
|
+
};
|
|
159
|
+
/** The user started a voice session on this thread. */
|
|
160
|
+
"thread.voiceStarted": {
|
|
161
|
+
threadId: string;
|
|
162
|
+
};
|
|
155
163
|
/**
|
|
156
164
|
* The thread transitioned from new to initialized. Fires before the first
|
|
157
165
|
* message is added, so read thread state via `useAuiState` rather than
|