@ulearning/ai-sdk 0.0.0-stage → 1.0.0-next.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/LICENSE +21 -0
- package/README.md +12 -2
- package/dist/_virtual/_rolldown/runtime.js +12 -0
- package/dist/adapters/OpenAIRealtimeVoiceAdapter.d.ts +22 -0
- package/dist/adapters/OpenAIRealtimeVoiceAdapter.d.ts.map +1 -0
- package/dist/adapters/OpenAIRealtimeVoiceAdapter.js +296 -0
- package/dist/adapters/OpenAIRealtimeVoiceAdapter.js.map +1 -0
- package/dist/assistant-transport.d.ts +33 -0
- package/dist/assistant-transport.d.ts.map +1 -0
- package/dist/assistant-transport.js +18 -0
- package/dist/assistant-transport.js.map +1 -0
- package/dist/augmentations.d.ts +33 -0
- package/dist/augmentations.d.ts.map +1 -0
- package/dist/augmentations.js +0 -0
- package/dist/context/ReadonlyStore.d.ts +4 -0
- package/dist/context/ReadonlyStore.d.ts.map +1 -0
- package/dist/context/ReadonlyStore.js +7 -0
- package/dist/context/ReadonlyStore.js.map +1 -0
- package/dist/context/index.d.ts +13 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +12 -0
- package/dist/context/providers/AttachmentByIndexProvider.d.ts +2 -0
- package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -0
- package/dist/context/providers/AttachmentByIndexProvider.js +2 -0
- package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts +2 -0
- package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -0
- package/dist/context/providers/ChainOfThoughtByIndicesProvider.js +2 -0
- package/dist/context/providers/MessageByIndexProvider.d.ts +2 -0
- package/dist/context/providers/MessageByIndexProvider.d.ts.map +1 -0
- package/dist/context/providers/MessageByIndexProvider.js +2 -0
- package/dist/context/providers/MessageProvider.d.ts +3 -0
- package/dist/context/providers/MessageProvider.d.ts.map +1 -0
- package/dist/context/providers/MessageProvider.js +25 -0
- package/dist/context/providers/MessageProvider.js.map +1 -0
- package/dist/context/providers/PartByIndexProvider.d.ts +2 -0
- package/dist/context/providers/PartByIndexProvider.d.ts.map +1 -0
- package/dist/context/providers/PartByIndexProvider.js +2 -0
- package/dist/context/providers/SuggestionByIndexProvider.d.ts +2 -0
- package/dist/context/providers/SuggestionByIndexProvider.d.ts.map +1 -0
- package/dist/context/providers/SuggestionByIndexProvider.js +2 -0
- package/dist/context/providers/TextMessagePartProvider.d.ts +2 -0
- package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -0
- package/dist/context/providers/TextMessagePartProvider.js +2 -0
- package/dist/context/providers/ThreadListItemProvider.d.ts +2 -0
- package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -0
- package/dist/context/providers/ThreadListItemProvider.js +2 -0
- package/dist/context/providers/ThreadViewportProvider.d.ts +6 -0
- package/dist/context/providers/ThreadViewportProvider.d.ts.map +1 -0
- package/dist/context/providers/ThreadViewportProvider.js +32 -0
- package/dist/context/providers/ThreadViewportProvider.js.map +1 -0
- package/dist/context/stores/ThreadViewport.d.ts +88 -0
- package/dist/context/stores/ThreadViewport.d.ts.map +1 -0
- package/dist/context/stores/ThreadViewport.js +130 -0
- package/dist/context/stores/ThreadViewport.js.map +1 -0
- package/dist/context/vue/ThreadViewportContext.d.ts +24 -0
- package/dist/context/vue/ThreadViewportContext.d.ts.map +1 -0
- package/dist/context/vue/ThreadViewportContext.js +10 -0
- package/dist/context/vue/ThreadViewportContext.js.map +1 -0
- package/dist/context/vue/utils/createContextHook.d.ts +11 -0
- package/dist/context/vue/utils/createContextHook.d.ts.map +1 -0
- package/dist/context/vue/utils/createContextHook.js +20 -0
- package/dist/context/vue/utils/createContextHook.js.map +1 -0
- package/dist/context/vue/utils/createContextStoreHook.d.ts +22 -0
- package/dist/context/vue/utils/createContextStoreHook.d.ts.map +1 -0
- package/dist/context/vue/utils/createContextStoreHook.js +48 -0
- package/dist/context/vue/utils/createContextStoreHook.js.map +1 -0
- package/dist/devtools/DevToolsHooks.d.ts +32 -0
- package/dist/devtools/DevToolsHooks.d.ts.map +1 -0
- package/dist/devtools/DevToolsHooks.js +84 -0
- package/dist/devtools/DevToolsHooks.js.map +1 -0
- package/dist/hooks/useMessageQuote.d.ts +17 -0
- package/dist/hooks/useMessageQuote.d.ts.map +1 -0
- package/dist/hooks/useMessageQuote.js +23 -0
- package/dist/hooks/useMessageQuote.js.map +1 -0
- package/dist/hooks/useMessageTiming.d.ts +17 -0
- package/dist/hooks/useMessageTiming.d.ts.map +1 -0
- package/dist/hooks/useMessageTiming.js +22 -0
- package/dist/hooks/useMessageTiming.js.map +1 -0
- package/dist/hooks/useToolCallElapsed.d.ts +22 -0
- package/dist/hooks/useToolCallElapsed.d.ts.map +1 -0
- package/dist/hooks/useToolCallElapsed.js +54 -0
- package/dist/hooks/useToolCallElapsed.js.map +1 -0
- package/dist/index.d.ts +155 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/internal.d.ts +9 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +24 -0
- package/dist/internal.js.map +1 -0
- package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +13 -0
- package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -0
- package/dist/legacy-runtime/AssistantRuntimeProvider.js +37 -0
- package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -0
- package/dist/mcp-apps/McpAppRenderer.d.ts +60 -0
- package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -0
- package/dist/mcp-apps/McpAppRenderer.js +223 -0
- package/dist/mcp-apps/McpAppRenderer.js.map +1 -0
- package/dist/mcp-apps/McpAppsRemoteHost.d.ts +3 -0
- package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -0
- package/dist/mcp-apps/McpAppsRemoteHost.js +101 -0
- package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -0
- package/dist/mcp-apps/app-frame.d.ts +3 -0
- package/dist/mcp-apps/app-frame.d.ts.map +1 -0
- package/dist/mcp-apps/app-frame.js +213 -0
- package/dist/mcp-apps/app-frame.js.map +1 -0
- package/dist/mcp-apps/bridge.d.ts +18 -0
- package/dist/mcp-apps/bridge.d.ts.map +1 -0
- package/dist/mcp-apps/bridge.js +319 -0
- package/dist/mcp-apps/bridge.js.map +1 -0
- package/dist/mcp-apps/csp.d.ts +4 -0
- package/dist/mcp-apps/csp.d.ts.map +1 -0
- package/dist/mcp-apps/csp.js +92 -0
- package/dist/mcp-apps/csp.js.map +1 -0
- package/dist/mcp-apps/index.d.ts +5 -0
- package/dist/mcp-apps/index.d.ts.map +1 -0
- package/dist/mcp-apps/index.js +4 -0
- package/dist/mcp-apps/types.d.ts +161 -0
- package/dist/mcp-apps/types.d.ts.map +1 -0
- package/dist/mcp-apps/types.js +6 -0
- package/dist/mcp-apps/types.js.map +1 -0
- package/dist/mcp-apps/utils.d.ts +12 -0
- package/dist/mcp-apps/utils.d.ts.map +1 -0
- package/dist/mcp-apps/utils.js +18 -0
- package/dist/mcp-apps/utils.js.map +1 -0
- package/dist/model-context/frame/useAssistantFrameHost.d.ts +35 -0
- package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -0
- package/dist/model-context/frame/useAssistantFrameHost.js +109 -0
- package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -0
- package/dist/model-context/makeAssistantVisible.d.ts +11 -0
- package/dist/model-context/makeAssistantVisible.d.ts.map +1 -0
- package/dist/model-context/makeAssistantVisible.js +102 -0
- package/dist/model-context/makeAssistantVisible.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarCopy.d.ts +45 -0
- package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarCopy.js +71 -0
- package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarEdit.d.ts +55 -0
- package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarEdit.js +47 -0
- package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts +26 -0
- package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarExportMarkdown.js +39 -0
- package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +13 -0
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +28 -0
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +13 -0
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +28 -0
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts +7 -0
- package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarInteractionContext.js +8 -0
- package/dist/primitives/actionBar/ActionBarInteractionContext.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarReload.d.ts +56 -0
- package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarReload.js +48 -0
- package/dist/primitives/actionBar/ActionBarReload.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarRoot.d.ts +78 -0
- package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarRoot.js +69 -0
- package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts +17 -0
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarSpeak.js +13 -0
- package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +17 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js +13 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -0
- package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts +15 -0
- package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -0
- package/dist/primitives/actionBar/useActionBarFloatStatus.js +24 -0
- package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -0
- package/dist/primitives/actionBar.d.ts +10 -0
- package/dist/primitives/actionBar.d.ts.map +1 -0
- package/dist/primitives/actionBar.js +25 -0
- package/dist/primitives/actionBar.js.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +47 -0
- package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreContent.js +29 -0
- package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +19 -0
- package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreItem.js +24 -0
- package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +10 -0
- package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +39 -0
- package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +16 -0
- package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +24 -0
- package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +17 -0
- package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -0
- package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +24 -0
- package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -0
- package/dist/primitives/actionBarMore/scope.d.ts +5 -0
- package/dist/primitives/actionBarMore/scope.d.ts.map +1 -0
- package/dist/primitives/actionBarMore/scope.js +7 -0
- package/dist/primitives/actionBarMore/scope.js.map +1 -0
- package/dist/primitives/actionBarMore.d.ts +6 -0
- package/dist/primitives/actionBarMore.d.ts.map +1 -0
- package/dist/primitives/actionBarMore.js +17 -0
- package/dist/primitives/actionBarMore.js.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +17 -0
- package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalAnchor.js +24 -0
- package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalContent.d.ts +50 -0
- package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalContent.js +42 -0
- package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +14 -0
- package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalRoot.js +35 -0
- package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +16 -0
- package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -0
- package/dist/primitives/assistantModal/AssistantModalTrigger.js +24 -0
- package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -0
- package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts +139 -0
- package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts.map +1 -0
- package/dist/primitives/assistantModal/popoverRenderPrimitives.js +9 -0
- package/dist/primitives/assistantModal/popoverRenderPrimitives.js.map +1 -0
- package/dist/primitives/assistantModal/scope.d.ts +5 -0
- package/dist/primitives/assistantModal/scope.d.ts.map +1 -0
- package/dist/primitives/assistantModal/scope.js +7 -0
- package/dist/primitives/assistantModal/scope.js.map +1 -0
- package/dist/primitives/assistantModal.d.ts +5 -0
- package/dist/primitives/assistantModal.d.ts.map +1 -0
- package/dist/primitives/assistantModal.js +15 -0
- package/dist/primitives/assistantModal.js.map +1 -0
- package/dist/primitives/attachment/AttachmentName.d.ts +5 -0
- package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -0
- package/dist/primitives/attachment/AttachmentName.js +14 -0
- package/dist/primitives/attachment/AttachmentName.js.map +1 -0
- package/dist/primitives/attachment/AttachmentRemove.d.ts +17 -0
- package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -0
- package/dist/primitives/attachment/AttachmentRemove.js +15 -0
- package/dist/primitives/attachment/AttachmentRemove.js.map +1 -0
- package/dist/primitives/attachment/AttachmentRoot.d.ts +30 -0
- package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -0
- package/dist/primitives/attachment/AttachmentRoot.js +40 -0
- package/dist/primitives/attachment/AttachmentRoot.js.map +1 -0
- package/dist/primitives/attachment/AttachmentThumb.d.ts +12 -0
- package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -0
- package/dist/primitives/attachment/AttachmentThumb.js +32 -0
- package/dist/primitives/attachment/AttachmentThumb.js.map +1 -0
- package/dist/primitives/attachment.d.ts +7 -0
- package/dist/primitives/attachment.d.ts.map +1 -0
- package/dist/primitives/attachment.js +15 -0
- package/dist/primitives/attachment.js.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerCount.d.ts +22 -0
- package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerCount.js +27 -0
- package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts +34 -0
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerNext.js +26 -0
- package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +5 -0
- package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerNumber.js +14 -0
- package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +34 -0
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerPrevious.js +26 -0
- package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +43 -0
- package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -0
- package/dist/primitives/branchPicker/BranchPickerRoot.js +46 -0
- package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -0
- package/dist/primitives/branchPicker.d.ts +6 -0
- package/dist/primitives/branchPicker.d.ts.map +1 -0
- package/dist/primitives/branchPicker.js +17 -0
- package/dist/primitives/branchPicker.js.map +1 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +30 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +49 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts +2 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtParts.js +2 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +12 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +26 -0
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -0
- package/dist/primitives/chainOfThought.d.ts +4 -0
- package/dist/primitives/chainOfThought.d.ts.map +1 -0
- package/dist/primitives/chainOfThought.js +13 -0
- package/dist/primitives/chainOfThought.js.map +1 -0
- package/dist/primitives/composer/ComposerAddAttachment.d.ts +26 -0
- package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerAddAttachment.js +56 -0
- package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -0
- package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts +16 -0
- package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerAttachmentDropzone.js +66 -0
- package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -0
- package/dist/primitives/composer/ComposerAttachments.d.ts +2 -0
- package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerAttachments.js +2 -0
- package/dist/primitives/composer/ComposerCancel.d.ts +37 -0
- package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerCancel.js +32 -0
- package/dist/primitives/composer/ComposerCancel.js.map +1 -0
- package/dist/primitives/composer/ComposerCompactContext.d.ts +7 -0
- package/dist/primitives/composer/ComposerCompactContext.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerCompactContext.js +8 -0
- package/dist/primitives/composer/ComposerCompactContext.js.map +1 -0
- package/dist/primitives/composer/ComposerDictate.d.ts +29 -0
- package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerDictate.js +25 -0
- package/dist/primitives/composer/ComposerDictate.js.map +1 -0
- package/dist/primitives/composer/ComposerDictationTranscript.d.ts +27 -0
- package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerDictationTranscript.js +42 -0
- package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -0
- package/dist/primitives/composer/ComposerIf.d.ts +3 -0
- package/dist/primitives/composer/ComposerIf.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerIf.js +2 -0
- package/dist/primitives/composer/ComposerInput.d.ts +132 -0
- package/dist/primitives/composer/ComposerInput.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerInput.js +239 -0
- package/dist/primitives/composer/ComposerInput.js.map +1 -0
- package/dist/primitives/composer/ComposerInputPluginContext.d.ts +40 -0
- package/dist/primitives/composer/ComposerInputPluginContext.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerInputPluginContext.js +30 -0
- package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -0
- package/dist/primitives/composer/ComposerQueue.d.ts +2 -0
- package/dist/primitives/composer/ComposerQueue.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerQueue.js +2 -0
- package/dist/primitives/composer/ComposerQuote.d.ts +58 -0
- package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerQuote.js +95 -0
- package/dist/primitives/composer/ComposerQuote.js.map +1 -0
- package/dist/primitives/composer/ComposerResume.d.ts +27 -0
- package/dist/primitives/composer/ComposerResume.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerResume.js +24 -0
- package/dist/primitives/composer/ComposerResume.js.map +1 -0
- package/dist/primitives/composer/ComposerRoot.d.ts +56 -0
- package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerRoot.js +96 -0
- package/dist/primitives/composer/ComposerRoot.js.map +1 -0
- package/dist/primitives/composer/ComposerSend.d.ts +34 -0
- package/dist/primitives/composer/ComposerSend.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerSend.js +28 -0
- package/dist/primitives/composer/ComposerSend.js.map +1 -0
- package/dist/primitives/composer/ComposerStopDictation.d.ts +29 -0
- package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -0
- package/dist/primitives/composer/ComposerStopDictation.js +29 -0
- package/dist/primitives/composer/ComposerStopDictation.js.map +1 -0
- package/dist/primitives/composer/composerInputSelector.d.ts +3 -0
- package/dist/primitives/composer/composerInputSelector.d.ts.map +1 -0
- package/dist/primitives/composer/composerInputSelector.js +6 -0
- package/dist/primitives/composer/composerInputSelector.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopover.d.ts +63 -0
- package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopover.js +161 -0
- package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts +30 -0
- package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverAction.js +49 -0
- package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts +16 -0
- package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverBack.js +34 -0
- package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts +34 -0
- package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +70 -0
- package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts +27 -0
- package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverDirective.js +41 -0
- package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts +36 -0
- package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverItems.js +71 -0
- package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +48 -0
- package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverResource.js +67 -0
- package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts +58 -0
- package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +128 -0
- package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -0
- package/dist/primitives/composer/trigger/detectTrigger.d.ts +18 -0
- package/dist/primitives/composer/trigger/detectTrigger.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/detectTrigger.js +39 -0
- package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -0
- package/dist/primitives/composer/trigger/index.d.ts +20 -0
- package/dist/primitives/composer/trigger/index.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/index.js +15 -0
- package/dist/primitives/composer/trigger/index.js.map +1 -0
- package/dist/primitives/composer/trigger/matchesTriggerItemQuery.d.ts +3 -0
- package/dist/primitives/composer/trigger/matchesTriggerItemQuery.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/matchesTriggerItemQuery.js +8 -0
- package/dist/primitives/composer/trigger/matchesTriggerItemQuery.js.map +1 -0
- package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +17 -0
- package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/triggerDetectionResource.js +25 -0
- package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -0
- package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +30 -0
- package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/triggerKeyboardResource.js +85 -0
- package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -0
- package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +23 -0
- package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/triggerNavigationResource.js +88 -0
- package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -0
- package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +37 -0
- package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -0
- package/dist/primitives/composer/trigger/triggerSelectionResource.js +52 -0
- package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -0
- package/dist/primitives/composer/useComposerCancelWithFocus.d.ts +2 -0
- package/dist/primitives/composer/useComposerCancelWithFocus.d.ts.map +1 -0
- package/dist/primitives/composer/useComposerCancelWithFocus.js +31 -0
- package/dist/primitives/composer/useComposerCancelWithFocus.js.map +1 -0
- package/dist/primitives/composer/useComposerInputState.d.ts +11 -0
- package/dist/primitives/composer/useComposerInputState.d.ts.map +1 -0
- package/dist/primitives/composer/useComposerInputState.js +33 -0
- package/dist/primitives/composer/useComposerInputState.js.map +1 -0
- package/dist/primitives/composer/useTextareaAutosize.d.ts +13 -0
- package/dist/primitives/composer/useTextareaAutosize.d.ts.map +1 -0
- package/dist/primitives/composer/useTextareaAutosize.js +113 -0
- package/dist/primitives/composer/useTextareaAutosize.js.map +1 -0
- package/dist/primitives/composer.d.ts +73 -0
- package/dist/primitives/composer.d.ts.map +1 -0
- package/dist/primitives/composer.js +64 -0
- package/dist/primitives/composer.js.map +1 -0
- package/dist/primitives/dropdownMenuRenderPrimitives.d.ts +173 -0
- package/dist/primitives/dropdownMenuRenderPrimitives.d.ts.map +1 -0
- package/dist/primitives/dropdownMenuRenderPrimitives.js +10 -0
- package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -0
- package/dist/primitives/error/ErrorMessage.d.ts +12 -0
- package/dist/primitives/error/ErrorMessage.d.ts.map +1 -0
- package/dist/primitives/error/ErrorMessage.js +27 -0
- package/dist/primitives/error/ErrorMessage.js.map +1 -0
- package/dist/primitives/error/ErrorRoot.d.ts +12 -0
- package/dist/primitives/error/ErrorRoot.d.ts.map +1 -0
- package/dist/primitives/error/ErrorRoot.js +27 -0
- package/dist/primitives/error/ErrorRoot.js.map +1 -0
- package/dist/primitives/error.d.ts +3 -0
- package/dist/primitives/error.d.ts.map +1 -0
- package/dist/primitives/error.js +11 -0
- package/dist/primitives/error.js.map +1 -0
- package/dist/primitives/message/MessageAttachments.d.ts +2 -0
- package/dist/primitives/message/MessageAttachments.d.ts.map +1 -0
- package/dist/primitives/message/MessageAttachments.js +2 -0
- package/dist/primitives/message/MessageError.d.ts +7 -0
- package/dist/primitives/message/MessageError.d.ts.map +1 -0
- package/dist/primitives/message/MessageError.js +14 -0
- package/dist/primitives/message/MessageError.js.map +1 -0
- package/dist/primitives/message/MessageIf.d.ts +27 -0
- package/dist/primitives/message/MessageIf.d.ts.map +1 -0
- package/dist/primitives/message/MessageIf.js +54 -0
- package/dist/primitives/message/MessageIf.js.map +1 -0
- package/dist/primitives/message/MessageParts.d.ts +7 -0
- package/dist/primitives/message/MessageParts.d.ts.map +1 -0
- package/dist/primitives/message/MessageParts.js +40 -0
- package/dist/primitives/message/MessageParts.js.map +1 -0
- package/dist/primitives/message/MessagePartsGrouped.d.ts +153 -0
- package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -0
- package/dist/primitives/message/MessagePartsGrouped.js +114 -0
- package/dist/primitives/message/MessagePartsGrouped.js.map +1 -0
- package/dist/primitives/message/MessageRoot.d.ts +35 -0
- package/dist/primitives/message/MessageRoot.d.ts.map +1 -0
- package/dist/primitives/message/MessageRoot.js +104 -0
- package/dist/primitives/message/MessageRoot.js.map +1 -0
- package/dist/primitives/message.d.ts +13 -0
- package/dist/primitives/message.d.ts.map +1 -0
- package/dist/primitives/message.js +27 -0
- package/dist/primitives/message.js.map +1 -0
- package/dist/primitives/messagePart/MessagePartImage.d.ts +12 -0
- package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -0
- package/dist/primitives/messagePart/MessagePartImage.js +27 -0
- package/dist/primitives/messagePart/MessagePartImage.js.map +1 -0
- package/dist/primitives/messagePart/MessagePartInProgress.d.ts +2 -0
- package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -0
- package/dist/primitives/messagePart/MessagePartInProgress.js +2 -0
- package/dist/primitives/messagePart/MessagePartText.d.ts +19 -0
- package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -0
- package/dist/primitives/messagePart/MessagePartText.js +33 -0
- package/dist/primitives/messagePart/MessagePartText.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartData.d.ts +18 -0
- package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartData.js +32 -0
- package/dist/primitives/messagePart/useMessagePartData.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartFile.d.ts +19 -0
- package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartFile.js +33 -0
- package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartImage.d.ts +19 -0
- package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartImage.js +32 -0
- package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +19 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.js +32 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartSource.d.ts +39 -0
- package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartSource.js +34 -0
- package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartText.d.ts +21 -0
- package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartText.js +32 -0
- package/dist/primitives/messagePart/useMessagePartText.js.map +1 -0
- package/dist/primitives/messagePart.d.ts +5 -0
- package/dist/primitives/messagePart.d.ts.map +1 -0
- package/dist/primitives/messagePart.js +15 -0
- package/dist/primitives/messagePart.js.map +1 -0
- package/dist/primitives/queueItem/QueueItemRemove.d.ts +25 -0
- package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -0
- package/dist/primitives/queueItem/QueueItemRemove.js +23 -0
- package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -0
- package/dist/primitives/queueItem/QueueItemSteer.d.ts +25 -0
- package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -0
- package/dist/primitives/queueItem/QueueItemSteer.js +23 -0
- package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -0
- package/dist/primitives/queueItem/QueueItemText.d.ts +20 -0
- package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -0
- package/dist/primitives/queueItem/QueueItemText.js +35 -0
- package/dist/primitives/queueItem/QueueItemText.js.map +1 -0
- package/dist/primitives/queueItem.d.ts +4 -0
- package/dist/primitives/queueItem.d.ts.map +1 -0
- package/dist/primitives/queueItem.js +13 -0
- package/dist/primitives/queueItem.js.map +1 -0
- package/dist/primitives/reasoning/useScrollLock.d.ts +29 -0
- package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -0
- package/dist/primitives/reasoning/useScrollLock.js +108 -0
- package/dist/primitives/reasoning/useScrollLock.js.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts +13 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +43 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts +20 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts.map +1 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +147 -0
- package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -0
- package/dist/primitives/selectionToolbar.d.ts +3 -0
- package/dist/primitives/selectionToolbar.d.ts.map +1 -0
- package/dist/primitives/selectionToolbar.js +11 -0
- package/dist/primitives/selectionToolbar.js.map +1 -0
- package/dist/primitives/suggestion/SuggestionDescription.d.ts +13 -0
- package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -0
- package/dist/primitives/suggestion/SuggestionDescription.js +28 -0
- package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -0
- package/dist/primitives/suggestion/SuggestionTitle.d.ts +20 -0
- package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -0
- package/dist/primitives/suggestion/SuggestionTitle.js +35 -0
- package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -0
- package/dist/primitives/suggestion/SuggestionTrigger.d.ts +72 -0
- package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -0
- package/dist/primitives/suggestion/SuggestionTrigger.js +29 -0
- package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -0
- package/dist/primitives/suggestion.d.ts +4 -0
- package/dist/primitives/suggestion.d.ts.map +1 -0
- package/dist/primitives/suggestion.js +13 -0
- package/dist/primitives/suggestion.js.map +1 -0
- package/dist/primitives/thread/ThreadEmpty.d.ts +11 -0
- package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadEmpty.js +17 -0
- package/dist/primitives/thread/ThreadEmpty.js.map +1 -0
- package/dist/primitives/thread/ThreadIf.d.ts +19 -0
- package/dist/primitives/thread/ThreadIf.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadIf.js +33 -0
- package/dist/primitives/thread/ThreadIf.js.map +1 -0
- package/dist/primitives/thread/ThreadLoadEarlier.d.ts +23 -0
- package/dist/primitives/thread/ThreadLoadEarlier.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadLoadEarlier.js +23 -0
- package/dist/primitives/thread/ThreadLoadEarlier.js.map +1 -0
- package/dist/primitives/thread/ThreadMessages.d.ts +2 -0
- package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadMessages.js +2 -0
- package/dist/primitives/thread/ThreadRoot.d.ts +37 -0
- package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadRoot.js +84 -0
- package/dist/primitives/thread/ThreadRoot.js.map +1 -0
- package/dist/primitives/thread/ThreadRootElementContext.d.ts +4 -0
- package/dist/primitives/thread/ThreadRootElementContext.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadRootElementContext.js +8 -0
- package/dist/primitives/thread/ThreadRootElementContext.js.map +1 -0
- package/dist/primitives/thread/ThreadScrollToBottom.d.ts +22 -0
- package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadScrollToBottom.js +17 -0
- package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -0
- package/dist/primitives/thread/ThreadSuggestion.d.ts +80 -0
- package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadSuggestion.js +23 -0
- package/dist/primitives/thread/ThreadSuggestion.js.map +1 -0
- package/dist/primitives/thread/ThreadSuggestions.d.ts +2 -0
- package/dist/primitives/thread/ThreadSuggestions.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadSuggestions.js +2 -0
- package/dist/primitives/thread/ThreadViewport.d.ts +115 -0
- package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadViewport.js +96 -0
- package/dist/primitives/thread/ThreadViewport.js.map +1 -0
- package/dist/primitives/thread/ThreadViewportFooter.d.ts +13 -0
- package/dist/primitives/thread/ThreadViewportFooter.d.ts.map +1 -0
- package/dist/primitives/thread/ThreadViewportFooter.js +39 -0
- package/dist/primitives/thread/ThreadViewportFooter.js.map +1 -0
- package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts +22 -0
- package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts.map +1 -0
- package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js +51 -0
- package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js.map +1 -0
- package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts +5 -0
- package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts.map +1 -0
- package/dist/primitives/thread/topAnchor/createReserveObservers.js +37 -0
- package/dist/primitives/thread/topAnchor/createReserveObservers.js.map +1 -0
- package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts +26 -0
- package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts.map +1 -0
- package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js +139 -0
- package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -0
- package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts +27 -0
- package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts.map +1 -0
- package/dist/primitives/thread/topAnchor/topAnchorTurn.js +30 -0
- package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -0
- package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts +15 -0
- package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts.map +1 -0
- package/dist/primitives/thread/topAnchor/topAnchorUtils.js +46 -0
- package/dist/primitives/thread/topAnchor/topAnchorUtils.js.map +1 -0
- package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts +8 -0
- package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts.map +1 -0
- package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js +21 -0
- package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js.map +1 -0
- package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts +32 -0
- package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -0
- package/dist/primitives/thread/useThreadViewportAutoScroll.js +74 -0
- package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -0
- package/dist/primitives/thread.d.ts +15 -0
- package/dist/primitives/thread.d.ts.map +1 -0
- package/dist/primitives/thread.js +33 -0
- package/dist/primitives/thread.js.map +1 -0
- package/dist/primitives/threadList/ThreadListItems.d.ts +2 -0
- package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -0
- package/dist/primitives/threadList/ThreadListItems.js +2 -0
- package/dist/primitives/threadList/ThreadListLoadMore.d.ts +17 -0
- package/dist/primitives/threadList/ThreadListLoadMore.d.ts.map +1 -0
- package/dist/primitives/threadList/ThreadListLoadMore.js +13 -0
- package/dist/primitives/threadList/ThreadListLoadMore.js.map +1 -0
- package/dist/primitives/threadList/ThreadListNew.d.ts +11 -0
- package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -0
- package/dist/primitives/threadList/ThreadListNew.js +29 -0
- package/dist/primitives/threadList/ThreadListNew.js.map +1 -0
- package/dist/primitives/threadList/ThreadListRoot.d.ts +12 -0
- package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -0
- package/dist/primitives/threadList/ThreadListRoot.js +25 -0
- package/dist/primitives/threadList/ThreadListRoot.js.map +1 -0
- package/dist/primitives/threadList.d.ts +6 -0
- package/dist/primitives/threadList.d.ts.map +1 -0
- package/dist/primitives/threadList.js +16 -0
- package/dist/primitives/threadList.js.map +1 -0
- package/dist/primitives/threadListFocusGroup.d.ts +28 -0
- package/dist/primitives/threadListFocusGroup.d.ts.map +1 -0
- package/dist/primitives/threadListFocusGroup.js +64 -0
- package/dist/primitives/threadListFocusGroup.js.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +17 -0
- package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemArchive.js +12 -0
- package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +17 -0
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemDelete.js +12 -0
- package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +12 -0
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemRoot.js +61 -0
- package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -0
- package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemTitle.js +2 -0
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +13 -0
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemTrigger.js +35 -0
- package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +17 -0
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -0
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.js +13 -0
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -0
- package/dist/primitives/threadListItem.d.ts +7 -0
- package/dist/primitives/threadListItem.d.ts.map +1 -0
- package/dist/primitives/threadListItem.js +19 -0
- package/dist/primitives/threadListItem.js.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +47 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +48 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +19 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +24 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +19 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +45 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +16 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +24 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +17 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +42 -0
- package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -0
- package/dist/primitives/threadListItemMore/scope.d.ts +5 -0
- package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore/scope.js +7 -0
- package/dist/primitives/threadListItemMore/scope.js.map +1 -0
- package/dist/primitives/threadListItemMore.d.ts +6 -0
- package/dist/primitives/threadListItemMore.d.ts.map +1 -0
- package/dist/primitives/threadListItemMore.js +17 -0
- package/dist/primitives/threadListItemMore.js.map +1 -0
- package/dist/sandbox-host/SandboxHost.d.ts +38 -0
- package/dist/sandbox-host/SandboxHost.d.ts.map +1 -0
- package/dist/sandbox-host/SandboxHost.js +146 -0
- package/dist/sandbox-host/SandboxHost.js.map +1 -0
- package/dist/unstable/useComposerInput.d.ts +87 -0
- package/dist/unstable/useComposerInput.d.ts.map +1 -0
- package/dist/unstable/useComposerInput.js +77 -0
- package/dist/unstable/useComposerInput.js.map +1 -0
- package/dist/unstable/useComposerInputHistory.d.ts +27 -0
- package/dist/unstable/useComposerInputHistory.d.ts.map +1 -0
- package/dist/unstable/useComposerInputHistory.js +125 -0
- package/dist/unstable/useComposerInputHistory.js.map +1 -0
- package/dist/unstable/useLiveCompletionAdapter.d.ts +52 -0
- package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -0
- package/dist/unstable/useLiveCompletionAdapter.js +184 -0
- package/dist/unstable/useLiveCompletionAdapter.js.map +1 -0
- package/dist/unstable/useMentionAdapter.d.ts +95 -0
- package/dist/unstable/useMentionAdapter.d.ts.map +1 -0
- package/dist/unstable/useMentionAdapter.js +129 -0
- package/dist/unstable/useMentionAdapter.js.map +1 -0
- package/dist/unstable/useMessageStallDetection.d.ts +30 -0
- package/dist/unstable/useMessageStallDetection.d.ts.map +1 -0
- package/dist/unstable/useMessageStallDetection.js +92 -0
- package/dist/unstable/useMessageStallDetection.js.map +1 -0
- package/dist/unstable/useModelContextSnapshot.d.ts +32 -0
- package/dist/unstable/useModelContextSnapshot.d.ts.map +1 -0
- package/dist/unstable/useModelContextSnapshot.js +46 -0
- package/dist/unstable/useModelContextSnapshot.js.map +1 -0
- package/dist/unstable/useSlashCommandAdapter.d.ts +53 -0
- package/dist/unstable/useSlashCommandAdapter.d.ts.map +1 -0
- package/dist/unstable/useSlashCommandAdapter.js +84 -0
- package/dist/unstable/useSlashCommandAdapter.js.map +1 -0
- package/dist/unstable/webmcp/WebMcpRegistrationResource.d.ts +12 -0
- package/dist/unstable/webmcp/WebMcpRegistrationResource.d.ts.map +1 -0
- package/dist/unstable/webmcp/WebMcpRegistrationResource.js +47 -0
- package/dist/unstable/webmcp/WebMcpRegistrationResource.js.map +1 -0
- package/dist/unstable/webmcp/convertTools.d.ts +18 -0
- package/dist/unstable/webmcp/convertTools.d.ts.map +1 -0
- package/dist/unstable/webmcp/convertTools.js +160 -0
- package/dist/unstable/webmcp/convertTools.js.map +1 -0
- package/dist/unstable/webmcp/useWebMcpProvider.d.ts +23 -0
- package/dist/unstable/webmcp/useWebMcpProvider.d.ts.map +1 -0
- package/dist/unstable/webmcp/useWebMcpProvider.js +111 -0
- package/dist/unstable/webmcp/useWebMcpProvider.js.map +1 -0
- package/dist/unstable/webmcp/webmcp-host.d.ts +36 -0
- package/dist/unstable/webmcp/webmcp-host.d.ts.map +1 -0
- package/dist/unstable/webmcp/webmcp-host.js +28 -0
- package/dist/unstable/webmcp/webmcp-host.js.map +1 -0
- package/dist/utils/Primitive.d.ts +28 -0
- package/dist/utils/Primitive.d.ts.map +1 -0
- package/dist/utils/Primitive.js +229 -0
- package/dist/utils/Primitive.js.map +1 -0
- package/dist/utils/RequireAtLeastOne.d.ts +4 -0
- package/dist/utils/RequireAtLeastOne.d.ts.map +1 -0
- package/dist/utils/RequireAtLeastOne.js +0 -0
- package/dist/utils/createActionButton.d.ts +18 -0
- package/dist/utils/createActionButton.d.ts.map +1 -0
- package/dist/utils/createActionButton.js +39 -0
- package/dist/utils/createActionButton.js.map +1 -0
- package/dist/utils/getSelectionMessageId.d.ts +2 -0
- package/dist/utils/getSelectionMessageId.d.ts.map +1 -0
- package/dist/utils/getSelectionMessageId.js +84 -0
- package/dist/utils/getSelectionMessageId.js.map +1 -0
- package/dist/utils/hooks/useManagedRef.d.ts +2 -0
- package/dist/utils/hooks/useManagedRef.d.ts.map +1 -0
- package/dist/utils/hooks/useManagedRef.js +15 -0
- package/dist/utils/hooks/useManagedRef.js.map +1 -0
- package/dist/utils/hooks/useMediaQuery.d.ts +3 -0
- package/dist/utils/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/utils/hooks/useMediaQuery.js +33 -0
- package/dist/utils/hooks/useMediaQuery.js.map +1 -0
- package/dist/utils/hooks/useOnScrollToBottom.d.ts +7 -0
- package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -0
- package/dist/utils/hooks/useOnScrollToBottom.js +15 -0
- package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -0
- package/dist/utils/hooks/useSizeHandle.d.ts +12 -0
- package/dist/utils/hooks/useSizeHandle.d.ts.map +1 -0
- package/dist/utils/hooks/useSizeHandle.js +33 -0
- package/dist/utils/hooks/useSizeHandle.js.map +1 -0
- package/dist/utils/isCompositionKey.d.ts +2 -0
- package/dist/utils/isCompositionKey.d.ts.map +1 -0
- package/dist/utils/isCompositionKey.js +5 -0
- package/dist/utils/isCompositionKey.js.map +1 -0
- package/dist/utils/smooth/SmoothContext.d.ts +117 -0
- package/dist/utils/smooth/SmoothContext.d.ts.map +1 -0
- package/dist/utils/smooth/SmoothContext.js +40 -0
- package/dist/utils/smooth/SmoothContext.js.map +1 -0
- package/dist/utils/smooth/useSmooth.d.ts +63 -0
- package/dist/utils/smooth/useSmooth.d.ts.map +1 -0
- package/dist/utils/smooth/useSmooth.js +144 -0
- package/dist/utils/smooth/useSmooth.js.map +1 -0
- package/dist/utils/useIsomorphicLayoutEffect.d.ts +2 -0
- package/dist/utils/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/utils/useIsomorphicLayoutEffect.js +1 -0
- package/package.json +115 -3
- package/src/adapters/OpenAIRealtimeVoiceAdapter.test.ts +761 -0
- package/src/adapters/OpenAIRealtimeVoiceAdapter.ts +388 -0
- package/src/assistant-transport.ts +98 -0
- package/src/augmentations.ts +35 -0
- package/src/context/ReadonlyStore.ts +7 -0
- package/src/context/index.ts +23 -0
- package/src/context/providers/AttachmentByIndexProvider.tsx +6 -0
- package/src/context/providers/ChainOfThoughtByIndicesProvider.tsx +3 -0
- package/src/context/providers/MessageByIndexProvider.tsx +3 -0
- package/src/context/providers/MessageProvider.tsx +34 -0
- package/src/context/providers/PartByIndexProvider.tsx +3 -0
- package/src/context/providers/SuggestionByIndexProvider.tsx +6 -0
- package/src/context/providers/TextMessagePartProvider.tsx +3 -0
- package/src/context/providers/ThreadListItemProvider.tsx +6 -0
- package/src/context/providers/ThreadViewportProvider.tsx +49 -0
- package/src/context/providers/vue-providers.test.tsx +326 -0
- package/src/context/stores/ThreadViewport.test.ts +29 -0
- package/src/context/stores/ThreadViewport.ts +278 -0
- package/src/context/vue/ThreadViewportContext.ts +22 -0
- package/src/context/vue/utils/createContextHook.ts +26 -0
- package/src/context/vue/utils/createContextStoreHook.ts +93 -0
- package/src/devtools/DevToolsHooks.test.ts +40 -0
- package/src/devtools/DevToolsHooks.ts +142 -0
- package/src/hooks/message-readers.test.ts +128 -0
- package/src/hooks/useMessageQuote.ts +25 -0
- package/src/hooks/useMessageTiming.ts +26 -0
- package/src/hooks/useToolCallElapsed.test.tsx +172 -0
- package/src/hooks/useToolCallElapsed.ts +65 -0
- package/src/index.ts +623 -0
- package/src/internal.ts +33 -0
- package/src/legacy-runtime/AssistantRuntimeProvider.tsx +61 -0
- package/src/mcp-apps/McpAppRenderer.composer.test.tsx +129 -0
- package/src/mcp-apps/McpAppRenderer.test.tsx +906 -0
- package/src/mcp-apps/McpAppRenderer.tsx +411 -0
- package/src/mcp-apps/McpAppsRemoteHost.concurrent.test.tsx +226 -0
- package/src/mcp-apps/McpAppsRemoteHost.test.ts +152 -0
- package/src/mcp-apps/McpAppsRemoteHost.ts +160 -0
- package/src/mcp-apps/app-frame.test.tsx +648 -0
- package/src/mcp-apps/app-frame.tsx +351 -0
- package/src/mcp-apps/bridge.test.ts +836 -0
- package/src/mcp-apps/bridge.ts +538 -0
- package/src/mcp-apps/csp.test.ts +112 -0
- package/src/mcp-apps/csp.ts +124 -0
- package/src/mcp-apps/index.ts +23 -0
- package/src/mcp-apps/types.ts +176 -0
- package/src/mcp-apps/utils.ts +23 -0
- package/src/model-context/frame/SPEC_AssistantFrame.md +105 -0
- package/src/model-context/frame/useAssistantFrameHost.detach.test.tsx +155 -0
- package/src/model-context/frame/useAssistantFrameHost.reload.test.tsx +116 -0
- package/src/model-context/frame/useAssistantFrameHost.test.tsx +43 -0
- package/src/model-context/frame/useAssistantFrameHost.ts +137 -0
- package/src/model-context/makeAssistantVisible.test.tsx +460 -0
- package/src/model-context/makeAssistantVisible.tsx +184 -0
- package/src/model-context/registry/SPEC_ModelContextRegistry.md +40 -0
- package/src/primitives/actionBar/ActionBarCopy.test.tsx +28 -0
- package/src/primitives/actionBar/ActionBarCopy.tsx +100 -0
- package/src/primitives/actionBar/ActionBarEdit.ts +63 -0
- package/src/primitives/actionBar/ActionBarExportMarkdown.test.tsx +83 -0
- package/src/primitives/actionBar/ActionBarExportMarkdown.tsx +65 -0
- package/src/primitives/actionBar/ActionBarFeedback.test.tsx +59 -0
- package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +48 -0
- package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +48 -0
- package/src/primitives/actionBar/ActionBarInteractionContext.ts +13 -0
- package/src/primitives/actionBar/ActionBarReload.ts +64 -0
- package/src/primitives/actionBar/ActionBarRoot.tsx +119 -0
- package/src/primitives/actionBar/ActionBarSpeak.ts +25 -0
- package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +24 -0
- package/src/primitives/actionBar/useActionBarFloatStatus.ts +48 -0
- package/src/primitives/actionBar.ts +9 -0
- package/src/primitives/actionBarMore/ActionBarMoreContent.tsx +45 -0
- package/src/primitives/actionBarMore/ActionBarMoreItem.tsx +22 -0
- package/src/primitives/actionBarMore/ActionBarMoreRoot.test.ts +70 -0
- package/src/primitives/actionBarMore/ActionBarMoreRoot.tsx +46 -0
- package/src/primitives/actionBarMore/ActionBarMoreSeparator.tsx +26 -0
- package/src/primitives/actionBarMore/ActionBarMoreTrigger.tsx +26 -0
- package/src/primitives/actionBarMore/scope.ts +6 -0
- package/src/primitives/actionBarMore.ts +5 -0
- package/src/primitives/assistantModal/AssistantModalAnchor.tsx +22 -0
- package/src/primitives/assistantModal/AssistantModalContent.tsx +85 -0
- package/src/primitives/assistantModal/AssistantModalRoot.test.tsx +153 -0
- package/src/primitives/assistantModal/AssistantModalRoot.tsx +48 -0
- package/src/primitives/assistantModal/AssistantModalTrigger.test.tsx +65 -0
- package/src/primitives/assistantModal/AssistantModalTrigger.tsx +22 -0
- package/src/primitives/assistantModal/popoverRenderPrimitives.ts +6 -0
- package/src/primitives/assistantModal/scope.ts +6 -0
- package/src/primitives/assistantModal.ts +4 -0
- package/src/primitives/attachment/AttachmentName.tsx +16 -0
- package/src/primitives/attachment/AttachmentRemove.ts +28 -0
- package/src/primitives/attachment/AttachmentRoot.tsx +52 -0
- package/src/primitives/attachment/AttachmentThumb.test.tsx +179 -0
- package/src/primitives/attachment/AttachmentThumb.tsx +41 -0
- package/src/primitives/attachment.ts +7 -0
- package/src/primitives/branchPicker/BranchPickerCount.tsx +33 -0
- package/src/primitives/branchPicker/BranchPickerNext.ts +42 -0
- package/src/primitives/branchPicker/BranchPickerNumber.tsx +16 -0
- package/src/primitives/branchPicker/BranchPickerPrevious.ts +42 -0
- package/src/primitives/branchPicker/BranchPickerRoot.tsx +64 -0
- package/src/primitives/branchPicker.ts +5 -0
- package/src/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.test.tsx +116 -0
- package/src/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.tsx +63 -0
- package/src/primitives/chainOfThought/ChainOfThoughtParts.tsx +3 -0
- package/src/primitives/chainOfThought/ChainOfThoughtRoot.tsx +33 -0
- package/src/primitives/chainOfThought.ts +14 -0
- package/src/primitives/composer/ComposerAddAttachment.test.tsx +101 -0
- package/src/primitives/composer/ComposerAddAttachment.thread-scope.test.tsx +225 -0
- package/src/primitives/composer/ComposerAddAttachment.ts +88 -0
- package/src/primitives/composer/ComposerAttachmentDropzone.test.tsx +351 -0
- package/src/primitives/composer/ComposerAttachmentDropzone.tsx +109 -0
- package/src/primitives/composer/ComposerAttachments.tsx +6 -0
- package/src/primitives/composer/ComposerCancel.focus.test.tsx +324 -0
- package/src/primitives/composer/ComposerCancel.ts +52 -0
- package/src/primitives/composer/ComposerCompactContext.tsx +10 -0
- package/src/primitives/composer/ComposerDictate.ts +37 -0
- package/src/primitives/composer/ComposerDictationTranscript.tsx +55 -0
- package/src/primitives/composer/ComposerDisabledThread.test.tsx +118 -0
- package/src/primitives/composer/ComposerIf.ts +4 -0
- package/src/primitives/composer/ComposerInput.focus-on-run-start.test.tsx +145 -0
- package/src/primitives/composer/ComposerInput.test.tsx +712 -0
- package/src/primitives/composer/ComposerInput.text-change.test.tsx +77 -0
- package/src/primitives/composer/ComposerInput.thread-scope.test.tsx +83 -0
- package/src/primitives/composer/ComposerInput.tsx +462 -0
- package/src/primitives/composer/ComposerInputPluginContext.tsx +80 -0
- package/src/primitives/composer/ComposerPreview.native.test.ts +157 -0
- package/src/primitives/composer/ComposerQueue.tsx +3 -0
- package/src/primitives/composer/ComposerQuote.tsx +143 -0
- package/src/primitives/composer/ComposerResume.ts +35 -0
- package/src/primitives/composer/ComposerRoot.test.tsx +429 -0
- package/src/primitives/composer/ComposerRoot.tsx +155 -0
- package/src/primitives/composer/ComposerSend.ts +43 -0
- package/src/primitives/composer/ComposerStopDictation.ts +43 -0
- package/src/primitives/composer/composerInputSelector.ts +4 -0
- package/src/primitives/composer/trigger/TriggerPopover.native.test.ts +309 -0
- package/src/primitives/composer/trigger/TriggerPopover.tsx +248 -0
- package/src/primitives/composer/trigger/TriggerPopoverAction.tsx +61 -0
- package/src/primitives/composer/trigger/TriggerPopoverBack.tsx +51 -0
- package/src/primitives/composer/trigger/TriggerPopoverBehavior.test.tsx +113 -0
- package/src/primitives/composer/trigger/TriggerPopoverCategories.tsx +123 -0
- package/src/primitives/composer/trigger/TriggerPopoverDirective.tsx +55 -0
- package/src/primitives/composer/trigger/TriggerPopoverExports.test.ts +61 -0
- package/src/primitives/composer/trigger/TriggerPopoverItems.tsx +121 -0
- package/src/primitives/composer/trigger/TriggerPopoverResource.ts +146 -0
- package/src/primitives/composer/trigger/TriggerPopoverRootContext.test.tsx +159 -0
- package/src/primitives/composer/trigger/TriggerPopoverRootContext.tsx +236 -0
- package/src/primitives/composer/trigger/detectTrigger.test.ts +197 -0
- package/src/primitives/composer/trigger/detectTrigger.ts +78 -0
- package/src/primitives/composer/trigger/index.ts +33 -0
- package/src/primitives/composer/trigger/matchesTriggerItemQuery.test.ts +52 -0
- package/src/primitives/composer/trigger/matchesTriggerItemQuery.ts +13 -0
- package/src/primitives/composer/trigger/triggerDetectionResource.ts +47 -0
- package/src/primitives/composer/trigger/triggerKeyboardResource.test.ts +233 -0
- package/src/primitives/composer/trigger/triggerKeyboardResource.ts +150 -0
- package/src/primitives/composer/trigger/triggerNavigationResource.ts +129 -0
- package/src/primitives/composer/trigger/triggerSelectionResource.test.ts +173 -0
- package/src/primitives/composer/trigger/triggerSelectionResource.ts +133 -0
- package/src/primitives/composer/useAuiState.composer.test.tsx +93 -0
- package/src/primitives/composer/useComposerCancelWithFocus.ts +51 -0
- package/src/primitives/composer/useComposerInputState.ts +58 -0
- package/src/primitives/composer/useTextareaAutosize.ts +140 -0
- package/src/primitives/composer.ts +88 -0
- package/src/primitives/dropdownMenuRenderPrimitives.test.tsx +64 -0
- package/src/primitives/dropdownMenuRenderPrimitives.ts +14 -0
- package/src/primitives/error/ErrorMessage.tsx +39 -0
- package/src/primitives/error/ErrorRoot.tsx +34 -0
- package/src/primitives/error.ts +2 -0
- package/src/primitives/message/MessageAttachments.tsx +6 -0
- package/src/primitives/message/MessageError.ts +13 -0
- package/src/primitives/message/MessageIf.test.tsx +83 -0
- package/src/primitives/message/MessageIf.ts +110 -0
- package/src/primitives/message/MessageParts.test.tsx +119 -0
- package/src/primitives/message/MessageParts.tsx +64 -0
- package/src/primitives/message/MessagePartsGrouped.test.tsx +682 -0
- package/src/primitives/message/MessagePartsGrouped.tool-interaction.test.tsx +97 -0
- package/src/primitives/message/MessagePartsGrouped.tsx +374 -0
- package/src/primitives/message/MessageRoot.anchors.test.ts +167 -0
- package/src/primitives/message/MessageRoot.test.tsx +272 -0
- package/src/primitives/message/MessageRoot.tsx +145 -0
- package/src/primitives/message.ts +15 -0
- package/src/primitives/messagePart/MessagePartImage.tsx +29 -0
- package/src/primitives/messagePart/MessagePartInProgress.ts +3 -0
- package/src/primitives/messagePart/MessagePartText.test.tsx +114 -0
- package/src/primitives/messagePart/MessagePartText.tsx +54 -0
- package/src/primitives/messagePart/useMessagePartData.test.ts +118 -0
- package/src/primitives/messagePart/useMessagePartData.ts +34 -0
- package/src/primitives/messagePart/useMessagePartFile.ts +42 -0
- package/src/primitives/messagePart/useMessagePartImage.ts +41 -0
- package/src/primitives/messagePart/useMessagePartReasoning.ts +42 -0
- package/src/primitives/messagePart/useMessagePartSource.ts +43 -0
- package/src/primitives/messagePart/useMessagePartText.ts +45 -0
- package/src/primitives/messagePart.ts +4 -0
- package/src/primitives/native-action-bindings.test.ts +181 -0
- package/src/primitives/native-display-bindings.test.ts +159 -0
- package/src/primitives/queueItem/QueueItemRemove.ts +36 -0
- package/src/primitives/queueItem/QueueItemSteer.ts +36 -0
- package/src/primitives/queueItem/QueueItemText.tsx +48 -0
- package/src/primitives/queueItem.ts +3 -0
- package/src/primitives/reasoning/useScrollLock.test.tsx +296 -0
- package/src/primitives/reasoning/useScrollLock.ts +160 -0
- package/src/primitives/selectionToolbar/SelectionToolbarQuote.tsx +56 -0
- package/src/primitives/selectionToolbar/SelectionToolbarRoot.test.tsx +439 -0
- package/src/primitives/selectionToolbar/SelectionToolbarRoot.tsx +206 -0
- package/src/primitives/selectionToolbar.ts +8 -0
- package/src/primitives/suggestion/SuggestionDescription.tsx +35 -0
- package/src/primitives/suggestion/SuggestionTitle.tsx +43 -0
- package/src/primitives/suggestion/SuggestionTrigger.ts +59 -0
- package/src/primitives/suggestion.ts +3 -0
- package/src/primitives/thread/ThreadEmpty.ts +19 -0
- package/src/primitives/thread/ThreadIf.ts +42 -0
- package/src/primitives/thread/ThreadLoadEarlier.tsx +34 -0
- package/src/primitives/thread/ThreadMessages.tsx +9 -0
- package/src/primitives/thread/ThreadRoot.test.tsx +419 -0
- package/src/primitives/thread/ThreadRoot.tsx +119 -0
- package/src/primitives/thread/ThreadRootElementContext.ts +9 -0
- package/src/primitives/thread/ThreadScrollToBottom.ts +45 -0
- package/src/primitives/thread/ThreadSuggestion.ts +55 -0
- package/src/primitives/thread/ThreadSuggestions.tsx +7 -0
- package/src/primitives/thread/ThreadViewport.thread-scope.test.tsx +58 -0
- package/src/primitives/thread/ThreadViewport.tsx +219 -0
- package/src/primitives/thread/ThreadViewportFooter.tsx +46 -0
- package/src/primitives/thread/topAnchor/computeTopAnchorSlack.test.ts +131 -0
- package/src/primitives/thread/topAnchor/computeTopAnchorSlack.ts +94 -0
- package/src/primitives/thread/topAnchor/createReserveObservers.ts +50 -0
- package/src/primitives/thread/topAnchor/mountTopAnchorReserve.test.ts +570 -0
- package/src/primitives/thread/topAnchor/mountTopAnchorReserve.ts +221 -0
- package/src/primitives/thread/topAnchor/topAnchorTurn.test.ts +115 -0
- package/src/primitives/thread/topAnchor/topAnchorTurn.ts +59 -0
- package/src/primitives/thread/topAnchor/topAnchorUtils.ts +58 -0
- package/src/primitives/thread/topAnchor/useTopAnchorReserve.ts +23 -0
- package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +1887 -0
- package/src/primitives/thread/useThreadViewportAutoScroll.ts +140 -0
- package/src/primitives/thread.ts +17 -0
- package/src/primitives/threadList/ThreadListItems.tsx +6 -0
- package/src/primitives/threadList/ThreadListLoadMore.tsx +25 -0
- package/src/primitives/threadList/ThreadListNew.tsx +47 -0
- package/src/primitives/threadList/ThreadListRoot.tsx +29 -0
- package/src/primitives/threadList.ts +5 -0
- package/src/primitives/threadListFocusGroup.ts +91 -0
- package/src/primitives/threadListItem/ThreadListItemArchive.ts +23 -0
- package/src/primitives/threadListItem/ThreadListItemDelete.ts +23 -0
- package/src/primitives/threadListItem/ThreadListItemRoot.tsx +100 -0
- package/src/primitives/threadListItem/ThreadListItemTitle.test.tsx +63 -0
- package/src/primitives/threadListItem/ThreadListItemTitle.tsx +3 -0
- package/src/primitives/threadListItem/ThreadListItemTrigger.tsx +51 -0
- package/src/primitives/threadListItem/ThreadListItemUnarchive.test.tsx +55 -0
- package/src/primitives/threadListItem/ThreadListItemUnarchive.ts +25 -0
- package/src/primitives/threadListItem/ThreadListKeyboardNav.test.tsx +348 -0
- package/src/primitives/threadListItem.ts +6 -0
- package/src/primitives/threadListItemMore/ThreadListItemMoreContent.tsx +81 -0
- package/src/primitives/threadListItemMore/ThreadListItemMoreItem.tsx +22 -0
- package/src/primitives/threadListItemMore/ThreadListItemMoreRoot.tsx +79 -0
- package/src/primitives/threadListItemMore/ThreadListItemMoreSeparator.tsx +26 -0
- package/src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx +62 -0
- package/src/primitives/threadListItemMore/scope.ts +6 -0
- package/src/primitives/threadListItemMore.ts +5 -0
- package/src/sandbox-host/SandboxHost.test.tsx +579 -0
- package/src/sandbox-host/SandboxHost.tsx +271 -0
- package/src/tests/DataRenderers.test.tsx +218 -0
- package/src/tests/MessageParts.loading.test.tsx +105 -0
- package/src/tests/MessageParts.rendererOptions.test.tsx +125 -0
- package/src/tests/RemoteThreadListRuntime.adapterProvider.test.tsx +187 -0
- package/src/tests/RemoteThreadListRuntime.deferredProvider.test.tsx +99 -0
- package/src/tests/RemoteThreadListRuntime.reloadMainThread.test.tsx +113 -0
- package/src/tests/augmentations.test.ts +95 -0
- package/src/tests/generative-ui.primitive.test.tsx +176 -0
- package/src/tests/generative-ui.test.tsx +130 -0
- package/src/tests/in-memory-thread-list.test.tsx +142 -0
- package/src/tests/local-runtime-queue.test.tsx +506 -0
- package/src/tests/messageAction.ts +67 -0
- package/src/tests/messagePartSwitchRace.test.tsx +222 -0
- package/src/tests/messagePartTypeMismatch.test.tsx +153 -0
- package/src/tests/remote-thread-list-test-helpers.ts +40 -0
- package/src/tests/setup.ts +5 -0
- package/src/tests/threadListItemIsRunning.test.tsx +215 -0
- package/src/tests/threadMessageById.test.tsx +293 -0
- package/src/tests/toolCallTiming.test.tsx +324 -0
- package/src/tests/vue.ts +124 -0
- package/src/unstable/useComposerInput.test.tsx +201 -0
- package/src/unstable/useComposerInput.ts +125 -0
- package/src/unstable/useComposerInputHistory.test.tsx +207 -0
- package/src/unstable/useComposerInputHistory.thread-scope.test.tsx +128 -0
- package/src/unstable/useComposerInputHistory.ts +163 -0
- package/src/unstable/useLiveCompletionAdapter.test.tsx +760 -0
- package/src/unstable/useLiveCompletionAdapter.ts +217 -0
- package/src/unstable/useMentionAdapter.test.tsx +380 -0
- package/src/unstable/useMentionAdapter.ts +276 -0
- package/src/unstable/useMessageStallDetection.lifecycle.test.ts +120 -0
- package/src/unstable/useMessageStallDetection.test.tsx +59 -0
- package/src/unstable/useMessageStallDetection.ts +147 -0
- package/src/unstable/useModelContextSnapshot.test.tsx +181 -0
- package/src/unstable/useModelContextSnapshot.ts +85 -0
- package/src/unstable/useSlashCommandAdapter.test.tsx +172 -0
- package/src/unstable/useSlashCommandAdapter.ts +145 -0
- package/src/unstable/webmcp/WebMcpRegistrationResource.test.ts +150 -0
- package/src/unstable/webmcp/WebMcpRegistrationResource.ts +92 -0
- package/src/unstable/webmcp/__tests__/webmcp.fake.tsx +177 -0
- package/src/unstable/webmcp/convertTools.test.ts +605 -0
- package/src/unstable/webmcp/convertTools.ts +256 -0
- package/src/unstable/webmcp/useWebMcpProvider.test.tsx +543 -0
- package/src/unstable/webmcp/useWebMcpProvider.ts +185 -0
- package/src/unstable/webmcp/webmcp-host.test.ts +142 -0
- package/src/unstable/webmcp/webmcp-host.ts +83 -0
- package/src/utils/Primitive.test.tsx +551 -0
- package/src/utils/Primitive.tsx +363 -0
- package/src/utils/RequireAtLeastOne.ts +7 -0
- package/src/utils/createActionButton.child-cancel.test.tsx +82 -0
- package/src/utils/createActionButton.test.tsx +114 -0
- package/src/utils/createActionButton.tsx +75 -0
- package/src/utils/getSelectionMessageId.test.ts +609 -0
- package/src/utils/getSelectionMessageId.ts +133 -0
- package/src/utils/hooks/useManagedRef.ts +19 -0
- package/src/utils/hooks/useMediaQuery.test.tsx +60 -0
- package/src/utils/hooks/useMediaQuery.ts +44 -0
- package/src/utils/hooks/useOnScrollToBottom.ts +23 -0
- package/src/utils/hooks/useSizeHandle.ts +39 -0
- package/src/utils/isCompositionKey.ts +5 -0
- package/src/utils/smooth/SmoothContext.test.tsx +224 -0
- package/src/utils/smooth/SmoothContext.tsx +82 -0
- package/src/utils/smooth/useSmooth.test.tsx +499 -0
- package/src/utils/smooth/useSmooth.ts +266 -0
- package/src/utils/useIsomorphicLayoutEffect.test.tsx +25 -0
- package/src/utils/useIsomorphicLayoutEffect.ts +1 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// src/mcp-apps/csp.ts
|
|
2
|
+
const isAllowedOrigin = (value, allowWebSocket) => {
|
|
3
|
+
if (!(allowWebSocket ? /^(?:https?|wss?):\/\//i : /^https?:\/\//i).test(value) || /[\s;'"`,]/.test(value)) return false;
|
|
4
|
+
try {
|
|
5
|
+
const url = new URL(value.replace("://*.", "://wildcard."));
|
|
6
|
+
return url.username === "" && url.password === "" && url.pathname === "/" && url.search === "" && url.hash === "";
|
|
7
|
+
} catch {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
const getAllowedOrigins = (values, allowWebSocket = false) => Array.isArray(values) ? [...new Set(values.filter((value) => typeof value === "string" && isAllowedOrigin(value, allowWebSocket)))] : [];
|
|
12
|
+
const directive = (name, values) => `${name} ${values.join(" ")}`;
|
|
13
|
+
const buildMcpAppCsp = (csp) => {
|
|
14
|
+
const connectDomains = getAllowedOrigins(csp?.connectDomains, true);
|
|
15
|
+
const resourceDomains = getAllowedOrigins(csp?.resourceDomains);
|
|
16
|
+
const frameDomains = getAllowedOrigins(csp?.frameDomains);
|
|
17
|
+
const baseUriDomains = getAllowedOrigins(csp?.baseUriDomains);
|
|
18
|
+
return [
|
|
19
|
+
"default-src 'none'",
|
|
20
|
+
directive("script-src", [
|
|
21
|
+
"'self'",
|
|
22
|
+
"'unsafe-inline'",
|
|
23
|
+
...resourceDomains
|
|
24
|
+
]),
|
|
25
|
+
directive("style-src", [
|
|
26
|
+
"'self'",
|
|
27
|
+
"'unsafe-inline'",
|
|
28
|
+
...resourceDomains
|
|
29
|
+
]),
|
|
30
|
+
directive("connect-src", connectDomains.length > 0 ? ["'self'", ...connectDomains] : ["'none'"]),
|
|
31
|
+
directive("img-src", [
|
|
32
|
+
"'self'",
|
|
33
|
+
"data:",
|
|
34
|
+
...resourceDomains
|
|
35
|
+
]),
|
|
36
|
+
directive("font-src", ["'self'", ...resourceDomains]),
|
|
37
|
+
directive("media-src", [
|
|
38
|
+
"'self'",
|
|
39
|
+
"data:",
|
|
40
|
+
...resourceDomains
|
|
41
|
+
]),
|
|
42
|
+
directive("frame-src", frameDomains.length > 0 ? frameDomains : ["'none'"]),
|
|
43
|
+
directive("base-uri", baseUriDomains.length > 0 ? baseUriDomains : ["'self'"]),
|
|
44
|
+
"object-src 'none'",
|
|
45
|
+
"form-action 'none'"
|
|
46
|
+
].join("; ");
|
|
47
|
+
};
|
|
48
|
+
const findDoctypeEnd = (html) => {
|
|
49
|
+
let offset = 0;
|
|
50
|
+
while (offset < html.length) {
|
|
51
|
+
const whitespace = html.slice(offset).match(/^[\t\n\f\r ]+/)?.[0];
|
|
52
|
+
if (whitespace) {
|
|
53
|
+
offset += whitespace.length;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (html.startsWith("<!--", offset)) {
|
|
57
|
+
if (html.startsWith("<!-->", offset)) {
|
|
58
|
+
offset += 5;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (html.startsWith("<!--->", offset)) {
|
|
62
|
+
offset += 6;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const commentEnd = html.indexOf("-->", offset + 4);
|
|
66
|
+
const bangCommentEnd = html.indexOf("--!>", offset + 4);
|
|
67
|
+
if (commentEnd === -1 && bangCommentEnd === -1) return 0;
|
|
68
|
+
offset = bangCommentEnd !== -1 && (commentEnd === -1 || bangCommentEnd < commentEnd) ? bangCommentEnd + 4 : commentEnd + 3;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (html.slice(offset, offset + 9).toLowerCase() === "<!doctype") break;
|
|
72
|
+
if (html.startsWith("<?", offset) || html.startsWith("<!", offset)) {
|
|
73
|
+
const bogusCommentEnd = html.indexOf(">", offset + 2);
|
|
74
|
+
if (bogusCommentEnd === -1) return 0;
|
|
75
|
+
offset = bogusCommentEnd + 1;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
if (html.slice(offset, offset + 9).toLowerCase() !== "<!doctype") return offset;
|
|
81
|
+
const end = html.indexOf(">", offset + 9);
|
|
82
|
+
return end === -1 ? 0 : end + 1;
|
|
83
|
+
};
|
|
84
|
+
const applyMcpAppCsp = (html, csp) => {
|
|
85
|
+
const normalizedHtml = html.charCodeAt(0) === 65279 ? html.slice(1) : html;
|
|
86
|
+
const meta = `<meta http-equiv="Content-Security-Policy" content="${buildMcpAppCsp(csp)}">`;
|
|
87
|
+
const insertionPoint = findDoctypeEnd(normalizedHtml);
|
|
88
|
+
return `${normalizedHtml.slice(0, insertionPoint)}${meta}${normalizedHtml.slice(insertionPoint)}`;
|
|
89
|
+
};
|
|
90
|
+
export { applyMcpAppCsp, buildMcpAppCsp };
|
|
91
|
+
|
|
92
|
+
//# sourceMappingURL=csp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csp.js","names":[],"sources":["../../src/mcp-apps/csp.ts"],"sourcesContent":["import type { McpAppResourceCSP } from \"./types\";\n\nconst isAllowedOrigin = (value: string, allowWebSocket: boolean): boolean => {\n const scheme = allowWebSocket ? /^(?:https?|wss?):\\/\\//i : /^https?:\\/\\//i;\n if (!scheme.test(value) || /[\\s;'\"`,]/.test(value)) {\n return false;\n }\n\n try {\n const url = new URL(value.replace(\"://*.\", \"://wildcard.\"));\n return (\n url.username === \"\" &&\n url.password === \"\" &&\n url.pathname === \"/\" &&\n url.search === \"\" &&\n url.hash === \"\"\n );\n } catch {\n return false;\n }\n};\n\nconst getAllowedOrigins = (\n values: unknown,\n allowWebSocket = false,\n): string[] =>\n Array.isArray(values)\n ? [\n ...new Set(\n values.filter(\n (value): value is string =>\n typeof value === \"string\" &&\n isAllowedOrigin(value, allowWebSocket),\n ),\n ),\n ]\n : [];\n\nconst directive = (name: string, values: readonly string[]) =>\n `${name} ${values.join(\" \")}`;\n\nexport const buildMcpAppCsp = (csp?: McpAppResourceCSP): string => {\n const connectDomains = getAllowedOrigins(csp?.connectDomains, true);\n const resourceDomains = getAllowedOrigins(csp?.resourceDomains);\n const frameDomains = getAllowedOrigins(csp?.frameDomains);\n const baseUriDomains = getAllowedOrigins(csp?.baseUriDomains);\n\n return [\n \"default-src 'none'\",\n directive(\"script-src\", [\"'self'\", \"'unsafe-inline'\", ...resourceDomains]),\n directive(\"style-src\", [\"'self'\", \"'unsafe-inline'\", ...resourceDomains]),\n directive(\n \"connect-src\",\n connectDomains.length > 0 ? [\"'self'\", ...connectDomains] : [\"'none'\"],\n ),\n directive(\"img-src\", [\"'self'\", \"data:\", ...resourceDomains]),\n directive(\"font-src\", [\"'self'\", ...resourceDomains]),\n directive(\"media-src\", [\"'self'\", \"data:\", ...resourceDomains]),\n directive(\"frame-src\", frameDomains.length > 0 ? frameDomains : [\"'none'\"]),\n directive(\n \"base-uri\",\n baseUriDomains.length > 0 ? baseUriDomains : [\"'self'\"],\n ),\n \"object-src 'none'\",\n \"form-action 'none'\",\n ].join(\"; \");\n};\n\nconst findDoctypeEnd = (html: string): number => {\n let offset = 0;\n\n while (offset < html.length) {\n const whitespace = html.slice(offset).match(/^[\\t\\n\\f\\r ]+/)?.[0];\n if (whitespace) {\n offset += whitespace.length;\n continue;\n }\n if (html.startsWith(\"<!--\", offset)) {\n if (html.startsWith(\"<!-->\", offset)) {\n offset += 5;\n continue;\n }\n if (html.startsWith(\"<!--->\", offset)) {\n offset += 6;\n continue;\n }\n const commentEnd = html.indexOf(\"-->\", offset + 4);\n const bangCommentEnd = html.indexOf(\"--!>\", offset + 4);\n if (commentEnd === -1 && bangCommentEnd === -1) return 0;\n offset =\n bangCommentEnd !== -1 &&\n (commentEnd === -1 || bangCommentEnd < commentEnd)\n ? bangCommentEnd + 4\n : commentEnd + 3;\n continue;\n }\n if (html.slice(offset, offset + 9).toLowerCase() === \"<!doctype\") {\n break;\n }\n if (html.startsWith(\"<?\", offset) || html.startsWith(\"<!\", offset)) {\n const bogusCommentEnd = html.indexOf(\">\", offset + 2);\n if (bogusCommentEnd === -1) return 0;\n offset = bogusCommentEnd + 1;\n continue;\n }\n break;\n }\n\n if (html.slice(offset, offset + 9).toLowerCase() !== \"<!doctype\") {\n return offset;\n }\n const end = html.indexOf(\">\", offset + 9);\n return end === -1 ? 0 : end + 1;\n};\n\nexport const applyMcpAppCsp = (\n html: string,\n csp?: McpAppResourceCSP,\n): string => {\n const normalizedHtml = html.charCodeAt(0) === 0xfeff ? html.slice(1) : html;\n const meta = `<meta http-equiv=\"Content-Security-Policy\" content=\"${buildMcpAppCsp(csp)}\">`;\n const insertionPoint = findDoctypeEnd(normalizedHtml);\n return `${normalizedHtml.slice(0, insertionPoint)}${meta}${normalizedHtml.slice(insertionPoint)}`;\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { McpAppRenderer, type McpAppPartOptions, type McpAppRendererOptions, } from "./McpAppRenderer.js";
|
|
2
|
+
export { McpAppsRemoteHost } from "./McpAppsRemoteHost.js";
|
|
3
|
+
export { getMcpAppFromToolPart } from "./utils.js";
|
|
4
|
+
export type { McpAppMetadata, McpAppResource, McpAppResourceMeta, McpAppResourceCSP, McpAppSandboxConfig, McpAppHostInfo, McpAppHostContext, McpAppDisplayMode, McpAppsHost, McpAppsRemoteHostOptions, McpAppToolCallParams, McpAppInitializeParams, McpAppBridgeHandlers, ToolCallMessagePartMcpMetadata, } from "./types.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,qBAAkB;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAqB;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAS;AAC/C,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,YAAS","names":[],"ignoreList":[],"sources":["../../src/mcp-apps/index.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import type { McpAppMetadata, ToolCallMessagePartMcpMetadata } from "@ulearning/ai-core";
|
|
2
|
+
import type { SandboxHostConfig } from "../sandbox-host/SandboxHost.js";
|
|
3
|
+
export type { McpAppMetadata, ToolCallMessagePartMcpMetadata };
|
|
4
|
+
export declare const MCP_APP_MIME_TYPE: "text/html;profile=mcp-app";
|
|
5
|
+
export declare const MCP_APP_PROTOCOL_VERSION: "0.1";
|
|
6
|
+
export type McpAppResourceCSP = {
|
|
7
|
+
connectDomains?: string[];
|
|
8
|
+
resourceDomains?: string[];
|
|
9
|
+
frameDomains?: string[];
|
|
10
|
+
baseUriDomains?: string[];
|
|
11
|
+
[k: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
export type McpAppResourceMeta = {
|
|
14
|
+
prefersBorder?: boolean;
|
|
15
|
+
csp?: McpAppResourceCSP;
|
|
16
|
+
permissions?: Record<string, unknown>;
|
|
17
|
+
[k: string]: unknown;
|
|
18
|
+
};
|
|
19
|
+
export type McpAppResource = {
|
|
20
|
+
uri: string;
|
|
21
|
+
mimeType: typeof MCP_APP_MIME_TYPE;
|
|
22
|
+
html: string;
|
|
23
|
+
meta?: McpAppResourceMeta;
|
|
24
|
+
};
|
|
25
|
+
export type McpAppDisplayMode = "inline" | "fullscreen" | "pip";
|
|
26
|
+
export type McpAppHostContext = {
|
|
27
|
+
theme?: "light" | "dark";
|
|
28
|
+
displayMode?: McpAppDisplayMode;
|
|
29
|
+
availableDisplayModes?: McpAppDisplayMode[];
|
|
30
|
+
[k: string]: unknown;
|
|
31
|
+
};
|
|
32
|
+
export type McpAppHostInfo = {
|
|
33
|
+
name: string;
|
|
34
|
+
version: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* What `McpAppRenderer` needs from its host — the data-plane operations
|
|
38
|
+
* the widget can request. Provided by a host resource like
|
|
39
|
+
* `McpAppsRemoteHost`.
|
|
40
|
+
*/
|
|
41
|
+
export type McpAppsHost = {
|
|
42
|
+
loadResource: (params: {
|
|
43
|
+
uri: string;
|
|
44
|
+
serverId?: string;
|
|
45
|
+
}) => Promise<McpAppResource>;
|
|
46
|
+
callTool: (params: McpAppToolCallParams & {
|
|
47
|
+
serverId?: string;
|
|
48
|
+
}) => Promise<unknown>;
|
|
49
|
+
readResource: (params: {
|
|
50
|
+
uri: string;
|
|
51
|
+
serverId?: string;
|
|
52
|
+
}) => Promise<unknown>;
|
|
53
|
+
listResources: (params?: unknown) => Promise<unknown>;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Options for `McpAppsRemoteHost`. The host POSTs `{ method, params }` to
|
|
57
|
+
* `url` and expects JSON responses. Params may carry `serverId` for host-side routing. Method names sent:
|
|
58
|
+
* - `mcp-apps/read-resource` (`{ uri, serverId? }`) → `McpAppResource`
|
|
59
|
+
* - `tools/call` (`{ name, arguments?, serverId? }`) → tool result
|
|
60
|
+
* - `resources/read` (`{ uri, serverId? }`) → resource read result
|
|
61
|
+
* - `resources/list` (`{ serverId?, ...params }?`) → list result
|
|
62
|
+
*/
|
|
63
|
+
export type McpAppsRemoteHostOptions = {
|
|
64
|
+
url: string;
|
|
65
|
+
fetch?: typeof fetch;
|
|
66
|
+
headers?: Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
|
|
67
|
+
};
|
|
68
|
+
export type McpAppToolCallParams = {
|
|
69
|
+
name: string;
|
|
70
|
+
arguments?: Record<string, unknown>;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* The params of the app's `ui/initialize` request, as `onInitialized`
|
|
74
|
+
* receives them. A field that fails validation is omitted, and
|
|
75
|
+
* `availableDisplayModes` keeps only the modes the bridge recognizes.
|
|
76
|
+
*/
|
|
77
|
+
export type McpAppInitializeParams = {
|
|
78
|
+
appInfo?: {
|
|
79
|
+
name: string;
|
|
80
|
+
version: string;
|
|
81
|
+
[k: string]: unknown;
|
|
82
|
+
};
|
|
83
|
+
appCapabilities?: {
|
|
84
|
+
availableDisplayModes?: McpAppDisplayMode[];
|
|
85
|
+
[k: string]: unknown;
|
|
86
|
+
};
|
|
87
|
+
protocolVersion?: string;
|
|
88
|
+
};
|
|
89
|
+
export type McpAppBridgeHandlers = {
|
|
90
|
+
allowedTools?: readonly string[];
|
|
91
|
+
callTool?: (params: McpAppToolCallParams) => Promise<unknown> | unknown;
|
|
92
|
+
readResource?: (params: {
|
|
93
|
+
uri: string;
|
|
94
|
+
}) => Promise<unknown> | unknown;
|
|
95
|
+
listResources?: (params?: unknown) => Promise<unknown> | unknown;
|
|
96
|
+
openLink?: (params: {
|
|
97
|
+
url: string;
|
|
98
|
+
}) => Promise<unknown> | unknown;
|
|
99
|
+
sendMessage?: (params: unknown) => Promise<unknown> | unknown;
|
|
100
|
+
updateModelContext?: (params: unknown) => Promise<unknown> | unknown;
|
|
101
|
+
requestDisplayMode?: (params: {
|
|
102
|
+
mode: McpAppDisplayMode;
|
|
103
|
+
}) => Promise<{
|
|
104
|
+
mode: McpAppDisplayMode;
|
|
105
|
+
}> | {
|
|
106
|
+
mode: McpAppDisplayMode;
|
|
107
|
+
};
|
|
108
|
+
onSizeChange?: (params: {
|
|
109
|
+
width?: number;
|
|
110
|
+
height?: number;
|
|
111
|
+
}) => void;
|
|
112
|
+
onInitialized?: (params: McpAppInitializeParams) => void;
|
|
113
|
+
onRequestTeardown?: (params: unknown) => void;
|
|
114
|
+
onLog?: (params: unknown) => void;
|
|
115
|
+
onError?: (error: Error) => void;
|
|
116
|
+
};
|
|
117
|
+
export type McpAppSandboxConfig = SandboxHostConfig;
|
|
118
|
+
export type McpAppFrameProps = {
|
|
119
|
+
app: McpAppMetadata;
|
|
120
|
+
resource: McpAppResource;
|
|
121
|
+
input?: unknown;
|
|
122
|
+
output?: unknown;
|
|
123
|
+
sandbox?: McpAppSandboxConfig | undefined;
|
|
124
|
+
handlers?: McpAppBridgeHandlers | undefined;
|
|
125
|
+
hostInfo?: McpAppHostInfo | undefined;
|
|
126
|
+
hostContext?: McpAppHostContext | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Upper bound (in pixels) for the auto-resize height driven by the widget's
|
|
129
|
+
* `notifications/size_changed`. Defaults to 800.
|
|
130
|
+
*/
|
|
131
|
+
maxHeight?: number | undefined;
|
|
132
|
+
};
|
|
133
|
+
export type McpAppJsonRpcRequest = {
|
|
134
|
+
jsonrpc: "2.0";
|
|
135
|
+
id: string | number;
|
|
136
|
+
method: string;
|
|
137
|
+
params?: unknown;
|
|
138
|
+
};
|
|
139
|
+
export type McpAppJsonRpcNotification = {
|
|
140
|
+
jsonrpc: "2.0";
|
|
141
|
+
method: string;
|
|
142
|
+
params?: unknown;
|
|
143
|
+
};
|
|
144
|
+
export type McpAppJsonRpcError = {
|
|
145
|
+
code: number;
|
|
146
|
+
message: string;
|
|
147
|
+
data?: unknown;
|
|
148
|
+
};
|
|
149
|
+
export type McpAppJsonRpcResponse = {
|
|
150
|
+
jsonrpc: "2.0";
|
|
151
|
+
id: string | number;
|
|
152
|
+
result: unknown;
|
|
153
|
+
error?: never;
|
|
154
|
+
} | {
|
|
155
|
+
jsonrpc: "2.0";
|
|
156
|
+
id: string | number;
|
|
157
|
+
result?: never;
|
|
158
|
+
error: McpAppJsonRpcError;
|
|
159
|
+
};
|
|
160
|
+
export type McpAppJsonRpcMessage = McpAppJsonRpcRequest | McpAppJsonRpcNotification | McpAppJsonRpcResponse;
|
|
161
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,8BAA8B,EAC/B,MAAM,oBAAoB;AAC3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAA6B;AAEpE,YAAY,EAAE,cAAc,EAAE,8BAA8B,EAAE;AAE9D,eAAO,MAAM,iBAAiB,EAAG,2BAAoC;AAErE,eAAO,MAAM,wBAAwB,EAAG,KAAc;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE;IACzB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;CACrB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,CAAC,EAAE,OAAO;IACvB,GAAG,CAAC,EAAE,iBAAiB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;CACrB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM;IACX,QAAQ,EAAE,OAAO,iBAAiB;IAClC,IAAI,EAAE,MAAM;IACZ,IAAI,CAAC,EAAE,kBAAkB;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,KAAK;AAE/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM;IACxB,WAAW,CAAC,EAAE,iBAAiB;IAC/B,qBAAqB,CAAC,EAAE,iBAAiB,EAAE;IAC3C,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;CACrB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;CAChB;AAED;;;;;AAKA,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,MAAM;QACX,QAAQ,CAAC,EAAE,MAAM;KAClB,KAAK,OAAO,CAAC,cAAc,CAAC;IAC7B,QAAQ,EAAE,CACR,MAAM,EAAE,oBAAoB,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM;KAAE,KACjD,OAAO,CAAC,OAAO,CAAC;IACrB,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,GAAG,EAAE,MAAM;QACX,QAAQ,CAAC,EAAE,MAAM;KAClB,KAAK,OAAO,CAAC,OAAO,CAAC;IACtB,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC;CACtD;AAED;;;;;;;;AAQA,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM;IACX,KAAK,CAAC,EAAE,OAAO,KAAK;IACpB,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrE;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACpC;AAED;;;;;AAKA,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;KAAE;IACjE,eAAe,CAAC,EAAE;QAChB,qBAAqB,CAAC,EAAE,iBAAiB,EAAE;QAC3C,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;KACrB;IACD,eAAe,CAAC,EAAE,MAAM;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE;IAChC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IACvE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IACtE,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAChE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAClE,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IAC7D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;IACpE,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC5B,IAAI,EAAE,iBAAiB;KACxB,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,iBAAiB;KAAE,CAAC,GAAG;QAAE,IAAI,EAAE,iBAAiB;KAAE;IACxE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM;QAAE,MAAM,CAAC,EAAE,MAAM;KAAE,KAAK,IAAI;IACpE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI;IACxD,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI;IAC7C,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;CACjC;AAED,MAAM,MAAM,mBAAmB,GAAG,iBAAiB;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,cAAc;IACnB,QAAQ,EAAE,cAAc;IACxB,KAAK,CAAC,EAAE,OAAO;IACf,MAAM,CAAC,EAAE,OAAO;IAChB,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS;IACzC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,SAAS;IAC3C,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS;IACrC,WAAW,CAAC,EAAE,iBAAiB,GAAG,SAAS;IAC3C;;;;IAIA,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS;CAC/B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,KAAK;IACd,EAAE,EAAE,MAAM,GAAG,MAAM;IACnB,MAAM,EAAE,MAAM;IACd,MAAM,CAAC,EAAE,OAAO;CACjB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,MAAM;IACd,MAAM,CAAC,EAAE,OAAO;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,MAAM;IACf,IAAI,CAAC,EAAE,OAAO;CACf;AAED,MAAM,MAAM,qBAAqB,GAC7B;IACE,OAAO,EAAE,KAAK;IACd,EAAE,EAAE,MAAM,GAAG,MAAM;IACnB,MAAM,EAAE,OAAO;IACf,KAAK,CAAC,EAAE,KAAK;CACd,GACD;IACE,OAAO,EAAE,KAAK;IACd,EAAE,EAAE,MAAM,GAAG,MAAM;IACnB,MAAM,CAAC,EAAE,KAAK;IACd,KAAK,EAAE,kBAAkB;CAC1B;AAEL,MAAM,MAAM,oBAAoB,GAC5B,oBAAoB,GACpB,yBAAyB,GACzB,qBAAqB","names":[],"ignoreList":[],"sources":["../../src/mcp-apps/types.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/mcp-apps/types.ts"],"sourcesContent":["import type {\n McpAppMetadata,\n ToolCallMessagePartMcpMetadata,\n} from \"@ulearning/ai-core\";\nimport type { SandboxHostConfig } from \"../sandbox-host/SandboxHost\";\n\nexport type { McpAppMetadata, ToolCallMessagePartMcpMetadata };\n\nexport const MCP_APP_MIME_TYPE = \"text/html;profile=mcp-app\" as const;\n\nexport const MCP_APP_PROTOCOL_VERSION = \"0.1\" as const;\n\nexport type McpAppResourceCSP = {\n connectDomains?: string[];\n resourceDomains?: string[];\n frameDomains?: string[];\n baseUriDomains?: string[];\n [k: string]: unknown;\n};\n\nexport type McpAppResourceMeta = {\n prefersBorder?: boolean;\n csp?: McpAppResourceCSP;\n permissions?: Record<string, unknown>;\n [k: string]: unknown;\n};\n\nexport type McpAppResource = {\n uri: string;\n mimeType: typeof MCP_APP_MIME_TYPE;\n html: string;\n meta?: McpAppResourceMeta;\n};\n\nexport type McpAppDisplayMode = \"inline\" | \"fullscreen\" | \"pip\";\n\nexport type McpAppHostContext = {\n theme?: \"light\" | \"dark\";\n displayMode?: McpAppDisplayMode;\n availableDisplayModes?: McpAppDisplayMode[];\n [k: string]: unknown;\n};\n\nexport type McpAppHostInfo = {\n name: string;\n version: string;\n};\n\n/**\n * What `McpAppRenderer` needs from its host — the data-plane operations\n * the widget can request. Provided by a host resource like\n * `McpAppsRemoteHost`.\n */\nexport type McpAppsHost = {\n loadResource: (params: {\n uri: string;\n serverId?: string;\n }) => Promise<McpAppResource>;\n callTool: (\n params: McpAppToolCallParams & { serverId?: string },\n ) => Promise<unknown>;\n readResource: (params: {\n uri: string;\n serverId?: string;\n }) => Promise<unknown>;\n listResources: (params?: unknown) => Promise<unknown>;\n};\n\n/**\n * Options for `McpAppsRemoteHost`. The host POSTs `{ method, params }` to\n * `url` and expects JSON responses. Params may carry `serverId` for host-side routing. Method names sent:\n * - `mcp-apps/read-resource` (`{ uri, serverId? }`) → `McpAppResource`\n * - `tools/call` (`{ name, arguments?, serverId? }`) → tool result\n * - `resources/read` (`{ uri, serverId? }`) → resource read result\n * - `resources/list` (`{ serverId?, ...params }?`) → list result\n */\nexport type McpAppsRemoteHostOptions = {\n url: string;\n fetch?: typeof fetch;\n headers?:\n | Record<string, string>\n | (() => Record<string, string> | Promise<Record<string, string>>);\n};\n\nexport type McpAppToolCallParams = {\n name: string;\n arguments?: Record<string, unknown>;\n};\n\n/**\n * The params of the app's `ui/initialize` request, as `onInitialized`\n * receives them. A field that fails validation is omitted, and\n * `availableDisplayModes` keeps only the modes the bridge recognizes.\n */\nexport type McpAppInitializeParams = {\n appInfo?: { name: string; version: string; [k: string]: unknown };\n appCapabilities?: {\n availableDisplayModes?: McpAppDisplayMode[];\n [k: string]: unknown;\n };\n protocolVersion?: string;\n};\n\nexport type McpAppBridgeHandlers = {\n allowedTools?: readonly string[];\n callTool?: (params: McpAppToolCallParams) => Promise<unknown> | unknown;\n readResource?: (params: { uri: string }) => Promise<unknown> | unknown;\n listResources?: (params?: unknown) => Promise<unknown> | unknown;\n openLink?: (params: { url: string }) => Promise<unknown> | unknown;\n sendMessage?: (params: unknown) => Promise<unknown> | unknown;\n updateModelContext?: (params: unknown) => Promise<unknown> | unknown;\n requestDisplayMode?: (params: {\n mode: McpAppDisplayMode;\n }) => Promise<{ mode: McpAppDisplayMode }> | { mode: McpAppDisplayMode };\n onSizeChange?: (params: { width?: number; height?: number }) => void;\n onInitialized?: (params: McpAppInitializeParams) => void;\n onRequestTeardown?: (params: unknown) => void;\n onLog?: (params: unknown) => void;\n onError?: (error: Error) => void;\n};\n\nexport type McpAppSandboxConfig = SandboxHostConfig;\n\nexport type McpAppFrameProps = {\n app: McpAppMetadata;\n resource: McpAppResource;\n input?: unknown;\n output?: unknown;\n sandbox?: McpAppSandboxConfig | undefined;\n handlers?: McpAppBridgeHandlers | undefined;\n hostInfo?: McpAppHostInfo | undefined;\n hostContext?: McpAppHostContext | undefined;\n /**\n * Upper bound (in pixels) for the auto-resize height driven by the widget's\n * `notifications/size_changed`. Defaults to 800.\n */\n maxHeight?: number | undefined;\n};\n\nexport type McpAppJsonRpcRequest = {\n jsonrpc: \"2.0\";\n id: string | number;\n method: string;\n params?: unknown;\n};\n\nexport type McpAppJsonRpcNotification = {\n jsonrpc: \"2.0\";\n method: string;\n params?: unknown;\n};\n\nexport type McpAppJsonRpcError = {\n code: number;\n message: string;\n data?: unknown;\n};\n\nexport type McpAppJsonRpcResponse =\n | {\n jsonrpc: \"2.0\";\n id: string | number;\n result: unknown;\n error?: never;\n }\n | {\n jsonrpc: \"2.0\";\n id: string | number;\n result?: never;\n error: McpAppJsonRpcError;\n };\n\nexport type McpAppJsonRpcMessage =\n | McpAppJsonRpcRequest\n | McpAppJsonRpcNotification\n | McpAppJsonRpcResponse;\n"],"mappings":";AAQA,MAAa,oBAAoB;AAEjC,MAAa,2BAA2B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type McpAppMetadata, type ToolCallMessagePart } from "@ulearning/ai-core";
|
|
2
|
+
type ToolPartLike = Pick<ToolCallMessagePart, "mcp">;
|
|
3
|
+
/**
|
|
4
|
+
* Returns MCP app metadata for a tool-call part that points at a `ui://`
|
|
5
|
+
* resource.
|
|
6
|
+
*
|
|
7
|
+
* Returns `undefined` when the part has no MCP app metadata or the metadata
|
|
8
|
+
* does not reference an assistant-ui MCP app resource.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getMcpAppFromToolPart(part: ToolPartLike): McpAppMetadata | undefined;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB;AAE3B,KAAK,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAEpD;;;;;;;AAOA,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,GACjB,cAAc,GAAG,SAAS","names":[],"ignoreList":[],"sources":["../../src/mcp-apps/utils.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { isMcpAppUri } from "@ulearning/ai-core";
|
|
2
|
+
// src/mcp-apps/utils.ts
|
|
3
|
+
/**
|
|
4
|
+
* Returns MCP app metadata for a tool-call part that points at a `ui://`
|
|
5
|
+
* resource.
|
|
6
|
+
*
|
|
7
|
+
* Returns `undefined` when the part has no MCP app metadata or the metadata
|
|
8
|
+
* does not reference an assistant-ui MCP app resource.
|
|
9
|
+
*/
|
|
10
|
+
function getMcpAppFromToolPart(part) {
|
|
11
|
+
const app = part.mcp?.app;
|
|
12
|
+
if (!app) return void 0;
|
|
13
|
+
if (!isMcpAppUri(app.resourceUri)) return void 0;
|
|
14
|
+
return app;
|
|
15
|
+
}
|
|
16
|
+
export { getMcpAppFromToolPart };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../../src/mcp-apps/utils.ts"],"sourcesContent":["import {\n isMcpAppUri,\n type McpAppMetadata,\n type ToolCallMessagePart,\n} from \"@ulearning/ai-core\";\n\ntype ToolPartLike = Pick<ToolCallMessagePart, \"mcp\">;\n\n/**\n * Returns MCP app metadata for a tool-call part that points at a `ui://`\n * resource.\n *\n * Returns `undefined` when the part has no MCP app metadata or the metadata\n * does not reference an assistant-ui MCP app resource.\n */\nexport function getMcpAppFromToolPart(\n part: ToolPartLike,\n): McpAppMetadata | undefined {\n const app = part.mcp?.app;\n if (!app) return undefined;\n if (!isMcpAppUri(app.resourceUri)) return undefined;\n return app;\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgB,sBACd,MAC4B;CAC5B,MAAM,MAAM,KAAK,KAAK;CACtB,IAAI,CAAC,KAAK,OAAO,KAAA;CACjB,IAAI,CAAC,YAAY,IAAI,WAAW,GAAG,OAAO,KAAA;CAC1C,OAAO;AACT"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Unsubscribe } from "@ulearning/ai-core";
|
|
2
|
+
import { type MaybeRefOrGetter, type Ref } from "vue";
|
|
3
|
+
import { AssistantFrameHost } from "@ulearning/ai-core";
|
|
4
|
+
type UseAssistantFrameHostOptions = {
|
|
5
|
+
iframeRef: Readonly<Ref<HTMLIFrameElement | null | undefined>>;
|
|
6
|
+
targetOrigin?: string;
|
|
7
|
+
register: (frameHost: AssistantFrameHost) => Unsubscribe;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Vue composable that manages the lifecycle of an AssistantFrameHost and its binding to the current AssistantRuntime.
|
|
11
|
+
*
|
|
12
|
+
* Usage example:
|
|
13
|
+
* ```tsx
|
|
14
|
+
* function setupFrame({
|
|
15
|
+
* trustedOrigin,
|
|
16
|
+
* register,
|
|
17
|
+
* }: {
|
|
18
|
+
* trustedOrigin: string;
|
|
19
|
+
* register: Parameters<typeof useAssistantFrameHost>[0]["register"];
|
|
20
|
+
* }) {
|
|
21
|
+
* const iframeRef = shallowRef<HTMLIFrameElement | null>(null);
|
|
22
|
+
*
|
|
23
|
+
* useAssistantFrameHost({
|
|
24
|
+
* iframeRef,
|
|
25
|
+
* targetOrigin: trustedOrigin,
|
|
26
|
+
* register,
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* return () => <iframe ref={iframeRef} src="..." />;
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const useAssistantFrameHost: (options: MaybeRefOrGetter<UseAssistantFrameHostOptions>) => void;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=useAssistantFrameHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAssistantFrameHost.d.ts","mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB;AACrD,OAAO,EAAkB,KAAK,gBAAgB,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB;AAEvD,KAAK,4BAA4B,GAAG;IAClC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9D,YAAY,CAAC,EAAE,MAAM;IACrB,QAAQ,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,WAAW;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,eAAO,MAAM,qBAAqB,GAChC,SAAS,gBAAgB,CAAC,4BAA4B,CAAC,KACtD,IAiGF","names":[],"ignoreList":[],"sources":["../../../src/model-context/frame/useAssistantFrameHost.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { AssistantFrameHost } from "@ulearning/ai-core";
|
|
3
|
+
import { toValue, watch } from "vue";
|
|
4
|
+
import { useIsomorphicLayoutEffect } from "@ulearning/ai-store/internal";
|
|
5
|
+
// src/model-context/frame/useAssistantFrameHost.ts
|
|
6
|
+
/**
|
|
7
|
+
* Vue composable that manages the lifecycle of an AssistantFrameHost and its binding to the current AssistantRuntime.
|
|
8
|
+
*
|
|
9
|
+
* Usage example:
|
|
10
|
+
* ```tsx
|
|
11
|
+
* function setupFrame({
|
|
12
|
+
* trustedOrigin,
|
|
13
|
+
* register,
|
|
14
|
+
* }: {
|
|
15
|
+
* trustedOrigin: string;
|
|
16
|
+
* register: Parameters<typeof useAssistantFrameHost>[0]["register"];
|
|
17
|
+
* }) {
|
|
18
|
+
* const iframeRef = shallowRef<HTMLIFrameElement | null>(null);
|
|
19
|
+
*
|
|
20
|
+
* useAssistantFrameHost({
|
|
21
|
+
* iframeRef,
|
|
22
|
+
* targetOrigin: trustedOrigin,
|
|
23
|
+
* register,
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* return () => <iframe ref={iframeRef} src="..." />;
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
const useAssistantFrameHost = (options) => {
|
|
31
|
+
useIsomorphicLayoutEffect(() => {
|
|
32
|
+
const { iframeRef, targetOrigin, register } = toValue(options);
|
|
33
|
+
let active;
|
|
34
|
+
const syncFrame = () => {
|
|
35
|
+
const iframe = iframeRef.value;
|
|
36
|
+
const iframeWindow = iframe?.isConnected === false ? null : iframe?.contentWindow;
|
|
37
|
+
if (active && active.iframe === iframe && active.window === iframeWindow) return;
|
|
38
|
+
const previous = active;
|
|
39
|
+
active = void 0;
|
|
40
|
+
let disposalFailed = false;
|
|
41
|
+
let disposalError;
|
|
42
|
+
try {
|
|
43
|
+
previous?.dispose();
|
|
44
|
+
} catch (error) {
|
|
45
|
+
disposalFailed = true;
|
|
46
|
+
disposalError = error;
|
|
47
|
+
}
|
|
48
|
+
if (iframe && iframeWindow) {
|
|
49
|
+
const frameHost = new AssistantFrameHost(iframeWindow, targetOrigin);
|
|
50
|
+
let unsubscribe;
|
|
51
|
+
try {
|
|
52
|
+
unsubscribe = register(frameHost);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
frameHost.dispose();
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
const onLoad = () => frameHost.frameLoaded();
|
|
58
|
+
iframe.addEventListener("load", onLoad);
|
|
59
|
+
active = {
|
|
60
|
+
iframe,
|
|
61
|
+
window: iframeWindow,
|
|
62
|
+
dispose: () => {
|
|
63
|
+
iframe.removeEventListener("load", onLoad);
|
|
64
|
+
let cleanupFailed = false;
|
|
65
|
+
let cleanupError;
|
|
66
|
+
try {
|
|
67
|
+
frameHost.dispose();
|
|
68
|
+
} catch (error) {
|
|
69
|
+
cleanupFailed = true;
|
|
70
|
+
cleanupError = error;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
unsubscribe();
|
|
74
|
+
} catch (error) {
|
|
75
|
+
if (cleanupFailed) console.error("[assistant-ui] AssistantFrameHost unregistration failed.", error);
|
|
76
|
+
else {
|
|
77
|
+
cleanupFailed = true;
|
|
78
|
+
cleanupError = error;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (cleanupFailed) throw cleanupError;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (disposalFailed) throw disposalError;
|
|
86
|
+
};
|
|
87
|
+
syncFrame();
|
|
88
|
+
watch(iframeRef, syncFrame, { flush: "post" });
|
|
89
|
+
const observer = new MutationObserver(syncFrame);
|
|
90
|
+
observer.observe(document, {
|
|
91
|
+
childList: true,
|
|
92
|
+
subtree: true
|
|
93
|
+
});
|
|
94
|
+
return () => {
|
|
95
|
+
observer.disconnect();
|
|
96
|
+
active?.dispose();
|
|
97
|
+
};
|
|
98
|
+
}, () => {
|
|
99
|
+
const { iframeRef, targetOrigin, register } = toValue(options);
|
|
100
|
+
return [
|
|
101
|
+
iframeRef,
|
|
102
|
+
targetOrigin,
|
|
103
|
+
register
|
|
104
|
+
];
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
export { useAssistantFrameHost };
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=useAssistantFrameHost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAssistantFrameHost.js","names":[],"sources":["../../../src/model-context/frame/useAssistantFrameHost.ts"],"sourcesContent":["\"use client\";\n\nimport type { Unsubscribe } from \"@ulearning/ai-core\";\nimport { toValue, watch, type MaybeRefOrGetter, type Ref } from \"vue\";\nimport { useIsomorphicLayoutEffect } from \"@ulearning/ai-store/internal\";\nimport { AssistantFrameHost } from \"@ulearning/ai-core\";\n\ntype UseAssistantFrameHostOptions = {\n iframeRef: Readonly<Ref<HTMLIFrameElement | null | undefined>>;\n targetOrigin?: string;\n register: (frameHost: AssistantFrameHost) => Unsubscribe;\n};\n\n/**\n * Vue composable that manages the lifecycle of an AssistantFrameHost and its binding to the current AssistantRuntime.\n *\n * Usage example:\n * ```tsx\n * function setupFrame({\n * trustedOrigin,\n * register,\n * }: {\n * trustedOrigin: string;\n * register: Parameters<typeof useAssistantFrameHost>[0][\"register\"];\n * }) {\n * const iframeRef = shallowRef<HTMLIFrameElement | null>(null);\n *\n * useAssistantFrameHost({\n * iframeRef,\n * targetOrigin: trustedOrigin,\n * register,\n * });\n *\n * return () => <iframe ref={iframeRef} src=\"...\" />;\n * }\n * ```\n */\nexport const useAssistantFrameHost = (\n options: MaybeRefOrGetter<UseAssistantFrameHostOptions>,\n): void => {\n useIsomorphicLayoutEffect(\n () => {\n const { iframeRef, targetOrigin, register } = toValue(options);\n let active:\n | {\n iframe: HTMLIFrameElement;\n window: Window;\n dispose: () => void;\n }\n | undefined;\n\n const syncFrame = () => {\n const iframe = iframeRef.value;\n const iframeWindow =\n iframe?.isConnected === false ? null : iframe?.contentWindow;\n if (\n active &&\n active.iframe === iframe &&\n active.window === iframeWindow\n )\n return;\n\n const previous = active;\n active = undefined;\n let disposalFailed = false;\n let disposalError: unknown;\n try {\n previous?.dispose();\n } catch (error) {\n disposalFailed = true;\n disposalError = error;\n }\n\n if (iframe && iframeWindow) {\n const frameHost = new AssistantFrameHost(iframeWindow, targetOrigin);\n let unsubscribe: Unsubscribe;\n try {\n unsubscribe = register(frameHost);\n } catch (error) {\n frameHost.dispose();\n throw error;\n }\n const onLoad = () => frameHost.frameLoaded();\n iframe.addEventListener(\"load\", onLoad);\n active = {\n iframe,\n window: iframeWindow,\n dispose: () => {\n iframe.removeEventListener(\"load\", onLoad);\n let cleanupFailed = false;\n let cleanupError: unknown;\n\n try {\n frameHost.dispose();\n } catch (error) {\n cleanupFailed = true;\n cleanupError = error;\n }\n\n try {\n unsubscribe();\n } catch (error) {\n if (cleanupFailed) {\n console.error(\n \"[assistant-ui] AssistantFrameHost unregistration failed.\",\n error,\n );\n } else {\n cleanupFailed = true;\n cleanupError = error;\n }\n }\n\n if (cleanupFailed) throw cleanupError;\n },\n };\n }\n\n if (disposalFailed) throw disposalError;\n };\n\n syncFrame();\n watch(iframeRef, syncFrame, { flush: \"post\" });\n const observer = new MutationObserver(syncFrame);\n observer.observe(document, { childList: true, subtree: true });\n\n return () => {\n observer.disconnect();\n active?.dispose();\n };\n },\n () => {\n const { iframeRef, targetOrigin, register } = toValue(options);\n return [iframeRef, targetOrigin, register];\n },\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,MAAa,yBACX,YACS;CACT,gCACQ;EACJ,MAAM,EAAE,WAAW,cAAc,aAAa,QAAQ,OAAO;EAC7D,IAAI;EAQJ,MAAM,kBAAkB;GACtB,MAAM,SAAS,UAAU;GACzB,MAAM,eACJ,QAAQ,gBAAgB,QAAQ,OAAO,QAAQ;GACjD,IACE,UACA,OAAO,WAAW,UAClB,OAAO,WAAW,cAElB;GAEF,MAAM,WAAW;GACjB,SAAS,KAAA;GACT,IAAI,iBAAiB;GACrB,IAAI;GACJ,IAAI;IACF,UAAU,QAAQ;GACpB,SAAS,OAAO;IACd,iBAAiB;IACjB,gBAAgB;GAClB;GAEA,IAAI,UAAU,cAAc;IAC1B,MAAM,YAAY,IAAI,mBAAmB,cAAc,YAAY;IACnE,IAAI;IACJ,IAAI;KACF,cAAc,SAAS,SAAS;IAClC,SAAS,OAAO;KACd,UAAU,QAAQ;KAClB,MAAM;IACR;IACA,MAAM,eAAe,UAAU,YAAY;IAC3C,OAAO,iBAAiB,QAAQ,MAAM;IACtC,SAAS;KACP;KACA,QAAQ;KACR,eAAe;MACb,OAAO,oBAAoB,QAAQ,MAAM;MACzC,IAAI,gBAAgB;MACpB,IAAI;MAEJ,IAAI;OACF,UAAU,QAAQ;MACpB,SAAS,OAAO;OACd,gBAAgB;OAChB,eAAe;MACjB;MAEA,IAAI;OACF,YAAY;MACd,SAAS,OAAO;OACd,IAAI,eACF,QAAQ,MACN,4DACA,KACF;YACK;QACL,gBAAgB;QAChB,eAAe;OACjB;MACF;MAEA,IAAI,eAAe,MAAM;KAC3B;IACF;GACF;GAEA,IAAI,gBAAgB,MAAM;EAC5B;EAEA,UAAU;EACV,MAAM,WAAW,WAAW,EAAE,OAAO,OAAO,CAAC;EAC7C,MAAM,WAAW,IAAI,iBAAiB,SAAS;EAC/C,SAAS,QAAQ,UAAU;GAAE,WAAW;GAAM,SAAS;EAAK,CAAC;EAE7D,aAAa;GACX,SAAS,WAAW;GACpB,QAAQ,QAAQ;EAClB;CACF,SACM;EACJ,MAAM,EAAE,WAAW,cAAc,aAAa,QAAQ,OAAO;EAC7D,OAAO;GAAC;GAAW;GAAc;EAAQ;CAC3C,CACF;AACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Component, type FunctionalComponent } from "vue";
|
|
2
|
+
type ComponentProps<T extends Component> = T extends new (...args: never[]) => {
|
|
3
|
+
$props: infer P extends object;
|
|
4
|
+
} ? P : T extends FunctionalComponent<infer P extends object> ? P : Record<string, unknown>;
|
|
5
|
+
export declare const makeAssistantVisible: <T extends Component>(Component: T, config?: {
|
|
6
|
+
clickable?: boolean | undefined;
|
|
7
|
+
editable?: boolean | undefined;
|
|
8
|
+
settleDelayMs?: number | undefined;
|
|
9
|
+
}) => import("vue").DefineSetupFnComponent<ComponentProps<T>, {}, {}, ComponentProps<T> & {}, import("vue").PublicProps>;
|
|
10
|
+
export default makeAssistantVisible;
|
|
11
|
+
//# sourceMappingURL=makeAssistantVisible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeAssistantVisible.d.ts","mappings":"AAEA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,mBAAmB,EAEzB,MAAM,KAAK;AAgGZ,KAAK,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK;IAC7E,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM;CAC/B,GACG,CAAC,GACD,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,GACnD,CAAC,GACD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AAE7B,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,SAAS,EACtD,WAAW,CAAC,EACZ,SAAS;IACP,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS;CACnC,uHA4DF;AAED,eAAe,oBAAoB","names":[],"ignoreList":[],"sources":["../../src/model-context/makeAssistantVisible.tsx"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { tool } from "@ulearning/ai-core";
|
|
3
|
+
import { defineComponent, h, inject, provide, useId } from "vue";
|
|
4
|
+
import { useAui } from "@ulearning/ai-store";
|
|
5
|
+
import { useIsomorphicLayoutEffect } from "@ulearning/ai-store/internal";
|
|
6
|
+
import { useForwardExpose } from "reka-ui";
|
|
7
|
+
// src/model-context/makeAssistantVisible.tsx
|
|
8
|
+
const DEFAULT_ACTION_SETTLE_DELAY_MS = 2e3;
|
|
9
|
+
const MAX_ACTION_SETTLE_DELAY_MS = 2147483647;
|
|
10
|
+
const waitForSettle = async (settleDelayMs) => {
|
|
11
|
+
const delay = Number.isFinite(settleDelayMs) && settleDelayMs >= 0 && settleDelayMs <= MAX_ACTION_SETTLE_DELAY_MS ? settleDelayMs : DEFAULT_ACTION_SETTLE_DELAY_MS;
|
|
12
|
+
if (delay === 0) return;
|
|
13
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
14
|
+
};
|
|
15
|
+
const readActionSettleDelay = (element) => {
|
|
16
|
+
const value = element.dataset.actionSettleDelay;
|
|
17
|
+
return value === void 0 || value.trim() === "" ? DEFAULT_ACTION_SETTLE_DELAY_MS : Number(value);
|
|
18
|
+
};
|
|
19
|
+
const click = tool({
|
|
20
|
+
parameters: {
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: { clickId: { type: "string" } },
|
|
23
|
+
required: ["clickId"]
|
|
24
|
+
},
|
|
25
|
+
execute: async ({ clickId }) => {
|
|
26
|
+
const escapedClickId = CSS.escape(clickId);
|
|
27
|
+
const el = document.querySelector(`[data-click-id='${escapedClickId}']`);
|
|
28
|
+
if (el instanceof HTMLElement) {
|
|
29
|
+
el.click();
|
|
30
|
+
await waitForSettle(readActionSettleDelay(el));
|
|
31
|
+
return {};
|
|
32
|
+
} else return "Element not found";
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const setNativeValue = (element, value) => {
|
|
36
|
+
const prototype = element instanceof HTMLInputElement ? HTMLInputElement.prototype : HTMLTextAreaElement.prototype;
|
|
37
|
+
const setter = Object.getOwnPropertyDescriptor(prototype, "value")?.set;
|
|
38
|
+
if (setter) setter.call(element, value);
|
|
39
|
+
else element.value = value;
|
|
40
|
+
};
|
|
41
|
+
const edit = tool({
|
|
42
|
+
parameters: {
|
|
43
|
+
type: "object",
|
|
44
|
+
properties: {
|
|
45
|
+
editId: { type: "string" },
|
|
46
|
+
value: { type: "string" }
|
|
47
|
+
},
|
|
48
|
+
required: ["editId", "value"]
|
|
49
|
+
},
|
|
50
|
+
execute: async ({ editId, value }) => {
|
|
51
|
+
const escapedEditId = CSS.escape(editId);
|
|
52
|
+
const el = document.querySelector(`[data-edit-id='${escapedEditId}']`);
|
|
53
|
+
if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
|
|
54
|
+
setNativeValue(el, value);
|
|
55
|
+
el.dispatchEvent(new Event("input", { bubbles: true }));
|
|
56
|
+
el.dispatchEvent(new Event("change", { bubbles: true }));
|
|
57
|
+
await waitForSettle(readActionSettleDelay(el));
|
|
58
|
+
return {};
|
|
59
|
+
} else return "Element not found";
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const ReadableContext = Symbol("AssistantVisible");
|
|
63
|
+
const makeAssistantVisible = (Component, config) => {
|
|
64
|
+
const settleDelayMs = config?.settleDelayMs ?? DEFAULT_ACTION_SETTLE_DELAY_MS;
|
|
65
|
+
if (!Number.isFinite(settleDelayMs) || settleDelayMs < 0 || settleDelayMs > MAX_ACTION_SETTLE_DELAY_MS) throw new RangeError(`settleDelayMs must be between 0 and ${MAX_ACTION_SETTLE_DELAY_MS}`);
|
|
66
|
+
const WrappedComponent = Component;
|
|
67
|
+
return defineComponent(function AssistantVisible(props, { attrs, slots }) {
|
|
68
|
+
const isNestedReadable = inject(ReadableContext, false);
|
|
69
|
+
provide(ReadableContext, true);
|
|
70
|
+
const clickId = useId();
|
|
71
|
+
const { forwardRef, currentElement } = useForwardExpose();
|
|
72
|
+
const aui = useAui();
|
|
73
|
+
const { clickable, editable } = config ?? {};
|
|
74
|
+
useIsomorphicLayoutEffect(() => aui.modelContext.register({ getModelContext: () => ({
|
|
75
|
+
tools: {
|
|
76
|
+
...clickable ? { click } : {},
|
|
77
|
+
...editable ? { edit } : {}
|
|
78
|
+
},
|
|
79
|
+
system: !isNestedReadable && currentElement.value instanceof HTMLElement ? currentElement.value.outerHTML : void 0
|
|
80
|
+
}) }), () => [
|
|
81
|
+
isNestedReadable,
|
|
82
|
+
aui,
|
|
83
|
+
clickable,
|
|
84
|
+
editable
|
|
85
|
+
]);
|
|
86
|
+
return () => h(WrappedComponent, {
|
|
87
|
+
...attrs,
|
|
88
|
+
...props,
|
|
89
|
+
...clickable ? { "data-click-id": clickId } : {},
|
|
90
|
+
...editable ? { "data-edit-id": clickId } : {},
|
|
91
|
+
...config?.settleDelayMs !== void 0 && (clickable || editable) ? { "data-action-settle-delay": settleDelayMs } : {},
|
|
92
|
+
ref: forwardRef
|
|
93
|
+
}, slots);
|
|
94
|
+
}, {
|
|
95
|
+
name: Component.name ?? "AssistantVisible",
|
|
96
|
+
inheritAttrs: false,
|
|
97
|
+
props: []
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
export { makeAssistantVisible as default, makeAssistantVisible };
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=makeAssistantVisible.js.map
|