@kaltura-sdk/avatars 1.14.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 (173) hide show
  1. package/README.md +1 -0
  2. package/index.d.ts +1 -0
  3. package/index.esm.js +24265 -0
  4. package/package.json +30 -0
  5. package/src/index.d.ts +5 -0
  6. package/src/lib/analytics.d.ts +27 -0
  7. package/src/lib/avatar-client-manager/avatar-client-manager.d.ts +174 -0
  8. package/src/lib/avatar-client-manager/index.d.ts +3 -0
  9. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/analytics/send-avatar-answer-analytics-event.d.ts +2 -0
  10. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/analytics/send-avatar-conversation-started-analytics-event.d.ts +2 -0
  11. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/append-avatar-chat-entry.d.ts +2 -0
  12. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/append-user-chat-entry.d.ts +2 -0
  13. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/append-user-text-entry.d.ts +2 -0
  14. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/capture-user-mute-state-before-tap-to-talk.d.ts +2 -0
  15. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/capture-user-mute-state.d.ts +2 -0
  16. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/cleanup-rtc-and-set-peer-id.d.ts +2 -0
  17. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/clear-caption-state.d.ts +2 -0
  18. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/increment-agent-recovery-retry-count.d.ts +2 -0
  19. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/increment-config-retry.d.ts +2 -0
  20. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/log-agent-client-tool-call-result.d.ts +2 -0
  21. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/log-agent-raw-text-message.d.ts +2 -0
  22. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/log-analysis-ready-fallback.d.ts +4 -0
  23. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/log-tap-to-talk-dropped.d.ts +2 -0
  24. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/record-client-tool-call-log-entry.d.ts +2 -0
  25. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/reset-agent-recovery-retry-count.d.ts +2 -0
  26. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-agent-talking.d.ts +2 -0
  27. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-caption-state.d.ts +2 -0
  28. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-cast-mode.d.ts +2 -0
  29. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-client-configuration.d.ts +2 -0
  30. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-content-data.d.ts +2 -0
  31. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-disconnect-data.d.ts +8 -0
  32. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-kaltura-context-is-active.d.ts +2 -0
  33. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-peer-id.d.ts +2 -0
  34. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-request-vars.d.ts +2 -0
  35. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-screen-analysis-ready.d.ts +4 -0
  36. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-screen-share-active.d.ts +4 -0
  37. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-screen-share-stream.d.ts +4 -0
  38. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-server-config.d.ts +2 -0
  39. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-session-id.d.ts +2 -0
  40. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-session-kickoff-required.d.ts +2 -0
  41. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-tap-to-talk-active.d.ts +4 -0
  42. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-tap-to-talk-button-visible.d.ts +4 -0
  43. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-tap-to-talk-enabled.d.ts +4 -0
  44. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-tap-to-talk-started-at.d.ts +4 -0
  45. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-thread-id.d.ts +2 -0
  46. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-user-agent-data.d.ts +2 -0
  47. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/context/set-webrtc-url.d.ts +2 -0
  48. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/external/publish-toggle-kaltura-context-active.d.ts +2 -0
  49. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/notifications/show-agent-recovery-exhausted-notification.d.ts +2 -0
  50. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/notifications/show-disconnect-notification.d.ts +2 -0
  51. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/notifications/show-screen-share-error-notification.d.ts +2 -0
  52. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/notifications/show-time-warning-notification.d.ts +2 -0
  53. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/rtc/leave-asr.d.ts +2 -0
  54. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/rtc/mute-asr.d.ts +2 -0
  55. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/rtc/restore-mute-state-after-tap-to-talk.d.ts +2 -0
  56. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/rtc/unmute-asr-for-tap-to-talk.d.ts +2 -0
  57. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/rtc/unmute-asr.d.ts +2 -0
  58. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/extend-pause-timeout.d.ts +2 -0
  59. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-approved-permissions.d.ts +2 -0
  60. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-ask-via-text.d.ts +4 -0
  61. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-create-session.d.ts +2 -0
  62. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-join-room.d.ts +2 -0
  63. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-pause-conversation.d.ts +2 -0
  64. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-reprocess-turn.d.ts +2 -0
  65. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-resume-conversation.d.ts +2 -0
  66. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-screen-share-pending.d.ts +4 -0
  67. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-screen-share-started.d.ts +4 -0
  68. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-screen-share-stopped.d.ts +4 -0
  69. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-tap-to-talk-end.d.ts +4 -0
  70. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-tap-to-talk-start.d.ts +4 -0
  71. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/send-update-genie-context.d.ts +2 -0
  72. package/src/lib/avatar-client-manager/machines/avatar-connection/actions/server/toggle-tap-to-talk-mode.d.ts +4 -0
  73. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/agent-recovery-monitor.d.ts +5 -0
  74. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/connect-to-asr.d.ts +21 -0
  75. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/connect-web-socket.d.ts +11 -0
  76. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/destroy-connection.d.ts +6 -0
  77. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/get-user-agent-data.d.ts +7 -0
  78. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/get-user-media.d.ts +4 -0
  79. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/init-rtc-session.d.ts +19 -0
  80. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-agent-client-tool-call.d.ts +10 -0
  81. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-agent-data.d.ts +5 -0
  82. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-agent-raw-text.d.ts +5 -0
  83. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-agent-start-speech.d.ts +5 -0
  84. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-agent-talking.d.ts +5 -0
  85. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-captions.d.ts +9 -0
  86. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-chat-log.d.ts +5 -0
  87. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-conversation-ended.d.ts +5 -0
  88. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-conversation-resumed.d.ts +5 -0
  89. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-conversation-time-warning.d.ts +5 -0
  90. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-error.d.ts +5 -0
  91. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-init-response.d.ts +5 -0
  92. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-join-room.d.ts +5 -0
  93. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-kaltura-context-is-active-change.d.ts +7 -0
  94. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-pause-expiry-events.d.ts +5 -0
  95. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-player-ready-state.d.ts +5 -0
  96. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-resuming-session.d.ts +5 -0
  97. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-screen-analysis-ready.d.ts +5 -0
  98. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-server-connected.d.ts +5 -0
  99. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-server-ready.d.ts +5 -0
  100. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-session-created.d.ts +5 -0
  101. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-session-kickoff-events.d.ts +5 -0
  102. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-session-ready-for-resume.d.ts +5 -0
  103. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-tap-to-talk-button-events.d.ts +5 -0
  104. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/on-websocket-non-recovered-reconnect.d.ts +5 -0
  105. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/resolve-server-config.d.ts +6 -0
  106. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/screen-capture-cycle.d.ts +7 -0
  107. package/src/lib/avatar-client-manager/machines/avatar-connection/actors/send-form-data.d.ts +11 -0
  108. package/src/lib/avatar-client-manager/machines/avatar-connection/avatar-connection-machine.d.ts +798 -0
  109. package/src/lib/avatar-client-manager/machines/avatar-connection/definitions.d.ts +2 -0
  110. package/src/lib/avatar-client-manager/machines/avatar-connection/global-events.d.ts +3 -0
  111. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/had-avatar-type-in-turn.d.ts +4 -0
  112. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/has-more-config-retries.d.ts +4 -0
  113. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/has-more-recovery-retries.d.ts +4 -0
  114. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-agent-talking.d.ts +4 -0
  115. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-analysis-not-ready.d.ts +4 -0
  116. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-captions-enabled.d.ts +4 -0
  117. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-empty-agent-content.d.ts +4 -0
  118. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-form-content.d.ts +4 -0
  119. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-kaltura-context-enabled.d.ts +4 -0
  120. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-session-kickoff-active.d.ts +4 -0
  121. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-session-kickoff-requested.d.ts +4 -0
  122. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-tap-to-talk-enabled.d.ts +4 -0
  123. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/is-text-chat-enabled.d.ts +4 -0
  124. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/just-exceeded-recovery-retries.d.ts +4 -0
  125. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-create-websocket-connection.d.ts +4 -0
  126. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-disable-tap-to-talk-mode.d.ts +5 -0
  127. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-disconnect.d.ts +4 -0
  128. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-enable-tap-to-talk-mode.d.ts +5 -0
  129. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-show-device-permissions-denied.d.ts +4 -0
  130. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-wait-before-purge.d.ts +4 -0
  131. package/src/lib/avatar-client-manager/machines/avatar-connection/guards/should-wait-player-ready-state.d.ts +4 -0
  132. package/src/lib/avatar-client-manager/machines/avatar-connection/index.d.ts +2 -0
  133. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-state.d.ts +751 -0
  134. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/agent-recovery-monitor-state.d.ts +28 -0
  135. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/captions-state.d.ts +50 -0
  136. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/content-state.d.ts +21 -0
  137. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/conversation-state.d.ts +52 -0
  138. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/genie-intellect-state.d.ts +27 -0
  139. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/kaltura-context-state.d.ts +34 -0
  140. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/pause-lifecycle-state.d.ts +134 -0
  141. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/screen-sharing-state.d.ts +123 -0
  142. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/session-kickoff-state.d.ts +61 -0
  143. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/tap-to-talk-state.d.ts +153 -0
  144. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connected-states/text-communication-state.d.ts +49 -0
  145. package/src/lib/avatar-client-manager/machines/avatar-connection/states/connecting-state.d.ts +400 -0
  146. package/src/lib/avatar-client-manager/machines/avatar-connection/states/disconnected-state.d.ts +26 -0
  147. package/src/lib/avatar-client-manager/machines/avatar-connection/states/disconnecting-state.d.ts +54 -0
  148. package/src/lib/avatar-client-manager/machines/avatar-connection/states/error-state.d.ts +5 -0
  149. package/src/lib/avatar-client-manager/machines/avatar-connection/states/index.d.ts +6 -0
  150. package/src/lib/avatar-client-manager/machines/avatar-connection/states/preparing-state.d.ts +67 -0
  151. package/src/lib/avatar-client-manager/machines/avatar-connection/types/context.d.ts +90 -0
  152. package/src/lib/avatar-client-manager/machines/avatar-connection/types/events.d.ts +274 -0
  153. package/src/lib/avatar-client-manager/machines/avatar-connection/types/index.d.ts +26 -0
  154. package/src/lib/avatar-client-manager/machines/avatar-connection/types/input.d.ts +30 -0
  155. package/src/lib/avatar-client-manager/machines/avatar-connection/types/notifications.d.ts +4 -0
  156. package/src/lib/avatar-client-manager/machines/avatar-connection/types/schemas.d.ts +105 -0
  157. package/src/lib/avatar-client-manager/machines/avatar-connection/utils/agent-raw-text-blocks-creator.d.ts +32 -0
  158. package/src/lib/avatar-client-manager/machines/avatar-connection/utils/index.d.ts +2 -0
  159. package/src/lib/avatar-client-manager/machines/avatar-connection/utils/resolve-active-kaltura-context.d.ts +2 -0
  160. package/src/lib/avatar-client-manager/machines/avatar-connection/utils/resolve-capabilities.d.ts +10 -0
  161. package/src/lib/avatar-client-manager/types.d.ts +4 -0
  162. package/src/lib/avatar-client-manager/utils/actor-manager.d.ts +54 -0
  163. package/src/lib/avatar-client-manager/utils/set-if-changed.d.ts +2 -0
  164. package/src/lib/server/avatar-rtc-client-manager.d.ts +104 -0
  165. package/src/lib/server/index.d.ts +2 -0
  166. package/src/lib/server/websocket-client-manager.d.ts +44 -0
  167. package/src/lib/timing-tracker.d.ts +158 -0
  168. package/src/lib/utils/create-tiny-pubsub-events-handler.d.ts +10 -0
  169. package/src/lib/utils/create-tiny-pubsub-events-source.d.ts +27 -0
  170. package/src/lib/utils/get-query-param.d.ts +4 -0
  171. package/src/lib/utils/index.d.ts +5 -0
  172. package/src/lib/utils/is-mobile-device.d.ts +8 -0
  173. package/src/lib/utils/logger-factory.d.ts +2 -0
@@ -0,0 +1,4 @@
1
+ import { Notifications } from '@unisphere/notifications-core';
2
+ export type AvatarClientManagerActions = {
3
+ showNotification: (notification: Notifications) => void;
4
+ };
@@ -0,0 +1,54 @@
1
+ import type { AnyActorRef, SnapshotFrom } from 'xstate';
2
+ import { TinyDataStore } from '@unisphere/core';
3
+ export type ActorSnapshot<TActor extends AnyActorRef> = SnapshotFrom<TActor>;
4
+ interface StoreBinding<TSnapshot> {
5
+ skip?: (snapshot: TSnapshot) => boolean;
6
+ apply: (snapshot: TSnapshot) => void;
7
+ reset: () => void;
8
+ }
9
+ /**
10
+ * Generic engine bridging one xstate actor to a set of `TinyDataStore`s:
11
+ * owns the actor's lifecycle (start/subscribe/stop), replays snapshots into
12
+ * bound stores, and resets/cleans up on disconnect. Knows nothing about
13
+ * avatars specifically — domain state and terminal-state detection are
14
+ * supplied by subclasses via the hooks below.
15
+ */
16
+ export declare abstract class ActorManager<TActor extends AnyActorRef> {
17
+ protected _actor: TActor | null;
18
+ private _subscriptions;
19
+ /**
20
+ * Bindings registered by `_select()` below. Rebuilding all of them to
21
+ * their initial value (`_resetConnectionState`) is what replaces "throw
22
+ * away the old proxy instance and create a fresh one" on every
23
+ * disconnect/reconnect cycle.
24
+ */
25
+ protected readonly _storeBindings: StoreBinding<ActorSnapshot<TActor>>[];
26
+ /**
27
+ * Registers a piece of connection state derived from the xstate snapshot.
28
+ * Cuts the old "TinyDataStore field + StoreBinding entry + getter" trio
29
+ * down to a single field declaration per property.
30
+ */
31
+ protected _select<T>(initialValue: T, extract: (snapshot: ActorSnapshot<TActor>) => T, options?: {
32
+ equals?: (a: T, b: T) => boolean;
33
+ skip?: (snapshot: ActorSnapshot<TActor>) => boolean;
34
+ }): TinyDataStore<T>;
35
+ protected _setupActorSync(actor: TActor): void;
36
+ private _sync;
37
+ protected _resetConnectionState(): void;
38
+ protected _cleanupConnection(): void;
39
+ /**
40
+ * Domain state derived from the snapshot that isn't a plain `_select`
41
+ * binding (cross-references external state, combines multiple checks,
42
+ * etc). Runs after all bindings have been applied.
43
+ */
44
+ protected abstract _syncDerivedState(snapshot: ActorSnapshot<TActor>): void;
45
+ /** Whether this snapshot means the connection is done and should be torn down. */
46
+ protected abstract _isTerminalSnapshot(snapshot: ActorSnapshot<TActor>): boolean;
47
+ /** Called once, right after the first sync, before subscribing to further updates. */
48
+ protected abstract _onSetupActorSync(actor: TActor): void;
49
+ /** Called after all bindings have been reset back to their initial values. */
50
+ protected abstract _onReset(): void;
51
+ /** Called once, right before the actor is stopped. */
52
+ protected abstract _onCleanup(): void;
53
+ }
54
+ export {};
@@ -0,0 +1,2 @@
1
+ import { TinyDataStore } from '@unisphere/core';
2
+ export declare function setIfChanged<T>(store: TinyDataStore<T>, next: T, eq?: (a: T, b: T) => boolean): void;
@@ -0,0 +1,104 @@
1
+ import { IceCandidateData } from '@kaltura-sdk/rtc-avatar';
2
+ import { DeviceType, GetUserMediaEveObj } from '@kaltura-sdk/rtc-core';
3
+ import { UserDevicesList } from '@unisphere/genie-types';
4
+ export interface RTCClientConfig {
5
+ turnServerUrl: string;
6
+ noiseReductionEnabled?: boolean;
7
+ }
8
+ export interface SignalingCallbacks {
9
+ sendOfferCallback: (connectionId: string, offer: RTCSessionDescriptionInit, isReconnect: boolean) => Promise<RTCSessionDescriptionInit>;
10
+ sendICECandidateCallback: (connectionId: string, candidate: IceCandidateData) => Promise<void>;
11
+ }
12
+ export interface RTCClientStatus {
13
+ isInitialized: boolean;
14
+ hasSession: boolean;
15
+ asrConnected: boolean;
16
+ stvConnected: boolean;
17
+ }
18
+ export type AudioState = {
19
+ muted: boolean;
20
+ isSpeaking: boolean;
21
+ };
22
+ declare class AvatarRTCClientManager {
23
+ private _session;
24
+ private _isInitialized;
25
+ private _asrConnection;
26
+ private _stvConnection;
27
+ private _onStvConnectedCallback;
28
+ private _devicesList;
29
+ private _audioState;
30
+ private _audioVolumeLevel;
31
+ private _lastVolumeUpdateAt;
32
+ private _subscriptions;
33
+ private _unsubscribeConnectionState;
34
+ private _unsubscribeDevicesListChange;
35
+ private _unsubscribeDeviceChanged;
36
+ private _setupWSEventListeners;
37
+ private _setupAudioStateListeners;
38
+ private _updateAudioState;
39
+ get devicesList(): import("@unisphere/core").TinyDataStoreConsumer<UserDevicesList | null>;
40
+ get audioState(): import("@unisphere/core").TinyDataStoreConsumer<AudioState>;
41
+ get audioVolumeLevel(): import("@unisphere/core").TinyDataStoreConsumer<number>;
42
+ /**
43
+ * Initialize the eSelf SDK session
44
+ * Must be called before getUserMedia or joinASR
45
+ */
46
+ initSession(config: RTCClientConfig): Promise<void>;
47
+ parseNoiseReductionParams(configEnabled?: boolean): {
48
+ nrEnabled: boolean;
49
+ nrMode: number;
50
+ };
51
+ /**
52
+ * Get user media (microphone) via the SDK
53
+ * The SDK handles audio constraints internally
54
+ */
55
+ getUserMedia(): Promise<{
56
+ gumResult: GetUserMediaEveObj;
57
+ stream: MediaStream | null;
58
+ }>;
59
+ /**
60
+ * Join ASR (Automatic Speech Recognition) connection with WebRTC
61
+ *
62
+ * @param signalingCallbacks - Callbacks for WebRTC signaling (offer/answer/ICE)
63
+ * @param sessionId - Session identifier (typically the socket peerId)
64
+ */
65
+ joinASR(signalingCallbacks: SignalingCallbacks, sessionId: string): Promise<void>;
66
+ /**
67
+ * Leave ASR connection
68
+ */
69
+ leaveASR(): void;
70
+ /**
71
+ * Join STV (Streaming Video) connection for avatar playback
72
+ * The SDK injects a <video> element into the container identified by videoContainerId
73
+ *
74
+ * @param videoContainerId - DOM element ID for the video container
75
+ * @param sessionId - STV session/stream identifier
76
+ * @param stvUrl - STV WHEP endpoint URL
77
+ * @param onConnected - Callback fired when the WebRTC peer connection is established
78
+ */
79
+ joinSTV(videoContainerId: string, sessionId: string, stvUrl: string, onConnected: () => void): Promise<void>;
80
+ /**
81
+ * Leave STV connection
82
+ */
83
+ leaveSTV(): void;
84
+ /**
85
+ * Get current connection status
86
+ */
87
+ getStatus(): RTCClientStatus;
88
+ /**
89
+ * Leave ASR/STV peer connections without destroying the underlying session.
90
+ * Use on WS reconnect: the EselfSession, user media, and device listeners stay
91
+ * alive so connectToASR can rejoin without re-initializing from scratch.
92
+ */
93
+ leaveConnections(): void;
94
+ /**
95
+ * Cleanup and destroy the SDK session
96
+ * Call this when disconnecting or on error
97
+ */
98
+ cleanup(): void;
99
+ getDevices(): Promise<UserDevicesList>;
100
+ changeDevice(deviceType: DeviceType, deviceId: string): Promise<boolean>;
101
+ toggleMuteAudio(muted: boolean): Promise<void>;
102
+ }
103
+ export declare const avatarRTCClientManager: AvatarRTCClientManager;
104
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './websocket-client-manager';
2
+ export * from './avatar-rtc-client-manager';
@@ -0,0 +1,44 @@
1
+ import { Socket } from '../vendor/socket-io-esm';
2
+ import { TinyDataStore, TinyPubSub } from '@unisphere/core';
3
+ export declare const websocketRecoveryState: TinyDataStore<{
4
+ status: 'connected' | 'recovering' | 'disconnected';
5
+ }>;
6
+ export declare function resetWebsocketClientTeardownState(): void;
7
+ export declare const websocketMessage: TinyPubSub<{
8
+ name: string;
9
+ payload: unknown;
10
+ }>;
11
+ export declare const websocketSystemMessage: TinyPubSub<{
12
+ name: string;
13
+ payload: unknown;
14
+ }>;
15
+ export declare const websocketNonRecoveredReconnect: TinyPubSub<{
16
+ newSocketId: string;
17
+ }>;
18
+ export declare const websocketDebugInfo: TinyDataStore<{
19
+ hostName: string;
20
+ socketId: string;
21
+ partnerId: string;
22
+ }>;
23
+ interface WebsocketClientManager {
24
+ createClient(serverUrl: string, query: Record<string, string>, params: {
25
+ ks: string;
26
+ }): Socket;
27
+ getClient(serverUrl: string): Socket | null;
28
+ destroyClient(serverUrl: string): void;
29
+ destroyAllClients(): void;
30
+ }
31
+ declare class DefaultWebsocketClientManager implements WebsocketClientManager {
32
+ private _instances;
33
+ constructor();
34
+ private _handleMessage;
35
+ createClient(serverUrl: string, query: Record<string, any>, params: {
36
+ ks: string;
37
+ }): Socket;
38
+ getClient(serverUrl: string): Socket | null;
39
+ destroyClient(serverUrl: string): void;
40
+ destroyAllClients(): void;
41
+ }
42
+ export declare const websocketClientManager: DefaultWebsocketClientManager;
43
+ export declare function initializeLogsCollectionIfNeeded(conversationManagerUrl: string, partnerId?: string, flowId?: string, ks?: string): void;
44
+ export {};
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Avatar Timing Tracker Module
3
+ *
4
+ * Centralized module for tracking performance timing throughout the avatar connection session.
5
+ *
6
+ * TIMING FLOW OVERVIEW:
7
+ * ======================
8
+ * STEP 1: User clicks "Talk to Agent" → Runtime connects
9
+ * Measures: Initial button click to runtime connection
10
+ * Parameters: buttonClickTime → runtimeConnectTime
11
+ *
12
+ * STEP 2: Runtime connect → WebSocket connected
13
+ * Measures: WebSocket establishment
14
+ * Parameters: runtimeConnectTime → websocketConnectedTime
15
+ *
16
+ * STEP 3: WebSocket connected → Session created
17
+ * Measures: Backend session creation (join room + create session)
18
+ * Parameters: websocketConnectedTime → sessionCreatedTime
19
+ *
20
+ * STEP 4: Session created → User media granted
21
+ * Measures: User microphone permission and getUserMedia
22
+ * Parameters: sessionCreatedTime → userMediaGrantedTime
23
+ *
24
+ * STEP 5: User media granted → ASR WebRTC connected
25
+ * Measures: ASR peer connection establishment
26
+ * Parameters: userMediaGrantedTime → asrConnectedTime
27
+ * Sub-steps:
28
+ * 5a: ASR init signal sent
29
+ * 5b: ASR backend ready
30
+ * 5c: ASR peer connection established
31
+ *
32
+ * STEP 6: Session created → Video player URL available
33
+ * Measures: Time from session to video player component initialization
34
+ * Parameters: sessionCreatedTime → playerUrlAvailableTime
35
+ *
36
+ * STEP 7: Player URL available → SRS WebRTC connected
37
+ * Measures: SRS WHEP video connection establishment
38
+ * Parameters: playerUrlAvailableTime → srsWebrtcConnectedTime
39
+ * Sub-steps:
40
+ * 7a: SRS player manager start
41
+ * 7b: ICE gathering
42
+ * 7c: WHEP request
43
+ * 7d: Peer connection established
44
+ *
45
+ * STEP 8: SRS connected → Video playing
46
+ * Measures: Time from connection to first video frame
47
+ * Parameters: srsWebrtcConnectedTime → videoPlayingTime
48
+ *
49
+ * FILES INVOLVED:
50
+ * ===============
51
+ * - avatar-launcher-button.tsx: Sets buttonClickTime
52
+ * - runtime.tsx: Sets runtimeConnectTime
53
+ * - connecting-state.ts: Sets websocketConnectedTime, sessionCreatedTime
54
+ * - init-rtc-session.ts: Sets userMediaGrantedTime
55
+ * - connect-to-asr.ts: Sets asrInitSignalTime, asrBackendReadyTime, asrConnectedTime
56
+ * - avatar.tsx: Sets playerUrlAvailableTime
57
+ * - SRSWebRTCPlayerManager.ts: Sets srsWebrtcStartTime, srsWebrtcConnectedTime, videoPlayingTime
58
+ *
59
+ * WHEN TO RESET:
60
+ * ==============
61
+ * Call timingTracker.reset() at:
62
+ * - Start of new avatar connection (avatar-launcher-button.tsx before connection)
63
+ * - After connection is closed (avatar-client-manager.ts disconnect)
64
+ *
65
+ * Usage:
66
+ * ```ts
67
+ * import { timingTracker } from './timing-tracker';
68
+ *
69
+ * // Reset for new session
70
+ * timingTracker.reset();
71
+ *
72
+ * // Set a timing value
73
+ * timingTracker.buttonClickTime = performance.now();
74
+ *
75
+ * // Get a timing value
76
+ * const startTime = timingTracker.buttonClickTime;
77
+ *
78
+ * // Log summary
79
+ * timingTracker.logSummary();
80
+ * ```
81
+ */
82
+ declare class AvatarTimingTracker {
83
+ /**
84
+ * When "Talk to Agent" button is clicked by user
85
+ * Set in: avatar-launcher-button.tsx - handleLaunchAvatar()
86
+ */
87
+ buttonClickTime: DOMHighResTimeStamp | null;
88
+ /**
89
+ * When runtime.connect() is called
90
+ * Set in: runtime.tsx - connect() method
91
+ */
92
+ runtimeConnectTime: DOMHighResTimeStamp | null;
93
+ /**
94
+ * When WebSocket connection is established
95
+ * Set in: connecting-state.ts - connectingWebsocket onDone transition
96
+ */
97
+ websocketConnectedTime: DOMHighResTimeStamp | null;
98
+ /**
99
+ * When stvNewSession request is sent to backend
100
+ * Set in: send-create-session.ts - when stvNewSession is emitted
101
+ */
102
+ sessionRequestSentTime: DOMHighResTimeStamp | null;
103
+ /**
104
+ * When session is created (has sessionId and webrtcUrl)
105
+ * Set in: connecting-state.ts - creatingSession onDone transition
106
+ */
107
+ sessionCreatedTime: DOMHighResTimeStamp | null;
108
+ /**
109
+ * When user grants microphone permission and getUserMedia completes
110
+ * Set in: init-rtc-session.ts - after getUserMedia() succeeds
111
+ */
112
+ userMediaGrantedTime: DOMHighResTimeStamp | null;
113
+ /**
114
+ * When ASR init signal is sent to backend
115
+ * Set in: connect-to-asr.ts - after asr-webrtc-init emit
116
+ */
117
+ asrInitSignalTime: DOMHighResTimeStamp | null;
118
+ /**
119
+ * When backend signals ASR is ready
120
+ * Set in: connect-to-asr.ts - on asr-webrtc-ready event
121
+ */
122
+ asrBackendReadyTime: DOMHighResTimeStamp | null;
123
+ /**
124
+ * When ASR WebRTC peer connection is fully established
125
+ * Set in: connect-to-asr.ts - after joinASR() completes
126
+ */
127
+ asrConnectedTime: DOMHighResTimeStamp | null;
128
+ /**
129
+ * When video player component receives URL and starts initialization
130
+ * Set in: avatar.tsx - when SRSWebRTCPlayer is rendered
131
+ */
132
+ playerUrlAvailableTime: DOMHighResTimeStamp | null;
133
+ /**
134
+ * When SRS player manager starts connection process
135
+ * Set in: SRSWebRTCPlayerManager.ts - start() method begin
136
+ */
137
+ srsWebrtcStartTime: DOMHighResTimeStamp | null;
138
+ /**
139
+ * When SRS WHEP WebRTC peer connection is established
140
+ * Set in: SRSWebRTCPlayerManager.ts - onconnectionstatechange when state='connected'
141
+ */
142
+ srsWebrtcConnectedTime: DOMHighResTimeStamp | null;
143
+ /**
144
+ * When video element starts playing (first frame visible)
145
+ * Set in: SRSWebRTCPlayerManager.ts - video.play().then()
146
+ */
147
+ videoPlayingTime: DOMHighResTimeStamp | null;
148
+ /**
149
+ * Reset all timing values (useful for new sessions)
150
+ */
151
+ reset(): void;
152
+ /**
153
+ * Log complete timing summary
154
+ */
155
+ logSummary(): void;
156
+ }
157
+ export declare const timingTracker: AvatarTimingTracker;
158
+ export {};
@@ -0,0 +1,10 @@
1
+ import { EventPayloads, EventsData, TinyPubsubEventsSource } from './create-tiny-pubsub-events-source';
2
+ import { UnisphereLoggerType } from '@unisphere/core';
3
+ export type EventsHandlersMap<TEvents extends EventsData> = {
4
+ [K in keyof TEvents]?: (payload: EventPayloads<TEvents>[K]) => void;
5
+ };
6
+ export declare const createTinyPubsubEventsHandler: <TEvents extends EventsData>(data: {
7
+ source: TinyPubsubEventsSource<TEvents> | null | undefined;
8
+ handlers: EventsHandlersMap<TEvents>;
9
+ logger: UnisphereLoggerType;
10
+ }) => () => void;
@@ -0,0 +1,27 @@
1
+ import { TinyPubSub, UnisphereLoggerType } from '@unisphere/core';
2
+ import z from 'zod/mini';
3
+ export type EventData<TSchema extends z.ZodMiniType | null = z.ZodMiniType | null> = {
4
+ schema: TSchema;
5
+ once?: boolean;
6
+ abortOnSchemaValidationError?: boolean;
7
+ };
8
+ export type EventsData = Record<string, EventData>;
9
+ export type EventPayloads<TEvents extends EventsData> = {
10
+ [K in keyof TEvents]: TEvents[K]['schema'] extends z.ZodMiniType ? z.infer<TEvents[K]['schema']> : unknown;
11
+ };
12
+ export type Handler<TEvents extends EventsData> = <TEventName extends keyof TEvents & string>(eventName: TEventName, payload: EventPayloads<TEvents>[TEventName]) => void;
13
+ export interface TinyPubsubEventsSource<TEvents extends EventsData> {
14
+ setLogger: (logger: UnisphereLoggerType) => void;
15
+ setHandler: (handler: Handler<TEvents>) => void;
16
+ removeHandler: () => void;
17
+ destroy: () => void;
18
+ resetQueue: () => void;
19
+ }
20
+ export declare const createTinyPubsubEventsSource: <TEvents extends EventsData>(sourceEvent: TinyPubSub<{
21
+ name: string;
22
+ payload: unknown;
23
+ }>, eventsMap: TEvents, options?: {
24
+ logger?: UnisphereLoggerType;
25
+ queueWhilePending?: boolean;
26
+ abortOnSchemaValidationError?: boolean;
27
+ }) => TinyPubsubEventsSource<TEvents>;
@@ -0,0 +1,4 @@
1
+ export declare function getQueryParam(paramName: string, options?: {
2
+ removeAfterRead?: boolean;
3
+ trim?: boolean;
4
+ }): string;
@@ -0,0 +1,5 @@
1
+ export * from './logger-factory';
2
+ export * from './create-tiny-pubsub-events-handler';
3
+ export * from './create-tiny-pubsub-events-source';
4
+ export * from './get-query-param';
5
+ export * from './is-mobile-device';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This function is direct copy from eself client to ensure compatibility.
3
+ * It detects if the current device is a mobile device based on the user agent string.
4
+ * Improve if needed to cover more edge cases.
5
+ *
6
+ * @return {boolean} True if the device is mobile, false otherwise.
7
+ */
8
+ export declare function isMobileDevice(): boolean;
@@ -0,0 +1,2 @@
1
+ import { UnisphereLoggerFactory } from '@unisphere/core';
2
+ export declare const avatarClientLoggerFactory: UnisphereLoggerFactory;