@assistant-ui/core 0.2.22 → 0.3.0
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/thread-history.d.ts +8 -0
- package/dist/adapters/thread-history.d.ts.map +1 -1
- package/dist/internal.d.ts +3 -2
- package/dist/internal.js +3 -2
- package/dist/model-context/frame/host.d.ts.map +1 -1
- package/dist/model-context/frame/host.js +36 -21
- package/dist/model-context/frame/host.js.map +1 -1
- package/dist/model-context/types.d.ts.map +1 -1
- package/dist/model-context/types.js +13 -4
- package/dist/model-context/types.js.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.d.ts.map +1 -1
- package/dist/react/adapters/LocalStorageThreadListAdapter.js +3 -2
- package/dist/react/adapters/LocalStorageThreadListAdapter.js.map +1 -1
- package/dist/react/client/Tools.d.ts.map +1 -1
- package/dist/react/client/Tools.js +40 -55
- package/dist/react/client/Tools.js.map +1 -1
- package/dist/react/client/interactable-model-context.js +1 -0
- package/dist/react/client/interactable-model-context.js.map +1 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.js +1 -1
- package/dist/react/interactables-legacy/useAssistantInteractable.js.map +1 -1
- package/dist/react/interactables-legacy/useInteractableState.js +4 -3
- package/dist/react/interactables-legacy/useInteractableState.js.map +1 -1
- package/dist/react/model-context/useAssistantContext.js +1 -1
- package/dist/react/model-context/useAssistantContext.js.map +1 -1
- package/dist/react/model-context/useAssistantDataUI.js +1 -1
- package/dist/react/model-context/useAssistantDataUI.js.map +1 -1
- package/dist/react/model-context/useAssistantInstructions.js +1 -1
- package/dist/react/model-context/useAssistantInstructions.js.map +1 -1
- package/dist/react/model-context/useAssistantTool.js +29 -25
- package/dist/react/model-context/useAssistantTool.js.map +1 -1
- package/dist/react/model-context/useAssistantToolUI.js +1 -1
- package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/react/model-context/useAuiToolOverrides.js +1 -1
- package/dist/react/model-context/useAuiToolOverrides.js.map +1 -1
- package/dist/react/model-context/useInteractable.js +1 -1
- package/dist/react/model-context/useInteractable.js.map +1 -1
- package/dist/react/model-context/useInteractableState.js +3 -2
- package/dist/react/model-context/useInteractableState.js.map +1 -1
- package/dist/react/model-context/useInteractableVersions.js +1 -0
- package/dist/react/model-context/useInteractableVersions.js.map +1 -1
- package/dist/react/model-context/useToolArgsStatus.js +1 -0
- package/dist/react/model-context/useToolArgsStatus.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarCopy.js +4 -3
- package/dist/react/primitive-hooks/useActionBarCopy.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarEdit.js +2 -1
- package/dist/react/primitive-hooks/useActionBarEdit.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarFeedback.js +3 -2
- package/dist/react/primitive-hooks/useActionBarFeedback.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarReload.js +2 -1
- package/dist/react/primitive-hooks/useActionBarReload.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.js +2 -1
- package/dist/react/primitive-hooks/useActionBarSpeak.js.map +1 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.js +2 -1
- package/dist/react/primitive-hooks/useActionBarStopSpeaking.js.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.js +2 -1
- package/dist/react/primitive-hooks/useBranchPickerNext.js.map +1 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.js +2 -1
- package/dist/react/primitive-hooks/useBranchPickerPrevious.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.js +2 -1
- package/dist/react/primitive-hooks/useComposerAddAttachment.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerCancel.js +2 -1
- package/dist/react/primitive-hooks/useComposerCancel.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerDictate.js +2 -1
- package/dist/react/primitive-hooks/useComposerDictate.js.map +1 -1
- package/dist/react/primitive-hooks/useComposerSend.js +2 -1
- package/dist/react/primitive-hooks/useComposerSend.js.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.js +2 -1
- package/dist/react/primitive-hooks/useEditComposerCancel.js.map +1 -1
- package/dist/react/primitive-hooks/useEditComposerSend.js +2 -1
- package/dist/react/primitive-hooks/useEditComposerSend.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageBranching.js +3 -2
- package/dist/react/primitive-hooks/useMessageBranching.js.map +1 -1
- package/dist/react/primitive-hooks/useMessageReload.js +2 -1
- package/dist/react/primitive-hooks/useMessageReload.js.map +1 -1
- package/dist/react/primitive-hooks/useSuggestionTrigger.js +8 -7
- package/dist/react/primitive-hooks/useSuggestionTrigger.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.js +2 -1
- package/dist/react/primitive-hooks/useThreadListItemArchive.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.js +2 -1
- package/dist/react/primitive-hooks/useThreadListItemDelete.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.js +2 -1
- package/dist/react/primitive-hooks/useThreadListItemTrigger.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.js +2 -1
- package/dist/react/primitive-hooks/useThreadListItemUnarchive.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.js +2 -1
- package/dist/react/primitive-hooks/useThreadListLoadMore.js.map +1 -1
- package/dist/react/primitive-hooks/useThreadListNew.js +2 -1
- package/dist/react/primitive-hooks/useThreadListNew.js.map +1 -1
- package/dist/react/primitive-hooks/useVoice.js +5 -13
- package/dist/react/primitive-hooks/useVoice.js.map +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js +1 -1
- package/dist/react/primitives/chainOfThought/ChainOfThoughtParts.js.map +1 -1
- package/dist/react/primitives/composer/ComposerAttachments.js +1 -1
- 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 +1 -1
- 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 +1 -1
- package/dist/react/primitives/message/MessageAttachments.js.map +1 -1
- package/dist/react/primitives/message/MessageParts.js +84 -122
- package/dist/react/primitives/message/MessageParts.js.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/primitives/thread/ThreadSuggestions.js +1 -1
- package/dist/react/primitives/thread/ThreadSuggestions.js.map +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js +1 -1
- package/dist/react/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/react/providers/AttachmentByIndexProvider.js +2 -2
- package/dist/react/providers/AttachmentByIndexProvider.js.map +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.js +1 -1
- package/dist/react/providers/ChainOfThoughtByIndicesProvider.js.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js +30 -18
- package/dist/react/providers/ChainOfThoughtPartByIndexProvider.js.map +1 -1
- package/dist/react/providers/MessageByIdProvider.js +2 -2
- package/dist/react/providers/MessageByIdProvider.js.map +1 -1
- package/dist/react/providers/MessageByIndexProvider.js +2 -2
- package/dist/react/providers/MessageByIndexProvider.js.map +1 -1
- package/dist/react/providers/PartByIndexProvider.d.ts.map +1 -1
- package/dist/react/providers/PartByIndexProvider.js +30 -18
- package/dist/react/providers/PartByIndexProvider.js.map +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.js +1 -1
- package/dist/react/providers/QueueItemByIndexProvider.js.map +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.js +1 -1
- package/dist/react/providers/ReadonlyThreadProvider.js.map +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.js +1 -1
- package/dist/react/providers/SuggestionByIndexProvider.js.map +1 -1
- package/dist/react/providers/TextMessagePartProvider.js +1 -0
- package/dist/react/providers/TextMessagePartProvider.js.map +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.js +1 -1
- package/dist/react/providers/ThreadListItemByIndexProvider.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +3 -3
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +6 -4
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +31 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +42 -20
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +1 -1
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts +12 -1
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -1
- package/dist/react/runtimes/cloud/auiV0.js +2 -1
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -1
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +75 -73
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
- package/dist/react/runtimes/createRuntimeExtras.js +1 -1
- package/dist/react/runtimes/createRuntimeExtras.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/useExternalStoreSharedOptions.js +1 -0
- package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts +0 -1
- package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
- package/dist/react/types/scopes/tools.d.ts +0 -6
- package/dist/react/types/scopes/tools.d.ts.map +1 -1
- package/dist/react/utils/groupParts.d.ts +1 -3
- package/dist/react/utils/groupParts.d.ts.map +1 -1
- package/dist/react/utils/groupParts.js +1 -3
- package/dist/react/utils/groupParts.js.map +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts +1 -1
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
- package/dist/runtime/api/assistant-runtime.js +1 -1
- package/dist/runtime/api/assistant-runtime.js.map +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts +1 -1
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
- package/dist/runtime/api/attachment-runtime.js +1 -1
- package/dist/runtime/api/attachment-runtime.js.map +1 -1
- package/dist/runtime/api/composer-runtime.d.ts +2 -2
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
- package/dist/runtime/api/composer-runtime.js +2 -2
- package/dist/runtime/api/composer-runtime.js.map +1 -1
- package/dist/runtime/api/message-part-runtime.d.ts +4 -4
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-part-runtime.js +3 -3
- package/dist/runtime/api/message-part-runtime.js.map +1 -1
- package/dist/runtime/api/message-runtime.d.ts +1 -1
- package/dist/runtime/api/message-runtime.d.ts.map +1 -1
- package/dist/runtime/api/message-runtime.js +2 -2
- package/dist/runtime/api/message-runtime.js.map +1 -1
- package/dist/runtime/api/thread-list-item-runtime.d.ts +1 -1
- 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 +1 -1
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
- package/dist/runtime/api/thread-list-runtime.js +1 -1
- package/dist/runtime/api/thread-list-runtime.js.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts +1 -1
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js +1 -1
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +2 -2
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/default-edit-composer-runtime-core.js +2 -2
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +1 -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 +1 -1
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -1
- package/dist/runtime/utils/message-repository.d.ts.map +1 -1
- package/dist/runtime/utils/message-repository.js +4 -2
- package/dist/runtime/utils/message-repository.js.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +1 -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.map +1 -1
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +12 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/internal.d.ts +2 -1
- package/dist/runtimes/internal.js +2 -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 +44 -13
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts +32 -27
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js +2 -0
- package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
- package/dist/store/clients/no-op-composer-client.js +1 -0
- package/dist/store/clients/no-op-composer-client.js.map +1 -1
- package/dist/store/clients/runtime-adapter.js +3 -3
- package/dist/store/clients/runtime-adapter.js.map +1 -1
- package/dist/store/runtime-clients/thread-list-runtime-client.js +1 -0
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -1
- package/dist/store/runtime-clients/thread-runtime-client.js +17 -15
- package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -1
- package/dist/store/scopes/thread.d.ts +1 -0
- package/dist/store/scopes/thread.d.ts.map +1 -1
- package/dist/subscribable/subscribable.d.ts +3 -3
- package/dist/subscribable/subscribable.d.ts.map +1 -1
- package/dist/subscribable/subscribable.js +3 -3
- package/dist/subscribable/subscribable.js.map +1 -1
- package/package.json +8 -8
- package/src/adapters/thread-history.ts +8 -0
- package/src/internal.ts +1 -1
- package/src/model-context/frame/host.test.ts +47 -0
- package/src/model-context/frame/host.ts +46 -19
- package/src/model-context/types.ts +16 -6
- package/src/react/adapters/LocalStorageThreadListAdapter.tsx +17 -7
- package/src/react/client/Tools.ts +0 -7
- package/src/react/interactables-legacy/useAssistantInteractable.ts +1 -1
- package/src/react/interactables-legacy/useInteractableState.ts +3 -3
- package/src/react/model-context/useAssistantContext.ts +1 -1
- package/src/react/model-context/useAssistantDataUI.ts +1 -1
- package/src/react/model-context/useAssistantInstructions.ts +1 -1
- package/src/react/model-context/useAssistantTool.ts +2 -2
- package/src/react/model-context/useAssistantToolUI.ts +1 -1
- package/src/react/model-context/useAuiToolOverrides.ts +1 -1
- package/src/react/model-context/useInteractable.ts +1 -1
- package/src/react/model-context/useInteractableState.ts +2 -2
- package/src/react/primitive-hooks/useActionBarCopy.test.ts +2 -2
- package/src/react/primitive-hooks/useActionBarCopy.ts +3 -3
- package/src/react/primitive-hooks/useActionBarEdit.ts +1 -1
- package/src/react/primitive-hooks/useActionBarFeedback.ts +2 -2
- package/src/react/primitive-hooks/useActionBarReload.ts +1 -1
- package/src/react/primitive-hooks/useActionBarSpeak.ts +1 -1
- package/src/react/primitive-hooks/useActionBarStopSpeaking.ts +1 -1
- package/src/react/primitive-hooks/useBranchPickerNext.ts +1 -1
- package/src/react/primitive-hooks/useBranchPickerPrevious.ts +1 -1
- package/src/react/primitive-hooks/useComposerAddAttachment.ts +1 -1
- package/src/react/primitive-hooks/useComposerCancel.ts +1 -1
- package/src/react/primitive-hooks/useComposerDictate.ts +1 -1
- package/src/react/primitive-hooks/useComposerSend.ts +1 -1
- package/src/react/primitive-hooks/useEditComposerCancel.ts +1 -1
- package/src/react/primitive-hooks/useEditComposerSend.ts +1 -1
- package/src/react/primitive-hooks/useMessageBranching.ts +2 -2
- package/src/react/primitive-hooks/useMessageReload.ts +1 -1
- package/src/react/primitive-hooks/useSuggestionTrigger.ts +9 -9
- package/src/react/primitive-hooks/useThreadListItemArchive.ts +1 -1
- package/src/react/primitive-hooks/useThreadListItemDelete.ts +1 -1
- package/src/react/primitive-hooks/useThreadListItemTrigger.ts +1 -1
- package/src/react/primitive-hooks/useThreadListItemUnarchive.ts +1 -1
- package/src/react/primitive-hooks/useThreadListLoadMore.ts +1 -1
- package/src/react/primitive-hooks/useThreadListNew.ts +1 -1
- package/src/react/primitive-hooks/useVoice.ts +5 -5
- package/src/react/primitives/chainOfThought/ChainOfThoughtParts.tsx +1 -1
- package/src/react/primitives/composer/ComposerAttachments.tsx +1 -1
- package/src/react/primitives/composer/ComposerQueue.tsx +1 -3
- package/src/react/primitives/message/MessageAttachments.tsx +1 -3
- package/src/react/primitives/message/MessageParts.tsx +9 -9
- package/src/react/primitives/thread/ThreadMessages.tsx +1 -1
- package/src/react/primitives/thread/ThreadSuggestions.tsx +1 -1
- package/src/react/primitives/threadList/ThreadListItems.tsx +1 -1
- package/src/react/providers/AttachmentByIndexProvider.tsx +2 -2
- package/src/react/providers/ChainOfThoughtByIndicesProvider.tsx +1 -1
- package/src/react/providers/ChainOfThoughtPartByIndexProvider.tsx +2 -19
- package/src/react/providers/MessageByIdProvider.tsx +2 -2
- package/src/react/providers/MessageByIndexProvider.tsx +2 -2
- package/src/react/providers/PartByIndexProvider.tsx +2 -16
- package/src/react/providers/QueueItemByIndexProvider.tsx +1 -1
- package/src/react/providers/ReadonlyThreadProvider.tsx +1 -1
- package/src/react/providers/SuggestionByIndexProvider.tsx +1 -1
- package/src/react/providers/ThreadListItemByIndexProvider.tsx +1 -1
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +3 -3
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +20 -6
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.ts +34 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.test.tsx +32 -7
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +47 -16
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +5 -1
- package/src/react/runtimes/cloud/auiV0.ts +14 -0
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +90 -88
- package/src/react/runtimes/createRuntimeExtras.test.ts +1 -1
- package/src/react/runtimes/createRuntimeExtras.ts +1 -1
- package/src/react/runtimes/external-message-converter.test.ts +346 -0
- package/src/react/runtimes/external-message-converter.ts +1 -1
- package/src/react/runtimes/useLocalRuntime.test.tsx +43 -0
- package/src/react/types/scopes/tools.ts +0 -6
- package/src/react/utils/groupParts.ts +1 -7
- package/src/runtime/api/assistant-runtime.ts +4 -1
- package/src/runtime/api/attachment-runtime.ts +8 -2
- package/src/runtime/api/composer-runtime.ts +9 -5
- package/src/runtime/api/message-part-runtime.ts +10 -3
- package/src/runtime/api/message-runtime.ts +7 -2
- package/src/runtime/api/thread-list-item-runtime.ts +7 -2
- package/src/runtime/api/thread-list-runtime.ts +10 -2
- package/src/runtime/base/base-thread-runtime-core.ts +5 -1
- package/src/runtime/base/default-edit-composer-runtime-core.ts +14 -2
- package/src/runtime/base/default-thread-composer-runtime-core.ts +11 -1
- package/src/runtime/utils/message-repository.ts +19 -13
- 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 +15 -0
- package/src/runtimes/internal.ts +3 -0
- package/src/runtimes/local/local-thread-runtime-core.test.ts +596 -0
- package/src/runtimes/local/local-thread-runtime-core.ts +85 -21
- package/src/runtimes/local/should-continue.test.ts +122 -0
- package/src/runtimes/tool-invocations/ToolInvocationTracker.test.ts +9 -10
- package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +38 -32
- package/src/store/clients/model-context-client.test.ts +21 -1
- package/src/store/clients/runtime-adapter.ts +3 -3
- package/src/store/runtime-clients/thread-runtime-client.ts +2 -1
- package/src/store/scopes/thread.ts +1 -0
- package/src/subscribable/subscribable.ts +16 -8
- package/src/tests/MessageRepository.test.ts +12 -0
- package/src/tests/RemoteThreadListThreadListRuntimeCore-switchToThread-position.test.ts +121 -0
- package/src/tests/auiV0Encode.test.ts +74 -0
- package/src/tests/base-composer-runtime-core.test.ts +422 -0
- package/src/tests/external-store-thread-list-runtime-core.test.ts +6 -6
- package/src/tests/external-store-thread-runtime-core-adapter.test.ts +575 -0
- package/src/tests/external-store-thread-runtime-core.test.ts +55 -1
- package/src/tests/groupParts.test.ts +3 -48
- package/src/tests/OptimisticState-delete-crash.test.ts +0 -208
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuiToolOverrides.js","names":["useEffect","useRef","useAui","Tool","AuiToolOverride","Record","Partial","TArgs","TResult","AuiToolOverrides","useAuiToolOverrides","overrides","aui","overridesRef","current","modelContext","register","getModelContext","priority","tools"],"sources":["../../../src/react/model-context/useAuiToolOverrides.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { Tool } from \"assistant-stream\";\n\ntype AuiToolOverride<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n TResult = unknown,\n> = Partial<Tool<TArgs, TResult>>;\n\ntype AuiToolOverrides = Record<string, AuiToolOverride<any, any>>;\n\n/**\n * Overrides toolkit entries for the current assistant scope.\n *\n * This is intended for dynamic local-state tools whose model-facing contract is\n * declared in a `\"use generative\"` toolkit file with `execute: stubTool()`, but\n * whose actual executor must close over React state in the mounted component.\n * Keep the override keys stable after mount; dynamic key addition/removal is not\n * currently observed.\n * Overrides are registered at priority 1000, above toolkit defaults. Only one\n * mounted override provider may define a given tool name at a time.\n *\n * @deprecated Experimental, API may change.\n */\nexport function useAuiToolOverrides(overrides: AuiToolOverrides): void {\n const aui = useAui();\n const overridesRef = useRef(overrides);\n overridesRef.current = overrides;\n\n useEffect(() => {\n return aui.modelContext
|
|
1
|
+
{"version":3,"file":"useAuiToolOverrides.js","names":["useEffect","useRef","useAui","Tool","AuiToolOverride","Record","Partial","TArgs","TResult","AuiToolOverrides","useAuiToolOverrides","overrides","aui","overridesRef","current","modelContext","register","getModelContext","priority","tools"],"sources":["../../../src/react/model-context/useAuiToolOverrides.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport type { Tool } from \"assistant-stream\";\n\ntype AuiToolOverride<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n TResult = unknown,\n> = Partial<Tool<TArgs, TResult>>;\n\ntype AuiToolOverrides = Record<string, AuiToolOverride<any, any>>;\n\n/**\n * Overrides toolkit entries for the current assistant scope.\n *\n * This is intended for dynamic local-state tools whose model-facing contract is\n * declared in a `\"use generative\"` toolkit file with `execute: stubTool()`, but\n * whose actual executor must close over React state in the mounted component.\n * Keep the override keys stable after mount; dynamic key addition/removal is not\n * currently observed.\n * Overrides are registered at priority 1000, above toolkit defaults. Only one\n * mounted override provider may define a given tool name at a time.\n *\n * @deprecated Experimental, API may change.\n */\nexport function useAuiToolOverrides(overrides: AuiToolOverrides): void {\n const aui = useAui();\n const overridesRef = useRef(overrides);\n overridesRef.current = overrides;\n\n useEffect(() => {\n return aui.modelContext.register({\n getModelContext: () => ({\n priority: 1000,\n tools: overridesRef.current as Record<string, Tool<any, any>>,\n }),\n });\n }, [aui]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,SAAgBU,oBAAoBC,WAAmC;CACrE,MAAMC,MAAMV,OAAO;CACnB,MAAMW,eAAeZ,OAAOU,SAAS;CACrCE,aAAaC,UAAUH;CAEvBX,gBAAgB;EACd,OAAOY,IAAIG,aAAaC,SAAS,EAC/BC,wBAAwB;GACtBC,UAAU;GACVC,OAAON,aAAaC;EACtB,GACF,CAAC;CACH,GAAG,CAACF,GAAG,CAAC;AACV"}
|
|
@@ -30,7 +30,7 @@ const useInteractable = (name, config) => {
|
|
|
30
30
|
stateSchemaRef.current = config.stateSchema;
|
|
31
31
|
const initialStateRef = useRef(config.initialState);
|
|
32
32
|
initialStateRef.current = config.initialState;
|
|
33
|
-
const interactables = useAuiState(() => aui.unstable_interactables
|
|
33
|
+
const interactables = useAuiState(() => aui.unstable_interactables);
|
|
34
34
|
useEffect(() => {
|
|
35
35
|
return interactables.register({
|
|
36
36
|
id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInteractable.js","names":["useEffect","useId","useMemo","useRef","useAui","useAuiState","Unstable_InteractableStateSchema","ToolCallMessagePartComponent","unstable_getInteractableVersions","getInteractableVersions","interactableToolName","unstable_useInteractableState","useInteractableState","useJSONEqual","Unstable_InferInteractableState","TSchema","types","output","TOutput","Unstable_InteractableVersionInfo","state","TState","isLatest","restore","Unstable_InteractableConfig","description","stateSchema","initialState","id","updateRender","useInteractable","name","config","version","setState","updater","prev","isPending","error","flush","Promise","aui","autoId","replace","inPart","part","source","updateToolName","s","undefined","p","type","inferredId","toolName","result","Record","args","success","internalScope","stateSchemaRef","current","initialStateRef","interactables","unstable_interactables","register","scope","Parameters","myToolCallId","toolCallId","registeredState","methods","versionValue","versions","thread","messages","some","v","origin","mine","find","latestToolCallId","findLast","const","unstable_useInteractable"],"sources":["../../../src/react/model-context/useInteractable.ts"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useId, useMemo, useRef } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { Unstable_InteractableStateSchema } from \"../types/scopes/interactables\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport {\n unstable_getInteractableVersions as getInteractableVersions,\n interactableToolName,\n} from \"../../model-context/interactable-composer-metadata\";\nimport { unstable_useInteractableState as useInteractableState } from \"./useInteractableState\";\nimport { useJSONEqual } from \"../utils/useJSONEqual\";\n\n/**\n * The state type described by an interactable's `stateSchema`. Resolves the\n * output type of a StandardSchemaV1 schema (e.g. Zod); plain JSON Schema\n * falls back to `unknown`.\n */\nexport type Unstable_InferInteractableState<TSchema> = TSchema extends {\n \"~standard\": { types?: { output: infer TOutput } | undefined };\n}\n ? TOutput\n : unknown;\n\n/**\n * One message's version of an interactable, for components rendered inside\n * tool-call parts. Show `state` to display history; call `restore()` to set\n * the live instance back to it.\n */\nexport type Unstable_InteractableVersionInfo<TState> = {\n /** The interactable's state as it was at this message. */\n state: TState;\n /** Whether this message holds the instance's most recent tool-driven version. */\n isLatest: boolean;\n /** Sets the live state back to this version. */\n restore: () => void;\n};\n\n/**\n * Unstable / Experimental — the interactables API is still evolving and may change in any release.\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport type Unstable_InteractableConfig<\n TSchema extends Unstable_InteractableStateSchema,\n> = {\n description: string;\n stateSchema: TSchema;\n initialState: Unstable_InferInteractableState<TSchema>;\n /** Unique instance ID; required to address this instance when multiple interactables share a name. Auto-generated if omitted. */\n id?: string | undefined;\n /**\n * Component installed as the tool UI for this interactable's `update_{name}`\n * tool calls, so a model edit re-renders the interactable at the message\n * that made it instead of only mutating an earlier one. Prefer\n * `unstable_interactableTool`, which wires this up. Pass a stable component reference;\n * changing identity re-registers the tool UI.\n */\n updateRender?: ToolCallMessagePartComponent | undefined;\n};\n\nconst useInteractable = <TSchema extends Unstable_InteractableStateSchema>(\n name: string,\n config: Unstable_InteractableConfig<TSchema>,\n): readonly [\n Unstable_InferInteractableState<TSchema>,\n {\n id: string;\n /**\n * This message's version of the instance, when rendered inside a\n * tool-created interactable message part; `undefined` elsewhere.\n */\n version:\n | Unstable_InteractableVersionInfo<\n Unstable_InferInteractableState<TSchema>\n >\n | undefined;\n setState: (\n updater:\n | Unstable_InferInteractableState<TSchema>\n | ((\n prev: Unstable_InferInteractableState<TSchema>,\n ) => Unstable_InferInteractableState<TSchema>),\n ) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] => {\n const aui = useAui();\n\n const autoId = useId().replace(/[^a-zA-Z0-9]/g, \"\");\n\n // Whether this component renders inside a message part is fixed for its\n // lifetime, so conditioning the selectors on it is safe.\n const inPart = aui.part.source != null;\n const updateToolName = interactableToolName(name);\n const part = useAuiState((s) => {\n if (!inPart) return undefined;\n const p = s.part;\n return p.type === \"tool-call\" ? p : undefined;\n });\n\n // Inside an update_{name} part, the instance id comes from the call itself:\n // the result's resolved id (covers id-less calls), or the id argument.\n let inferredId: string | undefined;\n if (part?.toolName === updateToolName) {\n const result = part.result as Record<string, unknown> | undefined;\n const args = part.args as Record<string, unknown> | undefined;\n if (result?.success !== false) {\n if (typeof result?.id === \"string\") inferredId = result.id;\n else if (typeof args?.id === \"string\") inferredId = args.id;\n }\n }\n\n const id = config.id ?? inferredId ?? autoId;\n const internalScope =\n part?.toolName === name || part?.toolName === updateToolName\n ? \"thread\"\n : undefined;\n\n const stateSchemaRef = useRef(config.stateSchema);\n stateSchemaRef.current = config.stateSchema;\n const initialStateRef = useRef(config.initialState);\n initialStateRef.current = config.initialState;\n\n const interactables = useAuiState(() => aui.unstable_interactables());\n\n useEffect(() => {\n return interactables.register({\n id,\n name,\n description: config.description,\n stateSchema: stateSchemaRef.current,\n initialState: initialStateRef.current,\n updateRender: config.updateRender,\n ...(internalScope ? { scope: internalScope } : {}),\n } as Parameters<typeof interactables.register>[0] & {\n scope?: \"thread\" | undefined;\n });\n }, [\n interactables,\n id,\n name,\n config.description,\n internalScope,\n config.updateRender,\n ]);\n\n const myToolCallId = part?.toolCallId;\n\n const [registeredState, methods] =\n useInteractableState<Unstable_InferInteractableState<TSchema>>(id);\n const { setState } = methods;\n\n const versionValue = useAuiState(\n useJSONEqual((s) => {\n if (!internalScope || !myToolCallId) return undefined;\n const versions = getInteractableVersions(s.thread.messages, id, name);\n if (!versions.some((v) => v.origin === \"create\" && v.toolCallId === id)) {\n return undefined;\n }\n const mine = versions.find((v) => v.toolCallId === myToolCallId);\n if (!mine) return undefined;\n const latestToolCallId = versions.findLast(\n (v) => v.toolCallId !== undefined,\n )?.toolCallId;\n return { state: mine.state, isLatest: latestToolCallId === myToolCallId };\n }),\n );\n\n const version = useMemo(\n () =>\n versionValue && {\n state: versionValue.state as Unstable_InferInteractableState<TSchema>,\n isLatest: versionValue.isLatest,\n restore: () =>\n setState(\n versionValue.state as Unstable_InferInteractableState<TSchema>,\n ),\n },\n [versionValue, setState],\n );\n\n const state =\n registeredState === undefined ? config.initialState : registeredState;\n\n return [state, { id, version, ...methods }] as const;\n};\n\n/**\n * Registers an interactable with the AI assistant and returns its live state,\n * like `useState` that the model can also read and update.\n *\n * Call this once per place that shows the interactable. Other components can\n * read and write the same instance by passing its `id` to\n * `unstable_useInteractableState`.\n *\n * For tool-created interactables rendered inside tool-call message parts,\n * `version` carries this message's version of the instance — its state as of\n * that point in the conversation, whether it is the most recent tool-driven\n * version, and a `restore()` back to it. Whether older messages render frozen history or stay\n * live-editable is the component's choice. Inside an `update_{name}` part the\n * instance `id` is inferred from the call, so the same component works at the\n * creating call and at update calls.\n *\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport const unstable_useInteractable: <\n TSchema extends Unstable_InteractableStateSchema,\n>(\n name: string,\n config: Unstable_InteractableConfig<TSchema>,\n) => readonly [\n Unstable_InferInteractableState<TSchema>,\n {\n id: string;\n version:\n | Unstable_InteractableVersionInfo<\n Unstable_InferInteractableState<TSchema>\n >\n | undefined;\n setState: (\n updater:\n | Unstable_InferInteractableState<TSchema>\n | ((\n prev: Unstable_InferInteractableState<TSchema>,\n ) => Unstable_InferInteractableState<TSchema>),\n ) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] = useInteractable;\n"],"mappings":";;;;;;;AA4DA,MAAM8B,mBACJC,MACAC,WAyBG;CACH,MAAMS,MAAMrC,OAAO;CAEnB,MAAMsC,SAASzC,MAAM,CAAC,CAAC0C,QAAQ,iBAAiB,EAAE;CAIlD,MAAMC,SAASH,IAAII,KAAKC,UAAU;CAClC,MAAMC,iBAAiBrC,qBAAqBqB,IAAI;CAChD,MAAMc,OAAOxC,aAAa2C,MAAM;EAC9B,IAAI,CAACJ,QAAQ,OAAOK,KAAAA;EACpB,MAAMC,IAAIF,EAAEH;EACZ,OAAOK,EAAEC,SAAS,cAAcD,IAAID,KAAAA;CACtC,CAAC;CAID,IAAIG;CACJ,IAAIP,MAAMQ,aAAaN,gBAAgB;EACrC,MAAMO,SAAST,KAAKS;EACpB,MAAME,OAAOX,KAAKW;EAClB,IAAIF,QAAQG,YAAY,OAClB;OAAA,OAAOH,QAAQ1B,OAAO,UAAUwB,aAAaE,OAAO1B;QACnD,IAAI,OAAO4B,MAAM5B,OAAO,UAAUwB,aAAaI,KAAK5B;EAAAA;CAE7D;CAEA,MAAMA,KAAKI,OAAOJ,MAAMwB,cAAcV;CACtC,MAAMgB,gBACJb,MAAMQ,aAAatB,QAAQc,MAAMQ,aAAaN,iBAC1C,WACAE,KAAAA;CAEN,MAAMU,iBAAiBxD,OAAO6B,OAAON,WAAW;CAChDiC,eAAeC,UAAU5B,OAAON;CAChC,MAAMmC,kBAAkB1D,OAAO6B,OAAOL,YAAY;CAClDkC,gBAAgBD,UAAU5B,OAAOL;CAEjC,MAAMmC,gBAAgBzD,kBAAkBoC,IAAIsB,uBAAuB,CAAC;CAEpE/D,gBAAgB;EACd,OAAO8D,cAAcE,SAAS;GAC5BpC;GACAG;GACAN,aAAaO,OAAOP;GACpBC,aAAaiC,eAAeC;GAC5BjC,cAAckC,gBAAgBD;GAC9B/B,cAAcG,OAAOH;GACrB,GAAI6B,gBAAgB,EAAEO,OAAOP,cAAc,IAAI,CAAC;EAClD,CAEC;CACH,GAAG;EACDI;EACAlC;EACAG;EACAC,OAAOP;EACPiC;EACA1B,OAAOH;CAAY,CACpB;CAED,MAAMsC,eAAetB,MAAMuB;CAE3B,MAAM,CAACC,iBAAiBC,WACtB1D,8BAA+DgB,EAAE;CACnE,MAAM,EAAEM,aAAaoC;CAErB,MAAMC,eAAelE,YACnBQ,cAAcmC,QAAM;EAClB,IAAI,CAACU,iBAAiB,CAACS,cAAc,OAAOlB,KAAAA;EAC5C,MAAMuB,WAAW/D,iCAAwBuC,IAAEyB,OAAOC,UAAU9C,IAAIG,IAAI;EACpE,IAAI,CAACyC,SAASG,MAAMC,MAAMA,EAAEC,WAAW,YAAYD,EAAER,eAAexC,EAAE,GACpE;EAEF,MAAMkD,OAAON,SAASO,MAAMH,QAAMA,IAAER,eAAeD,YAAY;EAC/D,IAAI,CAACW,MAAM,OAAO7B,KAAAA;EAClB,MAAM+B,mBAAmBR,SAASS,UAC/BL,QAAMA,IAAER,eAAenB,KAAAA,CAC1B,CAAC,EAAEmB;EACH,OAAO;GAAEhD,OAAO0D,KAAK1D;GAAOE,UAAU0D,qBAAqBb;EAAa;CAC1E,CAAC,CACH;CAEA,MAAMlC,UAAU/B,cAEZqE,gBAAgB;EACdnD,OAAOmD,aAAanD;EACpBE,UAAUiD,aAAajD;EACvBC,eACEW,SACEqC,aAAanD,KACf;CACJ,GACF,CAACmD,cAAcrC,QAAQ,CACzB;CAKA,OAAO,CAFLmC,oBAAoBpB,KAAAA,IAAYjB,OAAOL,eAAe0C,iBAEzC;EAAEzC;EAAIK;EAAS,GAAGqC;CAAQ,CAAC;AAC5C;;;;;;;;;;;;;;;;;;;AAoBA,MAAaa,2BAyBTrD"}
|
|
1
|
+
{"version":3,"file":"useInteractable.js","names":["useEffect","useId","useMemo","useRef","useAui","useAuiState","Unstable_InteractableStateSchema","ToolCallMessagePartComponent","unstable_getInteractableVersions","getInteractableVersions","interactableToolName","unstable_useInteractableState","useInteractableState","useJSONEqual","Unstable_InferInteractableState","TSchema","types","output","TOutput","Unstable_InteractableVersionInfo","state","TState","isLatest","restore","Unstable_InteractableConfig","description","stateSchema","initialState","id","updateRender","useInteractable","name","config","version","setState","updater","prev","isPending","error","flush","Promise","aui","autoId","replace","inPart","part","source","updateToolName","s","undefined","p","type","inferredId","toolName","result","Record","args","success","internalScope","stateSchemaRef","current","initialStateRef","interactables","unstable_interactables","register","scope","Parameters","myToolCallId","toolCallId","registeredState","methods","versionValue","versions","thread","messages","some","v","origin","mine","find","latestToolCallId","findLast","const","unstable_useInteractable"],"sources":["../../../src/react/model-context/useInteractable.ts"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useId, useMemo, useRef } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { Unstable_InteractableStateSchema } from \"../types/scopes/interactables\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport {\n unstable_getInteractableVersions as getInteractableVersions,\n interactableToolName,\n} from \"../../model-context/interactable-composer-metadata\";\nimport { unstable_useInteractableState as useInteractableState } from \"./useInteractableState\";\nimport { useJSONEqual } from \"../utils/useJSONEqual\";\n\n/**\n * The state type described by an interactable's `stateSchema`. Resolves the\n * output type of a StandardSchemaV1 schema (e.g. Zod); plain JSON Schema\n * falls back to `unknown`.\n */\nexport type Unstable_InferInteractableState<TSchema> = TSchema extends {\n \"~standard\": { types?: { output: infer TOutput } | undefined };\n}\n ? TOutput\n : unknown;\n\n/**\n * One message's version of an interactable, for components rendered inside\n * tool-call parts. Show `state` to display history; call `restore()` to set\n * the live instance back to it.\n */\nexport type Unstable_InteractableVersionInfo<TState> = {\n /** The interactable's state as it was at this message. */\n state: TState;\n /** Whether this message holds the instance's most recent tool-driven version. */\n isLatest: boolean;\n /** Sets the live state back to this version. */\n restore: () => void;\n};\n\n/**\n * Unstable / Experimental — the interactables API is still evolving and may change in any release.\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport type Unstable_InteractableConfig<\n TSchema extends Unstable_InteractableStateSchema,\n> = {\n description: string;\n stateSchema: TSchema;\n initialState: Unstable_InferInteractableState<TSchema>;\n /** Unique instance ID; required to address this instance when multiple interactables share a name. Auto-generated if omitted. */\n id?: string | undefined;\n /**\n * Component installed as the tool UI for this interactable's `update_{name}`\n * tool calls, so a model edit re-renders the interactable at the message\n * that made it instead of only mutating an earlier one. Prefer\n * `unstable_interactableTool`, which wires this up. Pass a stable component reference;\n * changing identity re-registers the tool UI.\n */\n updateRender?: ToolCallMessagePartComponent | undefined;\n};\n\nconst useInteractable = <TSchema extends Unstable_InteractableStateSchema>(\n name: string,\n config: Unstable_InteractableConfig<TSchema>,\n): readonly [\n Unstable_InferInteractableState<TSchema>,\n {\n id: string;\n /**\n * This message's version of the instance, when rendered inside a\n * tool-created interactable message part; `undefined` elsewhere.\n */\n version:\n | Unstable_InteractableVersionInfo<\n Unstable_InferInteractableState<TSchema>\n >\n | undefined;\n setState: (\n updater:\n | Unstable_InferInteractableState<TSchema>\n | ((\n prev: Unstable_InferInteractableState<TSchema>,\n ) => Unstable_InferInteractableState<TSchema>),\n ) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] => {\n const aui = useAui();\n\n const autoId = useId().replace(/[^a-zA-Z0-9]/g, \"\");\n\n // Whether this component renders inside a message part is fixed for its\n // lifetime, so conditioning the selectors on it is safe.\n const inPart = aui.part.source != null;\n const updateToolName = interactableToolName(name);\n const part = useAuiState((s) => {\n if (!inPart) return undefined;\n const p = s.part;\n return p.type === \"tool-call\" ? p : undefined;\n });\n\n // Inside an update_{name} part, the instance id comes from the call itself:\n // the result's resolved id (covers id-less calls), or the id argument.\n let inferredId: string | undefined;\n if (part?.toolName === updateToolName) {\n const result = part.result as Record<string, unknown> | undefined;\n const args = part.args as Record<string, unknown> | undefined;\n if (result?.success !== false) {\n if (typeof result?.id === \"string\") inferredId = result.id;\n else if (typeof args?.id === \"string\") inferredId = args.id;\n }\n }\n\n const id = config.id ?? inferredId ?? autoId;\n const internalScope =\n part?.toolName === name || part?.toolName === updateToolName\n ? \"thread\"\n : undefined;\n\n const stateSchemaRef = useRef(config.stateSchema);\n stateSchemaRef.current = config.stateSchema;\n const initialStateRef = useRef(config.initialState);\n initialStateRef.current = config.initialState;\n\n const interactables = useAuiState(() => aui.unstable_interactables);\n\n useEffect(() => {\n return interactables.register({\n id,\n name,\n description: config.description,\n stateSchema: stateSchemaRef.current,\n initialState: initialStateRef.current,\n updateRender: config.updateRender,\n ...(internalScope ? { scope: internalScope } : {}),\n } as Parameters<typeof interactables.register>[0] & {\n scope?: \"thread\" | undefined;\n });\n }, [\n interactables,\n id,\n name,\n config.description,\n internalScope,\n config.updateRender,\n ]);\n\n const myToolCallId = part?.toolCallId;\n\n const [registeredState, methods] =\n useInteractableState<Unstable_InferInteractableState<TSchema>>(id);\n const { setState } = methods;\n\n const versionValue = useAuiState(\n useJSONEqual((s) => {\n if (!internalScope || !myToolCallId) return undefined;\n const versions = getInteractableVersions(s.thread.messages, id, name);\n if (!versions.some((v) => v.origin === \"create\" && v.toolCallId === id)) {\n return undefined;\n }\n const mine = versions.find((v) => v.toolCallId === myToolCallId);\n if (!mine) return undefined;\n const latestToolCallId = versions.findLast(\n (v) => v.toolCallId !== undefined,\n )?.toolCallId;\n return { state: mine.state, isLatest: latestToolCallId === myToolCallId };\n }),\n );\n\n const version = useMemo(\n () =>\n versionValue && {\n state: versionValue.state as Unstable_InferInteractableState<TSchema>,\n isLatest: versionValue.isLatest,\n restore: () =>\n setState(\n versionValue.state as Unstable_InferInteractableState<TSchema>,\n ),\n },\n [versionValue, setState],\n );\n\n const state =\n registeredState === undefined ? config.initialState : registeredState;\n\n return [state, { id, version, ...methods }] as const;\n};\n\n/**\n * Registers an interactable with the AI assistant and returns its live state,\n * like `useState` that the model can also read and update.\n *\n * Call this once per place that shows the interactable. Other components can\n * read and write the same instance by passing its `id` to\n * `unstable_useInteractableState`.\n *\n * For tool-created interactables rendered inside tool-call message parts,\n * `version` carries this message's version of the instance — its state as of\n * that point in the conversation, whether it is the most recent tool-driven\n * version, and a `restore()` back to it. Whether older messages render frozen history or stay\n * live-editable is the component's choice. Inside an `update_{name}` part the\n * instance `id` is inferred from the call, so the same component works at the\n * creating call and at update calls.\n *\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport const unstable_useInteractable: <\n TSchema extends Unstable_InteractableStateSchema,\n>(\n name: string,\n config: Unstable_InteractableConfig<TSchema>,\n) => readonly [\n Unstable_InferInteractableState<TSchema>,\n {\n id: string;\n version:\n | Unstable_InteractableVersionInfo<\n Unstable_InferInteractableState<TSchema>\n >\n | undefined;\n setState: (\n updater:\n | Unstable_InferInteractableState<TSchema>\n | ((\n prev: Unstable_InferInteractableState<TSchema>,\n ) => Unstable_InferInteractableState<TSchema>),\n ) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] = useInteractable;\n"],"mappings":";;;;;;;AA4DA,MAAM8B,mBACJC,MACAC,WAyBG;CACH,MAAMS,MAAMrC,OAAO;CAEnB,MAAMsC,SAASzC,MAAM,CAAC,CAAC0C,QAAQ,iBAAiB,EAAE;CAIlD,MAAMC,SAASH,IAAII,KAAKC,UAAU;CAClC,MAAMC,iBAAiBrC,qBAAqBqB,IAAI;CAChD,MAAMc,OAAOxC,aAAa2C,MAAM;EAC9B,IAAI,CAACJ,QAAQ,OAAOK,KAAAA;EACpB,MAAMC,IAAIF,EAAEH;EACZ,OAAOK,EAAEC,SAAS,cAAcD,IAAID,KAAAA;CACtC,CAAC;CAID,IAAIG;CACJ,IAAIP,MAAMQ,aAAaN,gBAAgB;EACrC,MAAMO,SAAST,KAAKS;EACpB,MAAME,OAAOX,KAAKW;EAClB,IAAIF,QAAQG,YAAY,OAClB;OAAA,OAAOH,QAAQ1B,OAAO,UAAUwB,aAAaE,OAAO1B;QACnD,IAAI,OAAO4B,MAAM5B,OAAO,UAAUwB,aAAaI,KAAK5B;EAAAA;CAE7D;CAEA,MAAMA,KAAKI,OAAOJ,MAAMwB,cAAcV;CACtC,MAAMgB,gBACJb,MAAMQ,aAAatB,QAAQc,MAAMQ,aAAaN,iBAC1C,WACAE,KAAAA;CAEN,MAAMU,iBAAiBxD,OAAO6B,OAAON,WAAW;CAChDiC,eAAeC,UAAU5B,OAAON;CAChC,MAAMmC,kBAAkB1D,OAAO6B,OAAOL,YAAY;CAClDkC,gBAAgBD,UAAU5B,OAAOL;CAEjC,MAAMmC,gBAAgBzD,kBAAkBoC,IAAIsB,sBAAsB;CAElE/D,gBAAgB;EACd,OAAO8D,cAAcE,SAAS;GAC5BpC;GACAG;GACAN,aAAaO,OAAOP;GACpBC,aAAaiC,eAAeC;GAC5BjC,cAAckC,gBAAgBD;GAC9B/B,cAAcG,OAAOH;GACrB,GAAI6B,gBAAgB,EAAEO,OAAOP,cAAc,IAAI,CAAC;EAClD,CAEC;CACH,GAAG;EACDI;EACAlC;EACAG;EACAC,OAAOP;EACPiC;EACA1B,OAAOH;CAAY,CACpB;CAED,MAAMsC,eAAetB,MAAMuB;CAE3B,MAAM,CAACC,iBAAiBC,WACtB1D,8BAA+DgB,EAAE;CACnE,MAAM,EAAEM,aAAaoC;CAErB,MAAMC,eAAelE,YACnBQ,cAAcmC,QAAM;EAClB,IAAI,CAACU,iBAAiB,CAACS,cAAc,OAAOlB,KAAAA;EAC5C,MAAMuB,WAAW/D,iCAAwBuC,IAAEyB,OAAOC,UAAU9C,IAAIG,IAAI;EACpE,IAAI,CAACyC,SAASG,MAAMC,MAAMA,EAAEC,WAAW,YAAYD,EAAER,eAAexC,EAAE,GACpE;EAEF,MAAMkD,OAAON,SAASO,MAAMH,QAAMA,IAAER,eAAeD,YAAY;EAC/D,IAAI,CAACW,MAAM,OAAO7B,KAAAA;EAClB,MAAM+B,mBAAmBR,SAASS,UAC/BL,QAAMA,IAAER,eAAenB,KAAAA,CAC1B,CAAC,EAAEmB;EACH,OAAO;GAAEhD,OAAO0D,KAAK1D;GAAOE,UAAU0D,qBAAqBb;EAAa;CAC1E,CAAC,CACH;CAEA,MAAMlC,UAAU/B,cAEZqE,gBAAgB;EACdnD,OAAOmD,aAAanD;EACpBE,UAAUiD,aAAajD;EACvBC,eACEW,SACEqC,aAAanD,KACf;CACJ,GACF,CAACmD,cAAcrC,QAAQ,CACzB;CAKA,OAAO,CAFLmC,oBAAoBpB,KAAAA,IAAYjB,OAAOL,eAAe0C,iBAEzC;EAAEzC;EAAIK;EAAS,GAAGqC;CAAQ,CAAC;AAC5C;;;;;;;;;;;;;;;;;;;AAoBA,MAAaa,2BAyBTrD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
3
|
+
import "@assistant-ui/tap/react-shim";
|
|
3
4
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
4
5
|
//#region src/react/model-context/useInteractableState.ts
|
|
5
6
|
const useInteractableState = (id) => {
|
|
@@ -22,7 +23,7 @@ const useInteractableState = (id) => {
|
|
|
22
23
|
let t2;
|
|
23
24
|
if ($[4] !== aui || $[5] !== id) {
|
|
24
25
|
t2 = (updater) => {
|
|
25
|
-
aui.unstable_interactables
|
|
26
|
+
aui.unstable_interactables.setState(id, (prev) => {
|
|
26
27
|
if (typeof updater === "function") return updater(prev);
|
|
27
28
|
return updater;
|
|
28
29
|
});
|
|
@@ -34,7 +35,7 @@ const useInteractableState = (id) => {
|
|
|
34
35
|
const setState = t2;
|
|
35
36
|
let t3;
|
|
36
37
|
if ($[7] !== aui) {
|
|
37
|
-
t3 = () => aui.unstable_interactables
|
|
38
|
+
t3 = () => aui.unstable_interactables.flush();
|
|
38
39
|
$[7] = aui;
|
|
39
40
|
$[8] = t3;
|
|
40
41
|
} else t3 = $[8];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInteractableState.js","names":["c","_c","useCallback","useAui","useAuiState","StateUpdater","TState","prev","useInteractableState","id","$","aui","t0","s","unstable_interactables","definitions","state","t1","s_0","persistence","persistenceStatus","t2","updater","setState","t3","flush","t4","isPending","t5","error","t6","t7","unstable_useInteractableState","Promise"],"sources":["../../../src/react/model-context/useInteractableState.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\ntype StateUpdater<TState> = TState | ((prev: TState) => TState);\n\nconst useInteractableState = <TState>(\n id: string,\n): [\n TState | undefined,\n {\n setState: (updater: StateUpdater<TState>) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] => {\n const aui = useAui();\n\n const state = useAuiState(\n (s) => s.unstable_interactables.definitions[id]?.state,\n ) as TState | undefined;\n\n const persistenceStatus = useAuiState(\n (s) => s.unstable_interactables.persistence[id],\n );\n\n const setState = useCallback(\n (updater: StateUpdater<TState>) => {\n aui.unstable_interactables
|
|
1
|
+
{"version":3,"file":"useInteractableState.js","names":["c","_c","useCallback","useAui","useAuiState","StateUpdater","TState","prev","useInteractableState","id","$","aui","t0","s","unstable_interactables","definitions","state","t1","s_0","persistence","persistenceStatus","t2","updater","setState","t3","flush","t4","isPending","t5","error","t6","t7","unstable_useInteractableState","Promise"],"sources":["../../../src/react/model-context/useInteractableState.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\ntype StateUpdater<TState> = TState | ((prev: TState) => TState);\n\nconst useInteractableState = <TState>(\n id: string,\n): [\n TState | undefined,\n {\n setState: (updater: StateUpdater<TState>) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] => {\n const aui = useAui();\n\n const state = useAuiState(\n (s) => s.unstable_interactables.definitions[id]?.state,\n ) as TState | undefined;\n\n const persistenceStatus = useAuiState(\n (s) => s.unstable_interactables.persistence[id],\n );\n\n const setState = useCallback(\n (updater: StateUpdater<TState>) => {\n aui.unstable_interactables.setState(id, (prev) => {\n if (typeof updater === \"function\") {\n return (updater as (prev: TState) => TState)(prev as TState);\n }\n return updater;\n });\n },\n [aui, id],\n );\n\n const flush = useCallback(() => aui.unstable_interactables.flush(), [aui]);\n\n return [\n state,\n {\n setState,\n isPending: persistenceStatus?.isPending ?? false,\n error: persistenceStatus?.error,\n flush,\n },\n ];\n};\n\n/**\n * Reads and writes the state of an interactable registered elsewhere, by id.\n *\n * Use this from secondary readers (children, siblings); the owning component\n * registers with `unstable_useInteractable`, which returns state directly. Returns\n * `undefined` until the owning interactable is registered.\n *\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport const unstable_useInteractableState: <TState>(id: string) => [\n TState | undefined,\n {\n setState: (updater: StateUpdater<TState>) => void;\n isPending: boolean;\n error: unknown;\n flush: () => Promise<void>;\n },\n] = useInteractableState;\n"],"mappings":";;;;;AAOA,MAAMQ,wBAAuBC,OAAA;CAAA,MAAAC,IAAAT,EAAA,EAAA;CAW3B,MAAAU,MAAYR,OAAO;CAAE,IAAAS;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAGnBG,MAAAC,MAAOA,EAACC,uBAAuBC,YAAaN,GAAU,EAAAO;EAAAN,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CADxD,MAAAM,QAAcZ,YACZQ,EACF;CAAwB,IAAAK;CAAA,IAAAP,EAAA,OAAAD,IAAA;EAGtBQ,MAAAC,QAAOL,IAACC,uBAAuBK,YAAaV;EAAGC,EAAA,KAAAD;EAAAC,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CADjD,MAAAU,oBAA0BhB,YACxBa,EACF;CAAE,IAAAI;CAAA,IAAAX,EAAA,OAAAC,OAAAD,EAAA,OAAAD,IAAA;EAGAY,MAAAC,YAAA;GACEX,IAAGG,uBAAuBS,SAAUd,KAAIF,SAAA;IACtC,IAAI,OAAOe,YAAY,YAAU,OACvBA,QAAqCf,IAAc;IAC5D,OACMe;GAAO,CACf;EAAC;EACHZ,EAAA,KAAAC;EAAAD,EAAA,KAAAD;EAAAC,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CARH,MAAAa,WAAiBF;CAUf,IAAAG;CAAA,IAAAd,EAAA,OAAAC,KAAA;EAEwBa,WAAMb,IAAGG,uBAAuBW,MAAO;EAACf,EAAA,KAAAC;EAAAD,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAAlE,MAAAe,QAAcD;CAMC,MAAAE,KAAAN,mBAAiBO,aAAjB;CACJ,MAAAC,KAAAR,mBAAiBS;CAAO,IAAAC;CAAA,IAAApB,EAAA,OAAAe,SAAAf,EAAA,QAAAa,YAAAb,EAAA,QAAAgB,MAAAhB,EAAA,QAAAkB,IAAA;EAHjCE,KAAA;GAAAP;GAAAI,WAEaD;GAAqCG,OACzCD;GAAwBH;EAEjC;EAACf,EAAA,KAAAe;EAAAf,EAAA,MAAAa;EAAAb,EAAA,MAAAgB;EAAAhB,EAAA,MAAAkB;EAAAlB,EAAA,MAAAoB;CAAA,OAAAA,KAAApB,EAAA;CAAA,IAAAqB;CAAA,IAAArB,EAAA,QAAAM,SAAAN,EAAA,QAAAoB,IAAA;EAPIC,KAAA,CACLf,OACAc,EAKC;EACFpB,EAAA,MAAAM;EAAAN,EAAA,MAAAoB;EAAApB,EAAA,MAAAqB;CAAA,OAAAA,KAAArB,EAAA;CAAA,OARMqB;AAQN;;;;;;;;;;AAYH,MAAaC,gCAQTxB"}
|
|
@@ -2,6 +2,7 @@ import { unstable_getInteractableVersions } from "../../model-context/interactab
|
|
|
2
2
|
import { unstable_useInteractableState } from "./useInteractableState.js";
|
|
3
3
|
import { useJSONEqual } from "../utils/useJSONEqual.js";
|
|
4
4
|
import { useAuiState } from "@assistant-ui/store";
|
|
5
|
+
import "@assistant-ui/tap/react-shim";
|
|
5
6
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
6
7
|
//#region src/react/model-context/useInteractableVersions.ts
|
|
7
8
|
const useInteractableVersions = (id, name) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInteractableVersions.js","names":["useMemo","useAuiState","unstable_getInteractableVersions","getInteractableVersions","Unstable_InteractableVersion","unstable_useInteractableState","useInteractableState","useJSONEqual","useInteractableVersions","id","name","$","_c","t0","s","thread","messages","versions","t1","setState","t2","t3","v","state","TState","restore","map","unstable_useInteractableVersions","Omit"],"sources":["../../../src/react/model-context/useInteractableVersions.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport {\n unstable_getInteractableVersions as getInteractableVersions,\n type Unstable_InteractableVersion,\n} from \"../../model-context/interactable-composer-metadata\";\nimport { unstable_useInteractableState as useInteractableState } from \"./useInteractableState\";\nimport { useJSONEqual } from \"../utils/useJSONEqual\";\n\nconst useInteractableVersions = <TState = unknown>(\n id: string,\n name: string,\n): (Omit<Unstable_InteractableVersion, \"state\"> & {\n state: TState;\n restore: () => void;\n})[] => {\n const versions = useAuiState(\n useJSONEqual((s) => getInteractableVersions(s.thread.messages, id, name)),\n );\n const [, { setState }] = useInteractableState<TState>(id);\n\n return useMemo(\n () =>\n versions.map((v) => ({\n ...v,\n state: v.state as TState,\n restore: () => setState(v.state as TState),\n })),\n [versions, setState],\n );\n};\n\n/**\n * Every version of a tool-created interactable recorded in the current\n * thread, oldest first: the creating tool call, each user edit, and each\n * `update_*` call. Each entry carries the full state as of that version and a\n * `restore()` that sets the live instance back to it — enough for a version\n * picker like an artifact's history dropdown.\n *\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport const unstable_useInteractableVersions: <TState = unknown>(\n id: string,\n name: string,\n) => (Omit<Unstable_InteractableVersion, \"state\"> & {\n state: TState;\n restore: () => void;\n})[] = useInteractableVersions;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useInteractableVersions.js","names":["useMemo","useAuiState","unstable_getInteractableVersions","getInteractableVersions","Unstable_InteractableVersion","unstable_useInteractableState","useInteractableState","useJSONEqual","useInteractableVersions","id","name","$","_c","t0","s","thread","messages","versions","t1","setState","t2","t3","v","state","TState","restore","map","unstable_useInteractableVersions","Omit"],"sources":["../../../src/react/model-context/useInteractableVersions.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport {\n unstable_getInteractableVersions as getInteractableVersions,\n type Unstable_InteractableVersion,\n} from \"../../model-context/interactable-composer-metadata\";\nimport { unstable_useInteractableState as useInteractableState } from \"./useInteractableState\";\nimport { useJSONEqual } from \"../utils/useJSONEqual\";\n\nconst useInteractableVersions = <TState = unknown>(\n id: string,\n name: string,\n): (Omit<Unstable_InteractableVersion, \"state\"> & {\n state: TState;\n restore: () => void;\n})[] => {\n const versions = useAuiState(\n useJSONEqual((s) => getInteractableVersions(s.thread.messages, id, name)),\n );\n const [, { setState }] = useInteractableState<TState>(id);\n\n return useMemo(\n () =>\n versions.map((v) => ({\n ...v,\n state: v.state as TState,\n restore: () => setState(v.state as TState),\n })),\n [versions, setState],\n );\n};\n\n/**\n * Every version of a tool-created interactable recorded in the current\n * thread, oldest first: the creating tool call, each user edit, and each\n * `update_*` call. Each entry carries the full state as of that version and a\n * `restore()` that sets the live instance back to it — enough for a version\n * picker like an artifact's history dropdown.\n *\n * @deprecated Unstable / Experimental (not actually removed).\n */\nexport const unstable_useInteractableVersions: <TState = unknown>(\n id: string,\n name: string,\n) => (Omit<Unstable_InteractableVersion, \"state\"> & {\n state: TState;\n restore: () => void;\n})[] = useInteractableVersions;\n"],"mappings":";;;;;;;AASA,MAAMQ,2BAA0BC,IAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAF,MAAAE,EAAA,OAAAD,MAAA;EAQfG,MAAAC,MAAOX,iCAAwBW,EAACC,OAAOC,UAAWP,IAAIC,IAAI;EAACC,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAD1E,MAAAM,WAAiBhB,YACfM,aAAaM,EAA2D,CAC1E;CACA,MAAA,GAAAK,MAAyBZ,8BAA6BG,EAAE;CAA/C,MAAA,EAAAU,aAAAD;CAAY,IAAAE;CAAA,IAAAT,EAAA,OAAAQ,YAAAR,EAAA,OAAAM,UAAA;EAAA,IAAAI;EAAA,IAAAV,EAAA,OAAAQ,UAAA;GAIJE,MAAAC,OAAQ;IAAA,GAChBA;IAACC,OACGD,EAACC;IAAgBE,eACTN,SAASG,EAACC,KAAgB;GAC3C;GAAEZ,EAAA,KAAAQ;GAAAR,EAAA,KAAAU;EAAA,OAAAA,KAAAV,EAAA;EAJFS,KAAAH,SAAQS,IAAKL,EAIX;EAACV,EAAA,KAAAQ;EAAAR,EAAA,KAAAM;EAAAN,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAJHS;AAIG;;;;;;;;;;AAcT,MAAaO,mCAMNnB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getPartialJsonObjectFieldState, getPartialJsonObjectMeta } from "assistant-stream/utils";
|
|
2
2
|
import { useAuiState } from "@assistant-ui/store";
|
|
3
|
+
import "@assistant-ui/tap/react-shim";
|
|
3
4
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
4
5
|
//#region src/react/model-context/useToolArgsStatus.ts
|
|
5
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToolArgsStatus.js","names":["useMemo","useAuiState","getPartialJsonObjectFieldState","getPartialJsonObjectMeta","PropFieldStatus","ToolArgsStatus","Record","status","propStatus","Partial","TArgs","useToolArgsStatus","$","_c","part","_temp","t0","statusType","type","Error","isStreaming","args","t1","t2","meta","key","Object","keys","fieldState","t3","t4","s"],"sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport {\n getPartialJsonObjectFieldState,\n getPartialJsonObjectMeta,\n} from \"assistant-stream/utils\";\n\ntype PropFieldStatus = \"streaming\" | \"complete\";\n\n/**\n * Streaming completion status for the arguments of the current tool call.\n */\nexport type ToolArgsStatus<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n> = {\n /** Overall lifecycle state of the tool-call part. */\n status: \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n /** Per-argument status keyed by argument name. */\n propStatus: Partial<Record<keyof TArgs, PropFieldStatus>>;\n};\n\n/**\n * Reads whether each argument field for the current tool-call message part is\n * still streaming or complete.\n *\n * Use inside a tool-call renderer to avoid showing incomplete argument values\n * as final.\n *\n * @throws If called outside a tool-call message part.\n *\n * @example\n * ```tsx\n * function WeatherToolUI({\n * args,\n * }: ToolCallMessagePartProps<{ city: string }>) {\n * const { propStatus } = useToolArgsStatus<{ city: string }>();\n *\n * return (\n * <span>\n * {propStatus.city === \"streaming\" ? \"Reading city...\" : args.city}\n * </span>\n * );\n * }\n * ```\n */\nexport const useToolArgsStatus = <\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n>(): ToolArgsStatus<TArgs> => {\n const part = useAuiState((s) => s.part);\n\n return useMemo(() => {\n const statusType = part.status.type;\n\n if (part.type !== \"tool-call\") {\n throw new Error(\n \"useToolArgsStatus can only be used inside tool-call message parts\",\n );\n }\n\n const isStreaming = statusType === \"running\";\n const args = part.args as Record<string, unknown>;\n const meta = getPartialJsonObjectMeta(args as Record<symbol, unknown>);\n const propStatus: Partial<Record<string, PropFieldStatus>> = {};\n\n for (const key of Object.keys(args)) {\n if (meta) {\n const fieldState = getPartialJsonObjectFieldState(args, [key]);\n propStatus[key] =\n fieldState === \"complete\" || !isStreaming ? \"complete\" : \"streaming\";\n } else {\n propStatus[key] = isStreaming ? \"streaming\" : \"complete\";\n }\n }\n\n return {\n status: statusType,\n propStatus: propStatus as Partial<Record<keyof TArgs, PropFieldStatus>>,\n };\n }, [part]);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useToolArgsStatus.js","names":["useMemo","useAuiState","getPartialJsonObjectFieldState","getPartialJsonObjectMeta","PropFieldStatus","ToolArgsStatus","Record","status","propStatus","Partial","TArgs","useToolArgsStatus","$","_c","part","_temp","t0","statusType","type","Error","isStreaming","args","t1","t2","meta","key","Object","keys","fieldState","t3","t4","s"],"sources":["../../../src/react/model-context/useToolArgsStatus.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport {\n getPartialJsonObjectFieldState,\n getPartialJsonObjectMeta,\n} from \"assistant-stream/utils\";\n\ntype PropFieldStatus = \"streaming\" | \"complete\";\n\n/**\n * Streaming completion status for the arguments of the current tool call.\n */\nexport type ToolArgsStatus<\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n> = {\n /** Overall lifecycle state of the tool-call part. */\n status: \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n /** Per-argument status keyed by argument name. */\n propStatus: Partial<Record<keyof TArgs, PropFieldStatus>>;\n};\n\n/**\n * Reads whether each argument field for the current tool-call message part is\n * still streaming or complete.\n *\n * Use inside a tool-call renderer to avoid showing incomplete argument values\n * as final.\n *\n * @throws If called outside a tool-call message part.\n *\n * @example\n * ```tsx\n * function WeatherToolUI({\n * args,\n * }: ToolCallMessagePartProps<{ city: string }>) {\n * const { propStatus } = useToolArgsStatus<{ city: string }>();\n *\n * return (\n * <span>\n * {propStatus.city === \"streaming\" ? \"Reading city...\" : args.city}\n * </span>\n * );\n * }\n * ```\n */\nexport const useToolArgsStatus = <\n TArgs extends Record<string, unknown> = Record<string, unknown>,\n>(): ToolArgsStatus<TArgs> => {\n const part = useAuiState((s) => s.part);\n\n return useMemo(() => {\n const statusType = part.status.type;\n\n if (part.type !== \"tool-call\") {\n throw new Error(\n \"useToolArgsStatus can only be used inside tool-call message parts\",\n );\n }\n\n const isStreaming = statusType === \"running\";\n const args = part.args as Record<string, unknown>;\n const meta = getPartialJsonObjectMeta(args as Record<symbol, unknown>);\n const propStatus: Partial<Record<string, PropFieldStatus>> = {};\n\n for (const key of Object.keys(args)) {\n if (meta) {\n const fieldState = getPartialJsonObjectFieldState(args, [key]);\n propStatus[key] =\n fieldState === \"complete\" || !isStreaming ? \"complete\" : \"streaming\";\n } else {\n propStatus[key] = isStreaming ? \"streaming\" : \"complete\";\n }\n }\n\n return {\n status: statusType,\n propStatus: propStatus as Partial<Record<keyof TArgs, PropFieldStatus>>,\n };\n }, [part]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAaW,0BAAoB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAG/B,MAAAC,OAAab,YAAYc,KAAa;CAAE,IAAAC;CAGtC,MAAAC,aAAmBH,KAAIP,OAAOW;CAE9B,IAAIJ,KAAII,SAAU,aAChB,MAAM,IAAIC,MACR,mEACF;CAGF,MAAAC,cAAoBH,eAAe;CACnC,MAAAI,OAAaP,KAAIO;CACqB,MAAAC,KAAAD;CAA+B,IAAAE;CAAA,IAAAX,EAAA,OAAAU,IAAA;EAAxDC,KAAApB,yBAAyBmB,EAA+B;EAACV,EAAA,KAAAU;EAAAV,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAtE,MAAAY,OAAaD;CAA0D,IAAAf;CAAA,IAAAI,EAAA,OAAAS,QAAAT,EAAA,OAAAQ,eAAAR,EAAA,OAAAY,MAAA;EACvEhB,aAA6D,CAAC;EAE9D,KAAK,MAAAiB,OAAaC,OAAMC,KAAMN,IAAI,GAChC,IAAIG,MAAI;GACN,MAAAI,aAAmB1B,+BAA+BmB,MAAM,CAACI,GAAG,CAAC;GAC7DjB,WAAWiB,OACTG,eAAe,cAAf,CAA8BR,cAA9B,aAAA;EADa,OAGfZ,WAAWiB,OAAOL,cAAA,cAAA;EAErBR,EAAA,KAAAS;EAAAT,EAAA,KAAAQ;EAAAR,EAAA,KAAAY;EAAAZ,EAAA,KAAAJ;CAAA,OAAAA,aAAAI,EAAA;CAIa,MAAAiB,KAAArB;CAA2D,IAAAsB;CAAA,IAAAlB,EAAA,OAAAK,cAAAL,EAAA,OAAAiB,IAAA;EAFlEC,KAAA;GAAAvB,QACGU;GAAUT,YACNqB;EACd;EAACjB,EAAA,KAAAK;EAAAL,EAAA,KAAAiB;EAAAjB,EAAA,KAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAHDI,KAAOc;CAGL,OA3BGd;AA4BG;AAjCqB,SAAAD,MAAAgB,GAAA;CAAA,OAGCA,EAACjB;AAAK"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useActionBarCopy.ts
|
|
4
5
|
const useActionBarCopy = (t0) => {
|
|
@@ -20,11 +21,11 @@ const useActionBarCopy = (t0) => {
|
|
|
20
21
|
if ($[2] !== aui || $[3] !== composerValue || $[4] !== copiedDuration || $[5] !== copyToClipboard || $[6] !== isEditing) {
|
|
21
22
|
t3 = () => {
|
|
22
23
|
if (!copyToClipboard) return;
|
|
23
|
-
const valueToCopy = isEditing ? composerValue : aui.message
|
|
24
|
+
const valueToCopy = isEditing ? composerValue : aui.message.getCopyText();
|
|
24
25
|
if (!valueToCopy) return;
|
|
25
26
|
Promise.resolve(copyToClipboard(valueToCopy)).then(() => {
|
|
26
|
-
aui.message
|
|
27
|
-
setTimeout(() => aui.message
|
|
27
|
+
aui.message.setIsCopied(true);
|
|
28
|
+
setTimeout(() => aui.message.setIsCopied(false), copiedDuration);
|
|
28
29
|
}, _temp6);
|
|
29
30
|
};
|
|
30
31
|
$[2] = aui;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarCopy.js","names":["useCallback","useAui","useAuiState","UseActionBarCopyOptions","copiedDuration","copyToClipboard","text","Promise","useActionBarCopy","t0","$","_c","t1","undefined","t2","aui","disabled","_temp2","isCopied","_temp3","isEditing","_temp4","composerValue","_temp5","t3","valueToCopy","message","getCopyText","resolve","then","setIsCopied","setTimeout","_temp6","copy","t4","t5","_temp","c","type","length","s","role","status","parts","some","s_0","s_1","composer","s_2"],"sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport type UseActionBarCopyOptions = {\n copiedDuration?: number | undefined;\n copyToClipboard?: ((text: string) => void | Promise<void>) | undefined;\n};\n\nexport const useActionBarCopy = ({\n copiedDuration = 3000,\n copyToClipboard,\n}: UseActionBarCopyOptions = {}) => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n const isCopied = useAuiState((s) => s.message.isCopied);\n const isEditing = useAuiState((s) => s.composer.isEditing);\n const composerValue = useAuiState((s) => s.composer.text);\n\n const copy = useCallback(() => {\n if (!copyToClipboard) return;\n\n const valueToCopy = isEditing ? composerValue : aui.message
|
|
1
|
+
{"version":3,"file":"useActionBarCopy.js","names":["useCallback","useAui","useAuiState","UseActionBarCopyOptions","copiedDuration","copyToClipboard","text","Promise","useActionBarCopy","t0","$","_c","t1","undefined","t2","aui","disabled","_temp2","isCopied","_temp3","isEditing","_temp4","composerValue","_temp5","t3","valueToCopy","message","getCopyText","resolve","then","setIsCopied","setTimeout","_temp6","copy","t4","t5","_temp","c","type","length","s","role","status","parts","some","s_0","s_1","composer","s_2"],"sources":["../../../src/react/primitive-hooks/useActionBarCopy.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport type UseActionBarCopyOptions = {\n copiedDuration?: number | undefined;\n copyToClipboard?: ((text: string) => void | Promise<void>) | undefined;\n};\n\nexport const useActionBarCopy = ({\n copiedDuration = 3000,\n copyToClipboard,\n}: UseActionBarCopyOptions = {}) => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n const isCopied = useAuiState((s) => s.message.isCopied);\n const isEditing = useAuiState((s) => s.composer.isEditing);\n const composerValue = useAuiState((s) => s.composer.text);\n\n const copy = useCallback(() => {\n if (!copyToClipboard) return;\n\n const valueToCopy = isEditing ? composerValue : aui.message.getCopyText();\n if (!valueToCopy) return;\n\n // The rejection handler swallows clipboard write failures (permission denied,\n // API unavailable) so they don't surface as unhandled promise rejections.\n Promise.resolve(copyToClipboard(valueToCopy)).then(\n () => {\n aui.message.setIsCopied(true);\n setTimeout(() => aui.message.setIsCopied(false), copiedDuration);\n },\n () => {},\n );\n }, [aui, isEditing, composerValue, copiedDuration, copyToClipboard]);\n\n return { copy, disabled: disabled || !copyToClipboard, isCopied };\n};\n"],"mappings":";;;;AAQA,MAAaQ,oBAAmBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAACG,KAAAH,OAAAI,KAAAA,IAAA,CAGH,IAHGJ;EAGFC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAHE,MAAA,EAAAN,gBAAAU,IAAAT,oBAAAO;CAC/B,MAAAR,iBAAAU,OAAAD,KAAAA,IAAA,MAAAC;CAGA,MAAAC,MAAYd,OAAO;CACnB,MAAAe,WAAiBd,YAAYe,MAM5B;CACD,MAAAC,WAAiBhB,YAAYiB,MAAyB;CACtD,MAAAC,YAAkBlB,YAAYmB,MAA2B;CACzD,MAAAC,gBAAsBpB,YAAYqB,MAAsB;CAAE,IAAAC;CAAA,IAAAd,EAAA,OAAAK,OAAAL,EAAA,OAAAY,iBAAAZ,EAAA,OAAAN,kBAAAM,EAAA,OAAAL,mBAAAK,EAAA,OAAAU,WAAA;EAEjCI,WAAA;GACvB,IAAI,CAACnB,iBAAe;GAEpB,MAAAoB,cAAoBL,YAAAE,gBAA4BP,IAAGW,QAAQC,YAAa;GACxE,IAAI,CAACF,aAAW;GAIhBlB,QAAOqB,QAASvB,gBAAgBoB,WAAW,CAAC,CAAC,CAAAI,WAC3C;IACEd,IAAGW,QAAQI,YAAa,IAAI;IAC5BC,iBAAiBhB,IAAGW,QAAQI,YAAa,KAAK,GAAG1B,cAAc;GAAC,GAElE4B,MACF;EAAC;EACFtB,EAAA,KAAAK;EAAAL,EAAA,KAAAY;EAAAZ,EAAA,KAAAN;EAAAM,EAAA,KAAAL;EAAAK,EAAA,KAAAU;EAAAV,EAAA,KAAAc;CAAA,OAAAA,KAAAd,EAAA;CAfD,MAAAuB,OAAaT;CAiBY,MAAAU,KAAAlB,YAAA,CAAaX;CAAe,IAAA8B;CAAA,IAAAzB,EAAA,OAAAuB,QAAAvB,EAAA,OAAAQ,YAAAR,EAAA,QAAAwB,IAAA;EAA9CC,KAAA;GAAAF;GAAAjB,UAAkBkB;GAA4BhB;EAAW;EAACR,EAAA,KAAAuB;EAAAvB,EAAA,KAAAQ;EAAAR,EAAA,MAAAwB;EAAAxB,EAAA,MAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,OAA1DyB;AAA0D;AAjCnC,SAAAC,MAAAC,GAAA;CAAA,OASEA,EAACC,SAAU,UAAUD,EAAC/B,KAAKiC,SAAU;AAAC;AATxC,SAAAtB,OAAAuB,GAAA;CAAA,OAMrB,GACJA,EAACd,QAAQe,SAAU,eAClBD,EAACd,QAAQgB,QAAaJ,SAAK,cAC7BE,EAACd,QAAQiB,MAAMC,KAAMR,KAA6C;AACnE;AAV2B,SAAAjB,OAAA0B,KAAA;CAAA,OAYML,IAACd,QAAQR;AAAS;AAZxB,SAAAG,OAAAyB,KAAA;CAAA,OAaON,IAACO,SAAS3B;AAAU;AAb3B,SAAAG,OAAAyB,KAAA;CAAA,OAcWR,IAACO,SAASzC;AAAK;AAd1B,SAAA0B,SAAA,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useActionBarEdit.ts
|
|
4
5
|
const useActionBarEdit = () => {
|
|
@@ -8,7 +9,7 @@ const useActionBarEdit = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.composer
|
|
12
|
+
aui.composer.beginEdit();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarEdit.js","names":["useCallback","useAui","useAuiState","useActionBarEdit","$","_c","aui","disabled","_temp","t0","composer","beginEdit","edit","t1","s","isEditing"],"sources":["../../../src/react/primitive-hooks/useActionBarEdit.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarEdit = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.composer.isEditing);\n\n const edit = useCallback(() => {\n aui.composer
|
|
1
|
+
{"version":3,"file":"useActionBarEdit.js","names":["useCallback","useAui","useAuiState","useActionBarEdit","$","_c","aui","disabled","_temp","t0","composer","beginEdit","edit","t1","s","isEditing"],"sources":["../../../src/react/primitive-hooks/useActionBarEdit.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarEdit = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.composer.isEditing);\n\n const edit = useCallback(() => {\n aui.composer.beginEdit();\n }, [aui]);\n\n return { edit, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,yBAAmB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC9B,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAA2B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEjCG,WAAA;GACvBH,IAAGI,SAASC,UAAW;EAAC;EACzBP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAQ,OAAaH;CAEH,IAAAI;CAAA,IAAAT,EAAA,OAAAG,YAAAH,EAAA,OAAAQ,MAAA;EAEHC,KAAA;GAAAD;GAAAL;EAAiB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAAlBS;AAAkB;AARK,SAAAL,MAAAM,GAAA;CAAA,OAEMA,EAACJ,SAASK;AAAU"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useActionBarFeedback.ts
|
|
4
5
|
const useActionBarFeedbackPositive = () => {
|
|
@@ -8,7 +9,7 @@ const useActionBarFeedbackPositive = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.message
|
|
12
|
+
aui.message.submitFeedback({ type: "positive" });
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -33,7 +34,7 @@ const useActionBarFeedbackNegative = () => {
|
|
|
33
34
|
let t0;
|
|
34
35
|
if ($[0] !== aui) {
|
|
35
36
|
t0 = () => {
|
|
36
|
-
aui.message
|
|
37
|
+
aui.message.submitFeedback({ type: "negative" });
|
|
37
38
|
};
|
|
38
39
|
$[0] = aui;
|
|
39
40
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarFeedback.js","names":["useCallback","useAui","useAuiState","useActionBarFeedbackPositive","$","_c","aui","isSubmitted","_temp","t0","message","submitFeedback","type","submit","t1","useActionBarFeedbackNegative","_temp2","s","metadata","submittedFeedback"],"sources":["../../../src/react/primitive-hooks/useActionBarFeedback.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarFeedbackPositive = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"positive\",\n );\n\n const submit = useCallback(() => {\n aui.message
|
|
1
|
+
{"version":3,"file":"useActionBarFeedback.js","names":["useCallback","useAui","useAuiState","useActionBarFeedbackPositive","$","_c","aui","isSubmitted","_temp","t0","message","submitFeedback","type","submit","t1","useActionBarFeedbackNegative","_temp2","s","metadata","submittedFeedback"],"sources":["../../../src/react/primitive-hooks/useActionBarFeedback.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarFeedbackPositive = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"positive\",\n );\n\n const submit = useCallback(() => {\n aui.message.submitFeedback({ type: \"positive\" });\n }, [aui]);\n\n return { submit, isSubmitted };\n};\n\nexport const useActionBarFeedbackNegative = () => {\n const aui = useAui();\n const isSubmitted = useAuiState(\n (s) => s.message.metadata.submittedFeedback?.type === \"negative\",\n );\n\n const submit = useCallback(() => {\n aui.message.submitFeedback({ type: \"negative\" });\n }, [aui]);\n\n return { submit, isSubmitted };\n};\n"],"mappings":";;;;AAGA,MAAaG,qCAA+B;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC1C,MAAAC,MAAYL,OAAO;CACnB,MAAAM,cAAoBL,YAClBM,KACF;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEyBG,WAAA;GACzBH,IAAGI,QAAQC,eAAgB,EAAAC,MAAQ,WAAW,CAAC;EAAC;EACjDR,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAS,SAAeJ;CAEL,IAAAK;CAAA,IAAAV,EAAA,OAAAG,eAAAH,EAAA,OAAAS,QAAA;EAEHC,KAAA;GAAAD;GAAAN;EAAsB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAvBU;AAAuB;AAGhC,MAAaC,qCAA+B;CAAA,MAAAX,IAAAC,EAAA,CAAA;CAC1C,MAAAC,MAAYL,OAAO;CACnB,MAAAM,cAAoBL,YAClBc,MACF;CAAE,IAAAP;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEyBG,WAAA;GACzBH,IAAGI,QAAQC,eAAgB,EAAAC,MAAQ,WAAW,CAAC;EAAC;EACjDR,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAS,SAAeJ;CAEL,IAAAK;CAAA,IAAAV,EAAA,OAAAG,eAAAH,EAAA,OAAAS,QAAA;EAEHC,KAAA;GAAAD;GAAAN;EAAsB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAvBU;AAAuB;AAvBY,SAAAN,MAAAS,GAAA;CAAA,OAGjCA,EAACP,QAAQQ,SAASC,mBAAwBP,SAAK;AAAU;AAUxB,SAAAI,OAAAC,GAAA;CAAA,OAGjCA,EAACP,QAAQQ,SAASC,mBAAwBP,SAAK;AAAU"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useActionBarReload.ts
|
|
4
5
|
const useActionBarReload = () => {
|
|
@@ -8,7 +9,7 @@ const useActionBarReload = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.message
|
|
12
|
+
aui.message.reload();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarReload.js","names":["useCallback","useAui","useAuiState","useActionBarReload","$","_c","aui","disabled","_temp","t0","message","reload","t1","s","thread","isRunning","isDisabled","role"],"sources":["../../../src/react/primitive-hooks/useActionBarReload.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarReload = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.thread.isRunning ||\n s.thread.isDisabled ||\n s.message.role !== \"assistant\",\n );\n\n const reload = useCallback(() => {\n aui.message
|
|
1
|
+
{"version":3,"file":"useActionBarReload.js","names":["useCallback","useAui","useAuiState","useActionBarReload","$","_c","aui","disabled","_temp","t0","message","reload","t1","s","thread","isRunning","isDisabled","role"],"sources":["../../../src/react/primitive-hooks/useActionBarReload.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarReload = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.thread.isRunning ||\n s.thread.isDisabled ||\n s.message.role !== \"assistant\",\n );\n\n const reload = useCallback(() => {\n aui.message.reload();\n }, [aui]);\n\n return { reload, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,2BAAqB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAChC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YACfM,KAIF;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEyBG,WAAA;GACzBH,IAAGI,QAAQC,OAAQ;EAAC;EACrBP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,SAAeF;CAEL,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,QAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAAmB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAApBQ;AAAoB;AAbK,SAAAJ,MAAAK,GAAA;CAAA,OAI5BA,EAACC,OAAOC,aACRF,EAACC,OAAOE,cACRH,EAACH,QAAQO,SAAU;AAAW"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useActionBarSpeak.ts
|
|
4
5
|
const useActionBarSpeak = () => {
|
|
@@ -8,7 +9,7 @@ const useActionBarSpeak = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = async () => {
|
|
11
|
-
aui.message
|
|
12
|
+
aui.message.speak();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarSpeak.js","names":["useCallback","useAui","useAuiState","useActionBarSpeak","$","_c","aui","disabled","_temp2","t0","message","speak","t1","_temp","c","type","text","length","s","role","status","parts","some"],"sources":["../../../src/react/primitive-hooks/useActionBarSpeak.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarSpeak = () => {\n const aui = useAui();\n\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n\n const speak = useCallback(async () => {\n aui.message
|
|
1
|
+
{"version":3,"file":"useActionBarSpeak.js","names":["useCallback","useAui","useAuiState","useActionBarSpeak","$","_c","aui","disabled","_temp2","t0","message","speak","t1","_temp","c","type","text","length","s","role","status","parts","some"],"sources":["../../../src/react/primitive-hooks/useActionBarSpeak.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarSpeak = () => {\n const aui = useAui();\n\n const disabled = useAuiState((s) => {\n return !(\n (s.message.role !== \"assistant\" ||\n s.message.status?.type !== \"running\") &&\n s.message.parts.some((c) => c.type === \"text\" && c.text.length > 0)\n );\n });\n\n const speak = useCallback(async () => {\n aui.message.speak();\n }, [aui]);\n\n return { speak, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,0BAAoB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC/B,MAAAC,MAAYL,OAAO;CAEnB,MAAAM,WAAiBL,YAAYM,MAM5B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEuBG,KAAA,YAAA;GACxBH,IAAGI,QAAQC,MAAO;EAAC;EACpBP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,QAAcF;CAEJ,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,OAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAAkB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAAnBQ;AAAmB;AAfK,SAAAC,MAAAC,GAAA;CAAA,OAOCA,EAACC,SAAU,UAAUD,EAACE,KAAKC,SAAU;AAAC;AAPvC,SAAAT,OAAAU,GAAA;CAAA,OAItB,GACJA,EAACR,QAAQS,SAAU,eAClBD,EAACR,QAAQU,QAAaL,SAAK,cAC7BG,EAACR,QAAQW,MAAMC,KAAMT,KAA6C;AACnE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useActionBarStopSpeaking.ts
|
|
4
5
|
const useActionBarStopSpeaking = () => {
|
|
@@ -8,7 +9,7 @@ const useActionBarStopSpeaking = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.message
|
|
12
|
+
aui.message.stopSpeaking();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useActionBarStopSpeaking.js","names":["useCallback","useAui","useAuiState","useActionBarStopSpeaking","$","_c","aui","disabled","_temp","t0","message","stopSpeaking","t1","s","speech"],"sources":["../../../src/react/primitive-hooks/useActionBarStopSpeaking.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarStopSpeaking = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.message.speech == null);\n\n const stopSpeaking = useCallback(() => {\n aui.message
|
|
1
|
+
{"version":3,"file":"useActionBarStopSpeaking.js","names":["useCallback","useAui","useAuiState","useActionBarStopSpeaking","$","_c","aui","disabled","_temp","t0","message","stopSpeaking","t1","s","speech"],"sources":["../../../src/react/primitive-hooks/useActionBarStopSpeaking.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useActionBarStopSpeaking = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.message.speech == null);\n\n const stopSpeaking = useCallback(() => {\n aui.message.stopSpeaking();\n }, [aui]);\n\n return { stopSpeaking, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,iCAA2B;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACtC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAA+B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAE7BG,WAAA;GAC/BH,IAAGI,QAAQC,aAAc;EAAC;EAC3BP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,eAAqBF;CAEX,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,cAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAAyB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAA1BQ;AAA0B;AARK,SAAAJ,MAAAK,GAAA;CAAA,OAEFA,EAACH,QAAQI,UAAW;AAAI"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useBranchPickerNext.ts
|
|
4
5
|
const useBranchPickerNext = () => {
|
|
@@ -8,7 +9,7 @@ const useBranchPickerNext = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.message
|
|
12
|
+
aui.message.switchToBranch({ position: "next" });
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBranchPickerNext.js","names":["useCallback","useAui","useAuiState","useBranchPickerNext","$","_c","aui","disabled","_temp","t0","message","switchToBranch","position","next","t1","s","branchNumber","branchCount","thread","isRunning","capabilities","switchBranchDuringRun"],"sources":["../../../src/react/primitive-hooks/useBranchPickerNext.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerNext = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber >= s.message.branchCount) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const next = useCallback(() => {\n aui.message
|
|
1
|
+
{"version":3,"file":"useBranchPickerNext.js","names":["useCallback","useAui","useAuiState","useBranchPickerNext","$","_c","aui","disabled","_temp","t0","message","switchToBranch","position","next","t1","s","branchNumber","branchCount","thread","isRunning","capabilities","switchBranchDuringRun"],"sources":["../../../src/react/primitive-hooks/useBranchPickerNext.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerNext = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber >= s.message.branchCount) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const next = useCallback(() => {\n aui.message.switchToBranch({ position: \"next\" });\n }, [aui]);\n\n return { next, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,4BAAsB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACjC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAM5B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEsBG,WAAA;GACvBH,IAAGI,QAAQC,eAAgB,EAAAC,UAAY,OAAO,CAAC;EAAC;EACjDR,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAS,OAAaJ;CAEH,IAAAK;CAAA,IAAAV,EAAA,OAAAG,YAAAH,EAAA,OAAAS,MAAA;EAEHC,KAAA;GAAAD;GAAAN;EAAiB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAlBU;AAAkB;AAdQ,SAAAN,MAAAO,GAAA;CAG/B,IAAIA,EAACL,QAAQM,gBAAiBD,EAACL,QAAQO,aAAY,OAAS;CAC5D,IAAIF,EAACG,OAAOC,aAAR,CAAuBJ,EAACG,OAAOE,aAAaC,uBAAsB,OAC7D;CACR,OACM;AAAK"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useBranchPickerPrevious.ts
|
|
4
5
|
const useBranchPickerPrevious = () => {
|
|
@@ -8,7 +9,7 @@ const useBranchPickerPrevious = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.message
|
|
12
|
+
aui.message.switchToBranch({ position: "previous" });
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBranchPickerPrevious.js","names":["useCallback","useAui","useAuiState","useBranchPickerPrevious","$","_c","aui","disabled","_temp","t0","message","switchToBranch","position","previous","t1","s","branchNumber","thread","isRunning","capabilities","switchBranchDuringRun"],"sources":["../../../src/react/primitive-hooks/useBranchPickerPrevious.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerPrevious = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber <= 1) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const previous = useCallback(() => {\n aui.message
|
|
1
|
+
{"version":3,"file":"useBranchPickerPrevious.js","names":["useCallback","useAui","useAuiState","useBranchPickerPrevious","$","_c","aui","disabled","_temp","t0","message","switchToBranch","position","previous","t1","s","branchNumber","thread","isRunning","capabilities","switchBranchDuringRun"],"sources":["../../../src/react/primitive-hooks/useBranchPickerPrevious.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useBranchPickerPrevious = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => {\n if (s.message.branchNumber <= 1) return true;\n if (s.thread.isRunning && !s.thread.capabilities.switchBranchDuringRun) {\n return true;\n }\n return false;\n });\n\n const previous = useCallback(() => {\n aui.message.switchToBranch({ position: \"previous\" });\n }, [aui]);\n\n return { previous, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,gCAA0B;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACrC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAM5B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAE0BG,WAAA;GAC3BH,IAAGI,QAAQC,eAAgB,EAAAC,UAAY,WAAW,CAAC;EAAC;EACrDR,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAS,WAAiBJ;CAEP,IAAAK;CAAA,IAAAV,EAAA,OAAAG,YAAAH,EAAA,OAAAS,UAAA;EAEHC,KAAA;GAAAD;GAAAN;EAAqB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAS;EAAAT,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAAtBU;AAAsB;AAdQ,SAAAN,MAAAO,GAAA;CAGnC,IAAIA,EAACL,QAAQM,gBAAiB,GAAC,OAAS;CACxC,IAAID,EAACE,OAAOC,aAAR,CAAuBH,EAACE,OAAOE,aAAaC,uBAAsB,OAC7D;CACR,OACM;AAAK"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useComposerAddAttachment.ts
|
|
4
5
|
const useComposerAddAttachment = () => {
|
|
@@ -7,7 +8,7 @@ const useComposerAddAttachment = () => {
|
|
|
7
8
|
const disabled = useAuiState(_temp);
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
|
-
t0 = (file) => aui.composer
|
|
11
|
+
t0 = (file) => aui.composer.addAttachment(file);
|
|
11
12
|
$[0] = aui;
|
|
12
13
|
$[1] = t0;
|
|
13
14
|
} else t0 = $[1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposerAddAttachment.js","names":["useCallback","useAui","useAuiState","CreateAttachment","useComposerAddAttachment","$","_c","aui","disabled","_temp","t0","file","composer","addAttachment","t1","s","isEditing"],"sources":["../../../src/react/primitive-hooks/useComposerAddAttachment.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { CreateAttachment } from \"../../types/attachment\";\n\nexport const useComposerAddAttachment = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.isEditing);\n\n const addAttachment = useCallback(\n (file: File | CreateAttachment) => {\n return aui.composer
|
|
1
|
+
{"version":3,"file":"useComposerAddAttachment.js","names":["useCallback","useAui","useAuiState","CreateAttachment","useComposerAddAttachment","$","_c","aui","disabled","_temp","t0","file","composer","addAttachment","t1","s","isEditing"],"sources":["../../../src/react/primitive-hooks/useComposerAddAttachment.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { CreateAttachment } from \"../../types/attachment\";\n\nexport const useComposerAddAttachment = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.isEditing);\n\n const addAttachment = useCallback(\n (file: File | CreateAttachment) => {\n return aui.composer.addAttachment(file);\n },\n [aui],\n );\n\n return { addAttachment, disabled };\n};\n"],"mappings":";;;;AAIA,MAAaI,iCAA2B;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACtC,MAAAC,MAAYN,OAAO;CACnB,MAAAO,WAAiBN,YAAYO,KAA4B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAGzDG,MAAAC,SACSJ,IAAGK,SAASC,cAAeF,IAAI;EACvCN,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAHH,MAAAQ,gBAAsBH;CAKpB,IAAAI;CAAA,IAAAT,EAAA,OAAAQ,iBAAAR,EAAA,OAAAG,UAAA;EAEKM,KAAA;GAAAD;GAAAL;EAA0B;EAACH,EAAA,KAAAQ;EAAAR,EAAA,KAAAG;EAAAH,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAA3BS;AAA2B;AAXI,SAAAL,MAAAM,GAAA;CAAA,OAEF,CAACA,EAACH,SAASI;AAAU"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useComposerCancel.ts
|
|
4
5
|
const useComposerCancel = () => {
|
|
@@ -8,7 +9,7 @@ const useComposerCancel = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.composer
|
|
12
|
+
aui.composer.cancel();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposerCancel.js","names":["useCallback","useAui","useAuiState","useComposerCancel","$","_c","aui","disabled","_temp","t0","composer","cancel","t1","s","canCancel"],"sources":["../../../src/react/primitive-hooks/useComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerCancel = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.canCancel);\n\n const cancel = useCallback(() => {\n aui.composer
|
|
1
|
+
{"version":3,"file":"useComposerCancel.js","names":["useCallback","useAui","useAuiState","useComposerCancel","$","_c","aui","disabled","_temp","t0","composer","cancel","t1","s","canCancel"],"sources":["../../../src/react/primitive-hooks/useComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerCancel = () => {\n const aui = useAui();\n const disabled = useAuiState((s) => !s.composer.canCancel);\n\n const cancel = useCallback(() => {\n aui.composer.cancel();\n }, [aui]);\n\n return { cancel, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,0BAAoB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC/B,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YAAYM,KAA4B;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEhCG,WAAA;GACzBH,IAAGI,SAASC,OAAQ;EAAC;EACtBP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,SAAeF;CAEL,IAAAG;CAAA,IAAAR,EAAA,OAAAO,UAAAP,EAAA,OAAAG,UAAA;EAEHK,KAAA;GAAAD;GAAAJ;EAAmB;EAACH,EAAA,KAAAO;EAAAP,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAApBQ;AAAoB;AARI,SAAAJ,MAAAK,GAAA;CAAA,OAEK,CAACA,EAACH,SAASI;AAAU"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useComposerDictate.ts
|
|
4
5
|
const useComposerDictate = () => {
|
|
@@ -8,7 +9,7 @@ const useComposerDictate = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.composer
|
|
12
|
+
aui.composer.startDictation();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposerDictate.js","names":["useCallback","useAui","useAuiState","useComposerDictate","$","_c","aui","disabled","_temp","t0","composer","startDictation","t1","s","dictation","thread","capabilities","isEditing"],"sources":["../../../src/react/primitive-hooks/useComposerDictate.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerDictate = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.composer.dictation != null ||\n !s.thread.capabilities.dictation ||\n !s.composer.isEditing,\n );\n\n const startDictation = useCallback(() => {\n aui.composer
|
|
1
|
+
{"version":3,"file":"useComposerDictate.js","names":["useCallback","useAui","useAuiState","useComposerDictate","$","_c","aui","disabled","_temp","t0","composer","startDictation","t1","s","dictation","thread","capabilities","isEditing"],"sources":["../../../src/react/primitive-hooks/useComposerDictate.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\n\nexport const useComposerDictate = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n s.composer.dictation != null ||\n !s.thread.capabilities.dictation ||\n !s.composer.isEditing,\n );\n\n const startDictation = useCallback(() => {\n aui.composer.startDictation();\n }, [aui]);\n\n return { startDictation, disabled };\n};\n"],"mappings":";;;;AAGA,MAAaG,2BAAqB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAChC,MAAAC,MAAYL,OAAO;CACnB,MAAAM,WAAiBL,YACfM,KAIF;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAEiCG,WAAA;GACjCH,IAAGI,SAASC,eAAgB;EAAC;EAC9BP,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAFD,MAAAO,iBAAuBF;CAEb,IAAAG;CAAA,IAAAR,EAAA,OAAAG,YAAAH,EAAA,OAAAO,gBAAA;EAEHC,KAAA;GAAAD;GAAAJ;EAA2B;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAA5BQ;AAA4B;AAbH,SAAAJ,MAAAK,GAAA;CAAA,OAI5BA,EAACH,SAASI,aAAc,QAAxB,CACCD,EAACE,OAAOC,aAAaF,aADtB,CAECD,EAACH,SAASO;AAAU"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useComposerSend.ts
|
|
4
5
|
const useComposerSend = () => {
|
|
@@ -8,7 +9,7 @@ const useComposerSend = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = (opts) => {
|
|
11
|
-
aui.composer
|
|
12
|
+
aui.composer.send(opts);
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useComposerSend.js","names":["useCallback","useAui","useAuiState","ComposerSendOptions","useComposerSend","$","_c","aui","disabled","_temp","t0","opts","composer","send","t1","s","canSend","thread","isRunning","capabilities","queue"],"sources":["../../../src/react/primitive-hooks/useComposerSend.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { ComposerSendOptions } from \"../../store/scopes/composer\";\n\nexport const useComposerSend = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n !s.composer.canSend ||\n (s.thread.isRunning && !s.thread.capabilities.queue),\n );\n\n const send = useCallback(\n (opts?: ComposerSendOptions) => {\n aui.composer
|
|
1
|
+
{"version":3,"file":"useComposerSend.js","names":["useCallback","useAui","useAuiState","ComposerSendOptions","useComposerSend","$","_c","aui","disabled","_temp","t0","opts","composer","send","t1","s","canSend","thread","isRunning","capabilities","queue"],"sources":["../../../src/react/primitive-hooks/useComposerSend.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport type { ComposerSendOptions } from \"../../store/scopes/composer\";\n\nexport const useComposerSend = () => {\n const aui = useAui();\n const disabled = useAuiState(\n (s) =>\n !s.composer.canSend ||\n (s.thread.isRunning && !s.thread.capabilities.queue),\n );\n\n const send = useCallback(\n (opts?: ComposerSendOptions) => {\n aui.composer.send(opts);\n },\n [aui],\n );\n\n return { send, disabled };\n};\n"],"mappings":";;;;AAIA,MAAaI,wBAAkB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAC7B,MAAAC,MAAYN,OAAO;CACnB,MAAAO,WAAiBN,YACfO,KAGF;CAAE,IAAAC;CAAA,IAAAL,EAAA,OAAAE,KAAA;EAGAG,MAAAC,SAAA;GACEJ,IAAGK,SAASC,KAAMF,IAAI;EAAC;EACxBN,EAAA,KAAAE;EAAAF,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAHH,MAAAQ,OAAaH;CAKX,IAAAI;CAAA,IAAAT,EAAA,OAAAG,YAAAH,EAAA,OAAAQ,MAAA;EAEKC,KAAA;GAAAD;GAAAL;EAAiB;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAAlBS;AAAkB;AAfI,SAAAL,MAAAM,GAAA;CAAA,OAIzB,CAACA,EAACH,SAASI,WACVD,EAACE,OAAOC,aAAR,CAAuBH,EAACE,OAAOE,aAAaC;AAAO"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useEditComposerCancel.ts
|
|
4
5
|
const useEditComposerCancel = () => {
|
|
@@ -7,7 +8,7 @@ const useEditComposerCancel = () => {
|
|
|
7
8
|
let t0;
|
|
8
9
|
if ($[0] !== aui) {
|
|
9
10
|
t0 = () => {
|
|
10
|
-
aui.composer
|
|
11
|
+
aui.composer.cancel();
|
|
11
12
|
};
|
|
12
13
|
$[0] = aui;
|
|
13
14
|
$[1] = t0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditComposerCancel.js","names":["useCallback","useAui","useEditComposerCancel","$","_c","aui","t0","composer","cancel","t1"],"sources":["../../../src/react/primitive-hooks/useEditComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport const useEditComposerCancel = () => {\n const aui = useAui();\n\n const cancel = useCallback(() => {\n aui.composer
|
|
1
|
+
{"version":3,"file":"useEditComposerCancel.js","names":["useCallback","useAui","useEditComposerCancel","$","_c","aui","t0","composer","cancel","t1"],"sources":["../../../src/react/primitive-hooks/useEditComposerCancel.ts"],"sourcesContent":["import { useCallback } from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\n\nexport const useEditComposerCancel = () => {\n const aui = useAui();\n\n const cancel = useCallback(() => {\n aui.composer.cancel();\n }, [aui]);\n\n return { cancel };\n};\n"],"mappings":";;;;AAGA,MAAaE,8BAAwB;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACnC,MAAAC,MAAYJ,OAAO;CAAE,IAAAK;CAAA,IAAAH,EAAA,OAAAE,KAAA;EAEMC,WAAA;GACzBD,IAAGE,SAASC,OAAQ;EAAC;EACtBL,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAFD,MAAAK,SAAeF;CAEL,IAAAG;CAAA,IAAAN,EAAA,OAAAK,QAAA;EAEHC,KAAA,EAAAD,OAAS;EAACL,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,OAAVM;AAAU"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useAui, useAuiState } from "@assistant-ui/store";
|
|
2
|
+
import "@assistant-ui/tap/react-shim";
|
|
2
3
|
import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
|
|
3
4
|
//#region src/react/primitive-hooks/useEditComposerSend.ts
|
|
4
5
|
const useEditComposerSend = () => {
|
|
@@ -8,7 +9,7 @@ const useEditComposerSend = () => {
|
|
|
8
9
|
let t0;
|
|
9
10
|
if ($[0] !== aui) {
|
|
10
11
|
t0 = () => {
|
|
11
|
-
aui.composer
|
|
12
|
+
aui.composer.send();
|
|
12
13
|
};
|
|
13
14
|
$[0] = aui;
|
|
14
15
|
$[1] = t0;
|