@convai/web-sdk 0.3.1-beta.3 → 0.3.2-beta.1

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 (263) hide show
  1. package/README.md +535 -1077
  2. package/dist/core/AudioManager.d.ts.map +1 -0
  3. package/dist/core/AudioManager.js +262 -0
  4. package/dist/core/AudioManager.js.map +1 -0
  5. package/dist/core/BlendshapeQueue.d.ts +112 -0
  6. package/dist/core/BlendshapeQueue.d.ts.map +1 -0
  7. package/dist/core/BlendshapeQueue.js +172 -0
  8. package/dist/core/BlendshapeQueue.js.map +1 -0
  9. package/dist/{types/core → core}/ConvaiClient.d.ts +5 -15
  10. package/dist/core/ConvaiClient.d.ts.map +1 -0
  11. package/dist/core/ConvaiClient.js +602 -0
  12. package/dist/core/ConvaiClient.js.map +1 -0
  13. package/dist/core/EventEmitter.d.ts.map +1 -0
  14. package/dist/core/EventEmitter.js +68 -0
  15. package/dist/core/EventEmitter.js.map +1 -0
  16. package/dist/{types/core → core}/MessageHandler.d.ts +7 -0
  17. package/dist/core/MessageHandler.d.ts.map +1 -0
  18. package/dist/core/MessageHandler.js +332 -0
  19. package/dist/core/MessageHandler.js.map +1 -0
  20. package/dist/core/ScreenShareManager.d.ts.map +1 -0
  21. package/dist/core/ScreenShareManager.js +207 -0
  22. package/dist/core/ScreenShareManager.js.map +1 -0
  23. package/dist/core/VideoManager.d.ts.map +1 -0
  24. package/dist/core/VideoManager.js +205 -0
  25. package/dist/core/VideoManager.js.map +1 -0
  26. package/dist/{types/core → core}/index.d.ts +1 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +14 -1970
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/{types/core → core}/types.d.ts +9 -23
  31. package/dist/core/types.d.ts.map +1 -0
  32. package/dist/core/types.js +2 -0
  33. package/dist/core/types.js.map +1 -0
  34. package/dist/dev.d.ts +12 -0
  35. package/dist/dev.d.ts.map +1 -0
  36. package/dist/dev.js +12 -0
  37. package/dist/dev.js.map +1 -0
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +6 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/lipsync-helpers/arkitOrder61.d.ts.map +1 -0
  43. package/dist/lipsync-helpers/arkitOrder61.js +287 -0
  44. package/dist/lipsync-helpers/arkitOrder61.js.map +1 -0
  45. package/dist/lipsync-helpers/createBlendshapeQueue.d.ts +86 -0
  46. package/dist/lipsync-helpers/createBlendshapeQueue.d.ts.map +1 -0
  47. package/dist/lipsync-helpers/createBlendshapeQueue.js +126 -0
  48. package/dist/lipsync-helpers/createBlendshapeQueue.js.map +1 -0
  49. package/dist/lipsync-helpers/declarativeMapping.d.ts +93 -0
  50. package/dist/lipsync-helpers/declarativeMapping.d.ts.map +1 -0
  51. package/dist/lipsync-helpers/declarativeMapping.js +228 -0
  52. package/dist/lipsync-helpers/declarativeMapping.js.map +1 -0
  53. package/dist/lipsync-helpers/index.d.ts +15 -0
  54. package/dist/lipsync-helpers/index.d.ts.map +1 -0
  55. package/dist/lipsync-helpers/index.js +31 -1164
  56. package/dist/lipsync-helpers/index.js.map +1 -0
  57. package/dist/lipsync-helpers/mappingTypes.d.ts +64 -0
  58. package/dist/lipsync-helpers/mappingTypes.d.ts.map +1 -0
  59. package/dist/lipsync-helpers/mappingTypes.js +28 -0
  60. package/dist/lipsync-helpers/mappingTypes.js.map +1 -0
  61. package/dist/lipsync-helpers/metahumanOrder251.d.ts +115 -0
  62. package/dist/lipsync-helpers/metahumanOrder251.d.ts.map +1 -0
  63. package/dist/lipsync-helpers/metahumanOrder251.js +432 -0
  64. package/dist/lipsync-helpers/metahumanOrder251.js.map +1 -0
  65. package/dist/lipsync-helpers/presetMappers.d.ts +24 -0
  66. package/dist/lipsync-helpers/presetMappers.d.ts.map +1 -0
  67. package/dist/lipsync-helpers/presetMappers.js +38 -0
  68. package/dist/lipsync-helpers/presetMappers.js.map +1 -0
  69. package/dist/react/components/ConvaiWidget.d.ts +68 -0
  70. package/dist/react/components/ConvaiWidget.d.ts.map +1 -0
  71. package/dist/react/components/ConvaiWidget.js +505 -0
  72. package/dist/react/components/ConvaiWidget.js.map +1 -0
  73. package/dist/react/components/index.d.ts +2 -0
  74. package/dist/react/components/index.d.ts.map +1 -0
  75. package/dist/react/components/index.js +3 -0
  76. package/dist/react/components/index.js.map +1 -0
  77. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.d.ts +10 -0
  78. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.d.ts.map +1 -0
  79. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js +316 -0
  80. package/dist/react/components/rtc-widget/components/AudioSettingsPanel.js.map +1 -0
  81. package/dist/react/components/rtc-widget/components/AudioVisualizer.d.ts +36 -0
  82. package/dist/react/components/rtc-widget/components/AudioVisualizer.d.ts.map +1 -0
  83. package/dist/react/components/rtc-widget/components/AudioVisualizer.js +259 -0
  84. package/dist/react/components/rtc-widget/components/AudioVisualizer.js.map +1 -0
  85. package/dist/react/components/rtc-widget/components/ConviMessage.d.ts +10 -0
  86. package/dist/react/components/rtc-widget/components/ConviMessage.d.ts.map +1 -0
  87. package/dist/react/components/rtc-widget/components/ConviMessage.js +14 -0
  88. package/dist/react/components/rtc-widget/components/ConviMessage.js.map +1 -0
  89. package/dist/react/components/rtc-widget/components/FloatingVideo.d.ts +9 -0
  90. package/dist/react/components/rtc-widget/components/FloatingVideo.d.ts.map +1 -0
  91. package/dist/react/components/rtc-widget/components/FloatingVideo.js +122 -0
  92. package/dist/react/components/rtc-widget/components/FloatingVideo.js.map +1 -0
  93. package/dist/react/components/rtc-widget/components/MarkdownRenderer.d.ts +7 -0
  94. package/dist/react/components/rtc-widget/components/MarkdownRenderer.d.ts.map +1 -0
  95. package/dist/react/components/rtc-widget/components/MarkdownRenderer.js +68 -0
  96. package/dist/react/components/rtc-widget/components/MarkdownRenderer.js.map +1 -0
  97. package/dist/react/components/rtc-widget/components/MessageBubble.d.ts +10 -0
  98. package/dist/react/components/rtc-widget/components/MessageBubble.d.ts.map +1 -0
  99. package/dist/react/components/rtc-widget/components/MessageBubble.js +23 -0
  100. package/dist/react/components/rtc-widget/components/MessageBubble.js.map +1 -0
  101. package/dist/react/components/rtc-widget/components/MessageList.d.ts +11 -0
  102. package/dist/react/components/rtc-widget/components/MessageList.d.ts.map +1 -0
  103. package/dist/react/components/rtc-widget/components/MessageList.js +89 -0
  104. package/dist/react/components/rtc-widget/components/MessageList.js.map +1 -0
  105. package/dist/react/components/rtc-widget/components/UserMessage.d.ts +9 -0
  106. package/dist/react/components/rtc-widget/components/UserMessage.d.ts.map +1 -0
  107. package/dist/react/components/rtc-widget/components/UserMessage.js +15 -0
  108. package/dist/react/components/rtc-widget/components/UserMessage.js.map +1 -0
  109. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.d.ts +6 -0
  110. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.d.ts.map +1 -0
  111. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js +15 -0
  112. package/dist/react/components/rtc-widget/components/conviComponents/ConviButton.js.map +1 -0
  113. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.d.ts +25 -0
  114. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.d.ts.map +1 -0
  115. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js +172 -0
  116. package/dist/react/components/rtc-widget/components/conviComponents/ConviFooter.js.map +1 -0
  117. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.d.ts +17 -0
  118. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.d.ts.map +1 -0
  119. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js +66 -0
  120. package/dist/react/components/rtc-widget/components/conviComponents/ConviHeader.js.map +1 -0
  121. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.d.ts +12 -0
  122. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.d.ts.map +1 -0
  123. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js +68 -0
  124. package/dist/react/components/rtc-widget/components/conviComponents/SettingsTray.js.map +1 -0
  125. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.d.ts +12 -0
  126. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.d.ts.map +1 -0
  127. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js +255 -0
  128. package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js.map +1 -0
  129. package/dist/react/components/rtc-widget/components/conviComponents/index.d.ts +6 -0
  130. package/dist/react/components/rtc-widget/components/conviComponents/index.d.ts.map +1 -0
  131. package/dist/react/components/rtc-widget/components/conviComponents/index.js +6 -0
  132. package/dist/react/components/rtc-widget/components/conviComponents/index.js.map +1 -0
  133. package/dist/react/components/rtc-widget/components/index.d.ts +9 -0
  134. package/dist/react/components/rtc-widget/components/index.d.ts.map +1 -0
  135. package/dist/react/components/rtc-widget/components/index.js +15 -0
  136. package/dist/react/components/rtc-widget/components/index.js.map +1 -0
  137. package/dist/react/components/rtc-widget/index.d.ts +6 -0
  138. package/dist/react/components/rtc-widget/index.d.ts.map +1 -0
  139. package/dist/react/components/rtc-widget/index.js +9 -0
  140. package/dist/react/components/rtc-widget/index.js.map +1 -0
  141. package/dist/react/components/rtc-widget/styles/framerConfig.d.ts +116 -0
  142. package/dist/react/components/rtc-widget/styles/framerConfig.d.ts.map +1 -0
  143. package/dist/react/components/rtc-widget/styles/framerConfig.js +73 -0
  144. package/dist/react/components/rtc-widget/styles/framerConfig.js.map +1 -0
  145. package/dist/react/components/rtc-widget/styles/icons.d.ts +28 -0
  146. package/dist/react/components/rtc-widget/styles/icons.d.ts.map +1 -0
  147. package/dist/react/components/rtc-widget/styles/icons.js +257 -0
  148. package/dist/react/components/rtc-widget/styles/icons.js.map +1 -0
  149. package/dist/react/components/rtc-widget/styles/index.d.ts +6 -0
  150. package/dist/react/components/rtc-widget/styles/index.d.ts.map +1 -0
  151. package/dist/react/components/rtc-widget/styles/index.js +9 -0
  152. package/dist/react/components/rtc-widget/styles/index.js.map +1 -0
  153. package/dist/react/components/rtc-widget/styles/styledComponents.d.ts +90 -0
  154. package/dist/react/components/rtc-widget/styles/styledComponents.d.ts.map +1 -0
  155. package/dist/react/components/rtc-widget/styles/styledComponents.js +663 -0
  156. package/dist/react/components/rtc-widget/styles/styledComponents.js.map +1 -0
  157. package/dist/react/components/rtc-widget/styles/theme.d.ts +188 -0
  158. package/dist/react/components/rtc-widget/styles/theme.d.ts.map +1 -0
  159. package/dist/react/components/rtc-widget/styles/theme.js +290 -0
  160. package/dist/react/components/rtc-widget/styles/theme.js.map +1 -0
  161. package/dist/react/components/rtc-widget/types/index.d.ts +60 -0
  162. package/dist/react/components/rtc-widget/types/index.d.ts.map +1 -0
  163. package/dist/react/components/rtc-widget/types/index.js +2 -0
  164. package/dist/react/components/rtc-widget/types/index.js.map +1 -0
  165. package/dist/react/hooks/index.d.ts +4 -0
  166. package/dist/react/hooks/index.d.ts.map +1 -0
  167. package/dist/react/hooks/index.js +6 -0
  168. package/dist/react/hooks/index.js.map +1 -0
  169. package/dist/react/hooks/useCharacterInfo.d.ts +17 -0
  170. package/dist/react/hooks/useCharacterInfo.d.ts.map +1 -0
  171. package/dist/react/hooks/useCharacterInfo.js +60 -0
  172. package/dist/react/hooks/useCharacterInfo.js.map +1 -0
  173. package/dist/react/hooks/useConvaiClient.d.ts +35 -0
  174. package/dist/react/hooks/useConvaiClient.d.ts.map +1 -0
  175. package/dist/react/hooks/useConvaiClient.js +179 -0
  176. package/dist/react/hooks/useConvaiClient.js.map +1 -0
  177. package/dist/react/hooks/useLocalCameraTrack.d.ts +22 -0
  178. package/dist/react/hooks/useLocalCameraTrack.d.ts.map +1 -0
  179. package/dist/react/hooks/useLocalCameraTrack.js +34 -0
  180. package/dist/react/hooks/useLocalCameraTrack.js.map +1 -0
  181. package/dist/react/index.d.ts +7 -0
  182. package/dist/react/index.d.ts.map +1 -0
  183. package/dist/react/index.js +13 -0
  184. package/dist/react/index.js.map +1 -0
  185. package/dist/types/index.d.ts.map +1 -0
  186. package/dist/types/index.js +2 -0
  187. package/dist/types/index.js.map +1 -0
  188. package/dist/utils/LatencyMonitor.d.ts.map +1 -0
  189. package/dist/utils/LatencyMonitor.js +136 -0
  190. package/dist/utils/LatencyMonitor.js.map +1 -0
  191. package/dist/utils/logger.d.ts.map +1 -0
  192. package/dist/utils/logger.js +96 -0
  193. package/dist/utils/logger.js.map +1 -0
  194. package/dist/utils/speakerManagement.d.ts.map +1 -0
  195. package/dist/utils/speakerManagement.js +64 -0
  196. package/dist/utils/speakerManagement.js.map +1 -0
  197. package/dist/{types/vanilla → vanilla}/AudioRenderer.d.ts +5 -0
  198. package/dist/vanilla/AudioRenderer.d.ts.map +1 -0
  199. package/dist/vanilla/AudioRenderer.js +135 -0
  200. package/dist/vanilla/AudioRenderer.js.map +1 -0
  201. package/dist/{types/vanilla → vanilla}/ConvaiWidget.d.ts +13 -6
  202. package/dist/vanilla/ConvaiWidget.d.ts.map +1 -0
  203. package/dist/vanilla/ConvaiWidget.js +1823 -0
  204. package/dist/vanilla/ConvaiWidget.js.map +1 -0
  205. package/dist/vanilla/icons.d.ts.map +1 -0
  206. package/dist/vanilla/icons.js +222 -0
  207. package/dist/vanilla/icons.js.map +1 -0
  208. package/dist/{types/vanilla → vanilla}/index.d.ts +1 -3
  209. package/dist/vanilla/index.d.ts.map +1 -0
  210. package/dist/vanilla/index.js +20 -5509
  211. package/dist/vanilla/index.js.map +1 -0
  212. package/dist/vanilla/styles.d.ts.map +1 -0
  213. package/dist/vanilla/styles.js +287 -0
  214. package/dist/vanilla/styles.js.map +1 -0
  215. package/dist/vanilla/types.d.ts +63 -0
  216. package/dist/vanilla/types.d.ts.map +1 -0
  217. package/dist/vanilla/types.js +2 -0
  218. package/dist/vanilla/types.js.map +1 -0
  219. package/package.json +33 -38
  220. package/CHANGELOG.md +0 -165
  221. package/dist/core/index.cjs +0 -1977
  222. package/dist/lipsync-helpers/index.cjs +0 -1195
  223. package/dist/types/core/AudioManager.d.ts.map +0 -1
  224. package/dist/types/core/ConvaiClient.d.ts.map +0 -1
  225. package/dist/types/core/EventEmitter.d.ts.map +0 -1
  226. package/dist/types/core/MessageHandler.d.ts.map +0 -1
  227. package/dist/types/core/ScreenShareManager.d.ts.map +0 -1
  228. package/dist/types/core/VideoManager.d.ts.map +0 -1
  229. package/dist/types/core/index.d.ts.map +0 -1
  230. package/dist/types/core/types.d.ts.map +0 -1
  231. package/dist/types/lipsync-helpers/arkitBlendshapeHelpers.d.ts +0 -80
  232. package/dist/types/lipsync-helpers/arkitBlendshapeHelpers.d.ts.map +0 -1
  233. package/dist/types/lipsync-helpers/arkitOrder61.d.ts.map +0 -1
  234. package/dist/types/lipsync-helpers/arkitPhonemeReference.d.ts +0 -155
  235. package/dist/types/lipsync-helpers/arkitPhonemeReference.d.ts.map +0 -1
  236. package/dist/types/lipsync-helpers/index.d.ts +0 -9
  237. package/dist/types/lipsync-helpers/index.d.ts.map +0 -1
  238. package/dist/types/lipsync-helpers/neurosyncBlendshapeMapper.d.ts +0 -30
  239. package/dist/types/lipsync-helpers/neurosyncBlendshapeMapper.d.ts.map +0 -1
  240. package/dist/types/types/index.d.ts.map +0 -1
  241. package/dist/types/utils/LatencyMonitor.d.ts.map +0 -1
  242. package/dist/types/utils/logger.d.ts.map +0 -1
  243. package/dist/types/utils/speakerManagement.d.ts.map +0 -1
  244. package/dist/types/vanilla/AudioRenderer.d.ts.map +0 -1
  245. package/dist/types/vanilla/ConvaiWidget.d.ts.map +0 -1
  246. package/dist/types/vanilla/icons.d.ts.map +0 -1
  247. package/dist/types/vanilla/index.d.ts.map +0 -1
  248. package/dist/types/vanilla/styles.d.ts.map +0 -1
  249. package/dist/types/vanilla/types.d.ts +0 -106
  250. package/dist/types/vanilla/types.d.ts.map +0 -1
  251. package/dist/umd/convai.umd.js +0 -1
  252. package/dist/vanilla/index.cjs +0 -5559
  253. /package/dist/{types/core → core}/AudioManager.d.ts +0 -0
  254. /package/dist/{types/core → core}/EventEmitter.d.ts +0 -0
  255. /package/dist/{types/core → core}/ScreenShareManager.d.ts +0 -0
  256. /package/dist/{types/core → core}/VideoManager.d.ts +0 -0
  257. /package/dist/{types/lipsync-helpers → lipsync-helpers}/arkitOrder61.d.ts +0 -0
  258. /package/dist/types/{types/index.d.ts → index.d.ts} +0 -0
  259. /package/dist/{types/utils → utils}/LatencyMonitor.d.ts +0 -0
  260. /package/dist/{types/utils → utils}/logger.d.ts +0 -0
  261. /package/dist/{types/utils → utils}/speakerManagement.d.ts +0 -0
  262. /package/dist/{types/vanilla → vanilla}/icons.d.ts +0 -0
  263. /package/dist/{types/vanilla → vanilla}/styles.d.ts +0 -0
@@ -0,0 +1,35 @@
1
+ import type { ConvaiConfig, IConvaiClient, ChatMessage } from "../../core/types";
2
+ /**
3
+ * React hook wrapper for ConvaiClient
4
+ * Main hook for managing Convai client connection and functionality.
5
+ *
6
+ * Provides a complete interface for connecting to Convai's AI-powered voice assistants,
7
+ * managing real-time audio/video conversations, and handling various message types.
8
+ *
9
+ * @param config - Optional configuration to store for later connection
10
+ * @returns {ConvaiClient & { activity: string; chatMessages: ChatMessage[] }} Complete client interface with connection state, methods, and message history
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * function App() {
15
+ * const convaiClient = useConvaiClient({
16
+ * apiKey: 'your-api-key',
17
+ * characterId: 'your-character-id',
18
+ * endUserId: 'user-uuid', // Optional: enables memory & analytics
19
+ * enableVideo: true,
20
+ * });
21
+ *
22
+ * return (
23
+ * <ConvaiWidget convaiClient={convaiClient} />
24
+ * );
25
+ * }
26
+ * ```
27
+ */
28
+ export declare const useConvaiClient: (config?: ConvaiConfig) => IConvaiClient & {
29
+ activity: string;
30
+ chatMessages: ChatMessage[];
31
+ isAudioMuted: boolean;
32
+ isVideoEnabled: boolean;
33
+ isScreenShareActive: boolean;
34
+ };
35
+ //# sourceMappingURL=useConvaiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConvaiClient.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useConvaiClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,YAAY,KACpB,aAAa,GAAG;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAwL9B,CAAC"}
@@ -0,0 +1,179 @@
1
+ import { useState, useEffect, useCallback } from "react";
2
+ import { ConvaiClient as CoreConvaiClient } from "../../core";
3
+ /**
4
+ * React hook wrapper for ConvaiClient
5
+ * Main hook for managing Convai client connection and functionality.
6
+ *
7
+ * Provides a complete interface for connecting to Convai's AI-powered voice assistants,
8
+ * managing real-time audio/video conversations, and handling various message types.
9
+ *
10
+ * @param config - Optional configuration to store for later connection
11
+ * @returns {ConvaiClient & { activity: string; chatMessages: ChatMessage[] }} Complete client interface with connection state, methods, and message history
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * function App() {
16
+ * const convaiClient = useConvaiClient({
17
+ * apiKey: 'your-api-key',
18
+ * characterId: 'your-character-id',
19
+ * endUserId: 'user-uuid', // Optional: enables memory & analytics
20
+ * enableVideo: true,
21
+ * });
22
+ *
23
+ * return (
24
+ * <ConvaiWidget convaiClient={convaiClient} />
25
+ * );
26
+ * }
27
+ * ```
28
+ */
29
+ export const useConvaiClient = (config) => {
30
+ // Create client instance once
31
+ const [client] = useState(() => new CoreConvaiClient());
32
+ // React state for UI updates
33
+ const [state, setState] = useState(client.state);
34
+ const [activity, setActivity] = useState("Idle");
35
+ const [chatMessages, setChatMessages] = useState(client.chatMessages);
36
+ const [userTranscription, setUserTranscription] = useState(client.userTranscription);
37
+ const [isSpeaking, setIsSpeaking] = useState(false);
38
+ const [isBotReady, setIsBotReady] = useState(client.isBotReady);
39
+ // Reactive states for control managers
40
+ const [isAudioMuted, setIsAudioMuted] = useState(client.audioControls.isAudioMuted);
41
+ const [isVideoEnabled, setIsVideoEnabled] = useState(client.videoControls.isVideoEnabled);
42
+ const [isScreenShareActive, setIsScreenShareActive] = useState(client.screenShareControls.isScreenShareActive);
43
+ // Store config if provided
44
+ const [storedConfig] = useState(config);
45
+ // Setup event listeners
46
+ useEffect(() => {
47
+ // State change listener
48
+ const unsubStateChange = client.on("stateChange", (newState) => {
49
+ setState(newState);
50
+ // Update activity based on state
51
+ if (!newState.isConnected) {
52
+ setActivity("Disconnected");
53
+ }
54
+ else if (newState.isConnecting) {
55
+ setActivity("Connecting...");
56
+ }
57
+ else if (newState.isSpeaking) {
58
+ setActivity("Speaking");
59
+ }
60
+ else if (newState.isThinking) {
61
+ setActivity("Thinking");
62
+ }
63
+ else {
64
+ setActivity("Connected");
65
+ }
66
+ });
67
+ // Messages change listener
68
+ const unsubMessagesChange = client.on("messagesChange", (messages) => {
69
+ setChatMessages([...messages]);
70
+ });
71
+ // User transcription change listener
72
+ const unsubUserTranscription = client.on("userTranscriptionChange", (transcription) => {
73
+ setUserTranscription(transcription);
74
+ });
75
+ // Speaking change listener
76
+ const unsubSpeaking = client.on("speakingChange", (speaking) => {
77
+ setIsSpeaking(speaking);
78
+ });
79
+ // Bot ready listener
80
+ const unsubBotReady = client.on("botReady", () => {
81
+ setIsBotReady(true);
82
+ setActivity("Connected");
83
+ });
84
+ // Connect listener
85
+ const unsubConnect = client.on("connect", () => {
86
+ setState(client.state);
87
+ });
88
+ // Disconnect listener
89
+ const unsubDisconnect = client.on("disconnect", () => {
90
+ setIsBotReady(false);
91
+ setState(client.state);
92
+ setActivity("Disconnected");
93
+ setChatMessages([]);
94
+ // Reset control states on disconnect
95
+ setIsAudioMuted(true);
96
+ setIsVideoEnabled(false);
97
+ setIsScreenShareActive(false);
98
+ });
99
+ // Audio controls state change listener
100
+ const unsubAudioState = client.audioControls.on("audioStateChange", (audioState) => {
101
+ if (audioState.isAudioMuted !== undefined) {
102
+ setIsAudioMuted(audioState.isAudioMuted);
103
+ }
104
+ });
105
+ // Video controls state change listener
106
+ const unsubVideoState = client.videoControls.on("videoStateChange", (videoState) => {
107
+ if (videoState.isVideoEnabled !== undefined) {
108
+ setIsVideoEnabled(videoState.isVideoEnabled);
109
+ }
110
+ });
111
+ // Screen share controls state change listener
112
+ const unsubScreenShareState = client.screenShareControls.on("screenShareStateChange", (screenShareState) => {
113
+ if (screenShareState.isScreenShareActive !== undefined) {
114
+ setIsScreenShareActive(screenShareState.isScreenShareActive);
115
+ }
116
+ });
117
+ // Cleanup listeners on unmount
118
+ return () => {
119
+ unsubStateChange();
120
+ unsubMessagesChange();
121
+ unsubUserTranscription();
122
+ unsubSpeaking();
123
+ unsubBotReady();
124
+ unsubConnect();
125
+ unsubDisconnect();
126
+ unsubAudioState();
127
+ unsubVideoState();
128
+ unsubScreenShareState();
129
+ };
130
+ }, [client]);
131
+ // Create enhanced connect function that can use stored config
132
+ const connect = useCallback(async (configOverride) => {
133
+ const finalConfig = configOverride || storedConfig;
134
+ if (!finalConfig) {
135
+ throw new Error("No configuration provided. Pass config to useConvaiClient() or to connect()");
136
+ }
137
+ await client.connect(finalConfig);
138
+ }, [client, storedConfig]);
139
+ // Create reconnect function wrapper
140
+ const reconnect = useCallback(async () => {
141
+ await client.reconnect();
142
+ }, [client]);
143
+ // Return client interface with React-friendly additions
144
+ return {
145
+ state,
146
+ connectionType: client.connectionType,
147
+ apiKey: client.apiKey,
148
+ characterId: client.characterId,
149
+ speakerId: client.speakerId,
150
+ connect,
151
+ disconnect: client.disconnect.bind(client),
152
+ reconnect,
153
+ resetSession: client.resetSession.bind(client),
154
+ room: client.room,
155
+ sendUserTextMessage: client.sendUserTextMessage.bind(client),
156
+ sendTriggerMessage: client.sendTriggerMessage.bind(client),
157
+ sendInterruptMessage: client.sendInterruptMessage.bind(client),
158
+ updateTemplateKeys: client.updateTemplateKeys.bind(client),
159
+ updateDynamicInfo: client.updateDynamicInfo.bind(client),
160
+ activity,
161
+ chatMessages,
162
+ userTranscription,
163
+ characterSessionId: client.characterSessionId,
164
+ isBotReady,
165
+ audioControls: client.audioControls,
166
+ videoControls: client.videoControls,
167
+ screenShareControls: client.screenShareControls,
168
+ latencyMonitor: client.latencyMonitor,
169
+ blendshapeQueue: client.blendshapeQueue,
170
+ toggleTts: client.toggleTts.bind(client),
171
+ on: client.on.bind(client),
172
+ off: client.off.bind(client),
173
+ // Reactive control states
174
+ isAudioMuted,
175
+ isVideoEnabled,
176
+ isScreenShareActive,
177
+ };
178
+ };
179
+ //# sourceMappingURL=useConvaiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConvaiClient.js","sourceRoot":"","sources":["../../../src/react/hooks/useConvaiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { TrackReferenceOrPlaceholder } from "@livekit/components-react";
2
+ /**
3
+ * Hook to get the local camera track reference from LiveKit.
4
+ *
5
+ * Returns a track reference that can be used with LiveKit components
6
+ * to display the local participant's camera feed.
7
+ *
8
+ * @returns {TrackReferenceOrPlaceholder} Track reference for the local camera
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * function VideoComponent() {
13
+ * const cameraTrackRef = useLocalCameraTrack();
14
+ *
15
+ * return (
16
+ * <VideoTrack trackRef={cameraTrackRef} />
17
+ * );
18
+ * }
19
+ * ```
20
+ */
21
+ export declare const useLocalCameraTrack: () => TrackReferenceOrPlaceholder;
22
+ //# sourceMappingURL=useLocalCameraTrack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalCameraTrack.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useLocalCameraTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAE5B,MAAM,2BAA2B,CAAC;AAInC;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,mBAAmB,mCAY/B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { useLocalParticipant, } from "@livekit/components-react";
2
+ import { Track } from "livekit-client";
3
+ import { useMemo } from "react";
4
+ /**
5
+ * Hook to get the local camera track reference from LiveKit.
6
+ *
7
+ * Returns a track reference that can be used with LiveKit components
8
+ * to display the local participant's camera feed.
9
+ *
10
+ * @returns {TrackReferenceOrPlaceholder} Track reference for the local camera
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * function VideoComponent() {
15
+ * const cameraTrackRef = useLocalCameraTrack();
16
+ *
17
+ * return (
18
+ * <VideoTrack trackRef={cameraTrackRef} />
19
+ * );
20
+ * }
21
+ * ```
22
+ */
23
+ export const useLocalCameraTrack = () => {
24
+ const { cameraTrack, localParticipant } = useLocalParticipant();
25
+ const cameraTrackRef = useMemo(() => {
26
+ return {
27
+ participant: localParticipant,
28
+ source: Track.Source.Camera,
29
+ publication: cameraTrack,
30
+ };
31
+ }, [localParticipant, cameraTrack]);
32
+ return cameraTrackRef;
33
+ };
34
+ //# sourceMappingURL=useLocalCameraTrack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalCameraTrack.js","sourceRoot":"","sources":["../../../src/react/hooks/useLocalCameraTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAEhE,MAAM,cAAc,GAAgC,OAAO,CAAC,GAAG,EAAE;QAC/D,OAAO;YACL,WAAW,EAAE,gBAAgB;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC3B,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC;IAEpC,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { useConvaiClient } from './hooks/useConvaiClient';
2
+ export { ConvaiWidget } from './components/ConvaiWidget';
3
+ export * from './hooks';
4
+ export * from '../core/types';
5
+ export { ConvaiClient } from '../core';
6
+ export { RoomAudioRenderer as AudioRenderer, RoomContext as AudioContext } from '@livekit/components-react';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Main hook (backward compatible)
2
+ export { useConvaiClient } from './hooks/useConvaiClient';
3
+ // Components
4
+ export { ConvaiWidget } from './components/ConvaiWidget';
5
+ // Additional hooks (for advanced usage)
6
+ export * from './hooks';
7
+ // Re-export core types for convenience
8
+ export * from '../core/types';
9
+ // Re-export core client for advanced usage
10
+ export { ConvaiClient } from '../core';
11
+ // Re-export LiveKit components for convenience (backward compatible)
12
+ export { RoomAudioRenderer as AudioRenderer, RoomContext as AudioContext } from '@livekit/components-react';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,wCAAwC;AACxC,cAAc,SAAS,CAAC;AAExB,uCAAuC;AACvC,cAAc,eAAe,CAAC;AAE9B,2CAA2C;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qEAAqE;AACrE,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LatencyMonitor.d.ts","sourceRoot":"","sources":["../../src/utils/LatencyMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,kBAAkB,CAKV;IAChB,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,OAAO,GAAE,OAAe;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAYpE;;OAEG;IACH,cAAc,IAAI,IAAI;IA+BtB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,eAAe,IAAI,kBAAkB,EAAE;IAIvC;;OAEG;IACH,oBAAoB,IAAI,kBAAkB,GAAG,IAAI;IAMjD;;OAEG;IACH,QAAQ,IAAI,YAAY,GAAG,IAAI;IAkB/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED;;OAEG;IACH,qBAAqB;YApJf,MAAM;mBACC,MAAM;cACX,MAAM,GAAG,OAAO;sBACR,MAAM;;CAoJvB"}
@@ -0,0 +1,136 @@
1
+ import { EventEmitter } from "../core/EventEmitter";
2
+ /**
3
+ * LatencyMonitor - Tracks and manages latency measurements
4
+ * This is for dev/debugging purposes only
5
+ */
6
+ export class LatencyMonitor extends EventEmitter {
7
+ constructor(enabled = false) {
8
+ super();
9
+ this.measurements = [];
10
+ this.pendingMeasurement = null;
11
+ this.maxMeasurements = 100; // Keep last 100 measurements
12
+ this.isEnabled = false;
13
+ this.isEnabled = enabled;
14
+ }
15
+ /**
16
+ * Enable latency monitoring
17
+ */
18
+ enable() {
19
+ this.isEnabled = true;
20
+ this.emit("enabledChange", true);
21
+ }
22
+ /**
23
+ * Disable latency monitoring
24
+ */
25
+ disable() {
26
+ this.isEnabled = false;
27
+ this.emit("enabledChange", false);
28
+ }
29
+ /**
30
+ * Check if monitoring is enabled
31
+ */
32
+ get enabled() {
33
+ return this.isEnabled;
34
+ }
35
+ /**
36
+ * Start a new latency measurement
37
+ */
38
+ startMeasurement(type, userMessage) {
39
+ if (!this.isEnabled)
40
+ return;
41
+ const id = `${type}-${Date.now()}-${Math.random()}`;
42
+ this.pendingMeasurement = {
43
+ id,
44
+ startTime: Date.now(),
45
+ type,
46
+ userMessage: userMessage?.substring(0, 50), // Keep first 50 chars
47
+ };
48
+ }
49
+ /**
50
+ * Complete the current measurement
51
+ */
52
+ endMeasurement() {
53
+ if (!this.isEnabled || !this.pendingMeasurement)
54
+ return;
55
+ const endTime = Date.now();
56
+ const latency = endTime - this.pendingMeasurement.startTime;
57
+ const measurement = {
58
+ id: this.pendingMeasurement.id,
59
+ startTime: this.pendingMeasurement.startTime,
60
+ endTime,
61
+ latency,
62
+ type: this.pendingMeasurement.type,
63
+ userMessage: this.pendingMeasurement.userMessage,
64
+ };
65
+ // Add to measurements array
66
+ this.measurements.push(measurement);
67
+ // Keep only the last N measurements
68
+ if (this.measurements.length > this.maxMeasurements) {
69
+ this.measurements.shift();
70
+ }
71
+ // Clear pending measurement
72
+ this.pendingMeasurement = null;
73
+ // Emit new measurement
74
+ this.emit("measurement", measurement);
75
+ this.emit("measurementsChange", this.measurements);
76
+ }
77
+ /**
78
+ * Cancel the current pending measurement
79
+ */
80
+ cancelMeasurement() {
81
+ this.pendingMeasurement = null;
82
+ }
83
+ /**
84
+ * Get all measurements
85
+ */
86
+ getMeasurements() {
87
+ return [...this.measurements];
88
+ }
89
+ /**
90
+ * Get the latest measurement
91
+ */
92
+ getLatestMeasurement() {
93
+ return this.measurements.length > 0
94
+ ? this.measurements[this.measurements.length - 1]
95
+ : null;
96
+ }
97
+ /**
98
+ * Get latency statistics
99
+ */
100
+ getStats() {
101
+ if (this.measurements.length === 0)
102
+ return null;
103
+ const latencies = this.measurements.map((m) => m.latency).sort((a, b) => a - b);
104
+ const sum = latencies.reduce((acc, val) => acc + val, 0);
105
+ const p95Index = Math.floor(latencies.length * 0.95);
106
+ return {
107
+ average: sum / latencies.length,
108
+ min: latencies[0],
109
+ max: latencies[latencies.length - 1],
110
+ median: latencies[Math.floor(latencies.length / 2)],
111
+ p95: latencies[p95Index],
112
+ count: latencies.length,
113
+ };
114
+ }
115
+ /**
116
+ * Clear all measurements
117
+ */
118
+ clear() {
119
+ this.measurements = [];
120
+ this.pendingMeasurement = null;
121
+ this.emit("measurementsChange", this.measurements);
122
+ }
123
+ /**
124
+ * Check if there's a pending measurement
125
+ */
126
+ get hasPendingMeasurement() {
127
+ return this.pendingMeasurement !== null;
128
+ }
129
+ /**
130
+ * Get pending measurement info
131
+ */
132
+ getPendingMeasurement() {
133
+ return this.pendingMeasurement ? { ...this.pendingMeasurement } : null;
134
+ }
135
+ }
136
+ //# sourceMappingURL=LatencyMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LatencyMonitor.js","sourceRoot":"","sources":["../../src/utils/LatencyMonitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuFH,eAAO,MAAM,MAAM;mBAnBF,GAAG,EAAE;oBACJ,GAAG,EAAE;qBACJ,GAAG,EAAE;oBACN,GAAG,EAAE;qBACJ,GAAG,EAAE;qBACL,GAAG,EAAE;CAcoC,CAAC;AAG7D,eAAO,MAAM,YAAY;;;;CAIxB,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Logger utility that only logs in development mode.
3
+ * Completely silent in production builds and npm packages.
4
+ *
5
+ * This logger is designed to be tree-shakeable and completely removed
6
+ * from production builds when not used.
7
+ *
8
+ * To test logger behavior:
9
+ * - Development: Set NODE_ENV=development or run on localhost
10
+ * - Production: Set NODE_ENV=production or deploy to production
11
+ *
12
+ * In npm packages, this logger will be completely silent by default.
13
+ */
14
+ // Environment detection with multiple fallbacks
15
+ const detectEnvironment = () => {
16
+ // Check if we're in a browser environment
17
+ const isBrowser = typeof window !== 'undefined';
18
+ // Safe process.env access (Vite/Webpack replaces this at build time)
19
+ const getEnv = (key) => {
20
+ try {
21
+ // @ts-ignore - process.env is replaced at build time by bundlers
22
+ return typeof process !== 'undefined' && process.env ? process.env[key] : undefined;
23
+ }
24
+ catch {
25
+ return undefined;
26
+ }
27
+ };
28
+ // Priority 1: Check NEXT_PUBLIC_ENVIRONMENT first (most explicit)
29
+ const publicEnv = getEnv('NEXT_PUBLIC_ENVIRONMENT');
30
+ if (publicEnv === 'PRODUCTION') {
31
+ return 'production';
32
+ }
33
+ if (publicEnv === 'PREVIEW' || publicEnv === 'STAGING') {
34
+ return 'development';
35
+ }
36
+ // Priority 2: Check NODE_ENV and REACT_APP_ENV (Vite replaces import.meta.env.MODE)
37
+ const nodeEnv = getEnv('NODE_ENV');
38
+ const reactEnv = getEnv('REACT_APP_ENV');
39
+ if (nodeEnv === 'production' || reactEnv === 'production') {
40
+ return 'production';
41
+ }
42
+ if (nodeEnv === 'development' || reactEnv === 'development') {
43
+ return 'development';
44
+ }
45
+ // Priority 3: Check for Vite dev server
46
+ const viteDevUrl = getEnv('VITE_DEV_SERVER_URL');
47
+ if (viteDevUrl !== undefined) {
48
+ return 'development';
49
+ }
50
+ // Priority 4: Check browser environment (only if no explicit env vars are set)
51
+ if (isBrowser) {
52
+ // Localhost is typically development
53
+ if (window.location?.hostname === 'localhost' || window.location?.hostname === '127.0.0.1') {
54
+ return 'development';
55
+ }
56
+ // Check for development ports
57
+ if (window.location?.port && ['3000', '3001', '5173', '8080'].includes(window.location.port)) {
58
+ return 'development';
59
+ }
60
+ }
61
+ // Default to production for safety
62
+ return 'production';
63
+ };
64
+ const environment = detectEnvironment();
65
+ const isDevelopment = environment === 'development';
66
+ // No-op function that gets completely removed by tree shaking
67
+ const noop = () => {
68
+ // This function is intentionally empty and will be removed in production
69
+ };
70
+ // Development logger functions
71
+ const devLogger = {
72
+ log: (...args) => console.log('[Convai]', ...args),
73
+ warn: (...args) => console.warn('[Convai]', ...args),
74
+ error: (...args) => console.error('[Convai]', ...args),
75
+ info: (...args) => console.info('[Convai]', ...args),
76
+ debug: (...args) => console.debug('[Convai]', ...args),
77
+ trace: (...args) => console.trace('[Convai]', ...args),
78
+ };
79
+ // Production logger functions (all no-ops)
80
+ const prodLogger = {
81
+ log: noop,
82
+ warn: noop,
83
+ error: noop,
84
+ info: noop,
85
+ debug: noop,
86
+ trace: noop,
87
+ };
88
+ // Export the appropriate logger based on environment
89
+ export const logger = isDevelopment ? devLogger : prodLogger;
90
+ // Export environment info for debugging
91
+ export const loggerConfig = {
92
+ environment,
93
+ isDevelopment,
94
+ isProduction: !isDevelopment,
95
+ };
96
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speakerManagement.d.ts","sourceRoot":"","sources":["../../src/utils/speakerManagement.ts"],"names":[],"mappings":"AASA;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAmCjB"}