@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,377 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import { DisconnectReason, setLogLevel, ParticipantKind, LogLevel } from 'livekit-client';
3
+ import invariant from 'invariant';
4
+ import { useTimer } from 'react-timer-hook';
5
+ import { useLatest, useUpdateEffect } from 'react-use';
6
+ import { useEnsureRoom, useMediaDeviceSelect } from '@livekit/components-react';
7
+ import { useAtom, useAtomValue, useSetAtom } from 'jotai';
8
+ import { state } from '../../../conversation';
9
+ import { useCreateConversation } from '../../useCreateConversation';
10
+ import { useEmitConversationEvent } from '../../useConversationEvents/useEmitConversationEvent';
11
+ import { useToolCallingRuntime } from '../../useTools/runtime/useToolCallingRuntime';
12
+ import { checkIsTurnDetectionData, checkIsInactivityWarningData, checkIsToolCallsData, createLivekitToolAdapter, decodeDataPayload, findJoinedAgentParticipant, mergeTranscriptions, publishConversationDataMessage, safeStringify, shouldHandleParticipantConnected } from './utils';
13
+ export function useConversation(_ref) {
14
+ var _conversation$data2;
15
+ let _ref$autoJoin = _ref.autoJoin,
16
+ autoJoin = _ref$autoJoin === void 0 ? true : _ref$autoJoin,
17
+ type = _ref.type,
18
+ config = _ref.config,
19
+ _ref$startWithMicroph = _ref.startWithMicrophone,
20
+ startWithMicrophone = _ref$startWithMicroph === void 0 ? false : _ref$startWithMicroph,
21
+ _ref$startWithCamera = _ref.startWithCamera,
22
+ startWithCamera = _ref$startWithCamera === void 0 ? false : _ref$startWithCamera;
23
+ setLogLevel(LogLevel.silent);
24
+ const conversation = useCreateConversation({
25
+ type,
26
+ config
27
+ });
28
+ const room = useEnsureRoom();
29
+ const speaker = useAtomValue(state.speaker);
30
+ const _useAtom = useAtom(state.microphone),
31
+ microphone = _useAtom[0],
32
+ setMicrophone = _useAtom[1];
33
+ const _useAtom2 = useAtom(state.camera),
34
+ camera = _useAtom2[0],
35
+ setCamera = _useAtom2[1];
36
+ const toolRuntime = useToolCallingRuntime();
37
+ const toolAdapter = createLivekitToolAdapter(room);
38
+
39
+ // for use in register/unregister room events
40
+ const conversationRef = useLatest(conversation.data);
41
+ const toolRuntimeRef = useLatest(toolRuntime);
42
+ const _useAtom3 = useAtom(state.conversationStatus),
43
+ conversationStatus = _useAtom3[0],
44
+ setConversationStatus = _useAtom3[1];
45
+ const _useAtom4 = useAtom(state.userConnectionState),
46
+ userConnectionState = _useAtom4[0],
47
+ setUserConnectionState = _useAtom4[1];
48
+ const _useAtom5 = useAtom(state.joinedAt),
49
+ joinedAt = _useAtom5[0],
50
+ setJoinedAt = _useAtom5[1];
51
+ const _useMediaDeviceSelect = useMediaDeviceSelect({
52
+ kind: 'audioinput'
53
+ }),
54
+ setMicrophoneDeviceId = _useMediaDeviceSelect.setActiveMediaDevice;
55
+ const _useMediaDeviceSelect2 = useMediaDeviceSelect({
56
+ kind: 'audiooutput'
57
+ }),
58
+ setSpeakerDeviceId = _useMediaDeviceSelect2.setActiveMediaDevice;
59
+ const _useMediaDeviceSelect3 = useMediaDeviceSelect({
60
+ kind: 'videoinput',
61
+ requestPermissions: camera.enabled
62
+ }),
63
+ setCameraDeviceId = _useMediaDeviceSelect3.setActiveMediaDevice;
64
+ const setTranscriptions = useSetAtom(state.transcriptions);
65
+ const _useAtom6 = useAtom(state.agentConnectionState),
66
+ agentConnectionState = _useAtom6[0],
67
+ setAgentConnectionState = _useAtom6[1];
68
+ const setAgentActivityState = useSetAtom(state.agentActivityState);
69
+ const setUserActivityState = useSetAtom(state.userActivityState);
70
+ const emitEvent = useEmitConversationEvent();
71
+ const userStopRef = useRef(null);
72
+ const timer = useTimer({
73
+ autoStart: false,
74
+ onExpire: handleExpire,
75
+ expiryTimestamp: new Date()
76
+ });
77
+ useEffect(() => {
78
+ if (!room) {
79
+ return;
80
+ }
81
+ registerRoomEvents();
82
+ return () => {
83
+ unregisterRoomEvents();
84
+ };
85
+ }, [room]);
86
+ useUpdateEffect(() => {
87
+ setMicrophoneDeviceId(microphone.deviceId);
88
+ }, [microphone.deviceId]);
89
+ useUpdateEffect(() => {
90
+ setSpeakerDeviceId(speaker.deviceId);
91
+ }, [speaker.deviceId]);
92
+ useUpdateEffect(() => {
93
+ setCameraDeviceId(camera.deviceId);
94
+ }, [camera.deviceId]);
95
+ useUpdateEffect(() => {
96
+ if (agentConnectionState !== 'joined') {
97
+ return;
98
+ }
99
+ room.localParticipant.setMicrophoneEnabled(microphone.enabled);
100
+ }, [microphone.enabled, agentConnectionState]);
101
+ useUpdateEffect(() => {
102
+ if (agentConnectionState !== 'joined') {
103
+ return;
104
+ }
105
+ room.localParticipant.setCameraEnabled(camera.enabled, {
106
+ resolution: {
107
+ width: 1920,
108
+ height: 1080
109
+ }
110
+ });
111
+ }, [camera.enabled, agentConnectionState]);
112
+ useEffect(() => {
113
+ if (!autoJoin) {
114
+ return;
115
+ }
116
+ if (conversationStatus === 'created') {
117
+ void join();
118
+ }
119
+ }, [conversationStatus, autoJoin]);
120
+ useEffect(() => {
121
+ var _conversation$data;
122
+ if (!joinedAt || ((_conversation$data = conversation.data) == null ? void 0 : _conversation$data.limit) === undefined) {
123
+ return;
124
+ }
125
+ timer.restart(new Date(joinedAt.getTime() + conversation.data.limit));
126
+ }, [joinedAt, (_conversation$data2 = conversation.data) == null ? void 0 : _conversation$data2.limit]);
127
+ async function join() {
128
+ var _conversation$data3;
129
+ invariant(userConnectionState === 'idle', 'Already joined');
130
+ invariant(conversation.data, 'Conversation is not ready');
131
+ const url = new URL((conversation == null || (_conversation$data3 = conversation.data) == null ? void 0 : _conversation$data3.url) || '');
132
+ const accessToken = url.searchParams.get('token');
133
+ try {
134
+ setUserConnectionState('joining');
135
+ await (room == null ? void 0 : room.connect(conversation.data.url, accessToken, {}));
136
+
137
+ // sometimes the agent is already joined before the user joins the conversation
138
+ const remoteParticipant = findJoinedAgentParticipant(room, type);
139
+ if (remoteParticipant && agentConnectionState !== 'joined') {
140
+ handleAgentJoin(remoteParticipant);
141
+ }
142
+ enableMediaDevices();
143
+ } catch (error) {
144
+ console.error('Failed to join', error);
145
+ setUserConnectionState('join-error');
146
+ }
147
+ }
148
+ function enableMediaDevices() {
149
+ if (startWithMicrophone) {
150
+ setMicrophone({
151
+ ...microphone,
152
+ enabled: true
153
+ });
154
+ }
155
+ if (startWithCamera && type === 'video') {
156
+ setCamera({
157
+ ...camera,
158
+ enabled: true
159
+ });
160
+ }
161
+ }
162
+ function handleTranscriptionReceivedEvent(segments, participant) {
163
+ const transcriptions = segments.map(s => ({
164
+ id: s.id,
165
+ message: s.text,
166
+ source: (participant == null ? void 0 : participant.kind) === ParticipantKind.AGENT ? 'agent' : 'user'
167
+ }));
168
+ setTranscriptions(old => mergeTranscriptions(transcriptions, old));
169
+ }
170
+ function handleTurnDetectionEvent(data) {
171
+ var _conversationRef$curr;
172
+ const conversationId = (_conversationRef$curr = conversationRef.current) == null ? void 0 : _conversationRef$curr.id;
173
+ const participantKind = data.participantKind,
174
+ eventState = data.state;
175
+ switch (participantKind) {
176
+ case 'STANDARD':
177
+ if (eventState === 'listening') {
178
+ userStopRef.current = {
179
+ ts: performance.now(),
180
+ turnDetectionStrategy: data.turnDetectionStrategy,
181
+ sequence: data.sequence,
182
+ speechId: data.speechId
183
+ };
184
+ } else {
185
+ userStopRef.current = null;
186
+ }
187
+ emitEvent(eventState === 'speaking' ? 'userSpeakStart' : 'userSpeakStop', {
188
+ conversationId: conversationId
189
+ });
190
+ setUserActivityState(eventState);
191
+ break;
192
+ case 'AGENT':
193
+ if (eventState === 'speaking' && userStopRef.current) {
194
+ const latencyMs = performance.now() - userStopRef.current.ts;
195
+ emitEvent('responseLatency', {
196
+ conversationId: conversationId,
197
+ latencyMs,
198
+ turnDetectionStrategy: userStopRef.current.turnDetectionStrategy,
199
+ sequence: userStopRef.current.sequence,
200
+ speechId: data.speechId ?? userStopRef.current.speechId
201
+ });
202
+ userStopRef.current = null;
203
+ }
204
+ emitEvent(eventState === 'speaking' ? 'agentSpeakStart' : 'agentSpeakStop', {
205
+ conversationId: conversationId
206
+ });
207
+ setAgentActivityState(eventState);
208
+ break;
209
+ }
210
+ }
211
+ function handleInactivityWarningEvent(data) {
212
+ var _conversationRef$curr2;
213
+ emitEvent('inactivityWarning', {
214
+ conversationId: (_conversationRef$curr2 = conversationRef.current) == null ? void 0 : _conversationRef$curr2.id,
215
+ gracePeriodSec: data.grace_period_sec
216
+ });
217
+ }
218
+ async function handleToolCallsEvent(data) {
219
+ await toolRuntimeRef.current.resolveIncomingToolCalls(data, toolAdapter);
220
+ }
221
+ const dataChannelHandlers = [{
222
+ guard: checkIsToolCallsData,
223
+ handle: handleToolCallsEvent
224
+ }, {
225
+ guard: checkIsTurnDetectionData,
226
+ handle: handleTurnDetectionEvent
227
+ }, {
228
+ guard: checkIsInactivityWarningData,
229
+ handle: handleInactivityWarningEvent
230
+ }
231
+ // ... other data channel handlers
232
+ ];
233
+ function handleDataReceivedEvent(payload) {
234
+ const decoded = decodeDataPayload(payload);
235
+ if (decoded === null) {
236
+ return;
237
+ }
238
+ for (const _ref2 of dataChannelHandlers) {
239
+ const guard = _ref2.guard;
240
+ const handle = _ref2.handle;
241
+ if (guard(decoded)) {
242
+ void Promise.resolve(handle(decoded)).catch(error => {
243
+ console.error('Failed to handle data channel payload', error);
244
+ });
245
+ return;
246
+ }
247
+ }
248
+ }
249
+ function handleConnectedEvent() {
250
+ var _conversationRef$curr3;
251
+ setUserConnectionState('joined');
252
+ setAgentConnectionState('joining');
253
+ emitEvent('callStarted', {
254
+ conversationId: (_conversationRef$curr3 = conversationRef.current) == null ? void 0 : _conversationRef$curr3.id
255
+ });
256
+ }
257
+ async function handleEncryptionErrorEvent(error) {
258
+ console.error('Encryption error', error);
259
+ setConversationStatus('error');
260
+ }
261
+ function handleDisconnectedEvent(reason) {
262
+ userStopRef.current = null;
263
+ setAgentActivityState('idle');
264
+ setAgentConnectionState('idle');
265
+ setUserActivityState('idle');
266
+ setUserConnectionState('idle');
267
+ switch (reason) {
268
+ case DisconnectReason.CLIENT_INITIATED:
269
+ break;
270
+ case DisconnectReason.ROOM_CLOSED:
271
+ setConversationStatus('destroyed');
272
+ break;
273
+ default:
274
+ console.error('Conversation disconnected with reason', reason);
275
+ setConversationStatus('error');
276
+ break;
277
+ }
278
+ }
279
+ function handleParticipantConnectedEvent(participant) {
280
+ if (shouldHandleParticipantConnected(participant, type)) {
281
+ handleAgentJoin(participant);
282
+ }
283
+ }
284
+ function handleAgentJoin(participant) {
285
+ var _conversationRef$curr4;
286
+ setAgentConnectionState('joined');
287
+ emitEvent('agentJoined', {
288
+ conversationId: (_conversationRef$curr4 = conversationRef.current) == null ? void 0 : _conversationRef$curr4.id,
289
+ participant
290
+ });
291
+ }
292
+ function handleParticipantDisconnectedEvent(participant) {
293
+ var _conversationRef$curr5;
294
+ setAgentConnectionState('left');
295
+ emitEvent('agentLeft', {
296
+ conversationId: (_conversationRef$curr5 = conversationRef.current) == null ? void 0 : _conversationRef$curr5.id,
297
+ participant
298
+ });
299
+ }
300
+ async function leave() {
301
+ if (userConnectionState !== 'joined' && userConnectionState !== 'joining') {
302
+ return;
303
+ }
304
+ try {
305
+ var _conversationRef$curr6;
306
+ setUserConnectionState('leaving');
307
+ await (room == null ? void 0 : room.disconnect(true));
308
+ setConversationStatus('destroyed');
309
+ setJoinedAt(undefined);
310
+ emitEvent('callEnded', {
311
+ conversationId: (_conversationRef$curr6 = conversationRef.current) == null ? void 0 : _conversationRef$curr6.id
312
+ });
313
+ } catch (error) {
314
+ console.error('Failed to leave', error);
315
+ setConversationStatus('error');
316
+ }
317
+ }
318
+ async function handleExpire() {
319
+ var _conversationRef$curr7, _conversationRef$curr8;
320
+ emitEvent('timeExceeded', {
321
+ conversationId: (_conversationRef$curr7 = conversationRef.current) == null ? void 0 : _conversationRef$curr7.id,
322
+ limit: (_conversationRef$curr8 = conversationRef.current) == null ? void 0 : _conversationRef$curr8.limit
323
+ });
324
+ await leave();
325
+ setConversationStatus('exceeded');
326
+ }
327
+ async function interrupt() {
328
+ var _conversationRef$curr9;
329
+ emitEvent('interrupt', {
330
+ conversationId: (_conversationRef$curr9 = conversationRef.current) == null ? void 0 : _conversationRef$curr9.id
331
+ });
332
+ await publishConversationDataMessage(room, {}, 'interrupt');
333
+ }
334
+ async function dismissInactivity() {
335
+ await publishConversationDataMessage(room, {
336
+ type: 'inactivity_dismiss'
337
+ }, 'inactivity_dismiss');
338
+ }
339
+ async function send(message, attachments) {
340
+ var _conversationRef$curr0;
341
+ if (attachments === void 0) {
342
+ attachments = [];
343
+ }
344
+ await (room == null ? void 0 : room.localParticipant.sendText(message, {
345
+ topic: 'lk.chat',
346
+ attributes: {
347
+ attachments: safeStringify(attachments)
348
+ }
349
+ }));
350
+ emitEvent('userSendMessage', {
351
+ conversationId: (_conversationRef$curr0 = conversationRef.current) == null ? void 0 : _conversationRef$curr0.id,
352
+ message
353
+ });
354
+ }
355
+ function registerRoomEvents() {
356
+ room.on('connected', handleConnectedEvent).on('encryptionError', handleEncryptionErrorEvent).on('disconnected', handleDisconnectedEvent).on('transcriptionReceived', handleTranscriptionReceivedEvent).on('participantConnected', handleParticipantConnectedEvent).on('participantDisconnected', handleParticipantDisconnectedEvent).on('dataReceived', handleDataReceivedEvent);
357
+ }
358
+ function unregisterRoomEvents() {
359
+ room.off('connected', handleConnectedEvent);
360
+ room.off('encryptionError', handleEncryptionErrorEvent);
361
+ room.off('disconnected', handleDisconnectedEvent);
362
+ room.off('transcriptionReceived', handleTranscriptionReceivedEvent);
363
+ room.off('participantConnected', handleParticipantConnectedEvent);
364
+ room.off('participantDisconnected', handleParticipantDisconnectedEvent);
365
+ room.off('dataReceived', handleDataReceivedEvent);
366
+ }
367
+ return {
368
+ status: conversationStatus,
369
+ conversation: conversation.data,
370
+ join,
371
+ send,
372
+ interrupt,
373
+ dismissInactivity,
374
+ leave
375
+ };
376
+ }
377
+ //# sourceMappingURL=useConversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","DisconnectReason","setLogLevel","ParticipantKind","LogLevel","invariant","useTimer","useLatest","useUpdateEffect","useEnsureRoom","useMediaDeviceSelect","useAtom","useAtomValue","useSetAtom","state","useCreateConversation","useEmitConversationEvent","useToolCallingRuntime","checkIsTurnDetectionData","checkIsInactivityWarningData","checkIsToolCallsData","createLivekitToolAdapter","decodeDataPayload","findJoinedAgentParticipant","mergeTranscriptions","publishConversationDataMessage","safeStringify","shouldHandleParticipantConnected","useConversation","_ref","_conversation$data2","_ref$autoJoin","autoJoin","type","config","_ref$startWithMicroph","startWithMicrophone","_ref$startWithCamera","startWithCamera","silent","conversation","room","speaker","_useAtom","microphone","setMicrophone","_useAtom2","camera","setCamera","toolRuntime","toolAdapter","conversationRef","data","toolRuntimeRef","_useAtom3","conversationStatus","setConversationStatus","_useAtom4","userConnectionState","setUserConnectionState","_useAtom5","joinedAt","setJoinedAt","_useMediaDeviceSelect","kind","setMicrophoneDeviceId","setActiveMediaDevice","_useMediaDeviceSelect2","setSpeakerDeviceId","_useMediaDeviceSelect3","requestPermissions","enabled","setCameraDeviceId","setTranscriptions","transcriptions","_useAtom6","agentConnectionState","setAgentConnectionState","setAgentActivityState","agentActivityState","setUserActivityState","userActivityState","emitEvent","userStopRef","timer","autoStart","onExpire","handleExpire","expiryTimestamp","Date","registerRoomEvents","unregisterRoomEvents","deviceId","localParticipant","setMicrophoneEnabled","setCameraEnabled","resolution","width","height","join","_conversation$data","limit","undefined","restart","getTime","_conversation$data3","url","URL","accessToken","searchParams","get","connect","remoteParticipant","handleAgentJoin","enableMediaDevices","error","console","handleTranscriptionReceivedEvent","segments","participant","map","s","id","message","text","source","AGENT","old","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","handle","handleDataReceivedEvent","payload","decoded","_ref2","Promise","resolve","catch","handleConnectedEvent","_conversationRef$curr3","handleEncryptionErrorEvent","handleDisconnectedEvent","reason","CLIENT_INITIATED","ROOM_CLOSED","handleParticipantConnectedEvent","_conversationRef$curr4","handleParticipantDisconnectedEvent","_conversationRef$curr5","leave","_conversationRef$curr6","disconnect","_conversationRef$curr7","_conversationRef$curr8","interrupt","_conversationRef$curr9","dismissInactivity","send","attachments","_conversationRef$curr0","sendText","topic","attributes","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,18 @@
1
+ export function decodeDataPayload(data) {
2
+ try {
3
+ return JSON.parse(new TextDecoder().decode(data));
4
+ } catch (error) {
5
+ console.error('Failed to decode data received payload', error);
6
+ return null;
7
+ }
8
+ }
9
+ export function checkIsTurnDetectionData(data) {
10
+ return typeof data === 'object' && data !== null && 'participantKind' in data && 'state' in data;
11
+ }
12
+ export function checkIsInactivityWarningData(data) {
13
+ return typeof data === 'object' && data !== null && 'type' in data && data.type === 'inactivity_warning' && 'grace_period_sec' in data && typeof data.grace_period_sec === 'number';
14
+ }
15
+ export function checkIsToolCallsData(data) {
16
+ 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);
17
+ }
18
+ //# 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":"AAMA,OAAO,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;AAEA,OAAO,SAASE,wBAAwBA,CACtCP,IAAa,EACc;EAC3B,OACE,OAAOA,IAAI,KAAK,QAAQ,IACxBA,IAAI,KAAK,IAAI,IACb,iBAAiB,IAAIA,IAAI,IACzB,OAAO,IAAIA,IAAI;AAEnB;AAEA,OAAO,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;AAEA,OAAO,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,7 @@
1
+ export * from './dataChannel';
2
+ export * from './messaging';
3
+ export * from './participants';
4
+ export * from './serialization';
5
+ export * from './toolAdapter';
6
+ export * from './transcriptions';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"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,cAAc,eAAe;AAC7B,cAAc,aAAa;AAC3B,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,eAAe;AAC7B,cAAc,kBAAkB","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ export async function publishConversationDataMessage(room, payload, topic) {
2
+ await (room == null ? void 0 : room.localParticipant.publishData(new TextEncoder().encode(JSON.stringify(payload)), {
3
+ reliable: true,
4
+ topic
5
+ }));
6
+ }
7
+ //# 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":"AAEA,OAAO,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,28 @@
1
+ export const EXPECTED_VIDEO_PARTICIPANTS = ['tavus-avatar-agent', 'Avatar Runner'];
2
+ export function findJoinedAgentParticipant(room, type) {
3
+ switch (type) {
4
+ case 'video':
5
+ {
6
+ for (const identity of EXPECTED_VIDEO_PARTICIPANTS) {
7
+ const participant = room.remoteParticipants.get(identity);
8
+ if (participant) {
9
+ return participant;
10
+ }
11
+ }
12
+ return undefined;
13
+ }
14
+ case 'audio':
15
+ return room.remoteParticipants.values().next().value;
16
+ }
17
+ return undefined;
18
+ }
19
+ export function shouldHandleParticipantConnected(participant, type) {
20
+ switch (type) {
21
+ case 'video':
22
+ return EXPECTED_VIDEO_PARTICIPANTS.includes(participant.name ?? '');
23
+ case 'audio':
24
+ return true;
25
+ }
26
+ return false;
27
+ }
28
+ //# sourceMappingURL=participants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EXPECTED_VIDEO_PARTICIPANTS","findJoinedAgentParticipant","room","type","identity","participant","remoteParticipants","get","undefined","values","next","value","shouldHandleParticipantConnected","includes","name"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/participants.ts"],"sourcesContent":["import type { RemoteParticipant, Room } from 'livekit-client';\nimport type { ConversationType } from '../../../../conversation';\n\nexport const EXPECTED_VIDEO_PARTICIPANTS = [\n 'tavus-avatar-agent',\n 'Avatar Runner',\n];\n\nexport function findJoinedAgentParticipant(\n room: Room,\n type: ConversationType,\n): RemoteParticipant | undefined {\n switch (type) {\n case 'video': {\n for (const identity of EXPECTED_VIDEO_PARTICIPANTS) {\n const participant = room.remoteParticipants.get(identity);\n if (participant) {\n return participant;\n }\n }\n\n return undefined;\n }\n case 'audio':\n return room.remoteParticipants.values().next().value;\n }\n\n return undefined;\n}\n\nexport function shouldHandleParticipantConnected(\n participant: RemoteParticipant,\n type: ConversationType,\n): boolean {\n switch (type) {\n case 'video':\n return EXPECTED_VIDEO_PARTICIPANTS.includes(participant.name ?? '');\n case 'audio':\n return true;\n }\n\n return false;\n}\n"],"mappings":"AAGA,OAAO,MAAMA,2BAA2B,GAAG,CACzC,oBAAoB,EACpB,eAAe,CAChB;AAED,OAAO,SAASC,0BAA0BA,CACxCC,IAAU,EACVC,IAAsB,EACS;EAC/B,QAAQA,IAAI;IACV,KAAK,OAAO;MAAE;QACZ,KAAK,MAAMC,QAAQ,IAAIJ,2BAA2B,EAAE;UAClD,MAAMK,WAAW,GAAGH,IAAI,CAACI,kBAAkB,CAACC,GAAG,CAACH,QAAQ,CAAC;UACzD,IAAIC,WAAW,EAAE;YACf,OAAOA,WAAW;UACpB;QACF;QAEA,OAAOG,SAAS;MAClB;IACA,KAAK,OAAO;MACV,OAAON,IAAI,CAACI,kBAAkB,CAACG,MAAM,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK;EACxD;EAEA,OAAOH,SAAS;AAClB;AAEA,OAAO,SAASI,gCAAgCA,CAC9CP,WAA8B,EAC9BF,IAAsB,EACb;EACT,QAAQA,IAAI;IACV,KAAK,OAAO;MACV,OAAOH,2BAA2B,CAACa,QAAQ,CAACR,WAAW,CAACS,IAAI,IAAI,EAAE,CAAC;IACrE,KAAK,OAAO;MACV,OAAO,IAAI;EACf;EAEA,OAAO,KAAK;AACd","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ export function safeStringify(value) {
2
+ try {
3
+ return JSON.stringify(value);
4
+ } catch (error) {
5
+ console.error('Failed to stringify value', error);
6
+ return JSON.stringify([]);
7
+ }
8
+ }
9
+ //# sourceMappingURL=serialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["safeStringify","value","JSON","stringify","error","console"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/serialization.ts"],"sourcesContent":["export function safeStringify<T>(value: T): string {\n try {\n return JSON.stringify(value);\n } catch (error) {\n console.error('Failed to stringify value', error);\n return JSON.stringify([]);\n }\n}\n"],"mappings":"AAAA,OAAO,SAASA,aAAaA,CAAIC,KAAQ,EAAU;EACjD,IAAI;IACF,OAAOC,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC;EAC9B,CAAC,CAAC,OAAOG,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACjD,OAAOF,IAAI,CAACC,SAAS,CAAC,EAAE,CAAC;EAC3B;AACF","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import { publishConversationDataMessage } from './messaging';
2
+ export function createLivekitToolAdapter(room) {
3
+ return {
4
+ async sendResults(envelope) {
5
+ const payload = {
6
+ type: 'tool_results',
7
+ requestId: envelope.requestId,
8
+ functionCallResults: envelope.functionCallResults
9
+ };
10
+ await publishConversationDataMessage(room, payload, 'tool_results');
11
+ }
12
+ };
13
+ }
14
+ //# sourceMappingURL=toolAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["publishConversationDataMessage","createLivekitToolAdapter","room","sendResults","envelope","payload","type","requestId","functionCallResults"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/toolAdapter.ts"],"sourcesContent":["import type { Room } from 'livekit-client';\nimport type { ToolRuntimeAdapter } from '../../../useTools/runtime/types';\nimport type { ToolResultsData } from '../types';\n\nimport { publishConversationDataMessage } from './messaging';\n\nexport function createLivekitToolAdapter(\n room: Room | undefined,\n): ToolRuntimeAdapter {\n return {\n async sendResults(envelope) {\n const payload: ToolResultsData = {\n type: 'tool_results',\n requestId: envelope.requestId,\n functionCallResults: envelope.functionCallResults,\n };\n\n await publishConversationDataMessage(room, payload, 'tool_results');\n },\n };\n}\n"],"mappings":"AAIA,SAASA,8BAA8B,QAAQ,aAAa;AAE5D,OAAO,SAASC,wBAAwBA,CACtCC,IAAsB,EACF;EACpB,OAAO;IACL,MAAMC,WAAWA,CAACC,QAAQ,EAAE;MAC1B,MAAMC,OAAwB,GAAG;QAC/BC,IAAI,EAAE,cAAc;QACpBC,SAAS,EAAEH,QAAQ,CAACG,SAAS;QAC7BC,mBAAmB,EAAEJ,QAAQ,CAACI;MAChC,CAAC;MAED,MAAMR,8BAA8B,CAACE,IAAI,EAAEG,OAAO,EAAE,cAAc,CAAC;IACrE;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ export function mergeTranscriptions(newTranscriptions, oldTranscriptions) {
2
+ const transcriptionsMap = new Map();
3
+ oldTranscriptions.forEach(transcription => {
4
+ transcriptionsMap.set(transcription.id, transcription);
5
+ });
6
+ newTranscriptions.forEach(transcription => {
7
+ transcriptionsMap.set(transcription.id, transcription);
8
+ });
9
+ return Array.from(transcriptionsMap.values());
10
+ }
11
+ //# sourceMappingURL=transcriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mergeTranscriptions","newTranscriptions","oldTranscriptions","transcriptionsMap","Map","forEach","transcription","set","id","Array","from","values"],"sources":["../../../../../../src/hooks/useConversation/livekit/utils/transcriptions.ts"],"sourcesContent":["import type { ConversationTranscription } from '../../../../conversation';\n\nexport function mergeTranscriptions(\n newTranscriptions: ConversationTranscription[],\n oldTranscriptions: ConversationTranscription[],\n) {\n const transcriptionsMap = new Map<string, ConversationTranscription>();\n\n oldTranscriptions.forEach((transcription) => {\n transcriptionsMap.set(transcription.id, transcription);\n });\n\n newTranscriptions.forEach((transcription) => {\n transcriptionsMap.set(transcription.id, transcription);\n });\n\n return Array.from(transcriptionsMap.values());\n}\n"],"mappings":"AAEA,OAAO,SAASA,mBAAmBA,CACjCC,iBAA8C,EAC9CC,iBAA8C,EAC9C;EACA,MAAMC,iBAAiB,GAAG,IAAIC,GAAG,CAAoC,CAAC;EAEtEF,iBAAiB,CAACG,OAAO,CAAEC,aAAa,IAAK;IAC3CH,iBAAiB,CAACI,GAAG,CAACD,aAAa,CAACE,EAAE,EAAEF,aAAa,CAAC;EACxD,CAAC,CAAC;EAEFL,iBAAiB,CAACI,OAAO,CAAEC,aAAa,IAAK;IAC3CH,iBAAiB,CAACI,GAAG,CAACD,aAAa,CAACE,EAAE,EAAEF,aAAa,CAAC;EACxD,CAAC,CAAC;EAEF,OAAOG,KAAK,CAACC,IAAI,CAACP,iBAAiB,CAACQ,MAAM,CAAC,CAAC,CAAC;AAC/C","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../../src/hooks/useConversation/types.ts"],"sourcesContent":["import type { Conversation, ConversationStatus } from '../../conversation';\n\nimport type { UseCreateConversationOptions } from '../useCreateConversation';\n\nexport type UseConversationOptions = UseCreateConversationOptions & {\n autoJoin?: boolean;\n startWithMicrophone?: boolean;\n startWithCamera?: boolean;\n};\n\nexport type Attachment = {\n name: string;\n url: string;\n mimeType: string;\n fileId: string;\n};\n\nexport type UseConversationResult = {\n status: ConversationStatus;\n conversation?: Conversation;\n join(): Promise<void>;\n send(message: string, attachments?: Attachment[]): Promise<void>;\n interrupt(): Promise<void>;\n dismissInactivity(): Promise<void>;\n leave(destroy?: boolean): Promise<void>;\n};\n"],"mappings":"","ignoreList":[]}