@d-id/client-sdk 1.1.11-staging.41 → 1.1.11-staging.42
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-UeXWrNlF.js → index-n99Xwccj.js} +61 -57
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/{livekit-manager-6i5Rpchn.js → livekit-manager-BNSy5Ehr.js} +1 -1
- package/dist/src/services/analytics/mixpanel.d.ts +1 -0
- package/dist/src/types/entities/agents/manager.d.ts +1 -0
- package/package.json +1 -1
|
@@ -46,11 +46,11 @@ const Tt = (e) => {
|
|
|
46
46
|
throw new Error(`Unknown video type: ${e}`);
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
-
var w = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(w || {}), Z = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(Z || {}), O = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Talking = "TALKING", e))(O || {}),
|
|
50
|
-
const Le = 45 * 1e3, Be = "X-Playground-Chat", G = "https://api.d-id.com", $e = "wss://notifications.d-id.com",
|
|
49
|
+
var w = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(w || {}), Z = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(Z || {}), O = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Talking = "TALKING", e))(O || {}), P = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", 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))(P || {}), S = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnected = "disconnected", e))(S || {}), N = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(N || {}), Ae = /* @__PURE__ */ ((e) => (e.Livekit = "livekit", e))(Ae || {}), Pe = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Pe || {}), be = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(be || {});
|
|
50
|
+
const Le = 45 * 1e3, Be = "X-Playground-Chat", G = "https://api.d-id.com", $e = "wss://notifications.d-id.com", xe = "79f81a83a67430be2bc0fd61042b8faa", de = (e) => new Promise((t) => setTimeout(t, e)), V = (e = 16) => {
|
|
51
51
|
const t = new Uint8Array(e);
|
|
52
52
|
return window.crypto.getRandomValues(t), Array.from(t, (n) => n.toString(16).padStart(2, "0")).join("").slice(0, 13);
|
|
53
|
-
},
|
|
53
|
+
}, ze = (e) => [E.TextOnly, E.Playground, E.Maintenance].includes(e), le = (e) => e && [E.DirectPlayback, E.Off].includes(e);
|
|
54
54
|
function Fe(e, t) {
|
|
55
55
|
let n;
|
|
56
56
|
return {
|
|
@@ -242,7 +242,10 @@ function Ve(e) {
|
|
|
242
242
|
token: e.token || "testKey",
|
|
243
243
|
distinct_id: e.distinctId || ue(),
|
|
244
244
|
agentId: e.agentId,
|
|
245
|
-
additionalProperties: {
|
|
245
|
+
additionalProperties: {
|
|
246
|
+
id: e.distinctId,
|
|
247
|
+
...e.mixpanelAdditionalProperties || {}
|
|
248
|
+
},
|
|
246
249
|
isEnabled: e.isEnabled ?? !0,
|
|
247
250
|
getRandom: V,
|
|
248
251
|
enrich(n) {
|
|
@@ -344,7 +347,7 @@ function Xe(e, t, n) {
|
|
|
344
347
|
}
|
|
345
348
|
async function Ye(e, t) {
|
|
346
349
|
const n = {
|
|
347
|
-
type:
|
|
350
|
+
type: P.StreamInterrupt,
|
|
348
351
|
videoId: t,
|
|
349
352
|
timestamp: Date.now()
|
|
350
353
|
};
|
|
@@ -423,12 +426,12 @@ function rt(e, t, n, r, i) {
|
|
|
423
426
|
mode: t.chatMode
|
|
424
427
|
});
|
|
425
428
|
else {
|
|
426
|
-
const l =
|
|
429
|
+
const l = P, v = [l.StreamVideoDone, l.StreamVideoError, l.StreamVideoRejected], M = [l.StreamFailed, l.StreamVideoError, l.StreamVideoRejected], T = He(a, r, { mode: t.chatMode });
|
|
427
430
|
if (c = c, c === l.StreamVideoCreated)
|
|
428
431
|
e.linkTrack("agent-video", T, l.StreamVideoCreated, ["start"]);
|
|
429
432
|
else if (v.includes(c)) {
|
|
430
|
-
const
|
|
431
|
-
M.includes(c) ? e.track("agent-video", { ...T, event:
|
|
433
|
+
const A = c.split("/")[1];
|
|
434
|
+
M.includes(c) ? e.track("agent-video", { ...T, event: A }) : e.linkTrack("agent-video", { ...T, event: A }, c, ["done"]);
|
|
432
435
|
}
|
|
433
436
|
M.includes(c) && ((d = (s = n.callbacks).onError) == null || d.call(s, new Error(`Stream failed with event ${c}`), { data: a })), a.event === l.StreamDone && i();
|
|
434
437
|
}
|
|
@@ -609,9 +612,9 @@ function ft() {
|
|
|
609
612
|
}
|
|
610
613
|
function mt(e, t, n, r, i, o = !1) {
|
|
611
614
|
let c = [], a, s = 0, d = !1, l = Z.Unknown, v = Z.Unknown, M = 0, T = 0;
|
|
612
|
-
const
|
|
615
|
+
const A = ft();
|
|
613
616
|
return setInterval(async () => {
|
|
614
|
-
const F = await e.getStats(), { isReceiving: K, avgJitterDelayInInterval: J, freezeCount: R } =
|
|
617
|
+
const F = await e.getStats(), { isReceiving: K, avgJitterDelayInInterval: J, freezeCount: R } = A(F), U = ot(F);
|
|
615
618
|
if (K)
|
|
616
619
|
s = 0, M = R - T, v = J < lt ? Z.Strong : J > ut && M > 1 ? Z.Weak : l, v !== l && (i == null || i(v), l = v, T += M, M = 0), d || (r == null || r(w.Start), a = c[c.length - 1], c = [], d = !0), c.push(U);
|
|
617
620
|
else if (d && (s++, s >= dt)) {
|
|
@@ -687,7 +690,7 @@ async function yt(e, t, { debug: n = !1, callbacks: r, auth: i, baseURL: o = G,
|
|
|
687
690
|
var X;
|
|
688
691
|
const a = at(n, "WebRTCStreamingManager"), s = ht(a);
|
|
689
692
|
let d = !1, l = !1, v = w.Stop, M = w.Stop;
|
|
690
|
-
const { startConnection: T, sendStreamRequest:
|
|
693
|
+
const { startConnection: T, sendStreamRequest: A, close: F, createStream: K, addIceCandidate: J } = nt(
|
|
691
694
|
i,
|
|
692
695
|
o,
|
|
693
696
|
e,
|
|
@@ -708,7 +711,7 @@ async function yt(e, t, { debug: n = !1, callbacks: r, auth: i, baseURL: o = G,
|
|
|
708
711
|
c.enrich({
|
|
709
712
|
"stream-type": C
|
|
710
713
|
});
|
|
711
|
-
const
|
|
714
|
+
const b = t.stream_warmup && !p, $ = () => d, k = () => {
|
|
712
715
|
var f;
|
|
713
716
|
d = !0, l && ((f = r.onConnectionStateChange) == null || f.call(r, S.Connected));
|
|
714
717
|
}, I = mt(
|
|
@@ -727,7 +730,7 @@ async function yt(e, t, { debug: n = !1, callbacks: r, auth: i, baseURL: o = G,
|
|
|
727
730
|
var g;
|
|
728
731
|
return (g = r.onConnectivityStateChange) == null ? void 0 : g.call(r, f);
|
|
729
732
|
},
|
|
730
|
-
|
|
733
|
+
b
|
|
731
734
|
);
|
|
732
735
|
m.onicecandidate = (f) => {
|
|
733
736
|
var g;
|
|
@@ -746,18 +749,18 @@ async function yt(e, t, { debug: n = !1, callbacks: r, auth: i, baseURL: o = G,
|
|
|
746
749
|
(g = r.onError) == null || g.call(r, j, { streamId: R });
|
|
747
750
|
}
|
|
748
751
|
}, y.onopen = () => {
|
|
749
|
-
l = !0, (!
|
|
752
|
+
l = !0, (!b || d) && k();
|
|
750
753
|
};
|
|
751
754
|
const D = (f) => {
|
|
752
755
|
var g;
|
|
753
756
|
(g = r.onVideoIdChange) == null || g.call(r, f);
|
|
754
757
|
};
|
|
755
|
-
function
|
|
756
|
-
if (f ===
|
|
758
|
+
function x(f, g) {
|
|
759
|
+
if (f === P.StreamStarted && typeof g == "object" && "metadata" in g) {
|
|
757
760
|
const j = g.metadata;
|
|
758
761
|
D(j.videoId);
|
|
759
762
|
}
|
|
760
|
-
f ===
|
|
763
|
+
f === P.StreamDone && D(null), v = f === P.StreamStarted ? w.Start : w.Stop, oe({
|
|
761
764
|
statsSignal: C === N.Legacy ? M : void 0,
|
|
762
765
|
dataChannelSignal: v,
|
|
763
766
|
onVideoStateChange: r.onVideoStateChange,
|
|
@@ -765,14 +768,14 @@ async function yt(e, t, { debug: n = !1, callbacks: r, auth: i, baseURL: o = G,
|
|
|
765
768
|
streamType: C
|
|
766
769
|
});
|
|
767
770
|
}
|
|
768
|
-
function
|
|
771
|
+
function z(f, g) {
|
|
769
772
|
const j = typeof g == "string" ? g : g == null ? void 0 : g.metadata;
|
|
770
773
|
j && c.enrich({ streamMetadata: j }), c.track("agent-chat", { event: "ready" });
|
|
771
774
|
}
|
|
772
775
|
const L = {
|
|
773
|
-
[
|
|
774
|
-
[
|
|
775
|
-
[
|
|
776
|
+
[P.StreamStarted]: x,
|
|
777
|
+
[P.StreamDone]: x,
|
|
778
|
+
[P.StreamReady]: z
|
|
776
779
|
};
|
|
777
780
|
y.onmessage = (f) => {
|
|
778
781
|
var Y;
|
|
@@ -794,7 +797,7 @@ async function yt(e, t, { debug: n = !1, callbacks: r, auth: i, baseURL: o = G,
|
|
|
794
797
|
* @param payload
|
|
795
798
|
*/
|
|
796
799
|
speak(f) {
|
|
797
|
-
return
|
|
800
|
+
return A(R, h, f);
|
|
798
801
|
},
|
|
799
802
|
/**
|
|
800
803
|
* Method to close RTC connection
|
|
@@ -852,7 +855,7 @@ const vt = (e) => e.presenter.type === ce.Expressive;
|
|
|
852
855
|
async function kt(e, t, n) {
|
|
853
856
|
const r = e.id;
|
|
854
857
|
if (vt(e)) {
|
|
855
|
-
const { createLiveKitStreamingManager: i } = await import("./livekit-manager-
|
|
858
|
+
const { createLiveKitStreamingManager: i } = await import("./livekit-manager-BNSy5Ehr.js");
|
|
856
859
|
return i(r, t, n);
|
|
857
860
|
} else
|
|
858
861
|
return yt(r, t, n);
|
|
@@ -884,7 +887,7 @@ function St(e, t, n, r) {
|
|
|
884
887
|
"agent-video",
|
|
885
888
|
{ event: "start", latency: B.get(!0), "stream-type": r },
|
|
886
889
|
"start",
|
|
887
|
-
[
|
|
890
|
+
[P.StreamVideoCreated]
|
|
888
891
|
) : e === w.Stop && n.linkTrack(
|
|
889
892
|
"agent-video",
|
|
890
893
|
{
|
|
@@ -894,7 +897,7 @@ function St(e, t, n, r) {
|
|
|
894
897
|
"stream-type": r
|
|
895
898
|
},
|
|
896
899
|
"done",
|
|
897
|
-
[
|
|
900
|
+
[P.StreamVideoDone]
|
|
898
901
|
));
|
|
899
902
|
}
|
|
900
903
|
function It(e, t, n, r, i) {
|
|
@@ -902,7 +905,7 @@ function It(e, t, n, r, i) {
|
|
|
902
905
|
"agent-video",
|
|
903
906
|
{ event: "start", latency: B.get(!0), "stream-type": i },
|
|
904
907
|
"start",
|
|
905
|
-
[
|
|
908
|
+
[P.StreamVideoCreated]
|
|
906
909
|
) : e === w.Stop && r.linkTrack(
|
|
907
910
|
"agent-video",
|
|
908
911
|
{
|
|
@@ -913,7 +916,7 @@ function It(e, t, n, r, i) {
|
|
|
913
916
|
...n
|
|
914
917
|
},
|
|
915
918
|
"done",
|
|
916
|
-
[
|
|
919
|
+
[P.StreamVideoDone]
|
|
917
920
|
));
|
|
918
921
|
}
|
|
919
922
|
function Et(e, t, n) {
|
|
@@ -956,21 +959,22 @@ function Et(e, t, n) {
|
|
|
956
959
|
});
|
|
957
960
|
}
|
|
958
961
|
async function Mt(e, t, n, r, i) {
|
|
959
|
-
var v, M, T,
|
|
962
|
+
var v, M, T, A;
|
|
960
963
|
const o = ye(e, n, r, t.mode, t.persistentChat, i), c = Et(e, t, r), [a, s] = await Promise.all([o, c]), { chat: d, chatMode: l } = a;
|
|
961
|
-
return l && l !== t.mode && (t.mode = l, (M = (v = t.callbacks).onModeChange) == null || M.call(v, l), l !== E.Functional) ? ((
|
|
964
|
+
return l && l !== t.mode && (t.mode = l, (M = (v = t.callbacks).onModeChange) == null || M.call(v, l), l !== E.Functional) ? ((A = (T = t.callbacks).onError) == null || A.call(T, new Ce(l)), s == null || s.disconnect(), { chat: d }) : { chat: d, streamingManager: s };
|
|
962
965
|
}
|
|
963
966
|
async function jt(e, t) {
|
|
964
967
|
var J, R, U;
|
|
965
968
|
let n = !0, r = null;
|
|
966
|
-
const i = t.mixpanelKey ||
|
|
969
|
+
const i = t.mixpanelKey || xe, o = t.wsURL || $e, c = t.baseURL || G, a = {
|
|
967
970
|
messages: [],
|
|
968
971
|
chatMode: t.mode || E.Functional
|
|
969
972
|
}, s = Ve({
|
|
970
973
|
token: i,
|
|
971
974
|
agentId: e,
|
|
972
975
|
isEnabled: t.enableAnalitics,
|
|
973
|
-
distinctId: t.distinctId
|
|
976
|
+
distinctId: t.distinctId,
|
|
977
|
+
mixpanelAdditionalProperties: t.mixpanelAdditionalProperties
|
|
974
978
|
});
|
|
975
979
|
s.track("agent-sdk", { event: "init" });
|
|
976
980
|
const d = ge(t.auth, c, t.callbacks.onError), l = await d.getById(e);
|
|
@@ -990,9 +994,9 @@ async function jt(e, t) {
|
|
|
990
994
|
r = u;
|
|
991
995
|
};
|
|
992
996
|
s.track("agent-sdk", { event: "loaded", ...We(l) });
|
|
993
|
-
async function
|
|
994
|
-
var C,
|
|
995
|
-
(
|
|
997
|
+
async function A(u) {
|
|
998
|
+
var C, b, $, k, I, D, x;
|
|
999
|
+
(b = (C = t.callbacks).onConnectionStateChange) == null || b.call(C, S.Connecting), B.reset(), u && !n && (delete a.chat, (k = ($ = t.callbacks).onNewMessage) == null || k.call($, [...a.messages], "answer"));
|
|
996
1000
|
const h = t.mode === E.DirectPlayback ? Promise.resolve(void 0) : Ge(t.auth, o, { onMessage: v, onError: t.callbacks.onError }), p = re(
|
|
997
1001
|
() => Mt(
|
|
998
1002
|
l,
|
|
@@ -1006,14 +1010,14 @@ async function jt(e, t) {
|
|
|
1006
1010
|
timeout: Le,
|
|
1007
1011
|
timeoutErrorMessage: "Timeout initializing the stream",
|
|
1008
1012
|
// Retry on all errors except for connection errors and rate limit errors, these are already handled in client level.
|
|
1009
|
-
shouldRetryFn: (
|
|
1013
|
+
shouldRetryFn: (z) => (z == null ? void 0 : z.message) !== "Could not connect" && z.status !== 429,
|
|
1010
1014
|
delayMs: 1e3
|
|
1011
1015
|
}
|
|
1012
|
-
).catch((
|
|
1016
|
+
).catch((z) => {
|
|
1013
1017
|
var L, W;
|
|
1014
|
-
throw K(E.Maintenance), (W = (L = t.callbacks).onConnectionStateChange) == null || W.call(L, S.Fail),
|
|
1018
|
+
throw K(E.Maintenance), (W = (L = t.callbacks).onConnectionStateChange) == null || W.call(L, S.Fail), z;
|
|
1015
1019
|
}), [_, { streamingManager: m, chat: y }] = await Promise.all([h, p]);
|
|
1016
|
-
y && y.id !== ((I = a.chat) == null ? void 0 : I.id) && ((
|
|
1020
|
+
y && y.id !== ((I = a.chat) == null ? void 0 : I.id) && ((x = (D = t.callbacks).onNewChat) == null || x.call(D, y.id)), a.streamingManager = m, a.socketManager = _, a.chat = y, n = !1, s.enrich({
|
|
1017
1021
|
chatId: y == null ? void 0 : y.id,
|
|
1018
1022
|
streamId: m == null ? void 0 : m.streamId,
|
|
1019
1023
|
mode: a.chatMode
|
|
@@ -1042,13 +1046,13 @@ async function jt(e, t) {
|
|
|
1042
1046
|
changeMode: K,
|
|
1043
1047
|
enrichAnalytics: s.enrich,
|
|
1044
1048
|
async connect() {
|
|
1045
|
-
await
|
|
1049
|
+
await A(!0), s.track("agent-chat", {
|
|
1046
1050
|
event: "connect",
|
|
1047
1051
|
mode: a.chatMode
|
|
1048
1052
|
});
|
|
1049
1053
|
},
|
|
1050
1054
|
async reconnect() {
|
|
1051
|
-
await F(), await
|
|
1055
|
+
await F(), await A(!1), s.track("agent-chat", {
|
|
1052
1056
|
event: "reconnect",
|
|
1053
1057
|
mode: a.chatMode
|
|
1054
1058
|
});
|
|
@@ -1060,7 +1064,7 @@ async function jt(e, t) {
|
|
|
1060
1064
|
});
|
|
1061
1065
|
},
|
|
1062
1066
|
async chat(u) {
|
|
1063
|
-
var m, y, C,
|
|
1067
|
+
var m, y, C, b, $;
|
|
1064
1068
|
const h = () => {
|
|
1065
1069
|
if (le(t.mode))
|
|
1066
1070
|
throw new H(`${t.mode} is enabled, chat is disabled`);
|
|
@@ -1093,15 +1097,15 @@ async function jt(e, t) {
|
|
|
1093
1097
|
return a.chat.id;
|
|
1094
1098
|
}, _ = async (k, I) => re(
|
|
1095
1099
|
() => {
|
|
1096
|
-
var D,
|
|
1100
|
+
var D, x;
|
|
1097
1101
|
return d.chat(
|
|
1098
1102
|
l.id,
|
|
1099
1103
|
I,
|
|
1100
1104
|
{
|
|
1101
1105
|
chatMode: a.chatMode,
|
|
1102
1106
|
streamId: (D = a.streamingManager) == null ? void 0 : D.streamId,
|
|
1103
|
-
sessionId: (
|
|
1104
|
-
messages: k.map(({ matches:
|
|
1107
|
+
sessionId: (x = a.streamingManager) == null ? void 0 : x.sessionId,
|
|
1108
|
+
messages: k.map(({ matches: z, ...L }) => L)
|
|
1105
1109
|
},
|
|
1106
1110
|
{
|
|
1107
1111
|
...pe(a.chatMode),
|
|
@@ -1113,11 +1117,11 @@ async function jt(e, t) {
|
|
|
1113
1117
|
limit: 2,
|
|
1114
1118
|
shouldRetryFn: (D) => {
|
|
1115
1119
|
var L, W, X, f;
|
|
1116
|
-
const
|
|
1117
|
-
return !((W = D == null ? void 0 : D.message) == null ? void 0 : W.includes("Stream Error")) && !
|
|
1120
|
+
const x = (L = D == null ? void 0 : D.message) == null ? void 0 : L.includes("missing or invalid session_id");
|
|
1121
|
+
return !((W = D == null ? void 0 : D.message) == null ? void 0 : W.includes("Stream Error")) && !x ? ((f = (X = t.callbacks).onError) == null || f.call(X, D), !1) : !0;
|
|
1118
1122
|
},
|
|
1119
1123
|
onRetry: async () => {
|
|
1120
|
-
await F(), await
|
|
1124
|
+
await F(), await A(!1);
|
|
1121
1125
|
}
|
|
1122
1126
|
}
|
|
1123
1127
|
);
|
|
@@ -1139,7 +1143,7 @@ async function jt(e, t) {
|
|
|
1139
1143
|
}), s.track("agent-message-send", {
|
|
1140
1144
|
event: "success",
|
|
1141
1145
|
messages: a.messages.length + 1
|
|
1142
|
-
}), I.result && ((
|
|
1146
|
+
}), I.result && ((b = (C = t.callbacks).onNewMessage) == null || b.call(C, [...a.messages], "answer"), s.track("agent-message-received", {
|
|
1143
1147
|
latency: B.get(!0),
|
|
1144
1148
|
messages: a.messages.length
|
|
1145
1149
|
})), I;
|
|
@@ -1151,7 +1155,7 @@ async function jt(e, t) {
|
|
|
1151
1155
|
}
|
|
1152
1156
|
},
|
|
1153
1157
|
rate(u, h, p) {
|
|
1154
|
-
var y, C,
|
|
1158
|
+
var y, C, b, $;
|
|
1155
1159
|
const _ = a.messages.find((k) => k.id === u);
|
|
1156
1160
|
if (a.chat) {
|
|
1157
1161
|
if (!_)
|
|
@@ -1165,7 +1169,7 @@ async function jt(e, t) {
|
|
|
1165
1169
|
matches: m,
|
|
1166
1170
|
score: h
|
|
1167
1171
|
}), p ? d.updateRating(l.id, a.chat.id, p, {
|
|
1168
|
-
knowledge_id: ((
|
|
1172
|
+
knowledge_id: ((b = l.knowledge) == null ? void 0 : b.id) ?? "",
|
|
1169
1173
|
message_id: u,
|
|
1170
1174
|
matches: m,
|
|
1171
1175
|
score: h
|
|
@@ -1212,7 +1216,7 @@ async function jt(e, t) {
|
|
|
1212
1216
|
role: "assistant",
|
|
1213
1217
|
content: p.input,
|
|
1214
1218
|
created_at: new Date(B.get(!0)).toISOString()
|
|
1215
|
-
}), (y = (m = t.callbacks).onNewMessage) == null || y.call(m, [...a.messages], "answer")),
|
|
1219
|
+
}), (y = (m = t.callbacks).onNewMessage) == null || y.call(m, [...a.messages], "answer")), ze(a.chatMode))
|
|
1216
1220
|
return {
|
|
1217
1221
|
duration: 0,
|
|
1218
1222
|
video_id: "",
|
|
@@ -1237,7 +1241,7 @@ async function jt(e, t) {
|
|
|
1237
1241
|
}
|
|
1238
1242
|
};
|
|
1239
1243
|
}
|
|
1240
|
-
function
|
|
1244
|
+
function At(e, t, n) {
|
|
1241
1245
|
const { getById: r } = ge(t, n || G);
|
|
1242
1246
|
return r(e);
|
|
1243
1247
|
}
|
|
@@ -1249,7 +1253,7 @@ export {
|
|
|
1249
1253
|
Ie as P,
|
|
1250
1254
|
Me as R,
|
|
1251
1255
|
N as S,
|
|
1252
|
-
|
|
1256
|
+
Ae as T,
|
|
1253
1257
|
Se as U,
|
|
1254
1258
|
H as V,
|
|
1255
1259
|
Re as W,
|
|
@@ -1257,18 +1261,18 @@ export {
|
|
|
1257
1261
|
Z as b,
|
|
1258
1262
|
me as c,
|
|
1259
1263
|
w as d,
|
|
1260
|
-
|
|
1264
|
+
P as e,
|
|
1261
1265
|
G as f,
|
|
1262
1266
|
De as g,
|
|
1263
1267
|
Ce as h,
|
|
1264
1268
|
jt as i,
|
|
1265
|
-
|
|
1269
|
+
At as j,
|
|
1266
1270
|
Ee as k,
|
|
1267
1271
|
E as l,
|
|
1268
1272
|
q as m,
|
|
1269
1273
|
_e as n,
|
|
1270
1274
|
ce as o,
|
|
1271
1275
|
Tt as p,
|
|
1272
|
-
|
|
1273
|
-
|
|
1276
|
+
Pe as q,
|
|
1277
|
+
be as r
|
|
1274
1278
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as t, k as s, g as r, l as o, h as n, m as i, C as d, b as g, D as S, K as p, P as c, q as C, R as m, e as y, S as A, d as T, n as l, T as h, U as P, V, o as u, r as v, W as D, i as E, j as M, p as b } from "./index-
|
|
1
|
+
import { A as t, k as s, g as r, l as o, h as n, m as i, C as d, b as g, D as S, K as p, P as c, q as C, R as m, e as y, S as A, d as T, n as l, T as h, U as P, V, o as u, r as v, W as D, i as E, j as M, p as b } from "./index-n99Xwccj.js";
|
|
2
2
|
export {
|
|
3
3
|
t as AgentActivityState,
|
|
4
4
|
s as AgentStatus,
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(q,he){typeof exports=="object"&&typeof module<"u"?he(exports):typeof define=="function"&&define.amd?define(["exports"],he):(q=typeof globalThis<"u"?globalThis:q||self,he(q.index={}))})(this,function(q){"use strict";var zh=Object.defineProperty;var Wh=(q,he,ut)=>he in q?zh(q,he,{enumerable:!0,configurable:!0,writable:!0,value:ut}):q[he]=ut;var dn=(q,he,ut)=>Wh(q,typeof he!="symbol"?he+"":he,ut);class he extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));dn(this,"kind");dn(this,"description");dn(this,"error");this.kind=t,this.description=i,this.error=r}}class ut extends he{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class mr extends he{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class ht extends he{constructor(t,i){super({kind:"ValidationError",description:t});dn(this,"key");this.key=i}}class pr extends he{constructor(e){super({kind:"WSError",description:e})}}var gr=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(gr||{}),vr=(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))(vr||{}),yr=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(yr||{}),br=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(br||{}),ue=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(ue||{}),ft=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Complete="done",n))(ft||{}),kr=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(kr||{}),Tr=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(Tr||{}),Sr=(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))(Sr||{}),Kn=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(Kn||{});const Qo=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";default:throw new Error(`Unknown video type: ${n}`)}};var H=(n=>(n.Start="START",n.Stop="STOP",n))(H||{}),mt=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(mt||{}),je=(n=>(n.Idle="IDLE",n.Talking="TALKING",n))(je||{}),fe=(n=>(n.ChatAnswer="chat/answer",n.ChatPartial="chat/partial",n.StreamDone="stream/done",n.StreamStarted="stream/started",n.StreamFailed="stream/error",n.StreamReady="stream/ready",n.StreamCreated="stream/created",n.StreamInterrupt="stream/interrupt",n.StreamVideoCreated="stream-video/started",n.StreamVideoDone="stream-video/done",n.StreamVideoError="stream-video/error",n.StreamVideoRejected="stream-video/rejected",n))(fe||{}),Y=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnected="disconnected",n))(Y||{}),Oe=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(Oe||{}),zn=(n=>(n.Livekit="livekit",n))(zn||{}),Cr=(n=>(n.Amazon="amazon",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(Cr||{}),Er=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(Er||{});const Yo=45*1e3,Xo="X-Playground-Chat",Pt="https://api.d-id.com",Zo="wss://notifications.d-id.com",ec="79f81a83a67430be2bc0fd61042b8faa",Pr=n=>new Promise(e=>setTimeout(e,n)),wt=(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)},tc=n=>[ue.TextOnly,ue.Playground,ue.Maintenance].includes(n),wr=n=>n&&[ue.DirectPlayback,ue.Off].includes(n);function nc(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function Wn(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:a}=nc(t.timeout,t.timeoutErrorMessage),o=n().finally(a);return await Promise.race([o,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Pr(t.delayMs),t.onRetry(s)}throw i}function Rr(){let n=window.localStorage.getItem("did_external_key_id");if(!n){let e=wt();window.localStorage.setItem("did_external_key_id",e),n=e}return n}let ic=wt();function _r(n){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${Rr()}_${ic}`;throw new Error(`Unknown auth type: ${n}`)}const rc=n=>Wn(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function Gn(n,e=Pt,t){const i=async(r,s)=>{const{skipErrorHandler:a,...o}=s||{},c=await rc(()=>fetch(e+(r!=null&&r.startsWith("/")?r:`/${r}`),{...o,headers:{...o.headers,Authorization:_r(n),"Content-Type":"application/json"}}));if(!c.ok){let d=await c.text().catch(()=>`Failed to fetch with status ${c.status}`);const l=new Error(d);throw t&&!a&&t(l,{url:r,options:o,headers:c.headers}),l}return c.json()};return{get(r,s){return i(r,{...s,method:"GET"})},post(r,s,a){return i(r,{...a,body:JSON.stringify(s),method:"POST"})},delete(r,s,a){return i(r,{...a,body:JSON.stringify(s),method:"DELETE"})},patch(r,s,a){return i(r,{...a,body:JSON.stringify(s),method:"PATCH"})}}}function Ir(n,e=Pt,t){const i=Gn(n,`${e}/agents`,t);return{create(r,s){return i.post("/",r,s)},getAgents(r,s){return i.get(`/${r?`?tag=${r}`:""}`,s).then(a=>a??[])},getById(r,s){return i.get(`/${r}`,s)},delete(r,s){return i.delete(`/${r}`,void 0,s)},update(r,s,a){return i.patch(`/${r}`,s,a)},newChat(r,s,a){return i.post(`/${r}/chat`,s,a)},chat(r,s,a,o){return i.post(`/${r}/chat/${s}`,a,o)},createRating(r,s,a,o){return i.post(`/${r}/chat/${s}/ratings`,a,o)},updateRating(r,s,a,o,c){return i.patch(`/${r}/chat/${s}/ratings/${a}`,o,c)},deleteRating(r,s,a,o){return i.delete(`/${r}/chat/${s}/ratings/${a}`,o)},getSTTToken(r,s){return i.get(`/${r}/stt-token`,s)}}}const Dr=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type;function sc(n){var r,s,a,o;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const c=navigator.platform;return c.toLowerCase().includes("win")?"Windows":c.toLowerCase().includes("mac")?"Mac OS X":c.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Dr(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(o=(a=n.presenter)==null?void 0:a.voice)==null?void 0:o.type}}}function ac(n){var t,i,r,s,a,o;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Dr(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:(o=(a=n.knowledge)==null?void 0:a.starter_message)==null?void 0:o.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 oc=n=>n.reduce((e,t)=>e+t,0),Or=n=>oc(n)/n.length;function cc(n,e,t){var c,d,l;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:a}=((c=e==null?void 0:e.presenter)==null?void 0:c.voice)||{};return{...r,llm:{...r.llm,template:s},script:{...r.script,provider:{...(d=r==null?void 0:r.script)==null?void 0:d.provider,language:a}},stitch:(e==null?void 0:e.presenter.type)==="talk"?(l=e==null?void 0:e.presenter)==null?void 0:l.stitch:void 0,...t}}let Hn={};const dc="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function lc(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk";return{token:n.token||"testKey",distinct_id:n.distinctId||Rr(),agentId:n.agentId,additionalProperties:{},isEnabled:n.isEnabled??!0,getRandom:wt,enrich(t){this.additionalProperties={...this.additionalProperties,...t}},async track(t,i){if(!this.isEnabled)return Promise.resolve();const{audioPath:r,...s}=i||{},a={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:t,properties:{...this.additionalProperties,...s,agentId:this.agentId,source:e,token:this.token,time:Date.now(),$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}}])})};try{return await fetch(dc,a).then(o=>o.json())}catch(o){return console.error(o)}},linkTrack(t,i,r,s){Hn[t]||(Hn[t]={events:{},resolvedDependencies:[]}),s.includes(r)||s.push(r);const a=Hn[t];if(a.events[r]={props:i},a.resolvedDependencies.push(r),s.every(c=>a.resolvedDependencies.includes(c))){const c=s.reduce((d,l)=>a.events[l]?{...d,...a.events[l].props}:d,{});this.track(t,c),a.resolvedDependencies=a.resolvedDependencies.filter(d=>!s.includes(d)),s.forEach(d=>{delete a.events[d]})}}}}function Mr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const Me=Mr(),Jn=Mr();function Ar(n){return n===ue.Playground?{headers:{[Xo]:"true"}}:{}}async function xr(n,e,t,i,r=!1,s){try{return!s&&!wr(i)&&(s=await e.newChat(n.id,{persist:r},Ar(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(a){try{const o=JSON.parse(a.message);if((o==null?void 0:o.kind)==="InsufficientCreditsError")throw new Error("InsufficientCreditsError")}catch(o){console.error("Error parsing the error message:",o)}throw new Error("Cannot create new chat")}}function uc(n){return n&&n.length>0?n:[]}function hc(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!==Oe.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function fc(n,e){const t={type:fe.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}function mc(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s}=n,{onMessage:a=null,onOpen:o=null,onClose:c=null,onError:d=null}=i||{},l=new WebSocket(`${r}?authorization=${_r(s)}`);l.onmessage=a,l.onclose=c,l.onerror=u=>{console.error(u),d==null||d("Websocket failed to connect",u),t(u)},l.onopen=u=>{o==null||o(u),e(l)}})}async function pc(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 mc(n)}catch(r){if(i===e)throw r;await Pr(i*500)}return t}async function gc(n,e,t){const i=t!=null&&t.onMessage?[t.onMessage]:[],r=await pc({auth:n,host:e,callbacks:{onError:s=>{var a;return(a=t.onError)==null?void 0:a.call(t,new pr(s))},onMessage(s){const a=JSON.parse(s.data);i.forEach(o=>o(a.event,a))}}});return{socket:r,disconnect:()=>r.close(),subscribeToEvents:s=>i.push(s)}}function vc(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function yc(n,e,t,i,r){const s=i.messages[i.messages.length-1];if(!(n===ft.Partial||n===ft.Answer)||(s==null?void 0:s.role)!=="assistant")return;const{content:a,sequence:o}=e;n===ft.Partial?t[o]=a:t.answer=a;const c=vc(t);(s.content!==c||n===ft.Answer)&&(s.content=c,r==null||r([...i.messages],n))}function bc(n,e,t,i,r){let s={};return{clearQueue:()=>s={},onMessage:(a,o)=>{var c,d;if("content"in o)yc(a,o,s,e,t.callbacks.onNewMessage),a===ft.Answer&&n.track("agent-message-received",{messages:e.messages.length,mode:e.chatMode});else{const l=fe,u=[l.StreamVideoDone,l.StreamVideoError,l.StreamVideoRejected],h=[l.StreamFailed,l.StreamVideoError,l.StreamVideoRejected],m=cc(o,i,{mode:e.chatMode});if(a=a,a===l.StreamVideoCreated)n.linkTrack("agent-video",m,l.StreamVideoCreated,["start"]);else if(u.includes(a)){const y=a.split("/")[1];h.includes(a)?n.track("agent-video",{...m,event:y}):n.linkTrack("agent-video",{...m,event:y},a,["done"])}h.includes(a)&&((d=(c=t.callbacks).onError)==null||d.call(c,new Error(`Stream failed with event ${a}`),{data:o})),o.event===l.StreamDone&&r()}}}}function kc(n,e,t,i){const r=Gn(n,`${e}/agents/${t}`,i);return{createStream(s){return r.post("/streams",s)},startConnection(s,a,o){return r.post(`/streams/${s}/sdp`,{session_id:o,answer:a})},addIceCandidate(s,a,o){return r.post(`/streams/${s}/ice`,{session_id:o,...a})},sendStreamRequest(s,a,o){return r.post(`/streams/${s}`,{session_id:a,...o})},close(s,a){return r.delete(`/streams/${s}`,{session_id:a})}}}const Lr=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??"");function Tc(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 Sc(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 Cc(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"&&(t=i.currentRoundTripTime),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 Ec(n,e,t){const i=n.map((c,d)=>d===0?t?{timestamp:c.timestamp,duration:0,rtt:c.rtt,bytesReceived:c.bytesReceived-t.bytesReceived,bitrate:(c.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-t.packetsReceived,packetsLost:c.packetsLost-t.packetsLost,framesDropped:c.framesDropped-t.framesDropped,framesDecoded:c.framesDecoded-t.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-t.jitterBufferDelay)/(c.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-t.freezeCount,freezeDuration:c.freezeDuration-t.freezeDuration}:{timestamp:c.timestamp,rtt:c.rtt,duration:0,bytesReceived:c.bytesReceived,bitrate:c.bytesReceived*8/(e/1e3),packetsReceived:c.packetsReceived,packetsLost:c.packetsLost,framesDropped:c.framesDropped,framesDecoded:c.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount,avgJitterDelayInInterval:c.jitterBufferDelay/c.jitterBufferEmittedCount,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.freezeDuration}:{timestamp:c.timestamp,duration:e*d/1e3,rtt:c.rtt,bytesReceived:c.bytesReceived-n[d-1].bytesReceived,bitrate:(c.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-n[d-1].packetsReceived,packetsLost:c.packetsLost-n[d-1].packetsLost,framesDropped:c.framesDropped-n[d-1].framesDropped,framesDecoded:c.framesDecoded-n[d-1].framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-n[d-1].jitterBufferDelay)/(c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-n[d-1].freezeCount,freezeDuration:c.freezeDuration-n[d-1].freezeDuration}),r=Sc(i),s=r.reduce((c,d)=>c+(d.causes.includes("low fps")?1:0),0),a=i.filter(c=>!!c.avgJitterDelayInInterval).map(c=>c.avgJitterDelayInInterval),o=i.filter(c=>!!c.rtt).map(c=>c.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...o),avgRtt:Or(o),maxRtt:Math.max(...o),aggregateReport:Tc(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...a),maxJitterDelayInInterval:Math.max(...a),avgJitterDelayInInterval:Or(a)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}const $n=100,Pc=Math.max(Math.ceil(400/$n),1),wc=.25,Rc=.28;function _c(){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 a=s.jitterBufferDelay,o=s.jitterBufferEmittedCount;if(t&&o>t){const l=a-e,u=o-t;i=l/u}e=a,t=o;const c=s.framesDecoded,d=c-n>0;return n=c,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}return{isReceiving:!1,avgJitterDelayInInterval:i}}}function Ic(n,e,t,i,r,s=!1){let a=[],o,c=0,d=!1,l=mt.Unknown,u=mt.Unknown,h=0,m=0;const y=_c();return setInterval(async()=>{const g=await n.getStats(),{isReceiving:P,avgJitterDelayInInterval:T,freezeCount:w}=y(g),O=Cc(g);if(P)c=0,h=w-m,u=T<wc?mt.Strong:T>Rc&&h>1?mt.Weak:l,u!==l&&(r==null||r(u),l=u,m+=h,h=0),d||(i==null||i(H.Start),o=a[a.length-1],a=[],d=!0),a.push(O);else if(d&&(c++,c>=Pc)){const p=Ec(a,$n,o);i==null||i(H.Stop,p),e()||t(),m=w,d=!1}},$n)}const Dc=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function Nr(n){switch(n){case"connected":return Y.Connected;case"checking":return Y.Connecting;case"failed":return Y.Fail;case"new":return Y.New;case"closed":return Y.Closed;case"disconnected":return Y.Disconnected;case"completed":return Y.Completed;default:return Y.New}}const Oc=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 Mc({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i}){n===H.Start&&e===H.Start?t==null||t(H.Start):n===H.Stop&&e===H.Stop&&(t==null||t(H.Stop,i))}function Ac({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r}){n===H.Start?t==null||t(H.Start):n===H.Stop&&(t==null||t(H.Stop,r)),e===H.Start?i==null||i(je.Talking):e===H.Stop&&(i==null||i(je.Idle))}function Ur({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s}){r===Oe.Legacy?Mc({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s}):r===Oe.Fluent&&Ac({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s})}async function xc(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Pt,analytics:a}){var rt;const o=Lr(t,"WebRTCStreamingManager"),c=Oc(o);let d=!1,l=!1,u=H.Stop,h=H.Stop;const{startConnection:m,sendStreamRequest:y,close:g,createStream:P,addIceCandidate:T}=kc(r,s,n,i.onError),{id:w,offer:O,ice_servers:p,session_id:v,fluent:k,interrupt_enabled:L}=await P(e);(rt=i.onStreamCreated)==null||rt.call(i,{stream_id:w,session_id:v,agent_id:n});const R=new Dc({iceServers:p}),S=R.createDataChannel("JanusDataChannel");if(!v)throw new Error("Could not create session_id");const _=k?Oe.Fluent:Oe.Legacy;a.enrich({"stream-type":_});const M=e.stream_warmup&&!k,N=()=>d,U=()=>{var F;d=!0,l&&((F=i.onConnectionStateChange)==null||F.call(i,Y.Connected))},G=Ic(R,N,U,(F,B)=>Ur({statsSignal:h=F,dataChannelSignal:_===Oe.Legacy?u:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:_}),F=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,F)},M);R.onicecandidate=F=>{var B;o("peerConnection.onicecandidate",F);try{F.candidate&&F.candidate.sdpMid&&F.candidate.sdpMLineIndex!==null?T(w,{candidate:F.candidate.candidate,sdpMid:F.candidate.sdpMid,sdpMLineIndex:F.candidate.sdpMLineIndex},v):T(w,{candidate:null},v)}catch(le){(B=i.onError)==null||B.call(i,le,{streamId:w})}},S.onopen=()=>{l=!0,(!M||d)&&U()};const Q=F=>{var B;(B=i.onVideoIdChange)==null||B.call(i,F)};function me(F,B){if(F===fe.StreamStarted&&typeof B=="object"&&"metadata"in B){const le=B.metadata;Q(le.videoId)}F===fe.StreamDone&&Q(null),u=F===fe.StreamStarted?H.Start:H.Stop,Ur({statsSignal:_===Oe.Legacy?h:void 0,dataChannelSignal:u,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:_})}function ae(F,B){const le=typeof B=="string"?B:B==null?void 0:B.metadata;le&&a.enrich({streamMetadata:le}),a.track("agent-chat",{event:"ready"})}const ge={[fe.StreamStarted]:me,[fe.StreamDone]:me,[fe.StreamReady]:ae};S.onmessage=F=>{var Et;const{subject:B,data:le}=c(F.data);(Et=ge[B])==null||Et.call(ge,B,le)},R.oniceconnectionstatechange=()=>{var B;o("peerConnection.oniceconnectionstatechange => "+R.iceConnectionState);const F=Nr(R.iceConnectionState);F!==Y.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,F))},R.ontrack=F=>{var B;o("peerConnection.ontrack",F),(B=i.onSrcObjectReady)==null||B.call(i,F.streams[0])},await R.setRemoteDescription(O),o("set remote description OK");const De=await R.createAnswer();return o("create answer OK"),await R.setLocalDescription(De),o("set local description OK"),await m(w,De,v),o("start connection OK"),{speak(F){return y(w,v,F)},async disconnect(){var F;if(w){const B=Nr(R.iceConnectionState);if(R){if(B===Y.New){clearInterval(G);return}R.close(),R.oniceconnectionstatechange=null,R.onnegotiationneeded=null,R.onicecandidate=null,R.ontrack=null}try{B===Y.Connected&&await g(w,v).catch(le=>{})}catch(le){o("Error on close stream connection",le)}(F=i.onAgentActivityStateChange)==null||F.call(i,je.Idle),clearInterval(G)}},sendDataChannelMessage(F){var B,le;if(!d||S.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:w});return}try{S.send(F)}catch(Et){o("Error sending data channel message",Et),(le=i.onError)==null||le.call(i,Et,{streamId:w})}},sessionId:v,streamId:w,streamType:_,interruptAvailable:L??!1}}const Lc=n=>n.presenter.type===Kn.Expressive;async function Nc(n,e,t){const i=n.id;if(Lc(n)){const{createLiveKitStreamingManager:r}=await Promise.resolve().then(()=>$c);return r(i,e,t)}else return xc(i,e,t)}function Uc(n){const{streamOptions:e}=n??{};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}}function Fc(n,e,t,i,r){r===Oe.Fluent?jc(n,e,t,i,r):Vc(n,e,t,i,r)}function jc(n,e,t,i,r){n===H.Start?i.track("stream-session",{event:"start","stream-type":r}):n===H.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 Bc(n,e,t,i){Me.get()<=0||(n===H.Start?t.linkTrack("agent-video",{event:"start",latency:Me.get(!0),"stream-type":i},"start",[fe.StreamVideoCreated]):n===H.Stop&&t.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":i},"done",[fe.StreamVideoDone]))}function Vc(n,e,t,i,r){Me.get()<=0||(n===H.Start?i.linkTrack("agent-video",{event:"start",latency:Me.get(!0),"stream-type":r},"start",[fe.StreamVideoCreated]):n===H.Stop&&i.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t},"done",[fe.StreamVideoDone]))}function qc(n,e,t){return Me.reset(),new Promise(async(i,r)=>{try{let s;s=await Nc(n,Uc(e),{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:a=>{var o,c;(c=(o=e.callbacks).onConnectionStateChange)==null||c.call(o,a),a===Y.Connected&&i(s)},onVideoStateChange:(a,o)=>{var c,d;(d=(c=e.callbacks).onVideoStateChange)==null||d.call(c,a),Fc(a,n,o,t,s.streamType)},onAgentActivityStateChange:a=>{var o,c;(c=(o=e.callbacks).onAgentActivityStateChange)==null||c.call(o,a),a===je.Talking?Jn.update():Jn.reset(),Bc(a===je.Talking?H.Start:H.Stop,n,t,s.streamType)}}})}catch(s){r(s)}})}async function Kc(n,e,t,i,r){var u,h,m,y;const s=xr(n,t,i,e.mode,e.persistentChat,r),a=qc(n,e,i),[o,c]=await Promise.all([s,a]),{chat:d,chatMode:l}=o;return l&&l!==e.mode&&(e.mode=l,(h=(u=e.callbacks).onModeChange)==null||h.call(u,l),l!==ue.Functional)?((y=(m=e.callbacks).onError)==null||y.call(m,new mr(l)),c==null||c.disconnect(),{chat:d}):{chat:d,streamingManager:c}}async function zc(n,e){var T,w,O;let t=!0,i=null;const r=e.mixpanelKey||ec,s=e.wsURL||Zo,a=e.baseURL||Pt,o={messages:[],chatMode:e.mode||ue.Functional},c=lc({token:r,agentId:n,isEnabled:e.enableAnalitics,distinctId:e.distinctId});c.track("agent-sdk",{event:"init"});const d=Ir(e.auth,a,e.callbacks.onError),l=await d.getById(n);c.enrich(ac(l));const{onMessage:u,clearQueue:h}=bc(c,o,e,l,()=>{var p;return(p=o.socketManager)==null?void 0:p.disconnect()});o.messages=uc(e.initialMessages),(w=(T=e.callbacks).onNewMessage)==null||w.call(T,[...o.messages],"answer");const m=p=>{i=p};c.track("agent-sdk",{event:"loaded",...sc(l)});async function y(p){var _,M,N,U,G,Q,me;(M=(_=e.callbacks).onConnectionStateChange)==null||M.call(_,Y.Connecting),Me.reset(),p&&!t&&(delete o.chat,(U=(N=e.callbacks).onNewMessage)==null||U.call(N,[...o.messages],"answer"));const v=e.mode===ue.DirectPlayback?Promise.resolve(void 0):gc(e.auth,s,{onMessage:u,onError:e.callbacks.onError}),k=Wn(()=>Kc(l,{...e,callbacks:{...e.callbacks,onVideoIdChange:m}},d,c,o.chat),{limit:3,timeout:Yo,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:ae=>(ae==null?void 0:ae.message)!=="Could not connect"&&ae.status!==429,delayMs:1e3}).catch(ae=>{var ge,De;throw P(ue.Maintenance),(De=(ge=e.callbacks).onConnectionStateChange)==null||De.call(ge,Y.Fail),ae}),[L,{streamingManager:R,chat:S}]=await Promise.all([v,k]);S&&S.id!==((G=o.chat)==null?void 0:G.id)&&((me=(Q=e.callbacks).onNewChat)==null||me.call(Q,S.id)),o.streamingManager=R,o.socketManager=L,o.chat=S,t=!1,c.enrich({chatId:S==null?void 0:S.id,streamId:R==null?void 0:R.streamId,mode:o.chatMode}),P((S==null?void 0:S.chat_mode)??e.mode??ue.Functional)}async function g(){var p,v,k,L;(p=o.socketManager)==null||p.disconnect(),await((v=o.streamingManager)==null?void 0:v.disconnect()),delete o.streamingManager,delete o.socketManager,(L=(k=e.callbacks).onConnectionStateChange)==null||L.call(k,Y.Disconnected)}async function P(p){var v,k;p!==o.chatMode&&(c.track("agent-mode-change",{mode:p}),o.chatMode=p,o.chatMode!==ue.Functional&&await g(),(k=(v=e.callbacks).onModeChange)==null||k.call(v,p))}return{agent:l,getStreamType:()=>{var p;return(p=o.streamingManager)==null?void 0:p.streamType},getIsInterruptAvailable:()=>{var p;return((p=o.streamingManager)==null?void 0:p.interruptAvailable)??!1},starterMessages:((O=l.knowledge)==null?void 0:O.starter_message)||[],getSTTToken:()=>d.getSTTToken(l.id),changeMode:P,enrichAnalytics:c.enrich,async connect(){await y(!0),c.track("agent-chat",{event:"connect",mode:o.chatMode})},async reconnect(){await g(),await y(!1),c.track("agent-chat",{event:"reconnect",mode:o.chatMode})},async disconnect(){await g(),c.track("agent-chat",{event:"disconnect",mode:o.chatMode})},async chat(p){var R,S,_,M,N;const v=()=>{if(wr(e.mode))throw new ht(`${e.mode} is enabled, chat is disabled`);if(p.length>=800)throw new ht("Message cannot be more than 800 characters");if(p.length===0)throw new ht("Message cannot be empty");if(o.chatMode===ue.Maintenance)throw new ht("Chat is in maintenance mode");if(![ue.TextOnly,ue.Playground].includes(o.chatMode)){if(!o.streamingManager)throw new ht("Streaming manager is not initialized");if(!o.chat)throw new ht("Chat is not initialized")}},k=async()=>{var U,G;if(!o.chat){const Q=await xr(l,d,c,o.chatMode,e.persistentChat);if(!Q.chat)throw new ut(o.chatMode,!!e.persistentChat);o.chat=Q.chat,(G=(U=e.callbacks).onNewChat)==null||G.call(U,o.chat.id)}return o.chat.id},L=async(U,G)=>Wn(()=>{var Q,me;return d.chat(l.id,G,{chatMode:o.chatMode,streamId:(Q=o.streamingManager)==null?void 0:Q.streamId,sessionId:(me=o.streamingManager)==null?void 0:me.sessionId,messages:U.map(({matches:ae,...ge})=>ge)},{...Ar(o.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Q=>{var ge,De,rt,F;const me=(ge=Q==null?void 0:Q.message)==null?void 0:ge.includes("missing or invalid session_id");return!((De=Q==null?void 0:Q.message)==null?void 0:De.includes("Stream Error"))&&!me?((F=(rt=e.callbacks).onError)==null||F.call(rt,Q),!1):!0},onRetry:async()=>{await g(),await y(!1)}});try{h(),v(),o.messages.push({id:wt(),role:"user",content:p,created_at:new Date(Me.update()).toISOString()}),(S=(R=e.callbacks).onNewMessage)==null||S.call(R,[...o.messages],"user");const U=await k(),G=await L([...o.messages],U);return o.messages.push({id:wt(),role:"assistant",content:G.result||"",created_at:new Date().toISOString(),context:G.context,matches:G.matches}),c.track("agent-message-send",{event:"success",messages:o.messages.length+1}),G.result&&((M=(_=e.callbacks).onNewMessage)==null||M.call(_,[...o.messages],"answer"),c.track("agent-message-received",{latency:Me.get(!0),messages:o.messages.length})),G}catch(U){throw((N=o.messages[o.messages.length-1])==null?void 0:N.role)==="assistant"&&o.messages.pop(),c.track("agent-message-send",{event:"error",messages:o.messages.length}),U}},rate(p,v,k){var S,_,M,N;const L=o.messages.find(U=>U.id===p);if(o.chat){if(!L)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const R=((S=L.matches)==null?void 0:S.map(U=>[U.document_id,U.id]))??[];return c.track("agent-rate",{event:k?"update":"create",thumb:v===1?"up":"down",knowledge_id:((_=l.knowledge)==null?void 0:_.id)??"",matches:R,score:v}),k?d.updateRating(l.id,o.chat.id,k,{knowledge_id:((M=l.knowledge)==null?void 0:M.id)??"",message_id:p,matches:R,score:v}):d.createRating(l.id,o.chat.id,{knowledge_id:((N=l.knowledge)==null?void 0:N.id)??"",message_id:p,matches:R,score:v})},deleteRate(p){if(!o.chat)throw new Error("Chat is not initialized");return c.track("agent-rate-delete",{type:"text"}),d.deleteRating(l.id,o.chat.id,p)},async speak(p){var R,S,_;function v(){if(typeof p=="string"){if(!l.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:l.presenter.voice,input:p,ssml:!1}}if(p.type==="text"&&!p.provider){if(!l.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:l.presenter.voice,input:p.input,ssml:p.ssml}}return p}const k=v();if(c.track("agent-speak",k),Me.update(),o.messages&&k.type==="text"&&(o.messages.push({id:wt(),role:"assistant",content:k.input,created_at:new Date(Me.get(!0)).toISOString()}),(S=(R=e.callbacks).onNewMessage)==null||S.call(R,[...o.messages],"answer")),tc(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:k,metadata:{chat_id:(_=o.chat)==null?void 0:_.id,agent_id:l.id}})},async interrupt({type:p}){var k,L,R;hc(o.streamingManager,(k=o.streamingManager)==null?void 0:k.streamType,i);const v=o.messages[o.messages.length-1];c.track("agent-video-interrupt",{type:p||"click",video_duration_to_interrupt:Jn.get(!0),message_duration_to_interrupt:Me.get(!0)}),v.interrupted=!0,(R=(L=e.callbacks).onNewMessage)==null||R.call(L,[...o.messages],"answer"),fc(o.streamingManager,i)}}}function Wc(n,e,t){const{getById:i}=Ir(e,t||Pt);return i(n)}function Gc(n,e,t,i){const r=Gn(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/streams",s)}}}async function Hc(){try{return await Promise.resolve().then(()=>Kh)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}async function Jc(n,e,t){var k,L,R;const i=Lr(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:a,RemoteParticipant:o,RemoteTrack:c}=await Hc(),{callbacks:d,auth:l,baseURL:u,analytics:h}=t;let m=null,y=!1,g=null,P=null;const T=Oe.Fluent;m=new r({adaptiveStream:!0,dynacast:!0}),m.on(s.ConnectionStateChanged,S=>{var _,M,N,U,G;switch(i("Connection state changed:",S),S){case a.Connecting:(_=d.onConnectionStateChange)==null||_.call(d,Y.Connecting);break;case a.Connected:i("LiveKit room connected successfully"),y=!0,(M=d.onConnectionStateChange)==null||M.call(d,Y.Connected);break;case a.Disconnected:i("LiveKit room disconnected"),y=!1,(N=d.onConnectionStateChange)==null||N.call(d,Y.Disconnected);break;case a.Reconnecting:i("LiveKit room reconnecting..."),(U=d.onConnectionStateChange)==null||U.call(d,Y.Connecting);break;case a.SignalReconnecting:i("LiveKit room signal reconnecting..."),(G=d.onConnectionStateChange)==null||G.call(d,Y.Connecting);break}}),m.on(s.ConnectionQualityChanged,(S,_)=>{var M;_!=null&&_.isLocal&&S==="poor"&&(i("Connection quality is poor"),(M=d.onConnectivityStateChange)==null||M.call(d,mt.Weak))}),m.on(s.ParticipantConnected,S=>{i("Participant connected:",S.identity)}),m.on(s.TrackSubscribed,(S,_,M)=>{var N,U;i(`Track subscribed: ${S.kind} from ${M.identity}`),P?P.addTrack(S.mediaStreamTrack):P=new MediaStream([S.mediaStreamTrack]),(N=d.onSrcObjectReady)==null||N.call(d,P),S.kind==="video"&&((U=d.onVideoStateChange)==null||U.call(d,H.Start))}),m.on(s.TrackUnsubscribed,(S,_,M)=>{var N;i(`Track unsubscribed: ${S.kind} from ${M.identity}`),S.kind==="video"&&((N=d.onVideoStateChange)==null||N.call(d,H.Stop))}),m.on(s.DataReceived,(S,_)=>{var N,U,G,Q,me;const M=new TextDecoder().decode(S);i("Data received:",M);try{const ae=JSON.parse(M);ae.subject===fe.StreamStarted&&((N=ae.metadata)!=null&&N.videoId)?(g=ae.metadata.videoId,(U=d.onVideoIdChange)==null||U.call(d,g),(G=d.onAgentActivityStateChange)==null||G.call(d,je.Talking)):ae.subject===fe.StreamDone&&(g=null,(Q=d.onVideoIdChange)==null||Q.call(d,g),(me=d.onAgentActivityStateChange)==null||me.call(d,je.Idle))}catch(ae){i("Failed to parse data channel message:",ae)}}),(k=d.onConnectionStateChange)==null||k.call(d,Y.New);const w=Gc(l,u||Pt,n,d.onError);let O,p;try{const S=await w.createStream({transport:zn.Livekit}),{agent_id:_,session_id:M,session_token:N,session_url:U}=S;O=_,p=M,await m.connect(U,N),i("LiveKit room joined successfully")}catch(S){throw i("Failed to connect to LiveKit room:",S),(L=d.onConnectionStateChange)==null||L.call(d,Y.Fail),(R=d.onError)==null||R.call(d,S,{streamId:""}),S}h.enrich({"stream-type":T});async function v(S){var _,M;if(!y||!m){i("Room is not connected for sending messages"),(_=d.onError)==null||_.call(d,new Error("Room is not connected for sending messages"),{streamId:O});return}try{await m.localParticipant.publishData(new TextEncoder().encode(S),{reliable:!0})}catch(N){i("Error sending data channel message",N),(M=d.onError)==null||M.call(d,N,{streamId:O})}}return{speak(S){const _=JSON.stringify({type:"speak",payload:S});return v(_)},async disconnect(){var S,_;m&&(await m.disconnect(),m=null),P&&(P.getTracks().forEach(M=>M.stop()),P=null),y=!1,(S=d.onConnectionStateChange)==null||S.call(d,Y.Completed),(_=d.onAgentActivityStateChange)==null||_.call(d,je.Idle)},sendDataChannelMessage:v,sessionId:p,streamId:O,streamType:T,interruptAvailable:!0}}const $c=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:Jc},Symbol.toStringTag,{value:"Module"}));function Qc(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 Yc=Object.defineProperty,Xc=(n,e,t)=>e in n?Yc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Fr=(n,e,t)=>Xc(n,typeof e!="symbol"?e+"":e,t);class pe{constructor(){Fr(this,"_locking"),Fr(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 te(n,e){if(!n)throw new Error(e)}const Zc=34028234663852886e22,ed=-34028234663852886e22,td=4294967295,nd=2147483647,id=-2147483648;function ln(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>nd||n<id)throw new Error("invalid int 32: "+n)}function Qn(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>td||n<0)throw new Error("invalid uint 32: "+n)}function jr(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Zc||n<ed))throw new Error("invalid float 32: "+n)}const Br=Symbol("@bufbuild/protobuf/enum-type");function rd(n){const e=n[Br];return te(e,"missing enum type on enum object"),e}function Vr(n,e,t,i){n[Br]=qr(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function qr(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const a of e){const o=Kr(a);s.push(o),i[a.name]=o,r[a.no]=o}return{typeName:n,values:s,findName(a){return i[a]},findNumber(a){return r[a]}}}function sd(n,e,t){const i={};for(const r of e){const s=Kr(r);i[s.localName]=s.no,i[s.no]=s.localName}return Vr(i,n,e),i}function Kr(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class Yn{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 ad(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),a={[s]:function(o){n.util.initFields(this),n.util.initPartial(o,this)}}[s];return Object.setPrototypeOf(a.prototype,new Yn),Object.assign(a,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(o,c){return new a().fromBinary(o,c)},fromJson(o,c){return new a().fromJson(o,c)},fromJsonString(o,c){return new a().fromJsonString(o,c)},equals(o,c){return n.util.equals(a,o,c)}}),a}function od(){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 Xn(n,e,t){for(let s=0;s<28;s=s+7){const a=n>>>s,o=!(!(a>>>7)&&e==0),c=(o?a|128:a)&255;if(t.push(c),!o)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 a=e>>>s,o=!!(a>>>7),c=(o?a|128:a)&255;if(t.push(c),!o)return}t.push(e>>>31&1)}}const un=4294967296;function zr(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(a,o){const c=Number(n.slice(a,o));r*=t,i=i*t+c,i>=un&&(r=r+(i/un|0),i=i%un)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Gr(i,r):Zn(i,r)}function cd(n,e){let t=Zn(n,e);const i=t.hi&2147483648;i&&(t=Gr(t.lo,t.hi));const r=Wr(t.lo,t.hi);return i?"-"+r:r}function Wr(n,e){if({lo:n,hi:e}=dd(n,e),e<=2097151)return String(un*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,a=i+r*8147497,o=r*2;const c=1e7;return s>=c&&(a+=Math.floor(s/c),s%=c),a>=c&&(o+=Math.floor(a/c),a%=c),o.toString()+Hr(a)+Hr(s)}function dd(n,e){return{lo:n>>>0,hi:e>>>0}}function Zn(n,e){return{lo:n|0,hi:e|0}}function Gr(n,e){return e=~e,n?n=~n+1:e+=1,Zn(n,e)}const Hr=n=>{const e=String(n);return"0000000".slice(e.length)+e};function Jr(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 ld(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function ud(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),a=BigInt("0"),o=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>s||d<r)throw new Error("int64 invalid: ".concat(c));return d},uParse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>o||d<a)throw new Error("uint64 invalid: ".concat(c));return d},enc(c){return n.setBigInt64(0,this.parse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(c){return n.setBigInt64(0,this.uParse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>te(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>te(/^[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),zr(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),zr(r)},dec(r,s){return cd(r,s)},uDec(r,s){return Wr(r,s)}}}const Z=ud();var E;(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"})(E||(E={}));var st;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(st||(st={}));function at(n,e,t){if(e===t)return!0;if(n==E.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 E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==t}return!1}function Rt(n,e){switch(n){case E.BOOL:return!1;case E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==0?Z.zero:"0";case E.DOUBLE:case E.FLOAT:return 0;case E.BYTES:return new Uint8Array(0);case E.STRING:return"";default:return 0}}function $r(n,e){switch(n){case E.BOOL:return e===!1;case E.STRING:return e==="";case E.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var ie;(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"})(ie||(ie={}));class hd{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(Qn(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ln(e),Jr(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){jr(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){Qn(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ln(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ln(e),e=(e<<1^e>>31)>>>0,Jr(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=Z.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=Z.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=Z.enc(e);return Xn(t.lo,t.hi,this.buf),this}sint64(e){let t=Z.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return Xn(r,s,this.buf),this}uint64(e){let t=Z.uEnc(e);return Xn(t.lo,t.hi,this.buf),this}}class fd{constructor(e,t){this.varint64=od,this.uint32=ld,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 ie.Varint:for(;this.buf[this.pos++]&128;);break;case ie.Bit64:this.pos+=4;case ie.Bit32:this.pos+=4;break;case ie.LengthDelimited:let r=this.uint32();this.pos+=r;break;case ie.StartGroup:for(;;){const[s,a]=this.tag();if(a===ie.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(a,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 Z.dec(...this.varint64())}uint64(){return Z.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,Z.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 Z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return Z.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 md(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 Qr(n){const e=n.field.localName,t=Object.create(null);return t[e]=pd(n),[t,()=>t[e]]}function pd(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 Rt(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 gd(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 Je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),hn=[];for(let n=0;n<Je.length;n++)hn[Je[n].charCodeAt(0)]=n;hn[45]=Je.indexOf("+"),hn[95]=Je.indexOf("/");const Yr={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,a=0;for(let o=0;o<n.length;o++){if(s=hn[n.charCodeAt(o)],s===void 0)switch(n[o]){case"=":r=0;case`
|
|
1
|
+
(function(q,he){typeof exports=="object"&&typeof module<"u"?he(exports):typeof define=="function"&&define.amd?define(["exports"],he):(q=typeof globalThis<"u"?globalThis:q||self,he(q.index={}))})(this,function(q){"use strict";var zh=Object.defineProperty;var Wh=(q,he,ut)=>he in q?zh(q,he,{enumerable:!0,configurable:!0,writable:!0,value:ut}):q[he]=ut;var dn=(q,he,ut)=>Wh(q,typeof he!="symbol"?he+"":he,ut);class he extends Error{constructor({kind:t,description:i,error:r}){super(JSON.stringify({kind:t,description:i}));dn(this,"kind");dn(this,"description");dn(this,"error");this.kind=t,this.description=i,this.error=r}}class ut extends he{constructor(e,t){super({kind:"ChatCreationFailed",description:`Failed to create ${t?"persistent":""} chat, mode: ${e}`})}}class mr extends he{constructor(e){super({kind:"ChatModeDowngraded",description:`Chat mode downgraded to ${e}`})}}class ht extends he{constructor(t,i){super({kind:"ValidationError",description:t});dn(this,"key");this.key=i}}class pr extends he{constructor(e){super({kind:"WSError",description:e})}}var gr=(n=>(n.TRIAL="trial",n.BASIC="basic",n.ENTERPRISE="enterprise",n.LITE="lite",n.ADVANCED="advanced",n))(gr||{}),vr=(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))(vr||{}),yr=(n=>(n.Created="created",n.Started="started",n.Done="done",n.Error="error",n.Rejected="rejected",n.Ready="ready",n))(yr||{}),br=(n=>(n.Unrated="Unrated",n.Positive="Positive",n.Negative="Negative",n))(br||{}),ue=(n=>(n.Functional="Functional",n.TextOnly="TextOnly",n.Maintenance="Maintenance",n.Playground="Playground",n.DirectPlayback="DirectPlayback",n.Off="Off",n))(ue||{}),ft=(n=>(n.Embed="embed",n.Query="query",n.Partial="partial",n.Answer="answer",n.Complete="done",n))(ft||{}),kr=(n=>(n.KnowledgeProcessing="knowledge/processing",n.KnowledgeIndexing="knowledge/indexing",n.KnowledgeFailed="knowledge/error",n.KnowledgeDone="knowledge/done",n))(kr||{}),Tr=(n=>(n.Knowledge="knowledge",n.Document="document",n.Record="record",n))(Tr||{}),Sr=(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))(Sr||{}),Kn=(n=>(n.Clip="clip",n.Talk="talk",n.Expressive="expressive",n))(Kn||{});const Qo=n=>{switch(n){case"clip":return"clip";case"talk":return"talk";default:throw new Error(`Unknown video type: ${n}`)}};var H=(n=>(n.Start="START",n.Stop="STOP",n))(H||{}),mt=(n=>(n.Strong="STRONG",n.Weak="WEAK",n.Unknown="UNKNOWN",n))(mt||{}),je=(n=>(n.Idle="IDLE",n.Talking="TALKING",n))(je||{}),fe=(n=>(n.ChatAnswer="chat/answer",n.ChatPartial="chat/partial",n.StreamDone="stream/done",n.StreamStarted="stream/started",n.StreamFailed="stream/error",n.StreamReady="stream/ready",n.StreamCreated="stream/created",n.StreamInterrupt="stream/interrupt",n.StreamVideoCreated="stream-video/started",n.StreamVideoDone="stream-video/done",n.StreamVideoError="stream-video/error",n.StreamVideoRejected="stream-video/rejected",n))(fe||{}),Y=(n=>(n.New="new",n.Fail="fail",n.Connected="connected",n.Connecting="connecting",n.Closed="closed",n.Completed="completed",n.Disconnected="disconnected",n))(Y||{}),Oe=(n=>(n.Legacy="legacy",n.Fluent="fluent",n))(Oe||{}),zn=(n=>(n.Livekit="livekit",n))(zn||{}),Cr=(n=>(n.Amazon="amazon",n.Microsoft="microsoft",n.Afflorithmics="afflorithmics",n.Elevenlabs="elevenlabs",n))(Cr||{}),Er=(n=>(n.Public="public",n.Premium="premium",n.Private="private",n))(Er||{});const Yo=45*1e3,Xo="X-Playground-Chat",Pt="https://api.d-id.com",Zo="wss://notifications.d-id.com",ec="79f81a83a67430be2bc0fd61042b8faa",Pr=n=>new Promise(e=>setTimeout(e,n)),wt=(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)},tc=n=>[ue.TextOnly,ue.Playground,ue.Maintenance].includes(n),wr=n=>n&&[ue.DirectPlayback,ue.Off].includes(n);function nc(n,e){let t;return{promise:new Promise((r,s)=>{t=setTimeout(()=>s(new Error(e)),n)}),clear:()=>clearTimeout(t)}}async function Wn(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:a}=nc(t.timeout,t.timeoutErrorMessage),o=n().finally(a);return await Promise.race([o,s])}catch(s){if(i=s,!t.shouldRetryFn(s)||r>=t.limit)throw s;await Pr(t.delayMs),t.onRetry(s)}throw i}function Rr(){let n=window.localStorage.getItem("did_external_key_id");if(!n){let e=wt();window.localStorage.setItem("did_external_key_id",e),n=e}return n}let ic=wt();function _r(n){if(n.type==="bearer")return`Bearer ${n.token}`;if(n.type==="basic")return`Basic ${btoa(`${n.username}:${n.password}`)}`;if(n.type==="key")return`Client-Key ${n.clientKey}.${Rr()}_${ic}`;throw new Error(`Unknown auth type: ${n}`)}const rc=n=>Wn(n,{limit:3,delayMs:1e3,timeout:0,shouldRetryFn:e=>e.status===429});function Gn(n,e=Pt,t){const i=async(r,s)=>{const{skipErrorHandler:a,...o}=s||{},c=await rc(()=>fetch(e+(r!=null&&r.startsWith("/")?r:`/${r}`),{...o,headers:{...o.headers,Authorization:_r(n),"Content-Type":"application/json"}}));if(!c.ok){let d=await c.text().catch(()=>`Failed to fetch with status ${c.status}`);const l=new Error(d);throw t&&!a&&t(l,{url:r,options:o,headers:c.headers}),l}return c.json()};return{get(r,s){return i(r,{...s,method:"GET"})},post(r,s,a){return i(r,{...a,body:JSON.stringify(s),method:"POST"})},delete(r,s,a){return i(r,{...a,body:JSON.stringify(s),method:"DELETE"})},patch(r,s,a){return i(r,{...a,body:JSON.stringify(s),method:"PATCH"})}}}function Ir(n,e=Pt,t){const i=Gn(n,`${e}/agents`,t);return{create(r,s){return i.post("/",r,s)},getAgents(r,s){return i.get(`/${r?`?tag=${r}`:""}`,s).then(a=>a??[])},getById(r,s){return i.get(`/${r}`,s)},delete(r,s){return i.delete(`/${r}`,void 0,s)},update(r,s,a){return i.patch(`/${r}`,s,a)},newChat(r,s,a){return i.post(`/${r}/chat`,s,a)},chat(r,s,a,o){return i.post(`/${r}/chat/${s}`,a,o)},createRating(r,s,a,o){return i.post(`/${r}/chat/${s}/ratings`,a,o)},updateRating(r,s,a,o,c){return i.patch(`/${r}/chat/${s}/ratings/${a}`,o,c)},deleteRating(r,s,a,o){return i.delete(`/${r}/chat/${s}/ratings/${a}`,o)},getSTTToken(r,s){return i.get(`/${r}/stt-token`,s)}}}const Dr=n=>n.type==="clip"&&n.presenter_id.startsWith("v2_")?"clip_v2":n.type;function sc(n){var r,s,a,o;const e=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop",t=()=>{const c=navigator.platform;return c.toLowerCase().includes("win")?"Windows":c.toLowerCase().includes("mac")?"Mac OS X":c.toLowerCase().includes("linux")?"Linux":"Unknown"},i=n.presenter;return{$os:`${t()}`,isMobile:`${e()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:Dr(i),agentVoice:{voiceId:(s=(r=n.presenter)==null?void 0:r.voice)==null?void 0:s.voice_id,provider:(o=(a=n.presenter)==null?void 0:a.voice)==null?void 0:o.type}}}function ac(n){var t,i,r,s,a,o;const e=(t=n.llm)==null?void 0:t.prompt_customization;return{agentType:Dr(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:(o=(a=n.knowledge)==null?void 0:a.starter_message)==null?void 0:o.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 oc=n=>n.reduce((e,t)=>e+t,0),Or=n=>oc(n)/n.length;function cc(n,e,t){var c,d,l;const{event:i,...r}=n,{template:s}=(e==null?void 0:e.llm)||{},{language:a}=((c=e==null?void 0:e.presenter)==null?void 0:c.voice)||{};return{...r,llm:{...r.llm,template:s},script:{...r.script,provider:{...(d=r==null?void 0:r.script)==null?void 0:d.provider,language:a}},stitch:(e==null?void 0:e.presenter.type)==="talk"?(l=e==null?void 0:e.presenter)==null?void 0:l.stitch:void 0,...t}}let Hn={};const dc="https://api-js.mixpanel.com/track/?verbose=1&ip=1";function lc(n){const e=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk";return{token:n.token||"testKey",distinct_id:n.distinctId||Rr(),agentId:n.agentId,additionalProperties:{id:n.distinctId,...n.mixpanelAdditionalProperties||{}},isEnabled:n.isEnabled??!0,getRandom:wt,enrich(t){this.additionalProperties={...this.additionalProperties,...t}},async track(t,i){if(!this.isEnabled)return Promise.resolve();const{audioPath:r,...s}=i||{},a={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:t,properties:{...this.additionalProperties,...s,agentId:this.agentId,source:e,token:this.token,time:Date.now(),$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}}])})};try{return await fetch(dc,a).then(o=>o.json())}catch(o){return console.error(o)}},linkTrack(t,i,r,s){Hn[t]||(Hn[t]={events:{},resolvedDependencies:[]}),s.includes(r)||s.push(r);const a=Hn[t];if(a.events[r]={props:i},a.resolvedDependencies.push(r),s.every(c=>a.resolvedDependencies.includes(c))){const c=s.reduce((d,l)=>a.events[l]?{...d,...a.events[l].props}:d,{});this.track(t,c),a.resolvedDependencies=a.resolvedDependencies.filter(d=>!s.includes(d)),s.forEach(d=>{delete a.events[d]})}}}}function Mr(){let n=0;return{reset:()=>n=0,update:()=>n=Date.now(),get:(e=!1)=>e?Date.now()-n:n}}const Me=Mr(),Jn=Mr();function Ar(n){return n===ue.Playground?{headers:{[Xo]:"true"}}:{}}async function xr(n,e,t,i,r=!1,s){try{return!s&&!wr(i)&&(s=await e.newChat(n.id,{persist:r},Ar(i)),t.track("agent-chat",{event:"created",chatId:s.id,mode:i})),{chat:s,chatMode:(s==null?void 0:s.chat_mode)??i}}catch(a){try{const o=JSON.parse(a.message);if((o==null?void 0:o.kind)==="InsufficientCreditsError")throw new Error("InsufficientCreditsError")}catch(o){console.error("Error parsing the error message:",o)}throw new Error("Cannot create new chat")}}function uc(n){return n&&n.length>0?n:[]}function hc(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!==Oe.Fluent)throw new Error("Interrupt only available for Fluent streams");if(!t)throw new Error("No active video to interrupt")}async function fc(n,e){const t={type:fe.StreamInterrupt,videoId:e,timestamp:Date.now()};n.sendDataChannelMessage(JSON.stringify(t))}function mc(n){return new Promise((e,t)=>{const{callbacks:i,host:r,auth:s}=n,{onMessage:a=null,onOpen:o=null,onClose:c=null,onError:d=null}=i||{},l=new WebSocket(`${r}?authorization=${_r(s)}`);l.onmessage=a,l.onclose=c,l.onerror=u=>{console.error(u),d==null||d("Websocket failed to connect",u),t(u)},l.onopen=u=>{o==null||o(u),e(l)}})}async function pc(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 mc(n)}catch(r){if(i===e)throw r;await Pr(i*500)}return t}async function gc(n,e,t){const i=t!=null&&t.onMessage?[t.onMessage]:[],r=await pc({auth:n,host:e,callbacks:{onError:s=>{var a;return(a=t.onError)==null?void 0:a.call(t,new pr(s))},onMessage(s){const a=JSON.parse(s.data);i.forEach(o=>o(a.event,a))}}});return{socket:r,disconnect:()=>r.close(),subscribeToEvents:s=>i.push(s)}}function vc(n){if(n.answer!==void 0)return n.answer;let e=0,t="";for(;e in n;)t+=n[e++];return t}function yc(n,e,t,i,r){const s=i.messages[i.messages.length-1];if(!(n===ft.Partial||n===ft.Answer)||(s==null?void 0:s.role)!=="assistant")return;const{content:a,sequence:o}=e;n===ft.Partial?t[o]=a:t.answer=a;const c=vc(t);(s.content!==c||n===ft.Answer)&&(s.content=c,r==null||r([...i.messages],n))}function bc(n,e,t,i,r){let s={};return{clearQueue:()=>s={},onMessage:(a,o)=>{var c,d;if("content"in o)yc(a,o,s,e,t.callbacks.onNewMessage),a===ft.Answer&&n.track("agent-message-received",{messages:e.messages.length,mode:e.chatMode});else{const l=fe,u=[l.StreamVideoDone,l.StreamVideoError,l.StreamVideoRejected],h=[l.StreamFailed,l.StreamVideoError,l.StreamVideoRejected],m=cc(o,i,{mode:e.chatMode});if(a=a,a===l.StreamVideoCreated)n.linkTrack("agent-video",m,l.StreamVideoCreated,["start"]);else if(u.includes(a)){const y=a.split("/")[1];h.includes(a)?n.track("agent-video",{...m,event:y}):n.linkTrack("agent-video",{...m,event:y},a,["done"])}h.includes(a)&&((d=(c=t.callbacks).onError)==null||d.call(c,new Error(`Stream failed with event ${a}`),{data:o})),o.event===l.StreamDone&&r()}}}}function kc(n,e,t,i){const r=Gn(n,`${e}/agents/${t}`,i);return{createStream(s){return r.post("/streams",s)},startConnection(s,a,o){return r.post(`/streams/${s}/sdp`,{session_id:o,answer:a})},addIceCandidate(s,a,o){return r.post(`/streams/${s}/ice`,{session_id:o,...a})},sendStreamRequest(s,a,o){return r.post(`/streams/${s}`,{session_id:a,...o})},close(s,a){return r.delete(`/streams/${s}`,{session_id:a})}}}const Lr=(n,e)=>(t,i)=>n&&console.log(`[${e}] ${t}`,i??"");function Tc(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 Sc(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 Cc(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"&&(t=i.currentRoundTripTime),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 Ec(n,e,t){const i=n.map((c,d)=>d===0?t?{timestamp:c.timestamp,duration:0,rtt:c.rtt,bytesReceived:c.bytesReceived-t.bytesReceived,bitrate:(c.bytesReceived-t.bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-t.packetsReceived,packetsLost:c.packetsLost-t.packetsLost,framesDropped:c.framesDropped-t.framesDropped,framesDecoded:c.framesDecoded-t.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-t.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-t.jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-t.jitterBufferDelay)/(c.jitterBufferEmittedCount-t.jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-t.freezeCount,freezeDuration:c.freezeDuration-t.freezeDuration}:{timestamp:c.timestamp,rtt:c.rtt,duration:0,bytesReceived:c.bytesReceived,bitrate:c.bytesReceived*8/(e/1e3),packetsReceived:c.packetsReceived,packetsLost:c.packetsLost,framesDropped:c.framesDropped,framesDecoded:c.framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount,avgJitterDelayInInterval:c.jitterBufferDelay/c.jitterBufferEmittedCount,framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount,freezeDuration:c.freezeDuration}:{timestamp:c.timestamp,duration:e*d/1e3,rtt:c.rtt,bytesReceived:c.bytesReceived-n[d-1].bytesReceived,bitrate:(c.bytesReceived-n[d-1].bytesReceived)*8/(e/1e3),packetsReceived:c.packetsReceived-n[d-1].packetsReceived,packetsLost:c.packetsLost-n[d-1].packetsLost,framesDropped:c.framesDropped-n[d-1].framesDropped,framesDecoded:c.framesDecoded-n[d-1].framesDecoded,jitter:c.jitter,jitterBufferDelay:c.jitterBufferDelay-n[d-1].jitterBufferDelay,jitterBufferEmittedCount:c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount,avgJitterDelayInInterval:(c.jitterBufferDelay-n[d-1].jitterBufferDelay)/(c.jitterBufferEmittedCount-n[d-1].jitterBufferEmittedCount),framesPerSecond:c.framesPerSecond,freezeCount:c.freezeCount-n[d-1].freezeCount,freezeDuration:c.freezeDuration-n[d-1].freezeDuration}),r=Sc(i),s=r.reduce((c,d)=>c+(d.causes.includes("low fps")?1:0),0),a=i.filter(c=>!!c.avgJitterDelayInInterval).map(c=>c.avgJitterDelayInInterval),o=i.filter(c=>!!c.rtt).map(c=>c.rtt);return{webRTCStats:{anomalies:r,minRtt:Math.min(...o),avgRtt:Or(o),maxRtt:Math.max(...o),aggregateReport:Tc(n[0],n[n.length-1],s),minJitterDelayInInterval:Math.min(...a),maxJitterDelayInInterval:Math.max(...a),avgJitterDelayInInterval:Or(a)},codec:n[0].codec,resolution:`${n[0].frameWidth}x${n[0].frameHeight}`}}const $n=100,Pc=Math.max(Math.ceil(400/$n),1),wc=.25,Rc=.28;function _c(){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 a=s.jitterBufferDelay,o=s.jitterBufferEmittedCount;if(t&&o>t){const l=a-e,u=o-t;i=l/u}e=a,t=o;const c=s.framesDecoded,d=c-n>0;return n=c,{isReceiving:d,avgJitterDelayInInterval:i,freezeCount:s.freezeCount}}return{isReceiving:!1,avgJitterDelayInInterval:i}}}function Ic(n,e,t,i,r,s=!1){let a=[],o,c=0,d=!1,l=mt.Unknown,u=mt.Unknown,h=0,m=0;const y=_c();return setInterval(async()=>{const g=await n.getStats(),{isReceiving:P,avgJitterDelayInInterval:T,freezeCount:w}=y(g),O=Cc(g);if(P)c=0,h=w-m,u=T<wc?mt.Strong:T>Rc&&h>1?mt.Weak:l,u!==l&&(r==null||r(u),l=u,m+=h,h=0),d||(i==null||i(H.Start),o=a[a.length-1],a=[],d=!0),a.push(O);else if(d&&(c++,c>=Pc)){const p=Ec(a,$n,o);i==null||i(H.Stop,p),e()||t(),m=w,d=!1}},$n)}const Dc=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function Nr(n){switch(n){case"connected":return Y.Connected;case"checking":return Y.Connecting;case"failed":return Y.Fail;case"new":return Y.New;case"closed":return Y.Closed;case"disconnected":return Y.Disconnected;case"completed":return Y.Completed;default:return Y.New}}const Oc=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 Mc({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:i}){n===H.Start&&e===H.Start?t==null||t(H.Start):n===H.Stop&&e===H.Stop&&(t==null||t(H.Stop,i))}function Ac({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:r}){n===H.Start?t==null||t(H.Start):n===H.Stop&&(t==null||t(H.Stop,r)),e===H.Start?i==null||i(je.Talking):e===H.Stop&&(i==null||i(je.Idle))}function Ur({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,streamType:r,report:s}){r===Oe.Legacy?Mc({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,report:s}):r===Oe.Fluent&&Ac({statsSignal:n,dataChannelSignal:e,onVideoStateChange:t,onAgentActivityStateChange:i,report:s})}async function xc(n,e,{debug:t=!1,callbacks:i,auth:r,baseURL:s=Pt,analytics:a}){var rt;const o=Lr(t,"WebRTCStreamingManager"),c=Oc(o);let d=!1,l=!1,u=H.Stop,h=H.Stop;const{startConnection:m,sendStreamRequest:y,close:g,createStream:P,addIceCandidate:T}=kc(r,s,n,i.onError),{id:w,offer:O,ice_servers:p,session_id:v,fluent:k,interrupt_enabled:L}=await P(e);(rt=i.onStreamCreated)==null||rt.call(i,{stream_id:w,session_id:v,agent_id:n});const R=new Dc({iceServers:p}),S=R.createDataChannel("JanusDataChannel");if(!v)throw new Error("Could not create session_id");const _=k?Oe.Fluent:Oe.Legacy;a.enrich({"stream-type":_});const M=e.stream_warmup&&!k,N=()=>d,U=()=>{var F;d=!0,l&&((F=i.onConnectionStateChange)==null||F.call(i,Y.Connected))},G=Ic(R,N,U,(F,B)=>Ur({statsSignal:h=F,dataChannelSignal:_===Oe.Legacy?u:void 0,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,report:B,streamType:_}),F=>{var B;return(B=i.onConnectivityStateChange)==null?void 0:B.call(i,F)},M);R.onicecandidate=F=>{var B;o("peerConnection.onicecandidate",F);try{F.candidate&&F.candidate.sdpMid&&F.candidate.sdpMLineIndex!==null?T(w,{candidate:F.candidate.candidate,sdpMid:F.candidate.sdpMid,sdpMLineIndex:F.candidate.sdpMLineIndex},v):T(w,{candidate:null},v)}catch(le){(B=i.onError)==null||B.call(i,le,{streamId:w})}},S.onopen=()=>{l=!0,(!M||d)&&U()};const Q=F=>{var B;(B=i.onVideoIdChange)==null||B.call(i,F)};function me(F,B){if(F===fe.StreamStarted&&typeof B=="object"&&"metadata"in B){const le=B.metadata;Q(le.videoId)}F===fe.StreamDone&&Q(null),u=F===fe.StreamStarted?H.Start:H.Stop,Ur({statsSignal:_===Oe.Legacy?h:void 0,dataChannelSignal:u,onVideoStateChange:i.onVideoStateChange,onAgentActivityStateChange:i.onAgentActivityStateChange,streamType:_})}function ae(F,B){const le=typeof B=="string"?B:B==null?void 0:B.metadata;le&&a.enrich({streamMetadata:le}),a.track("agent-chat",{event:"ready"})}const ge={[fe.StreamStarted]:me,[fe.StreamDone]:me,[fe.StreamReady]:ae};S.onmessage=F=>{var Et;const{subject:B,data:le}=c(F.data);(Et=ge[B])==null||Et.call(ge,B,le)},R.oniceconnectionstatechange=()=>{var B;o("peerConnection.oniceconnectionstatechange => "+R.iceConnectionState);const F=Nr(R.iceConnectionState);F!==Y.Connected&&((B=i.onConnectionStateChange)==null||B.call(i,F))},R.ontrack=F=>{var B;o("peerConnection.ontrack",F),(B=i.onSrcObjectReady)==null||B.call(i,F.streams[0])},await R.setRemoteDescription(O),o("set remote description OK");const De=await R.createAnswer();return o("create answer OK"),await R.setLocalDescription(De),o("set local description OK"),await m(w,De,v),o("start connection OK"),{speak(F){return y(w,v,F)},async disconnect(){var F;if(w){const B=Nr(R.iceConnectionState);if(R){if(B===Y.New){clearInterval(G);return}R.close(),R.oniceconnectionstatechange=null,R.onnegotiationneeded=null,R.onicecandidate=null,R.ontrack=null}try{B===Y.Connected&&await g(w,v).catch(le=>{})}catch(le){o("Error on close stream connection",le)}(F=i.onAgentActivityStateChange)==null||F.call(i,je.Idle),clearInterval(G)}},sendDataChannelMessage(F){var B,le;if(!d||S.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:w});return}try{S.send(F)}catch(Et){o("Error sending data channel message",Et),(le=i.onError)==null||le.call(i,Et,{streamId:w})}},sessionId:v,streamId:w,streamType:_,interruptAvailable:L??!1}}const Lc=n=>n.presenter.type===Kn.Expressive;async function Nc(n,e,t){const i=n.id;if(Lc(n)){const{createLiveKitStreamingManager:r}=await Promise.resolve().then(()=>$c);return r(i,e,t)}else return xc(i,e,t)}function Uc(n){const{streamOptions:e}=n??{};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}}function Fc(n,e,t,i,r){r===Oe.Fluent?jc(n,e,t,i,r):Vc(n,e,t,i,r)}function jc(n,e,t,i,r){n===H.Start?i.track("stream-session",{event:"start","stream-type":r}):n===H.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 Bc(n,e,t,i){Me.get()<=0||(n===H.Start?t.linkTrack("agent-video",{event:"start",latency:Me.get(!0),"stream-type":i},"start",[fe.StreamVideoCreated]):n===H.Stop&&t.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":i},"done",[fe.StreamVideoDone]))}function Vc(n,e,t,i,r){Me.get()<=0||(n===H.Start?i.linkTrack("agent-video",{event:"start",latency:Me.get(!0),"stream-type":r},"start",[fe.StreamVideoCreated]):n===H.Stop&&i.linkTrack("agent-video",{event:"stop",is_greenscreen:e.presenter.type==="clip"&&e.presenter.is_greenscreen,background:e.presenter.type==="clip"&&e.presenter.background,"stream-type":r,...t},"done",[fe.StreamVideoDone]))}function qc(n,e,t){return Me.reset(),new Promise(async(i,r)=>{try{let s;s=await Nc(n,Uc(e),{...e,analytics:t,callbacks:{...e.callbacks,onConnectionStateChange:a=>{var o,c;(c=(o=e.callbacks).onConnectionStateChange)==null||c.call(o,a),a===Y.Connected&&i(s)},onVideoStateChange:(a,o)=>{var c,d;(d=(c=e.callbacks).onVideoStateChange)==null||d.call(c,a),Fc(a,n,o,t,s.streamType)},onAgentActivityStateChange:a=>{var o,c;(c=(o=e.callbacks).onAgentActivityStateChange)==null||c.call(o,a),a===je.Talking?Jn.update():Jn.reset(),Bc(a===je.Talking?H.Start:H.Stop,n,t,s.streamType)}}})}catch(s){r(s)}})}async function Kc(n,e,t,i,r){var u,h,m,y;const s=xr(n,t,i,e.mode,e.persistentChat,r),a=qc(n,e,i),[o,c]=await Promise.all([s,a]),{chat:d,chatMode:l}=o;return l&&l!==e.mode&&(e.mode=l,(h=(u=e.callbacks).onModeChange)==null||h.call(u,l),l!==ue.Functional)?((y=(m=e.callbacks).onError)==null||y.call(m,new mr(l)),c==null||c.disconnect(),{chat:d}):{chat:d,streamingManager:c}}async function zc(n,e){var T,w,O;let t=!0,i=null;const r=e.mixpanelKey||ec,s=e.wsURL||Zo,a=e.baseURL||Pt,o={messages:[],chatMode:e.mode||ue.Functional},c=lc({token:r,agentId:n,isEnabled:e.enableAnalitics,distinctId:e.distinctId,mixpanelAdditionalProperties:e.mixpanelAdditionalProperties});c.track("agent-sdk",{event:"init"});const d=Ir(e.auth,a,e.callbacks.onError),l=await d.getById(n);c.enrich(ac(l));const{onMessage:u,clearQueue:h}=bc(c,o,e,l,()=>{var p;return(p=o.socketManager)==null?void 0:p.disconnect()});o.messages=uc(e.initialMessages),(w=(T=e.callbacks).onNewMessage)==null||w.call(T,[...o.messages],"answer");const m=p=>{i=p};c.track("agent-sdk",{event:"loaded",...sc(l)});async function y(p){var _,M,N,U,G,Q,me;(M=(_=e.callbacks).onConnectionStateChange)==null||M.call(_,Y.Connecting),Me.reset(),p&&!t&&(delete o.chat,(U=(N=e.callbacks).onNewMessage)==null||U.call(N,[...o.messages],"answer"));const v=e.mode===ue.DirectPlayback?Promise.resolve(void 0):gc(e.auth,s,{onMessage:u,onError:e.callbacks.onError}),k=Wn(()=>Kc(l,{...e,callbacks:{...e.callbacks,onVideoIdChange:m}},d,c,o.chat),{limit:3,timeout:Yo,timeoutErrorMessage:"Timeout initializing the stream",shouldRetryFn:ae=>(ae==null?void 0:ae.message)!=="Could not connect"&&ae.status!==429,delayMs:1e3}).catch(ae=>{var ge,De;throw P(ue.Maintenance),(De=(ge=e.callbacks).onConnectionStateChange)==null||De.call(ge,Y.Fail),ae}),[L,{streamingManager:R,chat:S}]=await Promise.all([v,k]);S&&S.id!==((G=o.chat)==null?void 0:G.id)&&((me=(Q=e.callbacks).onNewChat)==null||me.call(Q,S.id)),o.streamingManager=R,o.socketManager=L,o.chat=S,t=!1,c.enrich({chatId:S==null?void 0:S.id,streamId:R==null?void 0:R.streamId,mode:o.chatMode}),P((S==null?void 0:S.chat_mode)??e.mode??ue.Functional)}async function g(){var p,v,k,L;(p=o.socketManager)==null||p.disconnect(),await((v=o.streamingManager)==null?void 0:v.disconnect()),delete o.streamingManager,delete o.socketManager,(L=(k=e.callbacks).onConnectionStateChange)==null||L.call(k,Y.Disconnected)}async function P(p){var v,k;p!==o.chatMode&&(c.track("agent-mode-change",{mode:p}),o.chatMode=p,o.chatMode!==ue.Functional&&await g(),(k=(v=e.callbacks).onModeChange)==null||k.call(v,p))}return{agent:l,getStreamType:()=>{var p;return(p=o.streamingManager)==null?void 0:p.streamType},getIsInterruptAvailable:()=>{var p;return((p=o.streamingManager)==null?void 0:p.interruptAvailable)??!1},starterMessages:((O=l.knowledge)==null?void 0:O.starter_message)||[],getSTTToken:()=>d.getSTTToken(l.id),changeMode:P,enrichAnalytics:c.enrich,async connect(){await y(!0),c.track("agent-chat",{event:"connect",mode:o.chatMode})},async reconnect(){await g(),await y(!1),c.track("agent-chat",{event:"reconnect",mode:o.chatMode})},async disconnect(){await g(),c.track("agent-chat",{event:"disconnect",mode:o.chatMode})},async chat(p){var R,S,_,M,N;const v=()=>{if(wr(e.mode))throw new ht(`${e.mode} is enabled, chat is disabled`);if(p.length>=800)throw new ht("Message cannot be more than 800 characters");if(p.length===0)throw new ht("Message cannot be empty");if(o.chatMode===ue.Maintenance)throw new ht("Chat is in maintenance mode");if(![ue.TextOnly,ue.Playground].includes(o.chatMode)){if(!o.streamingManager)throw new ht("Streaming manager is not initialized");if(!o.chat)throw new ht("Chat is not initialized")}},k=async()=>{var U,G;if(!o.chat){const Q=await xr(l,d,c,o.chatMode,e.persistentChat);if(!Q.chat)throw new ut(o.chatMode,!!e.persistentChat);o.chat=Q.chat,(G=(U=e.callbacks).onNewChat)==null||G.call(U,o.chat.id)}return o.chat.id},L=async(U,G)=>Wn(()=>{var Q,me;return d.chat(l.id,G,{chatMode:o.chatMode,streamId:(Q=o.streamingManager)==null?void 0:Q.streamId,sessionId:(me=o.streamingManager)==null?void 0:me.sessionId,messages:U.map(({matches:ae,...ge})=>ge)},{...Ar(o.chatMode),skipErrorHandler:!0})},{limit:2,shouldRetryFn:Q=>{var ge,De,rt,F;const me=(ge=Q==null?void 0:Q.message)==null?void 0:ge.includes("missing or invalid session_id");return!((De=Q==null?void 0:Q.message)==null?void 0:De.includes("Stream Error"))&&!me?((F=(rt=e.callbacks).onError)==null||F.call(rt,Q),!1):!0},onRetry:async()=>{await g(),await y(!1)}});try{h(),v(),o.messages.push({id:wt(),role:"user",content:p,created_at:new Date(Me.update()).toISOString()}),(S=(R=e.callbacks).onNewMessage)==null||S.call(R,[...o.messages],"user");const U=await k(),G=await L([...o.messages],U);return o.messages.push({id:wt(),role:"assistant",content:G.result||"",created_at:new Date().toISOString(),context:G.context,matches:G.matches}),c.track("agent-message-send",{event:"success",messages:o.messages.length+1}),G.result&&((M=(_=e.callbacks).onNewMessage)==null||M.call(_,[...o.messages],"answer"),c.track("agent-message-received",{latency:Me.get(!0),messages:o.messages.length})),G}catch(U){throw((N=o.messages[o.messages.length-1])==null?void 0:N.role)==="assistant"&&o.messages.pop(),c.track("agent-message-send",{event:"error",messages:o.messages.length}),U}},rate(p,v,k){var S,_,M,N;const L=o.messages.find(U=>U.id===p);if(o.chat){if(!L)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const R=((S=L.matches)==null?void 0:S.map(U=>[U.document_id,U.id]))??[];return c.track("agent-rate",{event:k?"update":"create",thumb:v===1?"up":"down",knowledge_id:((_=l.knowledge)==null?void 0:_.id)??"",matches:R,score:v}),k?d.updateRating(l.id,o.chat.id,k,{knowledge_id:((M=l.knowledge)==null?void 0:M.id)??"",message_id:p,matches:R,score:v}):d.createRating(l.id,o.chat.id,{knowledge_id:((N=l.knowledge)==null?void 0:N.id)??"",message_id:p,matches:R,score:v})},deleteRate(p){if(!o.chat)throw new Error("Chat is not initialized");return c.track("agent-rate-delete",{type:"text"}),d.deleteRating(l.id,o.chat.id,p)},async speak(p){var R,S,_;function v(){if(typeof p=="string"){if(!l.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:l.presenter.voice,input:p,ssml:!1}}if(p.type==="text"&&!p.provider){if(!l.presenter.voice)throw new Error("Presenter voice is not initialized");return{type:"text",provider:l.presenter.voice,input:p.input,ssml:p.ssml}}return p}const k=v();if(c.track("agent-speak",k),Me.update(),o.messages&&k.type==="text"&&(o.messages.push({id:wt(),role:"assistant",content:k.input,created_at:new Date(Me.get(!0)).toISOString()}),(S=(R=e.callbacks).onNewMessage)==null||S.call(R,[...o.messages],"answer")),tc(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:k,metadata:{chat_id:(_=o.chat)==null?void 0:_.id,agent_id:l.id}})},async interrupt({type:p}){var k,L,R;hc(o.streamingManager,(k=o.streamingManager)==null?void 0:k.streamType,i);const v=o.messages[o.messages.length-1];c.track("agent-video-interrupt",{type:p||"click",video_duration_to_interrupt:Jn.get(!0),message_duration_to_interrupt:Me.get(!0)}),v.interrupted=!0,(R=(L=e.callbacks).onNewMessage)==null||R.call(L,[...o.messages],"answer"),fc(o.streamingManager,i)}}}function Wc(n,e,t){const{getById:i}=Ir(e,t||Pt);return i(n)}function Gc(n,e,t,i){const r=Gn(n,`${e}/v2/agents/${t}`,i);return{async createStream(s){return r.post("/streams",s)}}}async function Hc(){try{return await Promise.resolve().then(()=>Kh)}catch{throw new Error("LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client")}}async function Jc(n,e,t){var k,L,R;const i=Lr(t.debug||!1,"LiveKitStreamingManager"),{Room:r,RoomEvent:s,ConnectionState:a,RemoteParticipant:o,RemoteTrack:c}=await Hc(),{callbacks:d,auth:l,baseURL:u,analytics:h}=t;let m=null,y=!1,g=null,P=null;const T=Oe.Fluent;m=new r({adaptiveStream:!0,dynacast:!0}),m.on(s.ConnectionStateChanged,S=>{var _,M,N,U,G;switch(i("Connection state changed:",S),S){case a.Connecting:(_=d.onConnectionStateChange)==null||_.call(d,Y.Connecting);break;case a.Connected:i("LiveKit room connected successfully"),y=!0,(M=d.onConnectionStateChange)==null||M.call(d,Y.Connected);break;case a.Disconnected:i("LiveKit room disconnected"),y=!1,(N=d.onConnectionStateChange)==null||N.call(d,Y.Disconnected);break;case a.Reconnecting:i("LiveKit room reconnecting..."),(U=d.onConnectionStateChange)==null||U.call(d,Y.Connecting);break;case a.SignalReconnecting:i("LiveKit room signal reconnecting..."),(G=d.onConnectionStateChange)==null||G.call(d,Y.Connecting);break}}),m.on(s.ConnectionQualityChanged,(S,_)=>{var M;_!=null&&_.isLocal&&S==="poor"&&(i("Connection quality is poor"),(M=d.onConnectivityStateChange)==null||M.call(d,mt.Weak))}),m.on(s.ParticipantConnected,S=>{i("Participant connected:",S.identity)}),m.on(s.TrackSubscribed,(S,_,M)=>{var N,U;i(`Track subscribed: ${S.kind} from ${M.identity}`),P?P.addTrack(S.mediaStreamTrack):P=new MediaStream([S.mediaStreamTrack]),(N=d.onSrcObjectReady)==null||N.call(d,P),S.kind==="video"&&((U=d.onVideoStateChange)==null||U.call(d,H.Start))}),m.on(s.TrackUnsubscribed,(S,_,M)=>{var N;i(`Track unsubscribed: ${S.kind} from ${M.identity}`),S.kind==="video"&&((N=d.onVideoStateChange)==null||N.call(d,H.Stop))}),m.on(s.DataReceived,(S,_)=>{var N,U,G,Q,me;const M=new TextDecoder().decode(S);i("Data received:",M);try{const ae=JSON.parse(M);ae.subject===fe.StreamStarted&&((N=ae.metadata)!=null&&N.videoId)?(g=ae.metadata.videoId,(U=d.onVideoIdChange)==null||U.call(d,g),(G=d.onAgentActivityStateChange)==null||G.call(d,je.Talking)):ae.subject===fe.StreamDone&&(g=null,(Q=d.onVideoIdChange)==null||Q.call(d,g),(me=d.onAgentActivityStateChange)==null||me.call(d,je.Idle))}catch(ae){i("Failed to parse data channel message:",ae)}}),(k=d.onConnectionStateChange)==null||k.call(d,Y.New);const w=Gc(l,u||Pt,n,d.onError);let O,p;try{const S=await w.createStream({transport:zn.Livekit}),{agent_id:_,session_id:M,session_token:N,session_url:U}=S;O=_,p=M,await m.connect(U,N),i("LiveKit room joined successfully")}catch(S){throw i("Failed to connect to LiveKit room:",S),(L=d.onConnectionStateChange)==null||L.call(d,Y.Fail),(R=d.onError)==null||R.call(d,S,{streamId:""}),S}h.enrich({"stream-type":T});async function v(S){var _,M;if(!y||!m){i("Room is not connected for sending messages"),(_=d.onError)==null||_.call(d,new Error("Room is not connected for sending messages"),{streamId:O});return}try{await m.localParticipant.publishData(new TextEncoder().encode(S),{reliable:!0})}catch(N){i("Error sending data channel message",N),(M=d.onError)==null||M.call(d,N,{streamId:O})}}return{speak(S){const _=JSON.stringify({type:"speak",payload:S});return v(_)},async disconnect(){var S,_;m&&(await m.disconnect(),m=null),P&&(P.getTracks().forEach(M=>M.stop()),P=null),y=!1,(S=d.onConnectionStateChange)==null||S.call(d,Y.Completed),(_=d.onAgentActivityStateChange)==null||_.call(d,je.Idle)},sendDataChannelMessage:v,sessionId:p,streamId:O,streamType:T,interruptAvailable:!0}}const $c=Object.freeze(Object.defineProperty({__proto__:null,createLiveKitStreamingManager:Jc},Symbol.toStringTag,{value:"Module"}));function Qc(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 Yc=Object.defineProperty,Xc=(n,e,t)=>e in n?Yc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Fr=(n,e,t)=>Xc(n,typeof e!="symbol"?e+"":e,t);class pe{constructor(){Fr(this,"_locking"),Fr(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 te(n,e){if(!n)throw new Error(e)}const Zc=34028234663852886e22,ed=-34028234663852886e22,td=4294967295,nd=2147483647,id=-2147483648;function ln(n){if(typeof n!="number")throw new Error("invalid int 32: "+typeof n);if(!Number.isInteger(n)||n>nd||n<id)throw new Error("invalid int 32: "+n)}function Qn(n){if(typeof n!="number")throw new Error("invalid uint 32: "+typeof n);if(!Number.isInteger(n)||n>td||n<0)throw new Error("invalid uint 32: "+n)}function jr(n){if(typeof n!="number")throw new Error("invalid float 32: "+typeof n);if(Number.isFinite(n)&&(n>Zc||n<ed))throw new Error("invalid float 32: "+n)}const Br=Symbol("@bufbuild/protobuf/enum-type");function rd(n){const e=n[Br];return te(e,"missing enum type on enum object"),e}function Vr(n,e,t,i){n[Br]=qr(e,t.map(r=>({no:r.no,name:r.name,localName:n[r.no]})))}function qr(n,e,t){const i=Object.create(null),r=Object.create(null),s=[];for(const a of e){const o=Kr(a);s.push(o),i[a.name]=o,r[a.no]=o}return{typeName:n,values:s,findName(a){return i[a]},findNumber(a){return r[a]}}}function sd(n,e,t){const i={};for(const r of e){const s=Kr(r);i[s.localName]=s.no,i[s.no]=s.localName}return Vr(i,n,e),i}function Kr(n){return"localName"in n?n:Object.assign(Object.assign({},n),{localName:n.name})}class Yn{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 ad(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),a={[s]:function(o){n.util.initFields(this),n.util.initPartial(o,this)}}[s];return Object.setPrototypeOf(a.prototype,new Yn),Object.assign(a,{runtime:n,typeName:e,fields:n.util.newFieldList(t),fromBinary(o,c){return new a().fromBinary(o,c)},fromJson(o,c){return new a().fromJson(o,c)},fromJsonString(o,c){return new a().fromJsonString(o,c)},equals(o,c){return n.util.equals(a,o,c)}}),a}function od(){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 Xn(n,e,t){for(let s=0;s<28;s=s+7){const a=n>>>s,o=!(!(a>>>7)&&e==0),c=(o?a|128:a)&255;if(t.push(c),!o)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 a=e>>>s,o=!!(a>>>7),c=(o?a|128:a)&255;if(t.push(c),!o)return}t.push(e>>>31&1)}}const un=4294967296;function zr(n){const e=n[0]==="-";e&&(n=n.slice(1));const t=1e6;let i=0,r=0;function s(a,o){const c=Number(n.slice(a,o));r*=t,i=i*t+c,i>=un&&(r=r+(i/un|0),i=i%un)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?Gr(i,r):Zn(i,r)}function cd(n,e){let t=Zn(n,e);const i=t.hi&2147483648;i&&(t=Gr(t.lo,t.hi));const r=Wr(t.lo,t.hi);return i?"-"+r:r}function Wr(n,e){if({lo:n,hi:e}=dd(n,e),e<=2097151)return String(un*e+n);const t=n&16777215,i=(n>>>24|e<<8)&16777215,r=e>>16&65535;let s=t+i*6777216+r*6710656,a=i+r*8147497,o=r*2;const c=1e7;return s>=c&&(a+=Math.floor(s/c),s%=c),a>=c&&(o+=Math.floor(a/c),a%=c),o.toString()+Hr(a)+Hr(s)}function dd(n,e){return{lo:n>>>0,hi:e>>>0}}function Zn(n,e){return{lo:n|0,hi:e|0}}function Gr(n,e){return e=~e,n?n=~n+1:e+=1,Zn(n,e)}const Hr=n=>{const e=String(n);return"0000000".slice(e.length)+e};function Jr(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 ld(){let n=this.buf[this.pos++],e=n&127;if(!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<7,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<14,!(n&128))return this.assertBounds(),e;if(n=this.buf[this.pos++],e|=(n&127)<<21,!(n&128))return this.assertBounds(),e;n=this.buf[this.pos++],e|=(n&15)<<28;for(let t=5;n&128&&t<10;t++)n=this.buf[this.pos++];if(n&128)throw new Error("invalid varint");return this.assertBounds(),e>>>0}function ud(){const n=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof n.getBigInt64=="function"&&typeof n.getBigUint64=="function"&&typeof n.setBigInt64=="function"&&typeof n.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){const r=BigInt("-9223372036854775808"),s=BigInt("9223372036854775807"),a=BigInt("0"),o=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>s||d<r)throw new Error("int64 invalid: ".concat(c));return d},uParse(c){const d=typeof c=="bigint"?c:BigInt(c);if(d>o||d<a)throw new Error("uint64 invalid: ".concat(c));return d},enc(c){return n.setBigInt64(0,this.parse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},uEnc(c){return n.setBigInt64(0,this.uParse(c),!0),{lo:n.getInt32(0,!0),hi:n.getInt32(4,!0)}},dec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigInt64(0,!0)},uDec(c,d){return n.setInt32(0,c,!0),n.setInt32(4,d,!0),n.getBigUint64(0,!0)}}}const t=r=>te(/^-?[0-9]+$/.test(r),"int64 invalid: ".concat(r)),i=r=>te(/^[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),zr(r)},uEnc(r){return typeof r!="string"&&(r=r.toString()),i(r),zr(r)},dec(r,s){return cd(r,s)},uDec(r,s){return Wr(r,s)}}}const Z=ud();var E;(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"})(E||(E={}));var st;(function(n){n[n.BIGINT=0]="BIGINT",n[n.STRING=1]="STRING"})(st||(st={}));function at(n,e,t){if(e===t)return!0;if(n==E.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 E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==t}return!1}function Rt(n,e){switch(n){case E.BOOL:return!1;case E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return e==0?Z.zero:"0";case E.DOUBLE:case E.FLOAT:return 0;case E.BYTES:return new Uint8Array(0);case E.STRING:return"";default:return 0}}function $r(n,e){switch(n){case E.BOOL:return e===!1;case E.STRING:return e==="";case E.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var ie;(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"})(ie||(ie={}));class hd{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(Qn(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ln(e),Jr(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){jr(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){Qn(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ln(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ln(e),e=(e<<1^e>>31)>>>0,Jr(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),i=new DataView(t.buffer),r=Z.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=Z.uEnc(e);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=Z.enc(e);return Xn(t.lo,t.hi,this.buf),this}sint64(e){let t=Z.enc(e),i=t.hi>>31,r=t.lo<<1^i,s=(t.hi<<1|t.lo>>>31)^i;return Xn(r,s,this.buf),this}uint64(e){let t=Z.uEnc(e);return Xn(t.lo,t.hi,this.buf),this}}class fd{constructor(e,t){this.varint64=od,this.uint32=ld,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 ie.Varint:for(;this.buf[this.pos++]&128;);break;case ie.Bit64:this.pos+=4;case ie.Bit32:this.pos+=4;break;case ie.LengthDelimited:let r=this.uint32();this.pos+=r;break;case ie.StartGroup:for(;;){const[s,a]=this.tag();if(a===ie.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(a,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 Z.dec(...this.varint64())}uint64(){return Z.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),i=-(e&1);return e=(e>>>1|(t&1)<<31)^i,t=t>>>1^i,Z.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 Z.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return Z.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 md(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 Qr(n){const e=n.field.localName,t=Object.create(null);return t[e]=pd(n),[t,()=>t[e]]}function pd(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 Rt(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 gd(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 Je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),hn=[];for(let n=0;n<Je.length;n++)hn[Je[n].charCodeAt(0)]=n;hn[45]=Je.indexOf("+"),hn[95]=Je.indexOf("/");const Yr={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,a=0;for(let o=0;o<n.length;o++){if(s=hn[n.charCodeAt(o)],s===void 0)switch(n[o]){case"=":r=0;case`
|
|
2
2
|
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:a=s,r=1;break;case 1:t[i++]=a<<2|(s&48)>>4,a=s,r=2;break;case 2:t[i++]=(a&15)<<4|(s&60)>>2,a=s,r=3;break;case 3:t[i++]=(a&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+=Je[i>>2],r=(i&3)<<4,t=1;break;case 1:e+=Je[r|i>>4],r=(i&15)<<2,t=2;break;case 2:e+=Je[r|i>>6],e+=Je[i&63],t=0;break}return t&&(e+=Je[r],e+="=",t==1&&(e+="=")),e}};function vd(n,e,t){Zr(e,n);const i=e.runtime.bin.makeReadOptions(t),r=gd(n.getType().runtime.bin.listUnknownFields(n),e.field),[s,a]=Qr(e);for(const o of r)e.runtime.bin.readField(s,i.readerFactory(o.data),e.field,o.wireType,i);return a()}function yd(n,e,t,i){Zr(e,n);const r=e.runtime.bin.makeReadOptions(i),s=e.runtime.bin.makeWriteOptions(i);if(Xr(n,e)){const d=n.getType().runtime.bin.listUnknownFields(n).filter(l=>l.no!=e.field.no);n.getType().runtime.bin.discardUnknownFields(n);for(const l of d)n.getType().runtime.bin.onUnknownField(n,l.no,l.wireType,l.data)}const a=s.writerFactory();let o=e.field;!o.opt&&!o.repeated&&(o.kind=="enum"||o.kind=="scalar")&&(o=Object.assign(Object.assign({},e.field),{opt:!0})),e.runtime.bin.writeField(o,t,a,s);const c=r.readerFactory(a.finish());for(;c.pos<c.len;){const[d,l]=c.tag(),u=c.skip(l,d);n.getType().runtime.bin.onUnknownField(n,d,l,u)}}function Xr(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 Zr(n,e){te(n.extendee.typeName==e.getType().typeName,"extension ".concat(n.typeName," can only be applied to message ").concat(n.extendee.typeName))}function es(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:!$r(n.T,e[t]);case"message":return e[t]!==void 0;case"map":return Object.keys(e[t]).length>0}}function ts(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?Rt(n.T,n.L):void 0;break;case"message":e[t]=void 0;break}}function $e(n,e){if(n===null||typeof n!="object"||!Object.getOwnPropertyNames(Yn.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 ns(n,e){return $e(e)||!n.fieldWrapper?e:n.fieldWrapper.wrapField(e)}E.DOUBLE,E.FLOAT,E.INT64,E.UINT64,E.INT32,E.UINT32,E.BOOL,E.STRING,E.BYTES;const is={ignoreUnknownFields:!1},rs={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function bd(n){return n?Object.assign(Object.assign({},is),n):is}function kd(n){return n?Object.assign(Object.assign({},rs),n):rs}const fn=Symbol(),mn=Symbol();function Td(){return{makeReadOptions:bd,makeWriteOptions:kd,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(Be(e)));i=i??new n;const r=new Map,s=t.typeRegistry;for(const[a,o]of Object.entries(e)){const c=n.fields.findJsonName(a);if(c){if(c.oneof){if(o===null&&c.kind=="scalar")continue;const d=r.get(c.oneof);if(d!==void 0)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: multiple keys for oneof "').concat(c.oneof.name,'" present: "').concat(d,'", "').concat(a,'"'));r.set(c.oneof,a)}ss(i,o,c,t,n)}else{let d=!1;if(s!=null&&s.findExtension&&a.startsWith("[")&&a.endsWith("]")){const l=s.findExtension(a.substring(1,a.length-1));if(l&&l.extendee.typeName==n.typeName){d=!0;const[u,h]=Qr(l);ss(u,o,l.field,t,l),yd(i,l,h(),t)}}if(!d&&!t.ignoreUnknownFields)throw new Error("cannot decode message ".concat(n.typeName,' from JSON: key "').concat(a,'" is unknown'))}}return i},writeMessage(n,e){const t=n.getType(),i={};let r;try{for(r of t.fields.byNumber()){if(!es(r,n)){if(r.req)throw"required field not set";if(!e.emitDefaultValues||!Cd(r))continue}const a=r.oneof?n[r.oneof.localName].value:n[r.localName],o=as(r,a,e);o!==void 0&&(i[e.useProtoFieldName?r.name:r.jsonName]=o)}const s=e.typeRegistry;if(s!=null&&s.findExtensionFor)for(const a of t.runtime.bin.listUnknownFields(n)){const o=s.findExtensionFor(t.typeName,a.no);if(o&&Xr(n,o)){const c=vd(n,o,e),d=as(o.field,c,e);d!==void 0&&(i[o.field.jsonName]=d)}}}catch(s){const a=r?"cannot encode field ".concat(t.typeName,".").concat(r.name," to JSON"):"cannot encode message ".concat(t.typeName," to JSON"),o=s instanceof Error?s.message:String(s);throw new Error(a+(o.length>0?": ".concat(o):""))}return i},readScalar(n,e,t){return qt(n,e,t??st.BIGINT,!0)},writeScalar(n,e,t){if(e!==void 0&&(t||$r(n,e)))return pn(n,e)},debug:Be}}function Be(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 ss(n,e,t,i,r){let s=t.localName;if(t.repeated){if(te(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(Be(e)));const a=n[s];for(const o of e){if(o===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Be(o)));switch(t.kind){case"message":a.push(t.T.fromJson(o,i));break;case"enum":const c=ei(t.T,o,i.ignoreUnknownFields,!0);c!==mn&&a.push(c);break;case"scalar":try{a.push(qt(t.T,o,t.L,!0))}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Be(o));throw d instanceof Error&&d.message.length>0&&(l+=": ".concat(d.message)),new Error(l)}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(Be(e)));const a=n[s];for(const[o,c]of Object.entries(e)){if(c===null)throw new Error("cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: map value null"));let d;try{d=Sd(t.K,o)}catch(l){let u="cannot decode map key for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Be(e));throw l instanceof Error&&l.message.length>0&&(u+=": ".concat(l.message)),new Error(u)}switch(t.V.kind){case"message":a[d]=t.V.T.fromJson(c,i);break;case"enum":const l=ei(t.V.T,c,i.ignoreUnknownFields,!0);l!==mn&&(a[d]=l);break;case"scalar":try{a[d]=qt(t.V.T,c,st.BIGINT,!0)}catch(u){let h="cannot decode map value for field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Be(e));throw u instanceof Error&&u.message.length>0&&(h+=": ".concat(u.message)),new Error(h)}break}}}else switch(t.oneof&&(n=n[t.oneof.localName]={case:s},s="value"),t.kind){case"message":const a=t.T;if(e===null&&a.typeName!="google.protobuf.Value")return;let o=n[s];$e(o)?o.fromJson(e,i):(n[s]=o=a.fromJson(e,i),a.fieldWrapper&&!t.oneof&&(n[s]=a.fieldWrapper.unwrapField(o)));break;case"enum":const c=ei(t.T,e,i.ignoreUnknownFields,!1);switch(c){case fn:ts(t,n);break;case mn:break;default:n[s]=c;break}break;case"scalar":try{const d=qt(t.T,e,t.L,!1);switch(d){case fn:ts(t,n);break;default:n[s]=d;break}}catch(d){let l="cannot decode field ".concat(r.typeName,".").concat(t.name," from JSON: ").concat(Be(e));throw d instanceof Error&&d.message.length>0&&(l+=": ".concat(d.message)),new Error(l)}break}}function Sd(n,e){if(n===E.BOOL)switch(e){case"true":e=!0;break;case"false":e=!1;break}return qt(n,e,st.BIGINT,!0).toString()}function qt(n,e,t,i){if(e===null)return i?Rt(n,t):fn;switch(n){case E.DOUBLE:case E.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==E.FLOAT&&jr(r),r;case E.INT32:case E.FIXED32:case E.SFIXED32:case E.SINT32:case E.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==E.UINT32||n==E.FIXED32?Qn(s):ln(s),s;case E.INT64:case E.SFIXED64:case E.SINT64:if(typeof e!="number"&&typeof e!="string")break;const a=Z.parse(e);return t?a.toString():a;case E.FIXED64:case E.UINT64:if(typeof e!="number"&&typeof e!="string")break;const o=Z.uParse(e);return t?o.toString():o;case E.BOOL:if(typeof e!="boolean")break;return e;case E.STRING:if(typeof e!="string")break;try{encodeURIComponent(e)}catch{throw new Error("invalid UTF8")}return e;case E.BYTES:if(e==="")return new Uint8Array(0);if(typeof e!="string")break;return Yr.dec(e)}throw new Error}function ei(n,e,t,i){if(e===null)return n.typeName=="google.protobuf.NullValue"?0:i?n.values[0].no:fn;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 mn;break}throw new Error("cannot decode enum ".concat(n.typeName," from JSON: ").concat(Be(e)))}function Cd(n){return n.repeated||n.kind=="map"?!0:!(n.oneof||n.kind=="message"||n.opt||n.req)}function as(n,e,t){if(n.kind=="map"){te(typeof e=="object"&&e!=null);const i={},r=Object.entries(e);switch(n.V.kind){case"scalar":for(const[a,o]of r)i[a.toString()]=pn(n.V.T,o);break;case"message":for(const[a,o]of r)i[a.toString()]=o.toJson(t);break;case"enum":const s=n.V.T;for(const[a,o]of r)i[a.toString()]=ti(s,o,t.enumAsInteger);break}return t.emitDefaultValues||r.length>0?i:void 0}if(n.repeated){te(Array.isArray(e));const i=[];switch(n.kind){case"scalar":for(let r=0;r<e.length;r++)i.push(pn(n.T,e[r]));break;case"enum":for(let r=0;r<e.length;r++)i.push(ti(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 pn(n.T,e);case"enum":return ti(n.T,e,t.enumAsInteger);case"message":return ns(n.T,e).toJson(t)}}function ti(n,e,t){var i;if(te(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 pn(n,e){switch(n){case E.INT32:case E.SFIXED32:case E.SINT32:case E.FIXED32:case E.UINT32:return te(typeof e=="number"),e;case E.FLOAT:case E.DOUBLE:return te(typeof e=="number"),Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case E.STRING:return te(typeof e=="string"),e;case E.BOOL:return te(typeof e=="boolean"),e;case E.UINT64:case E.FIXED64:case E.INT64:case E.SFIXED64:case E.SINT64:return te(typeof e=="bigint"||typeof e=="string"||typeof e=="number"),e.toString();case E.BYTES:return te(e instanceof Uint8Array),Yr.enc(e)}}const _t=Symbol("@bufbuild/protobuf/unknown-fields"),os={readUnknownFields:!0,readerFactory:n=>new fd(n)},cs={writeUnknownFields:!0,writerFactory:()=>new hd};function Ed(n){return n?Object.assign(Object.assign({},os),n):os}function Pd(n){return n?Object.assign(Object.assign({},cs),n):cs}function wd(){return{makeReadOptions:Ed,makeWriteOptions:Pd,listUnknownFields(n){var e;return(e=n[_t])!==null&&e!==void 0?e:[]},discardUnknownFields(n){delete n[_t]},writeUnknownFields(n,e){const i=n[_t];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[_t])||(r[_t]=[]),r[_t].push({no:e,wireType:t,data:i})},readMessage(n,e,t,i,r){const s=n.getType(),a=r?e.len:e.pos+t;let o,c;for(;e.pos<a&&([o,c]=e.tag(),!(r===!0&&c==ie.EndGroup));){const d=s.fields.find(o);if(!d){const l=e.skip(c,o);i.readUnknownFields&&this.onUnknownField(n,o,c,l);continue}ds(n,e,d,c,i)}if(r&&(c!=ie.EndGroup||o!==t))throw new Error("invalid end group tag")},readField:ds,writeMessage(n,e,t){const i=n.getType();for(const r of i.fields.byNumber()){if(!es(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];ls(r,s,e,t)}return t.writeUnknownFields&&this.writeUnknownFields(n,e),e},writeField(n,e,t,i){e!==void 0&&ls(n,e,t,i)}}}function ds(n,e,t,i,r){let{repeated:s,localName:a}=t;switch(t.oneof&&(n=n[t.oneof.localName],n.case!=a&&delete n.value,n.case=a,a="value"),t.kind){case"scalar":case"enum":const o=t.kind=="enum"?E.INT32:t.T;let c=vn;if(t.kind=="scalar"&&t.L>0&&(c=_d),s){let h=n[a];if(i==ie.LengthDelimited&&o!=E.STRING&&o!=E.BYTES){let y=e.uint32()+e.pos;for(;e.pos<y;)h.push(c(e,o))}else h.push(c(e,o))}else n[a]=c(e,o);break;case"message":const d=t.T;s?n[a].push(gn(e,new d,r,t)):$e(n[a])?gn(e,n[a],r,t):(n[a]=gn(e,new d,r,t),d.fieldWrapper&&!t.oneof&&!t.repeated&&(n[a]=d.fieldWrapper.unwrapField(n[a])));break;case"map":let[l,u]=Rd(t,e,r);n[a][l]=u;break}}function gn(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 Rd(n,e,t){const i=e.uint32(),r=e.pos+i;let s,a;for(;e.pos<r;){const[o]=e.tag();switch(o){case 1:s=vn(e,n.K);break;case 2:switch(n.V.kind){case"scalar":a=vn(e,n.V.T);break;case"enum":a=e.int32();break;case"message":a=gn(e,new n.V.T,t,void 0);break}break}}if(s===void 0&&(s=Rt(n.K,st.BIGINT)),typeof s!="string"&&typeof s!="number"&&(s=s.toString()),a===void 0)switch(n.V.kind){case"scalar":a=Rt(n.V.T,st.BIGINT);break;case"enum":a=n.V.T.values[0].no;break;case"message":a=new n.V.T;break}return[s,a]}function _d(n,e){const t=vn(n,e);return typeof t=="bigint"?t.toString():t}function vn(n,e){switch(e){case E.STRING:return n.string();case E.BOOL:return n.bool();case E.DOUBLE:return n.double();case E.FLOAT:return n.float();case E.INT32:return n.int32();case E.INT64:return n.int64();case E.UINT64:return n.uint64();case E.FIXED64:return n.fixed64();case E.BYTES:return n.bytes();case E.FIXED32:return n.fixed32();case E.SFIXED32:return n.sfixed32();case E.SFIXED64:return n.sfixed64();case E.SINT64:return n.sint64();case E.UINT32:return n.uint32();case E.SINT32:return n.sint32()}}function ls(n,e,t,i){te(e!==void 0);const r=n.repeated;switch(n.kind){case"scalar":case"enum":let s=n.kind=="enum"?E.INT32:n.T;if(r)if(te(Array.isArray(e)),n.packed)Dd(t,s,n.no,e);else for(const a of e)Kt(t,s,n.no,a);else Kt(t,s,n.no,e);break;case"message":if(r){te(Array.isArray(e));for(const a of e)us(t,i,n,a)}else us(t,i,n,e);break;case"map":te(typeof e=="object"&&e!=null);for(const[a,o]of Object.entries(e))Id(t,i,n,a,o);break}}function Id(n,e,t,i,r){n.tag(t.no,ie.LengthDelimited),n.fork();let s=i;switch(t.K){case E.INT32:case E.FIXED32:case E.UINT32:case E.SFIXED32:case E.SINT32:s=Number.parseInt(i);break;case E.BOOL:te(i=="true"||i=="false"),s=i=="true";break}switch(Kt(n,t.K,1,s),t.V.kind){case"scalar":Kt(n,t.V.T,2,r);break;case"enum":Kt(n,E.INT32,2,r);break;case"message":te(r!==void 0),n.tag(2,ie.LengthDelimited).bytes(r.toBinary(e));break}n.join()}function us(n,e,t,i){const r=ns(t.T,i);t.delimited?n.tag(t.no,ie.StartGroup).raw(r.toBinary(e)).tag(t.no,ie.EndGroup):n.tag(t.no,ie.LengthDelimited).bytes(r.toBinary(e))}function Kt(n,e,t,i){te(i!==void 0);let[r,s]=hs(e);n.tag(t,r)[s](i)}function Dd(n,e,t,i){if(!i.length)return;n.tag(t,ie.LengthDelimited).fork();let[,r]=hs(e);for(let s=0;s<i.length;s++)n[r](i[s]);n.join()}function hs(n){let e=ie.Varint;switch(n){case E.BYTES:case E.STRING:e=ie.LengthDelimited;break;case E.DOUBLE:case E.FIXED64:case E.SFIXED64:e=ie.Bit64;break;case E.FIXED32:case E.SFIXED32:case E.FLOAT:e=ie.Bit32;break}const t=E[n].toLowerCase();return[e,t]}function Od(){return{setEnumType:Vr,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,a=n;if(a[r]!=null)switch(i.kind){case"oneof":const o=a[r].case;if(o===void 0)continue;const c=i.findField(o);let d=a[r].value;c&&c.kind=="message"&&!$e(d,c.T)?d=new c.T(d):c&&c.kind==="scalar"&&c.T===E.BYTES&&(d=zt(d)),s[r]={case:o,value:d};break;case"scalar":case"enum":let l=a[r];i.T===E.BYTES&&(l=i.repeated?l.map(zt):zt(l)),s[r]=l;break;case"map":switch(i.V.kind){case"scalar":case"enum":if(i.V.T===E.BYTES)for(const[m,y]of Object.entries(a[r]))s[r][m]=zt(y);else Object.assign(s[r],a[r]);break;case"message":const h=i.V.T;for(const m of Object.keys(a[r])){let y=a[r][m];h.fieldWrapper||(y=new h(y)),s[r][m]=y}break}break;case"message":const u=i.T;if(i.repeated)s[r]=a[r].map(h=>$e(h,u)?h:new u(h));else{const h=a[r];u.fieldWrapper?u.typeName==="google.protobuf.BytesValue"?s[r]=zt(h):s[r]=h:s[r]=$e(h,u)?h:new u(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((a,o)=>i.T.equals(a,s[o]));case"scalar":return r.every((a,o)=>at(i.T,a,s[o]));case"enum":return r.every((a,o)=>at(E.INT32,a,s[o]))}throw new Error("repeated cannot contain ".concat(i.kind))}switch(i.kind){case"message":let a=r,o=s;return i.T.fieldWrapper&&(a!==void 0&&!$e(a)&&(a=i.T.fieldWrapper.wrapField(a)),o!==void 0&&!$e(o)&&(o=i.T.fieldWrapper.wrapField(o))),i.T.equals(a,o);case"enum":return at(E.INT32,r,s);case"scalar":return at(i.T,r,s);case"oneof":if(r.case!==s.case)return!1;const c=i.findField(r.case);if(c===void 0)return!0;switch(c.kind){case"message":return c.T.equals(r.value,s.value);case"enum":return at(E.INT32,r.value,s.value);case"scalar":return at(c.T,r.value,s.value)}throw new Error("oneof cannot contain ".concat(c.kind));case"map":const d=Object.keys(r).concat(Object.keys(s));switch(i.V.kind){case"message":const l=i.V.T;return d.every(h=>l.equals(r[h],s[h]));case"enum":return d.every(h=>at(E.INT32,r[h],s[h]));case"scalar":const u=i.V.T;return d.every(h=>at(u,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 a;if(r.repeated)a=s.map(yn);else if(r.kind=="map"){a=i[r.localName];for(const[o,c]of Object.entries(s))a[o]=yn(c)}else r.kind=="oneof"?a=r.findField(s.case)?{case:s.case,value:yn(s.value)}:{case:void 0}:a=yn(s);i[r.localName]=a}for(const r of e.runtime.bin.listUnknownFields(n))e.runtime.bin.onUnknownField(i,r.no,r.wireType,r.data);return t}}}function yn(n){if(n===void 0)return n;if($e(n))return n.clone();if(n instanceof Uint8Array){const e=new Uint8Array(n.byteLength);return e.set(n),e}return n}function zt(n){return n instanceof Uint8Array?n:new Uint8Array(n)}function Md(n,e,t){return{syntax:n,json:Td(),bin:wd(),util:Object.assign(Object.assign({},Od()),{newFieldList:e,initFields:t}),makeMessageType(i,r,s){return ad(this,i,r,s)},makeEnum:sd,makeEnumType:qr,getEnumType:rd,makeExtension(i,r,s){return md(this,i,r,s)}}}class Ad{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 fs(n,e){const t=ms(n);return e?t:jd(Fd(t))}function xd(n){return fs(n,!1)}const Ld=ms;function ms(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 Nd=new Set(["constructor","toString","toJSON","valueOf"]),Ud=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),ps=n=>"".concat(n,"$"),Fd=n=>Ud.has(n)?ps(n):n,jd=n=>Nd.has(n)?ps(n):n;class Bd{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=xd(e)}addField(e){te(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 Vd(n,e){var t,i,r,s,a,o;const c=[];let d;for(const l of typeof n=="function"?n():n){const u=l;if(u.localName=fs(l.name,l.oneof!==void 0),u.jsonName=(t=l.jsonName)!==null&&t!==void 0?t:Ld(l.name),u.repeated=(i=l.repeated)!==null&&i!==void 0?i:!1,l.kind=="scalar"&&(u.L=(r=l.L)!==null&&r!==void 0?r:st.BIGINT),u.delimited=(s=l.delimited)!==null&&s!==void 0?s:!1,u.req=(a=l.req)!==null&&a!==void 0?a:!1,u.opt=(o=l.opt)!==null&&o!==void 0?o:!1,l.packed===void 0&&(u.packed=l.kind=="enum"||l.kind=="scalar"&&l.T!=E.BYTES&&l.T!=E.STRING),l.oneof!==void 0){const h=typeof l.oneof=="string"?l.oneof:l.oneof.name;(!d||d.name!=h)&&(d=new Bd(h)),u.oneof=d,d.addField(u)}c.push(u)}return c}const b=Md("proto3",n=>new Ad(n,e=>Vd(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]=Rt(e.T,e.L);break}}});class ve extends Yn{constructor(e){super(),this.seconds=Z.zero,this.nanos=0,b.util.initPartial(e,this)}fromJson(e,t){if(typeof e!="string")throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(b.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=Z.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:Z.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 b.util.equals(ve,e,t)}}ve.runtime=b,ve.typeName="google.protobuf.Timestamp",ve.fields=b.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const qd=b.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:Kd,repeated:!0},{no:5,name:"events",kind:"message",T:Wd,repeated:!0}]),Kd=b.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:zd,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),zd=b.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}]),Wd=b.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}]),gs=b.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),Ee=b.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),re=b.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"}]),ni=b.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),Wt=b.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),Gt=b.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),Pe=b.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"}]),It=b.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"}]),vs=b.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),oe=b.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"}]),bn=b.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:kn,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:Os}]),kn=b.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),Gd=b.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:b.getEnumType(re),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}]),pt=b.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:b.getEnumType(Dt)},{no:4,name:"tracks",kind:"message",T:Mt,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:Gd},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:b.getEnumType(Ot)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:b.getEnumType(Pe)},{no:18,name:"kind_details",kind:"enum",T:b.getEnumType(Hd),repeated:!0}]),Dt=b.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),Ot=b.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"}]),Hd=b.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"}]),Ce=b.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),Jd=b.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:gt,repeated:!0}]),Mt=b.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:b.getEnumType(Ee)},{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:b.getEnumType(re)},{no:10,name:"layers",kind:"message",T:gt,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:Jd,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:b.getEnumType(Ce)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:Os},{no:19,name:"audio_features",kind:"enum",T:b.getEnumType(oe),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:b.getEnumType(gs)}]),gt=b.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:b.getEnumType(ni)},{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}]),ye=b.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:b.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:bs,oneof:"value"},{no:3,name:"speaker",kind:"message",T:$d,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:ks,oneof:"value"},{no:7,name:"transcription",kind:"message",T:Qd,oneof:"value"},{no:8,name:"metrics",kind:"message",T:qd,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:ii,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:Ts,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:Ss,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:Cs,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:si,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:ai,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:oi,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),j=b.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),$d=b.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:ys,repeated:!0}]),ys=b.makeMessageType("livekit.SpeakerInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"level",kind:"scalar",T:2},{no:3,name:"active",kind:"scalar",T:8}]),bs=b.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}]),ks=b.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),Qd=b.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:Yd,repeated:!0}]),Yd=b.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}]),ii=b.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}]),Ts=b.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}]),Ss=b.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),Cs=b.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:Es,oneof:"value"}]),Es=b.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}]),Ps=b.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),ws=b.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:b.getEnumType(Rs)},{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}]),Rs=b.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),Xd=b.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:b.getEnumType(_s)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"os",kind:"scalar",T:9},{no:5,name:"os_version",kind:"scalar",T:9},{no:6,name:"device_model",kind:"scalar",T:9},{no:7,name:"browser",kind:"scalar",T:9},{no:8,name:"browser_version",kind:"scalar",T:9},{no:9,name:"address",kind:"scalar",T:9},{no:10,name:"network",kind:"scalar",T:9},{no:11,name:"other_sdks",kind:"scalar",T:9}]),_s=b.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"}]),Is=b.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:Ds},{no:2,name:"screen",kind:"message",T:Ds},{no:3,name:"resume_connection",kind:"enum",T:b.getEnumType(Gt)},{no:4,name:"disabled_codecs",kind:"message",T:Zd},{no:5,name:"force_relay",kind:"enum",T:b.getEnumType(Gt)}]),Ds=b.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:b.getEnumType(Gt)}]),Zd=b.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:kn,repeated:!0},{no:2,name:"publish",kind:"message",T:kn,repeated:!0}]),Os=b.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),ri=b.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),Ms=b.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:b.getEnumType(ri)},{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"}),As=b.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),si=b.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:b.getEnumType(Ce)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:Ms,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:As,oneof:"content_header"}],{localName:"DataStream_Header"}),ai=b.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"}),oi=b.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"}),Ae=b.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),ci=b.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),el=b.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),tl=b.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:vt,oneof:"message"},{no:2,name:"answer",kind:"message",T:vt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:ui,oneof:"message"},{no:4,name:"add_track",kind:"message",T:li,oneof:"message"},{no:5,name:"mute",kind:"message",T:hi,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Tn,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:Ls,oneof:"message"},{no:8,name:"leave",kind:"message",T:Sn,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:Us,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:Vs,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:qs,oneof:"message"},{no:13,name:"simulate",kind:"message",T:Ve,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:Fs,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:Ws,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:Ns,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:al,oneof:"message"}]),xs=b.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:nl,oneof:"message"},{no:2,name:"answer",kind:"message",T:vt,oneof:"message"},{no:3,name:"offer",kind:"message",T:vt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:ui,oneof:"message"},{no:5,name:"update",kind:"message",T:sl,oneof:"message"},{no:6,name:"track_published",kind:"message",T:fi,oneof:"message"},{no:8,name:"leave",kind:"message",T:Sn,oneof:"message"},{no:9,name:"mute",kind:"message",T:hi,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:ol,oneof:"message"},{no:11,name:"room_update",kind:"message",T:cl,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:ll,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:hl,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:ml,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:pl,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:rl,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:il,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:vl,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:kl,oneof:"message"},{no:22,name:"request_response",kind:"message",T:Tl,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Sl,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:gl,oneof:"message"}]),di=b.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9}]),li=b.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:b.getEnumType(Ee)},{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:b.getEnumType(re)},{no:9,name:"layers",kind:"message",T:gt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:di,repeated:!0},{no:11,name:"sid",kind:"scalar",T:9},{no:12,name:"stereo",kind:"scalar",T:8},{no:13,name:"disable_red",kind:"scalar",T:8},{no:14,name:"encryption",kind:"enum",T:b.getEnumType(Ce)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:b.getEnumType(gs)},{no:17,name:"audio_features",kind:"enum",T:b.getEnumType(oe),repeated:!0}]),ui=b.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:b.getEnumType(Ae)},{no:3,name:"final",kind:"scalar",T:8}]),hi=b.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),nl=b.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:bn},{no:2,name:"participant",kind:"message",T:pt},{no:3,name:"other_participants",kind:"message",T:pt,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:js,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:Is},{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:ws},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:kn,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),il=b.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:js,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Is},{no:3,name:"server_info",kind:"message",T:ws},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),fi=b.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:Mt}]),rl=b.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),vt=b.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}]),sl=b.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:pt,repeated:!0}]),Tn=b.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:Ps,repeated:!0}]),Ls=b.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:b.getEnumType(ni)},{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}]),Ns=b.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:b.getEnumType(oe),repeated:!0}]),al=b.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}]),Sn=b.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:b.getEnumType(Pe)},{no:3,name:"action",kind:"enum",T:b.getEnumType(At)},{no:4,name:"regions",kind:"message",T:yl}]),At=b.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),Us=b.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:gt,repeated:!0}]),Fs=b.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}]),js=b.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}]),ol=b.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:ys,repeated:!0}]),cl=b.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:bn}]),dl=b.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:b.getEnumType(Wt)},{no:3,name:"score",kind:"scalar",T:2}]),ll=b.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:dl,repeated:!0}]),ul=b.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:b.getEnumType(ci)}]),hl=b.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:ul,repeated:!0}]),mi=b.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:b.getEnumType(ni)},{no:2,name:"enabled",kind:"scalar",T:8}]),fl=b.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:mi,repeated:!0}]),ml=b.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:mi,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:fl,repeated:!0}]),Bs=b.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}]),Vs=b.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:Bs,repeated:!0}]),pl=b.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}]),gl=b.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:bn},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:pt},{no:4,name:"other_participants",kind:"message",T:pt,repeated:!0}]),qs=b.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:vt},{no:2,name:"subscription",kind:"message",T:Tn},{no:3,name:"publish_tracks",kind:"message",T:fi,repeated:!0},{no:4,name:"data_channels",kind:"message",T:zs,repeated:!0},{no:5,name:"offer",kind:"message",T:vt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:Ks,repeated:!0}]),Ks=b.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),zs=b.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:b.getEnumType(Ae)}]),Ve=b.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:b.getEnumType(el),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"}]),Ws=b.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),vl=b.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),yl=b.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:bl,repeated:!0}]),bl=b.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}]),kl=b.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:b.getEnumType(vs)}]),Tl=b.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:b.getEnumType(pi)},{no:3,name:"message",kind:"scalar",T:9}]),pi=b.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"}]),Sl=b.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]);function Cl(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Cn={exports:{}},El=Cn.exports,Gs;function Pl(){return Gs||(Gs=1,function(n){(function(e,t){n.exports?n.exports=t():e.log=t()})(El,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={},a=null;function o(g,P){var T=g[P];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 c(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function d(g){return g==="debug"&&(g="log"),typeof console===t?!1:g==="trace"&&i?c:console[g]!==void 0?o(console,g):console.log!==void 0?o(console,"log"):e}function l(){for(var g=this.getLevel(),P=0;P<r.length;P++){var T=r[P];this[T]=P<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 u(g){return function(){typeof console!==t&&(l.call(this),this[g].apply(this,arguments))}}function h(g,P,T){return d(g)||u.apply(this,arguments)}function m(g,P){var T=this,w,O,p,v="loglevel";typeof g=="string"?v+=":"+g:typeof g=="symbol"&&(v=void 0);function k(M){var N=(r[M]||"silent").toUpperCase();if(!(typeof window===t||!v)){try{window.localStorage[v]=N;return}catch{}try{window.document.cookie=encodeURIComponent(v)+"="+N+";"}catch{}}}function L(){var M;if(!(typeof window===t||!v)){try{M=window.localStorage[v]}catch{}if(typeof M===t)try{var N=window.document.cookie,U=encodeURIComponent(v),G=N.indexOf(U+"=");G!==-1&&(M=/^([^;]+)/.exec(N.slice(G+U.length+1))[1])}catch{}return T.levels[M]===void 0&&(M=void 0),M}}function R(){if(!(typeof window===t||!v)){try{window.localStorage.removeItem(v)}catch{}try{window.document.cookie=encodeURIComponent(v)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function S(M){var N=M;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: "+M)}T.name=g,T.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},T.methodFactory=P||h,T.getLevel=function(){return p??O??w},T.setLevel=function(M,N){return p=S(M),N!==!1&&k(p),l.call(T)},T.setDefaultLevel=function(M){O=S(M),L()||T.setLevel(M,!1)},T.resetLevel=function(){p=null,R(),l.call(T)},T.enableAll=function(M){T.setLevel(T.levels.TRACE,M)},T.disableAll=function(M){T.setLevel(T.levels.SILENT,M)},T.rebuild=function(){if(a!==T&&(w=S(a.getLevel())),l.call(T),a===T)for(var M in s)s[M].rebuild()},w=S(a?a.getLevel():"WARN");var _=L();_!=null&&(p=S(_)),l.call(T)}a=new m,a.getLogger=function(P){if(typeof P!="symbol"&&typeof P!="string"||P==="")throw new TypeError("You must supply a name when creating a logger.");var T=s[P];return T||(T=s[P]=new m(P,a.methodFactory)),T};var y=typeof window!==t?window.log:void 0;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=y),a},a.getLoggers=function(){return s},a.default=a,a})}(Cn)),Cn.exports}var Ht=Pl(),xt;(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"})(xt||(xt={}));var we;(function(n){n.Default="livekit",n.Room="livekit-room",n.Participant="livekit-participant",n.Track="livekit-track",n.Publication="livekit-track-publication",n.Engine="livekit-engine",n.Signal="livekit-signal",n.PCManager="livekit-pc-manager",n.PCTransport="livekit-pc-transport",n.E2EE="lk-e2ee"})(we||(we={}));let V=Ht.getLogger("livekit");const Hs=Object.values(we).map(n=>Ht.getLogger(n));V.setDefaultLevel(xt.info);function qe(n){const e=Ht.getLogger(n);return e.setDefaultLevel(V.getLevel()),e}function wl(n,e){if(e)Ht.getLogger(e).setLevel(n);else for(const t of Hs)t.setLevel(n)}function Rl(n,e){(e?[e]:Hs).forEach(i=>{const r=i.methodFactory;i.methodFactory=(s,a,o)=>{const c=r(s,a,o),d=xt[s],l=d>=a&&d<xt.silent;return(u,h)=>{h?c(u,h):c(u),l&&n(d,u,h)}},i.setLevel(i.getLevel())})}const _l=Ht.getLogger("lk-e2ee"),Jt=7e3,Il=[0,300,2*2*300,3*3*300,4*4*300,Jt,Jt,Jt,Jt,Jt];class Js{constructor(e){this._retryDelays=e!==void 0?[...e]:Il}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 Dl(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(n,i[r])&&(t[i[r]]=n[i[r]]);return t}function f(n,e,t,i){function r(s){return s instanceof t?s:new t(function(a){a(s)})}return new(t||(t=Promise))(function(s,a){function o(l){try{d(i.next(l))}catch(u){a(u)}}function c(l){try{d(i.throw(l))}catch(u){a(u)}}function d(l){l.done?s(l.value):r(l.value).then(o,c)}d((i=i.apply(n,e||[])).next())})}function $s(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 Qe(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 $s=="function"?$s(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(a){return new Promise(function(o,c){a=n[s](a),r(o,c,a.done,a.value)})}}function r(s,a,o,c){Promise.resolve(c).then(function(d){s({value:d,done:o})},a)}}typeof SuppressedError=="function"&&SuppressedError;var En={exports:{}},Qs;function Ol(){if(Qs)return En.exports;Qs=1;var n=typeof Reflect=="object"?Reflect:null,e=n&&typeof n.apply=="function"?n.apply:function(v,k,L){return Function.prototype.apply.call(v,k,L)},t;n&&typeof n.ownKeys=="function"?t=n.ownKeys:Object.getOwnPropertySymbols?t=function(v){return Object.getOwnPropertyNames(v).concat(Object.getOwnPropertySymbols(v))}:t=function(v){return Object.getOwnPropertyNames(v)};function i(p){console&&console.warn&&console.warn(p)}var r=Number.isNaN||function(v){return v!==v};function s(){s.init.call(this)}En.exports=s,En.exports.once=T,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var a=10;function o(p){if(typeof p!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof p)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return a},set:function(p){if(typeof p!="number"||p<0||r(p))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+p+".");a=p}}),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(v){if(typeof v!="number"||v<0||r(v))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+v+".");return this._maxListeners=v,this};function c(p){return p._maxListeners===void 0?s.defaultMaxListeners:p._maxListeners}s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(v){for(var k=[],L=1;L<arguments.length;L++)k.push(arguments[L]);var R=v==="error",S=this._events;if(S!==void 0)R=R&&S.error===void 0;else if(!R)return!1;if(R){var _;if(k.length>0&&(_=k[0]),_ instanceof Error)throw _;var M=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw M.context=_,M}var N=S[v];if(N===void 0)return!1;if(typeof N=="function")e(N,this,k);else for(var U=N.length,G=y(N,U),L=0;L<U;++L)e(G[L],this,k);return!0};function d(p,v,k,L){var R,S,_;if(o(k),S=p._events,S===void 0?(S=p._events=Object.create(null),p._eventsCount=0):(S.newListener!==void 0&&(p.emit("newListener",v,k.listener?k.listener:k),S=p._events),_=S[v]),_===void 0)_=S[v]=k,++p._eventsCount;else if(typeof _=="function"?_=S[v]=L?[k,_]:[_,k]:L?_.unshift(k):_.push(k),R=c(p),R>0&&_.length>R&&!_.warned){_.warned=!0;var M=new Error("Possible EventEmitter memory leak detected. "+_.length+" "+String(v)+" listeners added. Use emitter.setMaxListeners() to increase limit");M.name="MaxListenersExceededWarning",M.emitter=p,M.type=v,M.count=_.length,i(M)}return p}s.prototype.addListener=function(v,k){return d(this,v,k,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(v,k){return d(this,v,k,!0)};function l(){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 u(p,v,k){var L={fired:!1,wrapFn:void 0,target:p,type:v,listener:k},R=l.bind(L);return R.listener=k,L.wrapFn=R,R}s.prototype.once=function(v,k){return o(k),this.on(v,u(this,v,k)),this},s.prototype.prependOnceListener=function(v,k){return o(k),this.prependListener(v,u(this,v,k)),this},s.prototype.removeListener=function(v,k){var L,R,S,_,M;if(o(k),R=this._events,R===void 0)return this;if(L=R[v],L===void 0)return this;if(L===k||L.listener===k)--this._eventsCount===0?this._events=Object.create(null):(delete R[v],R.removeListener&&this.emit("removeListener",v,L.listener||k));else if(typeof L!="function"){for(S=-1,_=L.length-1;_>=0;_--)if(L[_]===k||L[_].listener===k){M=L[_].listener,S=_;break}if(S<0)return this;S===0?L.shift():g(L,S),L.length===1&&(R[v]=L[0]),R.removeListener!==void 0&&this.emit("removeListener",v,M||k)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(v){var k,L,R;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[v]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete L[v]),this;if(arguments.length===0){var S=Object.keys(L),_;for(R=0;R<S.length;++R)_=S[R],_!=="removeListener"&&this.removeAllListeners(_);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(k=L[v],typeof k=="function")this.removeListener(v,k);else if(k!==void 0)for(R=k.length-1;R>=0;R--)this.removeListener(v,k[R]);return this};function h(p,v,k){var L=p._events;if(L===void 0)return[];var R=L[v];return R===void 0?[]:typeof R=="function"?k?[R.listener||R]:[R]:k?P(R):y(R,R.length)}s.prototype.listeners=function(v){return h(this,v,!0)},s.prototype.rawListeners=function(v){return h(this,v,!1)},s.listenerCount=function(p,v){return typeof p.listenerCount=="function"?p.listenerCount(v):m.call(p,v)},s.prototype.listenerCount=m;function m(p){var v=this._events;if(v!==void 0){var k=v[p];if(typeof k=="function")return 1;if(k!==void 0)return k.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function y(p,v){for(var k=new Array(v),L=0;L<v;++L)k[L]=p[L];return k}function g(p,v){for(;v+1<p.length;v++)p[v]=p[v+1];p.pop()}function P(p){for(var v=new Array(p.length),k=0;k<v.length;++k)v[k]=p[k].listener||p[k];return v}function T(p,v){return new Promise(function(k,L){function R(_){p.removeListener(v,S),L(_)}function S(){typeof p.removeListener=="function"&&p.removeListener("error",R),k([].slice.call(arguments))}O(p,v,S,{once:!0}),v!=="error"&&w(p,R,{once:!0})})}function w(p,v,k){typeof p.on=="function"&&O(p,"error",v,k)}function O(p,v,k,L){if(typeof p.on=="function")L.once?p.once(v,k):p.on(v,k);else if(typeof p.addEventListener=="function")p.addEventListener(v,function R(S){L.once&&p.removeEventListener(v,R),k(S)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof p)}return En.exports}var Ke=Ol();let Ys=!0,Xs=!0;function $t(n,e,t){const i=n.match(e);return i&&i.length>=t&&parseFloat(i[t],10)}function yt(n,e,t){if(!n.RTCPeerConnection)return;const i=n.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(a,o){if(a!==e)return r.apply(this,arguments);const c=d=>{const l=t(d);l&&(o.handleEvent?o.handleEvent(l):o(l))};return this._eventMap=this._eventMap||{},this._eventMap[e]||(this._eventMap[e]=new Map),this._eventMap[e].set(o,c),r.apply(this,[a,c])};const s=i.removeEventListener;i.removeEventListener=function(a,o){if(a!==e||!this._eventMap||!this._eventMap[e])return s.apply(this,arguments);if(!this._eventMap[e].has(o))return s.apply(this,arguments);const c=this._eventMap[e].get(o);return this._eventMap[e].delete(o),this._eventMap[e].size===0&&delete this._eventMap[e],Object.keys(this._eventMap).length===0&&delete this._eventMap,s.apply(this,[a,c])},Object.defineProperty(i,"on"+e,{get(){return this["_on"+e]},set(a){this["_on"+e]&&(this.removeEventListener(e,this["_on"+e]),delete this["_on"+e]),a&&this.addEventListener(e,this["_on"+e]=a)},enumerable:!0,configurable:!0})}function Ml(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Ys=n,n?"adapter.js logging disabled":"adapter.js logging enabled")}function Al(n){return typeof n!="boolean"?new Error("Argument type: "+typeof n+". Please use a boolean."):(Xs=!n,"adapter.js deprecation warnings "+(n?"disabled":"enabled"))}function Zs(){if(typeof window=="object"){if(Ys)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function gi(n,e){Xs&&console.warn(n+" is deprecated, please use "+e+" instead.")}function xl(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($t(t.userAgent,/Firefox\/(\d+)\./,1));else if(t.webkitGetUserMedia||n.isSecureContext===!1&&n.webkitRTCPeerConnection)e.browser="chrome",e.version=parseInt($t(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else if(n.RTCPeerConnection&&t.userAgent.match(/AppleWebKit\/(\d+)\./))e.browser="safari",e.version=parseInt($t(t.userAgent,/AppleWebKit\/(\d+)\./,1)),e.supportsUnifiedPlan=n.RTCRtpTransceiver&&"currentDirection"in n.RTCRtpTransceiver.prototype,e._safariVersion=$t(t.userAgent,/Version\/(\d+(\.?\d+))/,1);else return e.browser="Not a supported browser.",e;return e}function ea(n){return Object.prototype.toString.call(n)==="[object Object]"}function ta(n){return ea(n)?Object.keys(n).reduce(function(e,t){const i=ea(n[t]),r=i?ta(n[t]):n[t],s=i&&!Object.keys(r).length;return r===void 0||s?e:Object.assign(e,{[t]:r})},{}):n}function vi(n,e,t){!e||t.has(e.id)||(t.set(e.id,e),Object.keys(e).forEach(i=>{i.endsWith("Id")?vi(n,n.get(e[i]),t):i.endsWith("Ids")&&e[i].forEach(r=>{vi(n,n.get(r),t)})}))}function na(n,e,t){const i=t?"outbound-rtp":"inbound-rtp",r=new Map;if(e===null)return r;const s=[];return n.forEach(a=>{a.type==="track"&&a.trackIdentifier===e.id&&s.push(a)}),s.forEach(a=>{n.forEach(o=>{o.type===i&&o.trackId===a.id&&vi(n,o,r)})}),r}const ia=Zs;function ra(n,e){const t=n&&n.navigator;if(!t.mediaDevices)return;const i=function(o){if(typeof o!="object"||o.mandatory||o.optional)return o;const c={};return Object.keys(o).forEach(d=>{if(d==="require"||d==="advanced"||d==="mediaSource")return;const l=typeof o[d]=="object"?o[d]:{ideal:o[d]};l.exact!==void 0&&typeof l.exact=="number"&&(l.min=l.max=l.exact);const u=function(h,m){return h?h+m.charAt(0).toUpperCase()+m.slice(1):m==="deviceId"?"sourceId":m};if(l.ideal!==void 0){c.optional=c.optional||[];let h={};typeof l.ideal=="number"?(h[u("min",d)]=l.ideal,c.optional.push(h),h={},h[u("max",d)]=l.ideal,c.optional.push(h)):(h[u("",d)]=l.ideal,c.optional.push(h))}l.exact!==void 0&&typeof l.exact!="number"?(c.mandatory=c.mandatory||{},c.mandatory[u("",d)]=l.exact):["min","max"].forEach(h=>{l[h]!==void 0&&(c.mandatory=c.mandatory||{},c.mandatory[u(h,d)]=l[h])})}),o.advanced&&(c.optional=(c.optional||[]).concat(o.advanced)),c},r=function(o,c){if(e.version>=61)return c(o);if(o=JSON.parse(JSON.stringify(o)),o&&typeof o.audio=="object"){const d=function(l,u,h){u in l&&!(h in l)&&(l[h]=l[u],delete l[u])};o=JSON.parse(JSON.stringify(o)),d(o.audio,"autoGainControl","googAutoGainControl"),d(o.audio,"noiseSuppression","googNoiseSuppression"),o.audio=i(o.audio)}if(o&&typeof o.video=="object"){let d=o.video.facingMode;d=d&&(typeof d=="object"?d:{ideal:d});const l=e.version<66;if(d&&(d.exact==="user"||d.exact==="environment"||d.ideal==="user"||d.ideal==="environment")&&!(t.mediaDevices.getSupportedConstraints&&t.mediaDevices.getSupportedConstraints().facingMode&&!l)){delete o.video.facingMode;let u;if(d.exact==="environment"||d.ideal==="environment"?u=["back","rear"]:(d.exact==="user"||d.ideal==="user")&&(u=["front"]),u)return t.mediaDevices.enumerateDevices().then(h=>{h=h.filter(y=>y.kind==="videoinput");let m=h.find(y=>u.some(g=>y.label.toLowerCase().includes(g)));return!m&&h.length&&u.includes("back")&&(m=h[h.length-1]),m&&(o.video.deviceId=d.exact?{exact:m.deviceId}:{ideal:m.deviceId}),o.video=i(o.video),ia("chrome: "+JSON.stringify(o)),c(o)})}o.video=i(o.video)}return ia("chrome: "+JSON.stringify(o)),c(o)},s=function(o){return e.version>=64?o:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[o.name]||o.name,message:o.message,constraint:o.constraint||o.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}},a=function(o,c,d){r(o,l=>{t.webkitGetUserMedia(l,c,u=>{d&&d(s(u))})})};if(t.getUserMedia=a.bind(t),t.mediaDevices.getUserMedia){const o=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(c){return r(c,d=>o(d).then(l=>{if(d.audio&&!l.getAudioTracks().length||d.video&&!l.getVideoTracks().length)throw l.getTracks().forEach(u=>{u.stop()}),new DOMException("","NotFoundError");return l},l=>Promise.reject(s(l))))}}}function sa(n){n.MediaStream=n.MediaStream||n.webkitMediaStream}function aa(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(o=>o.track&&o.track.id===r.track.id):s={track:r.track};const a=new Event("track");a.track=r.track,a.receiver=s,a.transceiver={receiver:s},a.streams=[i.stream],this.dispatchEvent(a)}),i.stream.getTracks().forEach(r=>{let s;n.RTCPeerConnection.prototype.getReceivers?s=this.getReceivers().find(o=>o.track&&o.track.id===r.id):s={track:r};const a=new Event("track");a.track=r,a.receiver=s,a.transceiver={receiver:s},a.streams=[i.stream],this.dispatchEvent(a)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else yt(n,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function oa(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(o,c){let d=r.apply(this,arguments);return d||(d=e(this,o),this._senders.push(d)),d};const s=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(o){s.apply(this,arguments);const c=this._senders.indexOf(o);c!==-1&&this._senders.splice(c,1)}}const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(s){this._senders=this._senders||[],t.apply(this,[s]),s.getTracks().forEach(a=>{this._senders.push(e(this,a))})};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(s){this._senders=this._senders||[],i.apply(this,[s]),s.getTracks().forEach(a=>{const o=this._senders.find(c=>c.track===a);o&&this._senders.splice(this._senders.indexOf(o),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 ca(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(a=>a._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(a=>na(a,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}),yt(n,"track",i=>(i.receiver._pc=i.srcElement,i)),n.RTCRtpReceiver.prototype.getStats=function(){const r=this;return this._pc.getStats().then(s=>na(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,a;return this.getSenders().forEach(o=>{o.track===i&&(r?a=!0:r=o)}),this.getReceivers().forEach(o=>(o.track===i&&(s?a=!0:s=o),o.track===i)),a||r&&s?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):r?r.getStats():s?s.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return e.apply(this,arguments)}}function da(n){n.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(a=>this._shimmedLocalStreams[a][0])};const e=n.RTCPeerConnection.prototype.addTrack;n.RTCPeerConnection.prototype.addTrack=function(a,o){if(!o)return e.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const c=e.apply(this,arguments);return this._shimmedLocalStreams[o.id]?this._shimmedLocalStreams[o.id].indexOf(c)===-1&&this._shimmedLocalStreams[o.id].push(c):this._shimmedLocalStreams[o.id]=[o,c],c};const t=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(a){this._shimmedLocalStreams=this._shimmedLocalStreams||{},a.getTracks().forEach(d=>{if(this.getSenders().find(u=>u.track===d))throw new DOMException("Track already exists.","InvalidAccessError")});const o=this.getSenders();t.apply(this,arguments);const c=this.getSenders().filter(d=>o.indexOf(d)===-1);this._shimmedLocalStreams[a.id]=[a].concat(c)};const i=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[a.id],i.apply(this,arguments)};const r=n.RTCPeerConnection.prototype.removeTrack;n.RTCPeerConnection.prototype.removeTrack=function(a){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},a&&Object.keys(this._shimmedLocalStreams).forEach(o=>{const c=this._shimmedLocalStreams[o].indexOf(a);c!==-1&&this._shimmedLocalStreams[o].splice(c,1),this._shimmedLocalStreams[o].length===1&&delete this._shimmedLocalStreams[o]}),r.apply(this,arguments)}}function la(n,e){if(!n.RTCPeerConnection)return;if(n.RTCPeerConnection.prototype.addTrack&&e.version>=65)return da(n);const t=n.RTCPeerConnection.prototype.getLocalStreams;n.RTCPeerConnection.prototype.getLocalStreams=function(){const l=t.apply(this);return this._reverseStreams=this._reverseStreams||{},l.map(u=>this._reverseStreams[u.id])};const i=n.RTCPeerConnection.prototype.addStream;n.RTCPeerConnection.prototype.addStream=function(l){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},l.getTracks().forEach(u=>{if(this.getSenders().find(m=>m.track===u))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[l.id]){const u=new n.MediaStream(l.getTracks());this._streams[l.id]=u,this._reverseStreams[u.id]=l,l=u}i.apply(this,[l])};const r=n.RTCPeerConnection.prototype.removeStream;n.RTCPeerConnection.prototype.removeStream=function(l){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[l.id]||l]),delete this._reverseStreams[this._streams[l.id]?this._streams[l.id].id:l.id],delete this._streams[l.id]},n.RTCPeerConnection.prototype.addTrack=function(l,u){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===l))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===l))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const y=this._streams[u.id];if(y)y.addTrack(l),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const g=new n.MediaStream([l]);this._streams[u.id]=g,this._reverseStreams[g.id]=u,this.addStream(g)}return this.getSenders().find(g=>g.track===l)};function s(d,l){let u=l.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const m=d._reverseStreams[h],y=d._streams[m.id];u=u.replace(new RegExp(y.id,"g"),m.id)}),new RTCSessionDescription({type:l.type,sdp:u})}function a(d,l){let u=l.sdp;return Object.keys(d._reverseStreams||[]).forEach(h=>{const m=d._reverseStreams[h],y=d._streams[m.id];u=u.replace(new RegExp(m.id,"g"),y.id)}),new RTCSessionDescription({type:l.type,sdp:u})}["createOffer","createAnswer"].forEach(function(d){const l=n.RTCPeerConnection.prototype[d],u={[d](){const h=arguments;return arguments.length&&typeof arguments[0]=="function"?l.apply(this,[y=>{const g=s(this,y);h[0].apply(null,[g])},y=>{h[1]&&h[1].apply(null,y)},arguments[2]]):l.apply(this,arguments).then(y=>s(this,y))}};n.RTCPeerConnection.prototype[d]=u[d]});const o=n.RTCPeerConnection.prototype.setLocalDescription;n.RTCPeerConnection.prototype.setLocalDescription=function(){return!arguments.length||!arguments[0].type?o.apply(this,arguments):(arguments[0]=a(this,arguments[0]),o.apply(this,arguments))};const c=Object.getOwnPropertyDescriptor(n.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(n.RTCPeerConnection.prototype,"localDescription",{get(){const d=c.get.apply(this);return d.type===""?d:s(this,d)}}),n.RTCPeerConnection.prototype.removeTrack=function(l){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!l._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(l._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");this._streams=this._streams||{};let h;Object.keys(this._streams).forEach(m=>{this._streams[m].getTracks().find(g=>l.track===g)&&(h=this._streams[m])}),h&&(h.getTracks().length===1?this.removeStream(this._reverseStreams[h.id]):h.removeTrack(l.track),this.dispatchEvent(new Event("negotiationneeded")))}}function yi(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 ua(n,e){yt(n,"negotiationneeded",t=>{const i=t.target;if(!((e.version<72||i.getConfiguration&&i.getConfiguration().sdpSemantics==="plan-b")&&i.signalingState!=="stable"))return t})}var ha=Object.freeze({__proto__:null,fixNegotiationNeeded:ua,shimAddTrackRemoveTrack:la,shimAddTrackRemoveTrackWithNative:da,shimGetSendersWithDtmf:oa,shimGetUserMedia:ra,shimMediaStream:sa,shimOnTrack:aa,shimPeerConnection:yi,shimSenderReceiverGetStats:ca});function fa(n,e){const t=n&&n.navigator,i=n&&n.MediaStreamTrack;if(t.getUserMedia=function(r,s,a){gi("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),t.mediaDevices.getUserMedia(r).then(s,a)},!(e.version>55&&"autoGainControl"in t.mediaDevices.getSupportedConstraints())){const r=function(a,o,c){o in a&&!(c in a)&&(a[c]=a[o],delete a[o])},s=t.mediaDevices.getUserMedia.bind(t.mediaDevices);if(t.mediaDevices.getUserMedia=function(a){return typeof a=="object"&&typeof a.audio=="object"&&(a=JSON.parse(JSON.stringify(a)),r(a.audio,"autoGainControl","mozAutoGainControl"),r(a.audio,"noiseSuppression","mozNoiseSuppression")),s(a)},i&&i.prototype.getSettings){const a=i.prototype.getSettings;i.prototype.getSettings=function(){const o=a.apply(this,arguments);return r(o,"mozAutoGainControl","autoGainControl"),r(o,"mozNoiseSuppression","noiseSuppression"),o}}if(i&&i.prototype.applyConstraints){const a=i.prototype.applyConstraints;i.prototype.applyConstraints=function(o){return this.kind==="audio"&&typeof o=="object"&&(o=JSON.parse(JSON.stringify(o)),r(o,"autoGainControl","mozAutoGainControl"),r(o,"noiseSuppression","mozNoiseSuppression")),a.apply(this,[o])}}}}function Ll(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 ma(n){typeof n=="object"&&n.RTCTrackEvent&&"receiver"in n.RTCTrackEvent.prototype&&!("transceiver"in n.RTCTrackEvent.prototype)&&Object.defineProperty(n.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function bi(n,e){if(typeof n!="object"||!(n.RTCPeerConnection||n.mozRTCPeerConnection))return;!n.RTCPeerConnection&&n.mozRTCPeerConnection&&(n.RTCPeerConnection=n.mozRTCPeerConnection),e.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(r){const s=n.RTCPeerConnection.prototype[r],a={[r](){return arguments[0]=new(r==="addIceCandidate"?n.RTCIceCandidate:n.RTCSessionDescription)(arguments[0]),s.apply(this,arguments)}};n.RTCPeerConnection.prototype[r]=a[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,a,o]=arguments;return i.apply(this,[s||null]).then(c=>{if(e.version<53&&!a)try{c.forEach(d=>{d.type=t[d.type]||d.type})}catch(d){if(d.name!=="TypeError")throw d;c.forEach((l,u)=>{c.set(u,Object.assign({},l,{type:t[l.type]||l.type}))})}return c}).then(a,o)}}function pa(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 ga(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}),yt(n,"track",t=>(t.receiver._pc=t.srcElement,t)),n.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function va(n){!n.RTCPeerConnection||"removeStream"in n.RTCPeerConnection.prototype||(n.RTCPeerConnection.prototype.removeStream=function(t){gi("removeStream","removeTrack"),this.getSenders().forEach(i=>{i.track&&t.getTracks().includes(i.track)&&this.removeTrack(i)})})}function ya(n){n.DataChannel&&!n.RTCDataChannel&&(n.RTCDataChannel=n.DataChannel)}function ba(n){if(!(typeof n=="object"&&n.RTCPeerConnection))return;const e=n.RTCPeerConnection.prototype.addTransceiver;e&&(n.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let i=arguments[1]&&arguments[1].sendEncodings;i===void 0&&(i=[]),i=[...i];const r=i.length>0;r&&i.forEach(a=>{if("rid"in a&&!/^[a-z0-9]{0,16}$/i.test(a.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in a&&!(parseFloat(a.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in a&&!(parseFloat(a.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const s=e.apply(this,arguments);if(r){const{sender:a}=s,o=a.getParameters();(!("encodings"in o)||o.encodings.length===1&&Object.keys(o.encodings[0]).length===0)&&(o.encodings=i,a.sendEncodings=i,this.setParametersPromises.push(a.setParameters(o).then(()=>{delete a.sendEncodings}).catch(()=>{delete a.sendEncodings})))}return s})}function ka(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 Ta(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 Sa(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 Ca=Object.freeze({__proto__:null,shimAddTransceiver:ba,shimCreateAnswer:Sa,shimCreateOffer:Ta,shimGetDisplayMedia:Ll,shimGetParameters:ka,shimGetUserMedia:fa,shimOnTrack:ma,shimPeerConnection:bi,shimRTCDataChannel:ya,shimReceiverGetStats:ga,shimRemoveStream:va,shimSenderGetStats:pa});function Ea(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),a=1;a<r;a++)s[a-1]=arguments[a];return s&&s.forEach(o=>{this._localStreams?this._localStreams.includes(o)||this._localStreams.push(o):this._localStreams=[o]}),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 Pa(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 a=new Event("addstream");a.stream=s,i.dispatchEvent(a)})}),e.apply(i,arguments)}}}function wa(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,a=e.addIceCandidate;e.createOffer=function(d,l){const u=arguments.length>=2?arguments[2]:arguments[0],h=t.apply(this,[u]);return l?(h.then(d,l),Promise.resolve()):h},e.createAnswer=function(d,l){const u=arguments.length>=2?arguments[2]:arguments[0],h=i.apply(this,[u]);return l?(h.then(d,l),Promise.resolve()):h};let o=function(c,d,l){const u=r.apply(this,[c]);return l?(u.then(d,l),Promise.resolve()):u};e.setLocalDescription=o,o=function(c,d,l){const u=s.apply(this,[c]);return l?(u.then(d,l),Promise.resolve()):u},e.setRemoteDescription=o,o=function(c,d,l){const u=a.apply(this,[c]);return l?(u.then(d,l),Promise.resolve()):u},e.addIceCandidate=o}function Ra(n){const e=n&&n.navigator;if(e.mediaDevices&&e.mediaDevices.getUserMedia){const t=e.mediaDevices,i=t.getUserMedia.bind(t);e.mediaDevices.getUserMedia=r=>i(_a(r))}!e.getUserMedia&&e.mediaDevices&&e.mediaDevices.getUserMedia&&(e.getUserMedia=(function(i,r,s){e.mediaDevices.getUserMedia(i).then(r,s)}).bind(e))}function _a(n){return n&&n.video!==void 0?Object.assign({},n,{video:ta(n.video)}):n}function Ia(n){if(!n.RTCPeerConnection)return;const e=n.RTCPeerConnection;n.RTCPeerConnection=function(i,r){if(i&&i.iceServers){const s=[];for(let a=0;a<i.iceServers.length;a++){let o=i.iceServers[a];o.urls===void 0&&o.url?(gi("RTCIceServer.url","RTCIceServer.urls"),o=JSON.parse(JSON.stringify(o)),o.urls=o.url,delete o.url,s.push(o)):s.push(i.iceServers[a])}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 Da(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 Oa(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(a=>a.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(a=>a.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 Ma(n){typeof n!="object"||n.AudioContext||(n.AudioContext=n.webkitAudioContext)}var Aa=Object.freeze({__proto__:null,shimAudioContext:Ma,shimCallbacksAPI:wa,shimConstraints:_a,shimCreateOfferLegacy:Oa,shimGetUserMedia:Ra,shimLocalStreamsAPI:Ea,shimRTCIceServerUrls:Ia,shimRemoteStreamsAPI:Pa,shimTrackEventTransceiver:Da}),ki={exports:{}},xa;function Nl(){return xa||(xa=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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as x, a as N, S as O, C as g, b as U, d as P, e as V, A as w, f as q, T as J } from "./index-
|
|
1
|
+
import { c as x, a as N, S as O, C as g, b as U, d as P, e as V, A as w, f as q, T as J } from "./index-n99Xwccj.js";
|
|
2
2
|
function Q(u, T, h, i) {
|
|
3
3
|
const p = x(u, `${T}/v2/agents/${h}`, i);
|
|
4
4
|
return {
|
|
@@ -133,6 +133,7 @@ export interface AgentManagerOptions {
|
|
|
133
133
|
debug?: boolean;
|
|
134
134
|
enableAnalitics?: boolean;
|
|
135
135
|
mixpanelKey?: string;
|
|
136
|
+
mixpanelAdditionalProperties?: Record<string, any>;
|
|
136
137
|
/**
|
|
137
138
|
* Unique ID of agent user used in analytics. Pass it to override the default way to get distinctId
|
|
138
139
|
*/
|