@d-id/client-sdk 1.1.52-staging.236 → 1.1.52-staging.237

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
@@ -36,7 +36,7 @@ class mt extends ye {
36
36
  }
37
37
  }
38
38
  var ft = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(ft || {}), gt = /* @__PURE__ */ ((e) => (e.TRIAL = "deid-trial", e.PRO = "deid-pro", e.ENTERPRISE = "deid-enterprise", e.LITE = "deid-lite", e.ADVANCED = "deid-advanced", e.BUILD = "deid-api-build", e.LAUNCH = "deid-api-launch", e.SCALE = "deid-api-scale", e))(gt || {}), ht = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(ht || {}), pt = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(pt || {}), N = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e.Playground = "Playground", e.DirectPlayback = "DirectPlayback", e.Off = "Off", e))(N || {}), Q = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Transcribe = "transcribe", e.Complete = "done", e))(Q || {}), wt = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(wt || {}), yt = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(yt || {}), vt = /* @__PURE__ */ ((e) => (e.Pdf = "pdf", e.Text = "text", e.Html = "html", e.Word = "word", e.Json = "json", e.Markdown = "markdown", e.Csv = "csv", e.Excel = "excel", e.Powerpoint = "powerpoint", e.Archive = "archive", e.Image = "image", e.Audio = "audio", e.Video = "video", e))(vt || {}), He = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e.Expressive = "expressive", e))(He || {});
39
- const An = (e) => {
39
+ const _n = (e) => {
40
40
  switch (e) {
41
41
  case "clip":
42
42
  return "clip";
@@ -48,7 +48,7 @@ const An = (e) => {
48
48
  throw new Error(`Unknown video type: ${e}`);
49
49
  }
50
50
  };
51
- var R = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(R || {}), ne = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(ne || {}), K = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Loading = "LOADING", e.Talking = "TALKING", e.ToolActive = "tool_active", e))(K || {}), k = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.ChatAudioTranscribed = "chat/audio-transcribed", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e.StreamReady = "stream/ready", e.StreamCreated = "stream/created", e.StreamInterrupt = "stream/interrupt", e.StreamVideoCreated = "stream-video/started", e.StreamVideoDone = "stream-video/done", e.StreamVideoError = "stream-video/error", e.StreamVideoRejected = "stream-video/rejected", e.ToolCalling = "tool/calling", e.ToolResult = "tool/result", e))(k || {}), _ = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnecting = "disconnecting", e.Disconnected = "disconnected", e))(_ || {}), re = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(re || {}), ve = /* @__PURE__ */ ((e) => (e.Livekit = "livekit", e))(ve || {}), Ct = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.AzureOpenAi = "azure-openai", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Ct || {}), St = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(St || {});
51
+ var R = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(R || {}), ne = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(ne || {}), K = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Loading = "LOADING", e.Talking = "TALKING", e.ToolActive = "TOOL_ACTIVE", e))(K || {}), k = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.ChatAudioTranscribed = "chat/audio-transcribed", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e.StreamReady = "stream/ready", e.StreamCreated = "stream/created", e.StreamInterrupt = "stream/interrupt", e.StreamVideoCreated = "stream-video/started", e.StreamVideoDone = "stream-video/done", e.StreamVideoError = "stream-video/error", e.StreamVideoRejected = "stream-video/rejected", e.ToolCalling = "tool/calling", e.ToolResult = "tool/result", e))(k || {}), A = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnecting = "disconnecting", e.Disconnected = "disconnected", e))(A || {}), re = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(re || {}), ve = /* @__PURE__ */ ((e) => (e.Livekit = "livekit", e))(ve || {}), Ct = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.AzureOpenAi = "azure-openai", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Ct || {}), St = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(St || {});
52
52
  const Rt = 45 * 1e3, kt = "X-Playground-Chat", fe = "https://api.d-id.com", Tt = "wss://notifications.d-id.com", Et = "79f81a83a67430be2bc0fd61042b8faa", Dt = (...e) => {
53
53
  }, qe = (e) => new Promise((n) => setTimeout(n, e)), ue = (e = 16) => {
54
54
  const n = new Uint8Array(e);
@@ -62,8 +62,8 @@ const Rt = 45 * 1e3, kt = "X-Playground-Chat", fe = "https://api.d-id.com", Tt =
62
62
  case "talk":
63
63
  return "v2";
64
64
  }
65
- }, Mt = (e) => e.type === "talk" ? e.source_url : e.presenter_id, _e = (e) => e === He.Expressive, _t = (e) => [N.TextOnly, N.Playground, N.Maintenance].includes(e), Xe = (e) => e && [N.DirectPlayback, N.Off].includes(e);
66
- function At(e, n) {
65
+ }, Mt = (e) => e.type === "talk" ? e.source_url : e.presenter_id, Ae = (e) => e === He.Expressive, At = (e) => [N.TextOnly, N.Playground, N.Maintenance].includes(e), Xe = (e) => e && [N.DirectPlayback, N.Off].includes(e);
66
+ function _t(e, n) {
67
67
  let i;
68
68
  return {
69
69
  promise: new Promise((o, a) => {
@@ -87,7 +87,7 @@ async function Te(e, n) {
87
87
  try {
88
88
  if (!i.timeout)
89
89
  return await e();
90
- const { promise: a, clear: s } = At(i.timeout, i.timeoutErrorMessage), d = e().finally(s);
90
+ const { promise: a, clear: s } = _t(i.timeout, i.timeoutErrorMessage), d = e().finally(s);
91
91
  return await Promise.race([d, a]);
92
92
  } catch (a) {
93
93
  if (r = a, !i.shouldRetryFn(a) || o >= i.limit)
@@ -122,7 +122,7 @@ const Pt = (e) => Te(e, {
122
122
  timeout: 0,
123
123
  shouldRetryFn: (n) => n.status === 429
124
124
  });
125
- function Ae(e, n = fe, i, r) {
125
+ function _e(e, n = fe, i, r) {
126
126
  const o = async (a, s) => {
127
127
  const { skipErrorHandler: d, ...t } = s || {}, c = await Pt(
128
128
  () => fetch(n + (a != null && a.startsWith("/") ? a : `/${a}`), {
@@ -157,7 +157,7 @@ function Ae(e, n = fe, i, r) {
157
157
  };
158
158
  }
159
159
  function Lt(e, n = fe, i, r) {
160
- const o = Ae(e, `${n}/agents`, i, r);
160
+ const o = _e(e, `${n}/agents`, i, r);
161
161
  return {
162
162
  create(a, s) {
163
163
  return o.post("/", a, s);
@@ -350,7 +350,7 @@ function Nt(e) {
350
350
  return e && e.length > 0 ? e : [];
351
351
  }
352
352
  function Vt(e, n, i, r) {
353
- const o = Ae(e, `${n}/v2/agents/${i}`, r);
353
+ const o = _e(e, `${n}/v2/agents/${i}`, r);
354
354
  return {
355
355
  async createStream(a) {
356
356
  return o.post("/sessions", a);
@@ -381,7 +381,7 @@ function Ut(e, n, i) {
381
381
  lowFpsCount: i
382
382
  };
383
383
  }
384
- function Wt(e) {
384
+ function Ot(e) {
385
385
  return e.filter(
386
386
  (n) => n.freezeCount > 0 || n.framesPerSecond < 21 || n.framesDropped > 0 || n.packetsLost > 0
387
387
  ).map((n) => {
@@ -392,7 +392,7 @@ function Wt(e) {
392
392
  };
393
393
  });
394
394
  }
395
- function Ot(e) {
395
+ function Wt(e) {
396
396
  let n = "", i = 0;
397
397
  for (const r of e.values()) {
398
398
  if (r && r.type === "codec" && r.mimeType.startsWith("video") && (n = r.mimeType.split("/")[1]), r && r.type === "candidate-pair") {
@@ -474,7 +474,7 @@ function Ve(e, n, i) {
474
474
  framesPerSecond: t.framesPerSecond,
475
475
  freezeCount: t.freezeCount - e[c - 1].freezeCount,
476
476
  freezeDuration: t.freezeDuration - e[c - 1].freezeDuration
477
- }), o = Wt(r), a = o.reduce((t, c) => t + (c.causes.includes("low fps") ? 1 : 0), 0), s = r.filter((t) => !!t.avgJitterDelayInInterval).map((t) => t.avgJitterDelayInInterval), d = r.filter((t) => !!t.rtt).map((t) => t.rtt);
477
+ }), o = Ot(r), a = o.reduce((t, c) => t + (c.causes.includes("low fps") ? 1 : 0), 0), s = r.filter((t) => !!t.avgJitterDelayInInterval).map((t) => t.avgJitterDelayInInterval), d = r.filter((t) => !!t.rtt).map((t) => t.rtt);
478
478
  return {
479
479
  webRTCStats: {
480
480
  anomalies: o,
@@ -515,7 +515,7 @@ function tt(e, n, i, r, o) {
515
515
  const b = await e();
516
516
  if (!b)
517
517
  return;
518
- const { isReceiving: L, avgJitterDelayInInterval: P, freezeCount: M } = V(b), J = Ot(b);
518
+ const { isReceiving: L, avgJitterDelayInInterval: P, freezeCount: M } = V(b), J = Wt(b);
519
519
  if (L)
520
520
  t = 0, l = M - S, w = P < qt ? ne.Strong : P > Qt && l > 1 ? ne.Weak : h, w !== h && (o == null || o(w), h = w, S += l, l = 0), c || (r == null || r(R.Start), d = s[s.length - 1], s = [], c = !0), s.push(J);
521
521
  else if (c && (t++, t >= Ht)) {
@@ -556,7 +556,7 @@ const Gt = {
556
556
  var Pe = /* @__PURE__ */ ((e) => (e.Chat = "lk.chat", e.Speak = "did.speak", e.Interrupt = "did.interrupt", e))(Pe || {});
557
557
  function Ie(e, n, i) {
558
558
  var r, o;
559
- throw n("Failed to connect to LiveKit room:", e), (r = i.onConnectionStateChange) == null || r.call(i, _.Fail, "internal:init-error"), (o = i.onError) == null || o.call(i, e, { sessionId: "" }), e;
559
+ throw n("Failed to connect to LiveKit room:", e), (r = i.onConnectionStateChange) == null || r.call(i, A.Fail, "internal:init-error"), (o = i.onError) == null || o.call(i, e, { sessionId: "" }), e;
560
560
  }
561
561
  async function Zt(e, n, i) {
562
562
  var $e;
@@ -585,7 +585,7 @@ async function Zt(e, n, i) {
585
585
  }
586
586
  if (!C || !m || !H)
587
587
  return Promise.reject(new Error("Failed to initialize LiveKit stream"));
588
- l.on(a.ConnectionStateChanged, U).on(a.ConnectionQualityChanged, j).on(a.ParticipantConnected, E).on(a.ParticipantDisconnected, W).on(a.TrackSubscribed, B).on(a.TrackUnsubscribed, F).on(a.DataReceived, ce).on(a.MediaDevicesError, ge).on(a.TranscriptionReceived, T).on(a.EncryptionError, he).on(a.TrackSubscriptionFailed, pe);
588
+ l.on(a.ConnectionStateChanged, U).on(a.ConnectionQualityChanged, j).on(a.ParticipantConnected, E).on(a.ParticipantDisconnected, O).on(a.TrackSubscribed, B).on(a.TrackUnsubscribed, F).on(a.DataReceived, ce).on(a.MediaDevicesError, ge).on(a.TranscriptionReceived, T).on(a.EncryptionError, he).on(a.TrackSubscriptionFailed, pe);
589
589
  function T(u, f) {
590
590
  var p;
591
591
  f != null && f.isLocal && (ee.update(), z === K.Talking && ((p = t.onInterruptDetected) == null || p.call(t, { type: "audio" }), z = K.Idle));
@@ -610,19 +610,19 @@ async function Zt(e, n, i) {
610
610
  var f, p, v, I;
611
611
  switch (r("Connection state changed:", u), u) {
612
612
  case s.Connecting:
613
- r("CALLBACK: onConnectionStateChange(Connecting)"), (f = t.onConnectionStateChange) == null || f.call(t, _.Connecting, "livekit:connecting");
613
+ r("CALLBACK: onConnectionStateChange(Connecting)"), (f = t.onConnectionStateChange) == null || f.call(t, A.Connecting, "livekit:connecting");
614
614
  break;
615
615
  case s.Connected:
616
616
  r("LiveKit room connected successfully"), S = !0;
617
617
  break;
618
618
  case s.Disconnected:
619
- r("LiveKit room disconnected"), S = !1, J = !1, b.publication = null, L.publication = null, (p = t.onConnectionStateChange) == null || p.call(t, _.Disconnected, "livekit:disconnected");
619
+ r("LiveKit room disconnected"), S = !1, J = !1, b.publication = null, L.publication = null, (p = t.onConnectionStateChange) == null || p.call(t, A.Disconnected, "livekit:disconnected");
620
620
  break;
621
621
  case s.Reconnecting:
622
- r("LiveKit room reconnecting..."), (v = t.onConnectionStateChange) == null || v.call(t, _.Connecting, "livekit:reconnecting");
622
+ r("LiveKit room reconnecting..."), (v = t.onConnectionStateChange) == null || v.call(t, A.Connecting, "livekit:reconnecting");
623
623
  break;
624
624
  case s.SignalReconnecting:
625
- r("LiveKit room signal reconnecting..."), (I = t.onConnectionStateChange) == null || I.call(t, _.Connecting, "livekit:signal-reconnecting");
625
+ r("LiveKit room signal reconnecting..."), (I = t.onConnectionStateChange) == null || I.call(t, A.Connecting, "livekit:signal-reconnecting");
626
626
  break;
627
627
  }
628
628
  }
@@ -633,7 +633,7 @@ async function Zt(e, n, i) {
633
633
  function E(u) {
634
634
  r("Participant connected:", u.identity);
635
635
  }
636
- function W(u) {
636
+ function O(u) {
637
637
  r("Participant disconnected:", u.identity), ke("livekit:participant-disconnected");
638
638
  }
639
639
  function X() {
@@ -645,19 +645,19 @@ async function Zt(e, n, i) {
645
645
  M !== R.Stop && (r("CALLBACK: onVideoStateChange(Stop)"), M = R.Stop, (f = t.onVideoStateChange) == null || f.call(t, R.Stop, u));
646
646
  }
647
647
  function B(u, f, p) {
648
- var I, A, G;
648
+ var I, _, G;
649
649
  r(`Track subscribed: ${u.kind} from ${p.identity}`);
650
650
  const v = u.mediaStreamTrack;
651
651
  if (!v) {
652
652
  r(`No mediaStreamTrack available for ${u.kind}`);
653
653
  return;
654
654
  }
655
- $ ? ($.addTrack(v), r(`Added ${u.kind} track to shared MediaStream`)) : ($ = new MediaStream([v]), r(`Created shared MediaStream with ${u.kind} track`)), u.kind === "video" && ((I = t.onStreamReady) == null || I.call(t), r("CALLBACK: onSrcObjectReady"), (A = t.onSrcObjectReady) == null || A.call(t, $), J || (J = !0, r("CALLBACK: onConnectionStateChange(Connected)"), (G = t.onConnectionStateChange) == null || G.call(t, _.Connected, "livekit:track-subscribed")), P = tt(
655
+ $ ? ($.addTrack(v), r(`Added ${u.kind} track to shared MediaStream`)) : ($ = new MediaStream([v]), r(`Created shared MediaStream with ${u.kind} track`)), u.kind === "video" && ((I = t.onStreamReady) == null || I.call(t), r("CALLBACK: onSrcObjectReady"), (_ = t.onSrcObjectReady) == null || _.call(t, $), J || (J = !0, r("CALLBACK: onConnectionStateChange(Connected)"), (G = t.onConnectionStateChange) == null || G.call(t, A.Connected, "livekit:track-subscribed")), P = tt(
656
656
  () => u.getRTCStatsReport(),
657
657
  () => S,
658
658
  Dt,
659
- (O, ae) => {
660
- r(`Video state change: ${O}`), O === R.Start ? (x && (clearTimeout(x), x = null, r("Track subscription timeout cleared")), X()) : O === R.Stop && q(ae);
659
+ (W, ae) => {
660
+ r(`Video state change: ${W}`), W === R.Start ? (x && (clearTimeout(x), x = null, r("Track subscription timeout cleared")), X()) : W === R.Stop && q(ae);
661
661
  }
662
662
  ), P.start());
663
663
  }
@@ -678,17 +678,17 @@ async function Zt(e, n, i) {
678
678
  u === k.ToolResult && ((I = t.onToolEvent) == null || I.call(t, k.ToolResult, f));
679
679
  }
680
680
  function y(u, f) {
681
- var p, v, I, A;
681
+ var p, v, I, _;
682
682
  if (te = ((p = f.metadata) == null ? void 0 : p.interruptible) !== !1, (v = t.onInterruptibleChange) == null || v.call(t, te), u === k.StreamVideoCreated) {
683
683
  z = K.Talking, (I = t.onAgentActivityStateChange) == null || I.call(t, K.Talking);
684
684
  return;
685
685
  }
686
- te && (z = K.Idle, (A = t.onAgentActivityStateChange) == null || A.call(t, K.Idle));
686
+ te && (z = K.Idle, (_ = t.onAgentActivityStateChange) == null || _.call(t, K.Idle));
687
687
  }
688
688
  function g(u, f) {
689
- var A, G, O, ae;
690
- const p = ((G = (A = P == null ? void 0 : P.getReport()) == null ? void 0 : A.webRTCStats) == null ? void 0 : G.avgRtt) ?? 0, v = p > 0 ? Math.round(p / 2 * 1e3) : 0, I = { ...f, downstreamNetworkLatency: v };
691
- i.debug && ((O = f == null ? void 0 : f.metadata) != null && O.sentiment) && (I.sentiment = {
689
+ var _, G, W, ae;
690
+ const p = ((G = (_ = P == null ? void 0 : P.getReport()) == null ? void 0 : _.webRTCStats) == null ? void 0 : G.avgRtt) ?? 0, v = p > 0 ? Math.round(p / 2 * 1e3) : 0, I = { ...f, downstreamNetworkLatency: v };
691
+ i.debug && ((W = f == null ? void 0 : f.metadata) != null && W.sentiment) && (I.sentiment = {
692
692
  id: f.metadata.sentiment.id,
693
693
  name: f.metadata.sentiment.sentiment
694
694
  }), (ae = t.onMessage) == null || ae.call(t, u, I), y(u, f);
@@ -714,12 +714,12 @@ async function Zt(e, n, i) {
714
714
  function ce(u, f, p, v) {
715
715
  const I = new TextDecoder().decode(u);
716
716
  try {
717
- const A = JSON.parse(I), G = v || A.subject;
718
- if (r("Data received:", { subject: G, data: A }), !G) return;
719
- const O = Z[G];
720
- O == null || O(G, A);
721
- } catch (A) {
722
- r("Failed to parse data channel message:", A);
717
+ const _ = JSON.parse(I), G = v || _.subject;
718
+ if (r("Data received:", { subject: G, data: _ }), !G) return;
719
+ const W = Z[G];
720
+ W == null || W(G, _);
721
+ } catch (_) {
722
+ r("Failed to parse data channel message:", _);
723
723
  }
724
724
  }
725
725
  function ge(u) {
@@ -736,13 +736,13 @@ async function Zt(e, n, i) {
736
736
  function nt(u, f, p) {
737
737
  for (const [v, I] of p)
738
738
  if (I.source === f && I.track) {
739
- const A = I.track.mediaStreamTrack;
740
- if (A === u || (A == null ? void 0 : A.id) === u.id)
739
+ const _ = I.track.mediaStreamTrack;
740
+ if (_ === u || (_ == null ? void 0 : _.id) === u.id)
741
741
  return I;
742
742
  }
743
743
  return null;
744
744
  }
745
- async function Le(u, f, p, v, I, A) {
745
+ async function Le(u, f, p, v, I, _) {
746
746
  var Be, xe, Fe;
747
747
  if (!S || !l)
748
748
  throw r(`Room is not connected, cannot publish ${v} stream`), new Error("Room is not connected");
@@ -753,21 +753,21 @@ async function Zt(e, n, i) {
753
753
  const G = p(f);
754
754
  if (G.length === 0)
755
755
  throw new Error(`No ${v} track found in the provided MediaStream`);
756
- const O = G[0], ae = nt(O, v, I());
756
+ const W = G[0], ae = nt(W, v, I());
757
757
  if (ae) {
758
758
  r(`${v} track is already published, skipping`, {
759
- trackId: O.id,
759
+ trackId: W.id,
760
760
  publishedTrackId: (xe = (Be = ae.track) == null ? void 0 : Be.mediaStreamTrack) == null ? void 0 : xe.id
761
761
  }), u.publication = ae;
762
762
  return;
763
763
  }
764
764
  if ((Fe = u.publication) != null && Fe.track) {
765
765
  const oe = u.publication.track.mediaStreamTrack;
766
- oe !== O && (oe == null ? void 0 : oe.id) !== O.id && (r(`Unpublishing existing ${v} track before publishing new one`), await A());
766
+ oe !== W && (oe == null ? void 0 : oe.id) !== W.id && (r(`Unpublishing existing ${v} track before publishing new one`), await _());
767
767
  }
768
- r(`Publishing ${v} track from provided MediaStream`, { trackId: O.id }), u.isPublishing = !0;
768
+ r(`Publishing ${v} track from provided MediaStream`, { trackId: W.id }), u.isPublishing = !0;
769
769
  try {
770
- u.publication = await l.localParticipant.publishTrack(O, { source: v }), r(`${v} track published successfully`, { trackSid: u.publication.trackSid });
770
+ u.publication = await l.localParticipant.publishTrack(W, { source: v }), r(`${v} track published successfully`, { trackSid: u.publication.trackSid });
771
771
  } catch (oe) {
772
772
  throw r(`Failed to publish ${v} track:`, oe), oe;
773
773
  } finally {
@@ -845,7 +845,7 @@ async function Zt(e, n, i) {
845
845
  }
846
846
  async function ke(u) {
847
847
  var f, p;
848
- x && (clearTimeout(x), x = null), l && ((f = t.onConnectionStateChange) == null || f.call(t, _.Disconnecting, u), await Promise.all([Ce(), Se()]), await l.disconnect()), at(), S = !1, J = !1, (p = t.onAgentActivityStateChange) == null || p.call(t, K.Idle), z = K.Idle;
848
+ x && (clearTimeout(x), x = null), l && ((f = t.onConnectionStateChange) == null || f.call(t, A.Disconnecting, u), await Promise.all([Ce(), Se()]), await l.disconnect()), at(), S = !1, J = !1, (p = t.onAgentActivityStateChange) == null || p.call(t, K.Idle), z = K.Idle;
849
849
  }
850
850
  return {
851
851
  speak(u) {
@@ -865,22 +865,22 @@ async function Zt(e, n, i) {
865
865
  }
866
866
  if (!l || !C || !m)
867
867
  throw r("Cannot reconnect: missing room, URL or token"), new Error("Cannot reconnect: session not available");
868
- r("Reconnecting to LiveKit room, state:", l.state), J = !1, (u = t.onConnectionStateChange) == null || u.call(t, _.Connecting, "user:reconnect");
868
+ r("Reconnecting to LiveKit room, state:", l.state), J = !1, (u = t.onConnectionStateChange) == null || u.call(t, A.Connecting, "user:reconnect");
869
869
  try {
870
870
  if (await l.connect(C, m), r("Room reconnected"), S = !0, l.remoteParticipants.size === 0) {
871
871
  if (r("Waiting for agent to join..."), !await new Promise((v) => {
872
872
  const I = setTimeout(() => {
873
- l == null || l.off(a.ParticipantConnected, A), v(!1);
874
- }, 5e3), A = () => {
875
- clearTimeout(I), l == null || l.off(a.ParticipantConnected, A), v(!0);
873
+ l == null || l.off(a.ParticipantConnected, _), v(!1);
874
+ }, 5e3), _ = () => {
875
+ clearTimeout(I), l == null || l.off(a.ParticipantConnected, _), v(!0);
876
876
  };
877
- l == null || l.on(a.ParticipantConnected, A);
877
+ l == null || l.on(a.ParticipantConnected, _);
878
878
  }))
879
879
  throw r("Agent did not join within timeout"), await l.disconnect(), new Error("Agent did not rejoin the room");
880
880
  r("Agent joined, reconnection successful");
881
881
  }
882
882
  } catch (p) {
883
- throw r("Failed to reconnect:", p), (f = t.onConnectionStateChange) == null || f.call(t, _.Fail, "user:reconnect-failed"), p;
883
+ throw r("Failed to reconnect:", p), (f = t.onConnectionStateChange) == null || f.call(t, A.Fail, "user:reconnect-failed"), p;
884
884
  }
885
885
  },
886
886
  sendDataChannelMessage: ot,
@@ -1057,7 +1057,7 @@ function ln(e, n, i, r, o) {
1057
1057
  };
1058
1058
  }
1059
1059
  function mn(e, n, i, r) {
1060
- const o = Ae(e, `${n}/agents/${i}`, r);
1060
+ const o = _e(e, `${n}/agents/${i}`, r);
1061
1061
  return {
1062
1062
  createStream(a, s) {
1063
1063
  return o.post("/streams", a, { signal: s });
@@ -1097,21 +1097,21 @@ const fn = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window
1097
1097
  function Ue(e) {
1098
1098
  switch (e) {
1099
1099
  case "connected":
1100
- return _.Connected;
1100
+ return A.Connected;
1101
1101
  case "checking":
1102
- return _.Connecting;
1102
+ return A.Connecting;
1103
1103
  case "failed":
1104
- return _.Fail;
1104
+ return A.Fail;
1105
1105
  case "new":
1106
- return _.New;
1106
+ return A.New;
1107
1107
  case "closed":
1108
- return _.Closed;
1108
+ return A.Closed;
1109
1109
  case "disconnected":
1110
- return _.Disconnected;
1110
+ return A.Disconnected;
1111
1111
  case "completed":
1112
- return _.Completed;
1112
+ return A.Completed;
1113
1113
  default:
1114
- return _.New;
1114
+ return A.New;
1115
1115
  }
1116
1116
  }
1117
1117
  const gn = (e) => (n) => {
@@ -1142,7 +1142,7 @@ function pn({
1142
1142
  }) {
1143
1143
  e === R.Start ? (a("CALLBACK: onVideoStateChange(Start)"), i == null || i(R.Start)) : e === R.Stop && (a("CALLBACK: onVideoStateChange(Stop)"), i == null || i(R.Stop, o)), n === R.Start ? r == null || r(K.Talking) : n === R.Stop && (r == null || r(K.Idle));
1144
1144
  }
1145
- function We({
1145
+ function Oe({
1146
1146
  statsSignal: e,
1147
1147
  dataChannelSignal: n,
1148
1148
  onVideoStateChange: i,
@@ -1188,12 +1188,12 @@ async function wn(e, n, { debug: i = !1, callbacks: r, auth: o, baseURL: a = fe,
1188
1188
  });
1189
1189
  const U = n.stream_warmup && !te, j = () => h, E = () => {
1190
1190
  var y;
1191
- h = !0, w && (t("CALLBACK: onConnectionStateChange(Connected)"), (y = r.onConnectionStateChange) == null || y.call(r, _.Connected));
1192
- }, W = tt(
1191
+ h = !0, w && (t("CALLBACK: onConnectionStateChange(Connected)"), (y = r.onConnectionStateChange) == null || y.call(r, A.Connected));
1192
+ }, O = tt(
1193
1193
  () => m.getStats(),
1194
1194
  j,
1195
1195
  E,
1196
- (y, g) => We({
1196
+ (y, g) => Oe({
1197
1197
  statsSignal: S = y,
1198
1198
  dataChannelSignal: T === re.Legacy ? l : void 0,
1199
1199
  onVideoStateChange: r.onVideoStateChange,
@@ -1207,7 +1207,7 @@ async function wn(e, n, { debug: i = !1, callbacks: r, auth: o, baseURL: a = fe,
1207
1207
  return (g = r.onConnectivityStateChange) == null ? void 0 : g.call(r, y);
1208
1208
  }
1209
1209
  );
1210
- W.start(), m.onicecandidate = (y) => {
1210
+ O.start(), m.onicecandidate = (y) => {
1211
1211
  var g;
1212
1212
  t("peerConnection.onicecandidate", y);
1213
1213
  try {
@@ -1236,7 +1236,7 @@ async function wn(e, n, { debug: i = !1, callbacks: r, auth: o, baseURL: a = fe,
1236
1236
  const D = g.metadata;
1237
1237
  X(D.videoId);
1238
1238
  }
1239
- y === k.StreamDone && X(null), l = y === k.StreamStarted ? R.Start : R.Stop, We({
1239
+ y === k.StreamDone && X(null), l = y === k.StreamStarted ? R.Start : R.Stop, Oe({
1240
1240
  statsSignal: T === re.Legacy ? S : void 0,
1241
1241
  dataChannelSignal: l,
1242
1242
  onVideoStateChange: r.onVideoStateChange,
@@ -1263,7 +1263,7 @@ async function wn(e, n, { debug: i = !1, callbacks: r, auth: o, baseURL: a = fe,
1263
1263
  var g;
1264
1264
  t("peerConnection.oniceconnectionstatechange => " + m.iceConnectionState);
1265
1265
  const y = Ue(m.iceConnectionState);
1266
- y !== _.Connected && ((g = r.onConnectionStateChange) == null || g.call(r, y));
1266
+ y !== A.Connected && ((g = r.onConnectionStateChange) == null || g.call(r, y));
1267
1267
  }, m.ontrack = (y) => {
1268
1268
  var g;
1269
1269
  t("peerConnection.ontrack", y), t("CALLBACK: onSrcObjectReady"), (g = r.onSrcObjectReady) == null || g.call(r, y.streams[0]);
@@ -1285,19 +1285,19 @@ async function wn(e, n, { debug: i = !1, callbacks: r, auth: o, baseURL: a = fe,
1285
1285
  if (M) {
1286
1286
  const g = Ue(m.iceConnectionState);
1287
1287
  if (m) {
1288
- if (g === _.New) {
1289
- W.stop();
1288
+ if (g === A.New) {
1289
+ O.stop();
1290
1290
  return;
1291
1291
  }
1292
1292
  m.close(), m.oniceconnectionstatechange = null, m.onnegotiationneeded = null, m.onicecandidate = null, m.ontrack = null;
1293
1293
  }
1294
1294
  try {
1295
- g === _.Connected && await b(M, z).catch((D) => {
1295
+ g === A.Connected && await b(M, z).catch((D) => {
1296
1296
  });
1297
1297
  } catch (D) {
1298
1298
  t("Error on close stream connection", D);
1299
1299
  }
1300
- (y = r.onAgentActivityStateChange) == null || y.call(r, K.Idle), W.stop();
1300
+ (y = r.onAgentActivityStateChange) == null || y.call(r, K.Idle), O.stop();
1301
1301
  }
1302
1302
  },
1303
1303
  /**
@@ -1373,7 +1373,7 @@ function Sn(e) {
1373
1373
  }, ...i && { end_user_data: i } };
1374
1374
  }
1375
1375
  function Rn(e, n) {
1376
- return _e(e.presenter.type) ? { version: Me.V2, ...Cn() } : { version: Me.V1, ...Sn(n) };
1376
+ return Ae(e.presenter.type) ? { version: Me.V2, ...Cn() } : { version: Me.V1, ...Sn(n) };
1377
1377
  }
1378
1378
  function kn(e, n, i) {
1379
1379
  i.track("agent-connection-state-change", { state: e, ...n && { reason: n } });
@@ -1427,7 +1427,7 @@ function In(e, n, i, r, o) {
1427
1427
  [k.StreamVideoDone]
1428
1428
  ));
1429
1429
  }
1430
- function Oe(e, n, i, r) {
1430
+ function We(e, n, i, r) {
1431
1431
  return ee.reset(), Ne.update(), new Promise(async (o, a) => {
1432
1432
  try {
1433
1433
  let s, d = !1;
@@ -1444,7 +1444,7 @@ function Oe(e, n, i, r) {
1444
1444
  ...n.callbacks,
1445
1445
  onConnectionStateChange: (c, h) => {
1446
1446
  var w, l;
1447
- (l = (w = n.callbacks).onConnectionStateChange) == null || l.call(w, c), kn(c, h, i), c === _.Connected && (s ? o(s) : d = !0);
1447
+ (l = (w = n.callbacks).onConnectionStateChange) == null || l.call(w, c), kn(c, h, i), c === A.Connected && (s ? o(s) : d = !0);
1448
1448
  },
1449
1449
  onVideoStateChange: (c, h) => {
1450
1450
  var w, l;
@@ -1481,8 +1481,8 @@ function Oe(e, n, i, r) {
1481
1481
  async function Mn(e, n, i, r, o) {
1482
1482
  var h, w, l, S;
1483
1483
  const a = async () => {
1484
- if (_e(e.presenter.type)) {
1485
- const V = await Oe(e, n, r), $ = `${vn}_${V.sessionId}`, b = (/* @__PURE__ */ new Date()).toISOString();
1484
+ if (Ae(e.presenter.type)) {
1485
+ const V = await We(e, n, r), $ = `${vn}_${V.sessionId}`, b = (/* @__PURE__ */ new Date()).toISOString();
1486
1486
  return { chatResult: {
1487
1487
  chatMode: N.Functional,
1488
1488
  chat: {
@@ -1508,7 +1508,7 @@ async function Mn(e, n, i, r, o) {
1508
1508
  n.mode,
1509
1509
  n.persistentChat,
1510
1510
  o
1511
- ), P = Oe(e, n, r, $).then((x) => (b = x, x)), [M, J] = await Promise.all([L, P]);
1511
+ ), P = We(e, n, r, $).then((x) => (b = x, x)), [M, J] = await Promise.all([L, P]);
1512
1512
  return { chatResult: M, streamingManager: J };
1513
1513
  } catch (L) {
1514
1514
  throw V.abort(), b && await b.disconnect().catch(() => {
@@ -1536,7 +1536,7 @@ async function bn(e, n) {
1536
1536
  });
1537
1537
  const w = Lt(n.auth, s, n.callbacks.onError, n.externalId), l = await w.getById(e);
1538
1538
  n.debug = n.debug || ((z = l == null ? void 0 : l.advanced_settings) == null ? void 0 : z.ui_debug_mode);
1539
- const S = _e(l.presenter.type);
1539
+ const S = Ae(l.presenter.type);
1540
1540
  c.enrich($t(l));
1541
1541
  const { onMessage: V, clearQueue: $ } = ln(
1542
1542
  c,
@@ -1565,8 +1565,8 @@ async function bn(e, n) {
1565
1565
  c.track("agent-sdk", { event: "loaded", ...jt(l) }, P);
1566
1566
  });
1567
1567
  async function M(m) {
1568
- var W, X, q, B, F, Y, ie;
1569
- (X = (W = n.callbacks).onConnectionStateChange) == null || X.call(W, _.Connecting), ee.reset(), m && !i && (delete t.chat, (B = (q = n.callbacks).onNewMessage) == null || B.call(q, [...t.messages], "answer"));
1568
+ var O, X, q, B, F, Y, ie;
1569
+ (X = (O = n.callbacks).onConnectionStateChange) == null || X.call(O, A.Connecting), ee.reset(), m && !i && (delete t.chat, (B = (q = n.callbacks).onNewMessage) == null || B.call(q, [...t.messages], "answer"));
1570
1570
  const C = d === N.DirectPlayback || S ? Promise.resolve(void 0) : sn(
1571
1571
  n.auth,
1572
1572
  a,
@@ -1598,7 +1598,7 @@ async function bn(e, n) {
1598
1598
  }
1599
1599
  ).catch((y) => {
1600
1600
  var g, D;
1601
- throw x(N.Maintenance), (D = (g = n.callbacks).onConnectionStateChange) == null || D.call(g, _.Fail), y;
1601
+ throw x(N.Maintenance), (D = (g = n.callbacks).onConnectionStateChange) == null || D.call(g, A.Fail), y;
1602
1602
  }), [U, { streamingManager: j, chat: E }] = await Promise.all([C, T]);
1603
1603
  E && E.id !== ((F = t.chat) == null ? void 0 : F.id) && ((ie = (Y = n.callbacks).onNewChat) == null || ie.call(Y, E.id)), t.streamingManager = j, t.socketManager = U, t.chat = E, i = !1, c.enrich({
1604
1604
  chatId: E == null ? void 0 : E.id,
@@ -1608,7 +1608,7 @@ async function bn(e, n) {
1608
1608
  }
1609
1609
  async function J() {
1610
1610
  var m, C, T, U;
1611
- (m = t.socketManager) == null || m.disconnect(), await ((C = t.streamingManager) == null ? void 0 : C.disconnect()), delete t.streamingManager, delete t.socketManager, (U = (T = n.callbacks).onConnectionStateChange) == null || U.call(T, _.Disconnected);
1611
+ (m = t.socketManager) == null || m.disconnect(), await ((C = t.streamingManager) == null ? void 0 : C.disconnect()), delete t.streamingManager, delete t.socketManager, (U = (T = n.callbacks).onConnectionStateChange) == null || U.call(T, A.Disconnected);
1612
1612
  }
1613
1613
  async function x(m) {
1614
1614
  var C, T;
@@ -1687,7 +1687,7 @@ async function bn(e, n) {
1687
1687
  return t.streamingManager.unpublishCameraStream();
1688
1688
  },
1689
1689
  async chat(m) {
1690
- var j, E, W, X, q;
1690
+ var j, E, O, X, q;
1691
1691
  const C = () => {
1692
1692
  if (Xe(d))
1693
1693
  throw new de(`${d} is enabled, chat is disabled`);
@@ -1769,7 +1769,7 @@ async function bn(e, n) {
1769
1769
  }), c.track("agent-message-send", {
1770
1770
  event: "success",
1771
1771
  messages: t.messages.length + 1
1772
- }), F.result && ((X = (W = n.callbacks).onNewMessage) == null || X.call(W, [...t.messages], "answer"), c.track("agent-message-received", {
1772
+ }), F.result && ((X = (O = n.callbacks).onNewMessage) == null || X.call(O, [...t.messages], "answer"), c.track("agent-message-received", {
1773
1773
  latency: ee.get(!0),
1774
1774
  messages: t.messages.length
1775
1775
  })), F;
@@ -1781,7 +1781,7 @@ async function bn(e, n) {
1781
1781
  }
1782
1782
  },
1783
1783
  rate(m, C, T) {
1784
- var E, W, X, q;
1784
+ var E, O, X, q;
1785
1785
  const U = t.messages.find((B) => B.id === m);
1786
1786
  if (t.chat) {
1787
1787
  if (!U)
@@ -1791,7 +1791,7 @@ async function bn(e, n) {
1791
1791
  return c.track("agent-rate", {
1792
1792
  event: T ? "update" : "create",
1793
1793
  thumb: C === 1 ? "up" : "down",
1794
- knowledge_id: ((W = l.knowledge) == null ? void 0 : W.id) ?? "",
1794
+ knowledge_id: ((O = l.knowledge) == null ? void 0 : O.id) ?? "",
1795
1795
  matches: j,
1796
1796
  score: C
1797
1797
  }), T ? w.updateRating(l.id, t.chat.id, T, {
@@ -1812,7 +1812,7 @@ async function bn(e, n) {
1812
1812
  return c.track("agent-rate-delete", { type: "text" }), w.deleteRating(l.id, t.chat.id, m);
1813
1813
  },
1814
1814
  async speak(m) {
1815
- var j, E, W;
1815
+ var j, E, O;
1816
1816
  function C() {
1817
1817
  if (typeof m == "string") {
1818
1818
  if (!l.presenter.voice)
@@ -1842,7 +1842,7 @@ async function bn(e, n) {
1842
1842
  role: "assistant",
1843
1843
  content: T.input,
1844
1844
  created_at: (/* @__PURE__ */ new Date()).toISOString()
1845
- }), (E = (j = n.callbacks).onNewMessage) == null || E.call(j, [...t.messages], "answer")), _t(t.chatMode))
1845
+ }), (E = (j = n.callbacks).onNewMessage) == null || E.call(j, [...t.messages], "answer")), At(t.chatMode))
1846
1846
  return {
1847
1847
  duration: 0,
1848
1848
  video_id: "",
@@ -1852,7 +1852,7 @@ async function bn(e, n) {
1852
1852
  throw new Error("Please connect to the agent first");
1853
1853
  return t.streamingManager.speak({
1854
1854
  script: T,
1855
- metadata: { chat_id: (W = t.chat) == null ? void 0 : W.id, agent_id: l.id }
1855
+ metadata: { chat_id: (O = t.chat) == null ? void 0 : O.id, agent_id: l.id }
1856
1856
  });
1857
1857
  },
1858
1858
  interrupt: L
@@ -1865,7 +1865,7 @@ export {
1865
1865
  N as ChatMode,
1866
1866
  lt as ChatModeDowngraded,
1867
1867
  Q as ChatProgress,
1868
- _ as ConnectionState,
1868
+ A as ConnectionState,
1869
1869
  ne as ConnectivityState,
1870
1870
  vt as DocumentType,
1871
1871
  yt as KnowledgeType,
@@ -1883,5 +1883,5 @@ export {
1883
1883
  St as VoiceAccess,
1884
1884
  mt as WsError,
1885
1885
  bn as createAgentManager,
1886
- An as mapVideoType
1886
+ _n as mapVideoType
1887
1887
  };
@@ -1,4 +1,4 @@
1
- (function($,De){typeof exports=="object"&&typeof module<"u"?De(exports):typeof define=="function"&&define.amd?define(["exports"],De):($=typeof globalThis<"u"?globalThis:$||self,De($.index={}))})(this,function($){"use strict";var Mg=Object.defineProperty;var Dg=($,De,jt)=>De in $?Mg($,De,{enumerable:!0,configurable:!0,writable:!0,value:jt}):$[De]=jt;var Yn=($,De,jt)=>Dg($,typeof De!="symbol"?De+"":De,jt);class De extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));Yn(this,"kind");Yn(this,"description");Yn(this,"error");this.kind=t,this.description=i,this.error=r}}class jt extends De{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Ls extends De{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class Vt extends De{constructor(t,i){super({kind:"ValidationError",description:t});Yn(this,"key");this.key=i}}class Ns extends De{constructor(e){super({kind:"WSError",description:e})}}var Us=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Us||{}),Fs=(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))(Fs||{}),Bs=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(Bs||{}),js=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(js||{}),Se=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(Se||{}),Ne=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(Ne||{}),Vs=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Vs||{}),qs=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(qs||{}),Ks=(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))(Ks||{}),Ji=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(Ji||{});const au=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var Q=(n=>(n.Start="START",n.Stop="STOP",n))(Q||{}),et=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(et||{}),Ce=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="tool_active",n))(Ce||{}),te=(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.ToolCalling="tool/calling",n.ToolResult="tool/result",n))(te||{}),ae=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnecting="disconnecting",n.Disconnected="disconnected",n))(ae||{}),tt=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(tt||{}),Sn=(n=>(n.Livekit="livekit",n))(Sn||{}),Ws=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(Ws||{}),Hs=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(Hs||{});const ou=45*1e3,cu="X-Playground-Chat",Cn="https://api.d-id.com",du="wss://notifications.d-id.com",uu="79f81a83a67430be2bc0fd61042b8faa",lu=(...n)=>{},Js=n=>new Promise(e=>setTimeout(e,n)),nn=(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)},Gs=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,hu=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},mu=n=>n.type==="talk"?n.source_url:n.presenter_id,Gi=n=>n===Ji.Expressive,fu=n=>[Se.TextOnly,Se.Playground,Se.Maintenance].includes(n),zs=n=>n&&[Se.DirectPlayback,Se.Off].includes(n);function pu(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function zi(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:c}=pu(t.timeout,t.timeoutErrorMessage),a=n().finally(c);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Js(t.delayMs),t.onRetry(s)}throw i}function $i(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=nn();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let gu=nn();function $s(n,e){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${$i(e)}_${gu}`;throw new Error(`Unknown auth type: ${n}`)}const vu=n=>zi(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function Qi(n,e=Cn,t,i){const r=async(s,c)=>{const{skipErrorHandler:a,...o}=c||{},d=await vu(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...o,headers:{...o.headers,Authorization:$s(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:o,headers:d.headers}),l}return d.json()};return{get(s,c){return r(s,{...c,method:"GET"})},post(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"POST"})},delete(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"DELETE"})},patch(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"PATCH"})}}}function yu(n,e=Cn,t,i){const r=Qi(n,`${e}/agents`,t,i);return{create(s,c){return r.post("/",s,c)},getAgents(s,c){return r.get(`/${s?`?tag=${s}`:""}`,c).then(a=>a??[])},getById(s,c){return r.get(`/${s}`,c)},delete(s,c){return r.delete(`/${s}`,void 0,c)},update(s,c,a){return r.patch(`/${s}`,c,a)},newChat(s,c,a){return r.post(`/${s}/chat`,c,a)},chat(s,c,a,o){return r.post(`/${s}/chat/${c}`,a,o)},createRating(s,c,a,o){return r.post(`/${s}/chat/${c}/ratings`,a,o)},updateRating(s,c,a,o,d){return r.patch(`/${s}/chat/${c}/ratings/${a}`,o,d)},deleteRating(s,c,a,o){return r.delete(`/${s}/chat/${c}/ratings/${a}`,o)},getSTTToken(s,c){return r.get(`/${s}/stt-token`,c)}}}function bu(n){var r,s,c,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const o=navigator.platform;return o.toLowerCase().includes("win")?"Windows":o.toLowerCase().includes("mac")?"Mac OS X":o.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Gs(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(c=n.presenter)==null?void 0:c.voice)==null?void 0:a.type}}}function ku(n){var t,i,r,s,c,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Gs(n.presenter),presenterType:hu(n.presenter),presenter:mu(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=(c=n.knowledge)==null?void 0:c.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 Tu=n=>n.reduce((e,t)=>e+t,0),Qs=n=>Tu(n)/n.length;function Su(n,e,t){var o,d,u;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:c}=((o=e==null?void 0:e.presenter)==null?void 0:o.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:c}},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 Ys(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}const Cu="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Eu(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:$i(n.externalId),agentId:n.agentId,additionalProperties:{id:$i(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:nn,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:c,...a}=r||{},o=s||Date.now(),d={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,token:this.token,time:o,$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(Cu,d).catch(u=>console.error("Analytics tracking error:",u)),Promise.resolve()},linkTrack(i,r,s,c){t[i]||(t[i]={events:{},resolvedDependencies:[]}),c.includes(s)||c.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),c.every(d=>a.resolvedDependencies.includes(d))){const d=c.reduce((u,l)=>a.events[l]?{...u,...a.events[l].props}:u,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(u=>!c.includes(u)),c.forEach(u=>{delete a.events[u]})}}}}function Yi(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const nt=Yi(),Xi=Yi(),Xs=Yi();function Zs(n){return n===Se.Playground?{headers:{[cu]:"true"}}:{}}async function ea(n,e,t,i,r=!1,s){try{return!s&&!zs(i)&&(s=await e.newChat(n.id,{persist:r},Zs(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(c){throw wu(c)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const wu=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function _u(n){return n&&n.length>0?n:[]}function Ru(n,e,t,i){const r=Qi(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const ta=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),Pu={[te.ChatAnswer]:Ne.Answer,[te.ChatPartial]:Ne.Partial};function Iu(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 Ou(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 Mu(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,c=i.nominated===!0;r>0&&(c||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 na(n,e,t){const i=n.map((o,d)=>d===0?t?{timestamp:o.timestamp,duration:0,rtt:o.rtt,bytesReceived:o.bytesReceived-t.bytesReceived,bitrate:(o.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-t.packetsReceived,packetsLost:o.packetsLost-t.packetsLost,framesDropped:o.framesDropped-t.framesDropped,framesDecoded:o.framesDecoded-t.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-t.jitterBufferDelay)/(o.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-t.freezeCount,freezeDuration:o.freezeDuration-t.freezeDuration}:{timestamp:o.timestamp,rtt:o.rtt,duration:0,bytesReceived:o.bytesReceived,bitrate:o.bytesReceived*8/(e/1e3),packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.freezeDuration}:{timestamp:o.timestamp,duration:e*d/1e3,rtt:o.rtt,bytesReceived:o.bytesReceived-n[d-1].bytesReceived,bitrate:(o.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-n[d-1].packetsReceived,packetsLost:o.packetsLost-n[d-1].packetsLost,framesDropped:o.framesDropped-n[d-1].framesDropped,framesDecoded:o.framesDecoded-n[d-1].framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-n[d-1].jitterBufferDelay)/(o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-n[d-1].freezeCount,freezeDuration:o.freezeDuration-n[d-1].freezeDuration}),r=Ou(i),s=r.reduce((o,d)=>o+(d.causes.includes("low fps")?1:0),0),c=i.filter(o=>!!o.avgJitterDelayInInterval).map(o=>o.avgJitterDelayInInterval),a=i.filter(o=>!!o.rtt).map(o=>o.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:Qs(a),maxRtt:Math.max(...a),aggregateReport:Iu(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...c),maxJitterDelayInInterval:Math.max(...c),avgJitterDelayInInterval:Qs(c)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}const Xn=100,Du=Math.max(Math.ceil(400/Xn),1),Au=.25,xu=.28;function Lu(){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 c=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const u=c-e,l=a-t;i=u/l}e=c,t=a;const o=s.framesDecoded,d=o-n>0;return n=o,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}return{isReceiving:!1,avgJitterDelayInInterval:i}}}function ia(n,e,t,i,r){let s=null,c=[],a,o=0,d=!1,u=et.Unknown,l=et.Unknown,h=0,f=0;const y=Lu();async function g(){const C=await n();if(!C)return;const{isReceiving:T,avgJitterDelayInInterval:_,freezeCount:M}=y(C),v=Mu(C);if(T)o=0,h=M-f,l=_<Au?et.Strong:_>xu&&h>1?et.Weak:u,l!==u&&(r==null||r(l),u=l,f+=h,h=0),d||(i==null||i(Q.Start),a=c[c.length-1],c=[],d=!0),c.push(v);else if(d&&(o++,o>=Du)){const b=na(c,Xn,a);i==null||i(Q.Stop,b),e()||t(),f=M,d=!1}}return{start:()=>{s||(s=setInterval(g,Xn))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>na(c,Xn,a)}}const ra=2e4;async function Nu(){try{return await Promise.resolve().then(()=>Eg)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Uu={excellent:et.Strong,good:et.Strong,poor:et.Weak,lost:et.Unknown,unknown:et.Unknown},En=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});var Zi=(n=>(n.Chat="lk.chat",n.Speak="did.speak",n.Interrupt="did.interrupt",n))(Zi||{});function er(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,ae.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function Fu(n,e,t){var nu;const i=ta(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:c,Track:a}=await Nu(),{callbacks:o,auth:d,baseURL:u,analytics:l}=t;let h=null,f=!1;const y=tt.Fluent;let g=null;const C={isPublishing:!1,publication:null},T={isPublishing:!1,publication:null};let _=null,M=null,v=!1;h=new r({adaptiveStream:!1,dynacast:!0});let b=null,S=Ce.Idle,L=!0;const F=Ru(d,u||Cn,n,o.onError);let x,k,R;try{const P=await F.createStream({transport_provider:Sn.Livekit,chat_persist:e.chat_persist??!0}),{id:U,session_token:q,session_url:K}=P;(nu=o.onStreamCreated)==null||nu.call(o,{session_id:U,stream_id:U,agent_id:n}),x=U,k=q,R=K,await h.prepareConnection(R,k)}catch(P){er(P,i,o)}if(!R||!k||!x)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,H).on(s.ConnectionQualityChanged,Y).on(s.ParticipantConnected,X).on(s.ParticipantDisconnected,ee).on(s.TrackSubscribed,le).on(s.TrackUnsubscribed,fe).on(s.DataReceived,Tn).on(s.MediaDevicesError,Ki).on(s.TranscriptionReceived,N).on(s.EncryptionError,Wi).on(s.TrackSubscriptionFailed,Hi);function N(P,U){var q;U!=null&&U.isLocal&&(nt.update(),S===Ce.Talking&&((q=o.onInterruptDetected)==null||q.call(o,{type:"audio"}),S=Ce.Idle))}try{await h.connect(R,k),i("LiveKit room joined successfully"),b=setTimeout(()=>{var P;i(`Track subscription timeout - no track subscribed within ${ra/1e3} seconds after connect`),b=null,l.track("connectivity-error",{error:"Track subscription timeout",sessionId:x}),(P=o.onError)==null||P.call(o,new Error("Track subscription timeout"),{sessionId:x}),xs("internal:track-subscription-timeout")},ra)}catch(P){er(P,i,o)}l.enrich({"stream-type":y});function H(P){var U,q,K,ce;switch(i("Connection state changed:",P),P){case c.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(U=o.onConnectionStateChange)==null||U.call(o,ae.Connecting,"livekit:connecting");break;case c.Connected:i("LiveKit room connected successfully"),f=!0;break;case c.Disconnected:i("LiveKit room disconnected"),f=!1,v=!1,C.publication=null,T.publication=null,(q=o.onConnectionStateChange)==null||q.call(o,ae.Disconnected,"livekit:disconnected");break;case c.Reconnecting:i("LiveKit room reconnecting..."),(K=o.onConnectionStateChange)==null||K.call(o,ae.Connecting,"livekit:reconnecting");break;case c.SignalReconnecting:i("LiveKit room signal reconnecting..."),(ce=o.onConnectionStateChange)==null||ce.call(o,ae.Connecting,"livekit:signal-reconnecting");break}}function Y(P,U){var q;i("Connection quality:",P),U!=null&&U.isLocal&&((q=o.onConnectivityStateChange)==null||q.call(o,Uu[P]))}function X(P){i("Participant connected:",P.identity)}function ee(P){i("Participant disconnected:",P.identity),xs("livekit:participant-disconnected")}function ye(){var P;M!==Q.Start&&(i("CALLBACK: onVideoStateChange(Start)"),M=Q.Start,(P=o.onVideoStateChange)==null||P.call(o,Q.Start))}function Re(P){var U;M!==Q.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),M=Q.Stop,(U=o.onVideoStateChange)==null||U.call(o,Q.Stop,P))}function le(P,U,q){var ce,de,Ge;i(`Track subscribed: ${P.kind} from ${q.identity}`);const K=P.mediaStreamTrack;if(!K){i(`No mediaStreamTrack available for ${P.kind}`);return}g?(g.addTrack(K),i(`Added ${P.kind} track to shared MediaStream`)):(g=new MediaStream([K]),i(`Created shared MediaStream with ${P.kind} track`)),P.kind==="video"&&((ce=o.onStreamReady)==null||ce.call(o),i("CALLBACK: onSrcObjectReady"),(de=o.onSrcObjectReady)==null||de.call(o,g),v||(v=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Ge=o.onConnectionStateChange)==null||Ge.call(o,ae.Connected,"livekit:track-subscribed")),_=ia(()=>P.getRTCStatsReport(),()=>f,lu,(Me,Bt)=>{i(`Video state change: ${Me}`),Me===Q.Start?(b&&(clearTimeout(b),b=null,i("Track subscription timeout cleared")),ye()):Me===Q.Stop&&Re(Bt)}),_.start())}function fe(P,U,q){i(`Track unsubscribed: ${P.kind} from ${q.identity}`),P.kind==="video"&&(Re(_==null?void 0:_.getReport()),_==null||_.stop(),_=null)}function Oe(P,U){var K;const q=Pu[P];q&&((K=o.onMessage)==null||K.call(o,q,{event:q,...U}))}function Je(P,U){var q,K,ce;if(P===te.ToolCalling){S=Ce.ToolActive,(q=o.onAgentActivityStateChange)==null||q.call(o,Ce.ToolActive),(K=o.onToolEvent)==null||K.call(o,te.ToolCalling,U);return}P===te.ToolResult&&((ce=o.onToolEvent)==null||ce.call(o,te.ToolResult,U))}function j(P,U){var q,K,ce,de;if(L=((q=U.metadata)==null?void 0:q.interruptible)!==!1,(K=o.onInterruptibleChange)==null||K.call(o,L),P===te.StreamVideoCreated){S=Ce.Talking,(ce=o.onAgentActivityStateChange)==null||ce.call(o,Ce.Talking);return}L&&(S=Ce.Idle,(de=o.onAgentActivityStateChange)==null||de.call(o,Ce.Idle))}function B(P,U){var de,Ge,Me,Bt;const q=((Ge=(de=_==null?void 0:_.getReport())==null?void 0:de.webRTCStats)==null?void 0:Ge.avgRtt)??0,K=q>0?Math.round(q/2*1e3):0,ce={...U,downstreamNetworkLatency:K};t.debug&&((Me=U==null?void 0:U.metadata)!=null&&Me.sentiment)&&(ce.sentiment={id:U.metadata.sentiment.id,name:U.metadata.sentiment.sentiment}),(Bt=o.onMessage)==null||Bt.call(o,P,ce),j(P,U)}function ie(P,U){var q;(q=o.onMessage)==null||q.call(o,Ne.Transcribe,{event:Ne.Transcribe,...U}),queueMicrotask(()=>{var K;(K=o.onAgentActivityStateChange)==null||K.call(o,Ce.Loading)})}const Le={[te.ChatAnswer]:Oe,[te.ChatPartial]:Oe,[te.ToolCalling]:Je,[te.ToolResult]:Je,[te.StreamVideoCreated]:B,[te.StreamVideoDone]:B,[te.StreamVideoError]:B,[te.StreamVideoRejected]:B,[te.ChatAudioTranscribed]:ie};function Tn(P,U,q,K){const ce=new TextDecoder().decode(P);try{const de=JSON.parse(ce),Ge=K||de.subject;if(i("Data received:",{subject:Ge,data:de}),!Ge)return;const Me=Le[Ge];Me==null||Me(Ge,de)}catch(de){i("Failed to parse data channel message:",de)}}function Ki(P){var U;i("Media devices error:",P),(U=o.onError)==null||U.call(o,new Error(En),{sessionId:x})}function Wi(P){var U;i("Encryption error:",P),(U=o.onError)==null||U.call(o,new Error(En),{sessionId:x})}function Hi(P,U,q){i("Track subscription failed:",{trackSid:P,participant:U,reason:q})}function wg(P,U,q){for(const[K,ce]of q)if(ce.source===U&&ce.track){const de=ce.track.mediaStreamTrack;if(de===P||(de==null?void 0:de.id)===P.id)return ce}return null}async function eu(P,U,q,K,ce,de){var iu,ru,su;if(!f||!h)throw i(`Room is not connected, cannot publish ${K} stream`),new Error("Room is not connected");if(P.isPublishing){i(`${K} publish already in progress, skipping`);return}const Ge=q(U);if(Ge.length===0)throw new Error(`No ${K} track found in the provided MediaStream`);const Me=Ge[0],Bt=wg(Me,K,ce());if(Bt){i(`${K} track is already published, skipping`,{trackId:Me.id,publishedTrackId:(ru=(iu=Bt.track)==null?void 0:iu.mediaStreamTrack)==null?void 0:ru.id}),P.publication=Bt;return}if((su=P.publication)!=null&&su.track){const tn=P.publication.track.mediaStreamTrack;tn!==Me&&(tn==null?void 0:tn.id)!==Me.id&&(i(`Unpublishing existing ${K} track before publishing new one`),await de())}i(`Publishing ${K} track from provided MediaStream`,{trackId:Me.id}),P.isPublishing=!0;try{P.publication=await h.localParticipant.publishTrack(Me,{source:K}),i(`${K} track published successfully`,{trackSid:P.publication.trackSid})}catch(tn){throw i(`Failed to publish ${K} track:`,tn),tn}finally{P.isPublishing=!1}}async function tu(P,U){if(!(!P.publication||!P.publication.track))try{h&&(await h.localParticipant.unpublishTrack(P.publication.track,!1),i(`${U} track unpublished`))}catch(q){i(`Error unpublishing ${U} track:`,q)}finally{P.publication=null}}async function _g(P){return eu(C,P,U=>U.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,Ms)}async function Ms(){return tu(C,"Microphone")}async function Rg(P){return eu(T,P,U=>U.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Ds)}async function Ds(){return tu(T,"Camera")}function Pg(){g&&(g.getTracks().forEach(P=>P.stop()),g=null)}async function As(P,U){var q,K;if(!f||!h){i("Room is not connected for sending messages"),(q=o.onError)==null||q.call(o,new Error(En),{sessionId:x});return}try{await h.localParticipant.sendText(P,{topic:U}),i("Message sent successfully:",P)}catch(ce){i("Failed to send message:",ce),(K=o.onError)==null||K.call(o,new Error(En),{sessionId:x})}}async function Ig(P){var U;try{const K=JSON.parse(P).topic;return As("",K)}catch(q){i("Failed to send data channel message:",q),(U=o.onError)==null||U.call(o,new Error(En),{sessionId:x})}}function Og(P){return As(P,"lk.chat")}async function xs(P){var U,q;b&&(clearTimeout(b),b=null),h&&((U=o.onConnectionStateChange)==null||U.call(o,ae.Disconnecting,P),await Promise.all([Ms(),Ds()]),await h.disconnect()),Pg(),f=!1,v=!1,(q=o.onAgentActivityStateChange)==null||q.call(o,Ce.Idle),S=Ce.Idle}return{speak(P){const U=typeof P=="string"?P:JSON.stringify(P);return As(U,"did.speak")},disconnect:()=>xs("user:disconnect"),async reconnect(){var P,U;if((h==null?void 0:h.state)===c.Connected){i("Room is already connected");return}if(!h||!R||!k)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),v=!1,(P=o.onConnectionStateChange)==null||P.call(o,ae.Connecting,"user:reconnect");try{if(await h.connect(R,k),i("Room reconnected"),f=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(K=>{const ce=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,de),K(!1)},5e3),de=()=>{clearTimeout(ce),h==null||h.off(s.ParticipantConnected,de),K(!0)};h==null||h.on(s.ParticipantConnected,de)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined, reconnection successful")}}catch(q){throw i("Failed to reconnect:",q),(U=o.onConnectionStateChange)==null||U.call(o,ae.Fail,"user:reconnect-failed"),q}},sendDataChannelMessage:Ig,sendTextMessage:Og,publishMicrophoneStream:_g,unpublishMicrophoneStream:Ms,publishCameraStream:Rg,unpublishCameraStream:Ds,sessionId:x,streamId:x,streamType:y,interruptAvailable:!0,isInterruptible:L,triggersAvailable:!1}}const Bu=Object.freeze(Object.defineProperty({__proto__:null,DataChannelTopic:Zi,createLiveKitStreamingManager:Fu,handleInitError:er},Symbol.toStringTag,{value:"Module"}));function ju(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!==tt.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function Vu(n,e){const t={type:te.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}async function qu(n){const e={topic:Zi.Interrupt};n.sendDataChannelMessage(JSON.stringify(e))}function Ku(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:c}=n,{onMessage:a=null,onOpen:o=null,onClose:d=null,onError:u=null}=i||{},l=new WebSocket(`${r}?authorization=${encodeURIComponent($s(s,c))}`);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=>{o==null||o(h),e(l)}})}async function Wu(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 Ku(n)}catch(r){if(i===e)throw r;await Js(i*500)}return t}async function Hu(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await Wu({auth:n,host:e,externalId:i,callbacks:{onError:c=>{var a;return(a=t.onError)==null?void 0:a.call(t,new Ns(c))},onMessage(c){const a=JSON.parse(c.data);r.forEach(o=>o(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:c=>r.push(c)}}function Ju(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function Gu(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 zu(n,e,t,i,r){if(n===Ne.Transcribe&&e.content){Gu(e,i,r);return}if(!(n===Ne.Partial||n===Ne.Answer))return;const s=i.messages[i.messages.length-1];let c;if(s!=null&&s.transcribed&&s.role==="user")n===Ne.Answer&&e.content,c={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",created_at:e.created_at||new Date().toISOString()},i.messages.push(c);else if((s==null?void 0:s.role)==="assistant")c=s;else return;const{content:a,sequence:o}=e;n===Ne.Partial?t[o]=a:t.answer=a;const d=Ju(t);(c.content!==d||n===Ne.Answer)&&(c.content=d,r==null||r([...i.messages],n))}function $u(n,e,t,i,r){let s={};const c=()=>s={};let a="answer";const o=(d,u)=>{var l,h;u==="user"&&c(),a=u,(h=(l=t.callbacks).onNewMessage)==null||h.call(l,d,u)};return{clearQueue:c,onMessage:(d,u)=>{var l,h;if("content"in u){const f=d===te.ChatAnswer?Ne.Answer:d===te.ChatAudioTranscribed?Ne.Transcribe:d;zu(f,u,s,e,o),f===Ne.Answer&&n.track("agent-message-received",{content:u.content,messages:e.messages.length,mode:e.chatMode})}else{const f=te,y=[f.StreamVideoDone,f.StreamVideoError,f.StreamVideoRejected],g=[f.StreamFailed,f.StreamVideoError,f.StreamVideoRejected],C=Su(u,i,{mode:e.chatMode});if(d=d,d===f.StreamVideoCreated&&(n.linkTrack("agent-video",C,f.StreamVideoCreated,["start"]),u.sentiment)){const T=e.messages[e.messages.length-1];if((T==null?void 0:T.role)==="assistant"){const _={...T,sentiment:u.sentiment};e.messages[e.messages.length-1]=_,o==null||o([...e.messages],a)}}if(y.includes(d)){const T=d.split("/")[1];g.includes(d)?n.track("agent-video",{...C,event:T}):n.linkTrack("agent-video",{...C,event:T},d,["done"])}g.includes(d)&&((h=(l=t.callbacks).onError)==null||h.call(l,new Error(`Stream failed with event ${d}`),{data:u})),u.event===f.StreamDone&&r()}}}}function Qu(n,e,t,i){const r=Qi(n,`${e}/agents/${t}`,i);return{createStream(s,c){return r.post("/streams",s,{signal:c})},startConnection(s,c,a,o){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:c},{signal:o})},addIceCandidate(s,c,a,o){return r.post(`/streams/${s}/ice`,{session_id:a,...c},{signal:o})},sendStreamRequest(s,c,a){return r.post(`/streams/${s}`,{session_id:c,...a})},close(s,c){return r.delete(`/streams/${s}`,{session_id:c})}}}const Yu=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function sa(n){switch(n){case"connected":return ae.Connected;case"checking":return ae.Connecting;case"failed":return ae.Fail;case"new":return ae.New;case"closed":return ae.Closed;case"disconnected":return ae.Disconnected;case"completed":return ae.Completed;default:return ae.New}}const Xu=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 Zu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===Q.Start&&e===Q.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&e===Q.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,i))}function el({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===Q.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,r)),e===Q.Start?i==null||i(Ce.Talking):e===Q.Stop&&(i==null||i(Ce.Idle))}function aa({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:c}){r===tt.Legacy?Zu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:c}):r===tt.Fluent&&el({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:c})}async function tl(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Cn,analytics:c},a){var Je;const o=ta(t,"WebRTCStreamingManager"),d=Xu(o);let u=!1,l=!1,h=Q.Stop,f=Q.Stop;const{startConnection:y,sendStreamRequest:g,close:C,createStream:T,addIceCandidate:_}=Qu(r,s,n,i.onError),{id:M,offer:v,ice_servers:b,session_id:S,fluent:L,interrupt_enabled:F,triggers_enabled:x}=await T(e,a);(Je=i.onStreamCreated)==null||Je.call(i,{stream_id:M,session_id:S,agent_id:n});const k=new Yu({iceServers:b}),R=k.createDataChannel("JanusDataChannel");if(!S)throw new Error("Could not create session_id");const N=L?tt.Fluent:tt.Legacy;c.enrich({"stream-type":N});const H=e.stream_warmup&&!L,Y=()=>u,X=()=>{var j;u=!0,l&&(o("CALLBACK: onConnectionStateChange(Connected)"),(j=i.onConnectionStateChange)==null||j.call(i,ae.Connected))},ee=ia(()=>k.getStats(),Y,X,(j,B)=>aa({statsSignal:f=j,dataChannelSignal:N===tt.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:N,log:o}),j=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,j)});ee.start(),k.onicecandidate=j=>{var B;o("peerConnection.onicecandidate",j);try{j.candidate&&j.candidate.sdpMid&&j.candidate.sdpMLineIndex!==null?_(M,{candidate:j.candidate.candidate,sdpMid:j.candidate.sdpMid,sdpMLineIndex:j.candidate.sdpMLineIndex},S,a):_(M,{candidate:null},S,a)}catch(ie){(B=i.onError)==null||B.call(i,ie,{streamId:M})}},R.onopen=()=>{l=!0,(!H||u)&&X()};const ye=j=>{var B;(B=i.onVideoIdChange)==null||B.call(i,j)};function Re(j,B){if(j===te.StreamStarted&&typeof B=="object"&&"metadata"in B){const ie=B.metadata;ye(ie.videoId)}j===te.StreamDone&&ye(null),h=j===te.StreamStarted?Q.Start:Q.Stop,aa({statsSignal:N===tt.Legacy?f:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:N,log:o})}function le(j,B){var Le;const ie=typeof B=="string"?B:B==null?void 0:B.metadata;ie&&c.enrich({streamMetadata:ie}),(Le=i.onStreamReady)==null||Le.call(i)}const fe={[te.StreamStarted]:Re,[te.StreamDone]:Re,[te.StreamReady]:le};R.onmessage=j=>{var Le;const{subject:B,data:ie}=d(j.data);(Le=fe[B])==null||Le.call(fe,B,ie)},k.oniceconnectionstatechange=()=>{var B;o("peerConnection.oniceconnectionstatechange => "+k.iceConnectionState);const j=sa(k.iceConnectionState);j!==ae.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,j))},k.ontrack=j=>{var B;o("peerConnection.ontrack",j),o("CALLBACK: onSrcObjectReady"),(B=i.onSrcObjectReady)==null||B.call(i,j.streams[0])},await k.setRemoteDescription(v),o("set remote description OK");const Oe=await k.createAnswer();return o("create answer OK"),await k.setLocalDescription(Oe),o("set local description OK"),await y(M,Oe,S,a),o("start connection OK"),{speak(j){return g(M,S,j)},async disconnect(){var j;if(M){const B=sa(k.iceConnectionState);if(k){if(B===ae.New){ee.stop();return}k.close(),k.oniceconnectionstatechange=null,k.onnegotiationneeded=null,k.onicecandidate=null,k.ontrack=null}try{B===ae.Connected&&await C(M,S).catch(ie=>{})}catch(ie){o("Error on close stream connection",ie)}(j=i.onAgentActivityStateChange)==null||j.call(i,Ce.Idle),ee.stop()}},sendDataChannelMessage(j){var B,ie;if(!u||R.readyState!=="open"){o("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:M});return}try{R.send(j)}catch(Le){o("Error sending data channel message",Le),(ie=i.onError)==null||ie.call(i,Le,{streamId:M})}},sessionId:S,streamId:M,streamType:N,interruptAvailable:F??!1,isInterruptible:!0,triggersAvailable:x??!1}}var tr=(n=>(n.V1="v1",n.V2="v2",n))(tr||{});async function nl(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...c}=e;return tl(r,c,t,i)}case"v2":{const{version:s,...c}=e;switch(c.transport_provider){case Sn.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>Bu);return a(r,c,t);default:throw new Error(`Unsupported transport provider: ${c.transport_provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const il="cht";function rl(){return{transport_provider:Sn.Livekit}}function sl(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 al(n,e){return Gi(n.presenter.type)?{version:tr.V2,...rl()}:{version:tr.V1,...sl(e)}}function ol(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function cl(n,e,t,i,r){r===tt.Fluent?dl(n,e,t,i,r):ll(n,e,t,i,r)}function dl(n,e,t,i,r){n===Q.Start?i.track("stream-session",{event:"start","stream-type":r}):n===Q.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 ul(n,e,t,i){nt.get()<=0||(n===Q.Start?t.linkTrack("agent-video",{event:"start",latency:nt.get(!0),"stream-type":i},"start",[te.StreamVideoCreated]):n===Q.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",[te.StreamVideoDone]))}function ll(n,e,t,i,r){nt.get()<=0||(n===Q.Start?i.linkTrack("agent-video",{event:"start",latency:nt.get(!0),"stream-type":r},"start",[te.StreamVideoCreated]):n===Q.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",[te.StreamVideoDone]))}function oa(n,e,t,i){return nt.reset(),Xs.update(),new Promise(async(r,s)=>{try{let c,a=!1;const o=al(n,e);t.enrich({"stream-version":o.version.toString()}),c=await nl(n,o,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(d,u)=>{var l,h;(h=(l=e.callbacks).onConnectionStateChange)==null||h.call(l,d),ol(d,u,t),d===ae.Connected&&(c?r(c):a=!0)},onVideoStateChange:(d,u)=>{var l,h;(h=(l=e.callbacks).onVideoStateChange)==null||h.call(l,d),cl(d,n,u,t,c.streamType)},onAgentActivityStateChange:d=>{var u,l;(l=(u=e.callbacks).onAgentActivityStateChange)==null||l.call(u,d),d===Ce.Talking?Xi.update():Xi.reset(),ul(d===Ce.Talking?Q.Start:Q.Stop,n,t,c.streamType)},onStreamReady:()=>{const d=Xs.get(!0);t.track("agent-chat",{event:"ready",latency:d})}}},i),a&&r(c)}catch(c){s(c)}})}async function hl(n,e,t,i,r){var u,l,h,f;const s=async()=>{if(Gi(n.presenter.type)){const y=await oa(n,e,i),g=`${il}_${y.sessionId}`,C=new Date().toISOString();return{chatResult:{chatMode:Se.Functional,chat:{id:g,agent_id:n.id,owner_id:n.owner_id??"",created:C,modified:C,agent_id__created_at:C,agent_id__modified_at:C,chat_mode:Se.Functional,messages:[]}},streamingManager:y}}else{const y=new AbortController,g=y.signal;let C;try{const T=ea(n,t,i,e.mode,e.persistentChat,r),_=oa(n,e,i,g).then(b=>(C=b,b)),[M,v]=await Promise.all([T,_]);return{chatResult:M,streamingManager:v}}catch(T){throw y.abort(),C&&await C.disconnect().catch(()=>{}),T}}},{chatResult:c,streamingManager:a}=await s(),{chat:o,chatMode:d}=c;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(l=(u=e.callbacks).onModeChange)==null||l.call(u,d),d!==Se.Functional)?((f=(h=e.callbacks).onError)==null||f.call(h,new Ls(d)),a==null||a.disconnect(),{chat:o}):{chat:o,streamingManager:a}}async function ml(n,e){var S,L,F,x;let t=!0,i=null;const r=e.mixpanelKey||uu,s=e.wsURL||du,c=e.baseURL||Cn,a=e.mode||Se.Functional,o={messages:[],chatMode:a},d=Eu({token:r,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),u=Date.now();Ys(()=>{d.track("agent-sdk",{event:"init"},u)});const l=yu(e.auth,c,e.callbacks.onError,e.externalId),h=await l.getById(n);e.debug=e.debug||((S=h==null?void 0:h.advanced_settings)==null?void 0:S.ui_debug_mode);const f=Gi(h.presenter.type);d.enrich(ku(h));const{onMessage:y,clearQueue:g}=$u(d,o,e,h,()=>{var k;return(k=o.socketManager)==null?void 0:k.disconnect()});o.messages=_u(e.initialMessages),(F=(L=e.callbacks).onNewMessage)==null||F.call(L,[...o.messages],"answer");const C=k=>{i=k},T=({type:k})=>{var N,H,Y,X;if(!((N=o.streamingManager)!=null&&N.isInterruptible))return;const R=o.messages[o.messages.length-1];d.track("agent-video-interrupt",{type:k||"click",video_duration_to_interrupt:Xi.get(!0),message_duration_to_interrupt:nt.get(!0)}),R.interrupted=!0,(Y=(H=e.callbacks).onNewMessage)==null||Y.call(H,[...o.messages],"answer"),f?qu(o.streamingManager):(ju(o.streamingManager,(X=o.streamingManager)==null?void 0:X.streamType,i),Vu(o.streamingManager,i))},_=Date.now();Ys(()=>{d.track("agent-sdk",{event:"loaded",...bu(h)},_)});async function M(k){var ee,ye,Re,le,fe,Oe,Je;(ye=(ee=e.callbacks).onConnectionStateChange)==null||ye.call(ee,ae.Connecting),nt.reset(),k&&!t&&(delete o.chat,(le=(Re=e.callbacks).onNewMessage)==null||le.call(Re,[...o.messages],"answer"));const R=a===Se.DirectPlayback||f?Promise.resolve(void 0):Hu(e.auth,s,{onMessage:y,onError:e.callbacks.onError},e.externalId),N=zi(()=>hl(h,{...e,mode:a,callbacks:{...e.callbacks,onVideoIdChange:C,onMessage:y,onInterruptDetected:T}},l,d,o.chat),{limit:3,timeout:ou,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:j=>(j==null?void 0:j.message)!=="Could not connect"&&j.status!==429&&(j==null?void 0:j.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(j=>{var B,ie;throw b(Se.Maintenance),(ie=(B=e.callbacks).onConnectionStateChange)==null||ie.call(B,ae.Fail),j}),[H,{streamingManager:Y,chat:X}]=await Promise.all([R,N]);X&&X.id!==((fe=o.chat)==null?void 0:fe.id)&&((Je=(Oe=e.callbacks).onNewChat)==null||Je.call(Oe,X.id)),o.streamingManager=Y,o.socketManager=H,o.chat=X,t=!1,d.enrich({chatId:X==null?void 0:X.id,streamId:Y==null?void 0:Y.streamId,mode:o.chatMode}),b((X==null?void 0:X.chat_mode)??a)}async function v(){var k,R,N,H;(k=o.socketManager)==null||k.disconnect(),await((R=o.streamingManager)==null?void 0:R.disconnect()),delete o.streamingManager,delete o.socketManager,(H=(N=e.callbacks).onConnectionStateChange)==null||H.call(N,ae.Disconnected)}async function b(k){var R,N;k!==o.chatMode&&(d.track("agent-mode-change",{mode:k}),o.chatMode=k,o.chatMode!==Se.Functional&&await v(),(N=(R=e.callbacks).onModeChange)==null||N.call(R,k))}return{agent:h,getStreamType:()=>{var k;return(k=o.streamingManager)==null?void 0:k.streamType},getIsInterruptAvailable:()=>{var k;return((k=o.streamingManager)==null?void 0:k.interruptAvailable)??!1},getIsTriggersAvailable:()=>{var k;return((k=o.streamingManager)==null?void 0:k.triggersAvailable)??!1},starterMessages:((x=h.knowledge)==null?void 0:x.starter_message)||[],getSTTToken:()=>l.getSTTToken(h.id),changeMode:b,enrichAnalytics:d.enrich,async connect(){await M(!0),d.track("agent-chat",{event:"connect",mode:o.chatMode})},async reconnect(){const k=o.streamingManager;if(f&&(k!=null&&k.reconnect)){try{await k.reconnect(),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})}catch{await v(),await M(!1)}return}await v(),await M(!1),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})},async disconnect(){await v(),d.track("agent-chat",{event:"disconnect",mode:o.chatMode})},async publishMicrophoneStream(k){var R;if(!((R=o.streamingManager)!=null&&R.publishMicrophoneStream))throw new Error("publishMicrophoneStream is not available for this streaming manager");return o.streamingManager.publishMicrophoneStream(k)},async unpublishMicrophoneStream(){var k;if(!((k=o.streamingManager)!=null&&k.unpublishMicrophoneStream))throw new Error("unpublishMicrophoneStream is not available for this streaming manager");return o.streamingManager.unpublishMicrophoneStream()},async publishCameraStream(k){var R;if(!((R=o.streamingManager)!=null&&R.publishCameraStream))throw new Error("publishCameraStream is not available for this streaming manager");return o.streamingManager.publishCameraStream(k)},async unpublishCameraStream(){var k;if(!((k=o.streamingManager)!=null&&k.unpublishCameraStream))throw new Error("unpublishCameraStream is not available for this streaming manager");return o.streamingManager.unpublishCameraStream()},async chat(k){var Y,X,ee,ye,Re;const R=()=>{if(zs(a))throw new Vt(`${a} is enabled, chat is disabled`);if(k.length>=800)throw new Vt("Message cannot be more than 800 characters");if(k.length===0)throw new Vt("Message cannot be empty");if(o.chatMode===Se.Maintenance)throw new Vt("Chat is in maintenance mode");if(![Se.TextOnly,Se.Playground].includes(o.chatMode)){if(!o.streamingManager)throw new Vt("Streaming manager is not initialized");if(!o.chat)throw new Vt("Chat is not initialized")}},N=async()=>{var le,fe;if(!o.chat){const Oe=await ea(h,l,d,o.chatMode,e.persistentChat);if(!Oe.chat)throw new jt(o.chatMode,!!e.persistentChat);o.chat=Oe.chat,(fe=(le=e.callbacks).onNewChat)==null||fe.call(le,o.chat.id)}return o.chat.id},H=async(le,fe)=>{const Oe=o.chatMode===Se.Playground;return zi(f&&!Oe?async()=>{var B,ie;return await((ie=(B=o.streamingManager)==null?void 0:B.sendTextMessage)==null?void 0:ie.call(B,k)),Promise.resolve({})}:async()=>{var B,ie;return l.chat(h.id,fe,{chatMode:o.chatMode,streamId:(B=o.streamingManager)==null?void 0:B.streamId,sessionId:(ie=o.streamingManager)==null?void 0:ie.sessionId,messages:le.map(({matches:Le,...Tn})=>Tn)},{...Zs(o.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:B=>{var Tn,Ki,Wi,Hi;const ie=(Tn=B==null?void 0:B.message)==null?void 0:Tn.includes("missing or invalid session_id");return!((Ki=B==null?void 0:B.message)==null?void 0:Ki.includes("Stream Error"))&&!ie?((Hi=(Wi=e.callbacks).onError)==null||Hi.call(Wi,B),!1):!0},onRetry:async()=>{await v(),await M(!1)}})};try{g(),R(),o.messages.push({id:nn(),role:"user",content:k,created_at:new Date(nt.update()).toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"user");const le=await N(),fe=await H([...o.messages],le);return o.messages.push({id:nn(),role:"assistant",content:fe.result||"",created_at:new Date().toISOString(),context:fe.context,matches:fe.matches}),d.track("agent-message-send",{event:"success",messages:o.messages.length+1}),fe.result&&((ye=(ee=e.callbacks).onNewMessage)==null||ye.call(ee,[...o.messages],"answer"),d.track("agent-message-received",{latency:nt.get(!0),messages:o.messages.length})),fe}catch(le){throw((Re=o.messages[o.messages.length-1])==null?void 0:Re.role)==="assistant"&&o.messages.pop(),d.track("agent-message-send",{event:"error",messages:o.messages.length}),le}},rate(k,R,N){var X,ee,ye,Re;const H=o.messages.find(le=>le.id===k);if(o.chat){if(!H)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const Y=((X=H.matches)==null?void 0:X.map(le=>[le.document_id,le.id]))??[];return d.track("agent-rate",{event:N?"update":"create",thumb:R===1?"up":"down",knowledge_id:((ee=h.knowledge)==null?void 0:ee.id)??"",matches:Y,score:R}),N?l.updateRating(h.id,o.chat.id,N,{knowledge_id:((ye=h.knowledge)==null?void 0:ye.id)??"",message_id:k,matches:Y,score:R}):l.createRating(h.id,o.chat.id,{knowledge_id:((Re=h.knowledge)==null?void 0:Re.id)??"",message_id:k,matches:Y,score:R})},deleteRate(k){if(!o.chat)throw new Error("Chat is not initialized");return d.track("agent-rate-delete",{type:"text"}),l.deleteRating(h.id,o.chat.id,k)},async speak(k){var Y,X,ee;function R(){if(typeof k=="string"){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:k,ssml:!1}}if(k.type==="text"&&!k.provider){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:k.input,ssml:k.ssml}}return k}const N=R();if(d.track("agent-speak",N),nt.update(),o.messages&&N.type==="text"&&(o.messages.push({id:nn(),role:"assistant",content:N.input,created_at:new Date().toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"answer")),fu(o.chatMode))return{duration:0,video_id:"",status:"success"};if(!o.streamingManager)throw new Error("Please connect to the agent first");return o.streamingManager.speak({script:N,metadata:{chat_id:(ee=o.chat)==null?void 0:ee.id,agent_id:h.id}})},interrupt:T}}function fl(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 pl=Object.defineProperty,gl=(n,e,t)=>e in n?pl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ca=(n,e,t)=>gl(n,typeof e!="symbol"?e+"":e,t);class Pe{constructor(){ca(this,"_locking"),ca(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 pe(n,e){if(!n)throw new Error(e)}const vl=34028234663852886e22,yl=-34028234663852886e22,bl=4294967295,kl=2147483647,Tl=-2147483648;function Zn(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>kl||n<Tl)throw new Error("invalid int 32: "+n)}function nr(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>bl||n<0)throw new Error("invalid uint 32: "+n)}function da(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>vl||n<yl))throw new Error("invalid float 32: "+n)}const ua=Symbol("@bufbuild/protobuf/enum-type");function Sl(n){const e=n[ua];return pe(e,"missing enum type on enum object"),e}function la(n,e,t,i){n[ua]=ha(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function ha(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const c of e){const a=ma(c);s.push(a),i[c.name]=a,r[c.no]=a}return{typeName:n,values:s,findName(c){return i[c]},findNumber(c){return r[c]}}}function Cl(n,e,t){const i={};for(const r of e){const s=ma(r);i[s.localName]=s.no,i[s.no]=s.localName}return la(i,n,e),i}function ma(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class ir{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 El(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),c={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(c.prototype,new ir),Object.assign(c,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,o){return new c().fromBinary(a,o)},fromJson(a,o){return new c().fromJson(a,o)},fromJsonString(a,o){return new c().fromJsonString(a,o)},equals(a,o){return n.util.equals(c,a,o)}}),c}function wl(){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 rr(n,e,t){for(let s=0;s<28;s=s+7){const c=n>>>s,a=!(!(c>>>7)&&e==0),o=(a?c|128:c)&255;if(t.push(o),!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 c=e>>>s,a=!!(c>>>7),o=(a?c|128:c)&255;if(t.push(o),!a)return}t.push(e>>>31&1)}}const ei=4294967296;function fa(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(c,a){const o=Number(n.slice(c,a));r*=t,i=i*t+o,i>=ei&&(r=r+(i/ei|0),i=i%ei)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?ga(i,r):sr(i,r)}function _l(n,e){let t=sr(n,e);const i=t.hi&2147483648;i&&(t=ga(t.lo,t.hi));const r=pa(t.lo,t.hi);return i?"-"+r:r}function pa(n,e){if({lo:n,hi:e}=Rl(n,e),e<=2097151)return String(ei*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,c=i+r*8147497,a=r*2;const o=1e7;return s>=o&&(c+=Math.floor(s/o),s%=o),c>=o&&(a+=Math.floor(c/o),c%=o),a.toString()+va(c)+va(s)}function Rl(n,e){return{lo:n>>>0,hi:e>>>0}}function sr(n,e){return{lo:n|0,hi:e|0}}function ga(n,e){return e=~e,n?n=~n+1:e+=1,sr(n,e)}const va=n=>{const e=String(n);return"0000000".slice(e.length)+e};function ya(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 Pl(){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 Il(){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"),c=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error("int64 invalid: ".concat(o));return d},uParse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>a||d<c)throw new Error("uint64 invalid: ".concat(o));return d},enc(o){return n.setBigInt64(0,this.parse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(o){return n.setBigInt64(0,this.uParse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>pe(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>pe(/^[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),fa(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),fa(r)},dec(r,s){return _l(r,s)},uDec(r,s){return pa(r,s)}}}const ue=Il();var w;(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"})(w||(w={}));var It;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(It||(It={}));function Ot(n,e,t){if(e===t)return!0;if(n==w.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 w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==t}return!1}function rn(n,e){switch(n){case w.BOOL:return!1;case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==0?ue.zero:"0";case w.DOUBLE:case w.FLOAT:return 0;case w.BYTES:return new Uint8Array(0);case w.STRING:return"";default:return 0}}function ba(n,e){switch(n){case w.BOOL:return e===!1;case w.STRING:return e==="";case w.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var be;(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"})(be||(be={}));class Ol{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(nr(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Zn(e),ya(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){da(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){nr(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){Zn(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return Zn(e),e=(e<<1^e>>31)>>>0,ya(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ue.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=ue.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=ue.enc(e);return rr(t.lo,t.hi,this.buf),this}sint64(e){let t=ue.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return rr(r,s,this.buf),this}uint64(e){let t=ue.uEnc(e);return rr(t.lo,t.hi,this.buf),this}}class Ml{constructor(e,t){this.varint64=wl,this.uint32=Pl,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 be.Varint:for(;this.buf[this.pos++]&128;);break;case be.Bit64:this.pos+=4;case be.Bit32:this.pos+=4;break;case be.LengthDelimited:let r=this.uint32();this.pos+=r;break;case be.StartGroup:for(;;){const[s,c]=this.tag();if(c===be.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(c,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 ue.dec(...this.varint64())}uint64(){return ue.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,ue.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 ue.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return ue.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 Dl(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 ka(n){const e=n.field.localName,t=Object.create(null);return t[e]=Al(n),[t,()=>t[e]]}function Al(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 rn(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 xl(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 bt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ti=[];for(let n=0;n<bt.length;n++)ti[bt[n].charCodeAt(0)]=n;ti[45]=bt.indexOf("+"),ti[95]=bt.indexOf("/");const Ta={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,c=0;for(let a=0;a<n.length;a++){if(s=ti[n.charCodeAt(a)],s===void 0)switch(n[a]){case"=":r=0;case`
1
+ (function($,De){typeof exports=="object"&&typeof module<"u"?De(exports):typeof define=="function"&&define.amd?define(["exports"],De):($=typeof globalThis<"u"?globalThis:$||self,De($.index={}))})(this,function($){"use strict";var Mg=Object.defineProperty;var Dg=($,De,jt)=>De in $?Mg($,De,{enumerable:!0,configurable:!0,writable:!0,value:jt}):$[De]=jt;var Yn=($,De,jt)=>Dg($,typeof De!="symbol"?De+"":De,jt);class De extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));Yn(this,"kind");Yn(this,"description");Yn(this,"error");this.kind=t,this.description=i,this.error=r}}class jt extends De{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class Ls extends De{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class Vt extends De{constructor(t,i){super({kind:"ValidationError",description:t});Yn(this,"key");this.key=i}}class Ns extends De{constructor(e){super({kind:"WSError",description:e})}}var Us=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(Us||{}),Fs=(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))(Fs||{}),Bs=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(Bs||{}),js=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(js||{}),Se=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(Se||{}),Ne=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Transcribe="transcribe",n.Complete="done",n))(Ne||{}),Vs=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(Vs||{}),qs=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(qs||{}),Ks=(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))(Ks||{}),Ji=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(Ji||{});const au=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";case"expressive":return"expressive";default:throw new Error(`Unknown video type: ${n}`)}};var Q=(n=>(n.Start="START",n.Stop="STOP",n))(Q||{}),et=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(et||{}),Ce=(n=>(n.Idle="IDLE",n.Loading="LOADING",n.Talking="TALKING",n.ToolActive="TOOL_ACTIVE",n))(Ce||{}),te=(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.ToolCalling="tool/calling",n.ToolResult="tool/result",n))(te||{}),ae=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnecting="disconnecting",n.Disconnected="disconnected",n))(ae||{}),tt=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(tt||{}),Sn=(n=>(n.Livekit="livekit",n))(Sn||{}),Ws=(n=>(n.Amazon="amazon",n.AzureOpenAi="azure-openai",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(Ws||{}),Hs=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(Hs||{});const ou=45*1e3,cu="X-Playground-Chat",Cn="https://api.d-id.com",du="wss://notifications.d-id.com",uu="79f81a83a67430be2bc0fd61042b8faa",lu=(...n)=>{},Js=n=>new Promise(e=>setTimeout(e,n)),nn=(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)},Gs=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type,hu=n=>{switch(n.type){case"expressive":return"v4";case"clip":return"v3-pro";case"talk":return"v2"}},mu=n=>n.type==="talk"?n.source_url:n.presenter_id,Gi=n=>n===Ji.Expressive,fu=n=>[Se.TextOnly,Se.Playground,Se.Maintenance].includes(n),zs=n=>n&&[Se.DirectPlayback,Se.Off].includes(n);function pu(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function zi(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:c}=pu(t.timeout,t.timeoutErrorMessage),a=n().finally(c);return await Promise.race([a,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Js(t.delayMs),t.onRetry(s)}throw i}function $i(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=nn();window.localStorage.setItem("did_external_key_id",t),e=t}return e}let gu=nn();function $s(n,e){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${"token"in n?n.token:btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${$i(e)}_${gu}`;throw new Error(`Unknown auth type: ${n}`)}const vu=n=>zi(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function Qi(n,e=Cn,t,i){const r=async(s,c)=>{const{skipErrorHandler:a,...o}=c||{},d=await vu(()=>fetch(e+(s!=null&&s.startsWith("/")?s:`/${s}`),{...o,headers:{...o.headers,Authorization:$s(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:o,headers:d.headers}),l}return d.json()};return{get(s,c){return r(s,{...c,method:"GET"})},post(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"POST"})},delete(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"DELETE"})},patch(s,c,a){return r(s,{...a,body:JSON.stringify(c),method:"PATCH"})}}}function yu(n,e=Cn,t,i){const r=Qi(n,`${e}/agents`,t,i);return{create(s,c){return r.post("/",s,c)},getAgents(s,c){return r.get(`/${s?`?tag=${s}`:""}`,c).then(a=>a??[])},getById(s,c){return r.get(`/${s}`,c)},delete(s,c){return r.delete(`/${s}`,void 0,c)},update(s,c,a){return r.patch(`/${s}`,c,a)},newChat(s,c,a){return r.post(`/${s}/chat`,c,a)},chat(s,c,a,o){return r.post(`/${s}/chat/${c}`,a,o)},createRating(s,c,a,o){return r.post(`/${s}/chat/${c}/ratings`,a,o)},updateRating(s,c,a,o,d){return r.patch(`/${s}/chat/${c}/ratings/${a}`,o,d)},deleteRating(s,c,a,o){return r.delete(`/${s}/chat/${c}/ratings/${a}`,o)},getSTTToken(s,c){return r.get(`/${s}/stt-token`,c)}}}function bu(n){var r,s,c,a;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const o=navigator.platform;return o.toLowerCase().includes("win")?"Windows":o.toLowerCase().includes("mac")?"Mac OS X":o.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Gs(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(a=(c=n.presenter)==null?void 0:c.voice)==null?void 0:a.type}}}function ku(n){var t,i,r,s,c,a;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Gs(n.presenter),presenterType:hu(n.presenter),presenter:mu(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=(c=n.knowledge)==null?void 0:c.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 Tu=n=>n.reduce((e,t)=>e+t,0),Qs=n=>Tu(n)/n.length;function Su(n,e,t){var o,d,u;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:c}=((o=e==null?void 0:e.presenter)==null?void 0:o.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:c}},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 Ys(n){"requestIdleCallback"in window?requestIdleCallback(n,{timeout:2e3}):setTimeout(n,0)}const Cu="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function Eu(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={};return{token:n.token||"testKey",distinct_id:$i(n.externalId),agentId:n.agentId,additionalProperties:{id:$i(n.externalId),...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:nn,enrich(i){this.additionalProperties={...this.additionalProperties,...i}},async track(i,r,s){if(!this.isEnabled)return Promise.resolve();const{audioPath:c,...a}=r||{},o=s||Date.now(),d={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:i,properties:{...this.additionalProperties,...a,agentId:this.agentId,source:e,token:this.token,time:o,$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(Cu,d).catch(u=>console.error("Analytics tracking error:",u)),Promise.resolve()},linkTrack(i,r,s,c){t[i]||(t[i]={events:{},resolvedDependencies:[]}),c.includes(s)||c.push(s);const a=t[i];if(a.events[s]={props:r},a.resolvedDependencies.push(s),c.every(d=>a.resolvedDependencies.includes(d))){const d=c.reduce((u,l)=>a.events[l]?{...u,...a.events[l].props}:u,{});this.track(i,d),a.resolvedDependencies=a.resolvedDependencies.filter(u=>!c.includes(u)),c.forEach(u=>{delete a.events[u]})}}}}function Yi(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const nt=Yi(),Xi=Yi(),Xs=Yi();function Zs(n){return n===Se.Playground?{headers:{[cu]:"true"}}:{}}async function ea(n,e,t,i,r=!1,s){try{return!s&&!zs(i)&&(s=await e.newChat(n.id,{persist:r},Zs(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(c){throw wu(c)==="InsufficientCreditsError"?new Error("InsufficientCreditsError"):new Error("Cannot create new chat")}}const wu=n=>{try{const e=JSON.parse(n.message);return e==null?void 0:e.kind}catch{return"UnknownError"}};function _u(n){return n&&n.length>0?n:[]}function Ru(n,e,t,i){const r=Qi(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/sessions",s)}}}const ta=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??""),Pu={[te.ChatAnswer]:Ne.Answer,[te.ChatPartial]:Ne.Partial};function Iu(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 Ou(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 Mu(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,c=i.nominated===!0;r>0&&(c||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 na(n,e,t){const i=n.map((o,d)=>d===0?t?{timestamp:o.timestamp,duration:0,rtt:o.rtt,bytesReceived:o.bytesReceived-t.bytesReceived,bitrate:(o.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-t.packetsReceived,packetsLost:o.packetsLost-t.packetsLost,framesDropped:o.framesDropped-t.framesDropped,framesDecoded:o.framesDecoded-t.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-t.jitterBufferDelay)/(o.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-t.freezeCount,freezeDuration:o.freezeDuration-t.freezeDuration}:{timestamp:o.timestamp,rtt:o.rtt,duration:0,bytesReceived:o.bytesReceived,bitrate:o.bytesReceived*8/(e/1e3),packetsReceived:o.packetsReceived,packetsLost:o.packetsLost,framesDropped:o.framesDropped,framesDecoded:o.framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount,avgJitterDelayInInterval:o.jitterBufferDelay/o.jitterBufferEmittedCount,framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount,freezeDuration:o.freezeDuration}:{timestamp:o.timestamp,duration:e*d/1e3,rtt:o.rtt,bytesReceived:o.bytesReceived-n[d-1].bytesReceived,bitrate:(o.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:o.packetsReceived-n[d-1].packetsReceived,packetsLost:o.packetsLost-n[d-1].packetsLost,framesDropped:o.framesDropped-n[d-1].framesDropped,framesDecoded:o.framesDecoded-n[d-1].framesDecoded,jitter:o.jitter,jitterBufferDelay:o.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(o.jitterBufferDelay-n[d-1].jitterBufferDelay)/(o.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:o.framesPerSecond,freezeCount:o.freezeCount-n[d-1].freezeCount,freezeDuration:o.freezeDuration-n[d-1].freezeDuration}),r=Ou(i),s=r.reduce((o,d)=>o+(d.causes.includes("low fps")?1:0),0),c=i.filter(o=>!!o.avgJitterDelayInInterval).map(o=>o.avgJitterDelayInInterval),a=i.filter(o=>!!o.rtt).map(o=>o.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...a),avgRtt:Qs(a),maxRtt:Math.max(...a),aggregateReport:Iu(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...c),maxJitterDelayInInterval:Math.max(...c),avgJitterDelayInInterval:Qs(c)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}const Xn=100,Du=Math.max(Math.ceil(400/Xn),1),Au=.25,xu=.28;function Lu(){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 c=s.jitterBufferDelay,a=s.jitterBufferEmittedCount;if(t&&a>t){const u=c-e,l=a-t;i=u/l}e=c,t=a;const o=s.framesDecoded,d=o-n>0;return n=o,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}return{isReceiving:!1,avgJitterDelayInInterval:i}}}function ia(n,e,t,i,r){let s=null,c=[],a,o=0,d=!1,u=et.Unknown,l=et.Unknown,h=0,f=0;const y=Lu();async function g(){const C=await n();if(!C)return;const{isReceiving:T,avgJitterDelayInInterval:_,freezeCount:M}=y(C),v=Mu(C);if(T)o=0,h=M-f,l=_<Au?et.Strong:_>xu&&h>1?et.Weak:u,l!==u&&(r==null||r(l),u=l,f+=h,h=0),d||(i==null||i(Q.Start),a=c[c.length-1],c=[],d=!0),c.push(v);else if(d&&(o++,o>=Du)){const b=na(c,Xn,a);i==null||i(Q.Stop,b),e()||t(),f=M,d=!1}}return{start:()=>{s||(s=setInterval(g,Xn))},stop:()=>{s&&(clearInterval(s),s=null)},getReport:()=>na(c,Xn,a)}}const ra=2e4;async function Nu(){try{return await Promise.resolve().then(()=>Eg)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}const Uu={excellent:et.Strong,good:et.Strong,poor:et.Weak,lost:et.Unknown,unknown:et.Unknown},En=JSON.stringify({kind:"InternalServerError",description:"Stream Error"});var Zi=(n=>(n.Chat="lk.chat",n.Speak="did.speak",n.Interrupt="did.interrupt",n))(Zi||{});function er(n,e,t){var i,r;throw e("Failed to connect to LiveKit room:",n),(i=t.onConnectionStateChange)==null||i.call(t,ae.Fail,"internal:init-error"),(r=t.onError)==null||r.call(t,n,{sessionId:""}),n}async function Fu(n,e,t){var nu;const i=ta(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:c,Track:a}=await Nu(),{callbacks:o,auth:d,baseURL:u,analytics:l}=t;let h=null,f=!1;const y=tt.Fluent;let g=null;const C={isPublishing:!1,publication:null},T={isPublishing:!1,publication:null};let _=null,M=null,v=!1;h=new r({adaptiveStream:!1,dynacast:!0});let b=null,S=Ce.Idle,L=!0;const F=Ru(d,u||Cn,n,o.onError);let x,k,R;try{const P=await F.createStream({transport_provider:Sn.Livekit,chat_persist:e.chat_persist??!0}),{id:U,session_token:q,session_url:K}=P;(nu=o.onStreamCreated)==null||nu.call(o,{session_id:U,stream_id:U,agent_id:n}),x=U,k=q,R=K,await h.prepareConnection(R,k)}catch(P){er(P,i,o)}if(!R||!k||!x)return Promise.reject(new Error("Failed to initialize LiveKit stream"));h.on(s.ConnectionStateChanged,H).on(s.ConnectionQualityChanged,Y).on(s.ParticipantConnected,X).on(s.ParticipantDisconnected,ee).on(s.TrackSubscribed,le).on(s.TrackUnsubscribed,fe).on(s.DataReceived,Tn).on(s.MediaDevicesError,Ki).on(s.TranscriptionReceived,N).on(s.EncryptionError,Wi).on(s.TrackSubscriptionFailed,Hi);function N(P,U){var q;U!=null&&U.isLocal&&(nt.update(),S===Ce.Talking&&((q=o.onInterruptDetected)==null||q.call(o,{type:"audio"}),S=Ce.Idle))}try{await h.connect(R,k),i("LiveKit room joined successfully"),b=setTimeout(()=>{var P;i(`Track subscription timeout - no track subscribed within ${ra/1e3} seconds after connect`),b=null,l.track("connectivity-error",{error:"Track subscription timeout",sessionId:x}),(P=o.onError)==null||P.call(o,new Error("Track subscription timeout"),{sessionId:x}),xs("internal:track-subscription-timeout")},ra)}catch(P){er(P,i,o)}l.enrich({"stream-type":y});function H(P){var U,q,K,ce;switch(i("Connection state changed:",P),P){case c.Connecting:i("CALLBACK: onConnectionStateChange(Connecting)"),(U=o.onConnectionStateChange)==null||U.call(o,ae.Connecting,"livekit:connecting");break;case c.Connected:i("LiveKit room connected successfully"),f=!0;break;case c.Disconnected:i("LiveKit room disconnected"),f=!1,v=!1,C.publication=null,T.publication=null,(q=o.onConnectionStateChange)==null||q.call(o,ae.Disconnected,"livekit:disconnected");break;case c.Reconnecting:i("LiveKit room reconnecting..."),(K=o.onConnectionStateChange)==null||K.call(o,ae.Connecting,"livekit:reconnecting");break;case c.SignalReconnecting:i("LiveKit room signal reconnecting..."),(ce=o.onConnectionStateChange)==null||ce.call(o,ae.Connecting,"livekit:signal-reconnecting");break}}function Y(P,U){var q;i("Connection quality:",P),U!=null&&U.isLocal&&((q=o.onConnectivityStateChange)==null||q.call(o,Uu[P]))}function X(P){i("Participant connected:",P.identity)}function ee(P){i("Participant disconnected:",P.identity),xs("livekit:participant-disconnected")}function ye(){var P;M!==Q.Start&&(i("CALLBACK: onVideoStateChange(Start)"),M=Q.Start,(P=o.onVideoStateChange)==null||P.call(o,Q.Start))}function Re(P){var U;M!==Q.Stop&&(i("CALLBACK: onVideoStateChange(Stop)"),M=Q.Stop,(U=o.onVideoStateChange)==null||U.call(o,Q.Stop,P))}function le(P,U,q){var ce,de,Ge;i(`Track subscribed: ${P.kind} from ${q.identity}`);const K=P.mediaStreamTrack;if(!K){i(`No mediaStreamTrack available for ${P.kind}`);return}g?(g.addTrack(K),i(`Added ${P.kind} track to shared MediaStream`)):(g=new MediaStream([K]),i(`Created shared MediaStream with ${P.kind} track`)),P.kind==="video"&&((ce=o.onStreamReady)==null||ce.call(o),i("CALLBACK: onSrcObjectReady"),(de=o.onSrcObjectReady)==null||de.call(o,g),v||(v=!0,i("CALLBACK: onConnectionStateChange(Connected)"),(Ge=o.onConnectionStateChange)==null||Ge.call(o,ae.Connected,"livekit:track-subscribed")),_=ia(()=>P.getRTCStatsReport(),()=>f,lu,(Me,Bt)=>{i(`Video state change: ${Me}`),Me===Q.Start?(b&&(clearTimeout(b),b=null,i("Track subscription timeout cleared")),ye()):Me===Q.Stop&&Re(Bt)}),_.start())}function fe(P,U,q){i(`Track unsubscribed: ${P.kind} from ${q.identity}`),P.kind==="video"&&(Re(_==null?void 0:_.getReport()),_==null||_.stop(),_=null)}function Oe(P,U){var K;const q=Pu[P];q&&((K=o.onMessage)==null||K.call(o,q,{event:q,...U}))}function Je(P,U){var q,K,ce;if(P===te.ToolCalling){S=Ce.ToolActive,(q=o.onAgentActivityStateChange)==null||q.call(o,Ce.ToolActive),(K=o.onToolEvent)==null||K.call(o,te.ToolCalling,U);return}P===te.ToolResult&&((ce=o.onToolEvent)==null||ce.call(o,te.ToolResult,U))}function j(P,U){var q,K,ce,de;if(L=((q=U.metadata)==null?void 0:q.interruptible)!==!1,(K=o.onInterruptibleChange)==null||K.call(o,L),P===te.StreamVideoCreated){S=Ce.Talking,(ce=o.onAgentActivityStateChange)==null||ce.call(o,Ce.Talking);return}L&&(S=Ce.Idle,(de=o.onAgentActivityStateChange)==null||de.call(o,Ce.Idle))}function B(P,U){var de,Ge,Me,Bt;const q=((Ge=(de=_==null?void 0:_.getReport())==null?void 0:de.webRTCStats)==null?void 0:Ge.avgRtt)??0,K=q>0?Math.round(q/2*1e3):0,ce={...U,downstreamNetworkLatency:K};t.debug&&((Me=U==null?void 0:U.metadata)!=null&&Me.sentiment)&&(ce.sentiment={id:U.metadata.sentiment.id,name:U.metadata.sentiment.sentiment}),(Bt=o.onMessage)==null||Bt.call(o,P,ce),j(P,U)}function ie(P,U){var q;(q=o.onMessage)==null||q.call(o,Ne.Transcribe,{event:Ne.Transcribe,...U}),queueMicrotask(()=>{var K;(K=o.onAgentActivityStateChange)==null||K.call(o,Ce.Loading)})}const Le={[te.ChatAnswer]:Oe,[te.ChatPartial]:Oe,[te.ToolCalling]:Je,[te.ToolResult]:Je,[te.StreamVideoCreated]:B,[te.StreamVideoDone]:B,[te.StreamVideoError]:B,[te.StreamVideoRejected]:B,[te.ChatAudioTranscribed]:ie};function Tn(P,U,q,K){const ce=new TextDecoder().decode(P);try{const de=JSON.parse(ce),Ge=K||de.subject;if(i("Data received:",{subject:Ge,data:de}),!Ge)return;const Me=Le[Ge];Me==null||Me(Ge,de)}catch(de){i("Failed to parse data channel message:",de)}}function Ki(P){var U;i("Media devices error:",P),(U=o.onError)==null||U.call(o,new Error(En),{sessionId:x})}function Wi(P){var U;i("Encryption error:",P),(U=o.onError)==null||U.call(o,new Error(En),{sessionId:x})}function Hi(P,U,q){i("Track subscription failed:",{trackSid:P,participant:U,reason:q})}function wg(P,U,q){for(const[K,ce]of q)if(ce.source===U&&ce.track){const de=ce.track.mediaStreamTrack;if(de===P||(de==null?void 0:de.id)===P.id)return ce}return null}async function eu(P,U,q,K,ce,de){var iu,ru,su;if(!f||!h)throw i(`Room is not connected, cannot publish ${K} stream`),new Error("Room is not connected");if(P.isPublishing){i(`${K} publish already in progress, skipping`);return}const Ge=q(U);if(Ge.length===0)throw new Error(`No ${K} track found in the provided MediaStream`);const Me=Ge[0],Bt=wg(Me,K,ce());if(Bt){i(`${K} track is already published, skipping`,{trackId:Me.id,publishedTrackId:(ru=(iu=Bt.track)==null?void 0:iu.mediaStreamTrack)==null?void 0:ru.id}),P.publication=Bt;return}if((su=P.publication)!=null&&su.track){const tn=P.publication.track.mediaStreamTrack;tn!==Me&&(tn==null?void 0:tn.id)!==Me.id&&(i(`Unpublishing existing ${K} track before publishing new one`),await de())}i(`Publishing ${K} track from provided MediaStream`,{trackId:Me.id}),P.isPublishing=!0;try{P.publication=await h.localParticipant.publishTrack(Me,{source:K}),i(`${K} track published successfully`,{trackSid:P.publication.trackSid})}catch(tn){throw i(`Failed to publish ${K} track:`,tn),tn}finally{P.isPublishing=!1}}async function tu(P,U){if(!(!P.publication||!P.publication.track))try{h&&(await h.localParticipant.unpublishTrack(P.publication.track,!1),i(`${U} track unpublished`))}catch(q){i(`Error unpublishing ${U} track:`,q)}finally{P.publication=null}}async function _g(P){return eu(C,P,U=>U.getAudioTracks(),a.Source.Microphone,()=>h.localParticipant.audioTrackPublications,Ms)}async function Ms(){return tu(C,"Microphone")}async function Rg(P){return eu(T,P,U=>U.getVideoTracks(),a.Source.Camera,()=>h.localParticipant.videoTrackPublications,Ds)}async function Ds(){return tu(T,"Camera")}function Pg(){g&&(g.getTracks().forEach(P=>P.stop()),g=null)}async function As(P,U){var q,K;if(!f||!h){i("Room is not connected for sending messages"),(q=o.onError)==null||q.call(o,new Error(En),{sessionId:x});return}try{await h.localParticipant.sendText(P,{topic:U}),i("Message sent successfully:",P)}catch(ce){i("Failed to send message:",ce),(K=o.onError)==null||K.call(o,new Error(En),{sessionId:x})}}async function Ig(P){var U;try{const K=JSON.parse(P).topic;return As("",K)}catch(q){i("Failed to send data channel message:",q),(U=o.onError)==null||U.call(o,new Error(En),{sessionId:x})}}function Og(P){return As(P,"lk.chat")}async function xs(P){var U,q;b&&(clearTimeout(b),b=null),h&&((U=o.onConnectionStateChange)==null||U.call(o,ae.Disconnecting,P),await Promise.all([Ms(),Ds()]),await h.disconnect()),Pg(),f=!1,v=!1,(q=o.onAgentActivityStateChange)==null||q.call(o,Ce.Idle),S=Ce.Idle}return{speak(P){const U=typeof P=="string"?P:JSON.stringify(P);return As(U,"did.speak")},disconnect:()=>xs("user:disconnect"),async reconnect(){var P,U;if((h==null?void 0:h.state)===c.Connected){i("Room is already connected");return}if(!h||!R||!k)throw i("Cannot reconnect: missing room, URL or token"),new Error("Cannot reconnect: session not available");i("Reconnecting to LiveKit room, state:",h.state),v=!1,(P=o.onConnectionStateChange)==null||P.call(o,ae.Connecting,"user:reconnect");try{if(await h.connect(R,k),i("Room reconnected"),f=!0,h.remoteParticipants.size===0){if(i("Waiting for agent to join..."),!await new Promise(K=>{const ce=setTimeout(()=>{h==null||h.off(s.ParticipantConnected,de),K(!1)},5e3),de=()=>{clearTimeout(ce),h==null||h.off(s.ParticipantConnected,de),K(!0)};h==null||h.on(s.ParticipantConnected,de)}))throw i("Agent did not join within timeout"),await h.disconnect(),new Error("Agent did not rejoin the room");i("Agent joined, reconnection successful")}}catch(q){throw i("Failed to reconnect:",q),(U=o.onConnectionStateChange)==null||U.call(o,ae.Fail,"user:reconnect-failed"),q}},sendDataChannelMessage:Ig,sendTextMessage:Og,publishMicrophoneStream:_g,unpublishMicrophoneStream:Ms,publishCameraStream:Rg,unpublishCameraStream:Ds,sessionId:x,streamId:x,streamType:y,interruptAvailable:!0,isInterruptible:L,triggersAvailable:!1}}const Bu=Object.freeze(Object.defineProperty({__proto__:null,DataChannelTopic:Zi,createLiveKitStreamingManager:Fu,handleInitError:er},Symbol.toStringTag,{value:"Module"}));function ju(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!==tt.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function Vu(n,e){const t={type:te.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}async function qu(n){const e={topic:Zi.Interrupt};n.sendDataChannelMessage(JSON.stringify(e))}function Ku(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s,externalId:c}=n,{onMessage:a=null,onOpen:o=null,onClose:d=null,onError:u=null}=i||{},l=new WebSocket(`${r}?authorization=${encodeURIComponent($s(s,c))}`);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=>{o==null||o(h),e(l)}})}async function Wu(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 Ku(n)}catch(r){if(i===e)throw r;await Js(i*500)}return t}async function Hu(n,e,t,i){const r=t!=null&&t.onMessage?[t.onMessage]:[],s=await Wu({auth:n,host:e,externalId:i,callbacks:{onError:c=>{var a;return(a=t.onError)==null?void 0:a.call(t,new Ns(c))},onMessage(c){const a=JSON.parse(c.data);r.forEach(o=>o(a.event,a))}}});return{socket:s,disconnect:()=>s.close(),subscribeToEvents:c=>r.push(c)}}function Ju(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function Gu(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 zu(n,e,t,i,r){if(n===Ne.Transcribe&&e.content){Gu(e,i,r);return}if(!(n===Ne.Partial||n===Ne.Answer))return;const s=i.messages[i.messages.length-1];let c;if(s!=null&&s.transcribed&&s.role==="user")n===Ne.Answer&&e.content,c={id:e.id||`assistant-${Date.now()}`,role:e.role||"assistant",content:e.content||"",created_at:e.created_at||new Date().toISOString()},i.messages.push(c);else if((s==null?void 0:s.role)==="assistant")c=s;else return;const{content:a,sequence:o}=e;n===Ne.Partial?t[o]=a:t.answer=a;const d=Ju(t);(c.content!==d||n===Ne.Answer)&&(c.content=d,r==null||r([...i.messages],n))}function $u(n,e,t,i,r){let s={};const c=()=>s={};let a="answer";const o=(d,u)=>{var l,h;u==="user"&&c(),a=u,(h=(l=t.callbacks).onNewMessage)==null||h.call(l,d,u)};return{clearQueue:c,onMessage:(d,u)=>{var l,h;if("content"in u){const f=d===te.ChatAnswer?Ne.Answer:d===te.ChatAudioTranscribed?Ne.Transcribe:d;zu(f,u,s,e,o),f===Ne.Answer&&n.track("agent-message-received",{content:u.content,messages:e.messages.length,mode:e.chatMode})}else{const f=te,y=[f.StreamVideoDone,f.StreamVideoError,f.StreamVideoRejected],g=[f.StreamFailed,f.StreamVideoError,f.StreamVideoRejected],C=Su(u,i,{mode:e.chatMode});if(d=d,d===f.StreamVideoCreated&&(n.linkTrack("agent-video",C,f.StreamVideoCreated,["start"]),u.sentiment)){const T=e.messages[e.messages.length-1];if((T==null?void 0:T.role)==="assistant"){const _={...T,sentiment:u.sentiment};e.messages[e.messages.length-1]=_,o==null||o([...e.messages],a)}}if(y.includes(d)){const T=d.split("/")[1];g.includes(d)?n.track("agent-video",{...C,event:T}):n.linkTrack("agent-video",{...C,event:T},d,["done"])}g.includes(d)&&((h=(l=t.callbacks).onError)==null||h.call(l,new Error(`Stream failed with event ${d}`),{data:u})),u.event===f.StreamDone&&r()}}}}function Qu(n,e,t,i){const r=Qi(n,`${e}/agents/${t}`,i);return{createStream(s,c){return r.post("/streams",s,{signal:c})},startConnection(s,c,a,o){return r.post(`/streams/${s}/sdp`,{session_id:a,answer:c},{signal:o})},addIceCandidate(s,c,a,o){return r.post(`/streams/${s}/ice`,{session_id:a,...c},{signal:o})},sendStreamRequest(s,c,a){return r.post(`/streams/${s}`,{session_id:c,...a})},close(s,c){return r.delete(`/streams/${s}`,{session_id:c})}}}const Yu=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function sa(n){switch(n){case"connected":return ae.Connected;case"checking":return ae.Connecting;case"failed":return ae.Fail;case"new":return ae.New;case"closed":return ae.Closed;case"disconnected":return ae.Disconnected;case"completed":return ae.Completed;default:return ae.New}}const Xu=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 Zu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i,log:r}){n===Q.Start&&e===Q.Start?(r("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&e===Q.Stop&&(r("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,i))}function el({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r,log:s}){n===Q.Start?(s("CALLBACK: onVideoStateChange(Start)"),t==null||t(Q.Start)):n===Q.Stop&&(s("CALLBACK: onVideoStateChange(Stop)"),t==null||t(Q.Stop,r)),e===Q.Start?i==null||i(Ce.Talking):e===Q.Stop&&(i==null||i(Ce.Idle))}function aa({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s,log:c}){r===tt.Legacy?Zu({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s,log:c}):r===tt.Fluent&&el({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s,log:c})}async function tl(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Cn,analytics:c},a){var Je;const o=ta(t,"WebRTCStreamingManager"),d=Xu(o);let u=!1,l=!1,h=Q.Stop,f=Q.Stop;const{startConnection:y,sendStreamRequest:g,close:C,createStream:T,addIceCandidate:_}=Qu(r,s,n,i.onError),{id:M,offer:v,ice_servers:b,session_id:S,fluent:L,interrupt_enabled:F,triggers_enabled:x}=await T(e,a);(Je=i.onStreamCreated)==null||Je.call(i,{stream_id:M,session_id:S,agent_id:n});const k=new Yu({iceServers:b}),R=k.createDataChannel("JanusDataChannel");if(!S)throw new Error("Could not create session_id");const N=L?tt.Fluent:tt.Legacy;c.enrich({"stream-type":N});const H=e.stream_warmup&&!L,Y=()=>u,X=()=>{var j;u=!0,l&&(o("CALLBACK: onConnectionStateChange(Connected)"),(j=i.onConnectionStateChange)==null||j.call(i,ae.Connected))},ee=ia(()=>k.getStats(),Y,X,(j,B)=>aa({statsSignal:f=j,dataChannelSignal:N===tt.Legacy?h:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:N,log:o}),j=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,j)});ee.start(),k.onicecandidate=j=>{var B;o("peerConnection.onicecandidate",j);try{j.candidate&&j.candidate.sdpMid&&j.candidate.sdpMLineIndex!==null?_(M,{candidate:j.candidate.candidate,sdpMid:j.candidate.sdpMid,sdpMLineIndex:j.candidate.sdpMLineIndex},S,a):_(M,{candidate:null},S,a)}catch(ie){(B=i.onError)==null||B.call(i,ie,{streamId:M})}},R.onopen=()=>{l=!0,(!H||u)&&X()};const ye=j=>{var B;(B=i.onVideoIdChange)==null||B.call(i,j)};function Re(j,B){if(j===te.StreamStarted&&typeof B=="object"&&"metadata"in B){const ie=B.metadata;ye(ie.videoId)}j===te.StreamDone&&ye(null),h=j===te.StreamStarted?Q.Start:Q.Stop,aa({statsSignal:N===tt.Legacy?f:void 0,dataChannelSignal:h,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:N,log:o})}function le(j,B){var Le;const ie=typeof B=="string"?B:B==null?void 0:B.metadata;ie&&c.enrich({streamMetadata:ie}),(Le=i.onStreamReady)==null||Le.call(i)}const fe={[te.StreamStarted]:Re,[te.StreamDone]:Re,[te.StreamReady]:le};R.onmessage=j=>{var Le;const{subject:B,data:ie}=d(j.data);(Le=fe[B])==null||Le.call(fe,B,ie)},k.oniceconnectionstatechange=()=>{var B;o("peerConnection.oniceconnectionstatechange => "+k.iceConnectionState);const j=sa(k.iceConnectionState);j!==ae.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,j))},k.ontrack=j=>{var B;o("peerConnection.ontrack",j),o("CALLBACK: onSrcObjectReady"),(B=i.onSrcObjectReady)==null||B.call(i,j.streams[0])},await k.setRemoteDescription(v),o("set remote description OK");const Oe=await k.createAnswer();return o("create answer OK"),await k.setLocalDescription(Oe),o("set local description OK"),await y(M,Oe,S,a),o("start connection OK"),{speak(j){return g(M,S,j)},async disconnect(){var j;if(M){const B=sa(k.iceConnectionState);if(k){if(B===ae.New){ee.stop();return}k.close(),k.oniceconnectionstatechange=null,k.onnegotiationneeded=null,k.onicecandidate=null,k.ontrack=null}try{B===ae.Connected&&await C(M,S).catch(ie=>{})}catch(ie){o("Error on close stream connection",ie)}(j=i.onAgentActivityStateChange)==null||j.call(i,Ce.Idle),ee.stop()}},sendDataChannelMessage(j){var B,ie;if(!u||R.readyState!=="open"){o("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:M});return}try{R.send(j)}catch(Le){o("Error sending data channel message",Le),(ie=i.onError)==null||ie.call(i,Le,{streamId:M})}},sessionId:S,streamId:M,streamType:N,interruptAvailable:F??!1,isInterruptible:!0,triggersAvailable:x??!1}}var tr=(n=>(n.V1="v1",n.V2="v2",n))(tr||{});async function nl(n,e,t,i){const r=n.id;switch(e.version){case"v1":{const{version:s,...c}=e;return tl(r,c,t,i)}case"v2":{const{version:s,...c}=e;switch(c.transport_provider){case Sn.Livekit:const{createLiveKitStreamingManager:a}=await Promise.resolve().then(()=>Bu);return a(r,c,t);default:throw new Error(`Unsupported transport provider: ${c.transport_provider}`)}}default:throw new Error(`Invalid stream version: ${e.version}`)}}const il="cht";function rl(){return{transport_provider:Sn.Livekit}}function sl(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 al(n,e){return Gi(n.presenter.type)?{version:tr.V2,...rl()}:{version:tr.V1,...sl(e)}}function ol(n,e,t){t.track("agent-connection-state-change",{state:n,...e&&{reason:e}})}function cl(n,e,t,i,r){r===tt.Fluent?dl(n,e,t,i,r):ll(n,e,t,i,r)}function dl(n,e,t,i,r){n===Q.Start?i.track("stream-session",{event:"start","stream-type":r}):n===Q.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 ul(n,e,t,i){nt.get()<=0||(n===Q.Start?t.linkTrack("agent-video",{event:"start",latency:nt.get(!0),"stream-type":i},"start",[te.StreamVideoCreated]):n===Q.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",[te.StreamVideoDone]))}function ll(n,e,t,i,r){nt.get()<=0||(n===Q.Start?i.linkTrack("agent-video",{event:"start",latency:nt.get(!0),"stream-type":r},"start",[te.StreamVideoCreated]):n===Q.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",[te.StreamVideoDone]))}function oa(n,e,t,i){return nt.reset(),Xs.update(),new Promise(async(r,s)=>{try{let c,a=!1;const o=al(n,e);t.enrich({"stream-version":o.version.toString()}),c=await nl(n,o,{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:(d,u)=>{var l,h;(h=(l=e.callbacks).onConnectionStateChange)==null||h.call(l,d),ol(d,u,t),d===ae.Connected&&(c?r(c):a=!0)},onVideoStateChange:(d,u)=>{var l,h;(h=(l=e.callbacks).onVideoStateChange)==null||h.call(l,d),cl(d,n,u,t,c.streamType)},onAgentActivityStateChange:d=>{var u,l;(l=(u=e.callbacks).onAgentActivityStateChange)==null||l.call(u,d),d===Ce.Talking?Xi.update():Xi.reset(),ul(d===Ce.Talking?Q.Start:Q.Stop,n,t,c.streamType)},onStreamReady:()=>{const d=Xs.get(!0);t.track("agent-chat",{event:"ready",latency:d})}}},i),a&&r(c)}catch(c){s(c)}})}async function hl(n,e,t,i,r){var u,l,h,f;const s=async()=>{if(Gi(n.presenter.type)){const y=await oa(n,e,i),g=`${il}_${y.sessionId}`,C=new Date().toISOString();return{chatResult:{chatMode:Se.Functional,chat:{id:g,agent_id:n.id,owner_id:n.owner_id??"",created:C,modified:C,agent_id__created_at:C,agent_id__modified_at:C,chat_mode:Se.Functional,messages:[]}},streamingManager:y}}else{const y=new AbortController,g=y.signal;let C;try{const T=ea(n,t,i,e.mode,e.persistentChat,r),_=oa(n,e,i,g).then(b=>(C=b,b)),[M,v]=await Promise.all([T,_]);return{chatResult:M,streamingManager:v}}catch(T){throw y.abort(),C&&await C.disconnect().catch(()=>{}),T}}},{chatResult:c,streamingManager:a}=await s(),{chat:o,chatMode:d}=c;return d&&e.mode!==void 0&&d!==e.mode&&(e.mode=d,(l=(u=e.callbacks).onModeChange)==null||l.call(u,d),d!==Se.Functional)?((f=(h=e.callbacks).onError)==null||f.call(h,new Ls(d)),a==null||a.disconnect(),{chat:o}):{chat:o,streamingManager:a}}async function ml(n,e){var S,L,F,x;let t=!0,i=null;const r=e.mixpanelKey||uu,s=e.wsURL||du,c=e.baseURL||Cn,a=e.mode||Se.Functional,o={messages:[],chatMode:a},d=Eu({token:r,agentId:n,isEnabled:e.enableAnalitics,externalId:e.externalId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties}),u=Date.now();Ys(()=>{d.track("agent-sdk",{event:"init"},u)});const l=yu(e.auth,c,e.callbacks.onError,e.externalId),h=await l.getById(n);e.debug=e.debug||((S=h==null?void 0:h.advanced_settings)==null?void 0:S.ui_debug_mode);const f=Gi(h.presenter.type);d.enrich(ku(h));const{onMessage:y,clearQueue:g}=$u(d,o,e,h,()=>{var k;return(k=o.socketManager)==null?void 0:k.disconnect()});o.messages=_u(e.initialMessages),(F=(L=e.callbacks).onNewMessage)==null||F.call(L,[...o.messages],"answer");const C=k=>{i=k},T=({type:k})=>{var N,H,Y,X;if(!((N=o.streamingManager)!=null&&N.isInterruptible))return;const R=o.messages[o.messages.length-1];d.track("agent-video-interrupt",{type:k||"click",video_duration_to_interrupt:Xi.get(!0),message_duration_to_interrupt:nt.get(!0)}),R.interrupted=!0,(Y=(H=e.callbacks).onNewMessage)==null||Y.call(H,[...o.messages],"answer"),f?qu(o.streamingManager):(ju(o.streamingManager,(X=o.streamingManager)==null?void 0:X.streamType,i),Vu(o.streamingManager,i))},_=Date.now();Ys(()=>{d.track("agent-sdk",{event:"loaded",...bu(h)},_)});async function M(k){var ee,ye,Re,le,fe,Oe,Je;(ye=(ee=e.callbacks).onConnectionStateChange)==null||ye.call(ee,ae.Connecting),nt.reset(),k&&!t&&(delete o.chat,(le=(Re=e.callbacks).onNewMessage)==null||le.call(Re,[...o.messages],"answer"));const R=a===Se.DirectPlayback||f?Promise.resolve(void 0):Hu(e.auth,s,{onMessage:y,onError:e.callbacks.onError},e.externalId),N=zi(()=>hl(h,{...e,mode:a,callbacks:{...e.callbacks,onVideoIdChange:C,onMessage:y,onInterruptDetected:T}},l,d,o.chat),{limit:3,timeout:ou,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:j=>(j==null?void 0:j.message)!=="Could not connect"&&j.status!==429&&(j==null?void 0:j.message)!=="InsufficientCreditsError",delayMs:1e3}).catch(j=>{var B,ie;throw b(Se.Maintenance),(ie=(B=e.callbacks).onConnectionStateChange)==null||ie.call(B,ae.Fail),j}),[H,{streamingManager:Y,chat:X}]=await Promise.all([R,N]);X&&X.id!==((fe=o.chat)==null?void 0:fe.id)&&((Je=(Oe=e.callbacks).onNewChat)==null||Je.call(Oe,X.id)),o.streamingManager=Y,o.socketManager=H,o.chat=X,t=!1,d.enrich({chatId:X==null?void 0:X.id,streamId:Y==null?void 0:Y.streamId,mode:o.chatMode}),b((X==null?void 0:X.chat_mode)??a)}async function v(){var k,R,N,H;(k=o.socketManager)==null||k.disconnect(),await((R=o.streamingManager)==null?void 0:R.disconnect()),delete o.streamingManager,delete o.socketManager,(H=(N=e.callbacks).onConnectionStateChange)==null||H.call(N,ae.Disconnected)}async function b(k){var R,N;k!==o.chatMode&&(d.track("agent-mode-change",{mode:k}),o.chatMode=k,o.chatMode!==Se.Functional&&await v(),(N=(R=e.callbacks).onModeChange)==null||N.call(R,k))}return{agent:h,getStreamType:()=>{var k;return(k=o.streamingManager)==null?void 0:k.streamType},getIsInterruptAvailable:()=>{var k;return((k=o.streamingManager)==null?void 0:k.interruptAvailable)??!1},getIsTriggersAvailable:()=>{var k;return((k=o.streamingManager)==null?void 0:k.triggersAvailable)??!1},starterMessages:((x=h.knowledge)==null?void 0:x.starter_message)||[],getSTTToken:()=>l.getSTTToken(h.id),changeMode:b,enrichAnalytics:d.enrich,async connect(){await M(!0),d.track("agent-chat",{event:"connect",mode:o.chatMode})},async reconnect(){const k=o.streamingManager;if(f&&(k!=null&&k.reconnect)){try{await k.reconnect(),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})}catch{await v(),await M(!1)}return}await v(),await M(!1),d.track("agent-chat",{event:"reconnect",mode:o.chatMode})},async disconnect(){await v(),d.track("agent-chat",{event:"disconnect",mode:o.chatMode})},async publishMicrophoneStream(k){var R;if(!((R=o.streamingManager)!=null&&R.publishMicrophoneStream))throw new Error("publishMicrophoneStream is not available for this streaming manager");return o.streamingManager.publishMicrophoneStream(k)},async unpublishMicrophoneStream(){var k;if(!((k=o.streamingManager)!=null&&k.unpublishMicrophoneStream))throw new Error("unpublishMicrophoneStream is not available for this streaming manager");return o.streamingManager.unpublishMicrophoneStream()},async publishCameraStream(k){var R;if(!((R=o.streamingManager)!=null&&R.publishCameraStream))throw new Error("publishCameraStream is not available for this streaming manager");return o.streamingManager.publishCameraStream(k)},async unpublishCameraStream(){var k;if(!((k=o.streamingManager)!=null&&k.unpublishCameraStream))throw new Error("unpublishCameraStream is not available for this streaming manager");return o.streamingManager.unpublishCameraStream()},async chat(k){var Y,X,ee,ye,Re;const R=()=>{if(zs(a))throw new Vt(`${a} is enabled, chat is disabled`);if(k.length>=800)throw new Vt("Message cannot be more than 800 characters");if(k.length===0)throw new Vt("Message cannot be empty");if(o.chatMode===Se.Maintenance)throw new Vt("Chat is in maintenance mode");if(![Se.TextOnly,Se.Playground].includes(o.chatMode)){if(!o.streamingManager)throw new Vt("Streaming manager is not initialized");if(!o.chat)throw new Vt("Chat is not initialized")}},N=async()=>{var le,fe;if(!o.chat){const Oe=await ea(h,l,d,o.chatMode,e.persistentChat);if(!Oe.chat)throw new jt(o.chatMode,!!e.persistentChat);o.chat=Oe.chat,(fe=(le=e.callbacks).onNewChat)==null||fe.call(le,o.chat.id)}return o.chat.id},H=async(le,fe)=>{const Oe=o.chatMode===Se.Playground;return zi(f&&!Oe?async()=>{var B,ie;return await((ie=(B=o.streamingManager)==null?void 0:B.sendTextMessage)==null?void 0:ie.call(B,k)),Promise.resolve({})}:async()=>{var B,ie;return l.chat(h.id,fe,{chatMode:o.chatMode,streamId:(B=o.streamingManager)==null?void 0:B.streamId,sessionId:(ie=o.streamingManager)==null?void 0:ie.sessionId,messages:le.map(({matches:Le,...Tn})=>Tn)},{...Zs(o.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:B=>{var Tn,Ki,Wi,Hi;const ie=(Tn=B==null?void 0:B.message)==null?void 0:Tn.includes("missing or invalid session_id");return!((Ki=B==null?void 0:B.message)==null?void 0:Ki.includes("Stream Error"))&&!ie?((Hi=(Wi=e.callbacks).onError)==null||Hi.call(Wi,B),!1):!0},onRetry:async()=>{await v(),await M(!1)}})};try{g(),R(),o.messages.push({id:nn(),role:"user",content:k,created_at:new Date(nt.update()).toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"user");const le=await N(),fe=await H([...o.messages],le);return o.messages.push({id:nn(),role:"assistant",content:fe.result||"",created_at:new Date().toISOString(),context:fe.context,matches:fe.matches}),d.track("agent-message-send",{event:"success",messages:o.messages.length+1}),fe.result&&((ye=(ee=e.callbacks).onNewMessage)==null||ye.call(ee,[...o.messages],"answer"),d.track("agent-message-received",{latency:nt.get(!0),messages:o.messages.length})),fe}catch(le){throw((Re=o.messages[o.messages.length-1])==null?void 0:Re.role)==="assistant"&&o.messages.pop(),d.track("agent-message-send",{event:"error",messages:o.messages.length}),le}},rate(k,R,N){var X,ee,ye,Re;const H=o.messages.find(le=>le.id===k);if(o.chat){if(!H)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const Y=((X=H.matches)==null?void 0:X.map(le=>[le.document_id,le.id]))??[];return d.track("agent-rate",{event:N?"update":"create",thumb:R===1?"up":"down",knowledge_id:((ee=h.knowledge)==null?void 0:ee.id)??"",matches:Y,score:R}),N?l.updateRating(h.id,o.chat.id,N,{knowledge_id:((ye=h.knowledge)==null?void 0:ye.id)??"",message_id:k,matches:Y,score:R}):l.createRating(h.id,o.chat.id,{knowledge_id:((Re=h.knowledge)==null?void 0:Re.id)??"",message_id:k,matches:Y,score:R})},deleteRate(k){if(!o.chat)throw new Error("Chat is not initialized");return d.track("agent-rate-delete",{type:"text"}),l.deleteRating(h.id,o.chat.id,k)},async speak(k){var Y,X,ee;function R(){if(typeof k=="string"){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:k,ssml:!1}}if(k.type==="text"&&!k.provider){if(!h.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:h.presenter.voice,input:k.input,ssml:k.ssml}}return k}const N=R();if(d.track("agent-speak",N),nt.update(),o.messages&&N.type==="text"&&(o.messages.push({id:nn(),role:"assistant",content:N.input,created_at:new Date().toISOString()}),(X=(Y=e.callbacks).onNewMessage)==null||X.call(Y,[...o.messages],"answer")),fu(o.chatMode))return{duration:0,video_id:"",status:"success"};if(!o.streamingManager)throw new Error("Please connect to the agent first");return o.streamingManager.speak({script:N,metadata:{chat_id:(ee=o.chat)==null?void 0:ee.id,agent_id:h.id}})},interrupt:T}}function fl(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 pl=Object.defineProperty,gl=(n,e,t)=>e in n?pl(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ca=(n,e,t)=>gl(n,typeof e!="symbol"?e+"":e,t);class Pe{constructor(){ca(this,"_locking"),ca(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 pe(n,e){if(!n)throw new Error(e)}const vl=34028234663852886e22,yl=-34028234663852886e22,bl=4294967295,kl=2147483647,Tl=-2147483648;function Zn(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>kl||n<Tl)throw new Error("invalid int 32: "+n)}function nr(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>bl||n<0)throw new Error("invalid uint 32: "+n)}function da(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>vl||n<yl))throw new Error("invalid float 32: "+n)}const ua=Symbol("@bufbuild/protobuf/enum-type");function Sl(n){const e=n[ua];return pe(e,"missing enum type on enum object"),e}function la(n,e,t,i){n[ua]=ha(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function ha(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const c of e){const a=ma(c);s.push(a),i[c.name]=a,r[c.no]=a}return{typeName:n,values:s,findName(c){return i[c]},findNumber(c){return r[c]}}}function Cl(n,e,t){const i={};for(const r of e){const s=ma(r);i[s.localName]=s.no,i[s.no]=s.localName}return la(i,n,e),i}function ma(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class ir{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 El(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),c={[s]:function(a){n.util.initFields(this),n.util.initPartial(a,this)}}[s];return Object.setPrototypeOf(c.prototype,new ir),Object.assign(c,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(a,o){return new c().fromBinary(a,o)},fromJson(a,o){return new c().fromJson(a,o)},fromJsonString(a,o){return new c().fromJsonString(a,o)},equals(a,o){return n.util.equals(c,a,o)}}),c}function wl(){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 rr(n,e,t){for(let s=0;s<28;s=s+7){const c=n>>>s,a=!(!(c>>>7)&&e==0),o=(a?c|128:c)&255;if(t.push(o),!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 c=e>>>s,a=!!(c>>>7),o=(a?c|128:c)&255;if(t.push(o),!a)return}t.push(e>>>31&1)}}const ei=4294967296;function fa(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(c,a){const o=Number(n.slice(c,a));r*=t,i=i*t+o,i>=ei&&(r=r+(i/ei|0),i=i%ei)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?ga(i,r):sr(i,r)}function _l(n,e){let t=sr(n,e);const i=t.hi&2147483648;i&&(t=ga(t.lo,t.hi));const r=pa(t.lo,t.hi);return i?"-"+r:r}function pa(n,e){if({lo:n,hi:e}=Rl(n,e),e<=2097151)return String(ei*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,c=i+r*8147497,a=r*2;const o=1e7;return s>=o&&(c+=Math.floor(s/o),s%=o),c>=o&&(a+=Math.floor(c/o),c%=o),a.toString()+va(c)+va(s)}function Rl(n,e){return{lo:n>>>0,hi:e>>>0}}function sr(n,e){return{lo:n|0,hi:e|0}}function ga(n,e){return e=~e,n?n=~n+1:e+=1,sr(n,e)}const va=n=>{const e=String(n);return"0000000".slice(e.length)+e};function ya(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 Pl(){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 Il(){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"),c=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error("int64 invalid: ".concat(o));return d},uParse(o){const d=typeof o=="bigint"?o:BigInt(o);if(d>a||d<c)throw new Error("uint64 invalid: ".concat(o));return d},enc(o){return n.setBigInt64(0,this.parse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(o){return n.setBigInt64(0,this.uParse(o),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(o,d){return n.setInt32(0,o,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>pe(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>pe(/^[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),fa(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),fa(r)},dec(r,s){return _l(r,s)},uDec(r,s){return pa(r,s)}}}const ue=Il();var w;(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"})(w||(w={}));var It;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(It||(It={}));function Ot(n,e,t){if(e===t)return!0;if(n==w.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 w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==t}return!1}function rn(n,e){switch(n){case w.BOOL:return!1;case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return e==0?ue.zero:"0";case w.DOUBLE:case w.FLOAT:return 0;case w.BYTES:return new Uint8Array(0);case w.STRING:return"";default:return 0}}function ba(n,e){switch(n){case w.BOOL:return e===!1;case w.STRING:return e==="";case w.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var be;(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"})(be||(be={}));class Ol{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(nr(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Zn(e),ya(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){da(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){nr(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){Zn(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return Zn(e),e=(e<<1^e>>31)>>>0,ya(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=ue.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=ue.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=ue.enc(e);return rr(t.lo,t.hi,this.buf),this}sint64(e){let t=ue.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return rr(r,s,this.buf),this}uint64(e){let t=ue.uEnc(e);return rr(t.lo,t.hi,this.buf),this}}class Ml{constructor(e,t){this.varint64=wl,this.uint32=Pl,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 be.Varint:for(;this.buf[this.pos++]&128;);break;case be.Bit64:this.pos+=4;case be.Bit32:this.pos+=4;break;case be.LengthDelimited:let r=this.uint32();this.pos+=r;break;case be.StartGroup:for(;;){const[s,c]=this.tag();if(c===be.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(c,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 ue.dec(...this.varint64())}uint64(){return ue.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,ue.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 ue.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return ue.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 Dl(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 ka(n){const e=n.field.localName,t=Object.create(null);return t[e]=Al(n),[t,()=>t[e]]}function Al(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 rn(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 xl(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 bt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),ti=[];for(let n=0;n<bt.length;n++)ti[bt[n].charCodeAt(0)]=n;ti[45]=bt.indexOf("+"),ti[95]=bt.indexOf("/");const Ta={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,c=0;for(let a=0;a<n.length;a++){if(s=ti[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:c=s,r=1;break;case 1:t[i++]=c<<2|(s&48)>>4,c=s,r=2;break;case 2:t[i++]=(c&15)<<4|(s&60)>>2,c=s,r=3;break;case 3:t[i++]=(c&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+=bt[i>>2],r=(i&3)<<4,t=1;break;case 1:e+=bt[r|i>>4],r=(i&15)<<2,t=2;break;case 2:e+=bt[r|i>>6],e+=bt[i&63],t=0;break}return t&&(e+=bt[r],e+="=",t==1&&(e+="=")),e}};function Ll(n,e,t){Ca(e,n);const i=e.runtime.bin.makeReadOptions(t),r=xl(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,c]=ka(e);for(const a of r)e.runtime.bin.readField(s,i.readerFactory(a.data),e.field,a.wireType,i);return c()}function Nl(n,e,t,i){Ca(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(Sa(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 c=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,c,s);const o=r.readerFactory(c.finish());for(;o.pos<o.len;){const[d,u]=o.tag(),l=o.skip(u,d);n.getType().runtime.bin.onUnknownField(n,d,u,l)}}function Sa(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 Ca(n,e){pe(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function Ea(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:!ba(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function wa(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?rn(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function kt(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(ir.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 _a(n,e){return kt(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}w.DOUBLE,w.FLOAT,w.INT64,w.UINT64,w.INT32,w.UINT32,w.BOOL,w.STRING,w.BYTES;const Ra={ignoreUnknownFields:!1},Pa={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function Ul(n){return n?Object.assign(Object.assign({},Ra),n):Ra}function Fl(n){return n?Object.assign(Object.assign({},Pa),n):Pa}const ni=Symbol(),ii=Symbol();function Bl(){return{makeReadOptions:Ul,makeWriteOptions:Fl,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(ut(e)));i=i??new n;const r=new Map,s=t.typeRegistry;for(const[c,a]of Object.entries(e)){const o=n.fields.findJsonName(c);if(o){if(o.oneof){if(a===null&&o.kind=="scalar")continue;const d=r.get(o.oneof);if(d!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(o.oneof.name,'" present: "').concat(d,'", "').concat(c,'"'));r.set(o.oneof,c)}Ia(i,a,o,t,n)}else{let d=!1;if(s!=null&&s.findExtension&&c.startsWith("[")&&c.endsWith("]")){const u=s.findExtension(c.substring(1,c.length-1));if(u&&u.extendee.typeName==n.typeName){d=!0;const[l,h]=ka(u);Ia(l,a,u.field,t,u),Nl(i,u,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(c,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!Ea(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!Vl(r))continue}const c=r.oneof?n[r.oneof.localName].value:n[r.localName],a=Oa(r,c,e);a!==void 0&&(i[e.useProtoFieldName?r.name:r.jsonName]=a)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const c of t.runtime.bin.listUnknownFields(n)){const a=s.findExtensionFor(t.typeName,c.no);if(a&&Sa(n,a)){const o=Ll(n,a,e),d=Oa(a.field,o,e);d!==void 0&&(i[a.field.jsonName]=d)}}}catch(s){const c=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(c+(a.length>0?": ".concat(a):""))}return i},readScalar(n,e,t){return wn(n,e,t??It.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||ba(n,e)))return ri(n,e)},debug:ut}}function ut(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 Ia(n,e,t,i,r){let s=t.localName;if(t.repeated){if(pe(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(ut(e)));const c=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(ut(a)));switch(t.kind){case"message":c.push(t.T.fromJson(a,i));break;case"enum":const o=ar(t.T,a,i.ignoreUnknownFields,!0);o!==ii&&c.push(o);break;case"scalar":try{c.push(wn(t.T,a,t.L,!0))}catch(d){let u="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(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(ut(e)));const c=n[s];for(const[a,o]of Object.entries(e)){if(o===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: map value null"));let d;try{d=jl(t.K,a)}catch(u){let l="cannot decode map key for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e));throw u instanceof Error&&u.message.length>0&&(l+=": ".concat(u.message)),new Error(l)}switch(t.V.kind){case"message":c[d]=t.V.T.fromJson(o,i);break;case"enum":const u=ar(t.V.T,o,i.ignoreUnknownFields,!0);u!==ii&&(c[d]=u);break;case"scalar":try{c[d]=wn(t.V.T,o,It.BIGINT,!0)}catch(l){let h="cannot decode map value for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(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 c=t.T;if(e===null&&c.typeName!="google.protobuf.Value")return;let a=n[s];kt(a)?a.fromJson(e,i):(n[s]=a=c.fromJson(e,i),c.fieldWrapper&&!t.oneof&&(n[s]=c.fieldWrapper.unwrapField(a)));break;case"enum":const o=ar(t.T,e,i.ignoreUnknownFields,!1);switch(o){case ni:wa(t,n);break;case ii:break;default:n[s]=o;break}break;case"scalar":try{const d=wn(t.T,e,t.L,!1);switch(d){case ni:wa(t,n);break;default:n[s]=d;break}}catch(d){let u="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(ut(e));throw d instanceof Error&&d.message.length>0&&(u+=": ".concat(d.message)),new Error(u)}break}}function jl(n,e){if(n===w.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return wn(n,e,It.BIGINT,!0).toString()}function wn(n,e,t,i){if(e===null)return i?rn(n,t):ni;switch(n){case w.DOUBLE:case w.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==w.FLOAT&&da(r),r;case w.INT32:case w.FIXED32:case w.SFIXED32:case w.SINT32:case w.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==w.UINT32||n==w.FIXED32?nr(s):Zn(s),s;case w.INT64:case w.SFIXED64:case w.SINT64:if(typeof e!="number"&&typeof e!="string")break;const c=ue.parse(e);return t?c.toString():c;case w.FIXED64:case w.UINT64:if(typeof e!="number"&&typeof e!="string")break;const a=ue.uParse(e);return t?a.toString():a;case w.BOOL:if(typeof e!="boolean")break;return e;case w.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case w.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return Ta.dec(e)}throw new Error}function ar(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:ni;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 ii;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(ut(e)))}function Vl(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function Oa(n,e,t){if(n.kind=="map"){pe(typeof e=="object"&&e!=null);const i={},r=Object.entries(e);switch(n.V.kind){case"scalar":for(const[c,a]of r)i[c.toString()]=ri(n.V.T,a);break;case"message":for(const[c,a]of r)i[c.toString()]=a.toJson(t);break;case"enum":const s=n.V.T;for(const[c,a]of r)i[c.toString()]=or(s,a,t.enumAsInteger);break}return t.emitDefaultValues||r.length>0?i:void 0}if(n.repeated){pe(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let r=0;r<e.length;r++)i.push(ri(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(or(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 ri(n.T,e);case"enum":return or(n.T,e,t.enumAsInteger);case"message":return _a(n.T,e).toJson(t)}}function or(n,e,t){var i;if(pe(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 ri(n,e){switch(n){case w.INT32:case w.SFIXED32:case w.SINT32:case w.FIXED32:case w.UINT32:return pe(typeof e=="number"),e;case w.FLOAT:case w.DOUBLE:return pe(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case w.STRING:return pe(typeof e=="string"),e;case w.BOOL:return pe(typeof e=="boolean"),e;case w.UINT64:case w.FIXED64:case w.INT64:case w.SFIXED64:case w.SINT64:return pe(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case w.BYTES:return pe(e instanceof Uint8Array),Ta.enc(e)}}const sn=Symbol("@bufbuild/protobuf/unknown-fields"),Ma={readUnknownFields:!0,readerFactory:n=>new Ml(n)},Da={writeUnknownFields:!0,writerFactory:()=>new Ol};function ql(n){return n?Object.assign(Object.assign({},Ma),n):Ma}function Kl(n){return n?Object.assign(Object.assign({},Da),n):Da}function Wl(){return{makeReadOptions:ql,makeWriteOptions:Kl,listUnknownFields(n){var e;return(e=n[sn])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[sn]},writeUnknownFields(n,e){const i=n[sn];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[sn])||(r[sn]=[]),r[sn].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),c=r?e.len:e.pos+t;let a,o;for(;e.pos<c&&([a,o]=e.tag(),!(r===!0&&o==be.EndGroup));){const d=s.fields.find(a);if(!d){const u=e.skip(o,a);i.readUnknownFields&&this.onUnknownField(n,a,o,u);continue}Aa(n,e,d,o,i)}if(r&&(o!=be.EndGroup||a!==t))throw new Error("invalid end group tag")},readField:Aa,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!Ea(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];xa(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&xa(n,e,t,i)}}}function Aa(n,e,t,i,r){let{repeated:s,localName:c}=t;switch(t.oneof&&(n=n[t.oneof.localName],n.case!=c&&delete n.value,n.case=c,c="value"),t.kind){case"scalar":case"enum":const a=t.kind=="enum"?w.INT32:t.T;let o=ai;if(t.kind=="scalar"&&t.L>0&&(o=Jl),s){let h=n[c];if(i==be.LengthDelimited&&a!=w.STRING&&a!=w.BYTES){let y=e.uint32()+e.pos;for(;e.pos<y;)h.push(o(e,a))}else h.push(o(e,a))}else n[c]=o(e,a);break;case"message":const d=t.T;s?n[c].push(si(e,new d,r,t)):kt(n[c])?si(e,n[c],r,t):(n[c]=si(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[c]=d.fieldWrapper.unwrapField(n[c])));break;case"map":let[u,l]=Hl(t,e,r);n[c][u]=l;break}}function si(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 Hl(n,e,t){const i=e.uint32(),r=e.pos+i;let s,c;for(;e.pos<r;){const[a]=e.tag();switch(a){case 1:s=ai(e,n.K);break;case 2:switch(n.V.kind){case"scalar":c=ai(e,n.V.T);break;case"enum":c=e.int32();break;case"message":c=si(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=rn(n.K,It.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),c===void 0)switch(n.V.kind){case"scalar":c=rn(n.V.T,It.BIGINT);break;case"enum":c=n.V.T.values[0].no;break;case"message":c=new n.V.T;break}return[s,c]}function Jl(n,e){const t=ai(n,e);return typeof t=="bigint"?t.toString():t}function ai(n,e){switch(e){case w.STRING:return n.string();case w.BOOL:return n.bool();case w.DOUBLE:return n.double();case w.FLOAT:return n.float();case w.INT32:return n.int32();case w.INT64:return n.int64();case w.UINT64:return n.uint64();case w.FIXED64:return n.fixed64();case w.BYTES:return n.bytes();case w.FIXED32:return n.fixed32();case w.SFIXED32:return n.sfixed32();case w.SFIXED64:return n.sfixed64();case w.SINT64:return n.sint64();case w.UINT32:return n.uint32();case w.SINT32:return n.sint32()}}function xa(n,e,t,i){pe(e!==void 0);const r=n.repeated;switch(n.kind){case"scalar":case"enum":let s=n.kind=="enum"?w.INT32:n.T;if(r)if(pe(Array.isArray(e)),n.packed)zl(t,s,n.no,e);else for(const c of e)_n(t,s,n.no,c);else _n(t,s,n.no,e);break;case"message":if(r){pe(Array.isArray(e));for(const c of e)La(t,i,n,c)}else La(t,i,n,e);break;case"map":pe(typeof e=="object"&&e!=null);for(const[c,a]of Object.entries(e))Gl(t,i,n,c,a);break}}function Gl(n,e,t,i,r){n.tag(t.no,be.LengthDelimited),n.fork();let s=i;switch(t.K){case w.INT32:case w.FIXED32:case w.UINT32:case w.SFIXED32:case w.SINT32:s=Number.parseInt(i);break;case w.BOOL:pe(i=="true"||i=="false"),s=i=="true";break}switch(_n(n,t.K,1,s),t.V.kind){case"scalar":_n(n,t.V.T,2,r);break;case"enum":_n(n,w.INT32,2,r);break;case"message":pe(r!==void 0),n.tag(2,be.LengthDelimited).bytes(r.toBinary(e));break}n.join()}function La(n,e,t,i){const r=_a(t.T,i);t.delimited?n.tag(t.no,be.StartGroup).raw(r.toBinary(e)).tag(t.no,be.EndGroup):n.tag(t.no,be.LengthDelimited).bytes(r.toBinary(e))}function _n(n,e,t,i){pe(i!==void 0);let[r,s]=Na(e);n.tag(t,r)[s](i)}function zl(n,e,t,i){if(!i.length)return;n.tag(t,be.LengthDelimited).fork();let[,r]=Na(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function Na(n){let e=be.Varint;switch(n){case w.BYTES:case w.STRING:e=be.LengthDelimited;break;case w.DOUBLE:case w.FIXED64:case w.SFIXED64:e=be.Bit64;break;case w.FIXED32:case w.SFIXED32:case w.FLOAT:e=be.Bit32;break}const t=w[n].toLowerCase();return[e,t]}function $l(){return{setEnumType:la,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,c=n;if(c[r]!=null)switch(i.kind){case"oneof":const a=c[r].case;if(a===void 0)continue;const o=i.findField(a);let d=c[r].value;o&&o.kind=="message"&&!kt(d,o.T)?d=new o.T(d):o&&o.kind==="scalar"&&o.T===w.BYTES&&(d=Rn(d)),s[r]={case:a,value:d};break;case"scalar":case"enum":let u=c[r];i.T===w.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===w.BYTES)for(const[f,y]of Object.entries(c[r]))s[r][f]=Rn(y);else Object.assign(s[r],c[r]);break;case"message":const h=i.V.T;for(const f of Object.keys(c[r])){let y=c[r][f];h.fieldWrapper||(y=new h(y)),s[r][f]=y}break}break;case"message":const l=i.T;if(i.repeated)s[r]=c[r].map(h=>kt(h,l)?h:new l(h));else{const h=c[r];l.fieldWrapper?l.typeName==="google.protobuf.BytesValue"?s[r]=Rn(h):s[r]=h:s[r]=kt(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((c,a)=>i.T.equals(c,s[a]));case"scalar":return r.every((c,a)=>Ot(i.T,c,s[a]));case"enum":return r.every((c,a)=>Ot(w.INT32,c,s[a]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":let c=r,a=s;return i.T.fieldWrapper&&(c!==void 0&&!kt(c)&&(c=i.T.fieldWrapper.wrapField(c)),a!==void 0&&!kt(a)&&(a=i.T.fieldWrapper.wrapField(a))),i.T.equals(c,a);case"enum":return Ot(w.INT32,r,s);case"scalar":return Ot(i.T,r,s);case"oneof":if(r.case!==s.case)return!1;const o=i.findField(r.case);if(o===void 0)return!0;switch(o.kind){case"message":return o.T.equals(r.value,s.value);case"enum":return Ot(w.INT32,r.value,s.value);case"scalar":return Ot(o.T,r.value,s.value)}throw new Error("oneof cannot contain ".concat(o.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=>Ot(w.INT32,r[h],s[h]));case"scalar":const l=i.V.T;return d.every(h=>Ot(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 c;if(r.repeated)c=s.map(oi);else if(r.kind=="map"){c=i[r.localName];for(const[a,o]of Object.entries(s))c[a]=oi(o)}else r.kind=="oneof"?c=r.findField(s.case)?{case:s.case,value:oi(s.value)}:{case:void 0}:c=oi(s);i[r.localName]=c}for(const r of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,r.no,r.wireType,r.data);return t}}}function oi(n){if(n===void 0)return n;if(kt(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 Ql(n,e,t){return{syntax:n,json:Bl(),bin:Wl(),util:Object.assign(Object.assign({},$l()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return El(this,i,r,s)},makeEnum:Cl,makeEnumType:ha,getEnumType:Sl,makeExtension(i,r,s){return Dl(this,i,r,s)}}}class Yl{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 Ua(n,e){const t=Fa(n);return e?t:ih(nh(t))}function Xl(n){return Ua(n,!1)}const Zl=Fa;function Fa(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 eh=new Set(["constructor","toString","toJSON","valueOf"]),th=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),Ba=n=>"".concat(n,"$"),nh=n=>th.has(n)?Ba(n):n,ih=n=>eh.has(n)?Ba(n):n;class rh{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=Xl(e)}addField(e){pe(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 sh(n,e){var t,i,r,s,c,a;const o=[];let d;for(const u of typeof n=="function"?n():n){const l=u;if(l.localName=Ua(u.name,u.oneof!==void 0),l.jsonName=(t=u.jsonName)!==null&&t!==void 0?t:Zl(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:It.BIGINT),l.delimited=(s=u.delimited)!==null&&s!==void 0?s:!1,l.req=(c=u.req)!==null&&c!==void 0?c:!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!=w.BYTES&&u.T!=w.STRING),u.oneof!==void 0){const h=typeof u.oneof=="string"?u.oneof:u.oneof.name;(!d||d.name!=h)&&(d=new rh(h)),l.oneof=d,d.addField(l)}o.push(l)}return o}const p=Ql("proto3",n=>new Yl(n,e=>sh(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]=rn(e.T,e.L);break}}});class Ve extends ir{constructor(e){super(),this.seconds=ue.zero,this.nanos=0,p.util.initPartial(e,this)}fromJson(e,t){if(typeof e!="string")throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(p.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=ue.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 Ve.fromDate(new Date)}static fromDate(e){const t=e.getTime();return new Ve({seconds:ue.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return new Ve().fromBinary(e,t)}static fromJson(e,t){return new Ve().fromJson(e,t)}static fromJsonString(e,t){return new Ve().fromJsonString(e,t)}static equals(e,t){return p.util.equals(Ve,e,t)}}Ve.runtime=p,Ve.typeName="google.protobuf.Timestamp",Ve.fields=p.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const ah=p.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:Ve},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:oh,repeated:!0},{no:5,name:"events",kind:"message",T:dh,repeated:!0}]),oh=p.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:ch,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),ch=p.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:Ve},{no:3,name:"value",kind:"scalar",T:2}]),dh=p.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:Ve},{no:7,name:"normalized_end_timestamp",kind:"message",T:Ve,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),uh=p.makeEnum("livekit.AudioCodec",[{no:0,name:"DEFAULT_AC"},{no:1,name:"OPUS"},{no:2,name:"AAC"},{no:3,name:"AC_MP3"}]),lh=p.makeEnum("livekit.VideoCodec",[{no:0,name:"DEFAULT_VC"},{no:1,name:"H264_BASELINE"},{no:2,name:"H264_MAIN"},{no:3,name:"H264_HIGH"},{no:4,name:"VP8"}]),hh=p.makeEnum("livekit.ImageCodec",[{no:0,name:"IC_DEFAULT"},{no:1,name:"IC_JPEG"}]),ja=p.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),ze=p.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),Te=p.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"}]),cr=p.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),Pn=p.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),In=p.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),$e=p.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"}]),qt=p.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"}]),Va=p.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),Ee=p.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"}]),ci=p.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:di,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:to}]),di=p.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),mh=p.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:p.getEnumType(Te),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}]),Kt=p.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:p.getEnumType(an)},{no:4,name:"tracks",kind:"message",T:cn,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:mh},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:p.getEnumType(on)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:p.getEnumType($e)},{no:18,name:"kind_details",kind:"enum",T:p.getEnumType(fh),repeated:!0},{no:19,name:"data_tracks",kind:"message",T:dr,repeated:!0}]),an=p.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),on=p.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"},{no:7,name:"CONNECTOR"},{no:8,name:"BRIDGE"}]),fh=p.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"},{no:2,name:"CONNECTOR_WHATSAPP"},{no:3,name:"CONNECTOR_TWILIO"},{no:4,name:"BRIDGE_RTSP"}]),ge=p.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),ph=p.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:Mt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(qa)},{no:6,name:"sdp_cid",kind:"scalar",T:9}]),cn=p.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:p.getEnumType(ze)},{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:p.getEnumType(Te)},{no:10,name:"layers",kind:"message",T:Mt,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:ph,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:p.getEnumType(ge)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:to},{no:19,name:"audio_features",kind:"enum",T:p.getEnumType(Ee),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(ja)}]),dr=p.makeMessageType("livekit.DataTrackInfo",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13},{no:2,name:"sid",kind:"scalar",T:9},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"encryption",kind:"enum",T:p.getEnumType(ge)}]),gh=p.makeMessageType("livekit.DataTrackSubscriptionOptions",()=>[{no:1,name:"target_fps",kind:"scalar",T:13,opt:!0}]),Mt=p.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(cr)},{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},{no:8,name:"repair_ssrc",kind:"scalar",T:13}]),qa=p.makeEnum("livekit.VideoLayer.Mode",[{no:0,name:"MODE_UNUSED"},{no:1,name:"ONE_SPATIAL_LAYER_PER_STREAM"},{no:2,name:"MULTIPLE_SPATIAL_LAYERS_PER_STREAM"},{no:3,name:"ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR"}]),Ue=p.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:p.getEnumType(J)},{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:ur,oneof:"value"},{no:3,name:"speaker",kind:"message",T:vh,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:Ja,oneof:"value"},{no:7,name:"transcription",kind:"message",T:yh,oneof:"value"},{no:8,name:"metrics",kind:"message",T:ah,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:ui,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:lr,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:hr,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:mr,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:li,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:hi,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:mi,oneof:"value"},{no:18,name:"encrypted_packet",kind:"message",T:Ka,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),J=p.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),Ka=p.makeMessageType("livekit.EncryptedPacket",()=>[{no:1,name:"encryption_type",kind:"enum",T:p.getEnumType(ge)},{no:2,name:"iv",kind:"scalar",T:12},{no:3,name:"key_index",kind:"scalar",T:13},{no:4,name:"encrypted_value",kind:"scalar",T:12}]),Wa=p.makeMessageType("livekit.EncryptedPacketPayload",()=>[{no:1,name:"user",kind:"message",T:ur,oneof:"value"},{no:3,name:"chat_message",kind:"message",T:ui,oneof:"value"},{no:4,name:"rpc_request",kind:"message",T:lr,oneof:"value"},{no:5,name:"rpc_ack",kind:"message",T:hr,oneof:"value"},{no:6,name:"rpc_response",kind:"message",T:mr,oneof:"value"},{no:7,name:"stream_header",kind:"message",T:li,oneof:"value"},{no:8,name:"stream_chunk",kind:"message",T:hi,oneof:"value"},{no:9,name:"stream_trailer",kind:"message",T:mi,oneof:"value"}]),vh=p.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:Ha,repeated:!0}]),Ha=p.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}]),ur=p.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}]),Ja=p.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),yh=p.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:bh,repeated:!0}]),bh=p.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}]),ui=p.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}]),lr=p.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}]),hr=p.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),mr=p.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:Ga,oneof:"value"}]),Ga=p.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}]),za=p.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),$a=p.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:p.getEnumType(Qa)},{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}]),Qa=p.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),Ya=p.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:p.getEnumType(Xa)},{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}]),Xa=p.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"}]),Za=p.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:eo},{no:2,name:"screen",kind:"message",T:eo},{no:3,name:"resume_connection",kind:"enum",T:p.getEnumType(In)},{no:4,name:"disabled_codecs",kind:"message",T:kh},{no:5,name:"force_relay",kind:"enum",T:p.getEnumType(In)}]),eo=p.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:p.getEnumType(In)}]),kh=p.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:di,repeated:!0},{no:2,name:"publish",kind:"message",T:di,repeated:!0}]),to=p.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),fr=p.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),no=p.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:p.getEnumType(fr)},{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"}),io=p.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),li=p.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:p.getEnumType(ge)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:no,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:io,oneof:"content_header"}],{localName:"DataStream_Header"}),hi=p.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"}),mi=p.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"}),Th=p.makeMessageType("livekit.FilterParams",()=>[{no:1,name:"include_events",kind:"scalar",T:9,repeated:!0},{no:2,name:"exclude_events",kind:"scalar",T:9,repeated:!0}]),Sh=p.makeMessageType("livekit.WebhookConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"signing_key",kind:"scalar",T:9},{no:3,name:"filter_params",kind:"message",T:Th}]),Ch=p.makeMessageType("livekit.SubscribedAudioCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"enabled",kind:"scalar",T:8}]),pr=p.makeMessageType("livekit.RoomAgentDispatch",()=>[{no:1,name:"agent_name",kind:"scalar",T:9},{no:2,name:"metadata",kind:"scalar",T:9}]),it=p.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),gr=p.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),Eh=p.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),wh=p.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:Dt,oneof:"message"},{no:2,name:"answer",kind:"message",T:Dt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:fi,oneof:"message"},{no:4,name:"add_track",kind:"message",T:On,oneof:"message"},{no:5,name:"mute",kind:"message",T:pi,oneof:"message"},{no:6,name:"subscription",kind:"message",T:gi,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:co,oneof:"message"},{no:8,name:"leave",kind:"message",T:vi,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:lo,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:fo,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:Sr,oneof:"message"},{no:13,name:"simulate",kind:"message",T:lt,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:kr,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:vo,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:br,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:uo,oneof:"message"},{no:19,name:"publish_data_track_request",kind:"message",T:so,oneof:"message"},{no:20,name:"unpublish_data_track_request",kind:"message",T:oo,oneof:"message"},{no:21,name:"update_data_subscription",kind:"message",T:Ah,oneof:"message"}]),ro=p.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:Ih,oneof:"message"},{no:2,name:"answer",kind:"message",T:Dt,oneof:"message"},{no:3,name:"offer",kind:"message",T:Dt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:fi,oneof:"message"},{no:5,name:"update",kind:"message",T:Dh,oneof:"message"},{no:6,name:"track_published",kind:"message",T:yr,oneof:"message"},{no:8,name:"leave",kind:"message",T:vi,oneof:"message"},{no:9,name:"mute",kind:"message",T:pi,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:Lh,oneof:"message"},{no:11,name:"room_update",kind:"message",T:Nh,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:Fh,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:jh,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:qh,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:Wh,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:Mh,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:Oh,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Jh,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:$h,oneof:"message"},{no:22,name:"request_response",kind:"message",T:Qh,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Yh,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:Hh,oneof:"message"},{no:25,name:"media_sections_requirement",kind:"message",T:tm,oneof:"message"},{no:26,name:"subscribed_audio_codec_update",kind:"message",T:Kh,oneof:"message"},{no:27,name:"publish_data_track_response",kind:"message",T:ao,oneof:"message"},{no:28,name:"unpublish_data_track_response",kind:"message",T:_h,oneof:"message"},{no:29,name:"data_track_subscriber_handles",kind:"message",T:Rh,oneof:"message"}]),vr=p.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:Mt,repeated:!0},{no:5,name:"video_layer_mode",kind:"enum",T:p.getEnumType(qa)}]),On=p.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:p.getEnumType(ze)},{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:p.getEnumType(Te)},{no:9,name:"layers",kind:"message",T:Mt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:vr,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:p.getEnumType(ge)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:p.getEnumType(ja)},{no:17,name:"audio_features",kind:"enum",T:p.getEnumType(Ee),repeated:!0}]),so=p.makeMessageType("livekit.PublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"encryption",kind:"enum",T:p.getEnumType(ge)}]),ao=p.makeMessageType("livekit.PublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:dr}]),oo=p.makeMessageType("livekit.UnpublishDataTrackRequest",()=>[{no:1,name:"pub_handle",kind:"scalar",T:13}]),_h=p.makeMessageType("livekit.UnpublishDataTrackResponse",()=>[{no:1,name:"info",kind:"message",T:dr}]),Rh=p.makeMessageType("livekit.DataTrackSubscriberHandles",()=>[{no:1,name:"sub_handles",kind:"map",K:13,V:{kind:"message",T:Ph}}]),Ph=p.makeMessageType("livekit.DataTrackSubscriberHandles.PublishedDataTrack",()=>[{no:1,name:"publisher_identity",kind:"scalar",T:9},{no:2,name:"publisher_sid",kind:"scalar",T:9},{no:3,name:"track_sid",kind:"scalar",T:9}],{localName:"DataTrackSubscriberHandles_PublishedDataTrack"}),fi=p.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:p.getEnumType(it)},{no:3,name:"final",kind:"scalar",T:8}]),pi=p.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),Ih=p.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:ci},{no:2,name:"participant",kind:"message",T:Kt},{no:3,name:"other_participants",kind:"message",T:Kt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:ho,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:Za},{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:$a},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:di,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),Oh=p.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:ho,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Za},{no:3,name:"server_info",kind:"message",T:$a},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),yr=p.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:cn}]),Mh=p.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Dt=p.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},{no:4,name:"mid_to_track_id",kind:"map",K:9,V:{kind:"scalar",T:9}}]),Dh=p.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:Kt,repeated:!0}]),gi=p.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:za,repeated:!0}]),Ah=p.makeMessageType("livekit.UpdateDataSubscription",()=>[{no:1,name:"updates",kind:"message",T:xh,repeated:!0}]),xh=p.makeMessageType("livekit.UpdateDataSubscription.Update",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"options",kind:"message",T:gh}],{localName:"UpdateDataSubscription_Update"}),co=p.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:p.getEnumType(cr)},{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}]),br=p.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:p.getEnumType(Ee),repeated:!0}]),uo=p.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}]),vi=p.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:p.getEnumType($e)},{no:3,name:"action",kind:"enum",T:p.getEnumType(dn)},{no:4,name:"regions",kind:"message",T:Gh}]),dn=p.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),lo=p.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:Mt,repeated:!0}]),kr=p.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}]),ho=p.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}]),Lh=p.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:Ha,repeated:!0}]),Nh=p.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:ci}]),Uh=p.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:p.getEnumType(Pn)},{no:3,name:"score",kind:"scalar",T:2}]),Fh=p.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:Uh,repeated:!0}]),Bh=p.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:p.getEnumType(gr)}]),jh=p.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:Bh,repeated:!0}]),Tr=p.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:p.getEnumType(cr)},{no:2,name:"enabled",kind:"scalar",T:8}]),Vh=p.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:Tr,repeated:!0}]),qh=p.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:Tr,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:Vh,repeated:!0}]),Kh=p.makeMessageType("livekit.SubscribedAudioCodecUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_audio_codecs",kind:"message",T:Ch,repeated:!0}]),mo=p.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}]),fo=p.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:mo,repeated:!0}]),Wh=p.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}]),Hh=p.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:ci},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:Kt},{no:4,name:"other_participants",kind:"message",T:Kt,repeated:!0}]),Sr=p.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:Dt},{no:2,name:"subscription",kind:"message",T:gi},{no:3,name:"publish_tracks",kind:"message",T:yr,repeated:!0},{no:4,name:"data_channels",kind:"message",T:go,repeated:!0},{no:5,name:"offer",kind:"message",T:Dt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:po,repeated:!0},{no:8,name:"publish_data_tracks",kind:"message",T:ao,repeated:!0}]),po=p.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),go=p.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:p.getEnumType(it)}]),lt=p.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:p.getEnumType(Eh),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"}]),vo=p.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Jh=p.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),Gh=p.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:zh,repeated:!0}]),zh=p.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}]),$h=p.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:p.getEnumType(Va)}]),Qh=p.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:p.getEnumType(Cr)},{no:3,name:"message",kind:"scalar",T:9},{no:4,name:"trickle",kind:"message",T:fi,oneof:"request"},{no:5,name:"add_track",kind:"message",T:On,oneof:"request"},{no:6,name:"mute",kind:"message",T:pi,oneof:"request"},{no:7,name:"update_metadata",kind:"message",T:kr,oneof:"request"},{no:8,name:"update_audio_track",kind:"message",T:br,oneof:"request"},{no:9,name:"update_video_track",kind:"message",T:uo,oneof:"request"},{no:10,name:"publish_data_track",kind:"message",T:so,oneof:"request"},{no:11,name:"unpublish_data_track",kind:"message",T:oo,oneof:"request"}]),Cr=p.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"},{no:4,name:"QUEUED"},{no:5,name:"UNSUPPORTED_TYPE"},{no:6,name:"UNCLASSIFIED_ERROR"},{no:7,name:"INVALID_HANDLE"},{no:8,name:"INVALID_NAME"},{no:9,name:"DUPLICATE_HANDLE"},{no:10,name:"DUPLICATE_NAME"}]),Yh=p.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),yo=p.makeMessageType("livekit.ConnectionSettings",()=>[{no:1,name:"auto_subscribe",kind:"scalar",T:8},{no:2,name:"adaptive_stream",kind:"scalar",T:8},{no:3,name:"subscriber_allow_pause",kind:"scalar",T:8,opt:!0},{no:4,name:"disable_ice_lite",kind:"scalar",T:8},{no:5,name:"auto_subscribe_data_track",kind:"scalar",T:8,opt:!0}]),Xh=p.makeMessageType("livekit.JoinRequest",()=>[{no:1,name:"client_info",kind:"message",T:Ya},{no:2,name:"connection_settings",kind:"message",T:yo},{no:3,name:"metadata",kind:"scalar",T:9},{no:4,name:"participant_attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:5,name:"add_track_requests",kind:"message",T:On,repeated:!0},{no:6,name:"publisher_offer",kind:"message",T:Dt},{no:7,name:"reconnect",kind:"scalar",T:8},{no:8,name:"reconnect_reason",kind:"enum",T:p.getEnumType(qt)},{no:9,name:"participant_sid",kind:"scalar",T:9},{no:10,name:"sync_state",kind:"message",T:Sr}]),Zh=p.makeMessageType("livekit.WrappedJoinRequest",()=>[{no:1,name:"compression",kind:"enum",T:p.getEnumType(em)},{no:2,name:"join_request",kind:"scalar",T:12}]),em=p.makeEnum("livekit.WrappedJoinRequest.Compression",[{no:0,name:"NONE"},{no:1,name:"GZIP"}]),tm=p.makeMessageType("livekit.MediaSectionsRequirement",()=>[{no:1,name:"num_audios",kind:"scalar",T:13},{no:2,name:"num_videos",kind:"scalar",T:13}]),nm=p.makeEnum("livekit.EncodedFileType",[{no:0,name:"DEFAULT_FILETYPE"},{no:1,name:"MP4"},{no:2,name:"OGG"},{no:3,name:"MP3"}]),im=p.makeEnum("livekit.SegmentedFileProtocol",[{no:0,name:"DEFAULT_SEGMENTED_FILE_PROTOCOL"},{no:1,name:"HLS_PROTOCOL"}]),rm=p.makeEnum("livekit.SegmentedFileSuffix",[{no:0,name:"INDEX"},{no:1,name:"TIMESTAMP"}]),sm=p.makeEnum("livekit.ImageFileSuffix",[{no:0,name:"IMAGE_SUFFIX_INDEX"},{no:1,name:"IMAGE_SUFFIX_TIMESTAMP"},{no:2,name:"IMAGE_SUFFIX_NONE_OVERWRITE"}]),am=p.makeEnum("livekit.StreamProtocol",[{no:0,name:"DEFAULT_PROTOCOL"},{no:1,name:"RTMP"},{no:2,name:"SRT"}]),om=p.makeEnum("livekit.AudioMixing",[{no:0,name:"DEFAULT_MIXING"},{no:1,name:"DUAL_CHANNEL_AGENT"},{no:2,name:"DUAL_CHANNEL_ALTERNATE"}]),bo=p.makeEnum("livekit.EncodingOptionsPreset",[{no:0,name:"H264_720P_30"},{no:1,name:"H264_720P_60"},{no:2,name:"H264_1080P_30"},{no:3,name:"H264_1080P_60"},{no:4,name:"PORTRAIT_H264_720P_30"},{no:5,name:"PORTRAIT_H264_720P_60"},{no:6,name:"PORTRAIT_H264_1080P_30"},{no:7,name:"PORTRAIT_H264_1080P_60"}]),cm=p.makeMessageType("livekit.RoomCompositeEgressRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9},{no:2,name:"layout",kind:"scalar",T:9},{no:3,name:"audio_only",kind:"scalar",T:8},{no:15,name:"audio_mixing",kind:"enum",T:p.getEnumType(om)},{no:4,name:"video_only",kind:"scalar",T:8},{no:5,name:"custom_base_url",kind:"scalar",T:9},{no:6,name:"file",kind:"message",T:Er,oneof:"output"},{no:7,name:"stream",kind:"message",T:To,oneof:"output"},{no:10,name:"segments",kind:"message",T:wr,oneof:"output"},{no:8,name:"preset",kind:"enum",T:p.getEnumType(bo),oneof:"options"},{no:9,name:"advanced",kind:"message",T:So,oneof:"options"},{no:11,name:"file_outputs",kind:"message",T:Er,repeated:!0},{no:12,name:"stream_outputs",kind:"message",T:To,repeated:!0},{no:13,name:"segment_outputs",kind:"message",T:wr,repeated:!0},{no:14,name:"image_outputs",kind:"message",T:dm,repeated:!0},{no:16,name:"webhooks",kind:"message",T:Sh,repeated:!0}]),Er=p.makeMessageType("livekit.EncodedFileOutput",()=>[{no:1,name:"file_type",kind:"enum",T:p.getEnumType(nm)},{no:2,name:"filepath",kind:"scalar",T:9},{no:6,name:"disable_manifest",kind:"scalar",T:8},{no:3,name:"s3",kind:"message",T:yi,oneof:"output"},{no:4,name:"gcp",kind:"message",T:bi,oneof:"output"},{no:5,name:"azure",kind:"message",T:ki,oneof:"output"},{no:7,name:"aliOSS",kind:"message",T:Ti,oneof:"output"}]),wr=p.makeMessageType("livekit.SegmentedFileOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(im)},{no:2,name:"filename_prefix",kind:"scalar",T:9},{no:3,name:"playlist_name",kind:"scalar",T:9},{no:11,name:"live_playlist_name",kind:"scalar",T:9},{no:4,name:"segment_duration",kind:"scalar",T:13},{no:10,name:"filename_suffix",kind:"enum",T:p.getEnumType(rm)},{no:8,name:"disable_manifest",kind:"scalar",T:8},{no:5,name:"s3",kind:"message",T:yi,oneof:"output"},{no:6,name:"gcp",kind:"message",T:bi,oneof:"output"},{no:7,name:"azure",kind:"message",T:ki,oneof:"output"},{no:9,name:"aliOSS",kind:"message",T:Ti,oneof:"output"}]),dm=p.makeMessageType("livekit.ImageOutput",()=>[{no:1,name:"capture_interval",kind:"scalar",T:13},{no:2,name:"width",kind:"scalar",T:5},{no:3,name:"height",kind:"scalar",T:5},{no:4,name:"filename_prefix",kind:"scalar",T:9},{no:5,name:"filename_suffix",kind:"enum",T:p.getEnumType(sm)},{no:6,name:"image_codec",kind:"enum",T:p.getEnumType(hh)},{no:7,name:"disable_manifest",kind:"scalar",T:8},{no:8,name:"s3",kind:"message",T:yi,oneof:"output"},{no:9,name:"gcp",kind:"message",T:bi,oneof:"output"},{no:10,name:"azure",kind:"message",T:ki,oneof:"output"},{no:11,name:"aliOSS",kind:"message",T:Ti,oneof:"output"}]),yi=p.makeMessageType("livekit.S3Upload",()=>[{no:1,name:"access_key",kind:"scalar",T:9},{no:2,name:"secret",kind:"scalar",T:9},{no:11,name:"session_token",kind:"scalar",T:9},{no:12,name:"assume_role_arn",kind:"scalar",T:9},{no:13,name:"assume_role_external_id",kind:"scalar",T:9},{no:3,name:"region",kind:"scalar",T:9},{no:4,name:"endpoint",kind:"scalar",T:9},{no:5,name:"bucket",kind:"scalar",T:9},{no:6,name:"force_path_style",kind:"scalar",T:8},{no:7,name:"metadata",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:8,name:"tagging",kind:"scalar",T:9},{no:9,name:"content_disposition",kind:"scalar",T:9},{no:10,name:"proxy",kind:"message",T:ko}]),bi=p.makeMessageType("livekit.GCPUpload",()=>[{no:1,name:"credentials",kind:"scalar",T:9},{no:2,name:"bucket",kind:"scalar",T:9},{no:3,name:"proxy",kind:"message",T:ko}]),ki=p.makeMessageType("livekit.AzureBlobUpload",()=>[{no:1,name:"account_name",kind:"scalar",T:9},{no:2,name:"account_key",kind:"scalar",T:9},{no:3,name:"container_name",kind:"scalar",T:9}]),Ti=p.makeMessageType("livekit.AliOSSUpload",()=>[{no:1,name:"access_key",kind:"scalar",T:9},{no:2,name:"secret",kind:"scalar",T:9},{no:3,name:"region",kind:"scalar",T:9},{no:4,name:"endpoint",kind:"scalar",T:9},{no:5,name:"bucket",kind:"scalar",T:9}]),ko=p.makeMessageType("livekit.ProxyConfig",()=>[{no:1,name:"url",kind:"scalar",T:9},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"password",kind:"scalar",T:9}]),To=p.makeMessageType("livekit.StreamOutput",()=>[{no:1,name:"protocol",kind:"enum",T:p.getEnumType(am)},{no:2,name:"urls",kind:"scalar",T:9,repeated:!0}]),So=p.makeMessageType("livekit.EncodingOptions",()=>[{no:1,name:"width",kind:"scalar",T:5},{no:2,name:"height",kind:"scalar",T:5},{no:3,name:"depth",kind:"scalar",T:5},{no:4,name:"framerate",kind:"scalar",T:5},{no:5,name:"audio_codec",kind:"enum",T:p.getEnumType(uh)},{no:6,name:"audio_bitrate",kind:"scalar",T:5},{no:11,name:"audio_quality",kind:"scalar",T:5},{no:7,name:"audio_frequency",kind:"scalar",T:5},{no:8,name:"video_codec",kind:"enum",T:p.getEnumType(lh)},{no:9,name:"video_bitrate",kind:"scalar",T:5},{no:12,name:"video_quality",kind:"scalar",T:5},{no:10,name:"key_frame_interval",kind:"scalar",T:1}]),um=p.makeMessageType("livekit.AutoParticipantEgress",()=>[{no:1,name:"preset",kind:"enum",T:p.getEnumType(bo),oneof:"options"},{no:2,name:"advanced",kind:"message",T:So,oneof:"options"},{no:3,name:"file_outputs",kind:"message",T:Er,repeated:!0},{no:4,name:"segment_outputs",kind:"message",T:wr,repeated:!0}]),lm=p.makeMessageType("livekit.AutoTrackEgress",()=>[{no:1,name:"filepath",kind:"scalar",T:9},{no:5,name:"disable_manifest",kind:"scalar",T:8},{no:2,name:"s3",kind:"message",T:yi,oneof:"output"},{no:3,name:"gcp",kind:"message",T:bi,oneof:"output"},{no:4,name:"azure",kind:"message",T:ki,oneof:"output"},{no:6,name:"aliOSS",kind:"message",T:Ti,oneof:"output"}]),hm=p.makeMessageType("livekit.RoomEgress",()=>[{no:1,name:"room",kind:"message",T:cm},{no:3,name:"participant",kind:"message",T:um},{no:2,name:"tracks",kind:"message",T:lm}]),Si=p.makeMessageType("livekit.RoomConfiguration",()=>[{no:1,name:"name",kind:"scalar",T:9},{no:2,name:"empty_timeout",kind:"scalar",T:13},{no:3,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:11,name:"metadata",kind:"scalar",T:9},{no:5,name:"egress",kind:"message",T:hm},{no:7,name:"min_playout_delay",kind:"scalar",T:13},{no:8,name:"max_playout_delay",kind:"scalar",T:13},{no:9,name:"sync_streams",kind:"scalar",T:8},{no:10,name:"agents",kind:"message",T:pr,repeated:!0}]),mm=p.makeMessageType("livekit.TokenSourceRequest",()=>[{no:1,name:"room_name",kind:"scalar",T:9,opt:!0},{no:2,name:"participant_name",kind:"scalar",T:9,opt:!0},{no:3,name:"participant_identity",kind:"scalar",T:9,opt:!0},{no:4,name:"participant_metadata",kind:"scalar",T:9,opt:!0},{no:5,name:"participant_attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:6,name:"room_config",kind:"message",T:Si,opt:!0}]),Co=p.makeMessageType("livekit.TokenSourceResponse",()=>[{no:1,name:"server_url",kind:"scalar",T:9},{no:2,name:"participant_token",kind:"scalar",T:9}]);function fm(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ci={exports:{}},pm=Ci.exports,Eo;function gm(){return Eo||(Eo=1,function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(pm,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={},c=null;function a(g,C){var T=g[C];if(typeof T.bind=="function")return T.bind(g);try{return Function.prototype.bind.call(T,g)}catch{return function(){return Function.prototype.apply.apply(T,[g,arguments])}}}function o(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function d(g){return g==="debug"&&(g="log"),typeof console===t?!1:g==="trace"&&i?o:console[g]!==void 0?a(console,g):console.log!==void 0?a(console,"log"):e}function u(){for(var g=this.getLevel(),C=0;C<r.length;C++){var T=r[C];this[T]=C<g?e:this.methodFactory(T,g,this.name)}if(this.log=this.debug,typeof console===t&&g<this.levels.SILENT)return"No console available for logging"}function l(g){return function(){typeof console!==t&&(u.call(this),this[g].apply(this,arguments))}}function h(g,C,T){return d(g)||l.apply(this,arguments)}function f(g,C){var T=this,_,M,v,b="loglevel";typeof g=="string"?b+=":"+g:typeof g=="symbol"&&(b=void 0);function S(R){var N=(r[R]||"silent").toUpperCase();if(!(typeof window===t||!b)){try{window.localStorage[b]=N;return}catch{}try{window.document.cookie=encodeURIComponent(b)+"="+N+";"}catch{}}}function L(){var R;if(!(typeof window===t||!b)){try{R=window.localStorage[b]}catch{}if(typeof R===t)try{var N=window.document.cookie,H=encodeURIComponent(b),Y=N.indexOf(H+"=");Y!==-1&&(R=/^([^;]+)/.exec(N.slice(Y+H.length+1))[1])}catch{}return T.levels[R]===void 0&&(R=void 0),R}}function F(){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 x(R){var N=R;if(typeof N=="string"&&T.levels[N.toUpperCase()]!==void 0&&(N=T.levels[N.toUpperCase()]),typeof N=="number"&&N>=0&&N<=T.levels.SILENT)return N;throw new TypeError("log.setLevel() called with invalid level: "+R)}T.name=g,T.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},T.methodFactory=C||h,T.getLevel=function(){return v??M??_},T.setLevel=function(R,N){return v=x(R),N!==!1&&S(v),u.call(T)},T.setDefaultLevel=function(R){M=x(R),L()||T.setLevel(R,!1)},T.resetLevel=function(){v=null,F(),u.call(T)},T.enableAll=function(R){T.setLevel(T.levels.TRACE,R)},T.disableAll=function(R){T.setLevel(T.levels.SILENT,R)},T.rebuild=function(){if(c!==T&&(_=x(c.getLevel())),u.call(T),c===T)for(var R in s)s[R].rebuild()},_=x(c?c.getLevel():"WARN");var k=L();k!=null&&(v=x(k)),u.call(T)}c=new f,c.getLogger=function(C){if(typeof C!="symbol"&&typeof C!="string"||C==="")throw new TypeError("You must supply a name when creating a logger.");var T=s[C];return T||(T=s[C]=new f(C,c.methodFactory)),T};var y=typeof window!==t?window.log:void 0;return c.noConflict=function(){return typeof window!==t&&window.log===c&&(window.log=y),c},c.getLoggers=function(){return s},c.default=c,c})}(Ci)),Ci.exports}var Mn=gm(),un;(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"})(un||(un={}));var We;(function(n){n.Default="livekit",n.Room="livekit-room",n.TokenSource="livekit-token-source",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",n.DataTracks="livekit-data-tracks"})(We||(We={}));let W=Mn.getLogger("livekit");const wo=Object.values(We).map(n=>Mn.getLogger(n));W.setDefaultLevel(un.info);function rt(n){const e=Mn.getLogger(n);return e.setDefaultLevel(W.getLevel()),e}function vm(n,e){if(e)Mn.getLogger(e).setLevel(n);else for(const t of wo)t.setLevel(n)}function ym(n,e){(e?[e]:wo).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,c,a)=>{const o=r(s,c,a),d=un[s],u=d>=c&&d<un.silent;return(l,h)=>{h?o(l,h):o(l),u&&n(d,l,h)}},i.setLevel(i.getLevel())})}const bm=Mn.getLogger("lk-e2ee"),Dn=7e3,km=[0,300,2*2*300,3*3*300,4*4*300,Dn,Dn,Dn,Dn,Dn];class _o{constructor(e){this._retryDelays=e!==void 0?[...e]:km}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 _r(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 m(n,e,t,i){function r(s){return s instanceof t?s:new t(function(c){c(s)})}return new(t||(t=Promise))(function(s,c){function a(u){try{d(i.next(u))}catch(l){c(l)}}function o(u){try{d(i.throw(u))}catch(l){c(l)}}function d(u){u.done?s(u.value):r(u.value).then(a,o)}d((i=i.apply(n,e||[])).next())})}function Ro(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 Tt(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 Ro=="function"?Ro(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(c){return new Promise(function(a,o){c=n[s](c),r(a,o,c.done,c.value)})}}function r(s,c,a,o){Promise.resolve(o).then(function(d){s({value:d,done:a})},c)}}typeof SuppressedError=="function"&&SuppressedError;var Ei={exports:{}},Po;function Tm(){if(Po)return Ei.exports;Po=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(b,S,L){return Function.prototype.apply.call(b,S,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)}Ei.exports=s,Ei.exports.once=T,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=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 c},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+".");c=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 o(v){return v._maxListeners===void 0?s.defaultMaxListeners:v._maxListeners}s.prototype.getMaxListeners=function(){return o(this)},s.prototype.emit=function(b){for(var S=[],L=1;L<arguments.length;L++)S.push(arguments[L]);var F=b==="error",x=this._events;if(x!==void 0)F=F&&x.error===void 0;else if(!F)return!1;if(F){var k;if(S.length>0&&(k=S[0]),k instanceof Error)throw k;var R=new Error("Unhandled error."+(k?" ("+k.message+")":""));throw R.context=k,R}var N=x[b];if(N===void 0)return!1;if(typeof N=="function")e(N,this,S);else for(var H=N.length,Y=y(N,H),L=0;L<H;++L)e(Y[L],this,S);return!0};function d(v,b,S,L){var F,x,k;if(a(S),x=v._events,x===void 0?(x=v._events=Object.create(null),v._eventsCount=0):(x.newListener!==void 0&&(v.emit("newListener",b,S.listener?S.listener:S),x=v._events),k=x[b]),k===void 0)k=x[b]=S,++v._eventsCount;else if(typeof k=="function"?k=x[b]=L?[S,k]:[k,S]:L?k.unshift(S):k.push(S),F=o(v),F>0&&k.length>F&&!k.warned){k.warned=!0;var R=new Error("Possible EventEmitter memory leak detected. "+k.length+" "+String(b)+" listeners added. Use emitter.setMaxListeners() to increase limit");R.name="MaxListenersExceededWarning",R.emitter=v,R.type=b,R.count=k.length,i(R)}return v}s.prototype.addListener=function(b,S){return d(this,b,S,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(b,S){return d(this,b,S,!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,S){var L={fired:!1,wrapFn:void 0,target:v,type:b,listener:S},F=u.bind(L);return F.listener=S,L.wrapFn=F,F}s.prototype.once=function(b,S){return a(S),this.on(b,l(this,b,S)),this},s.prototype.prependOnceListener=function(b,S){return a(S),this.prependListener(b,l(this,b,S)),this},s.prototype.removeListener=function(b,S){var L,F,x,k,R;if(a(S),F=this._events,F===void 0)return this;if(L=F[b],L===void 0)return this;if(L===S||L.listener===S)--this._eventsCount===0?this._events=Object.create(null):(delete F[b],F.removeListener&&this.emit("removeListener",b,L.listener||S));else if(typeof L!="function"){for(x=-1,k=L.length-1;k>=0;k--)if(L[k]===S||L[k].listener===S){R=L[k].listener,x=k;break}if(x<0)return this;x===0?L.shift():g(L,x),L.length===1&&(F[b]=L[0]),F.removeListener!==void 0&&this.emit("removeListener",b,R||S)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(b){var S,L,F;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 x=Object.keys(L),k;for(F=0;F<x.length;++F)k=x[F],k!=="removeListener"&&this.removeAllListeners(k);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(S=L[b],typeof S=="function")this.removeListener(b,S);else if(S!==void 0)for(F=S.length-1;F>=0;F--)this.removeListener(b,S[F]);return this};function h(v,b,S){var L=v._events;if(L===void 0)return[];var F=L[b];return F===void 0?[]:typeof F=="function"?S?[F.listener||F]:[F]:S?C(F):y(F,F.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):f.call(v,b)},s.prototype.listenerCount=f;function f(v){var b=this._events;if(b!==void 0){var S=b[v];if(typeof S=="function")return 1;if(S!==void 0)return S.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function y(v,b){for(var S=new Array(b),L=0;L<b;++L)S[L]=v[L];return S}function g(v,b){for(;b+1<v.length;b++)v[b]=v[b+1];v.pop()}function C(v){for(var b=new Array(v.length),S=0;S<b.length;++S)b[S]=v[S].listener||v[S];return b}function T(v,b){return new Promise(function(S,L){function F(k){v.removeListener(b,x),L(k)}function x(){typeof v.removeListener=="function"&&v.removeListener("error",F),S([].slice.call(arguments))}M(v,b,x,{once:!0}),b!=="error"&&_(v,F,{once:!0})})}function _(v,b,S){typeof v.on=="function"&&M(v,"error",b,S)}function M(v,b,S,L){if(typeof v.on=="function")L.once?v.once(b,S):v.on(b,S);else if(typeof v.addEventListener=="function")v.addEventListener(b,function F(x){L.once&&v.removeEventListener(b,F),S(x)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof v)}return Ei.exports}var ht=Tm();let Io=!0,Oo=!0;function An(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function Wt(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(c,a){if(c!==e)return r.apply(this,arguments);const o=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,o),r.apply(this,[c,o])};const s=i.removeEventListener;i.removeEventListener=function(c,a){if(c!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(a))return s.apply(this,arguments);const o=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,[c,o])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(c){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),c&&this.addEventListener(e,this["_on"+e]=c)},enumerable:!0,configurable:!0})}function Sm(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Io=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function Cm(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Oo=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function Mo(){if(typeof window=="object"){if(Io)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Rr(n,e){Oo&&console.warn(n+" is deprecated, please use "+e+" instead.")}function Em(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(An(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt(An(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt(An(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=An(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function Do(n){return Object.prototype.toString.call(n)==="[object Object]"}function Ao(n){return Do(n)?Object.keys(n).reduce(function(e,t){const i=Do(n[t]),r=i?Ao(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function Pr(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?Pr(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{Pr(n,n.get(r),t)})}))}function xo(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",r=new Map;if(e===null)return r;const s=[];return n.forEach(c=>{c.type==="track"&&c.trackIdentifier===e.id&&s.push(c)}),s.forEach(c=>{n.forEach(a=>{a.type===i&&a.trackId===c.id&&Pr(n,a,r)})}),r}const Lo=Mo;function No(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 o={};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,f){return h?h+f.charAt(0).toUpperCase()+f.slice(1):f==="deviceId"?"sourceId":f};if(u.ideal!==void 0){o.optional=o.optional||[];let h={};typeof u.ideal=="number"?(h[l("min",d)]=u.ideal,o.optional.push(h),h={},h[l("max",d)]=u.ideal,o.optional.push(h)):(h[l("",d)]=u.ideal,o.optional.push(h))}u.exact!==void 0&&typeof u.exact!="number"?(o.mandatory=o.mandatory||{},o.mandatory[l("",d)]=u.exact):["min","max"].forEach(h=>{u[h]!==void 0&&(o.mandatory=o.mandatory||{},o.mandatory[l(h,d)]=u[h])})}),a.advanced&&(o.optional=(o.optional||[]).concat(a.advanced)),o},r=function(a,o){if(e.version>=61)return o(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(y=>y.kind==="videoinput");let f=h.find(y=>l.some(g=>y.label.toLowerCase().includes(g)));return!f&&h.length&&l.includes("back")&&(f=h[h.length-1]),f&&(a.video.deviceId=d.exact?{exact:f.deviceId}:{ideal:f.deviceId}),a.video=i(a.video),Lo("chrome: "+JSON.stringify(a)),o(a)})}a.video=i(a.video)}return Lo("chrome: "+JSON.stringify(a)),o(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}}},c=function(a,o,d){r(a,u=>{t.webkitGetUserMedia(u,o,l=>{d&&d(s(l))})})};if(t.getUserMedia=c.bind(t),t.mediaDevices.getUserMedia){const a=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(o){return r(o,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 Uo(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function Fo(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 c=new Event("track");c.track=r.track,c.receiver=s,c.transceiver={receiver:s},c.streams=[i.stream],this.dispatchEvent(c)}),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 c=new Event("track");c.track=r,c.receiver=s,c.transceiver={receiver:s},c.streams=[i.stream],this.dispatchEvent(c)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else Wt(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function Bo(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,o){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 o=this._senders.indexOf(a);o!==-1&&this._senders.splice(o,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(c=>{this._senders.push(e(this,c))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],i.apply(this,[s]),s.getTracks().forEach(c=>{const a=this._senders.find(o=>o.track===c);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 jo(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(c=>c._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(c=>xo(c,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}),Wt(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>xo(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,c;return this.getSenders().forEach(a=>{a.track===i&&(r?c=!0:r=a)}),this.getReceivers().forEach(a=>(a.track===i&&(s?c=!0:s=a),a.track===i)),c||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 Vo(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(c=>this._shimmedLocalStreams[c][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(c,a){if(!a)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const o=e.apply(this,arguments);return this._shimmedLocalStreams[a.id]?this._shimmedLocalStreams[a.id].indexOf(o)===-1&&this._shimmedLocalStreams[a.id].push(o):this._shimmedLocalStreams[a.id]=[a,o],o};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(c){this._shimmedLocalStreams=this._shimmedLocalStreams||{},c.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 o=this.getSenders().filter(d=>a.indexOf(d)===-1);this._shimmedLocalStreams[c.id]=[c].concat(o)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[c.id],i.apply(this,arguments)};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(c){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},c&&Object.keys(this._shimmedLocalStreams).forEach(a=>{const o=this._shimmedLocalStreams[a].indexOf(c);o!==-1&&this._shimmedLocalStreams[a].splice(o,1),this._shimmedLocalStreams[a].length===1&&delete this._shimmedLocalStreams[a]}),r.apply(this,arguments)}}function qo(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return Vo(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(f=>f.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(g=>g===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(g=>g.track===u))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const y=this._streams[l.id];if(y)y.addTrack(u),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const g=new n.MediaStream([u]);this._streams[l.id]=g,this._reverseStreams[g.id]=l,this.addStream(g)}return this.getSenders().find(g=>g.track===u)};function s(d,u){let l=u.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const f=d._reverseStreams[h],y=d._streams[f.id];l=l.replace(new RegExp(y.id,"g"),f.id)}),new RTCSessionDescription({type:u.type,sdp:l})}function c(d,u){let l=u.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const f=d._reverseStreams[h],y=d._streams[f.id];l=l.replace(new RegExp(f.id,"g"),y.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,[y=>{const g=s(this,y);h[0].apply(null,[g])},y=>{h[1]&&h[1].apply(null,y)},arguments[2]]):u.apply(this,arguments).then(y=>s(this,y))}};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]=c(this,arguments[0]),a.apply(this,arguments))};const o=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const d=o.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(f=>{this._streams[f].getTracks().find(g=>u.track===g)&&(h=this._streams[f])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(u.track),this.dispatchEvent(new Event("negotiationneeded")))}}function Ir(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 Ko(n,e){Wt(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var Wo=Object.freeze({__proto__:null,fixNegotiationNeeded:Ko,shimAddTrackRemoveTrack:qo,shimAddTrackRemoveTrackWithNative:Vo,shimGetSendersWithDtmf:Bo,shimGetUserMedia:No,shimMediaStream:Uo,shimOnTrack:Fo,shimPeerConnection:Ir,shimSenderReceiverGetStats:jo});function Ho(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,c){Rr("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(r).then(s,c)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const r=function(c,a,o){a in c&&!(o in c)&&(c[o]=c[a],delete c[a])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(c){return typeof c=="object"&&typeof c.audio=="object"&&(c=JSON.parse(JSON.stringify(c)),r(c.audio,"autoGainControl","mozAutoGainControl"),r(c.audio,"noiseSuppression","mozNoiseSuppression")),s(c)},i&&i.prototype.getSettings){const c=i.prototype.getSettings;i.prototype.getSettings=function(){const a=c.apply(this,arguments);return r(a,"mozAutoGainControl","autoGainControl"),r(a,"mozNoiseSuppression","noiseSuppression"),a}}if(i&&i.prototype.applyConstraints){const c=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")),c.apply(this,[a])}}}}function wm(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 Jo(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 Or(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],c={[r](){return arguments[0]=new(r==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};n.RTCPeerConnection.prototype[r]=c[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,c,a]=arguments;return i.apply(this,[s||null]).then(o=>{if(e.version<53&&!c)try{o.forEach(d=>{d.type=t[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;o.forEach((u,l)=>{o.set(l,Object.assign({},u,{type:t[u.type]||u.type}))})}return o}).then(c,a)}}function Go(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 zo(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}),Wt(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function $o(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){Rr("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function Qo(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function Yo(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(c=>{if("rid"in c&&!/^[a-z0-9]{0,16}$/i.test(c.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in c&&!(parseFloat(c.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in c&&!(parseFloat(c.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(r){const{sender:c}=s,a=c.getParameters();(!("encodings"in a)||a.encodings.length===1&&Object.keys(a.encodings[0]).length===0)&&(a.encodings=i,c.sendEncodings=i,this.setParametersPromises.push(c.setParameters(a).then(()=>{delete c.sendEncodings}).catch(()=>{delete c.sendEncodings})))}return s})}function Xo(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 Zo(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 ec(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 tc=Object.freeze({__proto__:null,shimAddTransceiver:Yo,shimCreateAnswer:ec,shimCreateOffer:Zo,shimGetDisplayMedia:wm,shimGetParameters:Xo,shimGetUserMedia:Ho,shimOnTrack:Jo,shimPeerConnection:Or,shimRTCDataChannel:Qo,shimReceiverGetStats:zo,shimRemoveStream:$o,shimSenderGetStats:Go});function nc(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),c=1;c<r;c++)s[c-1]=arguments[c];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 ic(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 c=new Event("addstream");c.stream=s,i.dispatchEvent(c)})}),e.apply(i,arguments)}}}function rc(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,c=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(o,d,u){const l=r.apply(this,[o]);return u?(l.then(d,u),Promise.resolve()):l};e.setLocalDescription=a,a=function(o,d,u){const l=s.apply(this,[o]);return u?(l.then(d,u),Promise.resolve()):l},e.setRemoteDescription=a,a=function(o,d,u){const l=c.apply(this,[o]);return u?(l.then(d,u),Promise.resolve()):l},e.addIceCandidate=a}function sc(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(ac(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function ac(n){return n&&n.video!==void 0?Object.assign({},n,{video:Ao(n.video)}):n}function oc(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,r){if(i&&i.iceServers){const s=[];for(let c=0;c<i.iceServers.length;c++){let a=i.iceServers[c];a.urls===void 0&&a.url?(Rr("RTCIceServer.url","RTCIceServer.urls"),a=JSON.parse(JSON.stringify(a)),a.urls=a.url,delete a.url,s.push(a)):s.push(i.iceServers[c])}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 cc(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 dc(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(c=>c.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(c=>c.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 uc(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var lc=Object.freeze({__proto__:null,shimAudioContext:uc,shimCallbacksAPI:rc,shimConstraints:ac,shimCreateOfferLegacy:dc,shimGetUserMedia:sc,shimLocalStreamsAPI:nc,shimRTCIceServerUrls:oc,shimRemoteStreamsAPI:ic,shimTrackEventTransceiver:cc}),Mr={exports:{}},hc;function _m(){return hc||(hc=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
@@ -20,7 +20,7 @@ export declare enum AgentActivityState {
20
20
  Idle = "IDLE",
21
21
  Loading = "LOADING",
22
22
  Talking = "TALKING",
23
- ToolActive = "tool_active"
23
+ ToolActive = "TOOL_ACTIVE"
24
24
  }
25
25
  export declare enum StreamEvents {
26
26
  ChatAnswer = "chat/answer",
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.52-staging.236",
4
+ "version": "1.1.52-staging.237",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {