@d-id/client-sdk 1.1.17-staging.72 → 1.1.17-staging.75

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.
@@ -0,0 +1,198 @@
1
+ import { c as b, a as k, S as ee, d as ne, T as te, C as h, b as v, A as E, e as P, f as _ } from "./index-CQ9HzMxW.js";
2
+ function oe(c, C, r, o) {
3
+ const S = b(c, `${C}/v2/agents/${r}`, o);
4
+ return {
5
+ async createStream(s) {
6
+ return S.post("/streams", s);
7
+ }
8
+ };
9
+ }
10
+ async function ie() {
11
+ try {
12
+ return await import("./livekit-client.esm-C1GRQdZY.js");
13
+ } catch {
14
+ throw new Error(
15
+ "LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client"
16
+ );
17
+ }
18
+ }
19
+ function re(c, C) {
20
+ const r = c.attach();
21
+ return C.push(r), r.style.position = "absolute", r.style.width = "1px", r.style.height = "1px", r.style.opacity = "0.01", r.style.pointerEvents = "none", r.muted = !0, r;
22
+ }
23
+ const ae = {
24
+ excellent: v.Strong,
25
+ good: v.Strong,
26
+ poor: v.Weak,
27
+ lost: v.Unknown,
28
+ unknown: v.Unknown
29
+ }, K = JSON.stringify({
30
+ kind: "InternalServerError",
31
+ description: "Stream Error"
32
+ });
33
+ function x(c, C, r, o) {
34
+ var S, s;
35
+ throw C("Failed to connect to LiveKit room:", c), o(), (S = r.onConnectionStateChange) == null || S.call(r, h.Fail), (s = r.onError) == null || s.call(r, c, { streamId: "" }), c;
36
+ }
37
+ async function ge(c, C, r) {
38
+ var j, F;
39
+ const o = k(r.debug || !1, "LiveKitStreamingManager"), {
40
+ Room: S,
41
+ RoomEvent: s,
42
+ ConnectionState: f,
43
+ RemoteParticipant: de,
44
+ RemoteTrack: se
45
+ } = await ie(), { callbacks: e, auth: $, baseURL: N, analytics: U } = r;
46
+ let g = null, w = !1, A = null;
47
+ const M = ee.Fluent;
48
+ let T = !0;
49
+ const L = [];
50
+ g = new S({
51
+ adaptiveStream: !0,
52
+ dynacast: !0
53
+ });
54
+ const V = oe($, N || ne, c, e.onError);
55
+ let p, R, I, l;
56
+ try {
57
+ const n = await V.createStream({
58
+ transport_provider: te.Livekit,
59
+ chat_id: C.chat_id
60
+ }), { session_id: t, session_token: i, session_url: a } = n;
61
+ (j = e.onStreamCreated) == null || j.call(e, { stream_id: t, session_id: t, agent_id: c }), p = t, R = t, I = i, l = a, await g.prepareConnection(l, I);
62
+ } catch (n) {
63
+ x(n, o, e, () => {
64
+ T = !1;
65
+ });
66
+ }
67
+ if (!l || !I || !p || !R)
68
+ return Promise.reject(new Error("Failed to initialize LiveKit stream"));
69
+ g.on(s.ConnectionStateChanged, J).on(s.ConnectionQualityChanged, Q).on(s.ActiveSpeakersChanged, q).on(s.ParticipantConnected, H).on(s.TrackSubscribed, z).on(s.TrackUnsubscribed, W).on(s.DataReceived, B).on(s.MediaDevicesError, G).on(s.EncryptionError, X).on(s.TrackSubscriptionFailed, Y), (F = e.onConnectionStateChange) == null || F.call(e, h.New);
70
+ try {
71
+ await g.connect(l, I), o("LiveKit room joined successfully"), T = !1;
72
+ } catch (n) {
73
+ x(n, o, e, () => {
74
+ T = !1;
75
+ });
76
+ }
77
+ U.enrich({
78
+ "stream-type": M
79
+ });
80
+ function J(n) {
81
+ var t, i, a, m, d;
82
+ switch (o("Connection state changed:", n), n) {
83
+ case f.Connecting:
84
+ (t = e.onConnectionStateChange) == null || t.call(e, h.Connecting);
85
+ break;
86
+ case f.Connected:
87
+ o("LiveKit room connected successfully"), w = !0, T ? queueMicrotask(() => {
88
+ var u;
89
+ (u = e.onConnectionStateChange) == null || u.call(e, h.Connected);
90
+ }) : (i = e.onConnectionStateChange) == null || i.call(e, h.Connected);
91
+ break;
92
+ case f.Disconnected:
93
+ o("LiveKit room disconnected"), w = !1, (a = e.onConnectionStateChange) == null || a.call(e, h.Disconnected);
94
+ break;
95
+ case f.Reconnecting:
96
+ o("LiveKit room reconnecting..."), (m = e.onConnectionStateChange) == null || m.call(e, h.Connecting);
97
+ break;
98
+ case f.SignalReconnecting:
99
+ o("LiveKit room signal reconnecting..."), (d = e.onConnectionStateChange) == null || d.call(e, h.Connecting);
100
+ break;
101
+ }
102
+ }
103
+ function Q(n, t) {
104
+ var i;
105
+ o("Connection quality:", n), t != null && t.isLocal && ((i = e.onConnectivityStateChange) == null || i.call(e, ae[n]));
106
+ }
107
+ function q(n) {
108
+ var i, a;
109
+ o("Active speakers changed:", n), n[0] ? (i = e.onAgentActivityStateChange) == null || i.call(e, E.Talking) : (a = e.onAgentActivityStateChange) == null || a.call(e, E.Idle);
110
+ }
111
+ function H(n) {
112
+ o("Participant connected:", n.identity);
113
+ }
114
+ function z(n, t, i) {
115
+ var a, m;
116
+ if (o(`Track subscribed: ${n.kind} from ${i.identity}`), n.kind === "video") {
117
+ const d = re(n, L);
118
+ document.body.appendChild(d), d.play().then(() => {
119
+ o("Hidden video element playing");
120
+ }).catch((u) => o("Error playing hidden element:", u)), o(`Video element created, srcObject: ${d.srcObject}`), d.srcObject && ((a = e.onSrcObjectReady) == null || a.call(e, d.srcObject), (m = e.onVideoStateChange) == null || m.call(e, P.Start));
121
+ }
122
+ if (n.kind === "audio") {
123
+ const d = n.attach();
124
+ L.push(d), d.style.display = "none", document.body.appendChild(d), d.play().catch((u) => o("Error playing audio element:", u));
125
+ }
126
+ }
127
+ function W(n, t, i) {
128
+ var a;
129
+ o(`Track unsubscribed: ${n.kind} from ${i.identity}`), n.kind === "video" && ((a = e.onVideoStateChange) == null || a.call(e, P.Stop));
130
+ }
131
+ function B(n, t) {
132
+ var a, m, d, u, O;
133
+ const i = new TextDecoder().decode(n);
134
+ o("Data received:", i);
135
+ try {
136
+ const y = JSON.parse(i);
137
+ y.subject === _.StreamStarted && ((a = y.metadata) != null && a.videoId) ? (A = y.metadata.videoId, (m = e.onVideoIdChange) == null || m.call(e, A), (d = e.onAgentActivityStateChange) == null || d.call(e, E.Talking)) : y.subject === _.StreamDone && (A = null, (u = e.onVideoIdChange) == null || u.call(e, A), (O = e.onAgentActivityStateChange) == null || O.call(e, E.Idle));
138
+ } catch (y) {
139
+ o("Failed to parse data channel message:", y);
140
+ }
141
+ }
142
+ function G(n) {
143
+ var t;
144
+ o("Media devices error:", n), (t = e.onError) == null || t.call(e, new Error(K), { streamId: p });
145
+ }
146
+ function X(n) {
147
+ var t;
148
+ o("Encryption error:", n), (t = e.onError) == null || t.call(e, new Error(K), { streamId: p });
149
+ }
150
+ function Y(n, t, i) {
151
+ o("Track subscription failed:", { trackSid: n, participant: t, reason: i });
152
+ }
153
+ function Z() {
154
+ L.forEach((n) => {
155
+ n.parentNode && n.parentNode.removeChild(n);
156
+ }), L.length = 0;
157
+ }
158
+ async function D(n) {
159
+ var t, i;
160
+ if (!w || !g) {
161
+ o("Room is not connected for sending messages"), (t = e.onError) == null || t.call(e, new Error(K), {
162
+ streamId: p
163
+ });
164
+ return;
165
+ }
166
+ try {
167
+ await g.localParticipant.sendText(n, {
168
+ topic: "lk.chat"
169
+ }), o("Message sent successfully:", n);
170
+ } catch (a) {
171
+ o("Failed to send message:", a), (i = e.onError) == null || i.call(e, new Error(K), { streamId: p });
172
+ }
173
+ }
174
+ return {
175
+ speak(n) {
176
+ const t = JSON.stringify({
177
+ type: "speak",
178
+ payload: n
179
+ });
180
+ return D(t);
181
+ },
182
+ async disconnect() {
183
+ var n, t;
184
+ g && (await g.disconnect(), g = null), Z(), w = !1, (n = e.onConnectionStateChange) == null || n.call(e, h.Completed), (t = e.onAgentActivityStateChange) == null || t.call(e, E.Idle);
185
+ },
186
+ sendDataChannelMessage: D,
187
+ sendTextMessage: D,
188
+ sessionId: R,
189
+ streamId: p,
190
+ streamType: M,
191
+ interruptAvailable: !0,
192
+ triggersAvailable: !1
193
+ };
194
+ }
195
+ export {
196
+ ge as createLiveKitStreamingManager,
197
+ x as handleInitError
198
+ };
@@ -20,6 +20,12 @@ export type StreamingManager<T extends CreateStreamOptions | CreateStreamV2Optio
20
20
  * @param payload The message payload to send
21
21
  */
22
22
  sendDataChannelMessage(payload: string): void;
23
+ /**
24
+ * Method to send text messages to the server
25
+ * @param payload The message payload to send
26
+ * supported only for livekit manager
27
+ */
28
+ sendTextMessage?(payload: string): Promise<void>;
23
29
  /**
24
30
  * Session identifier information, should be returned in the body of all streaming requests
25
31
  */
@@ -1,5 +1,6 @@
1
1
  import { CreateStreamOptions, CreateStreamV2Options, StreamingManagerOptions } from '../../types';
2
2
  import { StreamingManager } from './common';
3
3
 
4
+ export declare function handleInitError(error: unknown, log: (message?: any, ...optionalParams: any[]) => void, callbacks: StreamingManagerOptions['callbacks'], markInitialConnectionDone: () => void): void;
4
5
  export declare function createLiveKitStreamingManager<T extends CreateStreamV2Options>(agentId: string, agent: T, options: StreamingManagerOptions): Promise<StreamingManager<T>>;
5
6
  export type LiveKitStreamingManager<T extends CreateStreamOptions> = StreamingManager<T>;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@d-id/client-sdk",
3
3
  "private": false,
4
- "version": "1.1.17-staging.72",
4
+ "version": "1.1.17-staging.75",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {