@wix/legends-platform-sdk 1.0.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/README.md +186 -0
- package/components/package.json +5 -0
- package/dist/cjs/components/Audio/Audio.js +31 -0
- package/dist/cjs/components/Audio/Audio.js.map +1 -0
- package/dist/cjs/components/Audio/index.js +10 -0
- package/dist/cjs/components/Audio/index.js.map +1 -0
- package/dist/cjs/components/ChromaKey/ChromaKey.js +127 -0
- package/dist/cjs/components/ChromaKey/ChromaKey.js.map +1 -0
- package/dist/cjs/components/ChromaKey/chroma-key.js +99 -0
- package/dist/cjs/components/ChromaKey/chroma-key.js.map +1 -0
- package/dist/cjs/components/ChromaKey/index.js +10 -0
- package/dist/cjs/components/ChromaKey/index.js.map +1 -0
- package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js +44 -0
- package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
- package/dist/cjs/components/ChromaKey/shaders/index.js +10 -0
- package/dist/cjs/components/ChromaKey/shaders/index.js.map +1 -0
- package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js +12 -0
- package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
- package/dist/cjs/components/ChromaKey/types.js +4 -0
- package/dist/cjs/components/ChromaKey/types.js.map +1 -0
- package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js +91 -0
- package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
- package/dist/cjs/components/LegendsPlatform/index.js +10 -0
- package/dist/cjs/components/LegendsPlatform/index.js.map +1 -0
- package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js +69 -0
- package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
- package/dist/cjs/components/LegendsPlatformQLess/index.js +10 -0
- package/dist/cjs/components/LegendsPlatformQLess/index.js.map +1 -0
- package/dist/cjs/components/Video/Video.js +88 -0
- package/dist/cjs/components/Video/Video.js.map +1 -0
- package/dist/cjs/components/Video/index.js +16 -0
- package/dist/cjs/components/Video/index.js.map +1 -0
- package/dist/cjs/components/Video/types.js +4 -0
- package/dist/cjs/components/Video/types.js.map +1 -0
- package/dist/cjs/components/Video/useAttachVideo.js +33 -0
- package/dist/cjs/components/Video/useAttachVideo.js.map +1 -0
- package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js +61 -0
- package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
- package/dist/cjs/components/VideoPostProcessor/effects.js +30 -0
- package/dist/cjs/components/VideoPostProcessor/effects.js.map +1 -0
- package/dist/cjs/components/VideoPostProcessor/index.js +10 -0
- package/dist/cjs/components/VideoPostProcessor/index.js.map +1 -0
- package/dist/cjs/components/VideoPreview/VideoPreview.js +68 -0
- package/dist/cjs/components/VideoPreview/VideoPreview.js.map +1 -0
- package/dist/cjs/components/VideoPreview/index.js +16 -0
- package/dist/cjs/components/VideoPreview/index.js.map +1 -0
- package/dist/cjs/components/VideoPreview/types.js +4 -0
- package/dist/cjs/components/VideoPreview/types.js.map +1 -0
- package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js +85 -0
- package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
- package/dist/cjs/components.js +34 -0
- package/dist/cjs/components.js.map +1 -0
- package/dist/cjs/conversation/index.js +18 -0
- package/dist/cjs/conversation/index.js.map +1 -0
- package/dist/cjs/conversation/state.js +24 -0
- package/dist/cjs/conversation/state.js.map +1 -0
- package/dist/cjs/conversation/types.js +4 -0
- package/dist/cjs/conversation/types.js.map +1 -0
- package/dist/cjs/conversation/utils.js +25 -0
- package/dist/cjs/conversation/utils.js.map +1 -0
- package/dist/cjs/external-types.d.js +2 -0
- package/dist/cjs/external-types.d.js.map +1 -0
- package/dist/cjs/hooks/index.js +58 -0
- package/dist/cjs/hooks/index.js.map +1 -0
- package/dist/cjs/hooks/useActivityState/index.js +10 -0
- package/dist/cjs/hooks/useActivityState/index.js.map +1 -0
- package/dist/cjs/hooks/useActivityState/useActivityState.js +15 -0
- package/dist/cjs/hooks/useActivityState/useActivityState.js.map +1 -0
- package/dist/cjs/hooks/useAudio/index.js +10 -0
- package/dist/cjs/hooks/useAudio/index.js.map +1 -0
- package/dist/cjs/hooks/useAudio/useAudio.js +28 -0
- package/dist/cjs/hooks/useAudio/useAudio.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/helpers.js +28 -0
- package/dist/cjs/hooks/useAudioLevel/helpers.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/index.js +10 -0
- package/dist/cjs/hooks/useAudioLevel/index.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/types.js +4 -0
- package/dist/cjs/hooks/useAudioLevel/types.js.map +1 -0
- package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js +49 -0
- package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
- package/dist/cjs/hooks/useCamera/index.js +10 -0
- package/dist/cjs/hooks/useCamera/index.js.map +1 -0
- package/dist/cjs/hooks/useCamera/useCamera.js +32 -0
- package/dist/cjs/hooks/useCamera/useCamera.js.map +1 -0
- package/dist/cjs/hooks/useConnectionState/index.js +10 -0
- package/dist/cjs/hooks/useConnectionState/index.js.map +1 -0
- package/dist/cjs/hooks/useConnectionState/useConnectionState.js +15 -0
- package/dist/cjs/hooks/useConnectionState/useConnectionState.js.map +1 -0
- package/dist/cjs/hooks/useConversation/index.js +16 -0
- package/dist/cjs/hooks/useConversation/index.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/constants.js +15 -0
- package/dist/cjs/hooks/useConversation/livekit/constants.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/types.js +4 -0
- package/dist/cjs/hooks/useConversation/livekit/types.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/useConversation.js +371 -0
- package/dist/cjs/hooks/useConversation/livekit/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js +25 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/index.js +40 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/index.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js +11 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/participants.js +34 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/participants.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js +13 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js +18 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js +15 -0
- package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
- package/dist/cjs/hooks/useConversation/types.js +4 -0
- package/dist/cjs/hooks/useConversation/types.js.map +1 -0
- package/dist/cjs/hooks/useConversation/useConversation.js +99 -0
- package/dist/cjs/hooks/useConversation/useConversation.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/index.js +22 -0
- package/dist/cjs/hooks/useConversationEvents/index.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/types.js +4 -0
- package/dist/cjs/hooks/useConversationEvents/types.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js +11 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js +20 -0
- package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
- package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js +13 -0
- package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
- package/dist/cjs/hooks/useConversationStatus/index.js +10 -0
- package/dist/cjs/hooks/useConversationStatus/index.js.map +1 -0
- package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js +10 -0
- package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
- package/dist/cjs/hooks/useConversationTimer/index.js +10 -0
- package/dist/cjs/hooks/useConversationTimer/index.js.map +1 -0
- package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js +45 -0
- package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
- package/dist/cjs/hooks/useCreateConversation/helpers.js +8 -0
- package/dist/cjs/hooks/useCreateConversation/helpers.js.map +1 -0
- package/dist/cjs/hooks/useCreateConversation/index.js +10 -0
- package/dist/cjs/hooks/useCreateConversation/index.js.map +1 -0
- package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js +104 -0
- package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
- package/dist/cjs/hooks/useDeviceSwitcher/index.js +10 -0
- package/dist/cjs/hooks/useDeviceSwitcher/index.js.map +1 -0
- package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js +31 -0
- package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
- package/dist/cjs/hooks/useDevices/index.js +10 -0
- package/dist/cjs/hooks/useDevices/index.js.map +1 -0
- package/dist/cjs/hooks/useDevices/useDevices.js +49 -0
- package/dist/cjs/hooks/useDevices/useDevices.js.map +1 -0
- package/dist/cjs/hooks/useMediaPermissions/index.js +10 -0
- package/dist/cjs/hooks/useMediaPermissions/index.js.map +1 -0
- package/dist/cjs/hooks/useMediaPermissions/types.js +4 -0
- package/dist/cjs/hooks/useMediaPermissions/types.js.map +1 -0
- package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js +46 -0
- package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
- package/dist/cjs/hooks/useMediaRecorder/index.js +10 -0
- package/dist/cjs/hooks/useMediaRecorder/index.js.map +1 -0
- package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js +229 -0
- package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
- package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js +298 -0
- package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
- package/dist/cjs/hooks/useMicrophone/index.js +10 -0
- package/dist/cjs/hooks/useMicrophone/index.js.map +1 -0
- package/dist/cjs/hooks/useMicrophone/useMicrophone.js +38 -0
- package/dist/cjs/hooks/useMicrophone/useMicrophone.js.map +1 -0
- package/dist/cjs/hooks/useParticipantTrack/index.js +10 -0
- package/dist/cjs/hooks/useParticipantTrack/index.js.map +1 -0
- package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js +32 -0
- package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/index.js +13 -0
- package/dist/cjs/hooks/usePictureInPicture/index.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/state.js +14 -0
- package/dist/cjs/hooks/usePictureInPicture/state.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/types.js +4 -0
- package/dist/cjs/hooks/usePictureInPicture/types.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js +45 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js +116 -0
- package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
- package/dist/cjs/hooks/useScreenShare/index.js +10 -0
- package/dist/cjs/hooks/useScreenShare/index.js.map +1 -0
- package/dist/cjs/hooks/useScreenShare/useScreenShare.js +45 -0
- package/dist/cjs/hooks/useScreenShare/useScreenShare.js.map +1 -0
- package/dist/cjs/hooks/useSpeaker/index.js +10 -0
- package/dist/cjs/hooks/useSpeaker/index.js.map +1 -0
- package/dist/cjs/hooks/useSpeaker/useSpeaker.js +31 -0
- package/dist/cjs/hooks/useSpeaker/useSpeaker.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/index.js +10 -0
- package/dist/cjs/hooks/useTextChat/index.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/usePendingMessages.js +23 -0
- package/dist/cjs/hooks/useTextChat/usePendingMessages.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/useTextChat.js +62 -0
- package/dist/cjs/hooks/useTextChat/useTextChat.js.map +1 -0
- package/dist/cjs/hooks/useTextChat/useToolAwareSend.js +33 -0
- package/dist/cjs/hooks/useTextChat/useToolAwareSend.js.map +1 -0
- package/dist/cjs/hooks/useTools/index.js +9 -0
- package/dist/cjs/hooks/useTools/index.js.map +1 -0
- package/dist/cjs/hooks/useTools/model/errors.js +12 -0
- package/dist/cjs/hooks/useTools/model/errors.js.map +1 -0
- package/dist/cjs/hooks/useTools/model/types.js +4 -0
- package/dist/cjs/hooks/useTools/model/types.js.map +1 -0
- package/dist/cjs/hooks/useTools/public/useTools.js +11 -0
- package/dist/cjs/hooks/useTools/public/useTools.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js +74 -0
- package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCall.js +33 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCall.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js +41 -0
- package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/types.js +4 -0
- package/dist/cjs/hooks/useTools/runtime/types.js.map +1 -0
- package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js +59 -0
- package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
- package/dist/cjs/hooks/useTools/store/state.js +30 -0
- package/dist/cjs/hooks/useTools/store/state.js.map +1 -0
- package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js +22 -0
- package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
- package/dist/cjs/hooks/useTools/utils/serialize.js +28 -0
- package/dist/cjs/hooks/useTools/utils/serialize.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/index.js +16 -0
- package/dist/cjs/hooks/useTranscriptions/index.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/types.js +4 -0
- package/dist/cjs/hooks/useTranscriptions/types.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscription.js +16 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscription.js.map +1 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js +18 -0
- package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
- package/dist/cjs/hooks/useUserActivity/index.js +10 -0
- package/dist/cjs/hooks/useUserActivity/index.js.map +1 -0
- package/dist/cjs/hooks/useUserActivity/useUserActivity.js +23 -0
- package/dist/cjs/hooks/useUserActivity/useUserActivity.js.map +1 -0
- package/dist/cjs/livekit/components.js +10 -0
- package/dist/cjs/livekit/components.js.map +1 -0
- package/dist/cjs/livekit/sdk.js +10 -0
- package/dist/cjs/livekit/sdk.js.map +1 -0
- package/dist/cjs/sdk-consumer/context.js +15 -0
- package/dist/cjs/sdk-consumer/context.js.map +1 -0
- package/dist/cjs/sdk-consumer/index.js +10 -0
- package/dist/cjs/sdk-consumer/index.js.map +1 -0
- package/dist/cjs/sdk.js +148 -0
- package/dist/cjs/sdk.js.map +1 -0
- package/dist/cjs/services/FetchPersonaChatService.js +139 -0
- package/dist/cjs/services/FetchPersonaChatService.js.map +1 -0
- package/dist/cjs/test-types.d.js +2 -0
- package/dist/cjs/test-types.d.js.map +1 -0
- package/dist/cjs/types/http.js +14 -0
- package/dist/cjs/types/http.js.map +1 -0
- package/dist/cjs/types/index.js +7 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/service.js +4 -0
- package/dist/cjs/types/service.js.map +1 -0
- package/dist/cjs/utils/captureImage/captureImage.js +29 -0
- package/dist/cjs/utils/captureImage/captureImage.js.map +1 -0
- package/dist/cjs/utils/captureImage/helpers.js +74 -0
- package/dist/cjs/utils/captureImage/helpers.js.map +1 -0
- package/dist/cjs/utils/captureImage/index.js +16 -0
- package/dist/cjs/utils/captureImage/index.js.map +1 -0
- package/dist/cjs/utils/captureImage/types.js +4 -0
- package/dist/cjs/utils/captureImage/types.js.map +1 -0
- package/dist/cjs/utils/compatibility/compatibility.js +17 -0
- package/dist/cjs/utils/compatibility/compatibility.js.map +1 -0
- package/dist/cjs/utils/compatibility/index.js +10 -0
- package/dist/cjs/utils/compatibility/index.js.map +1 -0
- package/dist/cjs/utils.js +10 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/components/Audio/Audio.js +18 -0
- package/dist/esm/components/Audio/Audio.js.map +1 -0
- package/dist/esm/components/Audio/index.js +2 -0
- package/dist/esm/components/Audio/index.js.map +1 -0
- package/dist/esm/components/ChromaKey/ChromaKey.js +115 -0
- package/dist/esm/components/ChromaKey/ChromaKey.js.map +1 -0
- package/dist/esm/components/ChromaKey/chroma-key.js +91 -0
- package/dist/esm/components/ChromaKey/chroma-key.js.map +1 -0
- package/dist/esm/components/ChromaKey/index.js +2 -0
- package/dist/esm/components/ChromaKey/index.js.map +1 -0
- package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js +40 -0
- package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
- package/dist/esm/components/ChromaKey/shaders/index.js +3 -0
- package/dist/esm/components/ChromaKey/shaders/index.js.map +1 -0
- package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js +8 -0
- package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
- package/dist/esm/components/ChromaKey/types.js +2 -0
- package/dist/esm/components/ChromaKey/types.js.map +1 -0
- package/dist/esm/components/LegendsPlatform/LegendsPlatform.js +53 -0
- package/dist/esm/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
- package/dist/esm/components/LegendsPlatform/index.js +2 -0
- package/dist/esm/components/LegendsPlatform/index.js.map +1 -0
- package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js +30 -0
- package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
- package/dist/esm/components/LegendsPlatformQLess/index.js +2 -0
- package/dist/esm/components/LegendsPlatformQLess/index.js.map +1 -0
- package/dist/esm/components/Video/Video.js +73 -0
- package/dist/esm/components/Video/Video.js.map +1 -0
- package/dist/esm/components/Video/index.js +3 -0
- package/dist/esm/components/Video/index.js.map +1 -0
- package/dist/esm/components/Video/types.js +2 -0
- package/dist/esm/components/Video/types.js.map +1 -0
- package/dist/esm/components/Video/useAttachVideo.js +27 -0
- package/dist/esm/components/Video/useAttachVideo.js.map +1 -0
- package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js +47 -0
- package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
- package/dist/esm/components/VideoPostProcessor/effects.js +25 -0
- package/dist/esm/components/VideoPostProcessor/effects.js.map +1 -0
- package/dist/esm/components/VideoPostProcessor/index.js +2 -0
- package/dist/esm/components/VideoPostProcessor/index.js.map +1 -0
- package/dist/esm/components/VideoPreview/VideoPreview.js +48 -0
- package/dist/esm/components/VideoPreview/VideoPreview.js.map +1 -0
- package/dist/esm/components/VideoPreview/index.js +3 -0
- package/dist/esm/components/VideoPreview/index.js.map +1 -0
- package/dist/esm/components/VideoPreview/types.js +2 -0
- package/dist/esm/components/VideoPreview/types.js.map +1 -0
- package/dist/esm/components/VideoPreview/useVideoPreviewStream.js +85 -0
- package/dist/esm/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
- package/dist/esm/components.js +6 -0
- package/dist/esm/components.js.map +1 -0
- package/dist/esm/conversation/index.js +4 -0
- package/dist/esm/conversation/index.js.map +1 -0
- package/dist/esm/conversation/state.js +20 -0
- package/dist/esm/conversation/state.js.map +1 -0
- package/dist/esm/conversation/types.js +2 -0
- package/dist/esm/conversation/types.js.map +1 -0
- package/dist/esm/conversation/utils.js +21 -0
- package/dist/esm/conversation/utils.js.map +1 -0
- package/dist/esm/external-types.d.js +2 -0
- package/dist/esm/external-types.d.js.map +1 -0
- package/dist/esm/hooks/index.js +10 -0
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/hooks/useActivityState/index.js +2 -0
- package/dist/esm/hooks/useActivityState/index.js.map +1 -0
- package/dist/esm/hooks/useActivityState/useActivityState.js +11 -0
- package/dist/esm/hooks/useActivityState/useActivityState.js.map +1 -0
- package/dist/esm/hooks/useAudio/index.js +2 -0
- package/dist/esm/hooks/useAudio/index.js.map +1 -0
- package/dist/esm/hooks/useAudio/useAudio.js +26 -0
- package/dist/esm/hooks/useAudio/useAudio.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/helpers.js +23 -0
- package/dist/esm/hooks/useAudioLevel/helpers.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/index.js +2 -0
- package/dist/esm/hooks/useAudioLevel/index.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/types.js +2 -0
- package/dist/esm/hooks/useAudioLevel/types.js.map +1 -0
- package/dist/esm/hooks/useAudioLevel/useAudioLevel.js +43 -0
- package/dist/esm/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
- package/dist/esm/hooks/useCamera/index.js +2 -0
- package/dist/esm/hooks/useCamera/index.js.map +1 -0
- package/dist/esm/hooks/useCamera/useCamera.js +29 -0
- package/dist/esm/hooks/useCamera/useCamera.js.map +1 -0
- package/dist/esm/hooks/useConnectionState/index.js +2 -0
- package/dist/esm/hooks/useConnectionState/index.js.map +1 -0
- package/dist/esm/hooks/useConnectionState/useConnectionState.js +11 -0
- package/dist/esm/hooks/useConnectionState/useConnectionState.js.map +1 -0
- package/dist/esm/hooks/useConversation/index.js +3 -0
- package/dist/esm/hooks/useConversation/index.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/constants.js +11 -0
- package/dist/esm/hooks/useConversation/livekit/constants.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/types.js +2 -0
- package/dist/esm/hooks/useConversation/livekit/types.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/useConversation.js +377 -0
- package/dist/esm/hooks/useConversation/livekit/useConversation.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js +18 -0
- package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/index.js +7 -0
- package/dist/esm/hooks/useConversation/livekit/utils/index.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/messaging.js +7 -0
- package/dist/esm/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/participants.js +28 -0
- package/dist/esm/hooks/useConversation/livekit/utils/participants.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/serialization.js +9 -0
- package/dist/esm/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js +14 -0
- package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
- package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js +11 -0
- package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
- package/dist/esm/hooks/useConversation/types.js +2 -0
- package/dist/esm/hooks/useConversation/types.js.map +1 -0
- package/dist/esm/hooks/useConversation/useConversation.js +93 -0
- package/dist/esm/hooks/useConversation/useConversation.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/index.js +4 -0
- package/dist/esm/hooks/useConversationEvents/index.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/types.js +2 -0
- package/dist/esm/hooks/useConversationEvents/types.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvent.js +7 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvents.js +20 -0
- package/dist/esm/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
- package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js +9 -0
- package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
- package/dist/esm/hooks/useConversationStatus/index.js +2 -0
- package/dist/esm/hooks/useConversationStatus/index.js.map +1 -0
- package/dist/esm/hooks/useConversationStatus/useConversationStatus.js +6 -0
- package/dist/esm/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
- package/dist/esm/hooks/useConversationTimer/index.js +2 -0
- package/dist/esm/hooks/useConversationTimer/index.js.map +1 -0
- package/dist/esm/hooks/useConversationTimer/useConversationTimer.js +44 -0
- package/dist/esm/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
- package/dist/esm/hooks/useCreateConversation/helpers.js +4 -0
- package/dist/esm/hooks/useCreateConversation/helpers.js.map +1 -0
- package/dist/esm/hooks/useCreateConversation/index.js +2 -0
- package/dist/esm/hooks/useCreateConversation/index.js.map +1 -0
- package/dist/esm/hooks/useCreateConversation/useCreateConversation.js +98 -0
- package/dist/esm/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
- package/dist/esm/hooks/useDeviceSwitcher/index.js +2 -0
- package/dist/esm/hooks/useDeviceSwitcher/index.js.map +1 -0
- package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js +26 -0
- package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
- package/dist/esm/hooks/useDevices/index.js +2 -0
- package/dist/esm/hooks/useDevices/index.js.map +1 -0
- package/dist/esm/hooks/useDevices/useDevices.js +45 -0
- package/dist/esm/hooks/useDevices/useDevices.js.map +1 -0
- package/dist/esm/hooks/useMediaPermissions/index.js +3 -0
- package/dist/esm/hooks/useMediaPermissions/index.js.map +1 -0
- package/dist/esm/hooks/useMediaPermissions/types.js +2 -0
- package/dist/esm/hooks/useMediaPermissions/types.js.map +1 -0
- package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js +42 -0
- package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
- package/dist/esm/hooks/useMediaRecorder/index.js +2 -0
- package/dist/esm/hooks/useMediaRecorder/index.js.map +1 -0
- package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js +227 -0
- package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
- package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js +315 -0
- package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
- package/dist/esm/hooks/useMicrophone/index.js +2 -0
- package/dist/esm/hooks/useMicrophone/index.js.map +1 -0
- package/dist/esm/hooks/useMicrophone/useMicrophone.js +35 -0
- package/dist/esm/hooks/useMicrophone/useMicrophone.js.map +1 -0
- package/dist/esm/hooks/useParticipantTrack/index.js +2 -0
- package/dist/esm/hooks/useParticipantTrack/index.js.map +1 -0
- package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js +26 -0
- package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/index.js +5 -0
- package/dist/esm/hooks/usePictureInPicture/index.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/state.js +10 -0
- package/dist/esm/hooks/usePictureInPicture/state.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/types.js +2 -0
- package/dist/esm/hooks/usePictureInPicture/types.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js +41 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js +111 -0
- package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
- package/dist/esm/hooks/useScreenShare/index.js +2 -0
- package/dist/esm/hooks/useScreenShare/index.js.map +1 -0
- package/dist/esm/hooks/useScreenShare/useScreenShare.js +42 -0
- package/dist/esm/hooks/useScreenShare/useScreenShare.js.map +1 -0
- package/dist/esm/hooks/useSpeaker/index.js +2 -0
- package/dist/esm/hooks/useSpeaker/index.js.map +1 -0
- package/dist/esm/hooks/useSpeaker/useSpeaker.js +28 -0
- package/dist/esm/hooks/useSpeaker/useSpeaker.js.map +1 -0
- package/dist/esm/hooks/useTextChat/index.js +2 -0
- package/dist/esm/hooks/useTextChat/index.js.map +1 -0
- package/dist/esm/hooks/useTextChat/usePendingMessages.js +19 -0
- package/dist/esm/hooks/useTextChat/usePendingMessages.js.map +1 -0
- package/dist/esm/hooks/useTextChat/useTextChat.js +59 -0
- package/dist/esm/hooks/useTextChat/useTextChat.js.map +1 -0
- package/dist/esm/hooks/useTextChat/useToolAwareSend.js +28 -0
- package/dist/esm/hooks/useTextChat/useToolAwareSend.js.map +1 -0
- package/dist/esm/hooks/useTools/index.js +3 -0
- package/dist/esm/hooks/useTools/index.js.map +1 -0
- package/dist/esm/hooks/useTools/model/errors.js +7 -0
- package/dist/esm/hooks/useTools/model/errors.js.map +1 -0
- package/dist/esm/hooks/useTools/model/types.js +2 -0
- package/dist/esm/hooks/useTools/model/types.js.map +1 -0
- package/dist/esm/hooks/useTools/public/useTools.js +7 -0
- package/dist/esm/hooks/useTools/public/useTools.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js +66 -0
- package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCall.js +29 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCall.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js +36 -0
- package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/types.js +2 -0
- package/dist/esm/hooks/useTools/runtime/types.js.map +1 -0
- package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js +58 -0
- package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
- package/dist/esm/hooks/useTools/store/state.js +26 -0
- package/dist/esm/hooks/useTools/store/state.js.map +1 -0
- package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js +18 -0
- package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
- package/dist/esm/hooks/useTools/utils/serialize.js +23 -0
- package/dist/esm/hooks/useTools/utils/serialize.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/index.js +3 -0
- package/dist/esm/hooks/useTranscriptions/index.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/types.js +2 -0
- package/dist/esm/hooks/useTranscriptions/types.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/useTranscription.js +15 -0
- package/dist/esm/hooks/useTranscriptions/useTranscription.js.map +1 -0
- package/dist/esm/hooks/useTranscriptions/useTranscriptions.js +15 -0
- package/dist/esm/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
- package/dist/esm/hooks/useUserActivity/index.js +2 -0
- package/dist/esm/hooks/useUserActivity/index.js.map +1 -0
- package/dist/esm/hooks/useUserActivity/useUserActivity.js +22 -0
- package/dist/esm/hooks/useUserActivity/useUserActivity.js.map +1 -0
- package/dist/esm/livekit/components.js +2 -0
- package/dist/esm/livekit/components.js.map +1 -0
- package/dist/esm/livekit/sdk.js +2 -0
- package/dist/esm/livekit/sdk.js.map +1 -0
- package/dist/esm/sdk-consumer/context.js +10 -0
- package/dist/esm/sdk-consumer/context.js.map +1 -0
- package/dist/esm/sdk-consumer/index.js +2 -0
- package/dist/esm/sdk-consumer/index.js.map +1 -0
- package/dist/esm/sdk.js +25 -0
- package/dist/esm/sdk.js.map +1 -0
- package/dist/esm/services/FetchPersonaChatService.js +124 -0
- package/dist/esm/services/FetchPersonaChatService.js.map +1 -0
- package/dist/esm/test-types.d.js +2 -0
- package/dist/esm/test-types.d.js.map +1 -0
- package/dist/esm/types/http.js +9 -0
- package/dist/esm/types/http.js.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/service.js +2 -0
- package/dist/esm/types/service.js.map +1 -0
- package/dist/esm/utils/captureImage/captureImage.js +29 -0
- package/dist/esm/utils/captureImage/captureImage.js.map +1 -0
- package/dist/esm/utils/captureImage/helpers.js +69 -0
- package/dist/esm/utils/captureImage/helpers.js.map +1 -0
- package/dist/esm/utils/captureImage/index.js +3 -0
- package/dist/esm/utils/captureImage/index.js.map +1 -0
- package/dist/esm/utils/captureImage/types.js +2 -0
- package/dist/esm/utils/captureImage/types.js.map +1 -0
- package/dist/esm/utils/compatibility/compatibility.js +12 -0
- package/dist/esm/utils/compatibility/compatibility.js.map +1 -0
- package/dist/esm/utils/compatibility/index.js +2 -0
- package/dist/esm/utils/compatibility/index.js.map +1 -0
- package/dist/esm/utils.js +2 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/types/components/Audio/Audio.d.ts +3 -0
- package/dist/types/components/Audio/Audio.d.ts.map +1 -0
- package/dist/types/components/Audio/index.d.ts +2 -0
- package/dist/types/components/Audio/index.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/ChromaKey.d.ts +20 -0
- package/dist/types/components/ChromaKey/ChromaKey.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/chroma-key.d.ts +9 -0
- package/dist/types/components/ChromaKey/chroma-key.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/index.d.ts +2 -0
- package/dist/types/components/ChromaKey/index.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts +3 -0
- package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/shaders/index.d.ts +3 -0
- package/dist/types/components/ChromaKey/shaders/index.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts +3 -0
- package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts.map +1 -0
- package/dist/types/components/ChromaKey/types.d.ts +3 -0
- package/dist/types/components/ChromaKey/types.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts +18 -0
- package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatform/index.d.ts +2 -0
- package/dist/types/components/LegendsPlatform/index.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts +15 -0
- package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts.map +1 -0
- package/dist/types/components/LegendsPlatformQLess/index.d.ts +2 -0
- package/dist/types/components/LegendsPlatformQLess/index.d.ts.map +1 -0
- package/dist/types/components/Video/Video.d.ts +14 -0
- package/dist/types/components/Video/Video.d.ts.map +1 -0
- package/dist/types/components/Video/index.d.ts +3 -0
- package/dist/types/components/Video/index.d.ts.map +1 -0
- package/dist/types/components/Video/types.d.ts +22 -0
- package/dist/types/components/Video/types.d.ts.map +1 -0
- package/dist/types/components/Video/useAttachVideo.d.ts +10 -0
- package/dist/types/components/Video/useAttachVideo.d.ts.map +1 -0
- package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts +11 -0
- package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts.map +1 -0
- package/dist/types/components/VideoPostProcessor/effects.d.ts +3 -0
- package/dist/types/components/VideoPostProcessor/effects.d.ts.map +1 -0
- package/dist/types/components/VideoPostProcessor/index.d.ts +2 -0
- package/dist/types/components/VideoPostProcessor/index.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/VideoPreview.d.ts +4 -0
- package/dist/types/components/VideoPreview/VideoPreview.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/index.d.ts +3 -0
- package/dist/types/components/VideoPreview/index.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/types.d.ts +11 -0
- package/dist/types/components/VideoPreview/types.d.ts.map +1 -0
- package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts +13 -0
- package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts.map +1 -0
- package/dist/types/components.d.ts +6 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/conversation/index.d.ts +3 -0
- package/dist/types/conversation/index.d.ts.map +1 -0
- package/dist/types/conversation/state.d.ts +47 -0
- package/dist/types/conversation/state.d.ts.map +1 -0
- package/dist/types/conversation/types.d.ts +27 -0
- package/dist/types/conversation/types.d.ts.map +1 -0
- package/dist/types/conversation/utils.d.ts +6 -0
- package/dist/types/conversation/utils.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +10 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useActivityState/index.d.ts +2 -0
- package/dist/types/hooks/useActivityState/index.d.ts.map +1 -0
- package/dist/types/hooks/useActivityState/useActivityState.d.ts +2 -0
- package/dist/types/hooks/useActivityState/useActivityState.d.ts.map +1 -0
- package/dist/types/hooks/useAudio/index.d.ts +2 -0
- package/dist/types/hooks/useAudio/index.d.ts.map +1 -0
- package/dist/types/hooks/useAudio/useAudio.d.ts +7 -0
- package/dist/types/hooks/useAudio/useAudio.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/helpers.d.ts +11 -0
- package/dist/types/hooks/useAudioLevel/helpers.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/index.d.ts +2 -0
- package/dist/types/hooks/useAudioLevel/index.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/types.d.ts +8 -0
- package/dist/types/hooks/useAudioLevel/types.d.ts.map +1 -0
- package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts +3 -0
- package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts.map +1 -0
- package/dist/types/hooks/useCamera/index.d.ts +2 -0
- package/dist/types/hooks/useCamera/index.d.ts.map +1 -0
- package/dist/types/hooks/useCamera/useCamera.d.ts +8 -0
- package/dist/types/hooks/useCamera/useCamera.d.ts.map +1 -0
- package/dist/types/hooks/useConnectionState/index.d.ts +2 -0
- package/dist/types/hooks/useConnectionState/index.d.ts.map +1 -0
- package/dist/types/hooks/useConnectionState/useConnectionState.d.ts +2 -0
- package/dist/types/hooks/useConnectionState/useConnectionState.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/index.d.ts +3 -0
- package/dist/types/hooks/useConversation/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/constants.d.ts +4 -0
- package/dist/types/hooks/useConversation/livekit/constants.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/types.d.ts +32 -0
- package/dist/types/hooks/useConversation/livekit/types.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation/livekit/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts +6 -0
- package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/index.d.ts +7 -0
- package/dist/types/hooks/useConversation/livekit/utils/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts +3 -0
- package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts +6 -0
- package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts +2 -0
- package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts +4 -0
- package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts +3 -0
- package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/types.d.ts +23 -0
- package/dist/types/hooks/useConversation/types.d.ts.map +1 -0
- package/dist/types/hooks/useConversation/useConversation.d.ts +3 -0
- package/dist/types/hooks/useConversation/useConversation.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/index.d.ts +4 -0
- package/dist/types/hooks/useConversationEvents/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/types.d.ts +72 -0
- package/dist/types/hooks/useConversationEvents/types.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts +3 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts +5 -0
- package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts.map +1 -0
- package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts +3 -0
- package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts.map +1 -0
- package/dist/types/hooks/useConversationStatus/index.d.ts +2 -0
- package/dist/types/hooks/useConversationStatus/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts +2 -0
- package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts.map +1 -0
- package/dist/types/hooks/useConversationTimer/index.d.ts +2 -0
- package/dist/types/hooks/useConversationTimer/index.d.ts.map +1 -0
- package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts +17 -0
- package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts.map +1 -0
- package/dist/types/hooks/useCreateConversation/helpers.d.ts +8 -0
- package/dist/types/hooks/useCreateConversation/helpers.d.ts.map +1 -0
- package/dist/types/hooks/useCreateConversation/index.d.ts +2 -0
- package/dist/types/hooks/useCreateConversation/index.d.ts.map +1 -0
- package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts +11 -0
- package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts.map +1 -0
- package/dist/types/hooks/useDeviceSwitcher/index.d.ts +2 -0
- package/dist/types/hooks/useDeviceSwitcher/index.d.ts.map +1 -0
- package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts +9 -0
- package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts.map +1 -0
- package/dist/types/hooks/useDevices/index.d.ts +2 -0
- package/dist/types/hooks/useDevices/index.d.ts.map +1 -0
- package/dist/types/hooks/useDevices/useDevices.d.ts +6 -0
- package/dist/types/hooks/useDevices/useDevices.d.ts.map +1 -0
- package/dist/types/hooks/useMediaPermissions/index.d.ts +3 -0
- package/dist/types/hooks/useMediaPermissions/index.d.ts.map +1 -0
- package/dist/types/hooks/useMediaPermissions/types.d.ts +3 -0
- package/dist/types/hooks/useMediaPermissions/types.d.ts.map +1 -0
- package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts +7 -0
- package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts.map +1 -0
- package/dist/types/hooks/useMediaRecorder/index.d.ts +2 -0
- package/dist/types/hooks/useMediaRecorder/index.d.ts.map +1 -0
- package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts +39 -0
- package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts.map +1 -0
- package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts +70 -0
- package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts.map +1 -0
- package/dist/types/hooks/useMicrophone/index.d.ts +2 -0
- package/dist/types/hooks/useMicrophone/index.d.ts.map +1 -0
- package/dist/types/hooks/useMicrophone/useMicrophone.d.ts +8 -0
- package/dist/types/hooks/useMicrophone/useMicrophone.d.ts.map +1 -0
- package/dist/types/hooks/useParticipantTrack/index.d.ts +2 -0
- package/dist/types/hooks/useParticipantTrack/index.d.ts.map +1 -0
- package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts +11 -0
- package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/index.d.ts +6 -0
- package/dist/types/hooks/usePictureInPicture/index.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/state.d.ts +8 -0
- package/dist/types/hooks/usePictureInPicture/state.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/types.d.ts +25 -0
- package/dist/types/hooks/usePictureInPicture/types.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts +3 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts.map +1 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts +3 -0
- package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts.map +1 -0
- package/dist/types/hooks/useScreenShare/index.d.ts +2 -0
- package/dist/types/hooks/useScreenShare/index.d.ts.map +1 -0
- package/dist/types/hooks/useScreenShare/useScreenShare.d.ts +13 -0
- package/dist/types/hooks/useScreenShare/useScreenShare.d.ts.map +1 -0
- package/dist/types/hooks/useSpeaker/index.d.ts +2 -0
- package/dist/types/hooks/useSpeaker/index.d.ts.map +1 -0
- package/dist/types/hooks/useSpeaker/useSpeaker.d.ts +6 -0
- package/dist/types/hooks/useSpeaker/useSpeaker.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/index.d.ts +2 -0
- package/dist/types/hooks/useTextChat/index.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/usePendingMessages.d.ts +11 -0
- package/dist/types/hooks/useTextChat/usePendingMessages.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/useTextChat.d.ts +21 -0
- package/dist/types/hooks/useTextChat/useTextChat.d.ts.map +1 -0
- package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts +8 -0
- package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts.map +1 -0
- package/dist/types/hooks/useTools/index.d.ts +4 -0
- package/dist/types/hooks/useTools/index.d.ts.map +1 -0
- package/dist/types/hooks/useTools/model/errors.d.ts +4 -0
- package/dist/types/hooks/useTools/model/errors.d.ts.map +1 -0
- package/dist/types/hooks/useTools/model/types.d.ts +27 -0
- package/dist/types/hooks/useTools/model/types.d.ts.map +1 -0
- package/dist/types/hooks/useTools/public/useTools.d.ts +2 -0
- package/dist/types/hooks/useTools/public/useTools.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts +9 -0
- package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts +3 -0
- package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts +11 -0
- package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/types.d.ts +35 -0
- package/dist/types/hooks/useTools/runtime/types.d.ts.map +1 -0
- package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts +9 -0
- package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts.map +1 -0
- package/dist/types/hooks/useTools/store/state.d.ts +17 -0
- package/dist/types/hooks/useTools/store/state.d.ts.map +1 -0
- package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts +4 -0
- package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts.map +1 -0
- package/dist/types/hooks/useTools/utils/serialize.d.ts +3 -0
- package/dist/types/hooks/useTools/utils/serialize.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/index.d.ts +3 -0
- package/dist/types/hooks/useTranscriptions/index.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/types.d.ts +5 -0
- package/dist/types/hooks/useTranscriptions/types.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/useTranscription.d.ts +3 -0
- package/dist/types/hooks/useTranscriptions/useTranscription.d.ts.map +1 -0
- package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts +3 -0
- package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts.map +1 -0
- package/dist/types/hooks/useUserActivity/index.d.ts +2 -0
- package/dist/types/hooks/useUserActivity/index.d.ts.map +1 -0
- package/dist/types/hooks/useUserActivity/useUserActivity.d.ts +8 -0
- package/dist/types/hooks/useUserActivity/useUserActivity.d.ts.map +1 -0
- package/dist/types/livekit/components.d.ts +2 -0
- package/dist/types/livekit/components.d.ts.map +1 -0
- package/dist/types/livekit/sdk.d.ts +2 -0
- package/dist/types/livekit/sdk.d.ts.map +1 -0
- package/dist/types/sdk-consumer/context.d.ts +12 -0
- package/dist/types/sdk-consumer/context.d.ts.map +1 -0
- package/dist/types/sdk-consumer/index.d.ts +2 -0
- package/dist/types/sdk-consumer/index.d.ts.map +1 -0
- package/dist/types/sdk.d.ts +25 -0
- package/dist/types/sdk.d.ts.map +1 -0
- package/dist/types/services/FetchPersonaChatService.d.ts +15 -0
- package/dist/types/services/FetchPersonaChatService.d.ts.map +1 -0
- package/dist/types/types/http.d.ts +15 -0
- package/dist/types/types/http.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +4 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/service.d.ts +62 -0
- package/dist/types/types/service.d.ts.map +1 -0
- package/dist/types/utils/captureImage/captureImage.d.ts +3 -0
- package/dist/types/utils/captureImage/captureImage.d.ts.map +1 -0
- package/dist/types/utils/captureImage/helpers.d.ts +4 -0
- package/dist/types/utils/captureImage/helpers.d.ts.map +1 -0
- package/dist/types/utils/captureImage/index.d.ts +3 -0
- package/dist/types/utils/captureImage/index.d.ts.map +1 -0
- package/dist/types/utils/captureImage/types.d.ts +9 -0
- package/dist/types/utils/captureImage/types.d.ts.map +1 -0
- package/dist/types/utils/compatibility/compatibility.d.ts +3 -0
- package/dist/types/utils/compatibility/compatibility.d.ts.map +1 -0
- package/dist/types/utils/compatibility/index.d.ts +2 -0
- package/dist/types/utils/compatibility/index.d.ts.map +1 -0
- package/dist/types/utils.d.ts +2 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/livekit/components/package.json +5 -0
- package/livekit/sdk/package.json +5 -0
- package/livekit-client.patch +19 -0
- package/package.json +108 -0
- package/sdk/package.json +5 -0
- package/tpa/package.json +5 -0
- package/utils/package.json +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useAtom","state","useDevices","useDeviceSwitcher","useMicrophone","devices","type","_useAtom","microphone","setMicrophone","device","onChange","enabled","deviceId","setEnabled","setDeviceId"],"sources":["../../../../src/hooks/useMicrophone/useMicrophone.ts"],"sourcesContent":["import { useAtom } from 'jotai';\n\nimport * as state from '../../conversation/state';\n\nimport { useDevices } from '../useDevices';\nimport { useDeviceSwitcher } from '../useDeviceSwitcher';\n\nexport function useMicrophone() {\n const devices = useDevices({ type: 'audioinput' });\n const [microphone, setMicrophone] = useAtom(state.microphone);\n\n useDeviceSwitcher({\n device: microphone,\n devices,\n onChange: setMicrophone,\n });\n\n return {\n devices,\n enabled: microphone.enabled,\n deviceId: microphone.deviceId,\n setEnabled(enabled: boolean) {\n setMicrophone({ ...microphone, enabled });\n },\n setDeviceId(deviceId: string) {\n setMicrophone({ ...microphone, deviceId });\n },\n };\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AAEjD,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,iBAAiB,QAAQ,sBAAsB;AAExD,OAAO,SAASC,aAAaA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAGH,UAAU,CAAC;IAAEI,IAAI,EAAE;EAAa,CAAC,CAAC;EAClD,MAAAC,QAAA,GAAoCP,OAAO,CAACC,KAAK,CAACO,UAAU,CAAC;IAAtDA,UAAU,GAAAD,QAAA;IAAEE,aAAa,GAAAF,QAAA;EAEhCJ,iBAAiB,CAAC;IAChBO,MAAM,EAAEF,UAAU;IAClBH,OAAO;IACPM,QAAQ,EAAEF;EACZ,CAAC,CAAC;EAEF,OAAO;IACLJ,OAAO;IACPO,OAAO,EAAEJ,UAAU,CAACI,OAAO;IAC3BC,QAAQ,EAAEL,UAAU,CAACK,QAAQ;IAC7BC,UAAUA,CAACF,OAAgB,EAAE;MAC3BH,aAAa,CAAC;QAAE,GAAGD,UAAU;QAAEI;MAAQ,CAAC,CAAC;IAC3C,CAAC;IACDG,WAAWA,CAACF,QAAgB,EAAE;MAC5BJ,aAAa,CAAC;QAAE,GAAGD,UAAU;QAAEK;MAAS,CAAC,CAAC;IAC5C;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/hooks/useParticipantTrack/index.ts"],"sourcesContent":["export * from './useParticipantTrack';\n"],"mappings":"AAAA,cAAc,uBAAuB","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useTracks } from '@livekit/components-react';
|
|
2
|
+
import { Track } from 'livekit-client';
|
|
3
|
+
export let Source = function (Source) {
|
|
4
|
+
Source[Source["Camera"] = Track.Source.Camera] = "Camera";
|
|
5
|
+
Source[Source["Microphone"] = Track.Source.Microphone] = "Microphone";
|
|
6
|
+
Source[Source["ScreenShare"] = Track.Source.ScreenShare] = "ScreenShare";
|
|
7
|
+
return Source;
|
|
8
|
+
}({});
|
|
9
|
+
export function useParticipantTrack(_ref) {
|
|
10
|
+
let type = _ref.type,
|
|
11
|
+
source = _ref.source;
|
|
12
|
+
const track = useTracks([source]).find(track => {
|
|
13
|
+
if (type === 'screen') {
|
|
14
|
+
return track.source === Source.ScreenShare;
|
|
15
|
+
}
|
|
16
|
+
if (type === 'user') {
|
|
17
|
+
return track.participant.isLocal;
|
|
18
|
+
}
|
|
19
|
+
if (type === 'agent') {
|
|
20
|
+
return track.participant.isAgent;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
});
|
|
24
|
+
return (track == null ? void 0 : track.publication) || {};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useParticipantTrack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useTracks","Track","Source","Camera","Microphone","ScreenShare","useParticipantTrack","_ref","type","source","track","find","participant","isLocal","isAgent","publication"],"sources":["../../../../src/hooks/useParticipantTrack/useParticipantTrack.ts"],"sourcesContent":["import { useTracks } from '@livekit/components-react';\nimport { Track } from 'livekit-client';\n\nexport enum Source {\n Camera = Track.Source.Camera,\n Microphone = Track.Source.Microphone,\n ScreenShare = Track.Source.ScreenShare,\n}\n\nexport type UseParticipantTrackProps = {\n type: 'user' | 'agent' | 'screen';\n source: Source;\n};\n\nexport function useParticipantTrack({\n type,\n source,\n}: UseParticipantTrackProps) {\n const track = useTracks([source]).find((track) => {\n if (type === 'screen') {\n return track.source === Source.ScreenShare;\n }\n if (type === 'user') {\n return track.participant.isLocal;\n }\n if (type === 'agent') {\n return track.participant.isAgent;\n }\n return false;\n });\n\n return track?.publication! || {};\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,2BAA2B;AACrD,SAASC,KAAK,QAAQ,gBAAgB;AAEtC,WAAYC,MAAM,aAANA,MAAM;EAANA,MAAM,CAANA,MAAM,aACPD,KAAK,CAACC,MAAM,CAACC,MAAM;EADlBD,MAAM,CAANA,MAAM,iBAEHD,KAAK,CAACC,MAAM,CAACE,UAAU;EAF1BF,MAAM,CAANA,MAAM,kBAGFD,KAAK,CAACC,MAAM,CAACG,WAAW;EAAA,OAH5BH,MAAM;AAAA;AAWlB,OAAO,SAASI,mBAAmBA,CAAAC,IAAA,EAGN;EAAA,IAF3BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,MAAM,GAAAF,IAAA,CAANE,MAAM;EAEN,MAAMC,KAAK,GAAGV,SAAS,CAAC,CAACS,MAAM,CAAC,CAAC,CAACE,IAAI,CAAED,KAAK,IAAK;IAChD,IAAIF,IAAI,KAAK,QAAQ,EAAE;MACrB,OAAOE,KAAK,CAACD,MAAM,KAAKP,MAAM,CAACG,WAAW;IAC5C;IACA,IAAIG,IAAI,KAAK,MAAM,EAAE;MACnB,OAAOE,KAAK,CAACE,WAAW,CAACC,OAAO;IAClC;IACA,IAAIL,IAAI,KAAK,OAAO,EAAE;MACpB,OAAOE,KAAK,CAACE,WAAW,CAACE,OAAO;IAClC;IACA,OAAO,KAAK;EACd,CAAC,CAAC;EAEF,OAAO,CAAAJ,KAAK,oBAALA,KAAK,CAAEK,WAAW,KAAK,CAAC,CAAC;AAClC","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { usePictureInPicture } from './usePictureInPicture';
|
|
2
|
+
// Internal exports - not exported from package
|
|
3
|
+
export { usePictureInPictureAuto } from './usePictureInPictureAuto';
|
|
4
|
+
export { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["usePictureInPicture","usePictureInPictureAuto","pipVideoAtom","pipActiveAtom","pipSupportedAtom"],"sources":["../../../../src/hooks/usePictureInPicture/index.ts"],"sourcesContent":["export { usePictureInPicture } from './usePictureInPicture';\nexport type { UsePictureInPictureReturn } from './types';\n\n// Internal exports - not exported from package\nexport { usePictureInPictureAuto } from './usePictureInPictureAuto';\nexport type { UsePictureInPictureAutoOptions } from './types';\nexport { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,uBAAuB;AAG3D;AACA,SAASC,uBAAuB,QAAQ,2BAA2B;AAEnE,SAASC,YAAY,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { atom } from 'jotai';
|
|
2
|
+
import { detectBrowser } from '../../utils/compatibility/compatibility';
|
|
3
|
+
export const pipVideoAtom = atom(null);
|
|
4
|
+
export const pipActiveAtom = atom(false);
|
|
5
|
+
export const pipSupportedAtom = atom(() => {
|
|
6
|
+
const browser = detectBrowser();
|
|
7
|
+
const pictureInPictureEnabled = typeof document !== 'undefined' && 'pictureInPictureEnabled' in document && document.pictureInPictureEnabled;
|
|
8
|
+
return browser !== 'safari' && pictureInPictureEnabled;
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["atom","detectBrowser","pipVideoAtom","pipActiveAtom","pipSupportedAtom","browser","pictureInPictureEnabled","document"],"sources":["../../../../src/hooks/usePictureInPicture/state.ts"],"sourcesContent":["import { atom } from 'jotai';\nimport { detectBrowser } from '../../utils/compatibility/compatibility';\n\nexport const pipVideoAtom = atom<HTMLVideoElement | null>(null);\n\nexport const pipActiveAtom = atom(false);\n\nexport const pipSupportedAtom = atom(() => {\n const browser = detectBrowser();\n const pictureInPictureEnabled =\n typeof document !== 'undefined' &&\n 'pictureInPictureEnabled' in document &&\n document.pictureInPictureEnabled;\n\n return browser !== 'safari' && pictureInPictureEnabled;\n});\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,aAAa,QAAQ,yCAAyC;AAEvE,OAAO,MAAMC,YAAY,GAAGF,IAAI,CAA0B,IAAI,CAAC;AAE/D,OAAO,MAAMG,aAAa,GAAGH,IAAI,CAAC,KAAK,CAAC;AAExC,OAAO,MAAMI,gBAAgB,GAAGJ,IAAI,CAAC,MAAM;EACzC,MAAMK,OAAO,GAAGJ,aAAa,CAAC,CAAC;EAC/B,MAAMK,uBAAuB,GAC3B,OAAOC,QAAQ,KAAK,WAAW,IAC/B,yBAAyB,IAAIA,QAAQ,IACrCA,QAAQ,CAACD,uBAAuB;EAElC,OAAOD,OAAO,KAAK,QAAQ,IAAIC,uBAAuB;AACxD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/hooks/usePictureInPicture/types.ts"],"sourcesContent":["export type UsePictureInPictureAutoOptions = {\n /** Video or Canvas element to use for PiP */\n element: HTMLVideoElement | HTMLCanvasElement | null;\n /** Callback when entering PiP */\n onEnter?: () => void;\n /** Callback when exiting PiP */\n onExit?: () => void;\n /** Callback when PiP error occurs */\n onError?: (error: Error) => void;\n};\n\nexport type UsePictureInPictureReturn = {\n /** Whether PiP is currently active */\n isActive: boolean;\n /** Whether PiP is supported by the browser */\n isSupported: boolean;\n /** Whether video element is ready for PiP */\n isReady: boolean;\n /** Enter PiP mode */\n enter: () => Promise<void>;\n /** Exit PiP mode */\n exit: () => Promise<void>;\n /** Toggle PiP mode */\n toggle: () => Promise<void>;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
import { useAtomValue } from 'jotai';
|
|
3
|
+
import { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';
|
|
4
|
+
export function usePictureInPicture() {
|
|
5
|
+
const isActive = useAtomValue(pipActiveAtom);
|
|
6
|
+
const isSupported = useAtomValue(pipSupportedAtom);
|
|
7
|
+
const pipVideo = useAtomValue(pipVideoAtom);
|
|
8
|
+
const enter = useCallback(async () => {
|
|
9
|
+
if (!isSupported) {
|
|
10
|
+
throw new Error('PiP not supported');
|
|
11
|
+
}
|
|
12
|
+
if (!pipVideo) {
|
|
13
|
+
throw new Error('No video element for PiP');
|
|
14
|
+
}
|
|
15
|
+
if (pipVideo.paused && pipVideo.srcObject) {
|
|
16
|
+
await pipVideo.play();
|
|
17
|
+
}
|
|
18
|
+
await pipVideo.requestPictureInPicture();
|
|
19
|
+
}, [isSupported, pipVideo]);
|
|
20
|
+
const exit = useCallback(async () => {
|
|
21
|
+
if (document.pictureInPictureElement) {
|
|
22
|
+
await document.exitPictureInPicture();
|
|
23
|
+
}
|
|
24
|
+
}, []);
|
|
25
|
+
const toggle = useCallback(async () => {
|
|
26
|
+
if (isActive) {
|
|
27
|
+
await exit();
|
|
28
|
+
} else {
|
|
29
|
+
await enter();
|
|
30
|
+
}
|
|
31
|
+
}, [isActive, enter, exit]);
|
|
32
|
+
return {
|
|
33
|
+
isActive,
|
|
34
|
+
isSupported,
|
|
35
|
+
isReady: !!pipVideo,
|
|
36
|
+
enter,
|
|
37
|
+
exit,
|
|
38
|
+
toggle
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=usePictureInPicture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useAtomValue","pipVideoAtom","pipActiveAtom","pipSupportedAtom","usePictureInPicture","isActive","isSupported","pipVideo","enter","Error","paused","srcObject","play","requestPictureInPicture","exit","document","pictureInPictureElement","exitPictureInPicture","toggle","isReady"],"sources":["../../../../src/hooks/usePictureInPicture/usePictureInPicture.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useAtomValue } from 'jotai';\n\nimport { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';\nimport type { UsePictureInPictureReturn } from './types';\n\nexport function usePictureInPicture(): UsePictureInPictureReturn {\n const isActive = useAtomValue(pipActiveAtom);\n const isSupported = useAtomValue(pipSupportedAtom);\n const pipVideo = useAtomValue(pipVideoAtom);\n\n const enter = useCallback(async () => {\n if (!isSupported) {\n throw new Error('PiP not supported');\n }\n if (!pipVideo) {\n throw new Error('No video element for PiP');\n }\n\n if (pipVideo.paused && pipVideo.srcObject) {\n await pipVideo.play();\n }\n await pipVideo.requestPictureInPicture();\n }, [isSupported, pipVideo]);\n\n const exit = useCallback(async () => {\n if (document.pictureInPictureElement) {\n await document.exitPictureInPicture();\n }\n }, []);\n\n const toggle = useCallback(async () => {\n if (isActive) {\n await exit();\n } else {\n await enter();\n }\n }, [isActive, enter, exit]);\n\n return {\n isActive,\n isSupported,\n isReady: !!pipVideo,\n enter,\n exit,\n toggle,\n };\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,YAAY,QAAQ,OAAO;AAEpC,SAASC,YAAY,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ,SAAS;AAGvE,OAAO,SAASC,mBAAmBA,CAAA,EAA8B;EAC/D,MAAMC,QAAQ,GAAGL,YAAY,CAACE,aAAa,CAAC;EAC5C,MAAMI,WAAW,GAAGN,YAAY,CAACG,gBAAgB,CAAC;EAClD,MAAMI,QAAQ,GAAGP,YAAY,CAACC,YAAY,CAAC;EAE3C,MAAMO,KAAK,GAAGT,WAAW,CAAC,YAAY;IACpC,IAAI,CAACO,WAAW,EAAE;MAChB,MAAM,IAAIG,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,IAAI,CAACF,QAAQ,EAAE;MACb,MAAM,IAAIE,KAAK,CAAC,0BAA0B,CAAC;IAC7C;IAEA,IAAIF,QAAQ,CAACG,MAAM,IAAIH,QAAQ,CAACI,SAAS,EAAE;MACzC,MAAMJ,QAAQ,CAACK,IAAI,CAAC,CAAC;IACvB;IACA,MAAML,QAAQ,CAACM,uBAAuB,CAAC,CAAC;EAC1C,CAAC,EAAE,CAACP,WAAW,EAAEC,QAAQ,CAAC,CAAC;EAE3B,MAAMO,IAAI,GAAGf,WAAW,CAAC,YAAY;IACnC,IAAIgB,QAAQ,CAACC,uBAAuB,EAAE;MACpC,MAAMD,QAAQ,CAACE,oBAAoB,CAAC,CAAC;IACvC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,MAAM,GAAGnB,WAAW,CAAC,YAAY;IACrC,IAAIM,QAAQ,EAAE;MACZ,MAAMS,IAAI,CAAC,CAAC;IACd,CAAC,MAAM;MACL,MAAMN,KAAK,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACH,QAAQ,EAAEG,KAAK,EAAEM,IAAI,CAAC,CAAC;EAE3B,OAAO;IACLT,QAAQ;IACRC,WAAW;IACXa,OAAO,EAAE,CAAC,CAACZ,QAAQ;IACnBC,KAAK;IACLM,IAAI;IACJI;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/* eslint-disable no-undef */
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useLatest } from 'react-use';
|
|
4
|
+
import { useAtom, useAtomValue, useSetAtom } from 'jotai';
|
|
5
|
+
import { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';
|
|
6
|
+
export function usePictureInPictureAuto(options) {
|
|
7
|
+
const element = options.element,
|
|
8
|
+
onEnter = options.onEnter,
|
|
9
|
+
onExit = options.onExit,
|
|
10
|
+
onError = options.onError;
|
|
11
|
+
const _useAtom = useAtom(pipVideoAtom),
|
|
12
|
+
pipVideo = _useAtom[0],
|
|
13
|
+
setPipVideo = _useAtom[1];
|
|
14
|
+
const setIsActive = useSetAtom(pipActiveAtom);
|
|
15
|
+
const isSupported = useAtomValue(pipSupportedAtom);
|
|
16
|
+
const canvasVideoRef = useRef(null);
|
|
17
|
+
const callbacksRef = useLatest({
|
|
18
|
+
onEnter,
|
|
19
|
+
onExit,
|
|
20
|
+
onError
|
|
21
|
+
});
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!element || !isSupported) {
|
|
24
|
+
setPipVideo(null);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let video;
|
|
28
|
+
if (element instanceof HTMLCanvasElement) {
|
|
29
|
+
video = createVideoFromCanvas(element);
|
|
30
|
+
canvasVideoRef.current = video;
|
|
31
|
+
} else {
|
|
32
|
+
video = element;
|
|
33
|
+
}
|
|
34
|
+
video.setAttribute('autopictureinpicture', 'true');
|
|
35
|
+
setPipVideo(video);
|
|
36
|
+
return () => {
|
|
37
|
+
if (canvasVideoRef.current) {
|
|
38
|
+
destroyCanvasVideo(canvasVideoRef.current);
|
|
39
|
+
canvasVideoRef.current = null;
|
|
40
|
+
}
|
|
41
|
+
setPipVideo(null);
|
|
42
|
+
};
|
|
43
|
+
}, [element, isSupported, setPipVideo]);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (!pipVideo) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const handleEnter = () => {
|
|
49
|
+
setIsActive(true);
|
|
50
|
+
callbacksRef.current.onEnter == null || callbacksRef.current.onEnter();
|
|
51
|
+
};
|
|
52
|
+
const handleLeave = () => {
|
|
53
|
+
setIsActive(false);
|
|
54
|
+
callbacksRef.current.onExit == null || callbacksRef.current.onExit();
|
|
55
|
+
};
|
|
56
|
+
pipVideo.addEventListener('enterpictureinpicture', handleEnter);
|
|
57
|
+
pipVideo.addEventListener('leavepictureinpicture', handleLeave);
|
|
58
|
+
return () => {
|
|
59
|
+
pipVideo.removeEventListener('enterpictureinpicture', handleEnter);
|
|
60
|
+
pipVideo.removeEventListener('leavepictureinpicture', handleLeave);
|
|
61
|
+
};
|
|
62
|
+
}, [pipVideo, setIsActive]);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (!pipVideo || !isSupported) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
navigator.mediaSession.setActionHandler('enterpictureinpicture', async () => {
|
|
69
|
+
try {
|
|
70
|
+
if (pipVideo.paused && pipVideo.srcObject) {
|
|
71
|
+
await pipVideo.play();
|
|
72
|
+
}
|
|
73
|
+
await pipVideo.requestPictureInPicture();
|
|
74
|
+
} catch (error) {
|
|
75
|
+
callbacksRef.current.onError == null || callbacksRef.current.onError(error);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
} catch {}
|
|
79
|
+
return () => {
|
|
80
|
+
try {
|
|
81
|
+
navigator.mediaSession.setActionHandler('enterpictureinpicture', null);
|
|
82
|
+
} catch {}
|
|
83
|
+
};
|
|
84
|
+
}, [pipVideo, isSupported]);
|
|
85
|
+
useEffect(() => {
|
|
86
|
+
if (!element) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
return () => {
|
|
90
|
+
if (document.pictureInPictureElement) {
|
|
91
|
+
document.exitPictureInPicture().catch(() => {});
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}, [element]);
|
|
95
|
+
}
|
|
96
|
+
function createVideoFromCanvas(canvas) {
|
|
97
|
+
const video = document.createElement('video');
|
|
98
|
+
video.muted = true;
|
|
99
|
+
video.playsInline = true;
|
|
100
|
+
video.autoplay = true;
|
|
101
|
+
video.srcObject = canvas.captureStream(30);
|
|
102
|
+
return video;
|
|
103
|
+
}
|
|
104
|
+
function destroyCanvasVideo(video) {
|
|
105
|
+
if (video.srcObject) {
|
|
106
|
+
const stream = video.srcObject;
|
|
107
|
+
stream.getTracks().forEach(track => track.stop());
|
|
108
|
+
video.srcObject = null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=usePictureInPictureAuto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useLatest","useAtom","useAtomValue","useSetAtom","pipVideoAtom","pipActiveAtom","pipSupportedAtom","usePictureInPictureAuto","options","element","onEnter","onExit","onError","_useAtom","pipVideo","setPipVideo","setIsActive","isSupported","canvasVideoRef","callbacksRef","video","HTMLCanvasElement","createVideoFromCanvas","current","setAttribute","destroyCanvasVideo","handleEnter","handleLeave","addEventListener","removeEventListener","navigator","mediaSession","setActionHandler","paused","srcObject","play","requestPictureInPicture","error","document","pictureInPictureElement","exitPictureInPicture","catch","canvas","createElement","muted","playsInline","autoplay","captureStream","stream","getTracks","forEach","track","stop"],"sources":["../../../../src/hooks/usePictureInPicture/usePictureInPictureAuto.ts"],"sourcesContent":["/* eslint-disable no-undef */\nimport { useEffect, useRef } from 'react';\nimport { useLatest } from 'react-use';\nimport { useAtom, useAtomValue, useSetAtom } from 'jotai';\n\nimport { pipVideoAtom, pipActiveAtom, pipSupportedAtom } from './state';\nimport type { UsePictureInPictureAutoOptions } from './types';\n\nexport function usePictureInPictureAuto(\n options: UsePictureInPictureAutoOptions,\n) {\n const { element, onEnter, onExit, onError } = options;\n\n const [pipVideo, setPipVideo] = useAtom(pipVideoAtom);\n const setIsActive = useSetAtom(pipActiveAtom);\n const isSupported = useAtomValue(pipSupportedAtom);\n\n const canvasVideoRef = useRef<HTMLVideoElement | null>(null);\n\n const callbacksRef = useLatest({ onEnter, onExit, onError });\n\n useEffect(() => {\n if (!element || !isSupported) {\n setPipVideo(null);\n return;\n }\n\n let video: HTMLVideoElement;\n\n if (element instanceof HTMLCanvasElement) {\n video = createVideoFromCanvas(element);\n canvasVideoRef.current = video;\n } else {\n video = element;\n }\n\n video.setAttribute('autopictureinpicture', 'true');\n setPipVideo(video);\n\n return () => {\n if (canvasVideoRef.current) {\n destroyCanvasVideo(canvasVideoRef.current);\n canvasVideoRef.current = null;\n }\n setPipVideo(null);\n };\n }, [element, isSupported, setPipVideo]);\n\n useEffect(() => {\n if (!pipVideo) {\n return;\n }\n\n const handleEnter = () => {\n setIsActive(true);\n callbacksRef.current.onEnter?.();\n };\n\n const handleLeave = () => {\n setIsActive(false);\n callbacksRef.current.onExit?.();\n };\n\n pipVideo.addEventListener('enterpictureinpicture', handleEnter);\n pipVideo.addEventListener('leavepictureinpicture', handleLeave);\n\n return () => {\n pipVideo.removeEventListener('enterpictureinpicture', handleEnter);\n pipVideo.removeEventListener('leavepictureinpicture', handleLeave);\n };\n }, [pipVideo, setIsActive]);\n\n useEffect(() => {\n if (!pipVideo || !isSupported) {\n return;\n }\n\n try {\n navigator.mediaSession.setActionHandler(\n 'enterpictureinpicture' as MediaSessionAction,\n async () => {\n try {\n if (pipVideo.paused && pipVideo.srcObject) {\n await pipVideo.play();\n }\n await pipVideo.requestPictureInPicture();\n } catch (error) {\n callbacksRef.current.onError?.(error as Error);\n }\n },\n );\n } catch {}\n\n return () => {\n try {\n navigator.mediaSession.setActionHandler(\n 'enterpictureinpicture' as MediaSessionAction,\n null,\n );\n } catch {}\n };\n }, [pipVideo, isSupported]);\n\n useEffect(() => {\n if (!element) {\n return;\n }\n\n return () => {\n if (document.pictureInPictureElement) {\n document.exitPictureInPicture().catch(() => {});\n }\n };\n }, [element]);\n}\n\nfunction createVideoFromCanvas(canvas: HTMLCanvasElement): HTMLVideoElement {\n const video = document.createElement('video');\n video.muted = true;\n video.playsInline = true;\n video.autoplay = true;\n video.srcObject = canvas.captureStream(30);\n return video;\n}\n\nfunction destroyCanvasVideo(video: HTMLVideoElement) {\n if (video.srcObject) {\n const stream = video.srcObject as MediaStream;\n stream.getTracks().forEach((track) => track.stop());\n video.srcObject = null;\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,SAAS,QAAQ,WAAW;AACrC,SAASC,OAAO,EAAEC,YAAY,EAAEC,UAAU,QAAQ,OAAO;AAEzD,SAASC,YAAY,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ,SAAS;AAGvE,OAAO,SAASC,uBAAuBA,CACrCC,OAAuC,EACvC;EACA,MAAQC,OAAO,GAA+BD,OAAO,CAA7CC,OAAO;IAAEC,OAAO,GAAsBF,OAAO,CAApCE,OAAO;IAAEC,MAAM,GAAcH,OAAO,CAA3BG,MAAM;IAAEC,OAAO,GAAKJ,OAAO,CAAnBI,OAAO;EAEzC,MAAAC,QAAA,GAAgCZ,OAAO,CAACG,YAAY,CAAC;IAA9CU,QAAQ,GAAAD,QAAA;IAAEE,WAAW,GAAAF,QAAA;EAC5B,MAAMG,WAAW,GAAGb,UAAU,CAACE,aAAa,CAAC;EAC7C,MAAMY,WAAW,GAAGf,YAAY,CAACI,gBAAgB,CAAC;EAElD,MAAMY,cAAc,GAAGnB,MAAM,CAA0B,IAAI,CAAC;EAE5D,MAAMoB,YAAY,GAAGnB,SAAS,CAAC;IAAEU,OAAO;IAAEC,MAAM;IAAEC;EAAQ,CAAC,CAAC;EAE5Dd,SAAS,CAAC,MAAM;IACd,IAAI,CAACW,OAAO,IAAI,CAACQ,WAAW,EAAE;MAC5BF,WAAW,CAAC,IAAI,CAAC;MACjB;IACF;IAEA,IAAIK,KAAuB;IAE3B,IAAIX,OAAO,YAAYY,iBAAiB,EAAE;MACxCD,KAAK,GAAGE,qBAAqB,CAACb,OAAO,CAAC;MACtCS,cAAc,CAACK,OAAO,GAAGH,KAAK;IAChC,CAAC,MAAM;MACLA,KAAK,GAAGX,OAAO;IACjB;IAEAW,KAAK,CAACI,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAClDT,WAAW,CAACK,KAAK,CAAC;IAElB,OAAO,MAAM;MACX,IAAIF,cAAc,CAACK,OAAO,EAAE;QAC1BE,kBAAkB,CAACP,cAAc,CAACK,OAAO,CAAC;QAC1CL,cAAc,CAACK,OAAO,GAAG,IAAI;MAC/B;MACAR,WAAW,CAAC,IAAI,CAAC;IACnB,CAAC;EACH,CAAC,EAAE,CAACN,OAAO,EAAEQ,WAAW,EAAEF,WAAW,CAAC,CAAC;EAEvCjB,SAAS,CAAC,MAAM;IACd,IAAI,CAACgB,QAAQ,EAAE;MACb;IACF;IAEA,MAAMY,WAAW,GAAGA,CAAA,KAAM;MACxBV,WAAW,CAAC,IAAI,CAAC;MACjBG,YAAY,CAACI,OAAO,CAACb,OAAO,YAA5BS,YAAY,CAACI,OAAO,CAACb,OAAO,CAAG,CAAC;IAClC,CAAC;IAED,MAAMiB,WAAW,GAAGA,CAAA,KAAM;MACxBX,WAAW,CAAC,KAAK,CAAC;MAClBG,YAAY,CAACI,OAAO,CAACZ,MAAM,YAA3BQ,YAAY,CAACI,OAAO,CAACZ,MAAM,CAAG,CAAC;IACjC,CAAC;IAEDG,QAAQ,CAACc,gBAAgB,CAAC,uBAAuB,EAAEF,WAAW,CAAC;IAC/DZ,QAAQ,CAACc,gBAAgB,CAAC,uBAAuB,EAAED,WAAW,CAAC;IAE/D,OAAO,MAAM;MACXb,QAAQ,CAACe,mBAAmB,CAAC,uBAAuB,EAAEH,WAAW,CAAC;MAClEZ,QAAQ,CAACe,mBAAmB,CAAC,uBAAuB,EAAEF,WAAW,CAAC;IACpE,CAAC;EACH,CAAC,EAAE,CAACb,QAAQ,EAAEE,WAAW,CAAC,CAAC;EAE3BlB,SAAS,CAAC,MAAM;IACd,IAAI,CAACgB,QAAQ,IAAI,CAACG,WAAW,EAAE;MAC7B;IACF;IAEA,IAAI;MACFa,SAAS,CAACC,YAAY,CAACC,gBAAgB,CACrC,uBAAuB,EACvB,YAAY;QACV,IAAI;UACF,IAAIlB,QAAQ,CAACmB,MAAM,IAAInB,QAAQ,CAACoB,SAAS,EAAE;YACzC,MAAMpB,QAAQ,CAACqB,IAAI,CAAC,CAAC;UACvB;UACA,MAAMrB,QAAQ,CAACsB,uBAAuB,CAAC,CAAC;QAC1C,CAAC,CAAC,OAAOC,KAAK,EAAE;UACdlB,YAAY,CAACI,OAAO,CAACX,OAAO,YAA5BO,YAAY,CAACI,OAAO,CAACX,OAAO,CAAGyB,KAAc,CAAC;QAChD;MACF,CACF,CAAC;IACH,CAAC,CAAC,MAAM,CAAC;IAET,OAAO,MAAM;MACX,IAAI;QACFP,SAAS,CAACC,YAAY,CAACC,gBAAgB,CACrC,uBAAuB,EACvB,IACF,CAAC;MACH,CAAC,CAAC,MAAM,CAAC;IACX,CAAC;EACH,CAAC,EAAE,CAAClB,QAAQ,EAAEG,WAAW,CAAC,CAAC;EAE3BnB,SAAS,CAAC,MAAM;IACd,IAAI,CAACW,OAAO,EAAE;MACZ;IACF;IAEA,OAAO,MAAM;MACX,IAAI6B,QAAQ,CAACC,uBAAuB,EAAE;QACpCD,QAAQ,CAACE,oBAAoB,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACjD;IACF,CAAC;EACH,CAAC,EAAE,CAAChC,OAAO,CAAC,CAAC;AACf;AAEA,SAASa,qBAAqBA,CAACoB,MAAyB,EAAoB;EAC1E,MAAMtB,KAAK,GAAGkB,QAAQ,CAACK,aAAa,CAAC,OAAO,CAAC;EAC7CvB,KAAK,CAACwB,KAAK,GAAG,IAAI;EAClBxB,KAAK,CAACyB,WAAW,GAAG,IAAI;EACxBzB,KAAK,CAAC0B,QAAQ,GAAG,IAAI;EACrB1B,KAAK,CAACc,SAAS,GAAGQ,MAAM,CAACK,aAAa,CAAC,EAAE,CAAC;EAC1C,OAAO3B,KAAK;AACd;AAEA,SAASK,kBAAkBA,CAACL,KAAuB,EAAE;EACnD,IAAIA,KAAK,CAACc,SAAS,EAAE;IACnB,MAAMc,MAAM,GAAG5B,KAAK,CAACc,SAAwB;IAC7Cc,MAAM,CAACC,SAAS,CAAC,CAAC,CAACC,OAAO,CAAEC,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC,CAAC,CAAC;IACnDhC,KAAK,CAACc,SAAS,GAAG,IAAI;EACxB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/hooks/useScreenShare/index.ts"],"sourcesContent":["export * from './useScreenShare';\n"],"mappings":"AAAA,cAAc,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { useLocalParticipant, useRoomContext } from '@livekit/components-react';
|
|
2
|
+
import invariant from 'invariant';
|
|
3
|
+
import { useAtomValue } from 'jotai';
|
|
4
|
+
import { state } from '../../conversation';
|
|
5
|
+
export function useScreenShare(options) {
|
|
6
|
+
if (options === void 0) {
|
|
7
|
+
options = {};
|
|
8
|
+
}
|
|
9
|
+
const _options = options,
|
|
10
|
+
onStart = _options.onStart,
|
|
11
|
+
onStop = _options.onStop,
|
|
12
|
+
onError = _options.onError,
|
|
13
|
+
screenShareOptions = _options.options;
|
|
14
|
+
const localParticipant = useLocalParticipant();
|
|
15
|
+
const room = useRoomContext();
|
|
16
|
+
const conversation = useAtomValue(state.conversation);
|
|
17
|
+
invariant(conversation, 'Conversation is not initialized');
|
|
18
|
+
return {
|
|
19
|
+
enabled: localParticipant.isScreenShareEnabled,
|
|
20
|
+
start,
|
|
21
|
+
stop
|
|
22
|
+
};
|
|
23
|
+
async function start() {
|
|
24
|
+
try {
|
|
25
|
+
await (room == null ? void 0 : room.localParticipant.setScreenShareEnabled(true, screenShareOptions));
|
|
26
|
+
onStart == null || onStart();
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error('Failed to start screen share', error);
|
|
29
|
+
onError == null || onError(error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function stop() {
|
|
33
|
+
try {
|
|
34
|
+
await (room == null ? void 0 : room.localParticipant.setScreenShareEnabled(false, screenShareOptions));
|
|
35
|
+
onStop == null || onStop();
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.error('Failed to stop screen share', error);
|
|
38
|
+
onError == null || onError(error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=useScreenShare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useLocalParticipant","useRoomContext","invariant","useAtomValue","state","useScreenShare","options","_options","onStart","onStop","onError","screenShareOptions","localParticipant","room","conversation","enabled","isScreenShareEnabled","start","stop","setScreenShareEnabled","error","console"],"sources":["../../../../src/hooks/useScreenShare/useScreenShare.ts"],"sourcesContent":["import { useLocalParticipant, useRoomContext } from '@livekit/components-react';\nimport invariant from 'invariant';\nimport { useAtomValue } from 'jotai';\nimport { state } from '../../conversation';\nimport type { ScreenShareCaptureOptions } from 'livekit-client';\n\nexport type UseScreenShareOptions = {\n onStart?: () => void;\n onStop?: () => void;\n onError?: (error: Error) => void;\n options?: ScreenShareCaptureOptions;\n};\n\nexport function useScreenShare(options: UseScreenShareOptions = {}) {\n const { onStart, onStop, onError, options: screenShareOptions } = options;\n const localParticipant = useLocalParticipant();\n const room = useRoomContext();\n const conversation = useAtomValue(state.conversation);\n\n invariant(conversation, 'Conversation is not initialized');\n\n return {\n enabled: localParticipant.isScreenShareEnabled,\n start,\n stop,\n };\n\n async function start() {\n try {\n await room?.localParticipant.setScreenShareEnabled(\n true,\n screenShareOptions,\n );\n onStart?.();\n } catch (error) {\n console.error('Failed to start screen share', error);\n onError?.(error as Error);\n }\n }\n\n async function stop() {\n try {\n await room?.localParticipant.setScreenShareEnabled(\n false,\n screenShareOptions,\n );\n onStop?.();\n } catch (error) {\n console.error('Failed to stop screen share', error);\n onError?.(error as Error);\n }\n }\n}\n"],"mappings":"AAAA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,2BAA2B;AAC/E,OAAOC,SAAS,MAAM,WAAW;AACjC,SAASC,YAAY,QAAQ,OAAO;AACpC,SAASC,KAAK,QAAQ,oBAAoB;AAU1C,OAAO,SAASC,cAAcA,CAACC,OAA8B,EAAO;EAAA,IAArCA,OAA8B;IAA9BA,OAA8B,GAAG,CAAC,CAAC;EAAA;EAChE,MAAAC,QAAA,GAAkED,OAAO;IAAjEE,OAAO,GAAAD,QAAA,CAAPC,OAAO;IAAEC,MAAM,GAAAF,QAAA,CAANE,MAAM;IAAEC,OAAO,GAAAH,QAAA,CAAPG,OAAO;IAAWC,kBAAkB,GAAAJ,QAAA,CAA3BD,OAAO;EACzC,MAAMM,gBAAgB,GAAGZ,mBAAmB,CAAC,CAAC;EAC9C,MAAMa,IAAI,GAAGZ,cAAc,CAAC,CAAC;EAC7B,MAAMa,YAAY,GAAGX,YAAY,CAACC,KAAK,CAACU,YAAY,CAAC;EAErDZ,SAAS,CAACY,YAAY,EAAE,iCAAiC,CAAC;EAE1D,OAAO;IACLC,OAAO,EAAEH,gBAAgB,CAACI,oBAAoB;IAC9CC,KAAK;IACLC;EACF,CAAC;EAED,eAAeD,KAAKA,CAAA,EAAG;IACrB,IAAI;MACF,OAAMJ,IAAI,oBAAJA,IAAI,CAAED,gBAAgB,CAACO,qBAAqB,CAChD,IAAI,EACJR,kBACF,CAAC;MACDH,OAAO,YAAPA,OAAO,CAAG,CAAC;IACb,CAAC,CAAC,OAAOY,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC;MACpDV,OAAO,YAAPA,OAAO,CAAGU,KAAc,CAAC;IAC3B;EACF;EAEA,eAAeF,IAAIA,CAAA,EAAG;IACpB,IAAI;MACF,OAAML,IAAI,oBAAJA,IAAI,CAAED,gBAAgB,CAACO,qBAAqB,CAChD,KAAK,EACLR,kBACF,CAAC;MACDF,MAAM,YAANA,MAAM,CAAG,CAAC;IACZ,CAAC,CAAC,OAAOW,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MACnDV,OAAO,YAAPA,OAAO,CAAGU,KAAc,CAAC;IAC3B;EACF;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/hooks/useSpeaker/index.ts"],"sourcesContent":["export * from './useSpeaker';\n"],"mappings":"AAAA,cAAc,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useAtom } from 'jotai';
|
|
2
|
+
import * as state from '../../conversation/state';
|
|
3
|
+
import { useDevices } from '../useDevices';
|
|
4
|
+
import { useDeviceSwitcher } from '../useDeviceSwitcher';
|
|
5
|
+
export function useSpeaker() {
|
|
6
|
+
const devices = useDevices({
|
|
7
|
+
type: 'audiooutput'
|
|
8
|
+
});
|
|
9
|
+
const _useAtom = useAtom(state.speaker),
|
|
10
|
+
device = _useAtom[0],
|
|
11
|
+
setDevice = _useAtom[1];
|
|
12
|
+
useDeviceSwitcher({
|
|
13
|
+
device,
|
|
14
|
+
devices,
|
|
15
|
+
onChange: setDevice
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
devices,
|
|
19
|
+
deviceId: device.deviceId,
|
|
20
|
+
setDeviceId(deviceId) {
|
|
21
|
+
setDevice({
|
|
22
|
+
...device,
|
|
23
|
+
deviceId
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=useSpeaker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useAtom","state","useDevices","useDeviceSwitcher","useSpeaker","devices","type","_useAtom","speaker","device","setDevice","onChange","deviceId","setDeviceId"],"sources":["../../../../src/hooks/useSpeaker/useSpeaker.ts"],"sourcesContent":["import { useAtom } from 'jotai';\n\nimport * as state from '../../conversation/state';\n\nimport { useDevices } from '../useDevices';\nimport { useDeviceSwitcher } from '../useDeviceSwitcher';\n\nexport function useSpeaker() {\n const devices = useDevices({ type: 'audiooutput' });\n const [device, setDevice] = useAtom(state.speaker);\n\n useDeviceSwitcher({\n device,\n devices,\n onChange: setDevice,\n });\n\n return {\n devices,\n deviceId: device.deviceId,\n setDeviceId(deviceId: string) {\n setDevice({ ...device, deviceId });\n },\n };\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,OAAO,KAAKC,KAAK,MAAM,0BAA0B;AAEjD,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,iBAAiB,QAAQ,sBAAsB;AAExD,OAAO,SAASC,UAAUA,CAAA,EAAG;EAC3B,MAAMC,OAAO,GAAGH,UAAU,CAAC;IAAEI,IAAI,EAAE;EAAc,CAAC,CAAC;EACnD,MAAAC,QAAA,GAA4BP,OAAO,CAACC,KAAK,CAACO,OAAO,CAAC;IAA3CC,MAAM,GAAAF,QAAA;IAAEG,SAAS,GAAAH,QAAA;EAExBJ,iBAAiB,CAAC;IAChBM,MAAM;IACNJ,OAAO;IACPM,QAAQ,EAAED;EACZ,CAAC,CAAC;EAEF,OAAO;IACLL,OAAO;IACPO,QAAQ,EAAEH,MAAM,CAACG,QAAQ;IACzBC,WAAWA,CAACD,QAAgB,EAAE;MAC5BF,SAAS,CAAC;QAAE,GAAGD,MAAM;QAAEG;MAAS,CAAC,CAAC;IACpC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/hooks/useTextChat/index.ts"],"sourcesContent":["export * from './useTextChat';\n"],"mappings":"AAAA,cAAc,eAAe","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useMutationState } from '@tanstack/react-query';
|
|
2
|
+
export function usePendingMessages() {
|
|
3
|
+
return useMutationState({
|
|
4
|
+
select: mutation => ({
|
|
5
|
+
execute: mutation.execute,
|
|
6
|
+
status: mutation.state.status,
|
|
7
|
+
submittedAt: mutation.state.submittedAt,
|
|
8
|
+
payload: mutation.state.variables
|
|
9
|
+
}),
|
|
10
|
+
filters: {
|
|
11
|
+
exact: true,
|
|
12
|
+
mutationKey: ['pending-chat-message'],
|
|
13
|
+
predicate(mutation) {
|
|
14
|
+
return mutation.state.status === 'error' || mutation.state.status === 'pending';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=usePendingMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMutationState","usePendingMessages","select","mutation","execute","status","state","submittedAt","payload","variables","filters","exact","mutationKey","predicate"],"sources":["../../../../src/hooks/useTextChat/usePendingMessages.ts"],"sourcesContent":["import { MutationStatus, useMutationState } from '@tanstack/react-query';\nimport type { SendMessageParams } from '../../types/service';\n\ntype PendingChatMessage = {\n submittedAt: number;\n payload: SendMessageParams;\n status: MutationStatus;\n execute: (payload: SendMessageParams) => Promise<unknown>;\n};\n\nexport function usePendingMessages() {\n return useMutationState({\n select: (mutation) =>\n ({\n execute: mutation.execute,\n status: mutation.state.status,\n submittedAt: mutation.state.submittedAt,\n payload: mutation.state.variables,\n } as PendingChatMessage),\n filters: {\n exact: true,\n mutationKey: ['pending-chat-message'],\n predicate(mutation) {\n return (\n mutation.state.status === 'error' ||\n mutation.state.status === 'pending'\n );\n },\n },\n });\n}\n"],"mappings":"AAAA,SAAyBA,gBAAgB,QAAQ,uBAAuB;AAUxE,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,OAAOD,gBAAgB,CAAC;IACtBE,MAAM,EAAGC,QAAQ,KACd;MACCC,OAAO,EAAED,QAAQ,CAACC,OAAO;MACzBC,MAAM,EAAEF,QAAQ,CAACG,KAAK,CAACD,MAAM;MAC7BE,WAAW,EAAEJ,QAAQ,CAACG,KAAK,CAACC,WAAW;MACvCC,OAAO,EAAEL,QAAQ,CAACG,KAAK,CAACG;IAC1B,CAAC,CAAuB;IAC1BC,OAAO,EAAE;MACPC,KAAK,EAAE,IAAI;MACXC,WAAW,EAAE,CAAC,sBAAsB,CAAC;MACrCC,SAASA,CAACV,QAAQ,EAAE;QAClB,OACEA,QAAQ,CAACG,KAAK,CAACD,MAAM,KAAK,OAAO,IACjCF,QAAQ,CAACG,KAAK,CAACD,MAAM,KAAK,SAAS;MAEvC;IACF;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { useInfiniteQuery } from '@tanstack/react-query';
|
|
2
|
+
import { useSdkConsumer } from '../../sdk-consumer';
|
|
3
|
+
import { usePendingMessages } from './usePendingMessages';
|
|
4
|
+
import { useToolAwareSend } from './useToolAwareSend';
|
|
5
|
+
export function useTextChat(options) {
|
|
6
|
+
if (options === void 0) {
|
|
7
|
+
options = {};
|
|
8
|
+
}
|
|
9
|
+
const _options = options,
|
|
10
|
+
_options$limit = _options.limit,
|
|
11
|
+
limit = _options$limit === void 0 ? 100 : _options$limit;
|
|
12
|
+
const _useSdkConsumer = useSdkConsumer(),
|
|
13
|
+
chatId = _useSdkConsumer.chatId,
|
|
14
|
+
namespace = _useSdkConsumer.namespace,
|
|
15
|
+
personaChatService = _useSdkConsumer.personaChatService;
|
|
16
|
+
const send = useToolAwareSend(chatId, namespace);
|
|
17
|
+
const pending = usePendingMessages();
|
|
18
|
+
const _useInfiniteQuery = useInfiniteQuery({
|
|
19
|
+
queryKey: ['chat-messages', chatId, namespace],
|
|
20
|
+
queryFn: async _ref => {
|
|
21
|
+
let pageParam = _ref.pageParam;
|
|
22
|
+
if (!personaChatService) {
|
|
23
|
+
return {
|
|
24
|
+
messages: [],
|
|
25
|
+
nextCursor: undefined
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return personaChatService.queryChatMessages({
|
|
29
|
+
chatId,
|
|
30
|
+
namespace,
|
|
31
|
+
limit,
|
|
32
|
+
cursor: pageParam
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
getNextPageParam: lastPage => lastPage.nextCursor,
|
|
36
|
+
initialPageParam: undefined,
|
|
37
|
+
select: data => data.pages.flatMap(page => page.messages)
|
|
38
|
+
}),
|
|
39
|
+
_useInfiniteQuery$dat = _useInfiniteQuery.data,
|
|
40
|
+
messages = _useInfiniteQuery$dat === void 0 ? [] : _useInfiniteQuery$dat,
|
|
41
|
+
status = _useInfiniteQuery.status,
|
|
42
|
+
fetchNextPage = _useInfiniteQuery.fetchNextPage,
|
|
43
|
+
refetch = _useInfiniteQuery.refetch;
|
|
44
|
+
return {
|
|
45
|
+
status,
|
|
46
|
+
pending,
|
|
47
|
+
messages,
|
|
48
|
+
fetchNext,
|
|
49
|
+
refetch,
|
|
50
|
+
send: sendMessage
|
|
51
|
+
};
|
|
52
|
+
function sendMessage(message) {
|
|
53
|
+
return send(message);
|
|
54
|
+
}
|
|
55
|
+
function fetchNext() {
|
|
56
|
+
void fetchNextPage();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=useTextChat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useInfiniteQuery","useSdkConsumer","usePendingMessages","useToolAwareSend","useTextChat","options","_options","_options$limit","limit","_useSdkConsumer","chatId","namespace","personaChatService","send","pending","_useInfiniteQuery","queryKey","queryFn","_ref","pageParam","messages","nextCursor","undefined","queryChatMessages","cursor","getNextPageParam","lastPage","initialPageParam","select","data","pages","flatMap","page","_useInfiniteQuery$dat","status","fetchNextPage","refetch","fetchNext","sendMessage","message"],"sources":["../../../../src/hooks/useTextChat/useTextChat.ts"],"sourcesContent":["import { useInfiniteQuery } from '@tanstack/react-query';\nimport type { ChatMessage } from '../../types';\nimport { useSdkConsumer } from '../../sdk-consumer';\nimport { usePendingMessages } from './usePendingMessages';\nimport { useToolAwareSend } from './useToolAwareSend';\n\ninterface UseTextChatOptions {\n limit?: number;\n}\n\nexport function useTextChat(options: UseTextChatOptions = {}) {\n const { limit = 100 } = options;\n\n const { chatId, namespace, personaChatService } = useSdkConsumer();\n\n const send = useToolAwareSend(chatId, namespace);\n const pending = usePendingMessages();\n\n const {\n data: messages = [],\n status,\n fetchNextPage,\n refetch,\n } = useInfiniteQuery({\n queryKey: ['chat-messages', chatId, namespace],\n queryFn: async ({ pageParam }: { pageParam?: string }) => {\n if (!personaChatService) {\n return { messages: [], nextCursor: undefined };\n }\n return personaChatService.queryChatMessages({\n chatId,\n namespace,\n limit,\n cursor: pageParam,\n });\n },\n getNextPageParam: (lastPage) => lastPage.nextCursor,\n initialPageParam: undefined as string | undefined,\n select: (data) =>\n data.pages.flatMap((page) => page.messages as ChatMessage[]),\n });\n\n return {\n status,\n pending,\n messages,\n fetchNext,\n refetch,\n send: sendMessage,\n };\n\n function sendMessage(message: { message?: string }) {\n return send(message);\n }\n\n function fetchNext() {\n void fetchNextPage();\n }\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,uBAAuB;AAExD,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,kBAAkB,QAAQ,sBAAsB;AACzD,SAASC,gBAAgB,QAAQ,oBAAoB;AAMrD,OAAO,SAASC,WAAWA,CAACC,OAA2B,EAAO;EAAA,IAAlCA,OAA2B;IAA3BA,OAA2B,GAAG,CAAC,CAAC;EAAA;EAC1D,MAAAC,QAAA,GAAwBD,OAAO;IAAAE,cAAA,GAAAD,QAAA,CAAvBE,KAAK;IAALA,KAAK,GAAAD,cAAA,cAAG,GAAG,GAAAA,cAAA;EAEnB,MAAAE,eAAA,GAAkDR,cAAc,CAAC,CAAC;IAA1DS,MAAM,GAAAD,eAAA,CAANC,MAAM;IAAEC,SAAS,GAAAF,eAAA,CAATE,SAAS;IAAEC,kBAAkB,GAAAH,eAAA,CAAlBG,kBAAkB;EAE7C,MAAMC,IAAI,GAAGV,gBAAgB,CAACO,MAAM,EAAEC,SAAS,CAAC;EAChD,MAAMG,OAAO,GAAGZ,kBAAkB,CAAC,CAAC;EAEpC,MAAAa,iBAAA,GAKIf,gBAAgB,CAAC;MACnBgB,QAAQ,EAAE,CAAC,eAAe,EAAEN,MAAM,EAAEC,SAAS,CAAC;MAC9CM,OAAO,EAAE,MAAAC,IAAA,IAAiD;QAAA,IAAxCC,SAAS,GAAAD,IAAA,CAATC,SAAS;QACzB,IAAI,CAACP,kBAAkB,EAAE;UACvB,OAAO;YAAEQ,QAAQ,EAAE,EAAE;YAAEC,UAAU,EAAEC;UAAU,CAAC;QAChD;QACA,OAAOV,kBAAkB,CAACW,iBAAiB,CAAC;UAC1Cb,MAAM;UACNC,SAAS;UACTH,KAAK;UACLgB,MAAM,EAAEL;QACV,CAAC,CAAC;MACJ,CAAC;MACDM,gBAAgB,EAAGC,QAAQ,IAAKA,QAAQ,CAACL,UAAU;MACnDM,gBAAgB,EAAEL,SAA+B;MACjDM,MAAM,EAAGC,IAAI,IACXA,IAAI,CAACC,KAAK,CAACC,OAAO,CAAEC,IAAI,IAAKA,IAAI,CAACZ,QAAyB;IAC/D,CAAC,CAAC;IAAAa,qBAAA,GAAAlB,iBAAA,CArBAc,IAAI;IAAET,QAAQ,GAAAa,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IACnBC,MAAM,GAAAnB,iBAAA,CAANmB,MAAM;IACNC,aAAa,GAAApB,iBAAA,CAAboB,aAAa;IACbC,OAAO,GAAArB,iBAAA,CAAPqB,OAAO;EAoBT,OAAO;IACLF,MAAM;IACNpB,OAAO;IACPM,QAAQ;IACRiB,SAAS;IACTD,OAAO;IACPvB,IAAI,EAAEyB;EACR,CAAC;EAED,SAASA,WAAWA,CAACC,OAA6B,EAAE;IAClD,OAAO1B,IAAI,CAAC0B,OAAO,CAAC;EACtB;EAEA,SAASF,SAASA,CAAA,EAAG;IACnB,KAAKF,aAAa,CAAC,CAAC;EACtB;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useSdkConsumer } from '../../sdk-consumer';
|
|
2
|
+
import { ToolExecutionInProgressError } from '../useTools/model/errors';
|
|
3
|
+
import { useToolCallingRuntime } from '../useTools/runtime/useToolCallingRuntime';
|
|
4
|
+
export function useToolAwareSend(chatId, namespace) {
|
|
5
|
+
const _useSdkConsumer = useSdkConsumer(),
|
|
6
|
+
personaChatService = _useSdkConsumer.personaChatService;
|
|
7
|
+
const toolRuntime = useToolCallingRuntime();
|
|
8
|
+
return async function send(message) {
|
|
9
|
+
if (toolRuntime.isRunning) {
|
|
10
|
+
throw new ToolExecutionInProgressError();
|
|
11
|
+
}
|
|
12
|
+
if (!personaChatService) {
|
|
13
|
+
throw new Error('personaChatService is required to send messages.');
|
|
14
|
+
}
|
|
15
|
+
const initialResponse = await personaChatService.sendChatMessage({
|
|
16
|
+
chatId,
|
|
17
|
+
namespace,
|
|
18
|
+
message: message.message ?? ''
|
|
19
|
+
});
|
|
20
|
+
return toolRuntime.resolveResponseToolCalls(initialResponse, functionCallResults => personaChatService.sendChatMessage({
|
|
21
|
+
chatId,
|
|
22
|
+
namespace,
|
|
23
|
+
message: '',
|
|
24
|
+
functionCallResults
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=useToolAwareSend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSdkConsumer","ToolExecutionInProgressError","useToolCallingRuntime","useToolAwareSend","chatId","namespace","_useSdkConsumer","personaChatService","toolRuntime","send","message","isRunning","Error","initialResponse","sendChatMessage","resolveResponseToolCalls","functionCallResults"],"sources":["../../../../src/hooks/useTextChat/useToolAwareSend.ts"],"sourcesContent":["import type { FunctionCall } from '../../types/service';\nimport { useSdkConsumer } from '../../sdk-consumer';\nimport { ToolExecutionInProgressError } from '../useTools/model/errors';\nimport { useToolCallingRuntime } from '../useTools/runtime/useToolCallingRuntime';\n\nexport interface SendChatMessageResponse {\n functionCalls?: FunctionCall[];\n}\n\nexport function useToolAwareSend(chatId: string, namespace: string) {\n const { personaChatService } = useSdkConsumer();\n const toolRuntime = useToolCallingRuntime<SendChatMessageResponse>();\n\n return async function send(message: { message?: string }) {\n if (toolRuntime.isRunning) {\n throw new ToolExecutionInProgressError();\n }\n\n if (!personaChatService) {\n throw new Error('personaChatService is required to send messages.');\n }\n\n const initialResponse = await personaChatService.sendChatMessage({\n chatId,\n namespace,\n message: message.message ?? '',\n });\n\n return toolRuntime.resolveResponseToolCalls(\n initialResponse,\n (functionCallResults) =>\n personaChatService.sendChatMessage({\n chatId,\n namespace,\n message: '',\n functionCallResults,\n }),\n );\n };\n}\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,oBAAoB;AACnD,SAASC,4BAA4B,QAAQ,0BAA0B;AACvE,SAASC,qBAAqB,QAAQ,2CAA2C;AAMjF,OAAO,SAASC,gBAAgBA,CAACC,MAAc,EAAEC,SAAiB,EAAE;EAClE,MAAAC,eAAA,GAA+BN,cAAc,CAAC,CAAC;IAAvCO,kBAAkB,GAAAD,eAAA,CAAlBC,kBAAkB;EAC1B,MAAMC,WAAW,GAAGN,qBAAqB,CAA0B,CAAC;EAEpE,OAAO,eAAeO,IAAIA,CAACC,OAA6B,EAAE;IACxD,IAAIF,WAAW,CAACG,SAAS,EAAE;MACzB,MAAM,IAAIV,4BAA4B,CAAC,CAAC;IAC1C;IAEA,IAAI,CAACM,kBAAkB,EAAE;MACvB,MAAM,IAAIK,KAAK,CAAC,kDAAkD,CAAC;IACrE;IAEA,MAAMC,eAAe,GAAG,MAAMN,kBAAkB,CAACO,eAAe,CAAC;MAC/DV,MAAM;MACNC,SAAS;MACTK,OAAO,EAAEA,OAAO,CAACA,OAAO,IAAI;IAC9B,CAAC,CAAC;IAEF,OAAOF,WAAW,CAACO,wBAAwB,CACzCF,eAAe,EACdG,mBAAmB,IAClBT,kBAAkB,CAACO,eAAe,CAAC;MACjCV,MAAM;MACNC,SAAS;MACTK,OAAO,EAAE,EAAE;MACXM;IACF,CAAC,CACL,CAAC;EACH,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useTools","ToolExecutionInProgressError"],"sources":["../../../../src/hooks/useTools/index.ts"],"sourcesContent":["export { useTools } from './public/useTools';\nexport { ToolExecutionInProgressError } from './model/errors';\nexport type {\n ToolArguments,\n ToolCallResult,\n ToolCallSnapshot,\n ToolCallStatus,\n ToolsRegistry,\n} from './model/types';\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,4BAA4B,QAAQ,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ToolExecutionInProgressError","Error","constructor","name"],"sources":["../../../../../src/hooks/useTools/model/errors.ts"],"sourcesContent":["export class ToolExecutionInProgressError extends Error {\n constructor() {\n super(\n 'Cannot send a new message while tool execution is still running for this chat.',\n );\n this.name = 'ToolExecutionInProgressError';\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,4BAA4B,SAASC,KAAK,CAAC;EACtDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CACH,gFACF,CAAC;IACD,IAAI,CAACC,IAAI,GAAG,8BAA8B;EAC5C;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../../src/hooks/useTools/model/types.ts"],"sourcesContent":["import type { FunctionCall } from '../../../types/service';\n\nexport type ToolArguments = Record<string, unknown> | null;\n\nexport type ToolHandler = (\n arguments_?: ToolArguments,\n) => unknown | Promise<unknown>;\n\nexport type ToolsRegistry = Record<string, ToolHandler>;\n\nexport type ToolCallStatus = 'pending' | 'running' | 'completed';\n\nexport type ToolCallRequest = {\n id: string;\n name: string;\n arguments?: ToolArguments;\n};\n\nexport type ToolCallResult = {\n id: string;\n name: string;\n success: boolean;\n content: string;\n};\n\nexport type ToolCallSnapshot = {\n id: string;\n name: string;\n arguments: ToolArguments;\n status: ToolCallStatus;\n result: ToolCallResult | null;\n};\n\nexport type ToolCallSourceResponse = {\n functionCalls?: readonly FunctionCall[] | null;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useAtomValue","toolCallsAtom","useTools","calls"],"sources":["../../../../../src/hooks/useTools/public/useTools.ts"],"sourcesContent":["import { useAtomValue } from 'jotai';\n\nimport { toolCallsAtom } from '../store/state';\n\nexport function useTools() {\n const calls = useAtomValue(toolCallsAtom);\n return calls;\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,OAAO;AAEpC,SAASC,aAAa,QAAQ,gBAAgB;AAE9C,OAAO,SAASC,QAAQA,CAAA,EAAG;EACzB,MAAMC,KAAK,GAAGH,YAAY,CAACC,aAAa,CAAC;EACzC,OAAOE,KAAK;AACd","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ToolExecutionInProgressError } from '../model/errors';
|
|
2
|
+
import { executeToolCallBatch } from './executeToolCallBatch';
|
|
3
|
+
export function createToolRuntimeSession(_ref) {
|
|
4
|
+
let onRunningChange = _ref.onRunningChange;
|
|
5
|
+
let isRunning = false;
|
|
6
|
+
async function executeBatch(functionCalls, _ref2) {
|
|
7
|
+
let registry = _ref2.registry,
|
|
8
|
+
observer = _ref2.observer;
|
|
9
|
+
if (functionCalls.length === 0) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
if (isRunning) {
|
|
13
|
+
throw new ToolExecutionInProgressError();
|
|
14
|
+
}
|
|
15
|
+
isRunning = true;
|
|
16
|
+
onRunningChange == null || onRunningChange(true);
|
|
17
|
+
try {
|
|
18
|
+
return await executeToolCallBatch({
|
|
19
|
+
functionCalls,
|
|
20
|
+
registry,
|
|
21
|
+
observer
|
|
22
|
+
});
|
|
23
|
+
} finally {
|
|
24
|
+
isRunning = false;
|
|
25
|
+
onRunningChange == null || onRunningChange(false);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function resolveResponseToolCalls(_ref3) {
|
|
29
|
+
let initialResponse = _ref3.initialResponse,
|
|
30
|
+
continueWithResults = _ref3.continueWithResults,
|
|
31
|
+
registry = _ref3.registry,
|
|
32
|
+
observer = _ref3.observer;
|
|
33
|
+
let response = initialResponse;
|
|
34
|
+
while ((((_response$functionCal = response.functionCalls) == null ? void 0 : _response$functionCal.length) ?? 0) > 0) {
|
|
35
|
+
var _response$functionCal;
|
|
36
|
+
const results = await executeBatch(response.functionCalls ?? [], {
|
|
37
|
+
registry,
|
|
38
|
+
observer
|
|
39
|
+
});
|
|
40
|
+
response = await continueWithResults(results);
|
|
41
|
+
}
|
|
42
|
+
return response;
|
|
43
|
+
}
|
|
44
|
+
async function resolveIncomingToolCalls(_ref4) {
|
|
45
|
+
let envelope = _ref4.envelope,
|
|
46
|
+
adapter = _ref4.adapter,
|
|
47
|
+
registry = _ref4.registry,
|
|
48
|
+
observer = _ref4.observer;
|
|
49
|
+
const functionCallResults = await executeBatch(envelope.functionCalls, {
|
|
50
|
+
registry,
|
|
51
|
+
observer
|
|
52
|
+
});
|
|
53
|
+
if (functionCallResults.length === 0) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
await adapter.sendResults({
|
|
57
|
+
requestId: envelope.requestId,
|
|
58
|
+
functionCallResults
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
resolveResponseToolCalls,
|
|
63
|
+
resolveIncomingToolCalls
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=createToolRuntimeSession.js.map
|