@d-id/client-sdk 1.1.24-staging.114 → 1.1.24-staging.115

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.
package/dist/index.js CHANGED
@@ -52,7 +52,7 @@ var C = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(C || {}
52
52
  const at = 45 * 1e3, ot = "X-Playground-Chat", fe = "https://api.d-id.com", st = "wss://notifications.d-id.com", ct = "79f81a83a67430be2bc0fd61042b8faa", Fe = (e) => new Promise((t) => setTimeout(t, e)), ce = (e = 16) => {
53
53
  const t = new Uint8Array(e);
54
54
  return window.crypto.getRandomValues(t), Array.from(t, (i) => i.toString(16).padStart(2, "0")).join("").slice(0, 13);
55
- }, ze = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type, Me = (e) => e === Be.Expressive, dt = (e) => [U.TextOnly, U.Playground, U.Maintenance].includes(e), Ne = (e) => e && [U.DirectPlayback, U.Off].includes(e);
55
+ }, ze = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type, Ee = (e) => e === Be.Expressive, dt = (e) => [U.TextOnly, U.Playground, U.Maintenance].includes(e), Ne = (e) => e && [U.DirectPlayback, U.Off].includes(e);
56
56
  function ut(e, t) {
57
57
  let i;
58
58
  return {
@@ -112,7 +112,7 @@ const ft = (e) => ve(e, {
112
112
  timeout: 0,
113
113
  shouldRetryFn: (t) => t.status === 429
114
114
  });
115
- function Ee(e, t = fe, i, n) {
115
+ function Me(e, t = fe, i, n) {
116
116
  const c = async (o, s) => {
117
117
  const { skipErrorHandler: a, ...r } = s || {}, d = await ft(
118
118
  () => fetch(t + (o != null && o.startsWith("/") ? o : `/${o}`), {
@@ -147,7 +147,7 @@ function Ee(e, t = fe, i, n) {
147
147
  };
148
148
  }
149
149
  function mt(e, t = fe, i, n) {
150
- const c = Ee(e, `${t}/agents`, i, n);
150
+ const c = Me(e, `${t}/agents`, i, n);
151
151
  return {
152
152
  create(o, s) {
153
153
  return c.post("/", o, s);
@@ -342,7 +342,7 @@ function Ct(e) {
342
342
  return e && e.length > 0 ? e : [];
343
343
  }
344
344
  function kt(e, t, i, n) {
345
- const c = Ee(e, `${t}/v2/agents/${i}`, n);
345
+ const c = Me(e, `${t}/v2/agents/${i}`, n);
346
346
  return {
347
347
  async createStream(o) {
348
348
  return c.post("/sessions", o);
@@ -377,7 +377,7 @@ function ke(e, t, i, n) {
377
377
  async function Dt(e, t, i) {
378
378
  var _e, Ae;
379
379
  const n = We(i.debug || !1, "LiveKitStreamingManager"), { Room: c, RoomEvent: o, ConnectionState: s } = await ye(), { callbacks: a, auth: r, baseURL: d, analytics: m, microphoneStream: p } = i;
380
- let u = null, E = !1;
380
+ let u = null, M = !1;
381
381
  const x = ne.Fluent;
382
382
  let O = !0, I = null, A = null;
383
383
  u = new c({
@@ -425,13 +425,13 @@ async function Dt(e, t, i) {
425
425
  (g = a.onConnectionStateChange) == null || g.call(a, S.Connecting);
426
426
  break;
427
427
  case s.Connected:
428
- n("LiveKit room connected successfully"), E = !0, O ? queueMicrotask(() => {
428
+ n("LiveKit room connected successfully"), M = !0, O ? queueMicrotask(() => {
429
429
  var z;
430
430
  (z = a.onConnectionStateChange) == null || z.call(a, S.Connected);
431
431
  }) : (v = a.onConnectionStateChange) == null || v.call(a, S.Connected);
432
432
  break;
433
433
  case s.Disconnected:
434
- n("LiveKit room disconnected"), E = !1, (k = a.onConnectionStateChange) == null || k.call(a, S.Disconnected);
434
+ n("LiveKit room disconnected"), M = !1, (k = a.onConnectionStateChange) == null || k.call(a, S.Disconnected);
435
435
  break;
436
436
  case s.Reconnecting:
437
437
  n("LiveKit room reconnecting..."), (b = a.onConnectionStateChange) == null || b.call(a, S.Connecting);
@@ -521,7 +521,7 @@ async function Dt(e, t, i) {
521
521
  }
522
522
  return null;
523
523
  }
524
- function M(l) {
524
+ function E(l) {
525
525
  if (!A || !A.track)
526
526
  return !1;
527
527
  const g = A.track.mediaStreamTrack;
@@ -529,7 +529,7 @@ async function Dt(e, t, i) {
529
529
  }
530
530
  async function P(l) {
531
531
  var V, z;
532
- if (!E || !u)
532
+ if (!M || !u)
533
533
  throw n("Room is not connected, cannot publish microphone stream"), new Error("Room is not connected");
534
534
  const g = l.getAudioTracks();
535
535
  if (g.length === 0) {
@@ -544,7 +544,7 @@ async function Dt(e, t, i) {
544
544
  }), A = b;
545
545
  return;
546
546
  }
547
- M(v) && (n("Unpublishing existing microphone track before publishing new one"), await Z()), n("Publishing microphone track from provided MediaStream", { trackId: v.id });
547
+ E(v) && (n("Unpublishing existing microphone track before publishing new one"), await Z()), n("Publishing microphone track from provided MediaStream", { trackId: v.id });
548
548
  try {
549
549
  A = await u.localParticipant.publishTrack(v, {
550
550
  source: k.Source.Microphone
@@ -568,7 +568,7 @@ async function Dt(e, t, i) {
568
568
  }
569
569
  async function w(l, g) {
570
570
  var v, k;
571
- if (!E || !u) {
571
+ if (!M || !u) {
572
572
  n("Room is not connected for sending messages"), (v = a.onError) == null || v.call(a, new Error(le), {
573
573
  sessionId: B
574
574
  });
@@ -598,7 +598,7 @@ async function Dt(e, t, i) {
598
598
  }
599
599
  async function pe() {
600
600
  var l, g;
601
- L && (clearTimeout(L), L = null), u && (await Z(), await u.disconnect()), h(), E = !1, (l = a.onConnectionStateChange) == null || l.call(a, S.Disconnected), (g = a.onAgentActivityStateChange) == null || g.call(a, ae.Idle);
601
+ L && (clearTimeout(L), L = null), u && (await Z(), await u.disconnect()), h(), M = !1, (l = a.onConnectionStateChange) == null || l.call(a, S.Disconnected), (g = a.onAgentActivityStateChange) == null || g.call(a, ae.Idle);
602
602
  }
603
603
  return {
604
604
  speak(l) {
@@ -620,7 +620,7 @@ async function Dt(e, t, i) {
620
620
  throw n("Cannot reconnect: missing room, URL or token"), new Error("Cannot reconnect: session not available");
621
621
  n("Reconnecting to LiveKit room, state:", u.state), (l = a.onConnectionStateChange) == null || l.call(a, S.Connecting);
622
622
  try {
623
- if (await u.connect(X, K), n("Room reconnected"), E = !0, u.remoteParticipants.size === 0) {
623
+ if (await u.connect(X, K), n("Room reconnected"), M = !0, u.remoteParticipants.size === 0) {
624
624
  if (n("Waiting for agent to join..."), !await new Promise((b) => {
625
625
  const V = setTimeout(() => {
626
626
  u == null || u.off(o.ParticipantConnected, z), b(!1);
@@ -648,13 +648,13 @@ async function Dt(e, t, i) {
648
648
  triggersAvailable: !1
649
649
  };
650
650
  }
651
- const Mt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
651
+ const Et = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
652
652
  __proto__: null,
653
653
  DataChannelTopic: Te,
654
654
  createLiveKitStreamingManager: Dt,
655
655
  handleInitError: ke
656
656
  }, Symbol.toStringTag, { value: "Module" }));
657
- function Et(e, t, i) {
657
+ function Mt(e, t, i) {
658
658
  if (!e)
659
659
  throw new Error("Please connect to the agent first");
660
660
  if (!e.interruptAvailable)
@@ -734,14 +734,16 @@ function bt(e) {
734
734
  function jt(e, t, i) {
735
735
  if (!e.content)
736
736
  return;
737
- const n = {
737
+ const n = t.messages[t.messages.length - 1];
738
+ (n == null ? void 0 : n.role) === "assistant" && !n.interrupted && (n.interrupted = !0);
739
+ const c = {
738
740
  id: e.id || `user-${Date.now()}`,
739
741
  role: e.role,
740
742
  content: e.content,
741
743
  created_at: e.created_at || (/* @__PURE__ */ new Date()).toISOString(),
742
744
  transcribed: !0
743
745
  };
744
- t.messages.push(n), i == null || i([...t.messages], "user");
746
+ t.messages.push(c), i == null || i([...t.messages], "user");
745
747
  }
746
748
  function Lt(e, t, i, n, c) {
747
749
  if (e === Y.Transcribe && t.content) {
@@ -781,12 +783,12 @@ function $t(e, t, i, n, c) {
781
783
  mode: t.chatMode
782
784
  });
783
785
  } else {
784
- const m = N, p = [m.StreamVideoDone, m.StreamVideoError, m.StreamVideoRejected], u = [m.StreamFailed, m.StreamVideoError, m.StreamVideoRejected], E = wt(a, n, { mode: t.chatMode });
786
+ const m = N, p = [m.StreamVideoDone, m.StreamVideoError, m.StreamVideoRejected], u = [m.StreamFailed, m.StreamVideoError, m.StreamVideoRejected], M = wt(a, n, { mode: t.chatMode });
785
787
  if (s = s, s === m.StreamVideoCreated)
786
- e.linkTrack("agent-video", E, m.StreamVideoCreated, ["start"]);
788
+ e.linkTrack("agent-video", M, m.StreamVideoCreated, ["start"]);
787
789
  else if (p.includes(s)) {
788
790
  const x = s.split("/")[1];
789
- u.includes(s) ? e.track("agent-video", { ...E, event: x }) : e.linkTrack("agent-video", { ...E, event: x }, s, ["done"]);
791
+ u.includes(s) ? e.track("agent-video", { ...M, event: x }) : e.linkTrack("agent-video", { ...M, event: x }, s, ["done"]);
790
792
  }
791
793
  u.includes(s) && ((d = (r = i.callbacks).onError) == null || d.call(r, new Error(`Stream failed with event ${s}`), { data: a })), a.event === m.StreamDone && c();
792
794
  }
@@ -794,7 +796,7 @@ function $t(e, t, i, n, c) {
794
796
  };
795
797
  }
796
798
  function xt(e, t, i, n) {
797
- const c = Ee(e, `${t}/agents/${i}`, n);
799
+ const c = Me(e, `${t}/agents/${i}`, n);
798
800
  return {
799
801
  createStream(o, s) {
800
802
  return c.post("/streams", o, { signal: s });
@@ -979,9 +981,9 @@ function Wt() {
979
981
  }
980
982
  function Ot(e, t, i, n, c) {
981
983
  let o = [], s, a = 0, r = !1, d = ee.Unknown, m = ee.Unknown, p = 0, u = 0;
982
- const E = Wt();
984
+ const M = Wt();
983
985
  return setInterval(async () => {
984
- const x = await e.getStats(), { isReceiving: O, avgJitterDelayInInterval: I, freezeCount: A } = E(x), L = zt(x);
986
+ const x = await e.getStats(), { isReceiving: O, avgJitterDelayInInterval: I, freezeCount: A } = M(x), L = zt(x);
985
987
  if (O)
986
988
  a = 0, p = A - u, m = I < Jt ? ee.Strong : I > Ut && p > 1 ? ee.Weak : d, m !== d && (c == null || c(m), d = m, u += p, p = 0), r || (n == null || n(C.Start), s = o[o.length - 1], o = [], r = !0), o.push(L);
987
989
  else if (r && (a++, a >= Kt)) {
@@ -1056,7 +1058,7 @@ function $e({
1056
1058
  async function Xt(e, t, { debug: i = !1, callbacks: n, auth: c, baseURL: o = fe, analytics: s }, a) {
1057
1059
  var Z;
1058
1060
  const r = We(i, "WebRTCStreamingManager"), d = Ht(r);
1059
- let m = !1, p = !1, u = C.Stop, E = C.Stop;
1061
+ let m = !1, p = !1, u = C.Stop, M = C.Stop;
1060
1062
  const { startConnection: x, sendStreamRequest: O, close: I, createStream: A, addIceCandidate: L } = xt(
1061
1063
  c,
1062
1064
  o,
@@ -1087,7 +1089,7 @@ async function Xt(e, t, { debug: i = !1, callbacks: n, auth: c, baseURL: o = fe,
1087
1089
  W,
1088
1090
  H,
1089
1091
  (h, w) => $e({
1090
- statsSignal: E = h,
1092
+ statsSignal: M = h,
1091
1093
  dataChannelSignal: D === ne.Legacy ? u : void 0,
1092
1094
  onVideoStateChange: n.onVideoStateChange,
1093
1095
  onAgentActivityStateChange: n.onAgentActivityStateChange,
@@ -1129,7 +1131,7 @@ async function Xt(e, t, { debug: i = !1, callbacks: n, auth: c, baseURL: o = fe,
1129
1131
  j(F.videoId);
1130
1132
  }
1131
1133
  h === N.StreamDone && j(null), u = h === N.StreamStarted ? C.Start : C.Stop, $e({
1132
- statsSignal: D === ne.Legacy ? E : void 0,
1134
+ statsSignal: D === ne.Legacy ? M : void 0,
1133
1135
  dataChannelSignal: u,
1134
1136
  onVideoStateChange: n.onVideoStateChange,
1135
1137
  onAgentActivityStateChange: n.onAgentActivityStateChange,
@@ -1141,7 +1143,7 @@ async function Xt(e, t, { debug: i = !1, callbacks: n, auth: c, baseURL: o = fe,
1141
1143
  const F = typeof w == "string" ? w : w == null ? void 0 : w.metadata;
1142
1144
  F && s.enrich({ streamMetadata: F }), (Q = n.onStreamReady) == null || Q.call(n);
1143
1145
  }
1144
- const M = {
1146
+ const E = {
1145
1147
  [N.StreamStarted]: J,
1146
1148
  [N.StreamDone]: J,
1147
1149
  [N.StreamReady]: G
@@ -1149,7 +1151,7 @@ async function Xt(e, t, { debug: i = !1, callbacks: n, auth: c, baseURL: o = fe,
1149
1151
  $.onmessage = (h) => {
1150
1152
  var Q;
1151
1153
  const { subject: w, data: F } = d(h.data);
1152
- (Q = M[w]) == null || Q.call(M, w, F);
1154
+ (Q = E[w]) == null || Q.call(E, w, F);
1153
1155
  }, y.oniceconnectionstatechange = () => {
1154
1156
  var w;
1155
1157
  r("peerConnection.oniceconnectionstatechange => " + y.iceConnectionState);
@@ -1233,7 +1235,7 @@ async function Yt(e, t, i, n) {
1233
1235
  const { version: o, ...s } = t;
1234
1236
  switch (s.transport_provider) {
1235
1237
  case he.Livekit:
1236
- const { createLiveKitStreamingManager: a } = await Promise.resolve().then(() => Mt);
1238
+ const { createLiveKitStreamingManager: a } = await Promise.resolve().then(() => Et);
1237
1239
  return a(c, s, i);
1238
1240
  default:
1239
1241
  throw new Error(`Unsupported transport provider: ${s.transport_provider}`);
@@ -1263,7 +1265,7 @@ function en(e) {
1263
1265
  }, ...i && { end_user_data: i } };
1264
1266
  }
1265
1267
  function tn(e, t) {
1266
- return Me(e.presenter.type) ? { version: De.V2, ...Gt() } : { version: De.V1, ...en(t) };
1268
+ return Ee(e.presenter.type) ? { version: De.V2, ...Gt() } : { version: De.V1, ...en(t) };
1267
1269
  }
1268
1270
  function nn(e, t, i, n, c) {
1269
1271
  c === ne.Fluent ? rn(e, t, i, n, c) : on(e, t, i, n, c);
@@ -1366,9 +1368,9 @@ function xe(e, t, i, n) {
1366
1368
  });
1367
1369
  }
1368
1370
  async function sn(e, t, i, n, c) {
1369
- var m, p, u, E;
1371
+ var m, p, u, M;
1370
1372
  const o = async () => {
1371
- if (Me(e.presenter.type)) {
1373
+ if (Ee(e.presenter.type)) {
1372
1374
  const x = await xe(e, t, n), O = `${Zt}_${x.sessionId}`, I = (/* @__PURE__ */ new Date()).toISOString();
1373
1375
  return { chatResult: {
1374
1376
  chatMode: U.Functional,
@@ -1403,7 +1405,7 @@ async function sn(e, t, i, n, c) {
1403
1405
  }
1404
1406
  }
1405
1407
  }, { chatResult: s, streamingManager: a } = await o(), { chat: r, chatMode: d } = s;
1406
- return d && t.mode !== void 0 && d !== t.mode && (t.mode = d, (p = (m = t.callbacks).onModeChange) == null || p.call(m, d), d !== U.Functional) ? ((E = (u = t.callbacks).onError) == null || E.call(u, new qe(d)), a == null || a.disconnect(), { chat: r }) : { chat: r, streamingManager: a };
1408
+ return d && t.mode !== void 0 && d !== t.mode && (t.mode = d, (p = (m = t.callbacks).onModeChange) == null || p.call(m, d), d !== U.Functional) ? ((M = (u = t.callbacks).onError) == null || M.call(u, new qe(d)), a == null || a.disconnect(), { chat: r }) : { chat: r, streamingManager: a };
1407
1409
  }
1408
1410
  async function un(e, t) {
1409
1411
  var B, K, X;
@@ -1421,7 +1423,7 @@ async function un(e, t) {
1421
1423
  be(() => {
1422
1424
  d.track("agent-sdk", { event: "init" }, m);
1423
1425
  });
1424
- const p = mt(t.auth, s, t.callbacks.onError, t.externalId), u = await p.getById(e), E = Me(u.presenter.type);
1426
+ const p = mt(t.auth, s, t.callbacks.onError, t.externalId), u = await p.getById(e), M = Ee(u.presenter.type);
1425
1427
  d.enrich(ht(u));
1426
1428
  const { onMessage: x, clearQueue: O } = $t(
1427
1429
  d,
@@ -1441,9 +1443,9 @@ async function un(e, t) {
1441
1443
  d.track("agent-sdk", { event: "loaded", ...gt(u) }, A);
1442
1444
  });
1443
1445
  async function L(f) {
1444
- var W, H, q, j, J, G, M;
1446
+ var W, H, q, j, J, G, E;
1445
1447
  (H = (W = t.callbacks).onConnectionStateChange) == null || H.call(W, S.Connecting), te.reset(), f && !i && (delete r.chat, (j = (q = t.callbacks).onNewMessage) == null || j.call(q, [...r.messages], "answer"));
1446
- const R = a === U.DirectPlayback || E ? Promise.resolve(void 0) : Pt(
1448
+ const R = a === U.DirectPlayback || M ? Promise.resolve(void 0) : Pt(
1447
1449
  t.auth,
1448
1450
  o,
1449
1451
  { onMessage: x, onError: t.callbacks.onError },
@@ -1471,7 +1473,7 @@ async function un(e, t) {
1471
1473
  var Z, h;
1472
1474
  throw re(U.Maintenance), (h = (Z = t.callbacks).onConnectionStateChange) == null || h.call(Z, S.Fail), P;
1473
1475
  }), [$, { streamingManager: D, chat: _ }] = await Promise.all([R, y]);
1474
- _ && _.id !== ((J = r.chat) == null ? void 0 : J.id) && ((M = (G = t.callbacks).onNewChat) == null || M.call(G, _.id)), r.streamingManager = D, r.socketManager = $, r.chat = _, i = !1, d.enrich({
1476
+ _ && _.id !== ((J = r.chat) == null ? void 0 : J.id) && ((E = (G = t.callbacks).onNewChat) == null || E.call(G, _.id)), r.streamingManager = D, r.socketManager = $, r.chat = _, i = !1, d.enrich({
1475
1477
  chatId: _ == null ? void 0 : _.id,
1476
1478
  streamId: D == null ? void 0 : D.streamId,
1477
1479
  mode: r.chatMode
@@ -1511,7 +1513,7 @@ async function un(e, t) {
1511
1513
  },
1512
1514
  async reconnect() {
1513
1515
  const f = r.streamingManager;
1514
- if (E && (f != null && f.reconnect)) {
1516
+ if (M && (f != null && f.reconnect)) {
1515
1517
  try {
1516
1518
  await f.reconnect(), d.track("agent-chat", {
1517
1519
  event: "reconnect",
@@ -1577,17 +1579,17 @@ async function un(e, t) {
1577
1579
  r.chat = G.chat, (J = (j = t.callbacks).onNewChat) == null || J.call(j, r.chat.id);
1578
1580
  }
1579
1581
  return r.chat.id;
1580
- }, $ = async (j, J) => ve(E ? async () => {
1581
- var M, P;
1582
- return await ((P = (M = r.streamingManager) == null ? void 0 : M.sendTextMessage) == null ? void 0 : P.call(M, f)), Promise.resolve({});
1582
+ }, $ = async (j, J) => ve(M ? async () => {
1583
+ var E, P;
1584
+ return await ((P = (E = r.streamingManager) == null ? void 0 : E.sendTextMessage) == null ? void 0 : P.call(E, f)), Promise.resolve({});
1583
1585
  } : async () => {
1584
- var M, P;
1586
+ var E, P;
1585
1587
  return p.chat(
1586
1588
  u.id,
1587
1589
  J,
1588
1590
  {
1589
1591
  chatMode: r.chatMode,
1590
- streamId: (M = r.streamingManager) == null ? void 0 : M.streamId,
1592
+ streamId: (E = r.streamingManager) == null ? void 0 : E.streamId,
1591
1593
  sessionId: (P = r.streamingManager) == null ? void 0 : P.sessionId,
1592
1594
  messages: j.map(({ matches: Z, ...h }) => h)
1593
1595
  },
@@ -1598,10 +1600,10 @@ async function un(e, t) {
1598
1600
  );
1599
1601
  }, {
1600
1602
  limit: 2,
1601
- shouldRetryFn: (M) => {
1603
+ shouldRetryFn: (E) => {
1602
1604
  var h, w, F, Q;
1603
- const P = (h = M == null ? void 0 : M.message) == null ? void 0 : h.includes("missing or invalid session_id");
1604
- return !((w = M == null ? void 0 : M.message) == null ? void 0 : w.includes("Stream Error")) && !P ? ((Q = (F = t.callbacks).onError) == null || Q.call(F, M), !1) : !0;
1605
+ const P = (h = E == null ? void 0 : E.message) == null ? void 0 : h.includes("missing or invalid session_id");
1606
+ return !((w = E == null ? void 0 : E.message) == null ? void 0 : w.includes("Stream Error")) && !P ? ((Q = (F = t.callbacks).onError) == null || Q.call(F, E), !1) : !0;
1605
1607
  },
1606
1608
  onRetry: async () => {
1607
1609
  await T(), await L(!1);
@@ -1718,7 +1720,7 @@ async function un(e, t) {
1718
1720
  type: f || "click",
1719
1721
  video_duration_to_interrupt: Ce.get(!0),
1720
1722
  message_duration_to_interrupt: te.get(!0)
1721
- }), R.interrupted = !0, ($ = (y = t.callbacks).onNewMessage) == null || $.call(y, [...r.messages], "answer"), E ? Tt(r.streamingManager) : (Et(r.streamingManager, (D = r.streamingManager) == null ? void 0 : D.streamType, n), It(r.streamingManager, n));
1723
+ }), R.interrupted = !0, ($ = (y = t.callbacks).onNewMessage) == null || $.call(y, [...r.messages], "answer"), M ? Tt(r.streamingManager) : (Mt(r.streamingManager, (D = r.streamingManager) == null ? void 0 : D.streamType, n), It(r.streamingManager, n));
1722
1724
  }
1723
1725
  };
1724
1726
  }
@@ -1,4 +1,4 @@
1
- (function(W,Ce){typeof exports=="object"&&typeof module<"u"?Ce(exports):typeof define=="function"&&define.amd?define(["exports"],Ce):(W=typeof globalThis<"u"?globalThis:W||self,Ce(W.index={}))})(this,function(W){"use strict";var vf=Object.defineProperty;var yf=(W,Ce,Et)=>Ce in W?vf(W,Ce,{enumerable:!0,configurable:!0,writable:!0,value:Et}):W[Ce]=Et;var Cn=(W,Ce,Et)=>yf(W,typeof Ce!="symbol"?Ce+"":Ce,Et);class Ce extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));Cn(this,"kind");Cn(this,"description");Cn(this,"error");this.kind=t,this.description=i,this.error=r}}class Et extends Ce{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Lr extends Ce{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class Pt extends Ce{constructor(t,i){super({kind:"ValidationError",description:t});Cn(this,"key");this.key=i}}class Nr extends Ce{constructor(e){super({kind:"WSError",description:e})}}var Ur=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Ur||{}),Fr=(n=>(n.TRIAL="deid-trial",n.PRO="deid-pro",n.ENTERPRISE="deid-enterprise",n.LITE="deid-lite",n.ADVANCED="deid-advanced",n.BUILD="deid-api-build",n.LAUNCH="deid-api-launch",n.SCALE="deid-api-scale",n))(Fr||{}),jr=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(jr||{}),Br=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(Br||{}),ye=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(ye||{}),Le=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(Le||{}),Vr=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Vr||{}),qr=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(qr||{}),Kr=(n=>(n.Pdf="pdf",n.Text="text",n.Html="html",n.Word="word",n.Json="json",n.Markdown="markdown",n.Csv="csv",n.Excel="excel",n.Powerpoint="powerpoint",n.Archive="archive",n.Image="image",n.Audio="audio",n.Video="video",n))(Kr||{}),ri=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(ri||{});const yc=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var $=(n=>(n.Start="START",n.Stop="STOP",n))($||{}),Ke=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(Ke||{}),Ye=(n=>(n.Idle="IDLE",n.Talking="TALKING",n))(Ye||{}),fe=(n=>(n.ChatAnswer="chat/answer",n.ChatPartial="chat/partial",n.ChatAudioTranscribed="chat/audio-transcribed",n.StreamDone="stream/done",n.StreamStarted="stream/started",n.StreamFailed="stream/error",n.StreamReady="stream/ready",n.StreamCreated="stream/created",n.StreamInterrupt="stream/interrupt",n.StreamVideoCreated="stream-video/started",n.StreamVideoDone="stream-video/done",n.StreamVideoError="stream-video/error",n.StreamVideoRejected="stream-video/rejected",n))(fe||{}),Q=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnected="disconnected",n))(Q||{}),ze=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(ze||{}),Xt=(n=>(n.Livekit="livekit",n))(Xt||{}),zr=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(zr||{}),Wr=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(Wr||{});const bc=45*1e3,kc="X-Playground-Chat",Zt="https://api.d-id.com",Tc="wss://notifications.d-id.com",Sc="79f81a83a67430be2bc0fd61042b8faa",Gr=n=>new Promise(e=>setTimeout(e,n)),Nt=(n=16)=>{const e=new Uint8Array(n);return window.crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").slice(0,13)},Hr=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,si=n=>n===ri.Expressive,Cc=n=>[ye.TextOnly,ye.Playground,ye.Maintenance].includes(n),Jr=n=>n&&[ye.DirectPlayback,ye.Off].includes(n);function Ec(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function ai(n,e){const t={limit:(e==null?void 0:e.limit)??3,delayMs:(e==null?void 0:e.delayMs)??0,timeout:(e==null?void 0:e.timeout)??3e4,timeoutErrorMessage:(e==null?void 0:e.timeoutErrorMessage)||"Timeout error",shouldRetryFn:(e==null?void 0:e.shouldRetryFn)??(()=>!0),onRetry:(e==null?void 0:e.onRetry)??(()=>{})};let i;for(let r=1;r<=t.limit;r++)try{if(!t.timeout)return await n();const{promise:s,clear:o}=Ec(t.timeout,t.timeoutErrorMessage),a=n().finally(o);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Gr(t.delayMs),t.onRetry(s)}throw i}function oi(n){if(n!==void 0)return window.localStorage.setItem("did_external_key_id",n),n;let e=window.localStorage.getItem("did_external_key_id");if(!e){let t=Nt();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let Pc=Nt();function $r(n,e){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${oi(e)}_${Pc}`;throw new Error(`Unknown auth type: ${n}`)}const wc=n=>ai(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function ci(n,e=Zt,t,i){const r=async(s,o)=>{const{skipErrorHandler:a,...c}=o||{},d=await wc(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...c,headers:{...c.headers,Authorization:$r(n,i),"Content-Type":"application/json"}}));if(!d.ok){let u=await d.text().catch(()=>`Failed to fetch with status ${d.status}`);const l=new Error(u);throw t&&!a&&t(l,{url:s,options:c,headers:d.headers}),l}return d.json()};return{get(s,o){return r(s,{...o,method:"GET"})},post(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"POST"})},delete(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"DELETE"})},patch(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"PATCH"})}}}function Rc(n,e=Zt,t,i){const r=ci(n,`${e}/agents`,t,i);return{create(s,o){return r.post("/",s,o)},getAgents(s,o){return r.get(`/${s?`?tag=${s}`:""}`,o).then(a=>a??[])},getById(s,o){return r.get(`/${s}`,o)},delete(s,o){return r.delete(`/${s}`,void 0,o)},update(s,o,a){return r.patch(`/${s}`,o,a)},newChat(s,o,a){return r.post(`/${s}/chat`,o,a)},chat(s,o,a,c){return r.post(`/${s}/chat/${o}`,a,c)},createRating(s,o,a,c){return r.post(`/${s}/chat/${o}/ratings`,a,c)},updateRating(s,o,a,c,d){return r.patch(`/${s}/chat/${o}/ratings/${a}`,c,d)},deleteRating(s,o,a,c){return r.delete(`/${s}/chat/${o}/ratings/${a}`,c)},getSTTToken(s,o){return r.get(`/${s}/stt-token`,o)}}}function _c(n){var r,s,o,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const c=navigator.platform;return c.toLowerCase().includes("win")?"Windows":c.toLowerCase().includes("mac")?"Mac OS X":c.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Hr(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(o=n.presenter)==null?void 0:o.voice)==null?void 0:a.type}}}function Ic(n){var t,i,r,s,o,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Hr(n.presenter),owner_id:n.owner_id??"",promptVersion:(i=n.llm)==null?void 0:i.prompt_version,behavior:{role:e==null?void 0:e.role,personality:e==null?void 0:e.personality,instructions:(r=n.llm)==null?void 0:r.instructions},temperature:(s=n.llm)==null?void 0:s.temperature,knowledgeSource:e==null?void 0:e.knowledge_source,starterQuestionsCount:(a=(o=n.knowledge)==null?void 0:o.starter_message)==null?void 0:a.length,topicsToAvoid:e==null?void 0:e.topics_to_avoid,maxResponseLength:e==null?void 0:e.max_response_length,agentId:n.id,access:n.access,name:n.preview_name,...n.access==="public"?{from:"agent-template"}:{}}}const Dc=n=>n.reduce((e,t)=>e+t,0),Qr=n=>Dc(n)/n.length;function Mc(n,e,t){var c,d,u;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:o}=((c=e==null?void 0:e.presenter)==null?void 0:c.voice)||{};return{...r,llm:{...r.llm,template:s},script:{...r.script,provider:{...(d=r==null?void 0:r.script)==null?void 0:d.provider,language:o}},stitch:(e==null?void 0:e.presenter.type)==="talk"?(u=e==null?void 0:e.presenter)==null?void 0:u.stitch:void 0,...t}}function Yr(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}let di={};const Oc="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Ac(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk";return{token:n.token||"testKey",distinct_id:oi(n.externalId),agentId:n.agentId,additionalProperties:{id:oi(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Nt,enrich(t){this.additionalProperties={...this.additionalProperties,...t}},async track(t,i,r){if(!this.isEnabled)return Promise.resolve();const{audioPath:s,...o}=i||{},a=r||Date.now(),c={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:t,properties:{...this.additionalProperties,...o,agentId:this.agentId,source:e,token:this.token,time:a,$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerWidth,"Screen Width":window.screen.width||window.innerHeight,"User Agent":navigator.userAgent}}])})};return fetch(Oc,{...c,keepalive:!0}).catch(d=>console.error("Analytics tracking error:",d)),Promise.resolve()},linkTrack(t,i,r,s){di[t]||(di[t]={events:{},resolvedDependencies:[]}),s.includes(r)||s.push(r);const o=di[t];if(o.events[r]={props:i},o.resolvedDependencies.push(r),s.every(c=>o.resolvedDependencies.includes(c))){const c=s.reduce((d,u)=>o.events[u]?{...d,...o.events[u].props}:d,{});this.track(t,c),o.resolvedDependencies=o.resolvedDependencies.filter(d=>!s.includes(d)),s.forEach(d=>{delete o.events[d]})}}}}function ui(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const Xe=ui(),li=ui(),Xr=ui();function Zr(n){return n===ye.Playground?{headers:{[kc]:"true"}}:{}}async function es(n,e,t,i,r=!1,s){try{return!s&&!Jr(i)&&(s=await e.newChat(n.id,{persist:r},Zr(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(o){throw xc(o)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const xc=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function Lc(n){return n&&n.length>0?n:[]}function Nc(n,e,t,i){const r=ci(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const ts=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??"");async function hi(){try{return await Promise.resolve().then(()=>gf)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Uc={excellent:Ke.Strong,good:Ke.Strong,poor:Ke.Weak,lost:Ke.Unknown,unknown:Ke.Unknown},en=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});var fi=(n=>(n.Chat="lk.chat",n.Speak="did.speak",n.Interrupt="did.interrupt",n))(fi||{});function mi(n,e,t,i){var r,s;throw e("Failed to connect to LiveKit room:",n),i(),(r=t.onConnectionStateChange)==null||r.call(t,Q.Fail),(s=t.onError)==null||s.call(t,n,{sessionId:""}),n}async function Fc(n,e,t){var gc,vc;const i=ts(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:o}=await hi(),{callbacks:a,auth:c,baseURL:d,analytics:u,microphoneStream:l}=t;let h=null,m=!1;const g=ze.Fluent;let p=!0,T=null,k=null;h=new r({adaptiveStream:!1,dynacast:!0});let _=null;const w=2e4,v=Nc(c,d||Zt,n,a.onError);let b,E,L;try{const N=await v.createStream({transport_provider:Xt.Livekit,chat_persist:e.chat_persist??!0}),{id:j,session_token:H,session_url:ee}=N;(gc=a.onStreamCreated)==null||gc.call(a,{session_id:j,stream_id:j,agent_id:n}),b=j,E=H,L=ee,await h.prepareConnection(L,E)}catch(N){mi(N,i,a,()=>{p=!1})}if(!L||!E||!b)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,S).on(s.ConnectionQualityChanged,M).on(s.ActiveSpeakersChanged,R).on(s.ParticipantConnected,x).on(s.ParticipantDisconnected,U).on(s.TrackSubscribed,q).on(s.TrackUnsubscribed,re).on(s.DataReceived,ge).on(s.MediaDevicesError,Ee).on(s.EncryptionError,se).on(s.TrackSubscriptionFailed,de),(vc=a.onConnectionStateChange)==null||vc.call(a,Q.New);try{await h.connect(L,E),i("LiveKit room joined successfully"),_=setTimeout(()=>{var N;i("Track subscription timeout - no track subscribed within 30 seconds after connect"),_=null,u.track("connectivity-error",{error:"Track subscription timeout",sessionId:b}),(N=a.onError)==null||N.call(a,new Error("Track subscription timeout"),{sessionId:b}),xr()},w),p=!1}catch(N){mi(N,i,a,()=>{p=!1})}u.enrich({"stream-type":g});function S(N){var j,H,ee,le,xe;switch(i("Connection state changed:",N),N){case o.Connecting:(j=a.onConnectionStateChange)==null||j.call(a,Q.Connecting);break;case o.Connected:i("LiveKit room connected successfully"),m=!0,p?queueMicrotask(()=>{var ve;(ve=a.onConnectionStateChange)==null||ve.call(a,Q.Connected)}):(H=a.onConnectionStateChange)==null||H.call(a,Q.Connected);break;case o.Disconnected:i("LiveKit room disconnected"),m=!1,(ee=a.onConnectionStateChange)==null||ee.call(a,Q.Disconnected);break;case o.Reconnecting:i("LiveKit room reconnecting..."),(le=a.onConnectionStateChange)==null||le.call(a,Q.Connecting);break;case o.SignalReconnecting:i("LiveKit room signal reconnecting..."),(xe=a.onConnectionStateChange)==null||xe.call(a,Q.Connecting);break}}function M(N,j){var H;i("Connection quality:",N),j!=null&&j.isLocal&&((H=a.onConnectivityStateChange)==null||H.call(a,Uc[N]))}function R(N){var H,ee;i("Active speakers changed:",N),N[0]?(H=a.onAgentActivityStateChange)==null||H.call(a,Ye.Talking):(ee=a.onAgentActivityStateChange)==null||ee.call(a,Ye.Idle)}function x(N){i("Participant connected:",N.identity)}function U(N){i("Participant disconnected:",N.identity),xr()}function q(N,j,H){var le,xe,ve;i(`Track subscribed: ${N.kind} from ${H.identity}`),_&&(clearTimeout(_),_=null,i("Track subscription timeout cleared"));const ee=N.mediaStreamTrack;if(!ee){i(`No mediaStreamTrack available for ${N.kind}`);return}T?(T.addTrack(ee),i(`Added ${N.kind} track to shared MediaStream`)):(T=new MediaStream([ee]),i(`Created shared MediaStream with ${N.kind} track`)),N.kind==="video"&&((le=a.onStreamReady)==null||le.call(a),(xe=a.onSrcObjectReady)==null||xe.call(a,T),(ve=a.onVideoStateChange)==null||ve.call(a,$.Start))}function re(N,j,H){var ee;i(`Track unsubscribed: ${N.kind} from ${H.identity}`),N.kind==="video"&&((ee=a.onVideoStateChange)==null||ee.call(a,$.Stop))}function ge(N,j,H,ee){var xe,ve,Sn;const le=new TextDecoder().decode(N);i("Data received:",le);try{const vt=JSON.parse(le),ii=ee||vt.subject;if(ii===fe.ChatAnswer){const Lt=Le.Answer;(xe=a.onMessage)==null||xe.call(a,Lt,{event:Lt,...vt})}else if([fe.StreamVideoCreated,fe.StreamVideoDone].includes(ii)){const Lt=(vt==null?void 0:vt.role)||(j==null?void 0:j.identity)||"datachannel";(ve=a.onMessage)==null||ve.call(a,ii,{[Lt]:vt})}else if(ii===fe.ChatAudioTranscribed){const Lt=Le.Transcribe;(Sn=a.onMessage)==null||Sn.call(a,Lt,{event:Lt,...vt})}}catch(vt){i("Failed to parse data channel message:",vt)}}function Ee(N){var j;i("Media devices error:",N),(j=a.onError)==null||j.call(a,new Error(en),{sessionId:b})}function se(N){var j;i("Encryption error:",N),(j=a.onError)==null||j.call(a,new Error(en),{sessionId:b})}function de(N,j,H){i("Track subscription failed:",{trackSid:N,participant:j,reason:H})}async function Ae(N){if(!h)return null;const{Track:j}=await hi(),H=h.localParticipant.audioTrackPublications;if(H){for(const[ee,le]of H)if(le.source===j.Source.Microphone&&le.track){const ve=le.track.mediaStreamTrack;if(ve===N||ve&&ve.id===N.id)return le}}return null}function Z(N){if(!k||!k.track)return!1;const j=k.track.mediaStreamTrack;return j!==N&&(j==null?void 0:j.id)!==N.id}async function te(N){var xe,ve;if(!m||!h)throw i("Room is not connected, cannot publish microphone stream"),new Error("Room is not connected");const j=N.getAudioTracks();if(j.length===0){i("No audio track found in the provided MediaStream");return}const H=j[0],{Track:ee}=await hi(),le=await Ae(H);if(le){i("Microphone track is already published, skipping",{trackId:H.id,publishedTrackId:(ve=(xe=le.track)==null?void 0:xe.mediaStreamTrack)==null?void 0:ve.id}),k=le;return}Z(H)&&(i("Unpublishing existing microphone track before publishing new one"),await we()),i("Publishing microphone track from provided MediaStream",{trackId:H.id});try{k=await h.localParticipant.publishTrack(H,{source:ee.Source.Microphone}),i("Microphone track published successfully",{trackSid:k.trackSid})}catch(Sn){throw i("Failed to publish microphone track:",Sn),Sn}}async function we(){if(!(!k||!k.track))try{h&&(await h.localParticipant.unpublishTrack(k.track),i("Microphone track unpublished"))}catch(N){i("Error unpublishing microphone track:",N)}finally{k=null}}function F(){T&&(T.getTracks().forEach(N=>N.stop()),T=null)}async function B(N,j){var H,ee;if(!m||!h){i("Room is not connected for sending messages"),(H=a.onError)==null||H.call(a,new Error(en),{sessionId:b});return}try{await h.localParticipant.sendText(N,{topic:j}),i("Message sent successfully:",N)}catch(le){i("Failed to send message:",le),(ee=a.onError)==null||ee.call(a,new Error(en),{sessionId:b})}}async function ue(N){var j;try{const ee=JSON.parse(N).topic;return B("",ee)}catch(H){i("Failed to send data channel message:",H),(j=a.onError)==null||j.call(a,new Error(en),{sessionId:b})}}function Se(N){return B(N,"lk.chat")}async function xr(){var N,j;_&&(clearTimeout(_),_=null),h&&(await we(),await h.disconnect()),F(),m=!1,(N=a.onConnectionStateChange)==null||N.call(a,Q.Disconnected),(j=a.onAgentActivityStateChange)==null||j.call(a,Ye.Idle)}return{speak(N){const j=typeof N=="string"?N:JSON.stringify(N);return B(j,"did.speak")},disconnect:xr,async reconnect(){var N,j,H;if((h==null?void 0:h.state)===o.Connected){i("Room is already connected");return}if(!h||!L||!E)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),(N=a.onConnectionStateChange)==null||N.call(a,Q.Connecting);try{if(await h.connect(L,E),i("Room reconnected"),m=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(le=>{const xe=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,ve),le(!1)},5e3),ve=()=>{clearTimeout(xe),h==null||h.off(s.ParticipantConnected,ve),le(!0)};h==null||h.on(s.ParticipantConnected,ve)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined")}(j=a.onConnectionStateChange)==null||j.call(a,Q.Connected)}catch(ee){throw i("Failed to reconnect:",ee),(H=a.onConnectionStateChange)==null||H.call(a,Q.Fail),ee}},sendDataChannelMessage:ue,sendTextMessage:Se,publishMicrophoneStream:te,unpublishMicrophoneStream:we,sessionId:b,streamId:b,streamType:g,interruptAvailable:!0,triggersAvailable:!1}}const jc=Object.freeze(Object.defineProperty({__proto__:null,DataChannelTopic:fi,createLiveKitStreamingManager:Fc,handleInitError:mi},Symbol.toStringTag,{value:"Module"}));function Bc(n,e,t){if(!n)throw new Error("Please connect to the agent first");if(!n.interruptAvailable)throw new Error("Interrupt is not enabled for this stream");if(e!==ze.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function Vc(n,e){const t={type:fe.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}async function qc(n){const e={topic:fi.Interrupt};n.sendDataChannelMessage(JSON.stringify(e))}function Kc(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:o}=n,{onMessage:a=null,onOpen:c=null,onClose:d=null,onError:u=null}=i||{},l=new WebSocket(`${r}?authorization=${encodeURIComponent($r(s,o))}`);l.onmessage=a,l.onclose=d,l.onerror=h=>{console.error(h),u==null||u("Websocket failed to connect",h),t(h)},l.onopen=h=>{c==null||c(h),e(l)}})}async function zc(n){const{retries:e=1}=n;let t=null;for(let i=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;i++)try{t=await Kc(n)}catch(r){if(i===e)throw r;await Gr(i*500)}return t}async function Wc(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await zc({auth:n,host:e,externalId:i,callbacks:{onError:o=>{var a;return(a=t.onError)==null?void 0:a.call(t,new Nr(o))},onMessage(o){const a=JSON.parse(o.data);r.forEach(c=>c(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:o=>r.push(o)}}function Gc(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function Hc(n,e,t){if(!n.content)return;const i={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(i),t==null||t([...e.messages],"user")}function Jc(n,e,t,i,r){if(n===Le.Transcribe&&e.content){Hc(e,i,r);return}if(!(n===Le.Partial||n===Le.Answer))return;const s=i.messages[i.messages.length-1];let o;if(s!=null&&s.transcribed&&s.role==="user")n===Le.Answer&&e.content,o={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",created_at:e.created_at||new Date().toISOString()},i.messages.push(o);else if((s==null?void 0:s.role)==="assistant")o=s;else return;const{content:a,sequence:c}=e;n===Le.Partial?t[c]=a:t.answer=a;const d=Gc(t);(o.content!==d||n===Le.Answer)&&(o.content=d,r==null||r([...i.messages],n))}function $c(n,e,t,i,r){let s={};return{clearQueue:()=>s={},onMessage:(o,a)=>{var c,d;if("content"in a){const u=o===fe.ChatAnswer?Le.Answer:o===fe.ChatAudioTranscribed?Le.Transcribe:o;Jc(u,a,s,e,t.callbacks.onNewMessage),u===Le.Answer&&n.track("agent-message-received",{messages:e.messages.length,mode:e.chatMode})}else{const u=fe,l=[u.StreamVideoDone,u.StreamVideoError,u.StreamVideoRejected],h=[u.StreamFailed,u.StreamVideoError,u.StreamVideoRejected],m=Mc(a,i,{mode:e.chatMode});if(o=o,o===u.StreamVideoCreated)n.linkTrack("agent-video",m,u.StreamVideoCreated,["start"]);else if(l.includes(o)){const g=o.split("/")[1];h.includes(o)?n.track("agent-video",{...m,event:g}):n.linkTrack("agent-video",{...m,event:g},o,["done"])}h.includes(o)&&((d=(c=t.callbacks).onError)==null||d.call(c,new Error(`Stream failed with event ${o}`),{data:a})),a.event===u.StreamDone&&r()}}}}function Qc(n,e,t,i){const r=ci(n,`${e}/agents/${t}`,i);return{createStream(s,o){return r.post("/streams",s,{signal:o})},startConnection(s,o,a,c){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:o},{signal:c})},addIceCandidate(s,o,a,c){return r.post(`/streams/${s}/ice`,{session_id:a,...o},{signal:c})},sendStreamRequest(s,o,a){return r.post(`/streams/${s}`,{session_id:o,...a})},close(s,o){return r.delete(`/streams/${s}`,{session_id:o})}}}function Yc(n,e,t){const i=(e.timestamp-n.timestamp)/1e3;return{duration:i,bytesReceived:e.bytesReceived-n.bytesReceived,bitrate:Math.round((e.bytesReceived-n.bytesReceived)*8/i),packetsReceived:e.packetsReceived-n.packetsReceived,packetsLost:e.packetsLost-n.packetsLost,framesDropped:e.framesDropped-n.framesDropped,framesDecoded:e.framesDecoded-n.framesDecoded,jitter:e.jitter,avgJitterDelayInInterval:(e.jitterBufferDelay-n.jitterBufferDelay)/(e.jitterBufferEmittedCount-n.jitterBufferEmittedCount),jitterBufferEmittedCount:e.jitterBufferEmittedCount-n.jitterBufferEmittedCount,jitterBufferDelay:(e.jitterBufferDelay-n.jitterBufferDelay)/i,framesPerSecond:e.framesPerSecond,freezeCount:e.freezeCount-n.freezeCount,freezeDuration:e.freezeDuration-n.freezeDuration,lowFpsCount:t}}function Xc(n){return n.filter(e=>e.freezeCount>0||e.framesPerSecond<21||e.framesDropped>0||e.packetsLost>0).map(e=>{const{timestamp:t,...i}=e,r=[];return e.freezeCount>0&&r.push("freeze"),e.framesPerSecond<21&&r.push("low fps"),e.framesDropped>0&&r.push("frames dropped"),e.packetsLost>0&&r.push("packet loss"),{...i,causes:r}})}function Zc(n){let e="",t=0;for(const i of n.values()){if(i&&i.type==="codec"&&i.mimeType.startsWith("video")&&(e=i.mimeType.split("/")[1]),i&&i.type==="candidate-pair"){const r=i.currentRoundTripTime,o=i.nominated===!0;r>0&&(o||t===0)&&(t=r)}if(i&&i.type==="inbound-rtp"&&i.kind==="video")return{codec:e,rtt:t,timestamp:i.timestamp,bytesReceived:i.bytesReceived,packetsReceived:i.packetsReceived,packetsLost:i.packetsLost,framesDropped:i.framesDropped,framesDecoded:i.framesDecoded,jitter:i.jitter,jitterBufferDelay:i.jitterBufferDelay,jitterBufferEmittedCount:i.jitterBufferEmittedCount,avgJitterDelayInInterval:i.jitterBufferDelay/i.jitterBufferEmittedCount,frameWidth:i.frameWidth,frameHeight:i.frameHeight,framesPerSecond:i.framesPerSecond,freezeCount:i.freezeCount,freezeDuration:i.totalFreezesDuration}}return{}}function ed(n,e,t){const i=n.map((c,d)=>d===0?t?{timestamp:c.timestamp,duration:0,rtt:c.rtt,bytesReceived:c.bytesReceived-t.bytesReceived,bitrate:(c.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-t.packetsReceived,packetsLost:c.packetsLost-t.packetsLost,framesDropped:c.framesDropped-t.framesDropped,framesDecoded:c.framesDecoded-t.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-t.jitterBufferDelay)/(c.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-t.freezeCount,freezeDuration:c.freezeDuration-t.freezeDuration}:{timestamp:c.timestamp,rtt:c.rtt,duration:0,bytesReceived:c.bytesReceived,bitrate:c.bytesReceived*8/(e/1e3),packetsReceived:c.packetsReceived,packetsLost:c.packetsLost,framesDropped:c.framesDropped,framesDecoded:c.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount,avgJitterDelayInInterval:c.jitterBufferDelay/c.jitterBufferEmittedCount,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.freezeDuration}:{timestamp:c.timestamp,duration:e*d/1e3,rtt:c.rtt,bytesReceived:c.bytesReceived-n[d-1].bytesReceived,bitrate:(c.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-n[d-1].packetsReceived,packetsLost:c.packetsLost-n[d-1].packetsLost,framesDropped:c.framesDropped-n[d-1].framesDropped,framesDecoded:c.framesDecoded-n[d-1].framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-n[d-1].jitterBufferDelay)/(c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-n[d-1].freezeCount,freezeDuration:c.freezeDuration-n[d-1].freezeDuration}),r=Xc(i),s=r.reduce((c,d)=>c+(d.causes.includes("low fps")?1:0),0),o=i.filter(c=>!!c.avgJitterDelayInInterval).map(c=>c.avgJitterDelayInInterval),a=i.filter(c=>!!c.rtt).map(c=>c.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:Qr(a),maxRtt:Math.max(...a),aggregateReport:Yc(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...o),maxJitterDelayInInterval:Math.max(...o),avgJitterDelayInInterval:Qr(o)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}const pi=100,td=Math.max(Math.ceil(400/pi),1),nd=.25,id=.28;function rd(){let n=0,e,t,i=0;return r=>{for(const s of r.values())if(s&&s.type==="inbound-rtp"&&s.kind==="video"){const o=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const u=o-e,l=a-t;i=u/l}e=o,t=a;const c=s.framesDecoded,d=c-n>0;return n=c,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}return{isReceiving:!1,avgJitterDelayInInterval:i}}}function sd(n,e,t,i,r){let s=[],o,a=0,c=!1,d=Ke.Unknown,u=Ke.Unknown,l=0,h=0;const m=rd();return setInterval(async()=>{const g=await n.getStats(),{isReceiving:p,avgJitterDelayInInterval:T,freezeCount:k}=m(g),_=Zc(g);if(p)a=0,l=k-h,u=T<nd?Ke.Strong:T>id&&l>1?Ke.Weak:d,u!==d&&(r==null||r(u),d=u,h+=l,l=0),c||(i==null||i($.Start),o=s[s.length-1],s=[],c=!0),s.push(_);else if(c&&(a++,a>=td)){const w=ed(s,pi,o);i==null||i($.Stop,w),e()||t(),h=k,c=!1}},pi)}const ad=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ns(n){switch(n){case"connected":return Q.Connected;case"checking":return Q.Connecting;case"failed":return Q.Fail;case"new":return Q.New;case"closed":return Q.Closed;case"disconnected":return Q.Disconnected;case"completed":return Q.Completed;default:return Q.New}}const od=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function cd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i}){n===$.Start&&e===$.Start?t==null||t($.Start):n===$.Stop&&e===$.Stop&&(t==null||t($.Stop,i))}function dd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r}){n===$.Start?t==null||t($.Start):n===$.Stop&&(t==null||t($.Stop,r)),e===$.Start?i==null||i(Ye.Talking):e===$.Stop&&(i==null||i(Ye.Idle))}function is({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s}){r===ze.Legacy?cd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s}):r===ze.Fluent&&dd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s})}async function ud(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Zt,analytics:o},a){var we;const c=ts(t,"WebRTCStreamingManager"),d=od(c);let u=!1,l=!1,h=$.Stop,m=$.Stop;const{startConnection:g,sendStreamRequest:p,close:T,createStream:k,addIceCandidate:_}=Qc(r,s,n,i.onError),{id:w,offer:v,ice_servers:b,session_id:E,fluent:L,interrupt_enabled:S,triggers_enabled:M}=await k(e,a);(we=i.onStreamCreated)==null||we.call(i,{stream_id:w,session_id:E,agent_id:n});const R=new ad({iceServers:b}),x=R.createDataChannel("JanusDataChannel");if(!E)throw new Error("Could not create session_id");const U=L?ze.Fluent:ze.Legacy;o.enrich({"stream-type":U});const q=e.stream_warmup&&!L,re=()=>u,ge=()=>{var F;u=!0,l&&((F=i.onConnectionStateChange)==null||F.call(i,Q.Connected))},Ee=sd(R,re,ge,(F,B)=>is({statsSignal:m=F,dataChannelSignal:U===ze.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:U}),F=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,F)});R.onicecandidate=F=>{var B;c("peerConnection.onicecandidate",F);try{F.candidate&&F.candidate.sdpMid&&F.candidate.sdpMLineIndex!==null?_(w,{candidate:F.candidate.candidate,sdpMid:F.candidate.sdpMid,sdpMLineIndex:F.candidate.sdpMLineIndex},E,a):_(w,{candidate:null},E,a)}catch(ue){(B=i.onError)==null||B.call(i,ue,{streamId:w})}},x.onopen=()=>{l=!0,(!q||u)&&ge()};const se=F=>{var B;(B=i.onVideoIdChange)==null||B.call(i,F)};function de(F,B){if(F===fe.StreamStarted&&typeof B=="object"&&"metadata"in B){const ue=B.metadata;se(ue.videoId)}F===fe.StreamDone&&se(null),h=F===fe.StreamStarted?$.Start:$.Stop,is({statsSignal:U===ze.Legacy?m:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:U})}function Ae(F,B){var Se;const ue=typeof B=="string"?B:B==null?void 0:B.metadata;ue&&o.enrich({streamMetadata:ue}),(Se=i.onStreamReady)==null||Se.call(i)}const Z={[fe.StreamStarted]:de,[fe.StreamDone]:de,[fe.StreamReady]:Ae};x.onmessage=F=>{var Se;const{subject:B,data:ue}=d(F.data);(Se=Z[B])==null||Se.call(Z,B,ue)},R.oniceconnectionstatechange=()=>{var B;c("peerConnection.oniceconnectionstatechange => "+R.iceConnectionState);const F=ns(R.iceConnectionState);F!==Q.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,F))},R.ontrack=F=>{var B;c("peerConnection.ontrack",F),(B=i.onSrcObjectReady)==null||B.call(i,F.streams[0])},await R.setRemoteDescription(v),c("set remote description OK");const te=await R.createAnswer();return c("create answer OK"),await R.setLocalDescription(te),c("set local description OK"),await g(w,te,E,a),c("start connection OK"),{speak(F){return p(w,E,F)},async disconnect(){var F;if(w){const B=ns(R.iceConnectionState);if(R){if(B===Q.New){clearInterval(Ee);return}R.close(),R.oniceconnectionstatechange=null,R.onnegotiationneeded=null,R.onicecandidate=null,R.ontrack=null}try{B===Q.Connected&&await T(w,E).catch(ue=>{})}catch(ue){c("Error on close stream connection",ue)}(F=i.onAgentActivityStateChange)==null||F.call(i,Ye.Idle),clearInterval(Ee)}},sendDataChannelMessage(F){var B,ue;if(!u||x.readyState!=="open"){c("Data channel is not ready for sending messages"),(B=i.onError)==null||B.call(i,new Error("Data channel is not ready for sending messages"),{streamId:w});return}try{x.send(F)}catch(Se){c("Error sending data channel message",Se),(ue=i.onError)==null||ue.call(i,Se,{streamId:w})}},sessionId:E,streamId:w,streamType:U,interruptAvailable:S??!1,triggersAvailable:M??!1}}var gi=(n=>(n.V1="v1",n.V2="v2",n))(gi||{});async function ld(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...o}=e;return ud(r,o,t,i)}case"v2":{const{version:s,...o}=e;switch(o.transport_provider){case Xt.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>jc);return a(r,o,t);default:throw new Error(`Unsupported transport provider: ${o.transport_provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const hd="cht";function fd(){return{transport_provider:Xt.Livekit}}function md(n){var r,s;const{streamOptions:e}=n??{},t=((r=n==null?void 0:n.mixpanelAdditionalProperties)==null?void 0:r.plan)!==void 0?{plan:(s=n.mixpanelAdditionalProperties)==null?void 0:s.plan}:void 0;return{...{output_resolution:e==null?void 0:e.outputResolution,session_timeout:e==null?void 0:e.sessionTimeout,stream_warmup:e==null?void 0:e.streamWarmup,compatibility_mode:e==null?void 0:e.compatibilityMode,fluent:e==null?void 0:e.fluent},...t&&{end_user_data:t}}}function pd(n,e){return si(n.presenter.type)?{version:gi.V2,...fd()}:{version:gi.V1,...md(e)}}function gd(n,e,t,i,r){r===ze.Fluent?vd(n,e,t,i,r):bd(n,e,t,i,r)}function vd(n,e,t,i,r){n===$.Start?i.track("stream-session",{event:"start","stream-type":r}):n===$.Stop&&i.track("stream-session",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t})}function yd(n,e,t,i){Xe.get()<=0||(n===$.Start?t.linkTrack("agent-video",{event:"start",latency:Xe.get(!0),"stream-type":i},"start",[fe.StreamVideoCreated]):n===$.Stop&&t.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":i},"done",[fe.StreamVideoDone]))}function bd(n,e,t,i,r){Xe.get()<=0||(n===$.Start?i.linkTrack("agent-video",{event:"start",latency:Xe.get(!0),"stream-type":r},"start",[fe.StreamVideoCreated]):n===$.Stop&&i.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t},"done",[fe.StreamVideoDone]))}function rs(n,e,t,i){return Xe.reset(),Xr.update(),new Promise(async(r,s)=>{try{let o,a=!1;const c=pd(n,e);t.enrich({"stream-version":c.version.toString()}),o=await ld(n,c,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:d=>{var u,l;(l=(u=e.callbacks).onConnectionStateChange)==null||l.call(u,d),d===Q.Connected&&(o?r(o):a=!0)},onVideoStateChange:(d,u)=>{var l,h;(h=(l=e.callbacks).onVideoStateChange)==null||h.call(l,d),gd(d,n,u,t,o.streamType)},onAgentActivityStateChange:d=>{var u,l;(l=(u=e.callbacks).onAgentActivityStateChange)==null||l.call(u,d),d===Ye.Talking?li.update():li.reset(),yd(d===Ye.Talking?$.Start:$.Stop,n,t,o.streamType)},onStreamReady:()=>{const d=Xr.get(!0);t.track("agent-chat",{event:"ready",latency:d})}}},i),a&&r(o)}catch(o){s(o)}})}async function kd(n,e,t,i,r){var u,l,h,m;const s=async()=>{if(si(n.presenter.type)){const g=await rs(n,e,i),p=`${hd}_${g.sessionId}`,T=new Date().toISOString();return{chatResult:{chatMode:ye.Functional,chat:{id:p,agent_id:n.id,owner_id:n.owner_id??"",created:T,modified:T,agent_id__created_at:T,agent_id__modified_at:T,chat_mode:ye.Functional,messages:[]}},streamingManager:g}}else{const g=new AbortController,p=g.signal;let T;try{const k=es(n,t,i,e.mode,e.persistentChat,r),_=rs(n,e,i,p).then(b=>(T=b,b)),[w,v]=await Promise.all([k,_]);return{chatResult:w,streamingManager:v}}catch(k){throw g.abort(),T&&await T.disconnect().catch(()=>{}),k}}},{chatResult:o,streamingManager:a}=await s(),{chat:c,chatMode:d}=o;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(l=(u=e.callbacks).onModeChange)==null||l.call(u,d),d!==ye.Functional)?((m=(h=e.callbacks).onError)==null||m.call(h,new Lr(d)),a==null||a.disconnect(),{chat:c}):{chat:c,streamingManager:a}}async function Td(n,e){var b,E,L;let t=!0,i=null;const r=e.mixpanelKey||Sc,s=e.wsURL||Tc,o=e.baseURL||Zt,a=e.mode||ye.Functional,c={messages:[],chatMode:a},d=Ac({token:r,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),u=Date.now();Yr(()=>{d.track("agent-sdk",{event:"init"},u)});const l=Rc(e.auth,o,e.callbacks.onError,e.externalId),h=await l.getById(n),m=si(h.presenter.type);d.enrich(Ic(h));const{onMessage:g,clearQueue:p}=$c(d,c,e,h,()=>{var S;return(S=c.socketManager)==null?void 0:S.disconnect()});c.messages=Lc(e.initialMessages),(E=(b=e.callbacks).onNewMessage)==null||E.call(b,[...c.messages],"answer");const T=S=>{i=S},k=Date.now();Yr(()=>{d.track("agent-sdk",{event:"loaded",..._c(h)},k)});async function _(S){var re,ge,Ee,se,de,Ae,Z;(ge=(re=e.callbacks).onConnectionStateChange)==null||ge.call(re,Q.Connecting),Xe.reset(),S&&!t&&(delete c.chat,(se=(Ee=e.callbacks).onNewMessage)==null||se.call(Ee,[...c.messages],"answer"));const M=a===ye.DirectPlayback||m?Promise.resolve(void 0):Wc(e.auth,s,{onMessage:g,onError:e.callbacks.onError},e.externalId),R=ai(()=>kd(h,{...e,mode:a,callbacks:{...e.callbacks,onVideoIdChange:T,onMessage:g}},l,d,c.chat),{limit:3,timeout:bc,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:te=>(te==null?void 0:te.message)!=="Could not connect"&&te.status!==429&&(te==null?void 0:te.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(te=>{var we,F;throw v(ye.Maintenance),(F=(we=e.callbacks).onConnectionStateChange)==null||F.call(we,Q.Fail),te}),[x,{streamingManager:U,chat:q}]=await Promise.all([M,R]);q&&q.id!==((de=c.chat)==null?void 0:de.id)&&((Z=(Ae=e.callbacks).onNewChat)==null||Z.call(Ae,q.id)),c.streamingManager=U,c.socketManager=x,c.chat=q,t=!1,d.enrich({chatId:q==null?void 0:q.id,streamId:U==null?void 0:U.streamId,mode:c.chatMode}),v((q==null?void 0:q.chat_mode)??a)}async function w(){var S,M,R,x;(S=c.socketManager)==null||S.disconnect(),await((M=c.streamingManager)==null?void 0:M.disconnect()),delete c.streamingManager,delete c.socketManager,(x=(R=e.callbacks).onConnectionStateChange)==null||x.call(R,Q.Disconnected)}async function v(S){var M,R;S!==c.chatMode&&(d.track("agent-mode-change",{mode:S}),c.chatMode=S,c.chatMode!==ye.Functional&&await w(),(R=(M=e.callbacks).onModeChange)==null||R.call(M,S))}return{agent:h,getStreamType:()=>{var S;return(S=c.streamingManager)==null?void 0:S.streamType},getIsInterruptAvailable:()=>{var S;return((S=c.streamingManager)==null?void 0:S.interruptAvailable)??!1},getIsTriggersAvailable:()=>{var S;return((S=c.streamingManager)==null?void 0:S.triggersAvailable)??!1},starterMessages:((L=h.knowledge)==null?void 0:L.starter_message)||[],getSTTToken:()=>l.getSTTToken(h.id),changeMode:v,enrichAnalytics:d.enrich,async connect(){await _(!0),d.track("agent-chat",{event:"connect",mode:c.chatMode})},async reconnect(){const S=c.streamingManager;if(m&&(S!=null&&S.reconnect)){try{await S.reconnect(),d.track("agent-chat",{event:"reconnect",mode:c.chatMode})}catch{await w(),await _(!1)}return}await w(),await _(!1),d.track("agent-chat",{event:"reconnect",mode:c.chatMode})},async disconnect(){await w(),d.track("agent-chat",{event:"disconnect",mode:c.chatMode})},async publishMicrophoneStream(S){var M;if(!((M=c.streamingManager)!=null&&M.publishMicrophoneStream))throw new Error("publishMicrophoneStream is not available for this streaming manager");return c.streamingManager.publishMicrophoneStream(S)},async unpublishMicrophoneStream(){var S;if(!((S=c.streamingManager)!=null&&S.unpublishMicrophoneStream))throw new Error("unpublishMicrophoneStream is not available for this streaming manager");return c.streamingManager.unpublishMicrophoneStream()},async chat(S){var U,q,re,ge,Ee;const M=()=>{if(Jr(a))throw new Pt(`${a} is enabled, chat is disabled`);if(S.length>=800)throw new Pt("Message cannot be more than 800 characters");if(S.length===0)throw new Pt("Message cannot be empty");if(c.chatMode===ye.Maintenance)throw new Pt("Chat is in maintenance mode");if(![ye.TextOnly,ye.Playground].includes(c.chatMode)){if(!c.streamingManager)throw new Pt("Streaming manager is not initialized");if(!c.chat)throw new Pt("Chat is not initialized")}},R=async()=>{var se,de;if(!c.chat){const Ae=await es(h,l,d,c.chatMode,e.persistentChat);if(!Ae.chat)throw new Et(c.chatMode,!!e.persistentChat);c.chat=Ae.chat,(de=(se=e.callbacks).onNewChat)==null||de.call(se,c.chat.id)}return c.chat.id},x=async(se,de)=>ai(m?async()=>{var Z,te;return await((te=(Z=c.streamingManager)==null?void 0:Z.sendTextMessage)==null?void 0:te.call(Z,S)),Promise.resolve({})}:async()=>{var Z,te;return l.chat(h.id,de,{chatMode:c.chatMode,streamId:(Z=c.streamingManager)==null?void 0:Z.streamId,sessionId:(te=c.streamingManager)==null?void 0:te.sessionId,messages:se.map(({matches:we,...F})=>F)},{...Zr(c.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Z=>{var F,B,ue,Se;const te=(F=Z==null?void 0:Z.message)==null?void 0:F.includes("missing or invalid session_id");return!((B=Z==null?void 0:Z.message)==null?void 0:B.includes("Stream Error"))&&!te?((Se=(ue=e.callbacks).onError)==null||Se.call(ue,Z),!1):!0},onRetry:async()=>{await w(),await _(!1)}});try{p(),M(),c.messages.push({id:Nt(),role:"user",content:S,created_at:new Date(Xe.update()).toISOString()}),(q=(U=e.callbacks).onNewMessage)==null||q.call(U,[...c.messages],"user");const se=await R(),de=await x([...c.messages],se);return c.messages.push({id:Nt(),role:"assistant",content:de.result||"",created_at:new Date().toISOString(),context:de.context,matches:de.matches}),d.track("agent-message-send",{event:"success",messages:c.messages.length+1}),de.result&&((ge=(re=e.callbacks).onNewMessage)==null||ge.call(re,[...c.messages],"answer"),d.track("agent-message-received",{latency:Xe.get(!0),messages:c.messages.length})),de}catch(se){throw((Ee=c.messages[c.messages.length-1])==null?void 0:Ee.role)==="assistant"&&c.messages.pop(),d.track("agent-message-send",{event:"error",messages:c.messages.length}),se}},rate(S,M,R){var q,re,ge,Ee;const x=c.messages.find(se=>se.id===S);if(c.chat){if(!x)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const U=((q=x.matches)==null?void 0:q.map(se=>[se.document_id,se.id]))??[];return d.track("agent-rate",{event:R?"update":"create",thumb:M===1?"up":"down",knowledge_id:((re=h.knowledge)==null?void 0:re.id)??"",matches:U,score:M}),R?l.updateRating(h.id,c.chat.id,R,{knowledge_id:((ge=h.knowledge)==null?void 0:ge.id)??"",message_id:S,matches:U,score:M}):l.createRating(h.id,c.chat.id,{knowledge_id:((Ee=h.knowledge)==null?void 0:Ee.id)??"",message_id:S,matches:U,score:M})},deleteRate(S){if(!c.chat)throw new Error("Chat is not initialized");return d.track("agent-rate-delete",{type:"text"}),l.deleteRating(h.id,c.chat.id,S)},async speak(S){var U,q,re;function M(){if(typeof S=="string"){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:S,ssml:!1}}if(S.type==="text"&&!S.provider){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:S.input,ssml:S.ssml}}return S}const R=M();if(d.track("agent-speak",R),Xe.update(),c.messages&&R.type==="text"&&(c.messages.push({id:Nt(),role:"assistant",content:R.input,created_at:new Date().toISOString()}),(q=(U=e.callbacks).onNewMessage)==null||q.call(U,[...c.messages],"answer")),Cc(c.chatMode))return{duration:0,video_id:"",status:"success"};if(!c.streamingManager)throw new Error("Please connect to the agent first");return c.streamingManager.speak({script:R,metadata:{chat_id:(re=c.chat)==null?void 0:re.id,agent_id:h.id}})},async interrupt({type:S}){var R,x,U;const M=c.messages[c.messages.length-1];d.track("agent-video-interrupt",{type:S||"click",video_duration_to_interrupt:li.get(!0),message_duration_to_interrupt:Xe.get(!0)}),M.interrupted=!0,(x=(R=e.callbacks).onNewMessage)==null||x.call(R,[...c.messages],"answer"),m?qc(c.streamingManager):(Bc(c.streamingManager,(U=c.streamingManager)==null?void 0:U.streamType,i),Vc(c.streamingManager,i))}}}function Sd(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var Cd=Object.defineProperty,Ed=(n,e,t)=>e in n?Cd(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ss=(n,e,t)=>Ed(n,typeof e!="symbol"?e+"":e,t);class Pe{constructor(){ss(this,"_locking"),ss(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const t=new Promise(r=>e=()=>{this._locks-=1,r()}),i=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),i}}function oe(n,e){if(!n)throw new Error(e)}const Pd=34028234663852886e22,wd=-34028234663852886e22,Rd=4294967295,_d=2147483647,Id=-2147483648;function En(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>_d||n<Id)throw new Error("invalid int 32: "+n)}function vi(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>Rd||n<0)throw new Error("invalid uint 32: "+n)}function as(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Pd||n<wd))throw new Error("invalid float 32: "+n)}const os=Symbol("@bufbuild/protobuf/enum-type");function Dd(n){const e=n[os];return oe(e,"missing enum type on enum object"),e}function cs(n,e,t,i){n[os]=ds(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function ds(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const o of e){const a=us(o);s.push(a),i[o.name]=a,r[o.no]=a}return{typeName:n,values:s,findName(o){return i[o]},findNumber(o){return r[o]}}}function Md(n,e,t){const i={};for(const r of e){const s=us(r);i[s.localName]=s.no,i[s.no]=s.localName}return cs(i,n,e),i}function us(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class yi{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),r=i.runtime.bin,s=r.makeReadOptions(t);return r.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,t){const i=this.getType(),r=i.runtime.json,s=r.makeReadOptions(t);return r.readMessage(i,e,s,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(r){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(r instanceof Error?r.message:String(r)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,r=i.makeWriteOptions(e),s=r.writerFactory();return i.writeMessage(this,s,r),s.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,r=i.makeWriteOptions(e);return i.writeMessage(this,r)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function Od(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),o={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new yi),Object.assign(o,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,c){return new o().fromBinary(a,c)},fromJson(a,c){return new o().fromJson(a,c)},fromJsonString(a,c){return new o().fromJsonString(a,c)},equals(a,c){return n.util.equals(o,a,c)}}),o}function Ad(){let n=0,e=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(n|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,!(t&128))return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function bi(n,e,t){for(let s=0;s<28;s=s+7){const o=n>>>s,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(t.push(c),!a)return}const i=n>>>28&15|(e&7)<<4,r=!!(e>>3);if(t.push((r?i|128:i)&255),!!r){for(let s=3;s<31;s=s+7){const o=e>>>s,a=!!(o>>>7),c=(a?o|128:o)&255;if(t.push(c),!a)return}t.push(e>>>31&1)}}const Pn=4294967296;function ls(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(o,a){const c=Number(n.slice(o,a));r*=t,i=i*t+c,i>=Pn&&(r=r+(i/Pn|0),i=i%Pn)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?fs(i,r):ki(i,r)}function xd(n,e){let t=ki(n,e);const i=t.hi&2147483648;i&&(t=fs(t.lo,t.hi));const r=hs(t.lo,t.hi);return i?"-"+r:r}function hs(n,e){if({lo:n,hi:e}=Ld(n,e),e<=2097151)return String(Pn*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,o=i+r*8147497,a=r*2;const c=1e7;return s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c),a.toString()+ms(o)+ms(s)}function Ld(n,e){return{lo:n>>>0,hi:e>>>0}}function ki(n,e){return{lo:n|0,hi:e|0}}function fs(n,e){return e=~e,n?n=~n+1:e+=1,ki(n,e)}const ms=n=>{const e=String(n);return"0000000".slice(e.length)+e};function ps(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function Nd(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Ud(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>s||d<r)throw new Error("int64 invalid: ".concat(c));return d},uParse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>a||d<o)throw new Error("uint64 invalid: ".concat(c));return d},enc(c){return n.setBigInt64(0,this.parse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(c){return n.setBigInt64(0,this.uParse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>oe(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>oe(/^[0-9]+$/.test(r),"uint64 invalid: ".concat(r));return{zero:"0",supported:!1,parse(r){return typeof r!="string"&&(r=r.toString()),t(r),r},uParse(r){return typeof r!="string"&&(r=r.toString()),i(r),r},enc(r){return typeof r!="string"&&(r=r.toString()),t(r),ls(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),ls(r)},dec(r,s){return xd(r,s)},uDec(r,s){return hs(r,s)}}}const ie=Ud();var P;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(P||(P={}));var yt;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(yt||(yt={}));function bt(n,e,t){if(e===t)return!0;if(n==P.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}switch(n){case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return e==t}return!1}function Ut(n,e){switch(n){case P.BOOL:return!1;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return e==0?ie.zero:"0";case P.DOUBLE:case P.FLOAT:return 0;case P.BYTES:return new Uint8Array(0);case P.STRING:return"";default:return 0}}function gs(n,e){switch(n){case P.BOOL:return e===!1;case P.STRING:return e==="";case P.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var he;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(he||(he={}));class Fd{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),i=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(vi(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return En(e),ps(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){as(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){vi(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){En(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return En(e),e=(e<<1^e>>31)>>>0,ps(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ie.enc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ie.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=ie.enc(e);return bi(t.lo,t.hi,this.buf),this}sint64(e){let t=ie.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return bi(r,s,this.buf),this}uint64(e){let t=ie.uEnc(e);return bi(t.lo,t.hi,this.buf),this}}class jd{constructor(e,t){this.varint64=Ad,this.uint32=Nd,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case he.Varint:for(;this.buf[this.pos++]&128;);break;case he.Bit64:this.pos+=4;case he.Bit32:this.pos+=4;break;case he.LengthDelimited:let r=this.uint32();this.pos+=r;break;case he.StartGroup:for(;;){const[s,o]=this.tag();if(o===he.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(o,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return ie.dec(...this.varint64())}uint64(){return ie.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,ie.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return ie.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return ie.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function Bd(n,e,t,i){let r;return{typeName:e,extendee:t,get field(){if(!r){const s=typeof i=="function"?i():i;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),r=n.util.newFieldList([s]).list()[0]}return r},runtime:n}}function vs(n){const e=n.field.localName,t=Object.create(null);return t[e]=Vd(n),[t,()=>t[e]]}function Vd(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return Ut(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function qd(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let ot="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),wn=[];for(let n=0;n<ot.length;n++)wn[ot[n].charCodeAt(0)]=n;wn[45]=ot.indexOf("+"),wn[95]=ot.indexOf("/");const ys={dec(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),i=0,r=0,s,o=0;for(let a=0;a<n.length;a++){if(s=wn[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
1
+ (function(W,Ce){typeof exports=="object"&&typeof module<"u"?Ce(exports):typeof define=="function"&&define.amd?define(["exports"],Ce):(W=typeof globalThis<"u"?globalThis:W||self,Ce(W.index={}))})(this,function(W){"use strict";var vf=Object.defineProperty;var yf=(W,Ce,Et)=>Ce in W?vf(W,Ce,{enumerable:!0,configurable:!0,writable:!0,value:Et}):W[Ce]=Et;var Cn=(W,Ce,Et)=>yf(W,typeof Ce!="symbol"?Ce+"":Ce,Et);class Ce extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));Cn(this,"kind");Cn(this,"description");Cn(this,"error");this.kind=t,this.description=i,this.error=r}}class Et extends Ce{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Lr extends Ce{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class Pt extends Ce{constructor(t,i){super({kind:"ValidationError",description:t});Cn(this,"key");this.key=i}}class Nr extends Ce{constructor(e){super({kind:"WSError",description:e})}}var Ur=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Ur||{}),Fr=(n=>(n.TRIAL="deid-trial",n.PRO="deid-pro",n.ENTERPRISE="deid-enterprise",n.LITE="deid-lite",n.ADVANCED="deid-advanced",n.BUILD="deid-api-build",n.LAUNCH="deid-api-launch",n.SCALE="deid-api-scale",n))(Fr||{}),jr=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(jr||{}),Br=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(Br||{}),ye=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(ye||{}),Le=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(Le||{}),Vr=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Vr||{}),qr=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(qr||{}),Kr=(n=>(n.Pdf="pdf",n.Text="text",n.Html="html",n.Word="word",n.Json="json",n.Markdown="markdown",n.Csv="csv",n.Excel="excel",n.Powerpoint="powerpoint",n.Archive="archive",n.Image="image",n.Audio="audio",n.Video="video",n))(Kr||{}),ri=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(ri||{});const yc=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var $=(n=>(n.Start="START",n.Stop="STOP",n))($||{}),Ke=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(Ke||{}),Ye=(n=>(n.Idle="IDLE",n.Talking="TALKING",n))(Ye||{}),fe=(n=>(n.ChatAnswer="chat/answer",n.ChatPartial="chat/partial",n.ChatAudioTranscribed="chat/audio-transcribed",n.StreamDone="stream/done",n.StreamStarted="stream/started",n.StreamFailed="stream/error",n.StreamReady="stream/ready",n.StreamCreated="stream/created",n.StreamInterrupt="stream/interrupt",n.StreamVideoCreated="stream-video/started",n.StreamVideoDone="stream-video/done",n.StreamVideoError="stream-video/error",n.StreamVideoRejected="stream-video/rejected",n))(fe||{}),Q=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnected="disconnected",n))(Q||{}),ze=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(ze||{}),Xt=(n=>(n.Livekit="livekit",n))(Xt||{}),zr=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(zr||{}),Wr=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(Wr||{});const bc=45*1e3,kc="X-Playground-Chat",Zt="https://api.d-id.com",Tc="wss://notifications.d-id.com",Sc="79f81a83a67430be2bc0fd61042b8faa",Gr=n=>new Promise(e=>setTimeout(e,n)),Nt=(n=16)=>{const e=new Uint8Array(n);return window.crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("").slice(0,13)},Hr=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,si=n=>n===ri.Expressive,Cc=n=>[ye.TextOnly,ye.Playground,ye.Maintenance].includes(n),Jr=n=>n&&[ye.DirectPlayback,ye.Off].includes(n);function Ec(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function ai(n,e){const t={limit:(e==null?void 0:e.limit)??3,delayMs:(e==null?void 0:e.delayMs)??0,timeout:(e==null?void 0:e.timeout)??3e4,timeoutErrorMessage:(e==null?void 0:e.timeoutErrorMessage)||"Timeout error",shouldRetryFn:(e==null?void 0:e.shouldRetryFn)??(()=>!0),onRetry:(e==null?void 0:e.onRetry)??(()=>{})};let i;for(let r=1;r<=t.limit;r++)try{if(!t.timeout)return await n();const{promise:s,clear:o}=Ec(t.timeout,t.timeoutErrorMessage),a=n().finally(o);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Gr(t.delayMs),t.onRetry(s)}throw i}function oi(n){if(n!==void 0)return window.localStorage.setItem("did_external_key_id",n),n;let e=window.localStorage.getItem("did_external_key_id");if(!e){let t=Nt();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let Pc=Nt();function $r(n,e){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${oi(e)}_${Pc}`;throw new Error(`Unknown auth type: ${n}`)}const wc=n=>ai(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function ci(n,e=Zt,t,i){const r=async(s,o)=>{const{skipErrorHandler:a,...c}=o||{},d=await wc(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...c,headers:{...c.headers,Authorization:$r(n,i),"Content-Type":"application/json"}}));if(!d.ok){let u=await d.text().catch(()=>`Failed to fetch with status ${d.status}`);const l=new Error(u);throw t&&!a&&t(l,{url:s,options:c,headers:d.headers}),l}return d.json()};return{get(s,o){return r(s,{...o,method:"GET"})},post(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"POST"})},delete(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"DELETE"})},patch(s,o,a){return r(s,{...a,body:JSON.stringify(o),method:"PATCH"})}}}function Rc(n,e=Zt,t,i){const r=ci(n,`${e}/agents`,t,i);return{create(s,o){return r.post("/",s,o)},getAgents(s,o){return r.get(`/${s?`?tag=${s}`:""}`,o).then(a=>a??[])},getById(s,o){return r.get(`/${s}`,o)},delete(s,o){return r.delete(`/${s}`,void 0,o)},update(s,o,a){return r.patch(`/${s}`,o,a)},newChat(s,o,a){return r.post(`/${s}/chat`,o,a)},chat(s,o,a,c){return r.post(`/${s}/chat/${o}`,a,c)},createRating(s,o,a,c){return r.post(`/${s}/chat/${o}/ratings`,a,c)},updateRating(s,o,a,c,d){return r.patch(`/${s}/chat/${o}/ratings/${a}`,c,d)},deleteRating(s,o,a,c){return r.delete(`/${s}/chat/${o}/ratings/${a}`,c)},getSTTToken(s,o){return r.get(`/${s}/stt-token`,o)}}}function _c(n){var r,s,o,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const c=navigator.platform;return c.toLowerCase().includes("win")?"Windows":c.toLowerCase().includes("mac")?"Mac OS X":c.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Hr(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(o=n.presenter)==null?void 0:o.voice)==null?void 0:a.type}}}function Ic(n){var t,i,r,s,o,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Hr(n.presenter),owner_id:n.owner_id??"",promptVersion:(i=n.llm)==null?void 0:i.prompt_version,behavior:{role:e==null?void 0:e.role,personality:e==null?void 0:e.personality,instructions:(r=n.llm)==null?void 0:r.instructions},temperature:(s=n.llm)==null?void 0:s.temperature,knowledgeSource:e==null?void 0:e.knowledge_source,starterQuestionsCount:(a=(o=n.knowledge)==null?void 0:o.starter_message)==null?void 0:a.length,topicsToAvoid:e==null?void 0:e.topics_to_avoid,maxResponseLength:e==null?void 0:e.max_response_length,agentId:n.id,access:n.access,name:n.preview_name,...n.access==="public"?{from:"agent-template"}:{}}}const Dc=n=>n.reduce((e,t)=>e+t,0),Qr=n=>Dc(n)/n.length;function Mc(n,e,t){var c,d,u;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:o}=((c=e==null?void 0:e.presenter)==null?void 0:c.voice)||{};return{...r,llm:{...r.llm,template:s},script:{...r.script,provider:{...(d=r==null?void 0:r.script)==null?void 0:d.provider,language:o}},stitch:(e==null?void 0:e.presenter.type)==="talk"?(u=e==null?void 0:e.presenter)==null?void 0:u.stitch:void 0,...t}}function Yr(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}let di={};const Oc="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Ac(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk";return{token:n.token||"testKey",distinct_id:oi(n.externalId),agentId:n.agentId,additionalProperties:{id:oi(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:Nt,enrich(t){this.additionalProperties={...this.additionalProperties,...t}},async track(t,i,r){if(!this.isEnabled)return Promise.resolve();const{audioPath:s,...o}=i||{},a=r||Date.now(),c={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:t,properties:{...this.additionalProperties,...o,agentId:this.agentId,source:e,token:this.token,time:a,$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerWidth,"Screen Width":window.screen.width||window.innerHeight,"User Agent":navigator.userAgent}}])})};return fetch(Oc,{...c,keepalive:!0}).catch(d=>console.error("Analytics tracking error:",d)),Promise.resolve()},linkTrack(t,i,r,s){di[t]||(di[t]={events:{},resolvedDependencies:[]}),s.includes(r)||s.push(r);const o=di[t];if(o.events[r]={props:i},o.resolvedDependencies.push(r),s.every(c=>o.resolvedDependencies.includes(c))){const c=s.reduce((d,u)=>o.events[u]?{...d,...o.events[u].props}:d,{});this.track(t,c),o.resolvedDependencies=o.resolvedDependencies.filter(d=>!s.includes(d)),s.forEach(d=>{delete o.events[d]})}}}}function ui(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const Xe=ui(),li=ui(),Xr=ui();function Zr(n){return n===ye.Playground?{headers:{[kc]:"true"}}:{}}async function es(n,e,t,i,r=!1,s){try{return!s&&!Jr(i)&&(s=await e.newChat(n.id,{persist:r},Zr(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(o){throw xc(o)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const xc=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function Lc(n){return n&&n.length>0?n:[]}function Nc(n,e,t,i){const r=ci(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const ts=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??"");async function hi(){try{return await Promise.resolve().then(()=>gf)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Uc={excellent:Ke.Strong,good:Ke.Strong,poor:Ke.Weak,lost:Ke.Unknown,unknown:Ke.Unknown},en=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});var fi=(n=>(n.Chat="lk.chat",n.Speak="did.speak",n.Interrupt="did.interrupt",n))(fi||{});function mi(n,e,t,i){var r,s;throw e("Failed to connect to LiveKit room:",n),i(),(r=t.onConnectionStateChange)==null||r.call(t,Q.Fail),(s=t.onError)==null||s.call(t,n,{sessionId:""}),n}async function Fc(n,e,t){var gc,vc;const i=ts(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:o}=await hi(),{callbacks:a,auth:c,baseURL:d,analytics:u,microphoneStream:l}=t;let h=null,m=!1;const g=ze.Fluent;let p=!0,T=null,k=null;h=new r({adaptiveStream:!1,dynacast:!0});let _=null;const w=2e4,v=Nc(c,d||Zt,n,a.onError);let b,E,L;try{const N=await v.createStream({transport_provider:Xt.Livekit,chat_persist:e.chat_persist??!0}),{id:j,session_token:H,session_url:ee}=N;(gc=a.onStreamCreated)==null||gc.call(a,{session_id:j,stream_id:j,agent_id:n}),b=j,E=H,L=ee,await h.prepareConnection(L,E)}catch(N){mi(N,i,a,()=>{p=!1})}if(!L||!E||!b)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,S).on(s.ConnectionQualityChanged,M).on(s.ActiveSpeakersChanged,R).on(s.ParticipantConnected,x).on(s.ParticipantDisconnected,U).on(s.TrackSubscribed,q).on(s.TrackUnsubscribed,re).on(s.DataReceived,ge).on(s.MediaDevicesError,Ee).on(s.EncryptionError,se).on(s.TrackSubscriptionFailed,de),(vc=a.onConnectionStateChange)==null||vc.call(a,Q.New);try{await h.connect(L,E),i("LiveKit room joined successfully"),_=setTimeout(()=>{var N;i("Track subscription timeout - no track subscribed within 30 seconds after connect"),_=null,u.track("connectivity-error",{error:"Track subscription timeout",sessionId:b}),(N=a.onError)==null||N.call(a,new Error("Track subscription timeout"),{sessionId:b}),xr()},w),p=!1}catch(N){mi(N,i,a,()=>{p=!1})}u.enrich({"stream-type":g});function S(N){var j,H,ee,le,xe;switch(i("Connection state changed:",N),N){case o.Connecting:(j=a.onConnectionStateChange)==null||j.call(a,Q.Connecting);break;case o.Connected:i("LiveKit room connected successfully"),m=!0,p?queueMicrotask(()=>{var ve;(ve=a.onConnectionStateChange)==null||ve.call(a,Q.Connected)}):(H=a.onConnectionStateChange)==null||H.call(a,Q.Connected);break;case o.Disconnected:i("LiveKit room disconnected"),m=!1,(ee=a.onConnectionStateChange)==null||ee.call(a,Q.Disconnected);break;case o.Reconnecting:i("LiveKit room reconnecting..."),(le=a.onConnectionStateChange)==null||le.call(a,Q.Connecting);break;case o.SignalReconnecting:i("LiveKit room signal reconnecting..."),(xe=a.onConnectionStateChange)==null||xe.call(a,Q.Connecting);break}}function M(N,j){var H;i("Connection quality:",N),j!=null&&j.isLocal&&((H=a.onConnectivityStateChange)==null||H.call(a,Uc[N]))}function R(N){var H,ee;i("Active speakers changed:",N),N[0]?(H=a.onAgentActivityStateChange)==null||H.call(a,Ye.Talking):(ee=a.onAgentActivityStateChange)==null||ee.call(a,Ye.Idle)}function x(N){i("Participant connected:",N.identity)}function U(N){i("Participant disconnected:",N.identity),xr()}function q(N,j,H){var le,xe,ve;i(`Track subscribed: ${N.kind} from ${H.identity}`),_&&(clearTimeout(_),_=null,i("Track subscription timeout cleared"));const ee=N.mediaStreamTrack;if(!ee){i(`No mediaStreamTrack available for ${N.kind}`);return}T?(T.addTrack(ee),i(`Added ${N.kind} track to shared MediaStream`)):(T=new MediaStream([ee]),i(`Created shared MediaStream with ${N.kind} track`)),N.kind==="video"&&((le=a.onStreamReady)==null||le.call(a),(xe=a.onSrcObjectReady)==null||xe.call(a,T),(ve=a.onVideoStateChange)==null||ve.call(a,$.Start))}function re(N,j,H){var ee;i(`Track unsubscribed: ${N.kind} from ${H.identity}`),N.kind==="video"&&((ee=a.onVideoStateChange)==null||ee.call(a,$.Stop))}function ge(N,j,H,ee){var xe,ve,Sn;const le=new TextDecoder().decode(N);i("Data received:",le);try{const vt=JSON.parse(le),ii=ee||vt.subject;if(ii===fe.ChatAnswer){const Lt=Le.Answer;(xe=a.onMessage)==null||xe.call(a,Lt,{event:Lt,...vt})}else if([fe.StreamVideoCreated,fe.StreamVideoDone].includes(ii)){const Lt=(vt==null?void 0:vt.role)||(j==null?void 0:j.identity)||"datachannel";(ve=a.onMessage)==null||ve.call(a,ii,{[Lt]:vt})}else if(ii===fe.ChatAudioTranscribed){const Lt=Le.Transcribe;(Sn=a.onMessage)==null||Sn.call(a,Lt,{event:Lt,...vt})}}catch(vt){i("Failed to parse data channel message:",vt)}}function Ee(N){var j;i("Media devices error:",N),(j=a.onError)==null||j.call(a,new Error(en),{sessionId:b})}function se(N){var j;i("Encryption error:",N),(j=a.onError)==null||j.call(a,new Error(en),{sessionId:b})}function de(N,j,H){i("Track subscription failed:",{trackSid:N,participant:j,reason:H})}async function Ae(N){if(!h)return null;const{Track:j}=await hi(),H=h.localParticipant.audioTrackPublications;if(H){for(const[ee,le]of H)if(le.source===j.Source.Microphone&&le.track){const ve=le.track.mediaStreamTrack;if(ve===N||ve&&ve.id===N.id)return le}}return null}function Z(N){if(!k||!k.track)return!1;const j=k.track.mediaStreamTrack;return j!==N&&(j==null?void 0:j.id)!==N.id}async function te(N){var xe,ve;if(!m||!h)throw i("Room is not connected, cannot publish microphone stream"),new Error("Room is not connected");const j=N.getAudioTracks();if(j.length===0){i("No audio track found in the provided MediaStream");return}const H=j[0],{Track:ee}=await hi(),le=await Ae(H);if(le){i("Microphone track is already published, skipping",{trackId:H.id,publishedTrackId:(ve=(xe=le.track)==null?void 0:xe.mediaStreamTrack)==null?void 0:ve.id}),k=le;return}Z(H)&&(i("Unpublishing existing microphone track before publishing new one"),await we()),i("Publishing microphone track from provided MediaStream",{trackId:H.id});try{k=await h.localParticipant.publishTrack(H,{source:ee.Source.Microphone}),i("Microphone track published successfully",{trackSid:k.trackSid})}catch(Sn){throw i("Failed to publish microphone track:",Sn),Sn}}async function we(){if(!(!k||!k.track))try{h&&(await h.localParticipant.unpublishTrack(k.track),i("Microphone track unpublished"))}catch(N){i("Error unpublishing microphone track:",N)}finally{k=null}}function F(){T&&(T.getTracks().forEach(N=>N.stop()),T=null)}async function B(N,j){var H,ee;if(!m||!h){i("Room is not connected for sending messages"),(H=a.onError)==null||H.call(a,new Error(en),{sessionId:b});return}try{await h.localParticipant.sendText(N,{topic:j}),i("Message sent successfully:",N)}catch(le){i("Failed to send message:",le),(ee=a.onError)==null||ee.call(a,new Error(en),{sessionId:b})}}async function ue(N){var j;try{const ee=JSON.parse(N).topic;return B("",ee)}catch(H){i("Failed to send data channel message:",H),(j=a.onError)==null||j.call(a,new Error(en),{sessionId:b})}}function Se(N){return B(N,"lk.chat")}async function xr(){var N,j;_&&(clearTimeout(_),_=null),h&&(await we(),await h.disconnect()),F(),m=!1,(N=a.onConnectionStateChange)==null||N.call(a,Q.Disconnected),(j=a.onAgentActivityStateChange)==null||j.call(a,Ye.Idle)}return{speak(N){const j=typeof N=="string"?N:JSON.stringify(N);return B(j,"did.speak")},disconnect:xr,async reconnect(){var N,j,H;if((h==null?void 0:h.state)===o.Connected){i("Room is already connected");return}if(!h||!L||!E)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),(N=a.onConnectionStateChange)==null||N.call(a,Q.Connecting);try{if(await h.connect(L,E),i("Room reconnected"),m=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(le=>{const xe=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,ve),le(!1)},5e3),ve=()=>{clearTimeout(xe),h==null||h.off(s.ParticipantConnected,ve),le(!0)};h==null||h.on(s.ParticipantConnected,ve)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined")}(j=a.onConnectionStateChange)==null||j.call(a,Q.Connected)}catch(ee){throw i("Failed to reconnect:",ee),(H=a.onConnectionStateChange)==null||H.call(a,Q.Fail),ee}},sendDataChannelMessage:ue,sendTextMessage:Se,publishMicrophoneStream:te,unpublishMicrophoneStream:we,sessionId:b,streamId:b,streamType:g,interruptAvailable:!0,triggersAvailable:!1}}const jc=Object.freeze(Object.defineProperty({__proto__:null,DataChannelTopic:fi,createLiveKitStreamingManager:Fc,handleInitError:mi},Symbol.toStringTag,{value:"Module"}));function Bc(n,e,t){if(!n)throw new Error("Please connect to the agent first");if(!n.interruptAvailable)throw new Error("Interrupt is not enabled for this stream");if(e!==ze.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function Vc(n,e){const t={type:fe.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}async function qc(n){const e={topic:fi.Interrupt};n.sendDataChannelMessage(JSON.stringify(e))}function Kc(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:o}=n,{onMessage:a=null,onOpen:c=null,onClose:d=null,onError:u=null}=i||{},l=new WebSocket(`${r}?authorization=${encodeURIComponent($r(s,o))}`);l.onmessage=a,l.onclose=d,l.onerror=h=>{console.error(h),u==null||u("Websocket failed to connect",h),t(h)},l.onopen=h=>{c==null||c(h),e(l)}})}async function zc(n){const{retries:e=1}=n;let t=null;for(let i=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;i++)try{t=await Kc(n)}catch(r){if(i===e)throw r;await Gr(i*500)}return t}async function Wc(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await zc({auth:n,host:e,externalId:i,callbacks:{onError:o=>{var a;return(a=t.onError)==null?void 0:a.call(t,new Nr(o))},onMessage(o){const a=JSON.parse(o.data);r.forEach(c=>c(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:o=>r.push(o)}}function Gc(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function Hc(n,e,t){if(!n.content)return;const i=e.messages[e.messages.length-1];(i==null?void 0:i.role)==="assistant"&&!i.interrupted&&(i.interrupted=!0);const r={id:n.id||`user-${Date.now()}`,role:n.role,content:n.content,created_at:n.created_at||new Date().toISOString(),transcribed:!0};e.messages.push(r),t==null||t([...e.messages],"user")}function Jc(n,e,t,i,r){if(n===Le.Transcribe&&e.content){Hc(e,i,r);return}if(!(n===Le.Partial||n===Le.Answer))return;const s=i.messages[i.messages.length-1];let o;if(s!=null&&s.transcribed&&s.role==="user")n===Le.Answer&&e.content,o={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",created_at:e.created_at||new Date().toISOString()},i.messages.push(o);else if((s==null?void 0:s.role)==="assistant")o=s;else return;const{content:a,sequence:c}=e;n===Le.Partial?t[c]=a:t.answer=a;const d=Gc(t);(o.content!==d||n===Le.Answer)&&(o.content=d,r==null||r([...i.messages],n))}function $c(n,e,t,i,r){let s={};return{clearQueue:()=>s={},onMessage:(o,a)=>{var c,d;if("content"in a){const u=o===fe.ChatAnswer?Le.Answer:o===fe.ChatAudioTranscribed?Le.Transcribe:o;Jc(u,a,s,e,t.callbacks.onNewMessage),u===Le.Answer&&n.track("agent-message-received",{messages:e.messages.length,mode:e.chatMode})}else{const u=fe,l=[u.StreamVideoDone,u.StreamVideoError,u.StreamVideoRejected],h=[u.StreamFailed,u.StreamVideoError,u.StreamVideoRejected],m=Mc(a,i,{mode:e.chatMode});if(o=o,o===u.StreamVideoCreated)n.linkTrack("agent-video",m,u.StreamVideoCreated,["start"]);else if(l.includes(o)){const g=o.split("/")[1];h.includes(o)?n.track("agent-video",{...m,event:g}):n.linkTrack("agent-video",{...m,event:g},o,["done"])}h.includes(o)&&((d=(c=t.callbacks).onError)==null||d.call(c,new Error(`Stream failed with event ${o}`),{data:a})),a.event===u.StreamDone&&r()}}}}function Qc(n,e,t,i){const r=ci(n,`${e}/agents/${t}`,i);return{createStream(s,o){return r.post("/streams",s,{signal:o})},startConnection(s,o,a,c){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:o},{signal:c})},addIceCandidate(s,o,a,c){return r.post(`/streams/${s}/ice`,{session_id:a,...o},{signal:c})},sendStreamRequest(s,o,a){return r.post(`/streams/${s}`,{session_id:o,...a})},close(s,o){return r.delete(`/streams/${s}`,{session_id:o})}}}function Yc(n,e,t){const i=(e.timestamp-n.timestamp)/1e3;return{duration:i,bytesReceived:e.bytesReceived-n.bytesReceived,bitrate:Math.round((e.bytesReceived-n.bytesReceived)*8/i),packetsReceived:e.packetsReceived-n.packetsReceived,packetsLost:e.packetsLost-n.packetsLost,framesDropped:e.framesDropped-n.framesDropped,framesDecoded:e.framesDecoded-n.framesDecoded,jitter:e.jitter,avgJitterDelayInInterval:(e.jitterBufferDelay-n.jitterBufferDelay)/(e.jitterBufferEmittedCount-n.jitterBufferEmittedCount),jitterBufferEmittedCount:e.jitterBufferEmittedCount-n.jitterBufferEmittedCount,jitterBufferDelay:(e.jitterBufferDelay-n.jitterBufferDelay)/i,framesPerSecond:e.framesPerSecond,freezeCount:e.freezeCount-n.freezeCount,freezeDuration:e.freezeDuration-n.freezeDuration,lowFpsCount:t}}function Xc(n){return n.filter(e=>e.freezeCount>0||e.framesPerSecond<21||e.framesDropped>0||e.packetsLost>0).map(e=>{const{timestamp:t,...i}=e,r=[];return e.freezeCount>0&&r.push("freeze"),e.framesPerSecond<21&&r.push("low fps"),e.framesDropped>0&&r.push("frames dropped"),e.packetsLost>0&&r.push("packet loss"),{...i,causes:r}})}function Zc(n){let e="",t=0;for(const i of n.values()){if(i&&i.type==="codec"&&i.mimeType.startsWith("video")&&(e=i.mimeType.split("/")[1]),i&&i.type==="candidate-pair"){const r=i.currentRoundTripTime,o=i.nominated===!0;r>0&&(o||t===0)&&(t=r)}if(i&&i.type==="inbound-rtp"&&i.kind==="video")return{codec:e,rtt:t,timestamp:i.timestamp,bytesReceived:i.bytesReceived,packetsReceived:i.packetsReceived,packetsLost:i.packetsLost,framesDropped:i.framesDropped,framesDecoded:i.framesDecoded,jitter:i.jitter,jitterBufferDelay:i.jitterBufferDelay,jitterBufferEmittedCount:i.jitterBufferEmittedCount,avgJitterDelayInInterval:i.jitterBufferDelay/i.jitterBufferEmittedCount,frameWidth:i.frameWidth,frameHeight:i.frameHeight,framesPerSecond:i.framesPerSecond,freezeCount:i.freezeCount,freezeDuration:i.totalFreezesDuration}}return{}}function ed(n,e,t){const i=n.map((c,d)=>d===0?t?{timestamp:c.timestamp,duration:0,rtt:c.rtt,bytesReceived:c.bytesReceived-t.bytesReceived,bitrate:(c.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-t.packetsReceived,packetsLost:c.packetsLost-t.packetsLost,framesDropped:c.framesDropped-t.framesDropped,framesDecoded:c.framesDecoded-t.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-t.jitterBufferDelay)/(c.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-t.freezeCount,freezeDuration:c.freezeDuration-t.freezeDuration}:{timestamp:c.timestamp,rtt:c.rtt,duration:0,bytesReceived:c.bytesReceived,bitrate:c.bytesReceived*8/(e/1e3),packetsReceived:c.packetsReceived,packetsLost:c.packetsLost,framesDropped:c.framesDropped,framesDecoded:c.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount,avgJitterDelayInInterval:c.jitterBufferDelay/c.jitterBufferEmittedCount,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.freezeDuration}:{timestamp:c.timestamp,duration:e*d/1e3,rtt:c.rtt,bytesReceived:c.bytesReceived-n[d-1].bytesReceived,bitrate:(c.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-n[d-1].packetsReceived,packetsLost:c.packetsLost-n[d-1].packetsLost,framesDropped:c.framesDropped-n[d-1].framesDropped,framesDecoded:c.framesDecoded-n[d-1].framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-n[d-1].jitterBufferDelay)/(c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-n[d-1].freezeCount,freezeDuration:c.freezeDuration-n[d-1].freezeDuration}),r=Xc(i),s=r.reduce((c,d)=>c+(d.causes.includes("low fps")?1:0),0),o=i.filter(c=>!!c.avgJitterDelayInInterval).map(c=>c.avgJitterDelayInInterval),a=i.filter(c=>!!c.rtt).map(c=>c.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:Qr(a),maxRtt:Math.max(...a),aggregateReport:Yc(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...o),maxJitterDelayInInterval:Math.max(...o),avgJitterDelayInInterval:Qr(o)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}const pi=100,td=Math.max(Math.ceil(400/pi),1),nd=.25,id=.28;function rd(){let n=0,e,t,i=0;return r=>{for(const s of r.values())if(s&&s.type==="inbound-rtp"&&s.kind==="video"){const o=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const u=o-e,l=a-t;i=u/l}e=o,t=a;const c=s.framesDecoded,d=c-n>0;return n=c,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}return{isReceiving:!1,avgJitterDelayInInterval:i}}}function sd(n,e,t,i,r){let s=[],o,a=0,c=!1,d=Ke.Unknown,u=Ke.Unknown,l=0,h=0;const m=rd();return setInterval(async()=>{const g=await n.getStats(),{isReceiving:p,avgJitterDelayInInterval:T,freezeCount:k}=m(g),_=Zc(g);if(p)a=0,l=k-h,u=T<nd?Ke.Strong:T>id&&l>1?Ke.Weak:d,u!==d&&(r==null||r(u),d=u,h+=l,l=0),c||(i==null||i($.Start),o=s[s.length-1],s=[],c=!0),s.push(_);else if(c&&(a++,a>=td)){const w=ed(s,pi,o);i==null||i($.Stop,w),e()||t(),h=k,c=!1}},pi)}const ad=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ns(n){switch(n){case"connected":return Q.Connected;case"checking":return Q.Connecting;case"failed":return Q.Fail;case"new":return Q.New;case"closed":return Q.Closed;case"disconnected":return Q.Disconnected;case"completed":return Q.Completed;default:return Q.New}}const od=n=>e=>{const[t,i=""]=e.split(/:(.+)/);try{const r=JSON.parse(i);return n("parsed data channel message",{subject:t,data:r}),{subject:t,data:r}}catch(r){return n("Failed to parse data channel message, returning data as string",{subject:t,rawData:i,error:r}),{subject:t,data:i}}};function cd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i}){n===$.Start&&e===$.Start?t==null||t($.Start):n===$.Stop&&e===$.Stop&&(t==null||t($.Stop,i))}function dd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r}){n===$.Start?t==null||t($.Start):n===$.Stop&&(t==null||t($.Stop,r)),e===$.Start?i==null||i(Ye.Talking):e===$.Stop&&(i==null||i(Ye.Idle))}function is({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s}){r===ze.Legacy?cd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s}):r===ze.Fluent&&dd({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s})}async function ud(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Zt,analytics:o},a){var we;const c=ts(t,"WebRTCStreamingManager"),d=od(c);let u=!1,l=!1,h=$.Stop,m=$.Stop;const{startConnection:g,sendStreamRequest:p,close:T,createStream:k,addIceCandidate:_}=Qc(r,s,n,i.onError),{id:w,offer:v,ice_servers:b,session_id:E,fluent:L,interrupt_enabled:S,triggers_enabled:M}=await k(e,a);(we=i.onStreamCreated)==null||we.call(i,{stream_id:w,session_id:E,agent_id:n});const R=new ad({iceServers:b}),x=R.createDataChannel("JanusDataChannel");if(!E)throw new Error("Could not create session_id");const U=L?ze.Fluent:ze.Legacy;o.enrich({"stream-type":U});const q=e.stream_warmup&&!L,re=()=>u,ge=()=>{var F;u=!0,l&&((F=i.onConnectionStateChange)==null||F.call(i,Q.Connected))},Ee=sd(R,re,ge,(F,B)=>is({statsSignal:m=F,dataChannelSignal:U===ze.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:U}),F=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,F)});R.onicecandidate=F=>{var B;c("peerConnection.onicecandidate",F);try{F.candidate&&F.candidate.sdpMid&&F.candidate.sdpMLineIndex!==null?_(w,{candidate:F.candidate.candidate,sdpMid:F.candidate.sdpMid,sdpMLineIndex:F.candidate.sdpMLineIndex},E,a):_(w,{candidate:null},E,a)}catch(ue){(B=i.onError)==null||B.call(i,ue,{streamId:w})}},x.onopen=()=>{l=!0,(!q||u)&&ge()};const se=F=>{var B;(B=i.onVideoIdChange)==null||B.call(i,F)};function de(F,B){if(F===fe.StreamStarted&&typeof B=="object"&&"metadata"in B){const ue=B.metadata;se(ue.videoId)}F===fe.StreamDone&&se(null),h=F===fe.StreamStarted?$.Start:$.Stop,is({statsSignal:U===ze.Legacy?m:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:U})}function Ae(F,B){var Se;const ue=typeof B=="string"?B:B==null?void 0:B.metadata;ue&&o.enrich({streamMetadata:ue}),(Se=i.onStreamReady)==null||Se.call(i)}const Z={[fe.StreamStarted]:de,[fe.StreamDone]:de,[fe.StreamReady]:Ae};x.onmessage=F=>{var Se;const{subject:B,data:ue}=d(F.data);(Se=Z[B])==null||Se.call(Z,B,ue)},R.oniceconnectionstatechange=()=>{var B;c("peerConnection.oniceconnectionstatechange => "+R.iceConnectionState);const F=ns(R.iceConnectionState);F!==Q.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,F))},R.ontrack=F=>{var B;c("peerConnection.ontrack",F),(B=i.onSrcObjectReady)==null||B.call(i,F.streams[0])},await R.setRemoteDescription(v),c("set remote description OK");const te=await R.createAnswer();return c("create answer OK"),await R.setLocalDescription(te),c("set local description OK"),await g(w,te,E,a),c("start connection OK"),{speak(F){return p(w,E,F)},async disconnect(){var F;if(w){const B=ns(R.iceConnectionState);if(R){if(B===Q.New){clearInterval(Ee);return}R.close(),R.oniceconnectionstatechange=null,R.onnegotiationneeded=null,R.onicecandidate=null,R.ontrack=null}try{B===Q.Connected&&await T(w,E).catch(ue=>{})}catch(ue){c("Error on close stream connection",ue)}(F=i.onAgentActivityStateChange)==null||F.call(i,Ye.Idle),clearInterval(Ee)}},sendDataChannelMessage(F){var B,ue;if(!u||x.readyState!=="open"){c("Data channel is not ready for sending messages"),(B=i.onError)==null||B.call(i,new Error("Data channel is not ready for sending messages"),{streamId:w});return}try{x.send(F)}catch(Se){c("Error sending data channel message",Se),(ue=i.onError)==null||ue.call(i,Se,{streamId:w})}},sessionId:E,streamId:w,streamType:U,interruptAvailable:S??!1,triggersAvailable:M??!1}}var gi=(n=>(n.V1="v1",n.V2="v2",n))(gi||{});async function ld(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...o}=e;return ud(r,o,t,i)}case"v2":{const{version:s,...o}=e;switch(o.transport_provider){case Xt.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>jc);return a(r,o,t);default:throw new Error(`Unsupported transport provider: ${o.transport_provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const hd="cht";function fd(){return{transport_provider:Xt.Livekit}}function md(n){var r,s;const{streamOptions:e}=n??{},t=((r=n==null?void 0:n.mixpanelAdditionalProperties)==null?void 0:r.plan)!==void 0?{plan:(s=n.mixpanelAdditionalProperties)==null?void 0:s.plan}:void 0;return{...{output_resolution:e==null?void 0:e.outputResolution,session_timeout:e==null?void 0:e.sessionTimeout,stream_warmup:e==null?void 0:e.streamWarmup,compatibility_mode:e==null?void 0:e.compatibilityMode,fluent:e==null?void 0:e.fluent},...t&&{end_user_data:t}}}function pd(n,e){return si(n.presenter.type)?{version:gi.V2,...fd()}:{version:gi.V1,...md(e)}}function gd(n,e,t,i,r){r===ze.Fluent?vd(n,e,t,i,r):bd(n,e,t,i,r)}function vd(n,e,t,i,r){n===$.Start?i.track("stream-session",{event:"start","stream-type":r}):n===$.Stop&&i.track("stream-session",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t})}function yd(n,e,t,i){Xe.get()<=0||(n===$.Start?t.linkTrack("agent-video",{event:"start",latency:Xe.get(!0),"stream-type":i},"start",[fe.StreamVideoCreated]):n===$.Stop&&t.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":i},"done",[fe.StreamVideoDone]))}function bd(n,e,t,i,r){Xe.get()<=0||(n===$.Start?i.linkTrack("agent-video",{event:"start",latency:Xe.get(!0),"stream-type":r},"start",[fe.StreamVideoCreated]):n===$.Stop&&i.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t},"done",[fe.StreamVideoDone]))}function rs(n,e,t,i){return Xe.reset(),Xr.update(),new Promise(async(r,s)=>{try{let o,a=!1;const c=pd(n,e);t.enrich({"stream-version":c.version.toString()}),o=await ld(n,c,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:d=>{var u,l;(l=(u=e.callbacks).onConnectionStateChange)==null||l.call(u,d),d===Q.Connected&&(o?r(o):a=!0)},onVideoStateChange:(d,u)=>{var l,h;(h=(l=e.callbacks).onVideoStateChange)==null||h.call(l,d),gd(d,n,u,t,o.streamType)},onAgentActivityStateChange:d=>{var u,l;(l=(u=e.callbacks).onAgentActivityStateChange)==null||l.call(u,d),d===Ye.Talking?li.update():li.reset(),yd(d===Ye.Talking?$.Start:$.Stop,n,t,o.streamType)},onStreamReady:()=>{const d=Xr.get(!0);t.track("agent-chat",{event:"ready",latency:d})}}},i),a&&r(o)}catch(o){s(o)}})}async function kd(n,e,t,i,r){var u,l,h,m;const s=async()=>{if(si(n.presenter.type)){const g=await rs(n,e,i),p=`${hd}_${g.sessionId}`,T=new Date().toISOString();return{chatResult:{chatMode:ye.Functional,chat:{id:p,agent_id:n.id,owner_id:n.owner_id??"",created:T,modified:T,agent_id__created_at:T,agent_id__modified_at:T,chat_mode:ye.Functional,messages:[]}},streamingManager:g}}else{const g=new AbortController,p=g.signal;let T;try{const k=es(n,t,i,e.mode,e.persistentChat,r),_=rs(n,e,i,p).then(b=>(T=b,b)),[w,v]=await Promise.all([k,_]);return{chatResult:w,streamingManager:v}}catch(k){throw g.abort(),T&&await T.disconnect().catch(()=>{}),k}}},{chatResult:o,streamingManager:a}=await s(),{chat:c,chatMode:d}=o;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(l=(u=e.callbacks).onModeChange)==null||l.call(u,d),d!==ye.Functional)?((m=(h=e.callbacks).onError)==null||m.call(h,new Lr(d)),a==null||a.disconnect(),{chat:c}):{chat:c,streamingManager:a}}async function Td(n,e){var b,E,L;let t=!0,i=null;const r=e.mixpanelKey||Sc,s=e.wsURL||Tc,o=e.baseURL||Zt,a=e.mode||ye.Functional,c={messages:[],chatMode:a},d=Ac({token:r,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),u=Date.now();Yr(()=>{d.track("agent-sdk",{event:"init"},u)});const l=Rc(e.auth,o,e.callbacks.onError,e.externalId),h=await l.getById(n),m=si(h.presenter.type);d.enrich(Ic(h));const{onMessage:g,clearQueue:p}=$c(d,c,e,h,()=>{var S;return(S=c.socketManager)==null?void 0:S.disconnect()});c.messages=Lc(e.initialMessages),(E=(b=e.callbacks).onNewMessage)==null||E.call(b,[...c.messages],"answer");const T=S=>{i=S},k=Date.now();Yr(()=>{d.track("agent-sdk",{event:"loaded",..._c(h)},k)});async function _(S){var re,ge,Ee,se,de,Ae,Z;(ge=(re=e.callbacks).onConnectionStateChange)==null||ge.call(re,Q.Connecting),Xe.reset(),S&&!t&&(delete c.chat,(se=(Ee=e.callbacks).onNewMessage)==null||se.call(Ee,[...c.messages],"answer"));const M=a===ye.DirectPlayback||m?Promise.resolve(void 0):Wc(e.auth,s,{onMessage:g,onError:e.callbacks.onError},e.externalId),R=ai(()=>kd(h,{...e,mode:a,callbacks:{...e.callbacks,onVideoIdChange:T,onMessage:g}},l,d,c.chat),{limit:3,timeout:bc,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:te=>(te==null?void 0:te.message)!=="Could not connect"&&te.status!==429&&(te==null?void 0:te.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(te=>{var we,F;throw v(ye.Maintenance),(F=(we=e.callbacks).onConnectionStateChange)==null||F.call(we,Q.Fail),te}),[x,{streamingManager:U,chat:q}]=await Promise.all([M,R]);q&&q.id!==((de=c.chat)==null?void 0:de.id)&&((Z=(Ae=e.callbacks).onNewChat)==null||Z.call(Ae,q.id)),c.streamingManager=U,c.socketManager=x,c.chat=q,t=!1,d.enrich({chatId:q==null?void 0:q.id,streamId:U==null?void 0:U.streamId,mode:c.chatMode}),v((q==null?void 0:q.chat_mode)??a)}async function w(){var S,M,R,x;(S=c.socketManager)==null||S.disconnect(),await((M=c.streamingManager)==null?void 0:M.disconnect()),delete c.streamingManager,delete c.socketManager,(x=(R=e.callbacks).onConnectionStateChange)==null||x.call(R,Q.Disconnected)}async function v(S){var M,R;S!==c.chatMode&&(d.track("agent-mode-change",{mode:S}),c.chatMode=S,c.chatMode!==ye.Functional&&await w(),(R=(M=e.callbacks).onModeChange)==null||R.call(M,S))}return{agent:h,getStreamType:()=>{var S;return(S=c.streamingManager)==null?void 0:S.streamType},getIsInterruptAvailable:()=>{var S;return((S=c.streamingManager)==null?void 0:S.interruptAvailable)??!1},getIsTriggersAvailable:()=>{var S;return((S=c.streamingManager)==null?void 0:S.triggersAvailable)??!1},starterMessages:((L=h.knowledge)==null?void 0:L.starter_message)||[],getSTTToken:()=>l.getSTTToken(h.id),changeMode:v,enrichAnalytics:d.enrich,async connect(){await _(!0),d.track("agent-chat",{event:"connect",mode:c.chatMode})},async reconnect(){const S=c.streamingManager;if(m&&(S!=null&&S.reconnect)){try{await S.reconnect(),d.track("agent-chat",{event:"reconnect",mode:c.chatMode})}catch{await w(),await _(!1)}return}await w(),await _(!1),d.track("agent-chat",{event:"reconnect",mode:c.chatMode})},async disconnect(){await w(),d.track("agent-chat",{event:"disconnect",mode:c.chatMode})},async publishMicrophoneStream(S){var M;if(!((M=c.streamingManager)!=null&&M.publishMicrophoneStream))throw new Error("publishMicrophoneStream is not available for this streaming manager");return c.streamingManager.publishMicrophoneStream(S)},async unpublishMicrophoneStream(){var S;if(!((S=c.streamingManager)!=null&&S.unpublishMicrophoneStream))throw new Error("unpublishMicrophoneStream is not available for this streaming manager");return c.streamingManager.unpublishMicrophoneStream()},async chat(S){var U,q,re,ge,Ee;const M=()=>{if(Jr(a))throw new Pt(`${a} is enabled, chat is disabled`);if(S.length>=800)throw new Pt("Message cannot be more than 800 characters");if(S.length===0)throw new Pt("Message cannot be empty");if(c.chatMode===ye.Maintenance)throw new Pt("Chat is in maintenance mode");if(![ye.TextOnly,ye.Playground].includes(c.chatMode)){if(!c.streamingManager)throw new Pt("Streaming manager is not initialized");if(!c.chat)throw new Pt("Chat is not initialized")}},R=async()=>{var se,de;if(!c.chat){const Ae=await es(h,l,d,c.chatMode,e.persistentChat);if(!Ae.chat)throw new Et(c.chatMode,!!e.persistentChat);c.chat=Ae.chat,(de=(se=e.callbacks).onNewChat)==null||de.call(se,c.chat.id)}return c.chat.id},x=async(se,de)=>ai(m?async()=>{var Z,te;return await((te=(Z=c.streamingManager)==null?void 0:Z.sendTextMessage)==null?void 0:te.call(Z,S)),Promise.resolve({})}:async()=>{var Z,te;return l.chat(h.id,de,{chatMode:c.chatMode,streamId:(Z=c.streamingManager)==null?void 0:Z.streamId,sessionId:(te=c.streamingManager)==null?void 0:te.sessionId,messages:se.map(({matches:we,...F})=>F)},{...Zr(c.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Z=>{var F,B,ue,Se;const te=(F=Z==null?void 0:Z.message)==null?void 0:F.includes("missing or invalid session_id");return!((B=Z==null?void 0:Z.message)==null?void 0:B.includes("Stream Error"))&&!te?((Se=(ue=e.callbacks).onError)==null||Se.call(ue,Z),!1):!0},onRetry:async()=>{await w(),await _(!1)}});try{p(),M(),c.messages.push({id:Nt(),role:"user",content:S,created_at:new Date(Xe.update()).toISOString()}),(q=(U=e.callbacks).onNewMessage)==null||q.call(U,[...c.messages],"user");const se=await R(),de=await x([...c.messages],se);return c.messages.push({id:Nt(),role:"assistant",content:de.result||"",created_at:new Date().toISOString(),context:de.context,matches:de.matches}),d.track("agent-message-send",{event:"success",messages:c.messages.length+1}),de.result&&((ge=(re=e.callbacks).onNewMessage)==null||ge.call(re,[...c.messages],"answer"),d.track("agent-message-received",{latency:Xe.get(!0),messages:c.messages.length})),de}catch(se){throw((Ee=c.messages[c.messages.length-1])==null?void 0:Ee.role)==="assistant"&&c.messages.pop(),d.track("agent-message-send",{event:"error",messages:c.messages.length}),se}},rate(S,M,R){var q,re,ge,Ee;const x=c.messages.find(se=>se.id===S);if(c.chat){if(!x)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const U=((q=x.matches)==null?void 0:q.map(se=>[se.document_id,se.id]))??[];return d.track("agent-rate",{event:R?"update":"create",thumb:M===1?"up":"down",knowledge_id:((re=h.knowledge)==null?void 0:re.id)??"",matches:U,score:M}),R?l.updateRating(h.id,c.chat.id,R,{knowledge_id:((ge=h.knowledge)==null?void 0:ge.id)??"",message_id:S,matches:U,score:M}):l.createRating(h.id,c.chat.id,{knowledge_id:((Ee=h.knowledge)==null?void 0:Ee.id)??"",message_id:S,matches:U,score:M})},deleteRate(S){if(!c.chat)throw new Error("Chat is not initialized");return d.track("agent-rate-delete",{type:"text"}),l.deleteRating(h.id,c.chat.id,S)},async speak(S){var U,q,re;function M(){if(typeof S=="string"){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:S,ssml:!1}}if(S.type==="text"&&!S.provider){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:S.input,ssml:S.ssml}}return S}const R=M();if(d.track("agent-speak",R),Xe.update(),c.messages&&R.type==="text"&&(c.messages.push({id:Nt(),role:"assistant",content:R.input,created_at:new Date().toISOString()}),(q=(U=e.callbacks).onNewMessage)==null||q.call(U,[...c.messages],"answer")),Cc(c.chatMode))return{duration:0,video_id:"",status:"success"};if(!c.streamingManager)throw new Error("Please connect to the agent first");return c.streamingManager.speak({script:R,metadata:{chat_id:(re=c.chat)==null?void 0:re.id,agent_id:h.id}})},async interrupt({type:S}){var R,x,U;const M=c.messages[c.messages.length-1];d.track("agent-video-interrupt",{type:S||"click",video_duration_to_interrupt:li.get(!0),message_duration_to_interrupt:Xe.get(!0)}),M.interrupted=!0,(x=(R=e.callbacks).onNewMessage)==null||x.call(R,[...c.messages],"answer"),m?qc(c.streamingManager):(Bc(c.streamingManager,(U=c.streamingManager)==null?void 0:U.streamType,i),Vc(c.streamingManager,i))}}}function Sd(n,e){return e.forEach(function(t){t&&typeof t!="string"&&!Array.isArray(t)&&Object.keys(t).forEach(function(i){if(i!=="default"&&!(i in n)){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}})}),Object.freeze(n)}var Cd=Object.defineProperty,Ed=(n,e,t)=>e in n?Cd(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ss=(n,e,t)=>Ed(n,typeof e!="symbol"?e+"":e,t);class Pe{constructor(){ss(this,"_locking"),ss(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){this._locks+=1;let e;const t=new Promise(r=>e=()=>{this._locks-=1,r()}),i=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),i}}function oe(n,e){if(!n)throw new Error(e)}const Pd=34028234663852886e22,wd=-34028234663852886e22,Rd=4294967295,_d=2147483647,Id=-2147483648;function En(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>_d||n<Id)throw new Error("invalid int 32: "+n)}function vi(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>Rd||n<0)throw new Error("invalid uint 32: "+n)}function as(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Pd||n<wd))throw new Error("invalid float 32: "+n)}const os=Symbol("@bufbuild/protobuf/enum-type");function Dd(n){const e=n[os];return oe(e,"missing enum type on enum object"),e}function cs(n,e,t,i){n[os]=ds(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function ds(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const o of e){const a=us(o);s.push(a),i[o.name]=a,r[o.no]=a}return{typeName:n,values:s,findName(o){return i[o]},findNumber(o){return r[o]}}}function Md(n,e,t){const i={};for(const r of e){const s=us(r);i[s.localName]=s.no,i[s.no]=s.localName}return cs(i,n,e),i}function us(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class yi{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const i=this.getType(),r=i.runtime.bin,s=r.makeReadOptions(t);return r.readMessage(this,s.readerFactory(e),e.byteLength,s),this}fromJson(e,t){const i=this.getType(),r=i.runtime.json,s=r.makeReadOptions(t);return r.readMessage(i,e,s,this),this}fromJsonString(e,t){let i;try{i=JSON.parse(e)}catch(r){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(r instanceof Error?r.message:String(r)))}return this.fromJson(i,t)}toBinary(e){const t=this.getType(),i=t.runtime.bin,r=i.makeWriteOptions(e),s=r.writerFactory();return i.writeMessage(this,s,r),s.finish()}toJson(e){const t=this.getType(),i=t.runtime.json,r=i.makeWriteOptions(e);return i.writeMessage(this,r)}toJsonString(e){var t;const i=this.toJson(e);return JSON.stringify(i,null,(t=e==null?void 0:e.prettySpaces)!==null&&t!==void 0?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function Od(n,e,t,i){var r;const s=(r=i==null?void 0:i.localName)!==null&&r!==void 0?r:e.substring(e.lastIndexOf(".")+1),o={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(o.prototype,new yi),Object.assign(o,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,c){return new o().fromBinary(a,c)},fromJson(a,c){return new o().fromJson(a,c)},fromJsonString(a,c){return new o().fromJsonString(a,c)},equals(a,c){return n.util.equals(o,a,c)}}),o}function Ad(){let n=0,e=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(n|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}let t=this.buf[this.pos++];if(n|=(t&15)<<28,e=(t&112)>>4,!(t&128))return this.assertBounds(),[n,e];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,!(r&128))return this.assertBounds(),[n,e]}throw new Error("invalid varint")}function bi(n,e,t){for(let s=0;s<28;s=s+7){const o=n>>>s,a=!(!(o>>>7)&&e==0),c=(a?o|128:o)&255;if(t.push(c),!a)return}const i=n>>>28&15|(e&7)<<4,r=!!(e>>3);if(t.push((r?i|128:i)&255),!!r){for(let s=3;s<31;s=s+7){const o=e>>>s,a=!!(o>>>7),c=(a?o|128:o)&255;if(t.push(c),!a)return}t.push(e>>>31&1)}}const Pn=4294967296;function ls(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(o,a){const c=Number(n.slice(o,a));r*=t,i=i*t+c,i>=Pn&&(r=r+(i/Pn|0),i=i%Pn)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?fs(i,r):ki(i,r)}function xd(n,e){let t=ki(n,e);const i=t.hi&2147483648;i&&(t=fs(t.lo,t.hi));const r=hs(t.lo,t.hi);return i?"-"+r:r}function hs(n,e){if({lo:n,hi:e}=Ld(n,e),e<=2097151)return String(Pn*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,o=i+r*8147497,a=r*2;const c=1e7;return s>=c&&(o+=Math.floor(s/c),s%=c),o>=c&&(a+=Math.floor(o/c),o%=c),a.toString()+ms(o)+ms(s)}function Ld(n,e){return{lo:n>>>0,hi:e>>>0}}function ki(n,e){return{lo:n|0,hi:e|0}}function fs(n,e){return e=~e,n?n=~n+1:e+=1,ki(n,e)}const ms=n=>{const e=String(n);return"0000000".slice(e.length)+e};function ps(n,e){if(n>=0){for(;n>127;)e.push(n&127|128),n=n>>>7;e.push(n)}else{for(let t=0;t<9;t++)e.push(n&127|128),n=n>>7;e.push(1)}}function Nd(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function Ud(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),o=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>s||d<r)throw new Error("int64 invalid: ".concat(c));return d},uParse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>a||d<o)throw new Error("uint64 invalid: ".concat(c));return d},enc(c){return n.setBigInt64(0,this.parse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(c){return n.setBigInt64(0,this.uParse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>oe(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>oe(/^[0-9]+$/.test(r),"uint64 invalid: ".concat(r));return{zero:"0",supported:!1,parse(r){return typeof r!="string"&&(r=r.toString()),t(r),r},uParse(r){return typeof r!="string"&&(r=r.toString()),i(r),r},enc(r){return typeof r!="string"&&(r=r.toString()),t(r),ls(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),ls(r)},dec(r,s){return xd(r,s)},uDec(r,s){return hs(r,s)}}}const ie=Ud();var P;(function(n){n[n.DOUBLE=1]="DOUBLE",n[n.FLOAT=2]="FLOAT",n[n.INT64=3]="INT64",n[n.UINT64=4]="UINT64",n[n.INT32=5]="INT32",n[n.FIXED64=6]="FIXED64",n[n.FIXED32=7]="FIXED32",n[n.BOOL=8]="BOOL",n[n.STRING=9]="STRING",n[n.BYTES=12]="BYTES",n[n.UINT32=13]="UINT32",n[n.SFIXED32=15]="SFIXED32",n[n.SFIXED64=16]="SFIXED64",n[n.SINT32=17]="SINT32",n[n.SINT64=18]="SINT64"})(P||(P={}));var yt;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(yt||(yt={}));function bt(n,e,t){if(e===t)return!0;if(n==P.BYTES){if(!(e instanceof Uint8Array)||!(t instanceof Uint8Array)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}switch(n){case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return e==t}return!1}function Ut(n,e){switch(n){case P.BOOL:return!1;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return e==0?ie.zero:"0";case P.DOUBLE:case P.FLOAT:return 0;case P.BYTES:return new Uint8Array(0);case P.STRING:return"";default:return 0}}function gs(n,e){switch(n){case P.BOOL:return e===!1;case P.STRING:return e==="";case P.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var he;(function(n){n[n.Varint=0]="Varint",n[n.Bit64=1]="Bit64",n[n.LengthDelimited=2]="LengthDelimited",n[n.StartGroup=3]="StartGroup",n[n.EndGroup=4]="EndGroup",n[n.Bit32=5]="Bit32"})(he||(he={}));class Fd{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),i=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(vi(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return En(e),ps(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){as(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){vi(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){En(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return En(e),e=(e<<1^e>>31)>>>0,ps(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ie.enc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ie.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=ie.enc(e);return bi(t.lo,t.hi,this.buf),this}sint64(e){let t=ie.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return bi(r,s,this.buf),this}uint64(e){let t=ie.uEnc(e);return bi(t.lo,t.hi,this.buf),this}}class jd{constructor(e,t){this.varint64=Ad,this.uint32=Nd,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,i=e&7;if(t<=0||i<0||i>5)throw new Error("illegal tag: field no "+t+" wire type "+i);return[t,i]}skip(e,t){let i=this.pos;switch(e){case he.Varint:for(;this.buf[this.pos++]&128;);break;case he.Bit64:this.pos+=4;case he.Bit32:this.pos+=4;break;case he.LengthDelimited:let r=this.uint32();this.pos+=r;break;case he.StartGroup:for(;;){const[s,o]=this.tag();if(o===he.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(o,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return ie.dec(...this.varint64())}uint64(){return ie.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,ie.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return ie.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return ie.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function Bd(n,e,t,i){let r;return{typeName:e,extendee:t,get field(){if(!r){const s=typeof i=="function"?i():i;s.name=e.split(".").pop(),s.jsonName="[".concat(e,"]"),r=n.util.newFieldList([s]).list()[0]}return r},runtime:n}}function vs(n){const e=n.field.localName,t=Object.create(null);return t[e]=Vd(n),[t,()=>t[e]]}function Vd(n){const e=n.field;if(e.repeated)return[];if(e.default!==void 0)return e.default;switch(e.kind){case"enum":return e.T.values[0].no;case"scalar":return Ut(e.T,e.L);case"message":const t=e.T,i=new t;return t.fieldWrapper?t.fieldWrapper.unwrapField(i):i;case"map":throw"map fields are not allowed to be extensions"}}function qd(n,e){if(!e.repeated&&(e.kind=="enum"||e.kind=="scalar")){for(let t=n.length-1;t>=0;--t)if(n[t].no==e.no)return[n[t]];return[]}return n.filter(t=>t.no===e.no)}let ot="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),wn=[];for(let n=0;n<ot.length;n++)wn[ot[n].charCodeAt(0)]=n;wn[45]=ot.indexOf("+"),wn[95]=ot.indexOf("/");const ys={dec(n){let e=n.length*3/4;n[n.length-2]=="="?e-=2:n[n.length-1]=="="&&(e-=1);let t=new Uint8Array(e),i=0,r=0,s,o=0;for(let a=0;a<n.length;a++){if(s=wn[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
2
2
  `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:o=s,r=1;break;case 1:t[i++]=o<<2|(s&48)>>4,o=s,r=2;break;case 2:t[i++]=(o&15)<<4|(s&60)>>2,o=s,r=3;break;case 3:t[i++]=(o&3)<<6|s,r=0;break}}if(r==1)throw Error("invalid base64 string.");return t.subarray(0,i)},enc(n){let e="",t=0,i,r=0;for(let s=0;s<n.length;s++)switch(i=n[s],t){case 0:e+=ot[i>>2],r=(i&3)<<4,t=1;break;case 1:e+=ot[r|i>>4],r=(i&15)<<2,t=2;break;case 2:e+=ot[r|i>>6],e+=ot[i&63],t=0;break}return t&&(e+=ot[r],e+="=",t==1&&(e+="=")),e}};function Kd(n,e,t){ks(e,n);const i=e.runtime.bin.makeReadOptions(t),r=qd(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,o]=vs(e);for(const a of r)e.runtime.bin.readField(s,i.readerFactory(a.data),e.field,a.wireType,i);return o()}function zd(n,e,t,i){ks(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(bs(n,e)){const d=n.getType().runtime.bin.listUnknownFields(n).filter(u=>u.no!=e.field.no);n.getType().runtime.bin.discardUnknownFields(n);for(const u of d)n.getType().runtime.bin.onUnknownField(n,u.no,u.wireType,u.data)}const o=s.writerFactory();let a=e.field;!a.opt&&!a.repeated&&(a.kind=="enum"||a.kind=="scalar")&&(a=Object.assign(Object.assign({},e.field),{opt:!0})),e.runtime.bin.writeField(a,t,o,s);const c=r.readerFactory(o.finish());for(;c.pos<c.len;){const[d,u]=c.tag(),l=c.skip(u,d);n.getType().runtime.bin.onUnknownField(n,d,u,l)}}function bs(n,e){const t=n.getType();return e.extendee.typeName===t.typeName&&!!t.runtime.bin.listUnknownFields(n).find(i=>i.no==e.field.no)}function ks(n,e){oe(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function Ts(n,e){const t=n.localName;if(n.repeated)return e[t].length>0;if(n.oneof)return e[n.oneof.localName].case===t;switch(n.kind){case"enum":case"scalar":return n.opt||n.req?e[t]!==void 0:n.kind=="enum"?e[t]!==n.T.values[0].no:!gs(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function Ss(n,e){const t=n.localName,i=!n.opt&&!n.req;if(n.repeated)e[t]=[];else if(n.oneof)e[n.oneof.localName]={case:void 0};else switch(n.kind){case"map":e[t]={};break;case"enum":e[t]=i?n.T.values[0].no:void 0;break;case"scalar":e[t]=i?Ut(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function ct(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(yi.prototype).every(i=>i in n&&typeof n[i]=="function"))return!1;const t=n.getType();return t===null||typeof t!="function"||!("typeName"in t)||typeof t.typeName!="string"?!1:e===void 0?!0:t.typeName==e.typeName}function Cs(n,e){return ct(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}P.DOUBLE,P.FLOAT,P.INT64,P.UINT64,P.INT32,P.UINT32,P.BOOL,P.STRING,P.BYTES;const Es={ignoreUnknownFields:!1},Ps={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Wd(n){return n?Object.assign(Object.assign({},Es),n):Es}function Gd(n){return n?Object.assign(Object.assign({},Ps),n):Ps}const Rn=Symbol(),_n=Symbol();function Hd(){return{makeReadOptions:Wd,makeWriteOptions:Gd,readMessage(n,e,t,i){if(e==null||Array.isArray(e)||typeof e!="object")throw new Error("cannot decode message ".concat(n.typeName," from JSON: ").concat(Ze(e)));i=i??new n;const r=new Map,s=t.typeRegistry;for(const[o,a]of Object.entries(e)){const c=n.fields.findJsonName(o);if(c){if(c.oneof){if(a===null&&c.kind=="scalar")continue;const d=r.get(c.oneof);if(d!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(c.oneof.name,'" present: "').concat(d,'", "').concat(o,'"'));r.set(c.oneof,o)}ws(i,a,c,t,n)}else{let d=!1;if(s!=null&&s.findExtension&&o.startsWith("[")&&o.endsWith("]")){const u=s.findExtension(o.substring(1,o.length-1));if(u&&u.extendee.typeName==n.typeName){d=!0;const[l,h]=vs(u);ws(l,a,u.field,t,u),zd(i,u,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(o,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!Ts(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!$d(r))continue}const o=r.oneof?n[r.oneof.localName].value:n[r.localName],a=Rs(r,o,e);a!==void 0&&(i[e.useProtoFieldName?r.name:r.jsonName]=a)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const o of t.runtime.bin.listUnknownFields(n)){const a=s.findExtensionFor(t.typeName,o.no);if(a&&bs(n,a)){const c=Kd(n,a,e),d=Rs(a.field,c,e);d!==void 0&&(i[a.field.jsonName]=d)}}}catch(s){const o=r?"cannot encode field ".concat(t.typeName,".").concat(r.name," to JSON"):"cannot encode message ".concat(t.typeName," to JSON"),a=s instanceof Error?s.message:String(s);throw new Error(o+(a.length>0?": ".concat(a):""))}return i},readScalar(n,e,t){return tn(n,e,t??yt.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||gs(n,e)))return In(n,e)},debug:Ze}}function Ze(n){if(n===null)return"null";switch(typeof n){case"object":return Array.isArray(n)?"array":"object";case"string":return n.length>100?"string":'"'.concat(n.split('"').join('\\"'),'"');default:return String(n)}}function ws(n,e,t,i,r){let s=t.localName;if(t.repeated){if(oe(t.kind!="map"),e===null)return;if(!Array.isArray(e))throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(e)));const o=n[s];for(const a of e){if(a===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(a)));switch(t.kind){case"message":o.push(t.T.fromJson(a,i));break;case"enum":const c=Ti(t.T,a,i.ignoreUnknownFields,!0);c!==_n&&o.push(c);break;case"scalar":try{o.push(tn(t.T,a,t.L,!0))}catch(d){let u="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(a));throw d instanceof Error&&d.message.length>0&&(u+=": ".concat(d.message)),new Error(u)}break}}}else if(t.kind=="map"){if(e===null)return;if(typeof e!="object"||Array.isArray(e))throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(e)));const o=n[s];for(const[a,c]of Object.entries(e)){if(c===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: map value null"));let d;try{d=Jd(t.K,a)}catch(u){let l="cannot decode map key for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(e));throw u instanceof Error&&u.message.length>0&&(l+=": ".concat(u.message)),new Error(l)}switch(t.V.kind){case"message":o[d]=t.V.T.fromJson(c,i);break;case"enum":const u=Ti(t.V.T,c,i.ignoreUnknownFields,!0);u!==_n&&(o[d]=u);break;case"scalar":try{o[d]=tn(t.V.T,c,yt.BIGINT,!0)}catch(l){let h="cannot decode map value for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(e));throw l instanceof Error&&l.message.length>0&&(h+=": ".concat(l.message)),new Error(h)}break}}}else switch(t.oneof&&(n=n[t.oneof.localName]={case:s},s="value"),t.kind){case"message":const o=t.T;if(e===null&&o.typeName!="google.protobuf.Value")return;let a=n[s];ct(a)?a.fromJson(e,i):(n[s]=a=o.fromJson(e,i),o.fieldWrapper&&!t.oneof&&(n[s]=o.fieldWrapper.unwrapField(a)));break;case"enum":const c=Ti(t.T,e,i.ignoreUnknownFields,!1);switch(c){case Rn:Ss(t,n);break;case _n:break;default:n[s]=c;break}break;case"scalar":try{const d=tn(t.T,e,t.L,!1);switch(d){case Rn:Ss(t,n);break;default:n[s]=d;break}}catch(d){let u="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Ze(e));throw d instanceof Error&&d.message.length>0&&(u+=": ".concat(d.message)),new Error(u)}break}}function Jd(n,e){if(n===P.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return tn(n,e,yt.BIGINT,!0).toString()}function tn(n,e,t,i){if(e===null)return i?Ut(n,t):Rn;switch(n){case P.DOUBLE:case P.FLOAT:if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""||typeof e=="string"&&e.trim().length!==e.length||typeof e!="string"&&typeof e!="number")break;const r=Number(e);if(Number.isNaN(r)||!Number.isFinite(r))break;return n==P.FLOAT&&as(r),r;case P.INT32:case P.FIXED32:case P.SFIXED32:case P.SINT32:case P.UINT32:let s;if(typeof e=="number"?s=e:typeof e=="string"&&e.length>0&&e.trim().length===e.length&&(s=Number(e)),s===void 0)break;return n==P.UINT32||n==P.FIXED32?vi(s):En(s),s;case P.INT64:case P.SFIXED64:case P.SINT64:if(typeof e!="number"&&typeof e!="string")break;const o=ie.parse(e);return t?o.toString():o;case P.FIXED64:case P.UINT64:if(typeof e!="number"&&typeof e!="string")break;const a=ie.uParse(e);return t?a.toString():a;case P.BOOL:if(typeof e!="boolean")break;return e;case P.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case P.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return ys.dec(e)}throw new Error}function Ti(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:Rn;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":const r=n.findName(e);if(r!==void 0)return r.no;if(t)return _n;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(Ze(e)))}function $d(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function Rs(n,e,t){if(n.kind=="map"){oe(typeof e=="object"&&e!=null);const i={},r=Object.entries(e);switch(n.V.kind){case"scalar":for(const[o,a]of r)i[o.toString()]=In(n.V.T,a);break;case"message":for(const[o,a]of r)i[o.toString()]=a.toJson(t);break;case"enum":const s=n.V.T;for(const[o,a]of r)i[o.toString()]=Si(s,a,t.enumAsInteger);break}return t.emitDefaultValues||r.length>0?i:void 0}if(n.repeated){oe(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let r=0;r<e.length;r++)i.push(In(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(Si(n.T,e[r],t.enumAsInteger));break;case"message":for(let r=0;r<e.length;r++)i.push(e[r].toJson(t));break}return t.emitDefaultValues||i.length>0?i:void 0}switch(n.kind){case"scalar":return In(n.T,e);case"enum":return Si(n.T,e,t.enumAsInteger);case"message":return Cs(n.T,e).toJson(t)}}function Si(n,e,t){var i;if(oe(typeof e=="number"),n.typeName=="google.protobuf.NullValue")return null;if(t)return e;const r=n.findNumber(e);return(i=r==null?void 0:r.name)!==null&&i!==void 0?i:e}function In(n,e){switch(n){case P.INT32:case P.SFIXED32:case P.SINT32:case P.FIXED32:case P.UINT32:return oe(typeof e=="number"),e;case P.FLOAT:case P.DOUBLE:return oe(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case P.STRING:return oe(typeof e=="string"),e;case P.BOOL:return oe(typeof e=="boolean"),e;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return oe(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case P.BYTES:return oe(e instanceof Uint8Array),ys.enc(e)}}const Ft=Symbol("@bufbuild/protobuf/unknown-fields"),_s={readUnknownFields:!0,readerFactory:n=>new jd(n)},Is={writeUnknownFields:!0,writerFactory:()=>new Fd};function Qd(n){return n?Object.assign(Object.assign({},_s),n):_s}function Yd(n){return n?Object.assign(Object.assign({},Is),n):Is}function Xd(){return{makeReadOptions:Qd,makeWriteOptions:Yd,listUnknownFields(n){var e;return(e=n[Ft])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[Ft]},writeUnknownFields(n,e){const i=n[Ft];if(i)for(const r of i)e.tag(r.no,r.wireType).raw(r.data)},onUnknownField(n,e,t,i){const r=n;Array.isArray(r[Ft])||(r[Ft]=[]),r[Ft].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),o=r?e.len:e.pos+t;let a,c;for(;e.pos<o&&([a,c]=e.tag(),!(r===!0&&c==he.EndGroup));){const d=s.fields.find(a);if(!d){const u=e.skip(c,a);i.readUnknownFields&&this.onUnknownField(n,a,c,u);continue}Ds(n,e,d,c,i)}if(r&&(c!=he.EndGroup||a!==t))throw new Error("invalid end group tag")},readField:Ds,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!Ts(r,n)){if(r.req)throw new Error("cannot encode field ".concat(i.typeName,".").concat(r.name," to binary: required field not set"));continue}const s=r.oneof?n[r.oneof.localName].value:n[r.localName];Ms(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&Ms(n,e,t,i)}}}function Ds(n,e,t,i,r){let{repeated:s,localName:o}=t;switch(t.oneof&&(n=n[t.oneof.localName],n.case!=o&&delete n.value,n.case=o,o="value"),t.kind){case"scalar":case"enum":const a=t.kind=="enum"?P.INT32:t.T;let c=Mn;if(t.kind=="scalar"&&t.L>0&&(c=eu),s){let h=n[o];if(i==he.LengthDelimited&&a!=P.STRING&&a!=P.BYTES){let g=e.uint32()+e.pos;for(;e.pos<g;)h.push(c(e,a))}else h.push(c(e,a))}else n[o]=c(e,a);break;case"message":const d=t.T;s?n[o].push(Dn(e,new d,r,t)):ct(n[o])?Dn(e,n[o],r,t):(n[o]=Dn(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[o]=d.fieldWrapper.unwrapField(n[o])));break;case"map":let[u,l]=Zd(t,e,r);n[o][u]=l;break}}function Dn(n,e,t,i){const r=e.getType().runtime.bin,s=i==null?void 0:i.delimited;return r.readMessage(e,n,s?i.no:n.uint32(),t,s),e}function Zd(n,e,t){const i=e.uint32(),r=e.pos+i;let s,o;for(;e.pos<r;){const[a]=e.tag();switch(a){case 1:s=Mn(e,n.K);break;case 2:switch(n.V.kind){case"scalar":o=Mn(e,n.V.T);break;case"enum":o=e.int32();break;case"message":o=Dn(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=Ut(n.K,yt.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),o===void 0)switch(n.V.kind){case"scalar":o=Ut(n.V.T,yt.BIGINT);break;case"enum":o=n.V.T.values[0].no;break;case"message":o=new n.V.T;break}return[s,o]}function eu(n,e){const t=Mn(n,e);return typeof t=="bigint"?t.toString():t}function Mn(n,e){switch(e){case P.STRING:return n.string();case P.BOOL:return n.bool();case P.DOUBLE:return n.double();case P.FLOAT:return n.float();case P.INT32:return n.int32();case P.INT64:return n.int64();case P.UINT64:return n.uint64();case P.FIXED64:return n.fixed64();case P.BYTES:return n.bytes();case P.FIXED32:return n.fixed32();case P.SFIXED32:return n.sfixed32();case P.SFIXED64:return n.sfixed64();case P.SINT64:return n.sint64();case P.UINT32:return n.uint32();case P.SINT32:return n.sint32()}}function Ms(n,e,t,i){oe(e!==void 0);const r=n.repeated;switch(n.kind){case"scalar":case"enum":let s=n.kind=="enum"?P.INT32:n.T;if(r)if(oe(Array.isArray(e)),n.packed)nu(t,s,n.no,e);else for(const o of e)nn(t,s,n.no,o);else nn(t,s,n.no,e);break;case"message":if(r){oe(Array.isArray(e));for(const o of e)Os(t,i,n,o)}else Os(t,i,n,e);break;case"map":oe(typeof e=="object"&&e!=null);for(const[o,a]of Object.entries(e))tu(t,i,n,o,a);break}}function tu(n,e,t,i,r){n.tag(t.no,he.LengthDelimited),n.fork();let s=i;switch(t.K){case P.INT32:case P.FIXED32:case P.UINT32:case P.SFIXED32:case P.SINT32:s=Number.parseInt(i);break;case P.BOOL:oe(i=="true"||i=="false"),s=i=="true";break}switch(nn(n,t.K,1,s),t.V.kind){case"scalar":nn(n,t.V.T,2,r);break;case"enum":nn(n,P.INT32,2,r);break;case"message":oe(r!==void 0),n.tag(2,he.LengthDelimited).bytes(r.toBinary(e));break}n.join()}function Os(n,e,t,i){const r=Cs(t.T,i);t.delimited?n.tag(t.no,he.StartGroup).raw(r.toBinary(e)).tag(t.no,he.EndGroup):n.tag(t.no,he.LengthDelimited).bytes(r.toBinary(e))}function nn(n,e,t,i){oe(i!==void 0);let[r,s]=As(e);n.tag(t,r)[s](i)}function nu(n,e,t,i){if(!i.length)return;n.tag(t,he.LengthDelimited).fork();let[,r]=As(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function As(n){let e=he.Varint;switch(n){case P.BYTES:case P.STRING:e=he.LengthDelimited;break;case P.DOUBLE:case P.FIXED64:case P.SFIXED64:e=he.Bit64;break;case P.FIXED32:case P.SFIXED32:case P.FLOAT:e=he.Bit32;break}const t=P[n].toLowerCase();return[e,t]}function iu(){return{setEnumType:cs,initPartial(n,e){if(n===void 0)return;const t=e.getType();for(const i of t.fields.byMember()){const r=i.localName,s=e,o=n;if(o[r]!=null)switch(i.kind){case"oneof":const a=o[r].case;if(a===void 0)continue;const c=i.findField(a);let d=o[r].value;c&&c.kind=="message"&&!ct(d,c.T)?d=new c.T(d):c&&c.kind==="scalar"&&c.T===P.BYTES&&(d=rn(d)),s[r]={case:a,value:d};break;case"scalar":case"enum":let u=o[r];i.T===P.BYTES&&(u=i.repeated?u.map(rn):rn(u)),s[r]=u;break;case"map":switch(i.V.kind){case"scalar":case"enum":if(i.V.T===P.BYTES)for(const[m,g]of Object.entries(o[r]))s[r][m]=rn(g);else Object.assign(s[r],o[r]);break;case"message":const h=i.V.T;for(const m of Object.keys(o[r])){let g=o[r][m];h.fieldWrapper||(g=new h(g)),s[r][m]=g}break}break;case"message":const l=i.T;if(i.repeated)s[r]=o[r].map(h=>ct(h,l)?h:new l(h));else{const h=o[r];l.fieldWrapper?l.typeName==="google.protobuf.BytesValue"?s[r]=rn(h):s[r]=h:s[r]=ct(h,l)?h:new l(h)}break}}},equals(n,e,t){return e===t?!0:!e||!t?!1:n.fields.byMember().every(i=>{const r=e[i.localName],s=t[i.localName];if(i.repeated){if(r.length!==s.length)return!1;switch(i.kind){case"message":return r.every((o,a)=>i.T.equals(o,s[a]));case"scalar":return r.every((o,a)=>bt(i.T,o,s[a]));case"enum":return r.every((o,a)=>bt(P.INT32,o,s[a]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":let o=r,a=s;return i.T.fieldWrapper&&(o!==void 0&&!ct(o)&&(o=i.T.fieldWrapper.wrapField(o)),a!==void 0&&!ct(a)&&(a=i.T.fieldWrapper.wrapField(a))),i.T.equals(o,a);case"enum":return bt(P.INT32,r,s);case"scalar":return bt(i.T,r,s);case"oneof":if(r.case!==s.case)return!1;const c=i.findField(r.case);if(c===void 0)return!0;switch(c.kind){case"message":return c.T.equals(r.value,s.value);case"enum":return bt(P.INT32,r.value,s.value);case"scalar":return bt(c.T,r.value,s.value)}throw new Error("oneof cannot contain ".concat(c.kind));case"map":const d=Object.keys(r).concat(Object.keys(s));switch(i.V.kind){case"message":const u=i.V.T;return d.every(h=>u.equals(r[h],s[h]));case"enum":return d.every(h=>bt(P.INT32,r[h],s[h]));case"scalar":const l=i.V.T;return d.every(h=>bt(l,r[h],s[h]))}break}})},clone(n){const e=n.getType(),t=new e,i=t;for(const r of e.fields.byMember()){const s=n[r.localName];let o;if(r.repeated)o=s.map(On);else if(r.kind=="map"){o=i[r.localName];for(const[a,c]of Object.entries(s))o[a]=On(c)}else r.kind=="oneof"?o=r.findField(s.case)?{case:s.case,value:On(s.value)}:{case:void 0}:o=On(s);i[r.localName]=o}for(const r of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,r.no,r.wireType,r.data);return t}}}function On(n){if(n===void 0)return n;if(ct(n))return n.clone();if(n instanceof Uint8Array){const e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function rn(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function ru(n,e,t){return{syntax:n,json:Hd(),bin:Xd(),util:Object.assign(Object.assign({},iu()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return Od(this,i,r,s)},makeEnum:Md,makeEnumType:ds,getEnumType:Dd,makeExtension(i,r,s){return Bd(this,i,r,s)}}}class su{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){const t={};for(const i of this.list())t[i.jsonName]=t[i.name]=i;this.jsonNames=t}return this.jsonNames[e]}find(e){if(!this.numbers){const t={};for(const i of this.list())t[i.no]=i;this.numbers=t}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];const e=this.members;let t;for(const i of this.list())i.oneof?i.oneof!==t&&(t=i.oneof,e.push(t)):e.push(i)}return this.members}}function xs(n,e){const t=Ls(n);return e?t:lu(uu(t))}function au(n){return xs(n,!1)}const ou=Ls;function Ls(n){let e=!1;const t=[];for(let i=0;i<n.length;i++){let r=n.charAt(i);switch(r){case"_":e=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":t.push(r),e=!1;break;default:e&&(e=!1,r=r.toUpperCase()),t.push(r);break}}return t.join("")}const cu=new Set(["constructor","toString","toJSON","valueOf"]),du=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),Ns=n=>"".concat(n,"$"),uu=n=>du.has(n)?Ns(n):n,lu=n=>cu.has(n)?Ns(n):n;class hu{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=au(e)}addField(e){oe(e.oneof===this,"field ".concat(e.name," not one of ").concat(this.name)),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let t=0;t<this.fields.length;t++)this._lookup[this.fields[t].localName]=this.fields[t]}return this._lookup[e]}}function fu(n,e){var t,i,r,s,o,a;const c=[];let d;for(const u of typeof n=="function"?n():n){const l=u;if(l.localName=xs(u.name,u.oneof!==void 0),l.jsonName=(t=u.jsonName)!==null&&t!==void 0?t:ou(u.name),l.repeated=(i=u.repeated)!==null&&i!==void 0?i:!1,u.kind=="scalar"&&(l.L=(r=u.L)!==null&&r!==void 0?r:yt.BIGINT),l.delimited=(s=u.delimited)!==null&&s!==void 0?s:!1,l.req=(o=u.req)!==null&&o!==void 0?o:!1,l.opt=(a=u.opt)!==null&&a!==void 0?a:!1,u.packed===void 0&&(l.packed=u.kind=="enum"||u.kind=="scalar"&&u.T!=P.BYTES&&u.T!=P.STRING),u.oneof!==void 0){const h=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!d||d.name!=h)&&(d=new hu(h)),l.oneof=d,d.addField(l)}c.push(l)}return c}const y=ru("proto3",n=>new su(n,e=>fu(e)),n=>{for(const e of n.getType().fields.byMember()){if(e.opt)continue;const t=e.localName,i=n;if(e.repeated){i[t]=[];continue}switch(e.kind){case"oneof":i[t]={case:void 0};break;case"enum":i[t]=0;break;case"map":i[t]={};break;case"scalar":i[t]=Ut(e.T,e.L);break}}});class Re extends yi{constructor(e){super(),this.seconds=ie.zero,this.nanos=0,y.util.initPartial(e,this)}fromJson(e,t){if(typeof e!="string")throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(y.json.debug(e)));const i=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!i)throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");const r=Date.parse(i[1]+"-"+i[2]+"-"+i[3]+"T"+i[4]+":"+i[5]+":"+i[6]+(i[8]?i[8]:"Z"));if(Number.isNaN(r))throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");if(r<Date.parse("0001-01-01T00:00:00Z")||r>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");return this.seconds=ie.parse(r/1e3),this.nanos=0,i[7]&&(this.nanos=parseInt("1"+i[7]+"0".repeat(9-i[7].length))-1e9),this}toJson(e){const t=Number(this.seconds)*1e3;if(t<Date.parse("0001-01-01T00:00:00Z")||t>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");if(this.nanos<0)throw new Error("cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative");let i="Z";if(this.nanos>0){const r=(this.nanos+1e9).toString().substring(1);r.substring(3)==="000000"?i="."+r.substring(0,3)+"Z":r.substring(6)==="000"?i="."+r.substring(0,6)+"Z":i="."+r+"Z"}return new Date(t).toISOString().replace(".000Z",i)}toDate(){return new Date(Number(this.seconds)*1e3+Math.ceil(this.nanos/1e6))}static now(){return Re.fromDate(new Date)}static fromDate(e){const t=e.getTime();return new Re({seconds:ie.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return new Re().fromBinary(e,t)}static fromJson(e,t){return new Re().fromJson(e,t)}static fromJsonString(e,t){return new Re().fromJsonString(e,t)}static equals(e,t){return y.util.equals(Re,e,t)}}Re.runtime=y,Re.typeName="google.protobuf.Timestamp",Re.fields=y.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const mu=y.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:Re},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:pu,repeated:!0},{no:5,name:"events",kind:"message",T:vu,repeated:!0}]),pu=y.makeMessageType("livekit.TimeSeriesMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"samples",kind:"message",T:gu,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),gu=y.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:Re},{no:3,name:"value",kind:"scalar",T:2}]),vu=y.makeMessageType("livekit.EventMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"start_timestamp_ms",kind:"scalar",T:3},{no:5,name:"end_timestamp_ms",kind:"scalar",T:3,opt:!0},{no:6,name:"normalized_start_timestamp",kind:"message",T:Re},{no:7,name:"normalized_end_timestamp",kind:"message",T:Re,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),Us=y.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),Ue=y.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),me=y.makeEnum("livekit.TrackSource",[{no:0,name:"UNKNOWN"},{no:1,name:"CAMERA"},{no:2,name:"MICROPHONE"},{no:3,name:"SCREEN_SHARE"},{no:4,name:"SCREEN_SHARE_AUDIO"}]),Ci=y.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),sn=y.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),an=y.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),Fe=y.makeEnum("livekit.DisconnectReason",[{no:0,name:"UNKNOWN_REASON"},{no:1,name:"CLIENT_INITIATED"},{no:2,name:"DUPLICATE_IDENTITY"},{no:3,name:"SERVER_SHUTDOWN"},{no:4,name:"PARTICIPANT_REMOVED"},{no:5,name:"ROOM_DELETED"},{no:6,name:"STATE_MISMATCH"},{no:7,name:"JOIN_FAILURE"},{no:8,name:"MIGRATION"},{no:9,name:"SIGNAL_CLOSE"},{no:10,name:"ROOM_CLOSED"},{no:11,name:"USER_UNAVAILABLE"},{no:12,name:"USER_REJECTED"},{no:13,name:"SIP_TRUNK_FAILURE"},{no:14,name:"CONNECTION_TIMEOUT"},{no:15,name:"MEDIA_FAILURE"}]),jt=y.makeEnum("livekit.ReconnectReason",[{no:0,name:"RR_UNKNOWN"},{no:1,name:"RR_SIGNAL_DISCONNECTED"},{no:2,name:"RR_PUBLISHER_FAILED"},{no:3,name:"RR_SUBSCRIBER_FAILED"},{no:4,name:"RR_SWITCH_CANDIDATE"}]),Fs=y.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),be=y.makeEnum("livekit.AudioTrackFeature",[{no:0,name:"TF_STEREO"},{no:1,name:"TF_NO_DTX"},{no:2,name:"TF_AUTO_GAIN_CONTROL"},{no:3,name:"TF_ECHO_CANCELLATION"},{no:4,name:"TF_NOISE_SUPPRESSION"},{no:5,name:"TF_ENHANCED_NOISE_CANCELLATION"},{no:6,name:"TF_PRECONNECT_BUFFER"}]),An=y.makeMessageType("livekit.Room",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"empty_timeout",kind:"scalar",T:13},{no:14,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:5,name:"creation_time",kind:"scalar",T:3},{no:15,name:"creation_time_ms",kind:"scalar",T:3},{no:6,name:"turn_password",kind:"scalar",T:9},{no:7,name:"enabled_codecs",kind:"message",T:xn,repeated:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"num_participants",kind:"scalar",T:13},{no:11,name:"num_publishers",kind:"scalar",T:13},{no:10,name:"active_recording",kind:"scalar",T:8},{no:13,name:"version",kind:"message",T:Xs}]),xn=y.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),yu=y.makeMessageType("livekit.ParticipantPermission",()=>[{no:1,name:"can_subscribe",kind:"scalar",T:8},{no:2,name:"can_publish",kind:"scalar",T:8},{no:3,name:"can_publish_data",kind:"scalar",T:8},{no:9,name:"can_publish_sources",kind:"enum",T:y.getEnumType(me),repeated:!0},{no:7,name:"hidden",kind:"scalar",T:8},{no:8,name:"recorder",kind:"scalar",T:8},{no:10,name:"can_update_metadata",kind:"scalar",T:8},{no:11,name:"agent",kind:"scalar",T:8},{no:12,name:"can_subscribe_metrics",kind:"scalar",T:8}]),wt=y.makeMessageType("livekit.ParticipantInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"identity",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:y.getEnumType(Bt)},{no:4,name:"tracks",kind:"message",T:qt,repeated:!0},{no:5,name:"metadata",kind:"scalar",T:9},{no:6,name:"joined_at",kind:"scalar",T:3},{no:17,name:"joined_at_ms",kind:"scalar",T:3},{no:9,name:"name",kind:"scalar",T:9},{no:10,name:"version",kind:"scalar",T:13},{no:11,name:"permission",kind:"message",T:yu},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:y.getEnumType(Vt)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:y.getEnumType(Fe)},{no:18,name:"kind_details",kind:"enum",T:y.getEnumType(bu),repeated:!0}]),Bt=y.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),Vt=y.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"}]),bu=y.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"}]),Ne=y.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),ku=y.makeMessageType("livekit.SimulcastCodecInfo",()=>[{no:1,name:"mime_type",kind:"scalar",T:9},{no:2,name:"mid",kind:"scalar",T:9},{no:3,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:Rt,repeated:!0}]),qt=y.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:y.getEnumType(Ue)},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"muted",kind:"scalar",T:8},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"simulcast",kind:"scalar",T:8},{no:8,name:"disable_dtx",kind:"scalar",T:8},{no:9,name:"source",kind:"enum",T:y.getEnumType(me)},{no:10,name:"layers",kind:"message",T:Rt,repeated:!0},{no:11,name:"mime_type",kind:"scalar",T:9},{no:12,name:"mid",kind:"scalar",T:9},{no:13,name:"codecs",kind:"message",T:ku,repeated:!0},{no:14,name:"stereo",kind:"scalar",T:8},{no:15,name:"disable_red",kind:"scalar",T:8},{no:16,name:"encryption",kind:"enum",T:y.getEnumType(Ne)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:Xs},{no:19,name:"audio_features",kind:"enum",T:y.getEnumType(be),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:y.getEnumType(Us)}]),Rt=y.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:y.getEnumType(Ci)},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13},{no:4,name:"bitrate",kind:"scalar",T:13},{no:5,name:"ssrc",kind:"scalar",T:13},{no:6,name:"spatial_layer",kind:"scalar",T:5},{no:7,name:"rid",kind:"scalar",T:9}]),_e=y.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:y.getEnumType(V)},{no:4,name:"participant_identity",kind:"scalar",T:9},{no:5,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:2,name:"user",kind:"message",T:Bs,oneof:"value"},{no:3,name:"speaker",kind:"message",T:Tu,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:Vs,oneof:"value"},{no:7,name:"transcription",kind:"message",T:Su,oneof:"value"},{no:8,name:"metrics",kind:"message",T:mu,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:Ei,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:qs,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:Ks,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:zs,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:wi,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:Ri,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:_i,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),V=y.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),Tu=y.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:js,repeated:!0}]),js=y.makeMessageType("livekit.SpeakerInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"level",kind:"scalar",T:2},{no:3,name:"active",kind:"scalar",T:8}]),Bs=y.makeMessageType("livekit.UserPacket",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:5,name:"participant_identity",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"destination_sids",kind:"scalar",T:9,repeated:!0},{no:6,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:4,name:"topic",kind:"scalar",T:9,opt:!0},{no:8,name:"id",kind:"scalar",T:9,opt:!0},{no:9,name:"start_time",kind:"scalar",T:4,opt:!0},{no:10,name:"end_time",kind:"scalar",T:4,opt:!0},{no:11,name:"nonce",kind:"scalar",T:12}]),Vs=y.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),Su=y.makeMessageType("livekit.Transcription",()=>[{no:2,name:"transcribed_participant_identity",kind:"scalar",T:9},{no:3,name:"track_id",kind:"scalar",T:9},{no:4,name:"segments",kind:"message",T:Cu,repeated:!0}]),Cu=y.makeMessageType("livekit.TranscriptionSegment",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"start_time",kind:"scalar",T:4},{no:4,name:"end_time",kind:"scalar",T:4},{no:5,name:"final",kind:"scalar",T:8},{no:6,name:"language",kind:"scalar",T:9}]),Ei=y.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),qs=y.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),Ks=y.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),zs=y.makeMessageType("livekit.RpcResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:9,oneof:"value"},{no:3,name:"error",kind:"message",T:Ws,oneof:"value"}]),Ws=y.makeMessageType("livekit.RpcError",()=>[{no:1,name:"code",kind:"scalar",T:13},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"data",kind:"scalar",T:9}]),Gs=y.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),Hs=y.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:y.getEnumType(Js)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"region",kind:"scalar",T:9},{no:5,name:"node_id",kind:"scalar",T:9},{no:6,name:"debug_info",kind:"scalar",T:9},{no:7,name:"agent_protocol",kind:"scalar",T:5}]),Js=y.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),Eu=y.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:y.getEnumType($s)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"os",kind:"scalar",T:9},{no:5,name:"os_version",kind:"scalar",T:9},{no:6,name:"device_model",kind:"scalar",T:9},{no:7,name:"browser",kind:"scalar",T:9},{no:8,name:"browser_version",kind:"scalar",T:9},{no:9,name:"address",kind:"scalar",T:9},{no:10,name:"network",kind:"scalar",T:9},{no:11,name:"other_sdks",kind:"scalar",T:9}]),$s=y.makeEnum("livekit.ClientInfo.SDK",[{no:0,name:"UNKNOWN"},{no:1,name:"JS"},{no:2,name:"SWIFT"},{no:3,name:"ANDROID"},{no:4,name:"FLUTTER"},{no:5,name:"GO"},{no:6,name:"UNITY"},{no:7,name:"REACT_NATIVE"},{no:8,name:"RUST"},{no:9,name:"PYTHON"},{no:10,name:"CPP"},{no:11,name:"UNITY_WEB"},{no:12,name:"NODE"},{no:13,name:"UNREAL"},{no:14,name:"ESP32"}]),Qs=y.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:Ys},{no:2,name:"screen",kind:"message",T:Ys},{no:3,name:"resume_connection",kind:"enum",T:y.getEnumType(an)},{no:4,name:"disabled_codecs",kind:"message",T:Pu},{no:5,name:"force_relay",kind:"enum",T:y.getEnumType(an)}]),Ys=y.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:y.getEnumType(an)}]),Pu=y.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:xn,repeated:!0},{no:2,name:"publish",kind:"message",T:xn,repeated:!0}]),Xs=y.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),Pi=y.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),Zs=y.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:y.getEnumType(Pi)},{no:2,name:"version",kind:"scalar",T:5},{no:3,name:"reply_to_stream_id",kind:"scalar",T:9},{no:4,name:"attached_stream_ids",kind:"scalar",T:9,repeated:!0},{no:5,name:"generated",kind:"scalar",T:8}],{localName:"DataStream_TextHeader"}),ea=y.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),wi=y.makeMessageType("livekit.DataStream.Header",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"topic",kind:"scalar",T:9},{no:4,name:"mime_type",kind:"scalar",T:9},{no:5,name:"total_length",kind:"scalar",T:4,opt:!0},{no:7,name:"encryption_type",kind:"enum",T:y.getEnumType(Ne)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:Zs,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:ea,oneof:"content_header"}],{localName:"DataStream_Header"}),Ri=y.makeMessageType("livekit.DataStream.Chunk",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"chunk_index",kind:"scalar",T:4},{no:3,name:"content",kind:"scalar",T:12},{no:4,name:"version",kind:"scalar",T:5},{no:5,name:"iv",kind:"scalar",T:12,opt:!0}],{localName:"DataStream_Chunk"}),_i=y.makeMessageType("livekit.DataStream.Trailer",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"reason",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}],{localName:"DataStream_Trailer"}),We=y.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Ii=y.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),wu=y.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),Ru=y.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:_t,oneof:"message"},{no:2,name:"answer",kind:"message",T:_t,oneof:"message"},{no:3,name:"trickle",kind:"message",T:Oi,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Mi,oneof:"message"},{no:5,name:"mute",kind:"message",T:Ai,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Ln,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:na,oneof:"message"},{no:8,name:"leave",kind:"message",T:Nn,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:ra,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:ca,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:da,oneof:"message"},{no:13,name:"simulate",kind:"message",T:et,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:sa,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:ha,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:ia,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:Ou,oneof:"message"}]),ta=y.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:_u,oneof:"message"},{no:2,name:"answer",kind:"message",T:_t,oneof:"message"},{no:3,name:"offer",kind:"message",T:_t,oneof:"message"},{no:4,name:"trickle",kind:"message",T:Oi,oneof:"message"},{no:5,name:"update",kind:"message",T:Mu,oneof:"message"},{no:6,name:"track_published",kind:"message",T:xi,oneof:"message"},{no:8,name:"leave",kind:"message",T:Nn,oneof:"message"},{no:9,name:"mute",kind:"message",T:Ai,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:Au,oneof:"message"},{no:11,name:"room_update",kind:"message",T:xu,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:Nu,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:Fu,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:Bu,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Vu,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:Du,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:Iu,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Ku,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:Gu,oneof:"message"},{no:22,name:"request_response",kind:"message",T:Hu,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Ju,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:qu,oneof:"message"}]),Di=y.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9}]),Mi=y.makeMessageType("livekit.AddTrackRequest",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"type",kind:"enum",T:y.getEnumType(Ue)},{no:4,name:"width",kind:"scalar",T:13},{no:5,name:"height",kind:"scalar",T:13},{no:6,name:"muted",kind:"scalar",T:8},{no:7,name:"disable_dtx",kind:"scalar",T:8},{no:8,name:"source",kind:"enum",T:y.getEnumType(me)},{no:9,name:"layers",kind:"message",T:Rt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:Di,repeated:!0},{no:11,name:"sid",kind:"scalar",T:9},{no:12,name:"stereo",kind:"scalar",T:8},{no:13,name:"disable_red",kind:"scalar",T:8},{no:14,name:"encryption",kind:"enum",T:y.getEnumType(Ne)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:y.getEnumType(Us)},{no:17,name:"audio_features",kind:"enum",T:y.getEnumType(be),repeated:!0}]),Oi=y.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:y.getEnumType(We)},{no:3,name:"final",kind:"scalar",T:8}]),Ai=y.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),_u=y.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:An},{no:2,name:"participant",kind:"message",T:wt},{no:3,name:"other_participants",kind:"message",T:wt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:aa,repeated:!0},{no:6,name:"subscriber_primary",kind:"scalar",T:8},{no:7,name:"alternative_url",kind:"scalar",T:9},{no:8,name:"client_configuration",kind:"message",T:Qs},{no:9,name:"server_region",kind:"scalar",T:9},{no:10,name:"ping_timeout",kind:"scalar",T:5},{no:11,name:"ping_interval",kind:"scalar",T:5},{no:12,name:"server_info",kind:"message",T:Hs},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:xn,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),Iu=y.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:aa,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Qs},{no:3,name:"server_info",kind:"message",T:Hs},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),xi=y.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:qt}]),Du=y.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),_t=y.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9},{no:3,name:"id",kind:"scalar",T:13}]),Mu=y.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:wt,repeated:!0}]),Ln=y.makeMessageType("livekit.UpdateSubscription",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"participant_tracks",kind:"message",T:Gs,repeated:!0}]),na=y.makeMessageType("livekit.UpdateTrackSettings",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:3,name:"disabled",kind:"scalar",T:8},{no:4,name:"quality",kind:"enum",T:y.getEnumType(Ci)},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"fps",kind:"scalar",T:13},{no:8,name:"priority",kind:"scalar",T:13}]),ia=y.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:y.getEnumType(be),repeated:!0}]),Ou=y.makeMessageType("livekit.UpdateLocalVideoTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13}]),Nn=y.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:y.getEnumType(Fe)},{no:3,name:"action",kind:"enum",T:y.getEnumType(Kt)},{no:4,name:"regions",kind:"message",T:zu}]),Kt=y.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),ra=y.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:Rt,repeated:!0}]),sa=y.makeMessageType("livekit.UpdateParticipantMetadata",()=>[{no:1,name:"metadata",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:4,name:"request_id",kind:"scalar",T:13}]),aa=y.makeMessageType("livekit.ICEServer",()=>[{no:1,name:"urls",kind:"scalar",T:9,repeated:!0},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"credential",kind:"scalar",T:9}]),Au=y.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:js,repeated:!0}]),xu=y.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:An}]),Lu=y.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:y.getEnumType(sn)},{no:3,name:"score",kind:"scalar",T:2}]),Nu=y.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:Lu,repeated:!0}]),Uu=y.makeMessageType("livekit.StreamStateInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:y.getEnumType(Ii)}]),Fu=y.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:Uu,repeated:!0}]),Li=y.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:y.getEnumType(Ci)},{no:2,name:"enabled",kind:"scalar",T:8}]),ju=y.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:Li,repeated:!0}]),Bu=y.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:Li,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:ju,repeated:!0}]),oa=y.makeMessageType("livekit.TrackPermission",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"all_tracks",kind:"scalar",T:8},{no:3,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:4,name:"participant_identity",kind:"scalar",T:9}]),ca=y.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:oa,repeated:!0}]),Vu=y.makeMessageType("livekit.SubscriptionPermissionUpdate",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"allowed",kind:"scalar",T:8}]),qu=y.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:An},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:wt},{no:4,name:"other_participants",kind:"message",T:wt,repeated:!0}]),da=y.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:_t},{no:2,name:"subscription",kind:"message",T:Ln},{no:3,name:"publish_tracks",kind:"message",T:xi,repeated:!0},{no:4,name:"data_channels",kind:"message",T:la,repeated:!0},{no:5,name:"offer",kind:"message",T:_t},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:ua,repeated:!0}]),ua=y.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),la=y.makeMessageType("livekit.DataChannelInfo",()=>[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"id",kind:"scalar",T:13},{no:3,name:"target",kind:"enum",T:y.getEnumType(We)}]),et=y.makeMessageType("livekit.SimulateScenario",()=>[{no:1,name:"speaker_update",kind:"scalar",T:5,oneof:"scenario"},{no:2,name:"node_failure",kind:"scalar",T:8,oneof:"scenario"},{no:3,name:"migration",kind:"scalar",T:8,oneof:"scenario"},{no:4,name:"server_leave",kind:"scalar",T:8,oneof:"scenario"},{no:5,name:"switch_candidate_protocol",kind:"enum",T:y.getEnumType(wu),oneof:"scenario"},{no:6,name:"subscriber_bandwidth",kind:"scalar",T:3,oneof:"scenario"},{no:7,name:"disconnect_signal_on_resume",kind:"scalar",T:8,oneof:"scenario"},{no:8,name:"disconnect_signal_on_resume_no_messages",kind:"scalar",T:8,oneof:"scenario"},{no:9,name:"leave_request_full_reconnect",kind:"scalar",T:8,oneof:"scenario"}]),ha=y.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Ku=y.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),zu=y.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:Wu,repeated:!0}]),Wu=y.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),Gu=y.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:y.getEnumType(Fs)}]),Hu=y.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:y.getEnumType(Ni)},{no:3,name:"message",kind:"scalar",T:9}]),Ni=y.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"}]),Ju=y.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]);function $u(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Un={exports:{}},Qu=Un.exports,fa;function Yu(){return fa||(fa=1,function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(Qu,function(){var e=function(){},t="undefined",i=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=["trace","debug","info","warn","error"],s={},o=null;function a(p,T){var k=p[T];if(typeof k.bind=="function")return k.bind(p);try{return Function.prototype.bind.call(k,p)}catch{return function(){return Function.prototype.apply.apply(k,[p,arguments])}}}function c(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function d(p){return p==="debug"&&(p="log"),typeof console===t?!1:p==="trace"&&i?c:console[p]!==void 0?a(console,p):console.log!==void 0?a(console,"log"):e}function u(){for(var p=this.getLevel(),T=0;T<r.length;T++){var k=r[T];this[k]=T<p?e:this.methodFactory(k,p,this.name)}if(this.log=this.debug,typeof console===t&&p<this.levels.SILENT)return"No console available for logging"}function l(p){return function(){typeof console!==t&&(u.call(this),this[p].apply(this,arguments))}}function h(p,T,k){return d(p)||l.apply(this,arguments)}function m(p,T){var k=this,_,w,v,b="loglevel";typeof p=="string"?b+=":"+p:typeof p=="symbol"&&(b=void 0);function E(x){var U=(r[x]||"silent").toUpperCase();if(!(typeof window===t||!b)){try{window.localStorage[b]=U;return}catch{}try{window.document.cookie=encodeURIComponent(b)+"="+U+";"}catch{}}}function L(){var x;if(!(typeof window===t||!b)){try{x=window.localStorage[b]}catch{}if(typeof x===t)try{var U=window.document.cookie,q=encodeURIComponent(b),re=U.indexOf(q+"=");re!==-1&&(x=/^([^;]+)/.exec(U.slice(re+q.length+1))[1])}catch{}return k.levels[x]===void 0&&(x=void 0),x}}function S(){if(!(typeof window===t||!b)){try{window.localStorage.removeItem(b)}catch{}try{window.document.cookie=encodeURIComponent(b)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function M(x){var U=x;if(typeof U=="string"&&k.levels[U.toUpperCase()]!==void 0&&(U=k.levels[U.toUpperCase()]),typeof U=="number"&&U>=0&&U<=k.levels.SILENT)return U;throw new TypeError("log.setLevel() called with invalid level: "+x)}k.name=p,k.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},k.methodFactory=T||h,k.getLevel=function(){return v??w??_},k.setLevel=function(x,U){return v=M(x),U!==!1&&E(v),u.call(k)},k.setDefaultLevel=function(x){w=M(x),L()||k.setLevel(x,!1)},k.resetLevel=function(){v=null,S(),u.call(k)},k.enableAll=function(x){k.setLevel(k.levels.TRACE,x)},k.disableAll=function(x){k.setLevel(k.levels.SILENT,x)},k.rebuild=function(){if(o!==k&&(_=M(o.getLevel())),u.call(k),o===k)for(var x in s)s[x].rebuild()},_=M(o?o.getLevel():"WARN");var R=L();R!=null&&(v=M(R)),u.call(k)}o=new m,o.getLogger=function(T){if(typeof T!="symbol"&&typeof T!="string"||T==="")throw new TypeError("You must supply a name when creating a logger.");var k=s[T];return k||(k=s[T]=new m(T,o.methodFactory)),k};var g=typeof window!==t?window.log:void 0;return o.noConflict=function(){return typeof window!==t&&window.log===o&&(window.log=g),o},o.getLoggers=function(){return s},o.default=o,o})}(Un)),Un.exports}var on=Yu(),zt;(function(n){n[n.trace=0]="trace",n[n.debug=1]="debug",n[n.info=2]="info",n[n.warn=3]="warn",n[n.error=4]="error",n[n.silent=5]="silent"})(zt||(zt={}));var je;(function(n){n.Default="livekit",n.Room="livekit-room",n.Participant="livekit-participant",n.Track="livekit-track",n.Publication="livekit-track-publication",n.Engine="livekit-engine",n.Signal="livekit-signal",n.PCManager="livekit-pc-manager",n.PCTransport="livekit-pc-transport",n.E2EE="lk-e2ee"})(je||(je={}));let K=on.getLogger("livekit");const ma=Object.values(je).map(n=>on.getLogger(n));K.setDefaultLevel(zt.info);function tt(n){const e=on.getLogger(n);return e.setDefaultLevel(K.getLevel()),e}function Xu(n,e){if(e)on.getLogger(e).setLevel(n);else for(const t of ma)t.setLevel(n)}function Zu(n,e){(e?[e]:ma).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,o,a)=>{const c=r(s,o,a),d=zt[s],u=d>=o&&d<zt.silent;return(l,h)=>{h?c(l,h):c(l),u&&n(d,l,h)}},i.setLevel(i.getLevel())})}const el=on.getLogger("lk-e2ee"),cn=7e3,tl=[0,300,2*2*300,3*3*300,4*4*300,cn,cn,cn,cn,cn];class pa{constructor(e){this._retryDelays=e!==void 0?[...e]:tl}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;const t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+Math.random()*1e3}}function nl(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(n,i[r])&&(t[i[r]]=n[i[r]]);return t}function f(n,e,t,i){function r(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function a(u){try{d(i.next(u))}catch(l){o(l)}}function c(u){try{d(i.throw(u))}catch(l){o(l)}}function d(u){u.done?s(u.value):r(u.value).then(a,c)}d((i=i.apply(n,e||[])).next())})}function ga(n){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&n[e],i=0;if(t)return t.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&i>=n.length&&(n=void 0),{value:n&&n[i++],done:!n}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function dt(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=n[Symbol.asyncIterator],t;return e?e.call(n):(n=typeof ga=="function"?ga(n):n[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(s){t[s]=n[s]&&function(o){return new Promise(function(a,c){o=n[s](o),r(a,c,o.done,o.value)})}}function r(s,o,a,c){Promise.resolve(c).then(function(d){s({value:d,done:a})},o)}}typeof SuppressedError=="function"&&SuppressedError;var Fn={exports:{}},va;function il(){if(va)return Fn.exports;va=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(b,E,L){return Function.prototype.apply.call(b,E,L)},t;n&&typeof n.ownKeys=="function"?t=n.ownKeys:Object.getOwnPropertySymbols?t=function(b){return Object.getOwnPropertyNames(b).concat(Object.getOwnPropertySymbols(b))}:t=function(b){return Object.getOwnPropertyNames(b)};function i(v){console&&console.warn&&console.warn(v)}var r=Number.isNaN||function(b){return b!==b};function s(){s.init.call(this)}Fn.exports=s,Fn.exports.once=k,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(v){if(typeof v!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof v)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(v){if(typeof v!="number"||v<0||r(v))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+v+".");o=v}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(b){if(typeof b!="number"||b<0||r(b))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+b+".");return this._maxListeners=b,this};function c(v){return v._maxListeners===void 0?s.defaultMaxListeners:v._maxListeners}s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(b){for(var E=[],L=1;L<arguments.length;L++)E.push(arguments[L]);var S=b==="error",M=this._events;if(M!==void 0)S=S&&M.error===void 0;else if(!S)return!1;if(S){var R;if(E.length>0&&(R=E[0]),R instanceof Error)throw R;var x=new Error("Unhandled error."+(R?" ("+R.message+")":""));throw x.context=R,x}var U=M[b];if(U===void 0)return!1;if(typeof U=="function")e(U,this,E);else for(var q=U.length,re=g(U,q),L=0;L<q;++L)e(re[L],this,E);return!0};function d(v,b,E,L){var S,M,R;if(a(E),M=v._events,M===void 0?(M=v._events=Object.create(null),v._eventsCount=0):(M.newListener!==void 0&&(v.emit("newListener",b,E.listener?E.listener:E),M=v._events),R=M[b]),R===void 0)R=M[b]=E,++v._eventsCount;else if(typeof R=="function"?R=M[b]=L?[E,R]:[R,E]:L?R.unshift(E):R.push(E),S=c(v),S>0&&R.length>S&&!R.warned){R.warned=!0;var x=new Error("Possible EventEmitter memory leak detected. "+R.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");x.name="MaxListenersExceededWarning",x.emitter=v,x.type=b,x.count=R.length,i(x)}return v}s.prototype.addListener=function(b,E){return d(this,b,E,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(b,E){return d(this,b,E,!0)};function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(v,b,E){var L={fired:!1,wrapFn:void 0,target:v,type:b,listener:E},S=u.bind(L);return S.listener=E,L.wrapFn=S,S}s.prototype.once=function(b,E){return a(E),this.on(b,l(this,b,E)),this},s.prototype.prependOnceListener=function(b,E){return a(E),this.prependListener(b,l(this,b,E)),this},s.prototype.removeListener=function(b,E){var L,S,M,R,x;if(a(E),S=this._events,S===void 0)return this;if(L=S[b],L===void 0)return this;if(L===E||L.listener===E)--this._eventsCount===0?this._events=Object.create(null):(delete S[b],S.removeListener&&this.emit("removeListener",b,L.listener||E));else if(typeof L!="function"){for(M=-1,R=L.length-1;R>=0;R--)if(L[R]===E||L[R].listener===E){x=L[R].listener,M=R;break}if(M<0)return this;M===0?L.shift():p(L,M),L.length===1&&(S[b]=L[0]),S.removeListener!==void 0&&this.emit("removeListener",b,x||E)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(b){var E,L,S;if(L=this._events,L===void 0)return this;if(L.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):L[b]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete L[b]),this;if(arguments.length===0){var M=Object.keys(L),R;for(S=0;S<M.length;++S)R=M[S],R!=="removeListener"&&this.removeAllListeners(R);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(E=L[b],typeof E=="function")this.removeListener(b,E);else if(E!==void 0)for(S=E.length-1;S>=0;S--)this.removeListener(b,E[S]);return this};function h(v,b,E){var L=v._events;if(L===void 0)return[];var S=L[b];return S===void 0?[]:typeof S=="function"?E?[S.listener||S]:[S]:E?T(S):g(S,S.length)}s.prototype.listeners=function(b){return h(this,b,!0)},s.prototype.rawListeners=function(b){return h(this,b,!1)},s.listenerCount=function(v,b){return typeof v.listenerCount=="function"?v.listenerCount(b):m.call(v,b)},s.prototype.listenerCount=m;function m(v){var b=this._events;if(b!==void 0){var E=b[v];if(typeof E=="function")return 1;if(E!==void 0)return E.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function g(v,b){for(var E=new Array(b),L=0;L<b;++L)E[L]=v[L];return E}function p(v,b){for(;b+1<v.length;b++)v[b]=v[b+1];v.pop()}function T(v){for(var b=new Array(v.length),E=0;E<b.length;++E)b[E]=v[E].listener||v[E];return b}function k(v,b){return new Promise(function(E,L){function S(R){v.removeListener(b,M),L(R)}function M(){typeof v.removeListener=="function"&&v.removeListener("error",S),E([].slice.call(arguments))}w(v,b,M,{once:!0}),b!=="error"&&_(v,S,{once:!0})})}function _(v,b,E){typeof v.on=="function"&&w(v,"error",b,E)}function w(v,b,E,L){if(typeof v.on=="function")L.once?v.once(b,E):v.on(b,E);else if(typeof v.addEventListener=="function")v.addEventListener(b,function S(M){L.once&&v.removeEventListener(b,S),E(M)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof v)}return Fn.exports}var nt=il();let ya=!0,ba=!0;function dn(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function It(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(o,a){if(o!==e)return r.apply(this,arguments);const c=d=>{const u=t(d);u&&(a.handleEvent?a.handleEvent(u):a(u))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(a,c),r.apply(this,[o,c])};const s=i.removeEventListener;i.removeEventListener=function(o,a){if(o!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(a))return s.apply(this,arguments);const c=this._eventMap[e].get(a);return this._eventMap[e].delete(a),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[o,c])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(o){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),o&&this.addEventListener(e,this["_on"+e]=o)},enumerable:!0,configurable:!0})}function rl(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(ya=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function sl(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(ba=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function ka(){if(typeof window=="object"){if(ya)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Ui(n,e){ba&&console.warn(n+" is deprecated, please use "+e+" instead.")}function al(n){const e={browser:null,version:null};if(typeof n>"u"||!n.navigator||!n.navigator.userAgent)return e.browser="Not a browser.",e;const{navigator:t}=n;if(t.userAgentData&&t.userAgentData.brands){const i=t.userAgentData.brands.find(r=>r.brand==="Chromium");if(i)return{browser:"chrome",version:parseInt(i.version,10)}}if(t.mozGetUserMedia)e.browser="firefox",e.version=parseInt(dn(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(dn(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(dn(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=dn(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function Ta(n){return Object.prototype.toString.call(n)==="[object Object]"}function Sa(n){return Ta(n)?Object.keys(n).reduce(function(e,t){const i=Ta(n[t]),r=i?Sa(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function Fi(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Fi(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{Fi(n,n.get(r),t)})}))}function Ca(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",r=new Map;if(e===null)return r;const s=[];return n.forEach(o=>{o.type==="track"&&o.trackIdentifier===e.id&&s.push(o)}),s.forEach(o=>{n.forEach(a=>{a.type===i&&a.trackId===o.id&&Fi(n,a,r)})}),r}const Ea=ka;function Pa(n,e){const t=n&&n.navigator;if(!t.mediaDevices)return;const i=function(a){if(typeof a!="object"||a.mandatory||a.optional)return a;const c={};return Object.keys(a).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const u=typeof a[d]=="object"?a[d]:{ideal:a[d]};u.exact!==void 0&&typeof u.exact=="number"&&(u.min=u.max=u.exact);const l=function(h,m){return h?h+m.charAt(0).toUpperCase()+m.slice(1):m==="deviceId"?"sourceId":m};if(u.ideal!==void 0){c.optional=c.optional||[];let h={};typeof u.ideal=="number"?(h[l("min",d)]=u.ideal,c.optional.push(h),h={},h[l("max",d)]=u.ideal,c.optional.push(h)):(h[l("",d)]=u.ideal,c.optional.push(h))}u.exact!==void 0&&typeof u.exact!="number"?(c.mandatory=c.mandatory||{},c.mandatory[l("",d)]=u.exact):["min","max"].forEach(h=>{u[h]!==void 0&&(c.mandatory=c.mandatory||{},c.mandatory[l(h,d)]=u[h])})}),a.advanced&&(c.optional=(c.optional||[]).concat(a.advanced)),c},r=function(a,c){if(e.version>=61)return c(a);if(a=JSON.parse(JSON.stringify(a)),a&&typeof a.audio=="object"){const d=function(u,l,h){l in u&&!(h in u)&&(u[h]=u[l],delete u[l])};a=JSON.parse(JSON.stringify(a)),d(a.audio,"autoGainControl","googAutoGainControl"),d(a.audio,"noiseSuppression","googNoiseSuppression"),a.audio=i(a.audio)}if(a&&typeof a.video=="object"){let d=a.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const u=e.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!u)){delete a.video.facingMode;let l;if(d.exact==="environment"||d.ideal==="environment"?l=["back","rear"]:(d.exact==="user"||d.ideal==="user")&&(l=["front"]),l)return t.mediaDevices.enumerateDevices().then(h=>{h=h.filter(g=>g.kind==="videoinput");let m=h.find(g=>l.some(p=>g.label.toLowerCase().includes(p)));return!m&&h.length&&l.includes("back")&&(m=h[h.length-1]),m&&(a.video.deviceId=d.exact?{exact:m.deviceId}:{ideal:m.deviceId}),a.video=i(a.video),Ea("chrome: "+JSON.stringify(a)),c(a)})}a.video=i(a.video)}return Ea("chrome: "+JSON.stringify(a)),c(a)},s=function(a){return e.version>=64?a:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[a.name]||a.name,message:a.message,constraint:a.constraint||a.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},o=function(a,c,d){r(a,u=>{t.webkitGetUserMedia(u,c,l=>{d&&d(s(l))})})};if(t.getUserMedia=o.bind(t),t.mediaDevices.getUserMedia){const a=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(c){return r(c,d=>a(d).then(u=>{if(d.audio&&!u.getAudioTracks().length||d.video&&!u.getVideoTracks().length)throw u.getTracks().forEach(l=>{l.stop()}),new DOMException("","NotFoundError");return u},u=>Promise.reject(s(u))))}}}function wa(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function Ra(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("ontrack"in n.RTCPeerConnection.prototype)){Object.defineProperty(n.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(t){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=t)},enumerable:!0,configurable:!0});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=i=>{i.stream.addEventListener("addtrack",r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===r.track.id):s={track:r.track};const o=new Event("track");o.track=r.track,o.receiver=s,o.transceiver={receiver:s},o.streams=[i.stream],this.dispatchEvent(o)}),i.stream.getTracks().forEach(r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(a=>a.track&&a.track.id===r.id):s={track:r};const o=new Event("track");o.track=r,o.receiver=s,o.transceiver={receiver:s},o.streams=[i.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else It(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function _a(n){if(typeof n=="object"&&n.RTCPeerConnection&&!("getSenders"in n.RTCPeerConnection.prototype)&&"createDTMFSender"in n.RTCPeerConnection.prototype){const e=function(r,s){return{track:s,get dtmf(){return this._dtmf===void 0&&(s.kind==="audio"?this._dtmf=r.createDTMFSender(s):this._dtmf=null),this._dtmf},_pc:r}};if(!n.RTCPeerConnection.prototype.getSenders){n.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(a,c){let d=r.apply(this,arguments);return d||(d=e(this,a),this._senders.push(d)),d};const s=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(a){s.apply(this,arguments);const c=this._senders.indexOf(a);c!==-1&&this._senders.splice(c,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(o=>{this._senders.push(e(this,o))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],i.apply(this,[s]),s.getTracks().forEach(o=>{const a=this._senders.find(c=>c.track===o);a&&this._senders.splice(this._senders.indexOf(a),1)})}}else if(typeof n=="object"&&n.RTCPeerConnection&&"getSenders"in n.RTCPeerConnection.prototype&&"createDTMFSender"in n.RTCPeerConnection.prototype&&n.RTCRtpSender&&!("dtmf"in n.RTCRtpSender.prototype)){const e=n.RTCPeerConnection.prototype.getSenders;n.RTCPeerConnection.prototype.getSenders=function(){const i=e.apply(this,[]);return i.forEach(r=>r._pc=this),i},Object.defineProperty(n.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function Ia(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender&&n.RTCRtpReceiver))return;if(!("getStats"in n.RTCRtpSender.prototype)){const t=n.RTCPeerConnection.prototype.getSenders;t&&(n.RTCPeerConnection.prototype.getSenders=function(){const s=t.apply(this,[]);return s.forEach(o=>o._pc=this),s});const i=n.RTCPeerConnection.prototype.addTrack;i&&(n.RTCPeerConnection.prototype.addTrack=function(){const s=i.apply(this,arguments);return s._pc=this,s}),n.RTCRtpSender.prototype.getStats=function(){const s=this;return this._pc.getStats().then(o=>Ca(o,s.track,!0))}}if(!("getStats"in n.RTCRtpReceiver.prototype)){const t=n.RTCPeerConnection.prototype.getReceivers;t&&(n.RTCPeerConnection.prototype.getReceivers=function(){const r=t.apply(this,[]);return r.forEach(s=>s._pc=this),r}),It(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>Ca(s,r.track,!1))}}if(!("getStats"in n.RTCRtpSender.prototype&&"getStats"in n.RTCRtpReceiver.prototype))return;const e=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof n.MediaStreamTrack){const i=arguments[0];let r,s,o;return this.getSenders().forEach(a=>{a.track===i&&(r?o=!0:r=a)}),this.getReceivers().forEach(a=>(a.track===i&&(s?o=!0:s=a),a.track===i)),o||r&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):r?r.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function Da(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(o=>this._shimmedLocalStreams[o][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(o,a){if(!a)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const c=e.apply(this,arguments);return this._shimmedLocalStreams[a.id]?this._shimmedLocalStreams[a.id].indexOf(c)===-1&&this._shimmedLocalStreams[a.id].push(c):this._shimmedLocalStreams[a.id]=[a,c],c};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(o){this._shimmedLocalStreams=this._shimmedLocalStreams||{},o.getTracks().forEach(d=>{if(this.getSenders().find(l=>l.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const a=this.getSenders();t.apply(this,arguments);const c=this.getSenders().filter(d=>a.indexOf(d)===-1);this._shimmedLocalStreams[o.id]=[o].concat(c)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[o.id],i.apply(this,arguments)};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(o){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},o&&Object.keys(this._shimmedLocalStreams).forEach(a=>{const c=this._shimmedLocalStreams[a].indexOf(o);c!==-1&&this._shimmedLocalStreams[a].splice(c,1),this._shimmedLocalStreams[a].length===1&&delete this._shimmedLocalStreams[a]}),r.apply(this,arguments)}}function Ma(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return Da(n);const t=n.RTCPeerConnection.prototype.getLocalStreams;n.RTCPeerConnection.prototype.getLocalStreams=function(){const u=t.apply(this);return this._reverseStreams=this._reverseStreams||{},u.map(l=>this._reverseStreams[l.id])};const i=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(u){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},u.getTracks().forEach(l=>{if(this.getSenders().find(m=>m.track===l))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[u.id]){const l=new n.MediaStream(u.getTracks());this._streams[u.id]=l,this._reverseStreams[l.id]=u,u=l}i.apply(this,[u])};const r=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(u){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[u.id]||u]),delete this._reverseStreams[this._streams[u.id]?this._streams[u.id].id:u.id],delete this._streams[u.id]},n.RTCPeerConnection.prototype.addTrack=function(u,l){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const h=[].slice.call(arguments,1);if(h.length!==1||!h[0].getTracks().find(p=>p===u))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(p=>p.track===u))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const g=this._streams[l.id];if(g)g.addTrack(u),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const p=new n.MediaStream([u]);this._streams[l.id]=p,this._reverseStreams[p.id]=l,this.addStream(p)}return this.getSenders().find(p=>p.track===u)};function s(d,u){let l=u.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const m=d._reverseStreams[h],g=d._streams[m.id];l=l.replace(new RegExp(g.id,"g"),m.id)}),new RTCSessionDescription({type:u.type,sdp:l})}function o(d,u){let l=u.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const m=d._reverseStreams[h],g=d._streams[m.id];l=l.replace(new RegExp(m.id,"g"),g.id)}),new RTCSessionDescription({type:u.type,sdp:l})}["createOffer","createAnswer"].forEach(function(d){const u=n.RTCPeerConnection.prototype[d],l={[d](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?u.apply(this,[g=>{const p=s(this,g);h[0].apply(null,[p])},g=>{h[1]&&h[1].apply(null,g)},arguments[2]]):u.apply(this,arguments).then(g=>s(this,g))}};n.RTCPeerConnection.prototype[d]=l[d]});const a=n.RTCPeerConnection.prototype.setLocalDescription;n.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?a.apply(this,arguments):(arguments[0]=o(this,arguments[0]),a.apply(this,arguments))};const c=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const d=c.get.apply(this);return d.type===""?d:s(this,d)}}),n.RTCPeerConnection.prototype.removeTrack=function(u){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!u._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(u._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(m=>{this._streams[m].getTracks().find(p=>u.track===p)&&(h=this._streams[m])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(u.track),this.dispatchEvent(new Event("negotiationneeded")))}}function ji(n,e){!n.RTCPeerConnection&&n.webkitRTCPeerConnection&&(n.RTCPeerConnection=n.webkitRTCPeerConnection),n.RTCPeerConnection&&e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const i=n.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new(t==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),i.apply(this,arguments)}};n.RTCPeerConnection.prototype[t]=r[t]})}function Oa(n,e){It(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var Aa=Object.freeze({__proto__:null,fixNegotiationNeeded:Oa,shimAddTrackRemoveTrack:Ma,shimAddTrackRemoveTrackWithNative:Da,shimGetSendersWithDtmf:_a,shimGetUserMedia:Pa,shimMediaStream:wa,shimOnTrack:Ra,shimPeerConnection:ji,shimSenderReceiverGetStats:Ia});function xa(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,o){Ui("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(r).then(s,o)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const r=function(o,a,c){a in o&&!(c in o)&&(o[c]=o[a],delete o[a])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(o){return typeof o=="object"&&typeof o.audio=="object"&&(o=JSON.parse(JSON.stringify(o)),r(o.audio,"autoGainControl","mozAutoGainControl"),r(o.audio,"noiseSuppression","mozNoiseSuppression")),s(o)},i&&i.prototype.getSettings){const o=i.prototype.getSettings;i.prototype.getSettings=function(){const a=o.apply(this,arguments);return r(a,"mozAutoGainControl","autoGainControl"),r(a,"mozNoiseSuppression","noiseSuppression"),a}}if(i&&i.prototype.applyConstraints){const o=i.prototype.applyConstraints;i.prototype.applyConstraints=function(a){return this.kind==="audio"&&typeof a=="object"&&(a=JSON.parse(JSON.stringify(a)),r(a,"autoGainControl","mozAutoGainControl"),r(a,"noiseSuppression","mozNoiseSuppression")),o.apply(this,[a])}}}}function ol(n,e){n.navigator.mediaDevices&&"getDisplayMedia"in n.navigator.mediaDevices||n.navigator.mediaDevices&&(n.navigator.mediaDevices.getDisplayMedia=function(i){if(!(i&&i.video)){const r=new DOMException("getDisplayMedia without video constraints is undefined");return r.name="NotFoundError",r.code=8,Promise.reject(r)}return i.video===!0?i.video={mediaSource:e}:i.video.mediaSource=e,n.navigator.mediaDevices.getUserMedia(i)})}function La(n){typeof n=="object"&&n.RTCTrackEvent&&"receiver"in n.RTCTrackEvent.prototype&&!("transceiver"in n.RTCTrackEvent.prototype)&&Object.defineProperty(n.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Bi(n,e){if(typeof n!="object"||!(n.RTCPeerConnection||n.mozRTCPeerConnection))return;!n.RTCPeerConnection&&n.mozRTCPeerConnection&&(n.RTCPeerConnection=n.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){const s=n.RTCPeerConnection.prototype[r],o={[r](){return arguments[0]=new(r==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};n.RTCPeerConnection.prototype[r]=o[r]});const t={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},i=n.RTCPeerConnection.prototype.getStats;n.RTCPeerConnection.prototype.getStats=function(){const[s,o,a]=arguments;return i.apply(this,[s||null]).then(c=>{if(e.version<53&&!o)try{c.forEach(d=>{d.type=t[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;c.forEach((u,l)=>{c.set(l,Object.assign({},u,{type:t[u.type]||u.type}))})}return c}).then(o,a)}}function Na(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpSender.prototype)return;const e=n.RTCPeerConnection.prototype.getSenders;e&&(n.RTCPeerConnection.prototype.getSenders=function(){const r=e.apply(this,[]);return r.forEach(s=>s._pc=this),r});const t=n.RTCPeerConnection.prototype.addTrack;t&&(n.RTCPeerConnection.prototype.addTrack=function(){const r=t.apply(this,arguments);return r._pc=this,r}),n.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function Ua(n){if(!(typeof n=="object"&&n.RTCPeerConnection&&n.RTCRtpSender)||n.RTCRtpSender&&"getStats"in n.RTCRtpReceiver.prototype)return;const e=n.RTCPeerConnection.prototype.getReceivers;e&&(n.RTCPeerConnection.prototype.getReceivers=function(){const i=e.apply(this,[]);return i.forEach(r=>r._pc=this),i}),It(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Fa(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){Ui("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function ja(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function Ba(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.addTransceiver;e&&(n.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let i=arguments[1]&&arguments[1].sendEncodings;i===void 0&&(i=[]),i=[...i];const r=i.length>0;r&&i.forEach(o=>{if("rid"in o&&!/^[a-z0-9]{0,16}$/i.test(o.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in o&&!(parseFloat(o.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in o&&!(parseFloat(o.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(r){const{sender:o}=s,a=o.getParameters();(!("encodings"in a)||a.encodings.length===1&&Object.keys(a.encodings[0]).length===0)&&(a.encodings=i,o.sendEncodings=i,this.setParametersPromises.push(o.setParameters(a).then(()=>{delete o.sendEncodings}).catch(()=>{delete o.sendEncodings})))}return s})}function Va(n){if(!(typeof n=="object"&&n.RTCRtpSender))return;const e=n.RTCRtpSender.prototype.getParameters;e&&(n.RTCRtpSender.prototype.getParameters=function(){const i=e.apply(this,arguments);return"encodings"in i||(i.encodings=[].concat(this.sendEncodings||[{}])),i})}function qa(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.createOffer;n.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}function Ka(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.createAnswer;n.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>e.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):e.apply(this,arguments)}}var za=Object.freeze({__proto__:null,shimAddTransceiver:Ba,shimCreateAnswer:Ka,shimCreateOffer:qa,shimGetDisplayMedia:ol,shimGetParameters:Va,shimGetUserMedia:xa,shimOnTrack:La,shimPeerConnection:Bi,shimRTCDataChannel:ja,shimReceiverGetStats:Ua,shimRemoveStream:Fa,shimSenderGetStats:Na});function Wa(n){if(!(typeof n!="object"||!n.RTCPeerConnection)){if("getLocalStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in n.RTCPeerConnection.prototype)){const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addStream=function(i){this._localStreams||(this._localStreams=[]),this._localStreams.includes(i)||this._localStreams.push(i),i.getAudioTracks().forEach(r=>e.call(this,r,i)),i.getVideoTracks().forEach(r=>e.call(this,r,i))},n.RTCPeerConnection.prototype.addTrack=function(i){for(var r=arguments.length,s=new Array(r>1?r-1:0),o=1;o<r;o++)s[o-1]=arguments[o];return s&&s.forEach(a=>{this._localStreams?this._localStreams.includes(a)||this._localStreams.push(a):this._localStreams=[a]}),e.apply(this,arguments)}}"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){this._localStreams||(this._localStreams=[]);const i=this._localStreams.indexOf(t);if(i===-1)return;this._localStreams.splice(i,1);const r=t.getTracks();this.getSenders().forEach(s=>{r.includes(s.track)&&this.removeTrack(s)})})}}function Ga(n){if(!(typeof n!="object"||!n.RTCPeerConnection)&&("getRemoteStreams"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in n.RTCPeerConnection.prototype))){Object.defineProperty(n.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(t){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=t),this.addEventListener("track",this._onaddstreampoly=i=>{i.streams.forEach(r=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(r))return;this._remoteStreams.push(r);const s=new Event("addstream");s.stream=r,this.dispatchEvent(s)})})}});const e=n.RTCPeerConnection.prototype.setRemoteDescription;n.RTCPeerConnection.prototype.setRemoteDescription=function(){const i=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(r){r.streams.forEach(s=>{if(i._remoteStreams||(i._remoteStreams=[]),i._remoteStreams.indexOf(s)>=0)return;i._remoteStreams.push(s);const o=new Event("addstream");o.stream=s,i.dispatchEvent(o)})}),e.apply(i,arguments)}}}function Ha(n){if(typeof n!="object"||!n.RTCPeerConnection)return;const e=n.RTCPeerConnection.prototype,t=e.createOffer,i=e.createAnswer,r=e.setLocalDescription,s=e.setRemoteDescription,o=e.addIceCandidate;e.createOffer=function(d,u){const l=arguments.length>=2?arguments[2]:arguments[0],h=t.apply(this,[l]);return u?(h.then(d,u),Promise.resolve()):h},e.createAnswer=function(d,u){const l=arguments.length>=2?arguments[2]:arguments[0],h=i.apply(this,[l]);return u?(h.then(d,u),Promise.resolve()):h};let a=function(c,d,u){const l=r.apply(this,[c]);return u?(l.then(d,u),Promise.resolve()):l};e.setLocalDescription=a,a=function(c,d,u){const l=s.apply(this,[c]);return u?(l.then(d,u),Promise.resolve()):l},e.setRemoteDescription=a,a=function(c,d,u){const l=o.apply(this,[c]);return u?(l.then(d,u),Promise.resolve()):l},e.addIceCandidate=a}function Ja(n){const e=n&&n.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,i=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=r=>i($a(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function $a(n){return n&&n.video!==void 0?Object.assign({},n,{video:Sa(n.video)}):n}function Qa(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,r){if(i&&i.iceServers){const s=[];for(let o=0;o<i.iceServers.length;o++){let a=i.iceServers[o];a.urls===void 0&&a.url?(Ui("RTCIceServer.url","RTCIceServer.urls"),a=JSON.parse(JSON.stringify(a)),a.urls=a.url,delete a.url,s.push(a)):s.push(i.iceServers[o])}i.iceServers=s}return new e(i,r)},n.RTCPeerConnection.prototype=e.prototype,"generateCertificate"in e&&Object.defineProperty(n.RTCPeerConnection,"generateCertificate",{get(){return e.generateCertificate}})}function Ya(n){typeof n=="object"&&n.RTCTrackEvent&&"receiver"in n.RTCTrackEvent.prototype&&!("transceiver"in n.RTCTrackEvent.prototype)&&Object.defineProperty(n.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Xa(n){const e=n.RTCPeerConnection.prototype.createOffer;n.RTCPeerConnection.prototype.createOffer=function(i){if(i){typeof i.offerToReceiveAudio<"u"&&(i.offerToReceiveAudio=!!i.offerToReceiveAudio);const r=this.getTransceivers().find(o=>o.receiver.track.kind==="audio");i.offerToReceiveAudio===!1&&r?r.direction==="sendrecv"?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":r.direction==="recvonly"&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):i.offerToReceiveAudio===!0&&!r&&this.addTransceiver("audio",{direction:"recvonly"}),typeof i.offerToReceiveVideo<"u"&&(i.offerToReceiveVideo=!!i.offerToReceiveVideo);const s=this.getTransceivers().find(o=>o.receiver.track.kind==="video");i.offerToReceiveVideo===!1&&s?s.direction==="sendrecv"?s.setDirection?s.setDirection("sendonly"):s.direction="sendonly":s.direction==="recvonly"&&(s.setDirection?s.setDirection("inactive"):s.direction="inactive"):i.offerToReceiveVideo===!0&&!s&&this.addTransceiver("video",{direction:"recvonly"})}return e.apply(this,arguments)}}function Za(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var eo=Object.freeze({__proto__:null,shimAudioContext:Za,shimCallbacksAPI:Ha,shimConstraints:$a,shimCreateOfferLegacy:Xa,shimGetUserMedia:Ja,shimLocalStreamsAPI:Wa,shimRTCIceServerUrls:Qa,shimRemoteStreamsAPI:Ga,shimTrackEventTransceiver:Ya}),Vi={exports:{}},to;function cl(){return to||(to=1,function(n){const e={};e.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)},e.localCName=e.generateIdentifier(),e.splitLines=function(t){return t.trim().split(`
3
3
  `).map(i=>i.trim())},e.splitSections=function(t){return t.split(`
4
4
  m=`).map((r,s)=>(s>0?"m="+r:r).trim()+`\r
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.24-staging.114",
4
+ "version": "1.1.24-staging.115",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {