@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.
Files changed (785) hide show
  1. package/README.md +186 -0
  2. package/components/package.json +5 -0
  3. package/dist/cjs/components/Audio/Audio.js +31 -0
  4. package/dist/cjs/components/Audio/Audio.js.map +1 -0
  5. package/dist/cjs/components/Audio/index.js +10 -0
  6. package/dist/cjs/components/Audio/index.js.map +1 -0
  7. package/dist/cjs/components/ChromaKey/ChromaKey.js +127 -0
  8. package/dist/cjs/components/ChromaKey/ChromaKey.js.map +1 -0
  9. package/dist/cjs/components/ChromaKey/chroma-key.js +99 -0
  10. package/dist/cjs/components/ChromaKey/chroma-key.js.map +1 -0
  11. package/dist/cjs/components/ChromaKey/index.js +10 -0
  12. package/dist/cjs/components/ChromaKey/index.js.map +1 -0
  13. package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js +44 -0
  14. package/dist/cjs/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
  15. package/dist/cjs/components/ChromaKey/shaders/index.js +10 -0
  16. package/dist/cjs/components/ChromaKey/shaders/index.js.map +1 -0
  17. package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js +12 -0
  18. package/dist/cjs/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
  19. package/dist/cjs/components/ChromaKey/types.js +4 -0
  20. package/dist/cjs/components/ChromaKey/types.js.map +1 -0
  21. package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js +91 -0
  22. package/dist/cjs/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
  23. package/dist/cjs/components/LegendsPlatform/index.js +10 -0
  24. package/dist/cjs/components/LegendsPlatform/index.js.map +1 -0
  25. package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js +69 -0
  26. package/dist/cjs/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
  27. package/dist/cjs/components/LegendsPlatformQLess/index.js +10 -0
  28. package/dist/cjs/components/LegendsPlatformQLess/index.js.map +1 -0
  29. package/dist/cjs/components/Video/Video.js +88 -0
  30. package/dist/cjs/components/Video/Video.js.map +1 -0
  31. package/dist/cjs/components/Video/index.js +16 -0
  32. package/dist/cjs/components/Video/index.js.map +1 -0
  33. package/dist/cjs/components/Video/types.js +4 -0
  34. package/dist/cjs/components/Video/types.js.map +1 -0
  35. package/dist/cjs/components/Video/useAttachVideo.js +33 -0
  36. package/dist/cjs/components/Video/useAttachVideo.js.map +1 -0
  37. package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js +61 -0
  38. package/dist/cjs/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
  39. package/dist/cjs/components/VideoPostProcessor/effects.js +30 -0
  40. package/dist/cjs/components/VideoPostProcessor/effects.js.map +1 -0
  41. package/dist/cjs/components/VideoPostProcessor/index.js +10 -0
  42. package/dist/cjs/components/VideoPostProcessor/index.js.map +1 -0
  43. package/dist/cjs/components/VideoPreview/VideoPreview.js +68 -0
  44. package/dist/cjs/components/VideoPreview/VideoPreview.js.map +1 -0
  45. package/dist/cjs/components/VideoPreview/index.js +16 -0
  46. package/dist/cjs/components/VideoPreview/index.js.map +1 -0
  47. package/dist/cjs/components/VideoPreview/types.js +4 -0
  48. package/dist/cjs/components/VideoPreview/types.js.map +1 -0
  49. package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js +85 -0
  50. package/dist/cjs/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
  51. package/dist/cjs/components.js +34 -0
  52. package/dist/cjs/components.js.map +1 -0
  53. package/dist/cjs/conversation/index.js +18 -0
  54. package/dist/cjs/conversation/index.js.map +1 -0
  55. package/dist/cjs/conversation/state.js +24 -0
  56. package/dist/cjs/conversation/state.js.map +1 -0
  57. package/dist/cjs/conversation/types.js +4 -0
  58. package/dist/cjs/conversation/types.js.map +1 -0
  59. package/dist/cjs/conversation/utils.js +25 -0
  60. package/dist/cjs/conversation/utils.js.map +1 -0
  61. package/dist/cjs/external-types.d.js +2 -0
  62. package/dist/cjs/external-types.d.js.map +1 -0
  63. package/dist/cjs/hooks/index.js +58 -0
  64. package/dist/cjs/hooks/index.js.map +1 -0
  65. package/dist/cjs/hooks/useActivityState/index.js +10 -0
  66. package/dist/cjs/hooks/useActivityState/index.js.map +1 -0
  67. package/dist/cjs/hooks/useActivityState/useActivityState.js +15 -0
  68. package/dist/cjs/hooks/useActivityState/useActivityState.js.map +1 -0
  69. package/dist/cjs/hooks/useAudio/index.js +10 -0
  70. package/dist/cjs/hooks/useAudio/index.js.map +1 -0
  71. package/dist/cjs/hooks/useAudio/useAudio.js +28 -0
  72. package/dist/cjs/hooks/useAudio/useAudio.js.map +1 -0
  73. package/dist/cjs/hooks/useAudioLevel/helpers.js +28 -0
  74. package/dist/cjs/hooks/useAudioLevel/helpers.js.map +1 -0
  75. package/dist/cjs/hooks/useAudioLevel/index.js +10 -0
  76. package/dist/cjs/hooks/useAudioLevel/index.js.map +1 -0
  77. package/dist/cjs/hooks/useAudioLevel/types.js +4 -0
  78. package/dist/cjs/hooks/useAudioLevel/types.js.map +1 -0
  79. package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js +49 -0
  80. package/dist/cjs/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
  81. package/dist/cjs/hooks/useCamera/index.js +10 -0
  82. package/dist/cjs/hooks/useCamera/index.js.map +1 -0
  83. package/dist/cjs/hooks/useCamera/useCamera.js +32 -0
  84. package/dist/cjs/hooks/useCamera/useCamera.js.map +1 -0
  85. package/dist/cjs/hooks/useConnectionState/index.js +10 -0
  86. package/dist/cjs/hooks/useConnectionState/index.js.map +1 -0
  87. package/dist/cjs/hooks/useConnectionState/useConnectionState.js +15 -0
  88. package/dist/cjs/hooks/useConnectionState/useConnectionState.js.map +1 -0
  89. package/dist/cjs/hooks/useConversation/index.js +16 -0
  90. package/dist/cjs/hooks/useConversation/index.js.map +1 -0
  91. package/dist/cjs/hooks/useConversation/livekit/constants.js +15 -0
  92. package/dist/cjs/hooks/useConversation/livekit/constants.js.map +1 -0
  93. package/dist/cjs/hooks/useConversation/livekit/types.js +4 -0
  94. package/dist/cjs/hooks/useConversation/livekit/types.js.map +1 -0
  95. package/dist/cjs/hooks/useConversation/livekit/useConversation.js +371 -0
  96. package/dist/cjs/hooks/useConversation/livekit/useConversation.js.map +1 -0
  97. package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js +25 -0
  98. package/dist/cjs/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
  99. package/dist/cjs/hooks/useConversation/livekit/utils/index.js +40 -0
  100. package/dist/cjs/hooks/useConversation/livekit/utils/index.js.map +1 -0
  101. package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js +11 -0
  102. package/dist/cjs/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
  103. package/dist/cjs/hooks/useConversation/livekit/utils/participants.js +34 -0
  104. package/dist/cjs/hooks/useConversation/livekit/utils/participants.js.map +1 -0
  105. package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js +13 -0
  106. package/dist/cjs/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
  107. package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js +18 -0
  108. package/dist/cjs/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
  109. package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js +15 -0
  110. package/dist/cjs/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
  111. package/dist/cjs/hooks/useConversation/types.js +4 -0
  112. package/dist/cjs/hooks/useConversation/types.js.map +1 -0
  113. package/dist/cjs/hooks/useConversation/useConversation.js +99 -0
  114. package/dist/cjs/hooks/useConversation/useConversation.js.map +1 -0
  115. package/dist/cjs/hooks/useConversationEvents/index.js +22 -0
  116. package/dist/cjs/hooks/useConversationEvents/index.js.map +1 -0
  117. package/dist/cjs/hooks/useConversationEvents/types.js +4 -0
  118. package/dist/cjs/hooks/useConversationEvents/types.js.map +1 -0
  119. package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js +11 -0
  120. package/dist/cjs/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
  121. package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js +20 -0
  122. package/dist/cjs/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
  123. package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js +13 -0
  124. package/dist/cjs/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
  125. package/dist/cjs/hooks/useConversationStatus/index.js +10 -0
  126. package/dist/cjs/hooks/useConversationStatus/index.js.map +1 -0
  127. package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js +10 -0
  128. package/dist/cjs/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
  129. package/dist/cjs/hooks/useConversationTimer/index.js +10 -0
  130. package/dist/cjs/hooks/useConversationTimer/index.js.map +1 -0
  131. package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js +45 -0
  132. package/dist/cjs/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
  133. package/dist/cjs/hooks/useCreateConversation/helpers.js +8 -0
  134. package/dist/cjs/hooks/useCreateConversation/helpers.js.map +1 -0
  135. package/dist/cjs/hooks/useCreateConversation/index.js +10 -0
  136. package/dist/cjs/hooks/useCreateConversation/index.js.map +1 -0
  137. package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js +104 -0
  138. package/dist/cjs/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
  139. package/dist/cjs/hooks/useDeviceSwitcher/index.js +10 -0
  140. package/dist/cjs/hooks/useDeviceSwitcher/index.js.map +1 -0
  141. package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js +31 -0
  142. package/dist/cjs/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
  143. package/dist/cjs/hooks/useDevices/index.js +10 -0
  144. package/dist/cjs/hooks/useDevices/index.js.map +1 -0
  145. package/dist/cjs/hooks/useDevices/useDevices.js +49 -0
  146. package/dist/cjs/hooks/useDevices/useDevices.js.map +1 -0
  147. package/dist/cjs/hooks/useMediaPermissions/index.js +10 -0
  148. package/dist/cjs/hooks/useMediaPermissions/index.js.map +1 -0
  149. package/dist/cjs/hooks/useMediaPermissions/types.js +4 -0
  150. package/dist/cjs/hooks/useMediaPermissions/types.js.map +1 -0
  151. package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js +46 -0
  152. package/dist/cjs/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
  153. package/dist/cjs/hooks/useMediaRecorder/index.js +10 -0
  154. package/dist/cjs/hooks/useMediaRecorder/index.js.map +1 -0
  155. package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js +229 -0
  156. package/dist/cjs/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
  157. package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js +298 -0
  158. package/dist/cjs/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
  159. package/dist/cjs/hooks/useMicrophone/index.js +10 -0
  160. package/dist/cjs/hooks/useMicrophone/index.js.map +1 -0
  161. package/dist/cjs/hooks/useMicrophone/useMicrophone.js +38 -0
  162. package/dist/cjs/hooks/useMicrophone/useMicrophone.js.map +1 -0
  163. package/dist/cjs/hooks/useParticipantTrack/index.js +10 -0
  164. package/dist/cjs/hooks/useParticipantTrack/index.js.map +1 -0
  165. package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js +32 -0
  166. package/dist/cjs/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
  167. package/dist/cjs/hooks/usePictureInPicture/index.js +13 -0
  168. package/dist/cjs/hooks/usePictureInPicture/index.js.map +1 -0
  169. package/dist/cjs/hooks/usePictureInPicture/state.js +14 -0
  170. package/dist/cjs/hooks/usePictureInPicture/state.js.map +1 -0
  171. package/dist/cjs/hooks/usePictureInPicture/types.js +4 -0
  172. package/dist/cjs/hooks/usePictureInPicture/types.js.map +1 -0
  173. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js +45 -0
  174. package/dist/cjs/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
  175. package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js +116 -0
  176. package/dist/cjs/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
  177. package/dist/cjs/hooks/useScreenShare/index.js +10 -0
  178. package/dist/cjs/hooks/useScreenShare/index.js.map +1 -0
  179. package/dist/cjs/hooks/useScreenShare/useScreenShare.js +45 -0
  180. package/dist/cjs/hooks/useScreenShare/useScreenShare.js.map +1 -0
  181. package/dist/cjs/hooks/useSpeaker/index.js +10 -0
  182. package/dist/cjs/hooks/useSpeaker/index.js.map +1 -0
  183. package/dist/cjs/hooks/useSpeaker/useSpeaker.js +31 -0
  184. package/dist/cjs/hooks/useSpeaker/useSpeaker.js.map +1 -0
  185. package/dist/cjs/hooks/useTextChat/index.js +10 -0
  186. package/dist/cjs/hooks/useTextChat/index.js.map +1 -0
  187. package/dist/cjs/hooks/useTextChat/usePendingMessages.js +23 -0
  188. package/dist/cjs/hooks/useTextChat/usePendingMessages.js.map +1 -0
  189. package/dist/cjs/hooks/useTextChat/useTextChat.js +62 -0
  190. package/dist/cjs/hooks/useTextChat/useTextChat.js.map +1 -0
  191. package/dist/cjs/hooks/useTextChat/useToolAwareSend.js +33 -0
  192. package/dist/cjs/hooks/useTextChat/useToolAwareSend.js.map +1 -0
  193. package/dist/cjs/hooks/useTools/index.js +9 -0
  194. package/dist/cjs/hooks/useTools/index.js.map +1 -0
  195. package/dist/cjs/hooks/useTools/model/errors.js +12 -0
  196. package/dist/cjs/hooks/useTools/model/errors.js.map +1 -0
  197. package/dist/cjs/hooks/useTools/model/types.js +4 -0
  198. package/dist/cjs/hooks/useTools/model/types.js.map +1 -0
  199. package/dist/cjs/hooks/useTools/public/useTools.js +11 -0
  200. package/dist/cjs/hooks/useTools/public/useTools.js.map +1 -0
  201. package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js +74 -0
  202. package/dist/cjs/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
  203. package/dist/cjs/hooks/useTools/runtime/executeToolCall.js +33 -0
  204. package/dist/cjs/hooks/useTools/runtime/executeToolCall.js.map +1 -0
  205. package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js +41 -0
  206. package/dist/cjs/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
  207. package/dist/cjs/hooks/useTools/runtime/types.js +4 -0
  208. package/dist/cjs/hooks/useTools/runtime/types.js.map +1 -0
  209. package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js +59 -0
  210. package/dist/cjs/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
  211. package/dist/cjs/hooks/useTools/store/state.js +30 -0
  212. package/dist/cjs/hooks/useTools/store/state.js.map +1 -0
  213. package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js +22 -0
  214. package/dist/cjs/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
  215. package/dist/cjs/hooks/useTools/utils/serialize.js +28 -0
  216. package/dist/cjs/hooks/useTools/utils/serialize.js.map +1 -0
  217. package/dist/cjs/hooks/useTranscriptions/index.js +16 -0
  218. package/dist/cjs/hooks/useTranscriptions/index.js.map +1 -0
  219. package/dist/cjs/hooks/useTranscriptions/types.js +4 -0
  220. package/dist/cjs/hooks/useTranscriptions/types.js.map +1 -0
  221. package/dist/cjs/hooks/useTranscriptions/useTranscription.js +16 -0
  222. package/dist/cjs/hooks/useTranscriptions/useTranscription.js.map +1 -0
  223. package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js +18 -0
  224. package/dist/cjs/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
  225. package/dist/cjs/hooks/useUserActivity/index.js +10 -0
  226. package/dist/cjs/hooks/useUserActivity/index.js.map +1 -0
  227. package/dist/cjs/hooks/useUserActivity/useUserActivity.js +23 -0
  228. package/dist/cjs/hooks/useUserActivity/useUserActivity.js.map +1 -0
  229. package/dist/cjs/livekit/components.js +10 -0
  230. package/dist/cjs/livekit/components.js.map +1 -0
  231. package/dist/cjs/livekit/sdk.js +10 -0
  232. package/dist/cjs/livekit/sdk.js.map +1 -0
  233. package/dist/cjs/sdk-consumer/context.js +15 -0
  234. package/dist/cjs/sdk-consumer/context.js.map +1 -0
  235. package/dist/cjs/sdk-consumer/index.js +10 -0
  236. package/dist/cjs/sdk-consumer/index.js.map +1 -0
  237. package/dist/cjs/sdk.js +148 -0
  238. package/dist/cjs/sdk.js.map +1 -0
  239. package/dist/cjs/services/FetchPersonaChatService.js +139 -0
  240. package/dist/cjs/services/FetchPersonaChatService.js.map +1 -0
  241. package/dist/cjs/test-types.d.js +2 -0
  242. package/dist/cjs/test-types.d.js.map +1 -0
  243. package/dist/cjs/types/http.js +14 -0
  244. package/dist/cjs/types/http.js.map +1 -0
  245. package/dist/cjs/types/index.js +7 -0
  246. package/dist/cjs/types/index.js.map +1 -0
  247. package/dist/cjs/types/service.js +4 -0
  248. package/dist/cjs/types/service.js.map +1 -0
  249. package/dist/cjs/utils/captureImage/captureImage.js +29 -0
  250. package/dist/cjs/utils/captureImage/captureImage.js.map +1 -0
  251. package/dist/cjs/utils/captureImage/helpers.js +74 -0
  252. package/dist/cjs/utils/captureImage/helpers.js.map +1 -0
  253. package/dist/cjs/utils/captureImage/index.js +16 -0
  254. package/dist/cjs/utils/captureImage/index.js.map +1 -0
  255. package/dist/cjs/utils/captureImage/types.js +4 -0
  256. package/dist/cjs/utils/captureImage/types.js.map +1 -0
  257. package/dist/cjs/utils/compatibility/compatibility.js +17 -0
  258. package/dist/cjs/utils/compatibility/compatibility.js.map +1 -0
  259. package/dist/cjs/utils/compatibility/index.js +10 -0
  260. package/dist/cjs/utils/compatibility/index.js.map +1 -0
  261. package/dist/cjs/utils.js +10 -0
  262. package/dist/cjs/utils.js.map +1 -0
  263. package/dist/esm/components/Audio/Audio.js +18 -0
  264. package/dist/esm/components/Audio/Audio.js.map +1 -0
  265. package/dist/esm/components/Audio/index.js +2 -0
  266. package/dist/esm/components/Audio/index.js.map +1 -0
  267. package/dist/esm/components/ChromaKey/ChromaKey.js +115 -0
  268. package/dist/esm/components/ChromaKey/ChromaKey.js.map +1 -0
  269. package/dist/esm/components/ChromaKey/chroma-key.js +91 -0
  270. package/dist/esm/components/ChromaKey/chroma-key.js.map +1 -0
  271. package/dist/esm/components/ChromaKey/index.js +2 -0
  272. package/dist/esm/components/ChromaKey/index.js.map +1 -0
  273. package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js +40 -0
  274. package/dist/esm/components/ChromaKey/shaders/chroma-key.shader.js.map +1 -0
  275. package/dist/esm/components/ChromaKey/shaders/index.js +3 -0
  276. package/dist/esm/components/ChromaKey/shaders/index.js.map +1 -0
  277. package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js +8 -0
  278. package/dist/esm/components/ChromaKey/shaders/vertex-align.shader.js.map +1 -0
  279. package/dist/esm/components/ChromaKey/types.js +2 -0
  280. package/dist/esm/components/ChromaKey/types.js.map +1 -0
  281. package/dist/esm/components/LegendsPlatform/LegendsPlatform.js +53 -0
  282. package/dist/esm/components/LegendsPlatform/LegendsPlatform.js.map +1 -0
  283. package/dist/esm/components/LegendsPlatform/index.js +2 -0
  284. package/dist/esm/components/LegendsPlatform/index.js.map +1 -0
  285. package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js +30 -0
  286. package/dist/esm/components/LegendsPlatformQLess/LegendsPlatform.js.map +1 -0
  287. package/dist/esm/components/LegendsPlatformQLess/index.js +2 -0
  288. package/dist/esm/components/LegendsPlatformQLess/index.js.map +1 -0
  289. package/dist/esm/components/Video/Video.js +73 -0
  290. package/dist/esm/components/Video/Video.js.map +1 -0
  291. package/dist/esm/components/Video/index.js +3 -0
  292. package/dist/esm/components/Video/index.js.map +1 -0
  293. package/dist/esm/components/Video/types.js +2 -0
  294. package/dist/esm/components/Video/types.js.map +1 -0
  295. package/dist/esm/components/Video/useAttachVideo.js +27 -0
  296. package/dist/esm/components/Video/useAttachVideo.js.map +1 -0
  297. package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js +47 -0
  298. package/dist/esm/components/VideoPostProcessor/VideoPostProcessor.js.map +1 -0
  299. package/dist/esm/components/VideoPostProcessor/effects.js +25 -0
  300. package/dist/esm/components/VideoPostProcessor/effects.js.map +1 -0
  301. package/dist/esm/components/VideoPostProcessor/index.js +2 -0
  302. package/dist/esm/components/VideoPostProcessor/index.js.map +1 -0
  303. package/dist/esm/components/VideoPreview/VideoPreview.js +48 -0
  304. package/dist/esm/components/VideoPreview/VideoPreview.js.map +1 -0
  305. package/dist/esm/components/VideoPreview/index.js +3 -0
  306. package/dist/esm/components/VideoPreview/index.js.map +1 -0
  307. package/dist/esm/components/VideoPreview/types.js +2 -0
  308. package/dist/esm/components/VideoPreview/types.js.map +1 -0
  309. package/dist/esm/components/VideoPreview/useVideoPreviewStream.js +85 -0
  310. package/dist/esm/components/VideoPreview/useVideoPreviewStream.js.map +1 -0
  311. package/dist/esm/components.js +6 -0
  312. package/dist/esm/components.js.map +1 -0
  313. package/dist/esm/conversation/index.js +4 -0
  314. package/dist/esm/conversation/index.js.map +1 -0
  315. package/dist/esm/conversation/state.js +20 -0
  316. package/dist/esm/conversation/state.js.map +1 -0
  317. package/dist/esm/conversation/types.js +2 -0
  318. package/dist/esm/conversation/types.js.map +1 -0
  319. package/dist/esm/conversation/utils.js +21 -0
  320. package/dist/esm/conversation/utils.js.map +1 -0
  321. package/dist/esm/external-types.d.js +2 -0
  322. package/dist/esm/external-types.d.js.map +1 -0
  323. package/dist/esm/hooks/index.js +10 -0
  324. package/dist/esm/hooks/index.js.map +1 -0
  325. package/dist/esm/hooks/useActivityState/index.js +2 -0
  326. package/dist/esm/hooks/useActivityState/index.js.map +1 -0
  327. package/dist/esm/hooks/useActivityState/useActivityState.js +11 -0
  328. package/dist/esm/hooks/useActivityState/useActivityState.js.map +1 -0
  329. package/dist/esm/hooks/useAudio/index.js +2 -0
  330. package/dist/esm/hooks/useAudio/index.js.map +1 -0
  331. package/dist/esm/hooks/useAudio/useAudio.js +26 -0
  332. package/dist/esm/hooks/useAudio/useAudio.js.map +1 -0
  333. package/dist/esm/hooks/useAudioLevel/helpers.js +23 -0
  334. package/dist/esm/hooks/useAudioLevel/helpers.js.map +1 -0
  335. package/dist/esm/hooks/useAudioLevel/index.js +2 -0
  336. package/dist/esm/hooks/useAudioLevel/index.js.map +1 -0
  337. package/dist/esm/hooks/useAudioLevel/types.js +2 -0
  338. package/dist/esm/hooks/useAudioLevel/types.js.map +1 -0
  339. package/dist/esm/hooks/useAudioLevel/useAudioLevel.js +43 -0
  340. package/dist/esm/hooks/useAudioLevel/useAudioLevel.js.map +1 -0
  341. package/dist/esm/hooks/useCamera/index.js +2 -0
  342. package/dist/esm/hooks/useCamera/index.js.map +1 -0
  343. package/dist/esm/hooks/useCamera/useCamera.js +29 -0
  344. package/dist/esm/hooks/useCamera/useCamera.js.map +1 -0
  345. package/dist/esm/hooks/useConnectionState/index.js +2 -0
  346. package/dist/esm/hooks/useConnectionState/index.js.map +1 -0
  347. package/dist/esm/hooks/useConnectionState/useConnectionState.js +11 -0
  348. package/dist/esm/hooks/useConnectionState/useConnectionState.js.map +1 -0
  349. package/dist/esm/hooks/useConversation/index.js +3 -0
  350. package/dist/esm/hooks/useConversation/index.js.map +1 -0
  351. package/dist/esm/hooks/useConversation/livekit/constants.js +11 -0
  352. package/dist/esm/hooks/useConversation/livekit/constants.js.map +1 -0
  353. package/dist/esm/hooks/useConversation/livekit/types.js +2 -0
  354. package/dist/esm/hooks/useConversation/livekit/types.js.map +1 -0
  355. package/dist/esm/hooks/useConversation/livekit/useConversation.js +377 -0
  356. package/dist/esm/hooks/useConversation/livekit/useConversation.js.map +1 -0
  357. package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js +18 -0
  358. package/dist/esm/hooks/useConversation/livekit/utils/dataChannel.js.map +1 -0
  359. package/dist/esm/hooks/useConversation/livekit/utils/index.js +7 -0
  360. package/dist/esm/hooks/useConversation/livekit/utils/index.js.map +1 -0
  361. package/dist/esm/hooks/useConversation/livekit/utils/messaging.js +7 -0
  362. package/dist/esm/hooks/useConversation/livekit/utils/messaging.js.map +1 -0
  363. package/dist/esm/hooks/useConversation/livekit/utils/participants.js +28 -0
  364. package/dist/esm/hooks/useConversation/livekit/utils/participants.js.map +1 -0
  365. package/dist/esm/hooks/useConversation/livekit/utils/serialization.js +9 -0
  366. package/dist/esm/hooks/useConversation/livekit/utils/serialization.js.map +1 -0
  367. package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js +14 -0
  368. package/dist/esm/hooks/useConversation/livekit/utils/toolAdapter.js.map +1 -0
  369. package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js +11 -0
  370. package/dist/esm/hooks/useConversation/livekit/utils/transcriptions.js.map +1 -0
  371. package/dist/esm/hooks/useConversation/types.js +2 -0
  372. package/dist/esm/hooks/useConversation/types.js.map +1 -0
  373. package/dist/esm/hooks/useConversation/useConversation.js +93 -0
  374. package/dist/esm/hooks/useConversation/useConversation.js.map +1 -0
  375. package/dist/esm/hooks/useConversationEvents/index.js +4 -0
  376. package/dist/esm/hooks/useConversationEvents/index.js.map +1 -0
  377. package/dist/esm/hooks/useConversationEvents/types.js +2 -0
  378. package/dist/esm/hooks/useConversationEvents/types.js.map +1 -0
  379. package/dist/esm/hooks/useConversationEvents/useConversationEvent.js +7 -0
  380. package/dist/esm/hooks/useConversationEvents/useConversationEvent.js.map +1 -0
  381. package/dist/esm/hooks/useConversationEvents/useConversationEvents.js +20 -0
  382. package/dist/esm/hooks/useConversationEvents/useConversationEvents.js.map +1 -0
  383. package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js +9 -0
  384. package/dist/esm/hooks/useConversationEvents/useEmitConversationEvent.js.map +1 -0
  385. package/dist/esm/hooks/useConversationStatus/index.js +2 -0
  386. package/dist/esm/hooks/useConversationStatus/index.js.map +1 -0
  387. package/dist/esm/hooks/useConversationStatus/useConversationStatus.js +6 -0
  388. package/dist/esm/hooks/useConversationStatus/useConversationStatus.js.map +1 -0
  389. package/dist/esm/hooks/useConversationTimer/index.js +2 -0
  390. package/dist/esm/hooks/useConversationTimer/index.js.map +1 -0
  391. package/dist/esm/hooks/useConversationTimer/useConversationTimer.js +44 -0
  392. package/dist/esm/hooks/useConversationTimer/useConversationTimer.js.map +1 -0
  393. package/dist/esm/hooks/useCreateConversation/helpers.js +4 -0
  394. package/dist/esm/hooks/useCreateConversation/helpers.js.map +1 -0
  395. package/dist/esm/hooks/useCreateConversation/index.js +2 -0
  396. package/dist/esm/hooks/useCreateConversation/index.js.map +1 -0
  397. package/dist/esm/hooks/useCreateConversation/useCreateConversation.js +98 -0
  398. package/dist/esm/hooks/useCreateConversation/useCreateConversation.js.map +1 -0
  399. package/dist/esm/hooks/useDeviceSwitcher/index.js +2 -0
  400. package/dist/esm/hooks/useDeviceSwitcher/index.js.map +1 -0
  401. package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js +26 -0
  402. package/dist/esm/hooks/useDeviceSwitcher/useDeviceSwitcher.js.map +1 -0
  403. package/dist/esm/hooks/useDevices/index.js +2 -0
  404. package/dist/esm/hooks/useDevices/index.js.map +1 -0
  405. package/dist/esm/hooks/useDevices/useDevices.js +45 -0
  406. package/dist/esm/hooks/useDevices/useDevices.js.map +1 -0
  407. package/dist/esm/hooks/useMediaPermissions/index.js +3 -0
  408. package/dist/esm/hooks/useMediaPermissions/index.js.map +1 -0
  409. package/dist/esm/hooks/useMediaPermissions/types.js +2 -0
  410. package/dist/esm/hooks/useMediaPermissions/types.js.map +1 -0
  411. package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js +42 -0
  412. package/dist/esm/hooks/useMediaPermissions/useMediaPermissions.js.map +1 -0
  413. package/dist/esm/hooks/useMediaRecorder/index.js +2 -0
  414. package/dist/esm/hooks/useMediaRecorder/index.js.map +1 -0
  415. package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js +227 -0
  416. package/dist/esm/hooks/useMediaRecorder/useMediaRecorder.js.map +1 -0
  417. package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js +315 -0
  418. package/dist/esm/hooks/useMediaRecorder/useReactRecorder.js.map +1 -0
  419. package/dist/esm/hooks/useMicrophone/index.js +2 -0
  420. package/dist/esm/hooks/useMicrophone/index.js.map +1 -0
  421. package/dist/esm/hooks/useMicrophone/useMicrophone.js +35 -0
  422. package/dist/esm/hooks/useMicrophone/useMicrophone.js.map +1 -0
  423. package/dist/esm/hooks/useParticipantTrack/index.js +2 -0
  424. package/dist/esm/hooks/useParticipantTrack/index.js.map +1 -0
  425. package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js +26 -0
  426. package/dist/esm/hooks/useParticipantTrack/useParticipantTrack.js.map +1 -0
  427. package/dist/esm/hooks/usePictureInPicture/index.js +5 -0
  428. package/dist/esm/hooks/usePictureInPicture/index.js.map +1 -0
  429. package/dist/esm/hooks/usePictureInPicture/state.js +10 -0
  430. package/dist/esm/hooks/usePictureInPicture/state.js.map +1 -0
  431. package/dist/esm/hooks/usePictureInPicture/types.js +2 -0
  432. package/dist/esm/hooks/usePictureInPicture/types.js.map +1 -0
  433. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js +41 -0
  434. package/dist/esm/hooks/usePictureInPicture/usePictureInPicture.js.map +1 -0
  435. package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js +111 -0
  436. package/dist/esm/hooks/usePictureInPicture/usePictureInPictureAuto.js.map +1 -0
  437. package/dist/esm/hooks/useScreenShare/index.js +2 -0
  438. package/dist/esm/hooks/useScreenShare/index.js.map +1 -0
  439. package/dist/esm/hooks/useScreenShare/useScreenShare.js +42 -0
  440. package/dist/esm/hooks/useScreenShare/useScreenShare.js.map +1 -0
  441. package/dist/esm/hooks/useSpeaker/index.js +2 -0
  442. package/dist/esm/hooks/useSpeaker/index.js.map +1 -0
  443. package/dist/esm/hooks/useSpeaker/useSpeaker.js +28 -0
  444. package/dist/esm/hooks/useSpeaker/useSpeaker.js.map +1 -0
  445. package/dist/esm/hooks/useTextChat/index.js +2 -0
  446. package/dist/esm/hooks/useTextChat/index.js.map +1 -0
  447. package/dist/esm/hooks/useTextChat/usePendingMessages.js +19 -0
  448. package/dist/esm/hooks/useTextChat/usePendingMessages.js.map +1 -0
  449. package/dist/esm/hooks/useTextChat/useTextChat.js +59 -0
  450. package/dist/esm/hooks/useTextChat/useTextChat.js.map +1 -0
  451. package/dist/esm/hooks/useTextChat/useToolAwareSend.js +28 -0
  452. package/dist/esm/hooks/useTextChat/useToolAwareSend.js.map +1 -0
  453. package/dist/esm/hooks/useTools/index.js +3 -0
  454. package/dist/esm/hooks/useTools/index.js.map +1 -0
  455. package/dist/esm/hooks/useTools/model/errors.js +7 -0
  456. package/dist/esm/hooks/useTools/model/errors.js.map +1 -0
  457. package/dist/esm/hooks/useTools/model/types.js +2 -0
  458. package/dist/esm/hooks/useTools/model/types.js.map +1 -0
  459. package/dist/esm/hooks/useTools/public/useTools.js +7 -0
  460. package/dist/esm/hooks/useTools/public/useTools.js.map +1 -0
  461. package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js +66 -0
  462. package/dist/esm/hooks/useTools/runtime/createToolRuntimeSession.js.map +1 -0
  463. package/dist/esm/hooks/useTools/runtime/executeToolCall.js +29 -0
  464. package/dist/esm/hooks/useTools/runtime/executeToolCall.js.map +1 -0
  465. package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js +36 -0
  466. package/dist/esm/hooks/useTools/runtime/executeToolCallBatch.js.map +1 -0
  467. package/dist/esm/hooks/useTools/runtime/types.js +2 -0
  468. package/dist/esm/hooks/useTools/runtime/types.js.map +1 -0
  469. package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js +58 -0
  470. package/dist/esm/hooks/useTools/runtime/useToolCallingRuntime.js.map +1 -0
  471. package/dist/esm/hooks/useTools/store/state.js +26 -0
  472. package/dist/esm/hooks/useTools/store/state.js.map +1 -0
  473. package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js +18 -0
  474. package/dist/esm/hooks/useTools/utils/normalizeFunctionCall.js.map +1 -0
  475. package/dist/esm/hooks/useTools/utils/serialize.js +23 -0
  476. package/dist/esm/hooks/useTools/utils/serialize.js.map +1 -0
  477. package/dist/esm/hooks/useTranscriptions/index.js +3 -0
  478. package/dist/esm/hooks/useTranscriptions/index.js.map +1 -0
  479. package/dist/esm/hooks/useTranscriptions/types.js +2 -0
  480. package/dist/esm/hooks/useTranscriptions/types.js.map +1 -0
  481. package/dist/esm/hooks/useTranscriptions/useTranscription.js +15 -0
  482. package/dist/esm/hooks/useTranscriptions/useTranscription.js.map +1 -0
  483. package/dist/esm/hooks/useTranscriptions/useTranscriptions.js +15 -0
  484. package/dist/esm/hooks/useTranscriptions/useTranscriptions.js.map +1 -0
  485. package/dist/esm/hooks/useUserActivity/index.js +2 -0
  486. package/dist/esm/hooks/useUserActivity/index.js.map +1 -0
  487. package/dist/esm/hooks/useUserActivity/useUserActivity.js +22 -0
  488. package/dist/esm/hooks/useUserActivity/useUserActivity.js.map +1 -0
  489. package/dist/esm/livekit/components.js +2 -0
  490. package/dist/esm/livekit/components.js.map +1 -0
  491. package/dist/esm/livekit/sdk.js +2 -0
  492. package/dist/esm/livekit/sdk.js.map +1 -0
  493. package/dist/esm/sdk-consumer/context.js +10 -0
  494. package/dist/esm/sdk-consumer/context.js.map +1 -0
  495. package/dist/esm/sdk-consumer/index.js +2 -0
  496. package/dist/esm/sdk-consumer/index.js.map +1 -0
  497. package/dist/esm/sdk.js +25 -0
  498. package/dist/esm/sdk.js.map +1 -0
  499. package/dist/esm/services/FetchPersonaChatService.js +124 -0
  500. package/dist/esm/services/FetchPersonaChatService.js.map +1 -0
  501. package/dist/esm/test-types.d.js +2 -0
  502. package/dist/esm/test-types.d.js.map +1 -0
  503. package/dist/esm/types/http.js +9 -0
  504. package/dist/esm/types/http.js.map +1 -0
  505. package/dist/esm/types/index.js +2 -0
  506. package/dist/esm/types/index.js.map +1 -0
  507. package/dist/esm/types/service.js +2 -0
  508. package/dist/esm/types/service.js.map +1 -0
  509. package/dist/esm/utils/captureImage/captureImage.js +29 -0
  510. package/dist/esm/utils/captureImage/captureImage.js.map +1 -0
  511. package/dist/esm/utils/captureImage/helpers.js +69 -0
  512. package/dist/esm/utils/captureImage/helpers.js.map +1 -0
  513. package/dist/esm/utils/captureImage/index.js +3 -0
  514. package/dist/esm/utils/captureImage/index.js.map +1 -0
  515. package/dist/esm/utils/captureImage/types.js +2 -0
  516. package/dist/esm/utils/captureImage/types.js.map +1 -0
  517. package/dist/esm/utils/compatibility/compatibility.js +12 -0
  518. package/dist/esm/utils/compatibility/compatibility.js.map +1 -0
  519. package/dist/esm/utils/compatibility/index.js +2 -0
  520. package/dist/esm/utils/compatibility/index.js.map +1 -0
  521. package/dist/esm/utils.js +2 -0
  522. package/dist/esm/utils.js.map +1 -0
  523. package/dist/types/components/Audio/Audio.d.ts +3 -0
  524. package/dist/types/components/Audio/Audio.d.ts.map +1 -0
  525. package/dist/types/components/Audio/index.d.ts +2 -0
  526. package/dist/types/components/Audio/index.d.ts.map +1 -0
  527. package/dist/types/components/ChromaKey/ChromaKey.d.ts +20 -0
  528. package/dist/types/components/ChromaKey/ChromaKey.d.ts.map +1 -0
  529. package/dist/types/components/ChromaKey/chroma-key.d.ts +9 -0
  530. package/dist/types/components/ChromaKey/chroma-key.d.ts.map +1 -0
  531. package/dist/types/components/ChromaKey/index.d.ts +2 -0
  532. package/dist/types/components/ChromaKey/index.d.ts.map +1 -0
  533. package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts +3 -0
  534. package/dist/types/components/ChromaKey/shaders/chroma-key.shader.d.ts.map +1 -0
  535. package/dist/types/components/ChromaKey/shaders/index.d.ts +3 -0
  536. package/dist/types/components/ChromaKey/shaders/index.d.ts.map +1 -0
  537. package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts +3 -0
  538. package/dist/types/components/ChromaKey/shaders/vertex-align.shader.d.ts.map +1 -0
  539. package/dist/types/components/ChromaKey/types.d.ts +3 -0
  540. package/dist/types/components/ChromaKey/types.d.ts.map +1 -0
  541. package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts +18 -0
  542. package/dist/types/components/LegendsPlatform/LegendsPlatform.d.ts.map +1 -0
  543. package/dist/types/components/LegendsPlatform/index.d.ts +2 -0
  544. package/dist/types/components/LegendsPlatform/index.d.ts.map +1 -0
  545. package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts +15 -0
  546. package/dist/types/components/LegendsPlatformQLess/LegendsPlatform.d.ts.map +1 -0
  547. package/dist/types/components/LegendsPlatformQLess/index.d.ts +2 -0
  548. package/dist/types/components/LegendsPlatformQLess/index.d.ts.map +1 -0
  549. package/dist/types/components/Video/Video.d.ts +14 -0
  550. package/dist/types/components/Video/Video.d.ts.map +1 -0
  551. package/dist/types/components/Video/index.d.ts +3 -0
  552. package/dist/types/components/Video/index.d.ts.map +1 -0
  553. package/dist/types/components/Video/types.d.ts +22 -0
  554. package/dist/types/components/Video/types.d.ts.map +1 -0
  555. package/dist/types/components/Video/useAttachVideo.d.ts +10 -0
  556. package/dist/types/components/Video/useAttachVideo.d.ts.map +1 -0
  557. package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts +11 -0
  558. package/dist/types/components/VideoPostProcessor/VideoPostProcessor.d.ts.map +1 -0
  559. package/dist/types/components/VideoPostProcessor/effects.d.ts +3 -0
  560. package/dist/types/components/VideoPostProcessor/effects.d.ts.map +1 -0
  561. package/dist/types/components/VideoPostProcessor/index.d.ts +2 -0
  562. package/dist/types/components/VideoPostProcessor/index.d.ts.map +1 -0
  563. package/dist/types/components/VideoPreview/VideoPreview.d.ts +4 -0
  564. package/dist/types/components/VideoPreview/VideoPreview.d.ts.map +1 -0
  565. package/dist/types/components/VideoPreview/index.d.ts +3 -0
  566. package/dist/types/components/VideoPreview/index.d.ts.map +1 -0
  567. package/dist/types/components/VideoPreview/types.d.ts +11 -0
  568. package/dist/types/components/VideoPreview/types.d.ts.map +1 -0
  569. package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts +13 -0
  570. package/dist/types/components/VideoPreview/useVideoPreviewStream.d.ts.map +1 -0
  571. package/dist/types/components.d.ts +6 -0
  572. package/dist/types/components.d.ts.map +1 -0
  573. package/dist/types/conversation/index.d.ts +3 -0
  574. package/dist/types/conversation/index.d.ts.map +1 -0
  575. package/dist/types/conversation/state.d.ts +47 -0
  576. package/dist/types/conversation/state.d.ts.map +1 -0
  577. package/dist/types/conversation/types.d.ts +27 -0
  578. package/dist/types/conversation/types.d.ts.map +1 -0
  579. package/dist/types/conversation/utils.d.ts +6 -0
  580. package/dist/types/conversation/utils.d.ts.map +1 -0
  581. package/dist/types/hooks/index.d.ts +10 -0
  582. package/dist/types/hooks/index.d.ts.map +1 -0
  583. package/dist/types/hooks/useActivityState/index.d.ts +2 -0
  584. package/dist/types/hooks/useActivityState/index.d.ts.map +1 -0
  585. package/dist/types/hooks/useActivityState/useActivityState.d.ts +2 -0
  586. package/dist/types/hooks/useActivityState/useActivityState.d.ts.map +1 -0
  587. package/dist/types/hooks/useAudio/index.d.ts +2 -0
  588. package/dist/types/hooks/useAudio/index.d.ts.map +1 -0
  589. package/dist/types/hooks/useAudio/useAudio.d.ts +7 -0
  590. package/dist/types/hooks/useAudio/useAudio.d.ts.map +1 -0
  591. package/dist/types/hooks/useAudioLevel/helpers.d.ts +11 -0
  592. package/dist/types/hooks/useAudioLevel/helpers.d.ts.map +1 -0
  593. package/dist/types/hooks/useAudioLevel/index.d.ts +2 -0
  594. package/dist/types/hooks/useAudioLevel/index.d.ts.map +1 -0
  595. package/dist/types/hooks/useAudioLevel/types.d.ts +8 -0
  596. package/dist/types/hooks/useAudioLevel/types.d.ts.map +1 -0
  597. package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts +3 -0
  598. package/dist/types/hooks/useAudioLevel/useAudioLevel.d.ts.map +1 -0
  599. package/dist/types/hooks/useCamera/index.d.ts +2 -0
  600. package/dist/types/hooks/useCamera/index.d.ts.map +1 -0
  601. package/dist/types/hooks/useCamera/useCamera.d.ts +8 -0
  602. package/dist/types/hooks/useCamera/useCamera.d.ts.map +1 -0
  603. package/dist/types/hooks/useConnectionState/index.d.ts +2 -0
  604. package/dist/types/hooks/useConnectionState/index.d.ts.map +1 -0
  605. package/dist/types/hooks/useConnectionState/useConnectionState.d.ts +2 -0
  606. package/dist/types/hooks/useConnectionState/useConnectionState.d.ts.map +1 -0
  607. package/dist/types/hooks/useConversation/index.d.ts +3 -0
  608. package/dist/types/hooks/useConversation/index.d.ts.map +1 -0
  609. package/dist/types/hooks/useConversation/livekit/constants.d.ts +4 -0
  610. package/dist/types/hooks/useConversation/livekit/constants.d.ts.map +1 -0
  611. package/dist/types/hooks/useConversation/livekit/types.d.ts +32 -0
  612. package/dist/types/hooks/useConversation/livekit/types.d.ts.map +1 -0
  613. package/dist/types/hooks/useConversation/livekit/useConversation.d.ts +3 -0
  614. package/dist/types/hooks/useConversation/livekit/useConversation.d.ts.map +1 -0
  615. package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts +6 -0
  616. package/dist/types/hooks/useConversation/livekit/utils/dataChannel.d.ts.map +1 -0
  617. package/dist/types/hooks/useConversation/livekit/utils/index.d.ts +7 -0
  618. package/dist/types/hooks/useConversation/livekit/utils/index.d.ts.map +1 -0
  619. package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts +3 -0
  620. package/dist/types/hooks/useConversation/livekit/utils/messaging.d.ts.map +1 -0
  621. package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts +6 -0
  622. package/dist/types/hooks/useConversation/livekit/utils/participants.d.ts.map +1 -0
  623. package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts +2 -0
  624. package/dist/types/hooks/useConversation/livekit/utils/serialization.d.ts.map +1 -0
  625. package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts +4 -0
  626. package/dist/types/hooks/useConversation/livekit/utils/toolAdapter.d.ts.map +1 -0
  627. package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts +3 -0
  628. package/dist/types/hooks/useConversation/livekit/utils/transcriptions.d.ts.map +1 -0
  629. package/dist/types/hooks/useConversation/types.d.ts +23 -0
  630. package/dist/types/hooks/useConversation/types.d.ts.map +1 -0
  631. package/dist/types/hooks/useConversation/useConversation.d.ts +3 -0
  632. package/dist/types/hooks/useConversation/useConversation.d.ts.map +1 -0
  633. package/dist/types/hooks/useConversationEvents/index.d.ts +4 -0
  634. package/dist/types/hooks/useConversationEvents/index.d.ts.map +1 -0
  635. package/dist/types/hooks/useConversationEvents/types.d.ts +72 -0
  636. package/dist/types/hooks/useConversationEvents/types.d.ts.map +1 -0
  637. package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts +3 -0
  638. package/dist/types/hooks/useConversationEvents/useConversationEvent.d.ts.map +1 -0
  639. package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts +5 -0
  640. package/dist/types/hooks/useConversationEvents/useConversationEvents.d.ts.map +1 -0
  641. package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts +3 -0
  642. package/dist/types/hooks/useConversationEvents/useEmitConversationEvent.d.ts.map +1 -0
  643. package/dist/types/hooks/useConversationStatus/index.d.ts +2 -0
  644. package/dist/types/hooks/useConversationStatus/index.d.ts.map +1 -0
  645. package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts +2 -0
  646. package/dist/types/hooks/useConversationStatus/useConversationStatus.d.ts.map +1 -0
  647. package/dist/types/hooks/useConversationTimer/index.d.ts +2 -0
  648. package/dist/types/hooks/useConversationTimer/index.d.ts.map +1 -0
  649. package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts +17 -0
  650. package/dist/types/hooks/useConversationTimer/useConversationTimer.d.ts.map +1 -0
  651. package/dist/types/hooks/useCreateConversation/helpers.d.ts +8 -0
  652. package/dist/types/hooks/useCreateConversation/helpers.d.ts.map +1 -0
  653. package/dist/types/hooks/useCreateConversation/index.d.ts +2 -0
  654. package/dist/types/hooks/useCreateConversation/index.d.ts.map +1 -0
  655. package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts +11 -0
  656. package/dist/types/hooks/useCreateConversation/useCreateConversation.d.ts.map +1 -0
  657. package/dist/types/hooks/useDeviceSwitcher/index.d.ts +2 -0
  658. package/dist/types/hooks/useDeviceSwitcher/index.d.ts.map +1 -0
  659. package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts +9 -0
  660. package/dist/types/hooks/useDeviceSwitcher/useDeviceSwitcher.d.ts.map +1 -0
  661. package/dist/types/hooks/useDevices/index.d.ts +2 -0
  662. package/dist/types/hooks/useDevices/index.d.ts.map +1 -0
  663. package/dist/types/hooks/useDevices/useDevices.d.ts +6 -0
  664. package/dist/types/hooks/useDevices/useDevices.d.ts.map +1 -0
  665. package/dist/types/hooks/useMediaPermissions/index.d.ts +3 -0
  666. package/dist/types/hooks/useMediaPermissions/index.d.ts.map +1 -0
  667. package/dist/types/hooks/useMediaPermissions/types.d.ts +3 -0
  668. package/dist/types/hooks/useMediaPermissions/types.d.ts.map +1 -0
  669. package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts +7 -0
  670. package/dist/types/hooks/useMediaPermissions/useMediaPermissions.d.ts.map +1 -0
  671. package/dist/types/hooks/useMediaRecorder/index.d.ts +2 -0
  672. package/dist/types/hooks/useMediaRecorder/index.d.ts.map +1 -0
  673. package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts +39 -0
  674. package/dist/types/hooks/useMediaRecorder/useMediaRecorder.d.ts.map +1 -0
  675. package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts +70 -0
  676. package/dist/types/hooks/useMediaRecorder/useReactRecorder.d.ts.map +1 -0
  677. package/dist/types/hooks/useMicrophone/index.d.ts +2 -0
  678. package/dist/types/hooks/useMicrophone/index.d.ts.map +1 -0
  679. package/dist/types/hooks/useMicrophone/useMicrophone.d.ts +8 -0
  680. package/dist/types/hooks/useMicrophone/useMicrophone.d.ts.map +1 -0
  681. package/dist/types/hooks/useParticipantTrack/index.d.ts +2 -0
  682. package/dist/types/hooks/useParticipantTrack/index.d.ts.map +1 -0
  683. package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts +11 -0
  684. package/dist/types/hooks/useParticipantTrack/useParticipantTrack.d.ts.map +1 -0
  685. package/dist/types/hooks/usePictureInPicture/index.d.ts +6 -0
  686. package/dist/types/hooks/usePictureInPicture/index.d.ts.map +1 -0
  687. package/dist/types/hooks/usePictureInPicture/state.d.ts +8 -0
  688. package/dist/types/hooks/usePictureInPicture/state.d.ts.map +1 -0
  689. package/dist/types/hooks/usePictureInPicture/types.d.ts +25 -0
  690. package/dist/types/hooks/usePictureInPicture/types.d.ts.map +1 -0
  691. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts +3 -0
  692. package/dist/types/hooks/usePictureInPicture/usePictureInPicture.d.ts.map +1 -0
  693. package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts +3 -0
  694. package/dist/types/hooks/usePictureInPicture/usePictureInPictureAuto.d.ts.map +1 -0
  695. package/dist/types/hooks/useScreenShare/index.d.ts +2 -0
  696. package/dist/types/hooks/useScreenShare/index.d.ts.map +1 -0
  697. package/dist/types/hooks/useScreenShare/useScreenShare.d.ts +13 -0
  698. package/dist/types/hooks/useScreenShare/useScreenShare.d.ts.map +1 -0
  699. package/dist/types/hooks/useSpeaker/index.d.ts +2 -0
  700. package/dist/types/hooks/useSpeaker/index.d.ts.map +1 -0
  701. package/dist/types/hooks/useSpeaker/useSpeaker.d.ts +6 -0
  702. package/dist/types/hooks/useSpeaker/useSpeaker.d.ts.map +1 -0
  703. package/dist/types/hooks/useTextChat/index.d.ts +2 -0
  704. package/dist/types/hooks/useTextChat/index.d.ts.map +1 -0
  705. package/dist/types/hooks/useTextChat/usePendingMessages.d.ts +11 -0
  706. package/dist/types/hooks/useTextChat/usePendingMessages.d.ts.map +1 -0
  707. package/dist/types/hooks/useTextChat/useTextChat.d.ts +21 -0
  708. package/dist/types/hooks/useTextChat/useTextChat.d.ts.map +1 -0
  709. package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts +8 -0
  710. package/dist/types/hooks/useTextChat/useToolAwareSend.d.ts.map +1 -0
  711. package/dist/types/hooks/useTools/index.d.ts +4 -0
  712. package/dist/types/hooks/useTools/index.d.ts.map +1 -0
  713. package/dist/types/hooks/useTools/model/errors.d.ts +4 -0
  714. package/dist/types/hooks/useTools/model/errors.d.ts.map +1 -0
  715. package/dist/types/hooks/useTools/model/types.d.ts +27 -0
  716. package/dist/types/hooks/useTools/model/types.d.ts.map +1 -0
  717. package/dist/types/hooks/useTools/public/useTools.d.ts +2 -0
  718. package/dist/types/hooks/useTools/public/useTools.d.ts.map +1 -0
  719. package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts +9 -0
  720. package/dist/types/hooks/useTools/runtime/createToolRuntimeSession.d.ts.map +1 -0
  721. package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts +3 -0
  722. package/dist/types/hooks/useTools/runtime/executeToolCall.d.ts.map +1 -0
  723. package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts +11 -0
  724. package/dist/types/hooks/useTools/runtime/executeToolCallBatch.d.ts.map +1 -0
  725. package/dist/types/hooks/useTools/runtime/types.d.ts +35 -0
  726. package/dist/types/hooks/useTools/runtime/types.d.ts.map +1 -0
  727. package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts +9 -0
  728. package/dist/types/hooks/useTools/runtime/useToolCallingRuntime.d.ts.map +1 -0
  729. package/dist/types/hooks/useTools/store/state.d.ts +17 -0
  730. package/dist/types/hooks/useTools/store/state.d.ts.map +1 -0
  731. package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts +4 -0
  732. package/dist/types/hooks/useTools/utils/normalizeFunctionCall.d.ts.map +1 -0
  733. package/dist/types/hooks/useTools/utils/serialize.d.ts +3 -0
  734. package/dist/types/hooks/useTools/utils/serialize.d.ts.map +1 -0
  735. package/dist/types/hooks/useTranscriptions/index.d.ts +3 -0
  736. package/dist/types/hooks/useTranscriptions/index.d.ts.map +1 -0
  737. package/dist/types/hooks/useTranscriptions/types.d.ts +5 -0
  738. package/dist/types/hooks/useTranscriptions/types.d.ts.map +1 -0
  739. package/dist/types/hooks/useTranscriptions/useTranscription.d.ts +3 -0
  740. package/dist/types/hooks/useTranscriptions/useTranscription.d.ts.map +1 -0
  741. package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts +3 -0
  742. package/dist/types/hooks/useTranscriptions/useTranscriptions.d.ts.map +1 -0
  743. package/dist/types/hooks/useUserActivity/index.d.ts +2 -0
  744. package/dist/types/hooks/useUserActivity/index.d.ts.map +1 -0
  745. package/dist/types/hooks/useUserActivity/useUserActivity.d.ts +8 -0
  746. package/dist/types/hooks/useUserActivity/useUserActivity.d.ts.map +1 -0
  747. package/dist/types/livekit/components.d.ts +2 -0
  748. package/dist/types/livekit/components.d.ts.map +1 -0
  749. package/dist/types/livekit/sdk.d.ts +2 -0
  750. package/dist/types/livekit/sdk.d.ts.map +1 -0
  751. package/dist/types/sdk-consumer/context.d.ts +12 -0
  752. package/dist/types/sdk-consumer/context.d.ts.map +1 -0
  753. package/dist/types/sdk-consumer/index.d.ts +2 -0
  754. package/dist/types/sdk-consumer/index.d.ts.map +1 -0
  755. package/dist/types/sdk.d.ts +25 -0
  756. package/dist/types/sdk.d.ts.map +1 -0
  757. package/dist/types/services/FetchPersonaChatService.d.ts +15 -0
  758. package/dist/types/services/FetchPersonaChatService.d.ts.map +1 -0
  759. package/dist/types/types/http.d.ts +15 -0
  760. package/dist/types/types/http.d.ts.map +1 -0
  761. package/dist/types/types/index.d.ts +4 -0
  762. package/dist/types/types/index.d.ts.map +1 -0
  763. package/dist/types/types/service.d.ts +62 -0
  764. package/dist/types/types/service.d.ts.map +1 -0
  765. package/dist/types/utils/captureImage/captureImage.d.ts +3 -0
  766. package/dist/types/utils/captureImage/captureImage.d.ts.map +1 -0
  767. package/dist/types/utils/captureImage/helpers.d.ts +4 -0
  768. package/dist/types/utils/captureImage/helpers.d.ts.map +1 -0
  769. package/dist/types/utils/captureImage/index.d.ts +3 -0
  770. package/dist/types/utils/captureImage/index.d.ts.map +1 -0
  771. package/dist/types/utils/captureImage/types.d.ts +9 -0
  772. package/dist/types/utils/captureImage/types.d.ts.map +1 -0
  773. package/dist/types/utils/compatibility/compatibility.d.ts +3 -0
  774. package/dist/types/utils/compatibility/compatibility.d.ts.map +1 -0
  775. package/dist/types/utils/compatibility/index.d.ts +2 -0
  776. package/dist/types/utils/compatibility/index.d.ts.map +1 -0
  777. package/dist/types/utils.d.ts +2 -0
  778. package/dist/types/utils.d.ts.map +1 -0
  779. package/livekit/components/package.json +5 -0
  780. package/livekit/sdk/package.json +5 -0
  781. package/livekit-client.patch +19 -0
  782. package/package.json +108 -0
  783. package/sdk/package.json +5 -0
  784. package/tpa/package.json +5 -0
  785. package/utils/package.json +5 -0
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useConnectionState = useConnectionState;
5
+ var _jotai = require("jotai");
6
+ var _conversation = require("../../conversation");
7
+ function useConnectionState(type) {
8
+ switch (type) {
9
+ case 'user':
10
+ return (0, _jotai.useAtomValue)(_conversation.state.userConnectionState);
11
+ case 'agent':
12
+ return (0, _jotai.useAtomValue)(_conversation.state.agentConnectionState);
13
+ }
14
+ }
15
+ //# sourceMappingURL=useConnectionState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_jotai","require","_conversation","useConnectionState","type","useAtomValue","state","userConnectionState","agentConnectionState"],"sources":["../../../../src/hooks/useConnectionState/useConnectionState.ts"],"sourcesContent":["import { useAtomValue } from 'jotai';\n\nimport { state } from '../../conversation';\n\nexport function useConnectionState(type: 'user' | 'agent') {\n switch (type) {\n case 'user':\n return useAtomValue(state.userConnectionState);\n case 'agent':\n return useAtomValue(state.agentConnectionState);\n }\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAEO,SAASE,kBAAkBA,CAACC,IAAsB,EAAE;EACzD,QAAQA,IAAI;IACV,KAAK,MAAM;MACT,OAAO,IAAAC,mBAAY,EAACC,mBAAK,CAACC,mBAAmB,CAAC;IAChD,KAAK,OAAO;MACV,OAAO,IAAAF,mBAAY,EAACC,mBAAK,CAACE,oBAAoB,CAAC;EACnD;AACF","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _useConversation = require("./useConversation");
5
+ Object.keys(_useConversation).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _useConversation[key]) return;
8
+ exports[key] = _useConversation[key];
9
+ });
10
+ var _types = require("./types");
11
+ Object.keys(_types).forEach(function (key) {
12
+ if (key === "default" || key === "__esModule") return;
13
+ if (key in exports && exports[key] === _types[key]) return;
14
+ exports[key] = _types[key];
15
+ });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useConversation","require","Object","keys","forEach","key","exports","_types"],"sources":["../../../../src/hooks/useConversation/index.ts"],"sourcesContent":["export * from './useConversation';\nexport * from './types';\n"],"mappings":";;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,gBAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,MAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,MAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,MAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,MAAA,CAAAF,GAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.SPEAKING_STATE_EVENT_MAP = void 0;
5
+ const SPEAKING_STATE_EVENT_MAP = exports.SPEAKING_STATE_EVENT_MAP = {
6
+ STANDARD: {
7
+ speaking: 'userSpeakStart',
8
+ listening: 'userSpeakStop'
9
+ },
10
+ AGENT: {
11
+ speaking: 'agentSpeakStart',
12
+ listening: 'agentSpeakStop'
13
+ }
14
+ };
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SPEAKING_STATE_EVENT_MAP","exports","STANDARD","speaking","listening","AGENT"],"sources":["../../../../../src/hooks/useConversation/livekit/constants.ts"],"sourcesContent":["import type { TurnDetectionData } from './types';\nimport type { ConversationEvent } from '../../useConversationEvents';\n\nexport const SPEAKING_STATE_EVENT_MAP: Record<\n TurnDetectionData['participantKind'],\n Record<TurnDetectionData['state'], ConversationEvent>\n> = {\n STANDARD: {\n speaking: 'userSpeakStart',\n listening: 'userSpeakStop',\n },\n AGENT: {\n speaking: 'agentSpeakStart',\n listening: 'agentSpeakStop',\n },\n};\n"],"mappings":";;;;AAGO,MAAMA,wBAGZ,GAAAC,OAAA,CAAAD,wBAAA,GAAG;EACFE,QAAQ,EAAE;IACRC,QAAQ,EAAE,gBAAgB;IAC1BC,SAAS,EAAE;EACb,CAAC;EACDC,KAAK,EAAE;IACLF,QAAQ,EAAE,iBAAiB;IAC3BC,SAAS,EAAE;EACb;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../../src/hooks/useConversation/livekit/types.ts"],"sourcesContent":["import type { FunctionCall, FunctionCallResult } from '../../../types/service';\nimport type {\n ToolCallEnvelope,\n ToolRuntimeAdapter,\n} from '../../useTools/runtime/types';\n\nexport type InactivityWarningData = {\n type: 'inactivity_warning';\n grace_period_sec: number;\n};\n\nexport type ToolRuntimeLike = {\n handleIncoming(\n envelope: ToolCallEnvelope,\n adapter: ToolRuntimeAdapter,\n ): Promise<void>;\n};\n\nexport type TurnDetectionData = {\n createdAt: number;\n participantIdentity: string;\n sequence: number;\n source: string;\n state: 'listening' | 'speaking';\n turnDetectionStrategy: 'livekit_turn_detector' | 'silero_vad';\n type: string;\n version: number;\n participantKind: 'STANDARD' | 'AGENT';\n speechId?: string;\n};\n\nexport type ToolCallsData = {\n type: 'tool_calls';\n requestId: string;\n functionCalls: FunctionCall[];\n};\n\nexport type ToolResultsData = {\n type: 'tool_results';\n requestId: string;\n functionCallResults: FunctionCallResult[];\n};\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,371 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.useConversation = useConversation;
6
+ var _react = require("react");
7
+ var _livekitClient = require("livekit-client");
8
+ var _invariant = _interopRequireDefault(require("invariant"));
9
+ var _reactTimerHook = require("react-timer-hook");
10
+ var _reactUse = require("react-use");
11
+ var _componentsReact = require("@livekit/components-react");
12
+ var _jotai = require("jotai");
13
+ var _conversation = require("../../../conversation");
14
+ var _useCreateConversation = require("../../useCreateConversation");
15
+ var _useEmitConversationEvent = require("../../useConversationEvents/useEmitConversationEvent");
16
+ var _useToolCallingRuntime = require("../../useTools/runtime/useToolCallingRuntime");
17
+ var _utils = require("./utils");
18
+ function useConversation({
19
+ autoJoin = true,
20
+ type,
21
+ config,
22
+ startWithMicrophone = false,
23
+ startWithCamera = false
24
+ }) {
25
+ var _conversation$data2;
26
+ (0, _livekitClient.setLogLevel)(_livekitClient.LogLevel.silent);
27
+ const conversation = (0, _useCreateConversation.useCreateConversation)({
28
+ type,
29
+ config
30
+ });
31
+ const room = (0, _componentsReact.useEnsureRoom)();
32
+ const speaker = (0, _jotai.useAtomValue)(_conversation.state.speaker);
33
+ const [microphone, setMicrophone] = (0, _jotai.useAtom)(_conversation.state.microphone);
34
+ const [camera, setCamera] = (0, _jotai.useAtom)(_conversation.state.camera);
35
+ const toolRuntime = (0, _useToolCallingRuntime.useToolCallingRuntime)();
36
+ const toolAdapter = (0, _utils.createLivekitToolAdapter)(room);
37
+
38
+ // for use in register/unregister room events
39
+ const conversationRef = (0, _reactUse.useLatest)(conversation.data);
40
+ const toolRuntimeRef = (0, _reactUse.useLatest)(toolRuntime);
41
+ const [conversationStatus, setConversationStatus] = (0, _jotai.useAtom)(_conversation.state.conversationStatus);
42
+ const [userConnectionState, setUserConnectionState] = (0, _jotai.useAtom)(_conversation.state.userConnectionState);
43
+ const [joinedAt, setJoinedAt] = (0, _jotai.useAtom)(_conversation.state.joinedAt);
44
+ const {
45
+ setActiveMediaDevice: setMicrophoneDeviceId
46
+ } = (0, _componentsReact.useMediaDeviceSelect)({
47
+ kind: 'audioinput'
48
+ });
49
+ const {
50
+ setActiveMediaDevice: setSpeakerDeviceId
51
+ } = (0, _componentsReact.useMediaDeviceSelect)({
52
+ kind: 'audiooutput'
53
+ });
54
+ const {
55
+ setActiveMediaDevice: setCameraDeviceId
56
+ } = (0, _componentsReact.useMediaDeviceSelect)({
57
+ kind: 'videoinput',
58
+ requestPermissions: camera.enabled
59
+ });
60
+ const setTranscriptions = (0, _jotai.useSetAtom)(_conversation.state.transcriptions);
61
+ const [agentConnectionState, setAgentConnectionState] = (0, _jotai.useAtom)(_conversation.state.agentConnectionState);
62
+ const setAgentActivityState = (0, _jotai.useSetAtom)(_conversation.state.agentActivityState);
63
+ const setUserActivityState = (0, _jotai.useSetAtom)(_conversation.state.userActivityState);
64
+ const emitEvent = (0, _useEmitConversationEvent.useEmitConversationEvent)();
65
+ const userStopRef = (0, _react.useRef)(null);
66
+ const timer = (0, _reactTimerHook.useTimer)({
67
+ autoStart: false,
68
+ onExpire: handleExpire,
69
+ expiryTimestamp: new Date()
70
+ });
71
+ (0, _react.useEffect)(() => {
72
+ if (!room) {
73
+ return;
74
+ }
75
+ registerRoomEvents();
76
+ return () => {
77
+ unregisterRoomEvents();
78
+ };
79
+ }, [room]);
80
+ (0, _reactUse.useUpdateEffect)(() => {
81
+ setMicrophoneDeviceId(microphone.deviceId);
82
+ }, [microphone.deviceId]);
83
+ (0, _reactUse.useUpdateEffect)(() => {
84
+ setSpeakerDeviceId(speaker.deviceId);
85
+ }, [speaker.deviceId]);
86
+ (0, _reactUse.useUpdateEffect)(() => {
87
+ setCameraDeviceId(camera.deviceId);
88
+ }, [camera.deviceId]);
89
+ (0, _reactUse.useUpdateEffect)(() => {
90
+ if (agentConnectionState !== 'joined') {
91
+ return;
92
+ }
93
+ room.localParticipant.setMicrophoneEnabled(microphone.enabled);
94
+ }, [microphone.enabled, agentConnectionState]);
95
+ (0, _reactUse.useUpdateEffect)(() => {
96
+ if (agentConnectionState !== 'joined') {
97
+ return;
98
+ }
99
+ room.localParticipant.setCameraEnabled(camera.enabled, {
100
+ resolution: {
101
+ width: 1920,
102
+ height: 1080
103
+ }
104
+ });
105
+ }, [camera.enabled, agentConnectionState]);
106
+ (0, _react.useEffect)(() => {
107
+ if (!autoJoin) {
108
+ return;
109
+ }
110
+ if (conversationStatus === 'created') {
111
+ void join();
112
+ }
113
+ }, [conversationStatus, autoJoin]);
114
+ (0, _react.useEffect)(() => {
115
+ var _conversation$data;
116
+ if (!joinedAt || ((_conversation$data = conversation.data) == null ? void 0 : _conversation$data.limit) === undefined) {
117
+ return;
118
+ }
119
+ timer.restart(new Date(joinedAt.getTime() + conversation.data.limit));
120
+ }, [joinedAt, (_conversation$data2 = conversation.data) == null ? void 0 : _conversation$data2.limit]);
121
+ async function join() {
122
+ var _conversation$data3;
123
+ (0, _invariant.default)(userConnectionState === 'idle', 'Already joined');
124
+ (0, _invariant.default)(conversation.data, 'Conversation is not ready');
125
+ const url = new URL((conversation == null || (_conversation$data3 = conversation.data) == null ? void 0 : _conversation$data3.url) || '');
126
+ const accessToken = url.searchParams.get('token');
127
+ try {
128
+ setUserConnectionState('joining');
129
+ await (room == null ? void 0 : room.connect(conversation.data.url, accessToken, {}));
130
+
131
+ // sometimes the agent is already joined before the user joins the conversation
132
+ const remoteParticipant = (0, _utils.findJoinedAgentParticipant)(room, type);
133
+ if (remoteParticipant && agentConnectionState !== 'joined') {
134
+ handleAgentJoin(remoteParticipant);
135
+ }
136
+ enableMediaDevices();
137
+ } catch (error) {
138
+ console.error('Failed to join', error);
139
+ setUserConnectionState('join-error');
140
+ }
141
+ }
142
+ function enableMediaDevices() {
143
+ if (startWithMicrophone) {
144
+ setMicrophone({
145
+ ...microphone,
146
+ enabled: true
147
+ });
148
+ }
149
+ if (startWithCamera && type === 'video') {
150
+ setCamera({
151
+ ...camera,
152
+ enabled: true
153
+ });
154
+ }
155
+ }
156
+ function handleTranscriptionReceivedEvent(segments, participant) {
157
+ const transcriptions = segments.map(s => ({
158
+ id: s.id,
159
+ message: s.text,
160
+ source: (participant == null ? void 0 : participant.kind) === _livekitClient.ParticipantKind.AGENT ? 'agent' : 'user'
161
+ }));
162
+ setTranscriptions(old => (0, _utils.mergeTranscriptions)(transcriptions, old));
163
+ }
164
+ function handleTurnDetectionEvent(data) {
165
+ var _conversationRef$curr;
166
+ const conversationId = (_conversationRef$curr = conversationRef.current) == null ? void 0 : _conversationRef$curr.id;
167
+ const {
168
+ participantKind,
169
+ state: eventState
170
+ } = data;
171
+ switch (participantKind) {
172
+ case 'STANDARD':
173
+ if (eventState === 'listening') {
174
+ userStopRef.current = {
175
+ ts: performance.now(),
176
+ turnDetectionStrategy: data.turnDetectionStrategy,
177
+ sequence: data.sequence,
178
+ speechId: data.speechId
179
+ };
180
+ } else {
181
+ userStopRef.current = null;
182
+ }
183
+ emitEvent(eventState === 'speaking' ? 'userSpeakStart' : 'userSpeakStop', {
184
+ conversationId: conversationId
185
+ });
186
+ setUserActivityState(eventState);
187
+ break;
188
+ case 'AGENT':
189
+ if (eventState === 'speaking' && userStopRef.current) {
190
+ const latencyMs = performance.now() - userStopRef.current.ts;
191
+ emitEvent('responseLatency', {
192
+ conversationId: conversationId,
193
+ latencyMs,
194
+ turnDetectionStrategy: userStopRef.current.turnDetectionStrategy,
195
+ sequence: userStopRef.current.sequence,
196
+ speechId: data.speechId ?? userStopRef.current.speechId
197
+ });
198
+ userStopRef.current = null;
199
+ }
200
+ emitEvent(eventState === 'speaking' ? 'agentSpeakStart' : 'agentSpeakStop', {
201
+ conversationId: conversationId
202
+ });
203
+ setAgentActivityState(eventState);
204
+ break;
205
+ }
206
+ }
207
+ function handleInactivityWarningEvent(data) {
208
+ var _conversationRef$curr2;
209
+ emitEvent('inactivityWarning', {
210
+ conversationId: (_conversationRef$curr2 = conversationRef.current) == null ? void 0 : _conversationRef$curr2.id,
211
+ gracePeriodSec: data.grace_period_sec
212
+ });
213
+ }
214
+ async function handleToolCallsEvent(data) {
215
+ await toolRuntimeRef.current.resolveIncomingToolCalls(data, toolAdapter);
216
+ }
217
+ const dataChannelHandlers = [{
218
+ guard: _utils.checkIsToolCallsData,
219
+ handle: handleToolCallsEvent
220
+ }, {
221
+ guard: _utils.checkIsTurnDetectionData,
222
+ handle: handleTurnDetectionEvent
223
+ }, {
224
+ guard: _utils.checkIsInactivityWarningData,
225
+ handle: handleInactivityWarningEvent
226
+ }
227
+ // ... other data channel handlers
228
+ ];
229
+ function handleDataReceivedEvent(payload) {
230
+ const decoded = (0, _utils.decodeDataPayload)(payload);
231
+ if (decoded === null) {
232
+ return;
233
+ }
234
+ for (const {
235
+ guard,
236
+ handle
237
+ } of dataChannelHandlers) {
238
+ if (guard(decoded)) {
239
+ void Promise.resolve(handle(decoded)).catch(error => {
240
+ console.error('Failed to handle data channel payload', error);
241
+ });
242
+ return;
243
+ }
244
+ }
245
+ }
246
+ function handleConnectedEvent() {
247
+ var _conversationRef$curr3;
248
+ setUserConnectionState('joined');
249
+ setAgentConnectionState('joining');
250
+ emitEvent('callStarted', {
251
+ conversationId: (_conversationRef$curr3 = conversationRef.current) == null ? void 0 : _conversationRef$curr3.id
252
+ });
253
+ }
254
+ async function handleEncryptionErrorEvent(error) {
255
+ console.error('Encryption error', error);
256
+ setConversationStatus('error');
257
+ }
258
+ function handleDisconnectedEvent(reason) {
259
+ userStopRef.current = null;
260
+ setAgentActivityState('idle');
261
+ setAgentConnectionState('idle');
262
+ setUserActivityState('idle');
263
+ setUserConnectionState('idle');
264
+ switch (reason) {
265
+ case _livekitClient.DisconnectReason.CLIENT_INITIATED:
266
+ break;
267
+ case _livekitClient.DisconnectReason.ROOM_CLOSED:
268
+ setConversationStatus('destroyed');
269
+ break;
270
+ default:
271
+ console.error('Conversation disconnected with reason', reason);
272
+ setConversationStatus('error');
273
+ break;
274
+ }
275
+ }
276
+ function handleParticipantConnectedEvent(participant) {
277
+ if ((0, _utils.shouldHandleParticipantConnected)(participant, type)) {
278
+ handleAgentJoin(participant);
279
+ }
280
+ }
281
+ function handleAgentJoin(participant) {
282
+ var _conversationRef$curr4;
283
+ setAgentConnectionState('joined');
284
+ emitEvent('agentJoined', {
285
+ conversationId: (_conversationRef$curr4 = conversationRef.current) == null ? void 0 : _conversationRef$curr4.id,
286
+ participant
287
+ });
288
+ }
289
+ function handleParticipantDisconnectedEvent(participant) {
290
+ var _conversationRef$curr5;
291
+ setAgentConnectionState('left');
292
+ emitEvent('agentLeft', {
293
+ conversationId: (_conversationRef$curr5 = conversationRef.current) == null ? void 0 : _conversationRef$curr5.id,
294
+ participant
295
+ });
296
+ }
297
+ async function leave() {
298
+ if (userConnectionState !== 'joined' && userConnectionState !== 'joining') {
299
+ return;
300
+ }
301
+ try {
302
+ var _conversationRef$curr6;
303
+ setUserConnectionState('leaving');
304
+ await (room == null ? void 0 : room.disconnect(true));
305
+ setConversationStatus('destroyed');
306
+ setJoinedAt(undefined);
307
+ emitEvent('callEnded', {
308
+ conversationId: (_conversationRef$curr6 = conversationRef.current) == null ? void 0 : _conversationRef$curr6.id
309
+ });
310
+ } catch (error) {
311
+ console.error('Failed to leave', error);
312
+ setConversationStatus('error');
313
+ }
314
+ }
315
+ async function handleExpire() {
316
+ var _conversationRef$curr7, _conversationRef$curr8;
317
+ emitEvent('timeExceeded', {
318
+ conversationId: (_conversationRef$curr7 = conversationRef.current) == null ? void 0 : _conversationRef$curr7.id,
319
+ limit: (_conversationRef$curr8 = conversationRef.current) == null ? void 0 : _conversationRef$curr8.limit
320
+ });
321
+ await leave();
322
+ setConversationStatus('exceeded');
323
+ }
324
+ async function interrupt() {
325
+ var _conversationRef$curr9;
326
+ emitEvent('interrupt', {
327
+ conversationId: (_conversationRef$curr9 = conversationRef.current) == null ? void 0 : _conversationRef$curr9.id
328
+ });
329
+ await (0, _utils.publishConversationDataMessage)(room, {}, 'interrupt');
330
+ }
331
+ async function dismissInactivity() {
332
+ await (0, _utils.publishConversationDataMessage)(room, {
333
+ type: 'inactivity_dismiss'
334
+ }, 'inactivity_dismiss');
335
+ }
336
+ async function send(message, attachments = []) {
337
+ var _conversationRef$curr0;
338
+ await (room == null ? void 0 : room.localParticipant.sendText(message, {
339
+ topic: 'lk.chat',
340
+ attributes: {
341
+ attachments: (0, _utils.safeStringify)(attachments)
342
+ }
343
+ }));
344
+ emitEvent('userSendMessage', {
345
+ conversationId: (_conversationRef$curr0 = conversationRef.current) == null ? void 0 : _conversationRef$curr0.id,
346
+ message
347
+ });
348
+ }
349
+ function registerRoomEvents() {
350
+ room.on('connected', handleConnectedEvent).on('encryptionError', handleEncryptionErrorEvent).on('disconnected', handleDisconnectedEvent).on('transcriptionReceived', handleTranscriptionReceivedEvent).on('participantConnected', handleParticipantConnectedEvent).on('participantDisconnected', handleParticipantDisconnectedEvent).on('dataReceived', handleDataReceivedEvent);
351
+ }
352
+ function unregisterRoomEvents() {
353
+ room.off('connected', handleConnectedEvent);
354
+ room.off('encryptionError', handleEncryptionErrorEvent);
355
+ room.off('disconnected', handleDisconnectedEvent);
356
+ room.off('transcriptionReceived', handleTranscriptionReceivedEvent);
357
+ room.off('participantConnected', handleParticipantConnectedEvent);
358
+ room.off('participantDisconnected', handleParticipantDisconnectedEvent);
359
+ room.off('dataReceived', handleDataReceivedEvent);
360
+ }
361
+ return {
362
+ status: conversationStatus,
363
+ conversation: conversation.data,
364
+ join,
365
+ send,
366
+ interrupt,
367
+ dismissInactivity,
368
+ leave
369
+ };
370
+ }
371
+ //# sourceMappingURL=useConversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_livekitClient","_invariant","_interopRequireDefault","_reactTimerHook","_reactUse","_componentsReact","_jotai","_conversation","_useCreateConversation","_useEmitConversationEvent","_useToolCallingRuntime","_utils","useConversation","autoJoin","type","config","startWithMicrophone","startWithCamera","_conversation$data2","setLogLevel","LogLevel","silent","conversation","useCreateConversation","room","useEnsureRoom","speaker","useAtomValue","state","microphone","setMicrophone","useAtom","camera","setCamera","toolRuntime","useToolCallingRuntime","toolAdapter","createLivekitToolAdapter","conversationRef","useLatest","data","toolRuntimeRef","conversationStatus","setConversationStatus","userConnectionState","setUserConnectionState","joinedAt","setJoinedAt","setActiveMediaDevice","setMicrophoneDeviceId","useMediaDeviceSelect","kind","setSpeakerDeviceId","setCameraDeviceId","requestPermissions","enabled","setTranscriptions","useSetAtom","transcriptions","agentConnectionState","setAgentConnectionState","setAgentActivityState","agentActivityState","setUserActivityState","userActivityState","emitEvent","useEmitConversationEvent","userStopRef","useRef","timer","useTimer","autoStart","onExpire","handleExpire","expiryTimestamp","Date","useEffect","registerRoomEvents","unregisterRoomEvents","useUpdateEffect","deviceId","localParticipant","setMicrophoneEnabled","setCameraEnabled","resolution","width","height","join","_conversation$data","limit","undefined","restart","getTime","_conversation$data3","invariant","url","URL","accessToken","searchParams","get","connect","remoteParticipant","findJoinedAgentParticipant","handleAgentJoin","enableMediaDevices","error","console","handleTranscriptionReceivedEvent","segments","participant","map","s","id","message","text","source","ParticipantKind","AGENT","old","mergeTranscriptions","handleTurnDetectionEvent","_conversationRef$curr","conversationId","current","participantKind","eventState","ts","performance","now","turnDetectionStrategy","sequence","speechId","latencyMs","handleInactivityWarningEvent","_conversationRef$curr2","gracePeriodSec","grace_period_sec","handleToolCallsEvent","resolveIncomingToolCalls","dataChannelHandlers","guard","checkIsToolCallsData","handle","checkIsTurnDetectionData","checkIsInactivityWarningData","handleDataReceivedEvent","payload","decoded","decodeDataPayload","Promise","resolve","catch","handleConnectedEvent","_conversationRef$curr3","handleEncryptionErrorEvent","handleDisconnectedEvent","reason","DisconnectReason","CLIENT_INITIATED","ROOM_CLOSED","handleParticipantConnectedEvent","shouldHandleParticipantConnected","_conversationRef$curr4","handleParticipantDisconnectedEvent","_conversationRef$curr5","leave","_conversationRef$curr6","disconnect","_conversationRef$curr7","_conversationRef$curr8","interrupt","_conversationRef$curr9","publishConversationDataMessage","dismissInactivity","send","attachments","_conversationRef$curr0","sendText","topic","attributes","safeStringify","on","off","status"],"sources":["../../../../../src/hooks/useConversation/livekit/useConversation.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport {\n DisconnectReason,\n Participant,\n setLogLevel,\n ParticipantKind,\n RemoteParticipant,\n TranscriptionSegment,\n LogLevel,\n} from 'livekit-client';\nimport invariant from 'invariant';\nimport { useTimer } from 'react-timer-hook';\nimport { useLatest, useUpdateEffect } from 'react-use';\nimport { useEnsureRoom, useMediaDeviceSelect } from '@livekit/components-react';\nimport { useAtom, useAtomValue, useSetAtom } from 'jotai';\nimport {\n Conversation,\n state,\n type ConversationTranscription,\n} from '../../../conversation';\nimport type {\n UseConversationResult,\n UseConversationOptions,\n Attachment,\n} from '../types';\nimport type {\n InactivityWarningData,\n TurnDetectionData,\n ToolCallsData,\n} from './types';\nimport { useCreateConversation } from '../../useCreateConversation';\n\nimport { useEmitConversationEvent } from '../../useConversationEvents/useEmitConversationEvent';\nimport { useToolCallingRuntime } from '../../useTools/runtime/useToolCallingRuntime';\nimport {\n checkIsTurnDetectionData,\n checkIsInactivityWarningData,\n checkIsToolCallsData,\n createLivekitToolAdapter,\n decodeDataPayload,\n findJoinedAgentParticipant,\n mergeTranscriptions,\n publishConversationDataMessage,\n safeStringify,\n shouldHandleParticipantConnected,\n} from './utils';\n\nexport function useConversation({\n autoJoin = true,\n type,\n config,\n startWithMicrophone = false,\n startWithCamera = false,\n}: UseConversationOptions): UseConversationResult {\n setLogLevel(LogLevel.silent);\n\n const conversation = useCreateConversation({ type, config });\n const room = useEnsureRoom();\n const speaker = useAtomValue(state.speaker);\n const [microphone, setMicrophone] = useAtom(state.microphone);\n const [camera, setCamera] = useAtom(state.camera);\n const toolRuntime = useToolCallingRuntime();\n const toolAdapter = createLivekitToolAdapter(room);\n\n // for use in register/unregister room events\n const conversationRef = useLatest<Conversation | undefined>(\n conversation.data,\n );\n const toolRuntimeRef = useLatest(toolRuntime);\n\n const [conversationStatus, setConversationStatus] = useAtom(\n state.conversationStatus,\n );\n\n const [userConnectionState, setUserConnectionState] = useAtom(\n state.userConnectionState,\n );\n\n const [joinedAt, setJoinedAt] = useAtom(state.joinedAt);\n\n const { setActiveMediaDevice: setMicrophoneDeviceId } = useMediaDeviceSelect({\n kind: 'audioinput',\n });\n\n const { setActiveMediaDevice: setSpeakerDeviceId } = useMediaDeviceSelect({\n kind: 'audiooutput',\n });\n\n const { setActiveMediaDevice: setCameraDeviceId } = useMediaDeviceSelect({\n kind: 'videoinput',\n requestPermissions: camera.enabled,\n });\n\n const setTranscriptions = useSetAtom(state.transcriptions);\n const [agentConnectionState, setAgentConnectionState] = useAtom(\n state.agentConnectionState,\n );\n const setAgentActivityState = useSetAtom(state.agentActivityState);\n const setUserActivityState = useSetAtom(state.userActivityState);\n const emitEvent = useEmitConversationEvent();\n\n const userStopRef = useRef<{\n ts: number;\n turnDetectionStrategy: string;\n sequence?: number;\n speechId?: string;\n } | null>(null);\n\n const timer = useTimer({\n autoStart: false,\n onExpire: handleExpire,\n expiryTimestamp: new Date(),\n });\n\n useEffect(() => {\n if (!room) {\n return;\n }\n registerRoomEvents();\n\n return () => {\n unregisterRoomEvents();\n };\n }, [room]);\n\n useUpdateEffect(() => {\n setMicrophoneDeviceId(microphone.deviceId);\n }, [microphone.deviceId]);\n\n useUpdateEffect(() => {\n setSpeakerDeviceId(speaker.deviceId);\n }, [speaker.deviceId]);\n\n useUpdateEffect(() => {\n setCameraDeviceId(camera.deviceId);\n }, [camera.deviceId]);\n\n useUpdateEffect(() => {\n if (agentConnectionState !== 'joined') {\n return;\n }\n room.localParticipant.setMicrophoneEnabled(microphone.enabled);\n }, [microphone.enabled, agentConnectionState]);\n\n useUpdateEffect(() => {\n if (agentConnectionState !== 'joined') {\n return;\n }\n room.localParticipant.setCameraEnabled(camera.enabled, {\n resolution: { width: 1920, height: 1080 },\n });\n }, [camera.enabled, agentConnectionState]);\n\n useEffect(() => {\n if (!autoJoin) {\n return;\n }\n\n if (conversationStatus === 'created') {\n void join();\n }\n }, [conversationStatus, autoJoin]);\n\n useEffect(() => {\n if (!joinedAt || conversation.data?.limit === undefined) {\n return;\n }\n\n timer.restart(new Date(joinedAt.getTime() + conversation.data!.limit!));\n }, [joinedAt, conversation.data?.limit]);\n\n async function join() {\n invariant(userConnectionState === 'idle', 'Already joined');\n invariant(conversation.data, 'Conversation is not ready');\n const url = new URL(conversation?.data?.url || '');\n const accessToken = url.searchParams.get('token');\n try {\n setUserConnectionState('joining');\n await room?.connect(conversation.data.url, accessToken!, {});\n\n // sometimes the agent is already joined before the user joins the conversation\n const remoteParticipant = findJoinedAgentParticipant(room, type);\n if (remoteParticipant && agentConnectionState !== 'joined') {\n handleAgentJoin(remoteParticipant);\n }\n\n enableMediaDevices();\n } catch (error) {\n console.error('Failed to join', error);\n setUserConnectionState('join-error');\n }\n }\n\n function enableMediaDevices() {\n if (startWithMicrophone) {\n setMicrophone({ ...microphone, enabled: true });\n }\n if (startWithCamera && type === 'video') {\n setCamera({ ...camera, enabled: true });\n }\n }\n\n function handleTranscriptionReceivedEvent(\n segments: TranscriptionSegment[],\n participant?: Participant,\n ) {\n const transcriptions: ConversationTranscription[] = segments.map((s) => ({\n id: s.id,\n message: s.text,\n source: participant?.kind === ParticipantKind.AGENT ? 'agent' : 'user',\n }));\n\n setTranscriptions((old) => mergeTranscriptions(transcriptions, old));\n }\n\n function handleTurnDetectionEvent(data: TurnDetectionData) {\n const conversationId = conversationRef.current?.id;\n const { participantKind, state: eventState } = data;\n switch (participantKind) {\n case 'STANDARD':\n if (eventState === 'listening') {\n userStopRef.current = {\n ts: performance.now(),\n turnDetectionStrategy: data.turnDetectionStrategy,\n sequence: data.sequence,\n speechId: data.speechId,\n };\n } else {\n userStopRef.current = null;\n }\n emitEvent(\n eventState === 'speaking' ? 'userSpeakStart' : 'userSpeakStop',\n { conversationId: conversationId! },\n );\n setUserActivityState(eventState);\n break;\n case 'AGENT':\n if (eventState === 'speaking' && userStopRef.current) {\n const latencyMs = performance.now() - userStopRef.current.ts;\n emitEvent('responseLatency', {\n conversationId: conversationId!,\n latencyMs,\n turnDetectionStrategy: userStopRef.current.turnDetectionStrategy,\n sequence: userStopRef.current.sequence,\n speechId: data.speechId ?? userStopRef.current.speechId,\n });\n userStopRef.current = null;\n }\n emitEvent(\n eventState === 'speaking' ? 'agentSpeakStart' : 'agentSpeakStop',\n { conversationId: conversationId! },\n );\n setAgentActivityState(eventState);\n break;\n }\n }\n\n function handleInactivityWarningEvent(data: InactivityWarningData) {\n emitEvent('inactivityWarning', {\n conversationId: conversationRef.current?.id!,\n gracePeriodSec: data.grace_period_sec,\n });\n }\n\n async function handleToolCallsEvent(data: ToolCallsData) {\n await toolRuntimeRef.current.resolveIncomingToolCalls(data, toolAdapter);\n }\n\n const dataChannelHandlers: {\n guard: (data: unknown) => boolean;\n handle: (data: unknown) => void | Promise<void>;\n }[] = [\n {\n guard: checkIsToolCallsData,\n handle: handleToolCallsEvent as (data: unknown) => Promise<void>,\n },\n {\n guard: checkIsTurnDetectionData,\n handle: handleTurnDetectionEvent as (data: unknown) => void,\n },\n {\n guard: checkIsInactivityWarningData,\n handle: handleInactivityWarningEvent as (data: unknown) => void,\n },\n // ... other data channel handlers\n ];\n\n function handleDataReceivedEvent(payload: Uint8Array) {\n const decoded = decodeDataPayload(payload);\n if (decoded === null) {\n return;\n }\n for (const { guard, handle } of dataChannelHandlers) {\n if (guard(decoded)) {\n void Promise.resolve(handle(decoded)).catch((error) => {\n console.error('Failed to handle data channel payload', error);\n });\n return;\n }\n }\n }\n\n function handleConnectedEvent() {\n setUserConnectionState('joined');\n setAgentConnectionState('joining');\n emitEvent('callStarted', {\n conversationId: conversationRef.current?.id!,\n });\n }\n\n async function handleEncryptionErrorEvent(error: Error) {\n console.error('Encryption error', error);\n setConversationStatus('error');\n }\n\n function handleDisconnectedEvent(reason?: DisconnectReason) {\n userStopRef.current = null;\n setAgentActivityState('idle');\n setAgentConnectionState('idle');\n setUserActivityState('idle');\n setUserConnectionState('idle');\n\n switch (reason) {\n case DisconnectReason.CLIENT_INITIATED:\n break;\n case DisconnectReason.ROOM_CLOSED:\n setConversationStatus('destroyed');\n break;\n default:\n console.error('Conversation disconnected with reason', reason);\n setConversationStatus('error');\n break;\n }\n }\n\n function handleParticipantConnectedEvent(participant: RemoteParticipant) {\n if (shouldHandleParticipantConnected(participant, type)) {\n handleAgentJoin(participant);\n }\n }\n\n function handleAgentJoin(participant: RemoteParticipant) {\n setAgentConnectionState('joined');\n emitEvent('agentJoined', {\n conversationId: conversationRef.current?.id!,\n participant,\n });\n }\n\n function handleParticipantDisconnectedEvent(participant: RemoteParticipant) {\n setAgentConnectionState('left');\n emitEvent('agentLeft', {\n conversationId: conversationRef.current?.id!,\n participant,\n });\n }\n\n async function leave() {\n if (userConnectionState !== 'joined' && userConnectionState !== 'joining') {\n return;\n }\n\n try {\n setUserConnectionState('leaving');\n await room?.disconnect(true);\n setConversationStatus('destroyed');\n setJoinedAt(undefined);\n emitEvent('callEnded', {\n conversationId: conversationRef.current?.id!,\n });\n } catch (error) {\n console.error('Failed to leave', error);\n setConversationStatus('error');\n }\n }\n\n async function handleExpire() {\n emitEvent('timeExceeded', {\n conversationId: conversationRef.current?.id!,\n limit: conversationRef.current?.limit!,\n });\n await leave();\n setConversationStatus('exceeded');\n }\n\n async function interrupt() {\n emitEvent('interrupt', {\n conversationId: conversationRef.current?.id!,\n });\n\n await publishConversationDataMessage(room, {}, 'interrupt');\n }\n\n async function dismissInactivity() {\n await publishConversationDataMessage(\n room,\n { type: 'inactivity_dismiss' },\n 'inactivity_dismiss',\n );\n }\n\n async function send(message: string, attachments: Attachment[] = []) {\n await room?.localParticipant.sendText(message, {\n topic: 'lk.chat',\n attributes: {\n attachments: safeStringify(attachments),\n },\n });\n emitEvent('userSendMessage', {\n conversationId: conversationRef.current?.id!,\n message,\n });\n }\n\n function registerRoomEvents() {\n room\n .on('connected', handleConnectedEvent)\n .on('encryptionError', handleEncryptionErrorEvent)\n .on('disconnected', handleDisconnectedEvent)\n .on('transcriptionReceived', handleTranscriptionReceivedEvent)\n .on('participantConnected', handleParticipantConnectedEvent)\n .on('participantDisconnected', handleParticipantDisconnectedEvent)\n .on('dataReceived', handleDataReceivedEvent);\n }\n\n function unregisterRoomEvents() {\n room.off('connected', handleConnectedEvent);\n room.off('encryptionError', handleEncryptionErrorEvent);\n room.off('disconnected', handleDisconnectedEvent);\n room.off('transcriptionReceived', handleTranscriptionReceivedEvent);\n room.off('participantConnected', handleParticipantConnectedEvent);\n room.off('participantDisconnected', handleParticipantDisconnectedEvent);\n room.off('dataReceived', handleDataReceivedEvent);\n }\n\n return {\n status: conversationStatus,\n conversation: conversation.data,\n join,\n send,\n interrupt,\n dismissInactivity,\n leave,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.checkIsInactivityWarningData = checkIsInactivityWarningData;
5
+ exports.checkIsToolCallsData = checkIsToolCallsData;
6
+ exports.checkIsTurnDetectionData = checkIsTurnDetectionData;
7
+ exports.decodeDataPayload = decodeDataPayload;
8
+ function decodeDataPayload(data) {
9
+ try {
10
+ return JSON.parse(new TextDecoder().decode(data));
11
+ } catch (error) {
12
+ console.error('Failed to decode data received payload', error);
13
+ return null;
14
+ }
15
+ }
16
+ function checkIsTurnDetectionData(data) {
17
+ return typeof data === 'object' && data !== null && 'participantKind' in data && 'state' in data;
18
+ }
19
+ function checkIsInactivityWarningData(data) {
20
+ return typeof data === 'object' && data !== null && 'type' in data && data.type === 'inactivity_warning' && 'grace_period_sec' in data && typeof data.grace_period_sec === 'number';
21
+ }
22
+ function checkIsToolCallsData(data) {
23
+ return typeof data === 'object' && data !== null && 'type' in data && data.type === 'tool_calls' && 'requestId' in data && typeof data.requestId === 'string' && 'functionCalls' in data && Array.isArray(data.functionCalls);
24
+ }
25
+ //# sourceMappingURL=dataChannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["decodeDataPayload","data","JSON","parse","TextDecoder","decode","error","console","checkIsTurnDetectionData","checkIsInactivityWarningData","type","grace_period_sec","checkIsToolCallsData","requestId","Array","isArray","functionCalls"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/dataChannel.ts"],"sourcesContent":["import type {\n InactivityWarningData,\n ToolCallsData,\n TurnDetectionData,\n} from '../types';\n\nexport function decodeDataPayload(data: Uint8Array): unknown {\n try {\n return JSON.parse(new TextDecoder().decode(data));\n } catch (error) {\n console.error('Failed to decode data received payload', error);\n return null;\n }\n}\n\nexport function checkIsTurnDetectionData(\n data: unknown,\n): data is TurnDetectionData {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'participantKind' in data &&\n 'state' in data\n );\n}\n\nexport function checkIsInactivityWarningData(\n data: unknown,\n): data is InactivityWarningData {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'type' in data &&\n (data as Record<string, unknown>).type === 'inactivity_warning' &&\n 'grace_period_sec' in data &&\n typeof (data as Record<string, unknown>).grace_period_sec === 'number'\n );\n}\n\nexport function checkIsToolCallsData(data: unknown): data is ToolCallsData {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'type' in data &&\n (data as Record<string, unknown>).type === 'tool_calls' &&\n 'requestId' in data &&\n typeof (data as Record<string, unknown>).requestId === 'string' &&\n 'functionCalls' in data &&\n Array.isArray((data as Record<string, unknown>).functionCalls)\n );\n}\n"],"mappings":";;;;;;;AAMO,SAASA,iBAAiBA,CAACC,IAAgB,EAAW;EAC3D,IAAI;IACF,OAAOC,IAAI,CAACC,KAAK,CAAC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACJ,IAAI,CAAC,CAAC;EACnD,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,wCAAwC,EAAEA,KAAK,CAAC;IAC9D,OAAO,IAAI;EACb;AACF;AAEO,SAASE,wBAAwBA,CACtCP,IAAa,EACc;EAC3B,OACE,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,KAAK,IAAI,IACb,iBAAiB,IAAIA,IAAI,IACzB,OAAO,IAAIA,IAAI;AAEnB;AAEO,SAASQ,4BAA4BA,CAC1CR,IAAa,EACkB;EAC/B,OACE,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,KAAK,IAAI,IACb,MAAM,IAAIA,IAAI,IACbA,IAAI,CAA6BS,IAAI,KAAK,oBAAoB,IAC/D,kBAAkB,IAAIT,IAAI,IAC1B,OAAQA,IAAI,CAA6BU,gBAAgB,KAAK,QAAQ;AAE1E;AAEO,SAASC,oBAAoBA,CAACX,IAAa,EAAyB;EACzE,OACE,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,KAAK,IAAI,IACb,MAAM,IAAIA,IAAI,IACbA,IAAI,CAA6BS,IAAI,KAAK,YAAY,IACvD,WAAW,IAAIT,IAAI,IACnB,OAAQA,IAAI,CAA6BY,SAAS,KAAK,QAAQ,IAC/D,eAAe,IAAIZ,IAAI,IACvBa,KAAK,CAACC,OAAO,CAAEd,IAAI,CAA6Be,aAAa,CAAC;AAElE","ignoreList":[]}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _dataChannel = require("./dataChannel");
5
+ Object.keys(_dataChannel).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _dataChannel[key]) return;
8
+ exports[key] = _dataChannel[key];
9
+ });
10
+ var _messaging = require("./messaging");
11
+ Object.keys(_messaging).forEach(function (key) {
12
+ if (key === "default" || key === "__esModule") return;
13
+ if (key in exports && exports[key] === _messaging[key]) return;
14
+ exports[key] = _messaging[key];
15
+ });
16
+ var _participants = require("./participants");
17
+ Object.keys(_participants).forEach(function (key) {
18
+ if (key === "default" || key === "__esModule") return;
19
+ if (key in exports && exports[key] === _participants[key]) return;
20
+ exports[key] = _participants[key];
21
+ });
22
+ var _serialization = require("./serialization");
23
+ Object.keys(_serialization).forEach(function (key) {
24
+ if (key === "default" || key === "__esModule") return;
25
+ if (key in exports && exports[key] === _serialization[key]) return;
26
+ exports[key] = _serialization[key];
27
+ });
28
+ var _toolAdapter = require("./toolAdapter");
29
+ Object.keys(_toolAdapter).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _toolAdapter[key]) return;
32
+ exports[key] = _toolAdapter[key];
33
+ });
34
+ var _transcriptions = require("./transcriptions");
35
+ Object.keys(_transcriptions).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _transcriptions[key]) return;
38
+ exports[key] = _transcriptions[key];
39
+ });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_dataChannel","require","Object","keys","forEach","key","exports","_messaging","_participants","_serialization","_toolAdapter","_transcriptions"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/index.ts"],"sourcesContent":["export * from './dataChannel';\nexport * from './messaging';\nexport * from './participants';\nexport * from './serialization';\nexport * from './toolAdapter';\nexport * from './transcriptions';\n"],"mappings":";;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,YAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,YAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,YAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,UAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,UAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,UAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,UAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,aAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,aAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,aAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,aAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,cAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,cAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,cAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,cAAA,CAAAJ,GAAA;AAAA;AACA,IAAAK,YAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,YAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,YAAA,CAAAL,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAK,YAAA,CAAAL,GAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAM,eAAA,CAAAN,GAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.publishConversationDataMessage = publishConversationDataMessage;
5
+ async function publishConversationDataMessage(room, payload, topic) {
6
+ await (room == null ? void 0 : room.localParticipant.publishData(new TextEncoder().encode(JSON.stringify(payload)), {
7
+ reliable: true,
8
+ topic
9
+ }));
10
+ }
11
+ //# sourceMappingURL=messaging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["publishConversationDataMessage","room","payload","topic","localParticipant","publishData","TextEncoder","encode","JSON","stringify","reliable"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/messaging.ts"],"sourcesContent":["import type { Room } from 'livekit-client';\n\nexport async function publishConversationDataMessage(\n room: Room | undefined,\n payload: unknown,\n topic: string,\n) {\n await room?.localParticipant.publishData(\n new TextEncoder().encode(JSON.stringify(payload)),\n {\n reliable: true,\n topic,\n },\n );\n}\n"],"mappings":";;;;AAEO,eAAeA,8BAA8BA,CAClDC,IAAsB,EACtBC,OAAgB,EAChBC,KAAa,EACb;EACA,OAAMF,IAAI,oBAAJA,IAAI,CAAEG,gBAAgB,CAACC,WAAW,CACtC,IAAIC,WAAW,CAAC,CAAC,CAACC,MAAM,CAACC,IAAI,CAACC,SAAS,CAACP,OAAO,CAAC,CAAC,EACjD;IACEQ,QAAQ,EAAE,IAAI;IACdP;EACF,CACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.EXPECTED_VIDEO_PARTICIPANTS = void 0;
5
+ exports.findJoinedAgentParticipant = findJoinedAgentParticipant;
6
+ exports.shouldHandleParticipantConnected = shouldHandleParticipantConnected;
7
+ const EXPECTED_VIDEO_PARTICIPANTS = exports.EXPECTED_VIDEO_PARTICIPANTS = ['tavus-avatar-agent', 'Avatar Runner'];
8
+ function findJoinedAgentParticipant(room, type) {
9
+ switch (type) {
10
+ case 'video':
11
+ {
12
+ for (const identity of EXPECTED_VIDEO_PARTICIPANTS) {
13
+ const participant = room.remoteParticipants.get(identity);
14
+ if (participant) {
15
+ return participant;
16
+ }
17
+ }
18
+ return undefined;
19
+ }
20
+ case 'audio':
21
+ return room.remoteParticipants.values().next().value;
22
+ }
23
+ return undefined;
24
+ }
25
+ function shouldHandleParticipantConnected(participant, type) {
26
+ switch (type) {
27
+ case 'video':
28
+ return EXPECTED_VIDEO_PARTICIPANTS.includes(participant.name ?? '');
29
+ case 'audio':
30
+ return true;
31
+ }
32
+ return false;
33
+ }
34
+ //# sourceMappingURL=participants.js.map