@d-id/client-sdk 1.1.20-staging.90 → 1.1.20
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-BH8ByqOr.js → index-DcoRNuxp.js} +248 -249
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +5 -5
- package/dist/{livekit-manager-D9xuX-OS.js → livekit-manager-CNKaXUpT.js} +68 -62
- package/dist/src/api/streams/streamsApiV2.d.ts +2 -2
- package/dist/src/services/agent-manager/connect-to-manager.d.ts +2 -2
- package/dist/src/services/streaming-manager/common.d.ts +2 -2
- package/dist/src/services/streaming-manager/factory.d.ts +3 -3
- package/dist/src/services/streaming-manager/livekit-manager.d.ts +2 -2
- package/dist/src/types/stream/streams-v2.d.ts +7 -6
- package/package.json +1 -1
|
@@ -35,8 +35,8 @@ class _e extends ee {
|
|
|
35
35
|
super({ kind: "WSError", description: t });
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
var Te = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(Te || {}), Ae = /* @__PURE__ */ ((e) => (e.TRIAL = "deid-trial", e.PRO = "deid-pro", e.ENTERPRISE = "deid-enterprise", e.LITE = "deid-lite", e.ADVANCED = "deid-advanced", e.BUILD = "deid-api-build", e.LAUNCH = "deid-api-launch", e.SCALE = "deid-api-scale", e))(Ae || {}), Pe = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(Pe || {}), be = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(be || {}),
|
|
39
|
-
const
|
|
38
|
+
var Te = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(Te || {}), Ae = /* @__PURE__ */ ((e) => (e.TRIAL = "deid-trial", e.PRO = "deid-pro", e.ENTERPRISE = "deid-enterprise", e.LITE = "deid-lite", e.ADVANCED = "deid-advanced", e.BUILD = "deid-api-build", e.LAUNCH = "deid-api-launch", e.SCALE = "deid-api-scale", e))(Ae || {}), Pe = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(Pe || {}), be = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(be || {}), T = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e.Playground = "Playground", e.DirectPlayback = "DirectPlayback", e.Off = "Off", e))(T || {}), q = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(q || {}), je = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(je || {}), Le = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(Le || {}), xe = /* @__PURE__ */ ((e) => (e.Pdf = "pdf", e.Text = "text", e.Html = "html", e.Word = "word", e.Json = "json", e.Markdown = "markdown", e.Csv = "csv", e.Excel = "excel", e.Powerpoint = "powerpoint", e.Archive = "archive", e.Image = "image", e.Audio = "audio", e.Video = "video", e))(xe || {}), we = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e.Expressive = "expressive", e))(we || {});
|
|
39
|
+
const Lt = (e) => {
|
|
40
40
|
switch (e) {
|
|
41
41
|
case "clip":
|
|
42
42
|
return "clip";
|
|
@@ -48,11 +48,11 @@ const xt = (e) => {
|
|
|
48
48
|
throw new Error(`Unknown video type: ${e}`);
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
|
-
var
|
|
51
|
+
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 || {}), X = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Talking = "TALKING", e))(X || {}), b = /* @__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))(b || {}), M = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnected = "disconnected", e))(M || {}), J = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(J || {}), de = /* @__PURE__ */ ((e) => (e.Livekit = "livekit", e))(de || {}), Be = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.AzureOpenAi = "azure-openai", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Be || {}), $e = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))($e || {});
|
|
52
52
|
const ze = 45 * 1e3, Fe = "X-Playground-Chat", te = "https://api.d-id.com", Ne = "wss://notifications.d-id.com", Je = "79f81a83a67430be2bc0fd61042b8faa", pe = (e) => new Promise((t) => setTimeout(t, e)), O = (e = 16) => {
|
|
53
53
|
const t = new Uint8Array(e);
|
|
54
54
|
return window.crypto.getRandomValues(t), Array.from(t, (a) => a.toString(16).padStart(2, "0")).join("").slice(0, 13);
|
|
55
|
-
},
|
|
55
|
+
}, ve = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type, le = (e) => e === we.Expressive, We = (e) => [T.TextOnly, T.Playground, T.Maintenance].includes(e), ye = (e) => e && [T.DirectPlayback, T.Off].includes(e);
|
|
56
56
|
function Ue(e, t) {
|
|
57
57
|
let a;
|
|
58
58
|
return {
|
|
@@ -97,7 +97,7 @@ function ae(e) {
|
|
|
97
97
|
return t;
|
|
98
98
|
}
|
|
99
99
|
let Ke = O();
|
|
100
|
-
function
|
|
100
|
+
function ke(e, t) {
|
|
101
101
|
if (e.type === "bearer")
|
|
102
102
|
return `Bearer ${e.token}`;
|
|
103
103
|
if (e.type === "basic")
|
|
@@ -112,14 +112,14 @@ const He = (e) => ne(e, {
|
|
|
112
112
|
timeout: 0,
|
|
113
113
|
shouldRetryFn: (t) => t.status === 429
|
|
114
114
|
});
|
|
115
|
-
function
|
|
115
|
+
function Ce(e, t = te, a, r) {
|
|
116
116
|
const o = async (i, c) => {
|
|
117
117
|
const { skipErrorHandler: n, ...s } = c || {}, d = await He(
|
|
118
118
|
() => fetch(t + (i != null && i.startsWith("/") ? i : `/${i}`), {
|
|
119
119
|
...s,
|
|
120
120
|
headers: {
|
|
121
121
|
...s.headers,
|
|
122
|
-
Authorization:
|
|
122
|
+
Authorization: ke(e, r),
|
|
123
123
|
"Content-Type": "application/json"
|
|
124
124
|
}
|
|
125
125
|
})
|
|
@@ -147,7 +147,7 @@ function ke(e, t = te, a, r) {
|
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
149
|
function Ve(e, t = te, a, r) {
|
|
150
|
-
const o =
|
|
150
|
+
const o = Ce(e, `${t}/agents`, a, r);
|
|
151
151
|
return {
|
|
152
152
|
create(i, c) {
|
|
153
153
|
return o.post("/", i, c);
|
|
@@ -195,7 +195,7 @@ function qe(e) {
|
|
|
195
195
|
isMobile: `${t() == "Mobile"}`,
|
|
196
196
|
browser: navigator.userAgent,
|
|
197
197
|
origin: window.location.origin,
|
|
198
|
-
agentType:
|
|
198
|
+
agentType: ve(r),
|
|
199
199
|
agentVoice: {
|
|
200
200
|
voiceId: (i = (o = e.presenter) == null ? void 0 : o.voice) == null ? void 0 : i.voice_id,
|
|
201
201
|
provider: (n = (c = e.presenter) == null ? void 0 : c.voice) == null ? void 0 : n.type
|
|
@@ -206,7 +206,7 @@ function Oe(e) {
|
|
|
206
206
|
var a, r, o, i, c, n;
|
|
207
207
|
const t = (a = e.llm) == null ? void 0 : a.prompt_customization;
|
|
208
208
|
return {
|
|
209
|
-
agentType:
|
|
209
|
+
agentType: ve(e.presenter),
|
|
210
210
|
owner_id: e.owner_id ?? "",
|
|
211
211
|
promptVersion: (r = e.llm) == null ? void 0 : r.prompt_version,
|
|
212
212
|
behavior: {
|
|
@@ -225,7 +225,7 @@ function Oe(e) {
|
|
|
225
225
|
...e.access === "public" ? { from: "agent-template" } : {}
|
|
226
226
|
};
|
|
227
227
|
}
|
|
228
|
-
const Xe = (e) => e.reduce((t, a) => t + a, 0),
|
|
228
|
+
const Xe = (e) => e.reduce((t, a) => t + a, 0), ue = (e) => Xe(e) / e.length;
|
|
229
229
|
function Ye(e, t, a) {
|
|
230
230
|
var s, d, l;
|
|
231
231
|
const { event: r, ...o } = e, { template: i } = (t == null ? void 0 : t.llm) || {}, { language: c } = ((s = t == null ? void 0 : t.presenter) == null ? void 0 : s.voice) || {};
|
|
@@ -237,7 +237,7 @@ function Ye(e, t, a) {
|
|
|
237
237
|
...a
|
|
238
238
|
};
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function fe(e) {
|
|
241
241
|
"requestIdleCallback" in window ? requestIdleCallback(e, { timeout: 2e3 }) : setTimeout(e, 0);
|
|
242
242
|
}
|
|
243
243
|
let re = {};
|
|
@@ -315,13 +315,13 @@ function De() {
|
|
|
315
315
|
get: (t = !1) => t ? Date.now() - e : e
|
|
316
316
|
};
|
|
317
317
|
}
|
|
318
|
-
const
|
|
319
|
-
function
|
|
320
|
-
return e ===
|
|
318
|
+
const N = De(), ie = De();
|
|
319
|
+
function Re(e) {
|
|
320
|
+
return e === T.Playground ? { headers: { [Fe]: "true" } } : {};
|
|
321
321
|
}
|
|
322
|
-
async function
|
|
322
|
+
async function se(e, t, a, r, o = !1, i) {
|
|
323
323
|
try {
|
|
324
|
-
return !i && !
|
|
324
|
+
return !i && !ye(r) && (i = await t.newChat(e.id, { persist: o }, Re(r)), a.track("agent-chat", {
|
|
325
325
|
event: "created",
|
|
326
326
|
chatId: i.id,
|
|
327
327
|
mode: r
|
|
@@ -352,7 +352,7 @@ function et(e, t, a) {
|
|
|
352
352
|
}
|
|
353
353
|
async function tt(e, t) {
|
|
354
354
|
const a = {
|
|
355
|
-
type:
|
|
355
|
+
type: b.StreamInterrupt,
|
|
356
356
|
videoId: t,
|
|
357
357
|
timestamp: Date.now()
|
|
358
358
|
};
|
|
@@ -360,7 +360,7 @@ async function tt(e, t) {
|
|
|
360
360
|
}
|
|
361
361
|
function rt(e) {
|
|
362
362
|
return new Promise((t, a) => {
|
|
363
|
-
const { callbacks: r, host: o, auth: i, externalId: c } = e, { onMessage: n = null, onOpen: s = null, onClose: d = null, onError: l = null } = r || {}, u = new WebSocket(`${o}?authorization=${encodeURIComponent(
|
|
363
|
+
const { callbacks: r, host: o, auth: i, externalId: c } = e, { onMessage: n = null, onOpen: s = null, onClose: d = null, onError: l = null } = r || {}, u = new WebSocket(`${o}?authorization=${encodeURIComponent(ke(i, c))}`);
|
|
364
364
|
u.onmessage = n, u.onclose = d, u.onerror = (y) => {
|
|
365
365
|
console.error(y), l == null || l("Websocket failed to connect", y), a(y);
|
|
366
366
|
}, u.onopen = (y) => {
|
|
@@ -432,12 +432,12 @@ function ot(e, t, a, r, o) {
|
|
|
432
432
|
mode: t.chatMode
|
|
433
433
|
});
|
|
434
434
|
else {
|
|
435
|
-
const l =
|
|
435
|
+
const l = b, u = [l.StreamVideoDone, l.StreamVideoError, l.StreamVideoRejected], y = [l.StreamFailed, l.StreamVideoError, l.StreamVideoRejected], A = Ye(n, r, { mode: t.chatMode });
|
|
436
436
|
if (c = c, c === l.StreamVideoCreated)
|
|
437
|
-
e.linkTrack("agent-video",
|
|
437
|
+
e.linkTrack("agent-video", A, l.StreamVideoCreated, ["start"]);
|
|
438
438
|
else if (u.includes(c)) {
|
|
439
|
-
const
|
|
440
|
-
y.includes(c) ? e.track("agent-video", { ...
|
|
439
|
+
const j = c.split("/")[1];
|
|
440
|
+
y.includes(c) ? e.track("agent-video", { ...A, event: j }) : e.linkTrack("agent-video", { ...A, event: j }, c, ["done"]);
|
|
441
441
|
}
|
|
442
442
|
y.includes(c) && ((d = (s = a.callbacks).onError) == null || d.call(s, new Error(`Stream failed with event ${c}`), { data: n })), n.event === l.StreamDone && o();
|
|
443
443
|
}
|
|
@@ -445,7 +445,7 @@ function ot(e, t, a, r, o) {
|
|
|
445
445
|
};
|
|
446
446
|
}
|
|
447
447
|
function ct(e, t, a, r) {
|
|
448
|
-
const o =
|
|
448
|
+
const o = Ce(e, `${t}/agents/${a}`, r);
|
|
449
449
|
return {
|
|
450
450
|
createStream(i) {
|
|
451
451
|
return o.post("/streams", i);
|
|
@@ -592,19 +592,19 @@ function mt(e, t, a) {
|
|
|
592
592
|
webRTCStats: {
|
|
593
593
|
anomalies: o,
|
|
594
594
|
minRtt: Math.min(...n),
|
|
595
|
-
avgRtt:
|
|
595
|
+
avgRtt: ue(n),
|
|
596
596
|
maxRtt: Math.max(...n),
|
|
597
597
|
aggregateReport: lt(e[0], e[e.length - 1], i),
|
|
598
598
|
minJitterDelayInInterval: Math.min(...c),
|
|
599
599
|
maxJitterDelayInInterval: Math.max(...c),
|
|
600
|
-
avgJitterDelayInInterval:
|
|
600
|
+
avgJitterDelayInInterval: ue(c)
|
|
601
601
|
},
|
|
602
602
|
codec: e[0].codec,
|
|
603
603
|
resolution: `${e[0].frameWidth}x${e[0].frameHeight}`
|
|
604
604
|
};
|
|
605
605
|
}
|
|
606
|
-
const
|
|
607
|
-
function
|
|
606
|
+
const oe = 100, gt = Math.max(Math.ceil(400 / oe), 1), ht = 0.25, wt = 0.28;
|
|
607
|
+
function pt() {
|
|
608
608
|
let e = 0, t, a, r = 0;
|
|
609
609
|
return (o) => {
|
|
610
610
|
for (const i of o.values())
|
|
@@ -623,36 +623,36 @@ function wt() {
|
|
|
623
623
|
}
|
|
624
624
|
function vt(e, t, a, r, o) {
|
|
625
625
|
let i = [], c, n = 0, s = !1, d = Z.Unknown, l = Z.Unknown, u = 0, y = 0;
|
|
626
|
-
const
|
|
626
|
+
const A = pt();
|
|
627
627
|
return setInterval(async () => {
|
|
628
|
-
const
|
|
629
|
-
if (
|
|
630
|
-
n = 0, u =
|
|
628
|
+
const j = await e.getStats(), { isReceiving: z, avgJitterDelayInInterval: F, freezeCount: L } = A(j), C = ft(j);
|
|
629
|
+
if (z)
|
|
630
|
+
n = 0, u = L - y, l = F < ht ? Z.Strong : F > wt && u > 1 ? Z.Weak : d, l !== d && (o == null || o(l), d = l, y += u, u = 0), s || (r == null || r(w.Start), c = i[i.length - 1], i = [], s = !0), i.push(C);
|
|
631
631
|
else if (s && (n++, n >= gt)) {
|
|
632
|
-
const K = mt(i,
|
|
633
|
-
r == null || r(
|
|
632
|
+
const K = mt(i, oe, c);
|
|
633
|
+
r == null || r(w.Stop, K), t() || a(), y = L, s = !1;
|
|
634
634
|
}
|
|
635
|
-
},
|
|
635
|
+
}, oe);
|
|
636
636
|
}
|
|
637
637
|
const yt = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
|
|
638
|
-
function
|
|
638
|
+
function me(e) {
|
|
639
639
|
switch (e) {
|
|
640
640
|
case "connected":
|
|
641
|
-
return
|
|
641
|
+
return M.Connected;
|
|
642
642
|
case "checking":
|
|
643
|
-
return
|
|
643
|
+
return M.Connecting;
|
|
644
644
|
case "failed":
|
|
645
|
-
return
|
|
645
|
+
return M.Fail;
|
|
646
646
|
case "new":
|
|
647
|
-
return
|
|
647
|
+
return M.New;
|
|
648
648
|
case "closed":
|
|
649
|
-
return
|
|
649
|
+
return M.Closed;
|
|
650
650
|
case "disconnected":
|
|
651
|
-
return
|
|
651
|
+
return M.Disconnected;
|
|
652
652
|
case "completed":
|
|
653
|
-
return
|
|
653
|
+
return M.Completed;
|
|
654
654
|
default:
|
|
655
|
-
return
|
|
655
|
+
return M.New;
|
|
656
656
|
}
|
|
657
657
|
}
|
|
658
658
|
const kt = (e) => (t) => {
|
|
@@ -664,24 +664,24 @@ const kt = (e) => (t) => {
|
|
|
664
664
|
return e("Failed to parse data channel message, returning data as string", { subject: a, rawData: r, error: o }), { subject: a, data: r };
|
|
665
665
|
}
|
|
666
666
|
};
|
|
667
|
-
function
|
|
667
|
+
function Ct({
|
|
668
668
|
statsSignal: e,
|
|
669
669
|
dataChannelSignal: t,
|
|
670
670
|
onVideoStateChange: a,
|
|
671
671
|
report: r
|
|
672
672
|
}) {
|
|
673
|
-
e ===
|
|
673
|
+
e === w.Start && t === w.Start ? a == null || a(w.Start) : e === w.Stop && t === w.Stop && (a == null || a(w.Stop, r));
|
|
674
674
|
}
|
|
675
|
-
function
|
|
675
|
+
function Dt({
|
|
676
676
|
statsSignal: e,
|
|
677
677
|
dataChannelSignal: t,
|
|
678
678
|
onVideoStateChange: a,
|
|
679
679
|
onAgentActivityStateChange: r,
|
|
680
680
|
report: o
|
|
681
681
|
}) {
|
|
682
|
-
e ===
|
|
682
|
+
e === w.Start ? a == null || a(w.Start) : e === w.Stop && (a == null || a(w.Stop, o)), t === w.Start ? r == null || r(X.Talking) : t === w.Stop && (r == null || r(X.Idle));
|
|
683
683
|
}
|
|
684
|
-
function
|
|
684
|
+
function ge({
|
|
685
685
|
statsSignal: e,
|
|
686
686
|
dataChannelSignal: t,
|
|
687
687
|
onVideoStateChange: a,
|
|
@@ -689,7 +689,7 @@ function me({
|
|
|
689
689
|
streamType: o,
|
|
690
690
|
report: i
|
|
691
691
|
}) {
|
|
692
|
-
o === J.Legacy ?
|
|
692
|
+
o === J.Legacy ? Ct({ statsSignal: e, dataChannelSignal: t, onVideoStateChange: a, report: i }) : o === J.Fluent && Dt({
|
|
693
693
|
statsSignal: e,
|
|
694
694
|
dataChannelSignal: t,
|
|
695
695
|
onVideoStateChange: a,
|
|
@@ -700,43 +700,43 @@ function me({
|
|
|
700
700
|
async function Rt(e, t, { debug: a = !1, callbacks: r, auth: o, baseURL: i = te, analytics: c }) {
|
|
701
701
|
var H;
|
|
702
702
|
const n = dt(a, "WebRTCStreamingManager"), s = kt(n);
|
|
703
|
-
let d = !1, l = !1, u =
|
|
704
|
-
const { startConnection:
|
|
703
|
+
let d = !1, l = !1, u = w.Stop, y = w.Stop;
|
|
704
|
+
const { startConnection: A, sendStreamRequest: j, close: z, createStream: F, addIceCandidate: L } = ct(
|
|
705
705
|
o,
|
|
706
706
|
i,
|
|
707
707
|
e,
|
|
708
708
|
r.onError
|
|
709
709
|
), {
|
|
710
|
-
id:
|
|
710
|
+
id: C,
|
|
711
711
|
offer: K,
|
|
712
712
|
ice_servers: G,
|
|
713
|
-
session_id:
|
|
713
|
+
session_id: x,
|
|
714
714
|
fluent: Y,
|
|
715
715
|
interrupt_enabled: f,
|
|
716
716
|
triggers_enabled: D
|
|
717
|
-
} = await
|
|
718
|
-
(H = r.onStreamCreated) == null || H.call(r, { stream_id:
|
|
717
|
+
} = await F(t);
|
|
718
|
+
(H = r.onStreamCreated) == null || H.call(r, { stream_id: C, session_id: x, agent_id: e });
|
|
719
719
|
const g = new yt({ iceServers: G }), S = g.createDataChannel("JanusDataChannel");
|
|
720
|
-
if (
|
|
720
|
+
if (!x)
|
|
721
721
|
throw new Error("Could not create session_id");
|
|
722
|
-
const
|
|
722
|
+
const p = Y ? J.Fluent : J.Legacy;
|
|
723
723
|
c.enrich({
|
|
724
|
-
"stream-type":
|
|
724
|
+
"stream-type": p
|
|
725
725
|
});
|
|
726
|
-
const k = t.stream_warmup && !Y,
|
|
726
|
+
const k = t.stream_warmup && !Y, P = () => d, B = () => {
|
|
727
727
|
var m;
|
|
728
|
-
d = !0, l && ((m = r.onConnectionStateChange) == null || m.call(r,
|
|
729
|
-
},
|
|
728
|
+
d = !0, l && ((m = r.onConnectionStateChange) == null || m.call(r, M.Connected));
|
|
729
|
+
}, $ = vt(
|
|
730
730
|
g,
|
|
731
|
-
|
|
731
|
+
P,
|
|
732
732
|
B,
|
|
733
|
-
(m, h) =>
|
|
733
|
+
(m, h) => ge({
|
|
734
734
|
statsSignal: y = m,
|
|
735
|
-
dataChannelSignal:
|
|
735
|
+
dataChannelSignal: p === J.Legacy ? u : void 0,
|
|
736
736
|
onVideoStateChange: r.onVideoStateChange,
|
|
737
737
|
onAgentActivityStateChange: r.onAgentActivityStateChange,
|
|
738
738
|
report: h,
|
|
739
|
-
streamType:
|
|
739
|
+
streamType: p
|
|
740
740
|
}),
|
|
741
741
|
(m) => {
|
|
742
742
|
var h;
|
|
@@ -747,123 +747,123 @@ async function Rt(e, t, { debug: a = !1, callbacks: r, auth: o, baseURL: i = te,
|
|
|
747
747
|
var h;
|
|
748
748
|
n("peerConnection.onicecandidate", m);
|
|
749
749
|
try {
|
|
750
|
-
m.candidate && m.candidate.sdpMid && m.candidate.sdpMLineIndex !== null ?
|
|
751
|
-
|
|
750
|
+
m.candidate && m.candidate.sdpMid && m.candidate.sdpMLineIndex !== null ? L(
|
|
751
|
+
C,
|
|
752
752
|
{
|
|
753
753
|
candidate: m.candidate.candidate,
|
|
754
754
|
sdpMid: m.candidate.sdpMid,
|
|
755
755
|
sdpMLineIndex: m.candidate.sdpMLineIndex
|
|
756
756
|
},
|
|
757
|
-
|
|
758
|
-
) :
|
|
759
|
-
} catch (
|
|
760
|
-
(h = r.onError) == null || h.call(r,
|
|
757
|
+
x
|
|
758
|
+
) : L(C, { candidate: null }, x);
|
|
759
|
+
} catch (E) {
|
|
760
|
+
(h = r.onError) == null || h.call(r, E, { streamId: C });
|
|
761
761
|
}
|
|
762
762
|
}, S.onopen = () => {
|
|
763
763
|
l = !0, (!k || d) && B();
|
|
764
764
|
};
|
|
765
|
-
const
|
|
765
|
+
const R = (m) => {
|
|
766
766
|
var h;
|
|
767
767
|
(h = r.onVideoIdChange) == null || h.call(r, m);
|
|
768
768
|
};
|
|
769
|
-
function
|
|
770
|
-
if (m ===
|
|
771
|
-
const
|
|
772
|
-
|
|
769
|
+
function _(m, h) {
|
|
770
|
+
if (m === b.StreamStarted && typeof h == "object" && "metadata" in h) {
|
|
771
|
+
const E = h.metadata;
|
|
772
|
+
R(E.videoId);
|
|
773
773
|
}
|
|
774
|
-
m ===
|
|
775
|
-
statsSignal:
|
|
774
|
+
m === b.StreamDone && R(null), u = m === b.StreamStarted ? w.Start : w.Stop, ge({
|
|
775
|
+
statsSignal: p === J.Legacy ? y : void 0,
|
|
776
776
|
dataChannelSignal: u,
|
|
777
777
|
onVideoStateChange: r.onVideoStateChange,
|
|
778
778
|
onAgentActivityStateChange: r.onAgentActivityStateChange,
|
|
779
|
-
streamType:
|
|
779
|
+
streamType: p
|
|
780
780
|
});
|
|
781
781
|
}
|
|
782
782
|
function W(m, h) {
|
|
783
|
-
const
|
|
784
|
-
|
|
783
|
+
const E = typeof h == "string" ? h : h == null ? void 0 : h.metadata;
|
|
784
|
+
E && c.enrich({ streamMetadata: E }), c.track("agent-chat", { event: "ready" });
|
|
785
785
|
}
|
|
786
786
|
const v = {
|
|
787
|
-
[
|
|
788
|
-
[
|
|
789
|
-
[
|
|
787
|
+
[b.StreamStarted]: _,
|
|
788
|
+
[b.StreamDone]: _,
|
|
789
|
+
[b.StreamReady]: W
|
|
790
790
|
};
|
|
791
791
|
S.onmessage = (m) => {
|
|
792
792
|
var U;
|
|
793
|
-
const { subject: h, data:
|
|
794
|
-
(U = v[h]) == null || U.call(v, h,
|
|
793
|
+
const { subject: h, data: E } = s(m.data);
|
|
794
|
+
(U = v[h]) == null || U.call(v, h, E);
|
|
795
795
|
}, g.oniceconnectionstatechange = () => {
|
|
796
796
|
var h;
|
|
797
797
|
n("peerConnection.oniceconnectionstatechange => " + g.iceConnectionState);
|
|
798
|
-
const m =
|
|
799
|
-
m !==
|
|
798
|
+
const m = me(g.iceConnectionState);
|
|
799
|
+
m !== M.Connected && ((h = r.onConnectionStateChange) == null || h.call(r, m));
|
|
800
800
|
}, g.ontrack = (m) => {
|
|
801
801
|
var h;
|
|
802
802
|
n("peerConnection.ontrack", m), (h = r.onSrcObjectReady) == null || h.call(r, m.streams[0]);
|
|
803
803
|
}, await g.setRemoteDescription(K), n("set remote description OK");
|
|
804
|
-
const
|
|
805
|
-
return n("create answer OK"), await g.setLocalDescription(
|
|
804
|
+
const I = await g.createAnswer();
|
|
805
|
+
return n("create answer OK"), await g.setLocalDescription(I), n("set local description OK"), await A(C, I, x), n("start connection OK"), {
|
|
806
806
|
/**
|
|
807
807
|
* Method to send request to server to get clip or talk depend on you payload
|
|
808
808
|
* @param payload
|
|
809
809
|
*/
|
|
810
810
|
speak(m) {
|
|
811
|
-
return
|
|
811
|
+
return j(C, x, m);
|
|
812
812
|
},
|
|
813
813
|
/**
|
|
814
814
|
* Method to close RTC connection
|
|
815
815
|
*/
|
|
816
816
|
async disconnect() {
|
|
817
817
|
var m;
|
|
818
|
-
if (
|
|
819
|
-
const h =
|
|
818
|
+
if (C) {
|
|
819
|
+
const h = me(g.iceConnectionState);
|
|
820
820
|
if (g) {
|
|
821
|
-
if (h ===
|
|
822
|
-
clearInterval(
|
|
821
|
+
if (h === M.New) {
|
|
822
|
+
clearInterval($);
|
|
823
823
|
return;
|
|
824
824
|
}
|
|
825
825
|
g.close(), g.oniceconnectionstatechange = null, g.onnegotiationneeded = null, g.onicecandidate = null, g.ontrack = null;
|
|
826
826
|
}
|
|
827
827
|
try {
|
|
828
|
-
h ===
|
|
828
|
+
h === M.Connected && await z(C, x).catch((E) => {
|
|
829
829
|
});
|
|
830
|
-
} catch (
|
|
831
|
-
n("Error on close stream connection",
|
|
830
|
+
} catch (E) {
|
|
831
|
+
n("Error on close stream connection", E);
|
|
832
832
|
}
|
|
833
|
-
(m = r.onAgentActivityStateChange) == null || m.call(r, X.Idle), clearInterval(
|
|
833
|
+
(m = r.onAgentActivityStateChange) == null || m.call(r, X.Idle), clearInterval($);
|
|
834
834
|
}
|
|
835
835
|
},
|
|
836
836
|
/**
|
|
837
837
|
* Method to send data channel messages to the server
|
|
838
838
|
*/
|
|
839
839
|
sendDataChannelMessage(m) {
|
|
840
|
-
var h,
|
|
840
|
+
var h, E;
|
|
841
841
|
if (!d || S.readyState !== "open") {
|
|
842
842
|
n("Data channel is not ready for sending messages"), (h = r.onError) == null || h.call(r, new Error("Data channel is not ready for sending messages"), {
|
|
843
|
-
streamId:
|
|
843
|
+
streamId: C
|
|
844
844
|
});
|
|
845
845
|
return;
|
|
846
846
|
}
|
|
847
847
|
try {
|
|
848
848
|
S.send(m);
|
|
849
849
|
} catch (U) {
|
|
850
|
-
n("Error sending data channel message", U), (
|
|
850
|
+
n("Error sending data channel message", U), (E = r.onError) == null || E.call(r, U, { streamId: C });
|
|
851
851
|
}
|
|
852
852
|
},
|
|
853
853
|
/**
|
|
854
854
|
* Session identifier information, should be returned in the body of all streaming requests
|
|
855
855
|
*/
|
|
856
|
-
sessionId:
|
|
856
|
+
sessionId: x,
|
|
857
857
|
/**
|
|
858
858
|
* Id of current RTC stream
|
|
859
859
|
*/
|
|
860
|
-
streamId:
|
|
861
|
-
streamType:
|
|
860
|
+
streamId: C,
|
|
861
|
+
streamType: p,
|
|
862
862
|
interruptAvailable: f ?? !1,
|
|
863
863
|
triggersAvailable: D ?? !1
|
|
864
864
|
};
|
|
865
865
|
}
|
|
866
|
-
var
|
|
866
|
+
var ce = /* @__PURE__ */ ((e) => (e.V1 = "v1", e.V2 = "v2", e))(ce || {});
|
|
867
867
|
async function St(e, t, a) {
|
|
868
868
|
const r = e.id;
|
|
869
869
|
switch (t.version) {
|
|
@@ -874,8 +874,8 @@ async function St(e, t, a) {
|
|
|
874
874
|
case "v2": {
|
|
875
875
|
const { version: o, ...i } = t;
|
|
876
876
|
switch (i.transport_provider) {
|
|
877
|
-
case
|
|
878
|
-
const { createLiveKitStreamingManager: c } = await import("./livekit-manager-
|
|
877
|
+
case de.Livekit:
|
|
878
|
+
const { createLiveKitStreamingManager: c } = await import("./livekit-manager-CNKaXUpT.js");
|
|
879
879
|
return c(r, i, a);
|
|
880
880
|
default:
|
|
881
881
|
throw new Error(`Unsupported transport provider: ${i.transport_provider}`);
|
|
@@ -885,13 +885,13 @@ async function St(e, t, a) {
|
|
|
885
885
|
throw new Error(`Invalid stream version: ${t.version}`);
|
|
886
886
|
}
|
|
887
887
|
}
|
|
888
|
-
|
|
889
|
-
function Et() {
|
|
888
|
+
function It(e) {
|
|
890
889
|
return {
|
|
891
|
-
transport_provider:
|
|
890
|
+
transport_provider: de.Livekit,
|
|
891
|
+
chat_id: e == null ? void 0 : e.chatId
|
|
892
892
|
};
|
|
893
893
|
}
|
|
894
|
-
function
|
|
894
|
+
function Et(e) {
|
|
895
895
|
var o, i;
|
|
896
896
|
const { streamOptions: t } = e ?? {}, a = ((o = e == null ? void 0 : e.mixpanelAdditionalProperties) == null ? void 0 : o.plan) !== void 0 ? {
|
|
897
897
|
plan: (i = e.mixpanelAdditionalProperties) == null ? void 0 : i.plan
|
|
@@ -904,14 +904,14 @@ function Mt(e) {
|
|
|
904
904
|
fluent: t == null ? void 0 : t.fluent
|
|
905
905
|
}, ...a && { end_user_data: a } };
|
|
906
906
|
}
|
|
907
|
-
function
|
|
908
|
-
return
|
|
907
|
+
function Mt(e, t) {
|
|
908
|
+
return le(e.presenter.type) ? { version: ce.V2, ...It(t) } : { version: ce.V1, ...Et(t) };
|
|
909
909
|
}
|
|
910
|
-
function
|
|
911
|
-
o === J.Fluent ?
|
|
910
|
+
function _t(e, t, a, r, o) {
|
|
911
|
+
o === J.Fluent ? Tt(e, t, a, r, o) : Pt(e, t, a, r, o);
|
|
912
912
|
}
|
|
913
|
-
function
|
|
914
|
-
e ===
|
|
913
|
+
function Tt(e, t, a, r, o) {
|
|
914
|
+
e === w.Start ? r.track("stream-session", { event: "start", "stream-type": o }) : e === w.Stop && r.track("stream-session", {
|
|
915
915
|
event: "stop",
|
|
916
916
|
is_greenscreen: t.presenter.type === "clip" && t.presenter.is_greenscreen,
|
|
917
917
|
background: t.presenter.type === "clip" && t.presenter.background,
|
|
@@ -919,13 +919,13 @@ function At(e, t, a, r, o) {
|
|
|
919
919
|
...a
|
|
920
920
|
});
|
|
921
921
|
}
|
|
922
|
-
function
|
|
923
|
-
|
|
922
|
+
function At(e, t, a, r) {
|
|
923
|
+
N.get() <= 0 || (e === w.Start ? a.linkTrack(
|
|
924
924
|
"agent-video",
|
|
925
|
-
{ event: "start", latency:
|
|
925
|
+
{ event: "start", latency: N.get(!0), "stream-type": r },
|
|
926
926
|
"start",
|
|
927
|
-
[
|
|
928
|
-
) : e ===
|
|
927
|
+
[b.StreamVideoCreated]
|
|
928
|
+
) : e === w.Stop && a.linkTrack(
|
|
929
929
|
"agent-video",
|
|
930
930
|
{
|
|
931
931
|
event: "stop",
|
|
@@ -934,16 +934,16 @@ function Pt(e, t, a, r) {
|
|
|
934
934
|
"stream-type": r
|
|
935
935
|
},
|
|
936
936
|
"done",
|
|
937
|
-
[
|
|
937
|
+
[b.StreamVideoDone]
|
|
938
938
|
));
|
|
939
939
|
}
|
|
940
|
-
function
|
|
941
|
-
|
|
940
|
+
function Pt(e, t, a, r, o) {
|
|
941
|
+
N.get() <= 0 || (e === w.Start ? r.linkTrack(
|
|
942
942
|
"agent-video",
|
|
943
|
-
{ event: "start", latency:
|
|
943
|
+
{ event: "start", latency: N.get(!0), "stream-type": o },
|
|
944
944
|
"start",
|
|
945
|
-
[
|
|
946
|
-
) : e ===
|
|
945
|
+
[b.StreamVideoCreated]
|
|
946
|
+
) : e === w.Stop && r.linkTrack(
|
|
947
947
|
"agent-video",
|
|
948
948
|
{
|
|
949
949
|
event: "stop",
|
|
@@ -953,25 +953,25 @@ function bt(e, t, a, r, o) {
|
|
|
953
953
|
...a
|
|
954
954
|
},
|
|
955
955
|
"done",
|
|
956
|
-
[
|
|
956
|
+
[b.StreamVideoDone]
|
|
957
957
|
));
|
|
958
958
|
}
|
|
959
|
-
function
|
|
960
|
-
return
|
|
959
|
+
function he(e, t, a) {
|
|
960
|
+
return N.reset(), new Promise(async (r, o) => {
|
|
961
961
|
try {
|
|
962
962
|
let i, c = !1;
|
|
963
|
-
i = await St(e,
|
|
963
|
+
i = await St(e, Mt(e, t), {
|
|
964
964
|
...t,
|
|
965
965
|
analytics: a,
|
|
966
966
|
callbacks: {
|
|
967
967
|
...t.callbacks,
|
|
968
968
|
onConnectionStateChange: (n) => {
|
|
969
969
|
var s, d;
|
|
970
|
-
(d = (s = t.callbacks).onConnectionStateChange) == null || d.call(s, n), n ===
|
|
970
|
+
(d = (s = t.callbacks).onConnectionStateChange) == null || d.call(s, n), n === M.Connected && (i ? r(i) : c = !0);
|
|
971
971
|
},
|
|
972
972
|
onVideoStateChange: (n, s) => {
|
|
973
973
|
var d, l;
|
|
974
|
-
(l = (d = t.callbacks).onVideoStateChange) == null || l.call(d, n),
|
|
974
|
+
(l = (d = t.callbacks).onVideoStateChange) == null || l.call(d, n), _t(
|
|
975
975
|
n,
|
|
976
976
|
e,
|
|
977
977
|
s,
|
|
@@ -981,8 +981,8 @@ function ge(e, t, a) {
|
|
|
981
981
|
},
|
|
982
982
|
onAgentActivityStateChange: (n) => {
|
|
983
983
|
var s, d;
|
|
984
|
-
(d = (s = t.callbacks).onAgentActivityStateChange) == null || d.call(s, n), n === X.Talking ? ie.update() : ie.reset(),
|
|
985
|
-
n === X.Talking ?
|
|
984
|
+
(d = (s = t.callbacks).onAgentActivityStateChange) == null || d.call(s, n), n === X.Talking ? ie.update() : ie.reset(), At(
|
|
985
|
+
n === X.Talking ? w.Start : w.Stop,
|
|
986
986
|
e,
|
|
987
987
|
a,
|
|
988
988
|
i.streamType
|
|
@@ -995,45 +995,44 @@ function ge(e, t, a) {
|
|
|
995
995
|
}
|
|
996
996
|
});
|
|
997
997
|
}
|
|
998
|
-
async function
|
|
999
|
-
var l, u, y,
|
|
998
|
+
async function bt(e, t, a, r, o) {
|
|
999
|
+
var l, u, y, A;
|
|
1000
1000
|
const i = async () => {
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
}, streamingManager: A };
|
|
1001
|
+
var j;
|
|
1002
|
+
if (le(e.presenter.type)) {
|
|
1003
|
+
const z = await se(
|
|
1004
|
+
e,
|
|
1005
|
+
a,
|
|
1006
|
+
r,
|
|
1007
|
+
t.mode,
|
|
1008
|
+
t.persistentChat,
|
|
1009
|
+
o
|
|
1010
|
+
), F = await he(
|
|
1011
|
+
e,
|
|
1012
|
+
{ ...t, chatId: (j = z.chat) == null ? void 0 : j.id },
|
|
1013
|
+
r
|
|
1014
|
+
);
|
|
1015
|
+
return { chatResult: z, streamingManager: F };
|
|
1017
1016
|
} else {
|
|
1018
|
-
const
|
|
1017
|
+
const z = se(
|
|
1019
1018
|
e,
|
|
1020
1019
|
a,
|
|
1021
1020
|
r,
|
|
1022
1021
|
t.mode,
|
|
1023
1022
|
t.persistentChat,
|
|
1024
1023
|
o
|
|
1025
|
-
),
|
|
1026
|
-
return { chatResult:
|
|
1024
|
+
), F = he(e, t, r), [L, C] = await Promise.all([z, F]);
|
|
1025
|
+
return { chatResult: L, streamingManager: C };
|
|
1027
1026
|
}
|
|
1028
1027
|
}, { chatResult: c, streamingManager: n } = await i(), { chat: s, chatMode: d } = c;
|
|
1029
|
-
return d && d !== t.mode && (t.mode = d, (u = (l = t.callbacks).onModeChange) == null || u.call(l, d), d !==
|
|
1028
|
+
return d && d !== t.mode && (t.mode = d, (u = (l = t.callbacks).onModeChange) == null || u.call(l, d), d !== T.Functional) ? ((A = (y = t.callbacks).onError) == null || A.call(y, new Me(d)), n == null || n.disconnect(), { chat: s }) : { chat: s, streamingManager: n };
|
|
1030
1029
|
}
|
|
1031
|
-
async function
|
|
1032
|
-
var G,
|
|
1030
|
+
async function xt(e, t) {
|
|
1031
|
+
var G, x, Y;
|
|
1033
1032
|
let a = !0, r = null;
|
|
1034
1033
|
const o = t.mixpanelKey || Je, i = t.wsURL || Ne, c = t.baseURL || te, n = {
|
|
1035
1034
|
messages: [],
|
|
1036
|
-
chatMode: t.mode ||
|
|
1035
|
+
chatMode: t.mode || T.Functional
|
|
1037
1036
|
}, s = Ze({
|
|
1038
1037
|
token: o,
|
|
1039
1038
|
agentId: e,
|
|
@@ -1041,12 +1040,12 @@ async function $t(e, t) {
|
|
|
1041
1040
|
externalId: t.externalId,
|
|
1042
1041
|
mixpanelAdditionalProperties: t.mixpanelAdditionalProperties
|
|
1043
1042
|
}), d = Date.now();
|
|
1044
|
-
|
|
1043
|
+
fe(() => {
|
|
1045
1044
|
s.track("agent-sdk", { event: "init" }, d);
|
|
1046
1045
|
});
|
|
1047
|
-
const l = Ve(t.auth, c, t.callbacks.onError, t.externalId), u = await l.getById(e), y =
|
|
1046
|
+
const l = Ve(t.auth, c, t.callbacks.onError, t.externalId), u = await l.getById(e), y = le(u.presenter.type);
|
|
1048
1047
|
s.enrich(Oe(u));
|
|
1049
|
-
const { onMessage:
|
|
1048
|
+
const { onMessage: A, clearQueue: j } = ot(
|
|
1050
1049
|
s,
|
|
1051
1050
|
n,
|
|
1052
1051
|
t,
|
|
@@ -1056,27 +1055,27 @@ async function $t(e, t) {
|
|
|
1056
1055
|
return (f = n.socketManager) == null ? void 0 : f.disconnect();
|
|
1057
1056
|
}
|
|
1058
1057
|
);
|
|
1059
|
-
n.messages = Ge(t.initialMessages), (
|
|
1060
|
-
const
|
|
1058
|
+
n.messages = Ge(t.initialMessages), (x = (G = t.callbacks).onNewMessage) == null || x.call(G, [...n.messages], "answer");
|
|
1059
|
+
const z = (f) => {
|
|
1061
1060
|
r = f;
|
|
1062
|
-
},
|
|
1063
|
-
|
|
1064
|
-
s.track("agent-sdk", { event: "loaded", ...qe(u) },
|
|
1061
|
+
}, F = Date.now();
|
|
1062
|
+
fe(() => {
|
|
1063
|
+
s.track("agent-sdk", { event: "loaded", ...qe(u) }, F);
|
|
1065
1064
|
});
|
|
1066
|
-
async function
|
|
1067
|
-
var
|
|
1068
|
-
(B = (
|
|
1069
|
-
const D = t.mode ===
|
|
1065
|
+
async function L(f) {
|
|
1066
|
+
var P, B, $, R, _, W, v;
|
|
1067
|
+
(B = (P = t.callbacks).onConnectionStateChange) == null || B.call(P, M.Connecting), N.reset(), f && !a && (delete n.chat, (R = ($ = t.callbacks).onNewMessage) == null || R.call($, [...n.messages], "answer"));
|
|
1068
|
+
const D = t.mode === T.DirectPlayback || y ? Promise.resolve(void 0) : at(
|
|
1070
1069
|
t.auth,
|
|
1071
1070
|
i,
|
|
1072
|
-
{ onMessage:
|
|
1071
|
+
{ onMessage: A, onError: t.callbacks.onError },
|
|
1073
1072
|
t.externalId
|
|
1074
1073
|
), g = ne(
|
|
1075
|
-
() =>
|
|
1074
|
+
() => bt(
|
|
1076
1075
|
u,
|
|
1077
1076
|
{
|
|
1078
1077
|
...t,
|
|
1079
|
-
callbacks: { ...t.callbacks, onVideoIdChange:
|
|
1078
|
+
callbacks: { ...t.callbacks, onVideoIdChange: z, onMessage: A }
|
|
1080
1079
|
},
|
|
1081
1080
|
l,
|
|
1082
1081
|
s,
|
|
@@ -1087,26 +1086,26 @@ async function $t(e, t) {
|
|
|
1087
1086
|
timeout: ze,
|
|
1088
1087
|
timeoutErrorMessage: "Timeout initializing the stream",
|
|
1089
1088
|
// Retry on all errors except for connection errors and rate limit errors, these are already handled in client level.
|
|
1090
|
-
shouldRetryFn: (
|
|
1089
|
+
shouldRetryFn: (I) => (I == null ? void 0 : I.message) !== "Could not connect" && I.status !== 429,
|
|
1091
1090
|
delayMs: 1e3
|
|
1092
1091
|
}
|
|
1093
|
-
).catch((
|
|
1092
|
+
).catch((I) => {
|
|
1094
1093
|
var H, m;
|
|
1095
|
-
throw K(
|
|
1096
|
-
}), [S, { streamingManager:
|
|
1097
|
-
k && k.id !== ((
|
|
1094
|
+
throw K(T.Maintenance), (m = (H = t.callbacks).onConnectionStateChange) == null || m.call(H, M.Fail), I;
|
|
1095
|
+
}), [S, { streamingManager: p, chat: k }] = await Promise.all([D, g]);
|
|
1096
|
+
k && k.id !== ((_ = n.chat) == null ? void 0 : _.id) && ((v = (W = t.callbacks).onNewChat) == null || v.call(W, k.id)), n.streamingManager = p, n.socketManager = S, n.chat = k, a = !1, s.enrich({
|
|
1098
1097
|
chatId: k == null ? void 0 : k.id,
|
|
1099
|
-
streamId:
|
|
1098
|
+
streamId: p == null ? void 0 : p.streamId,
|
|
1100
1099
|
mode: n.chatMode
|
|
1101
|
-
}), K((k == null ? void 0 : k.chat_mode) ?? t.mode ??
|
|
1100
|
+
}), K((k == null ? void 0 : k.chat_mode) ?? t.mode ?? T.Functional);
|
|
1102
1101
|
}
|
|
1103
|
-
async function
|
|
1102
|
+
async function C() {
|
|
1104
1103
|
var f, D, g, S;
|
|
1105
|
-
(f = n.socketManager) == null || f.disconnect(), await ((D = n.streamingManager) == null ? void 0 : D.disconnect()), delete n.streamingManager, delete n.socketManager, (S = (g = t.callbacks).onConnectionStateChange) == null || S.call(g,
|
|
1104
|
+
(f = n.socketManager) == null || f.disconnect(), await ((D = n.streamingManager) == null ? void 0 : D.disconnect()), delete n.streamingManager, delete n.socketManager, (S = (g = t.callbacks).onConnectionStateChange) == null || S.call(g, M.Disconnected);
|
|
1106
1105
|
}
|
|
1107
1106
|
async function K(f) {
|
|
1108
1107
|
var D, g;
|
|
1109
|
-
f !== n.chatMode && (s.track("agent-mode-change", { mode: f }), n.chatMode = f, n.chatMode !==
|
|
1108
|
+
f !== n.chatMode && (s.track("agent-mode-change", { mode: f }), n.chatMode = f, n.chatMode !== T.Functional && await C(), (g = (D = t.callbacks).onModeChange) == null || g.call(D, f));
|
|
1110
1109
|
}
|
|
1111
1110
|
return {
|
|
1112
1111
|
agent: u,
|
|
@@ -1127,44 +1126,44 @@ async function $t(e, t) {
|
|
|
1127
1126
|
changeMode: K,
|
|
1128
1127
|
enrichAnalytics: s.enrich,
|
|
1129
1128
|
async connect() {
|
|
1130
|
-
await
|
|
1129
|
+
await L(!0), s.track("agent-chat", {
|
|
1131
1130
|
event: "connect",
|
|
1132
1131
|
mode: n.chatMode
|
|
1133
1132
|
});
|
|
1134
1133
|
},
|
|
1135
1134
|
async reconnect() {
|
|
1136
|
-
await
|
|
1135
|
+
await C(), await L(!1), s.track("agent-chat", {
|
|
1137
1136
|
event: "reconnect",
|
|
1138
1137
|
mode: n.chatMode
|
|
1139
1138
|
});
|
|
1140
1139
|
},
|
|
1141
1140
|
async disconnect() {
|
|
1142
|
-
await
|
|
1141
|
+
await C(), s.track("agent-chat", {
|
|
1143
1142
|
event: "disconnect",
|
|
1144
1143
|
mode: n.chatMode
|
|
1145
1144
|
});
|
|
1146
1145
|
},
|
|
1147
1146
|
async chat(f) {
|
|
1148
|
-
var
|
|
1147
|
+
var p, k, P, B, $;
|
|
1149
1148
|
const D = () => {
|
|
1150
|
-
if (
|
|
1149
|
+
if (ye(t.mode))
|
|
1151
1150
|
throw new V(`${t.mode} is enabled, chat is disabled`);
|
|
1152
1151
|
if (f.length >= 800)
|
|
1153
1152
|
throw new V("Message cannot be more than 800 characters");
|
|
1154
1153
|
if (f.length === 0)
|
|
1155
1154
|
throw new V("Message cannot be empty");
|
|
1156
|
-
if (n.chatMode ===
|
|
1155
|
+
if (n.chatMode === T.Maintenance)
|
|
1157
1156
|
throw new V("Chat is in maintenance mode");
|
|
1158
|
-
if (![
|
|
1157
|
+
if (![T.TextOnly, T.Playground].includes(n.chatMode)) {
|
|
1159
1158
|
if (!n.streamingManager)
|
|
1160
1159
|
throw new V("Streaming manager is not initialized");
|
|
1161
1160
|
if (!n.chat)
|
|
1162
1161
|
throw new V("Chat is not initialized");
|
|
1163
1162
|
}
|
|
1164
1163
|
}, g = async () => {
|
|
1165
|
-
var
|
|
1164
|
+
var R, _;
|
|
1166
1165
|
if (!n.chat) {
|
|
1167
|
-
const W = await
|
|
1166
|
+
const W = await se(
|
|
1168
1167
|
u,
|
|
1169
1168
|
l,
|
|
1170
1169
|
s,
|
|
@@ -1173,91 +1172,91 @@ async function $t(e, t) {
|
|
|
1173
1172
|
);
|
|
1174
1173
|
if (!W.chat)
|
|
1175
1174
|
throw new Ee(n.chatMode, !!t.persistentChat);
|
|
1176
|
-
n.chat = W.chat, (
|
|
1175
|
+
n.chat = W.chat, (_ = (R = t.callbacks).onNewChat) == null || _.call(R, n.chat.id);
|
|
1177
1176
|
}
|
|
1178
1177
|
return n.chat.id;
|
|
1179
|
-
}, S = async (
|
|
1180
|
-
var v,
|
|
1181
|
-
return await ((
|
|
1178
|
+
}, S = async (R, _) => ne(y ? async () => {
|
|
1179
|
+
var v, I;
|
|
1180
|
+
return await ((I = (v = n.streamingManager) == null ? void 0 : v.sendTextMessage) == null ? void 0 : I.call(v, f)), Promise.resolve({});
|
|
1182
1181
|
} : async () => {
|
|
1183
|
-
var v,
|
|
1182
|
+
var v, I;
|
|
1184
1183
|
return l.chat(
|
|
1185
1184
|
u.id,
|
|
1186
|
-
|
|
1185
|
+
_,
|
|
1187
1186
|
{
|
|
1188
1187
|
chatMode: n.chatMode,
|
|
1189
1188
|
streamId: (v = n.streamingManager) == null ? void 0 : v.streamId,
|
|
1190
|
-
sessionId: (
|
|
1191
|
-
messages:
|
|
1189
|
+
sessionId: (I = n.streamingManager) == null ? void 0 : I.sessionId,
|
|
1190
|
+
messages: R.map(({ matches: H, ...m }) => m)
|
|
1192
1191
|
},
|
|
1193
1192
|
{
|
|
1194
|
-
...
|
|
1193
|
+
...Re(n.chatMode),
|
|
1195
1194
|
skipErrorHandler: !0
|
|
1196
1195
|
}
|
|
1197
1196
|
);
|
|
1198
1197
|
}, {
|
|
1199
1198
|
limit: 2,
|
|
1200
1199
|
shouldRetryFn: (v) => {
|
|
1201
|
-
var m, h,
|
|
1202
|
-
const
|
|
1203
|
-
return !((h = v == null ? void 0 : v.message) == null ? void 0 : h.includes("Stream Error")) && !
|
|
1200
|
+
var m, h, E, U;
|
|
1201
|
+
const I = (m = v == null ? void 0 : v.message) == null ? void 0 : m.includes("missing or invalid session_id");
|
|
1202
|
+
return !((h = v == null ? void 0 : v.message) == null ? void 0 : h.includes("Stream Error")) && !I ? ((U = (E = t.callbacks).onError) == null || U.call(E, v), !1) : !0;
|
|
1204
1203
|
},
|
|
1205
1204
|
onRetry: async () => {
|
|
1206
|
-
await
|
|
1205
|
+
await C(), await L(!1);
|
|
1207
1206
|
}
|
|
1208
1207
|
});
|
|
1209
1208
|
try {
|
|
1210
|
-
|
|
1209
|
+
j(), D(), n.messages.push({
|
|
1211
1210
|
id: O(),
|
|
1212
1211
|
role: "user",
|
|
1213
1212
|
content: f,
|
|
1214
|
-
created_at: new Date(
|
|
1215
|
-
}), (k = (
|
|
1216
|
-
const
|
|
1213
|
+
created_at: new Date(N.update()).toISOString()
|
|
1214
|
+
}), (k = (p = t.callbacks).onNewMessage) == null || k.call(p, [...n.messages], "user");
|
|
1215
|
+
const R = await g(), _ = await S([...n.messages], R);
|
|
1217
1216
|
return n.messages.push({
|
|
1218
1217
|
id: O(),
|
|
1219
1218
|
role: "assistant",
|
|
1220
|
-
content:
|
|
1219
|
+
content: _.result || "",
|
|
1221
1220
|
created_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1222
|
-
context:
|
|
1223
|
-
matches:
|
|
1221
|
+
context: _.context,
|
|
1222
|
+
matches: _.matches
|
|
1224
1223
|
}), s.track("agent-message-send", {
|
|
1225
1224
|
event: "success",
|
|
1226
1225
|
messages: n.messages.length + 1
|
|
1227
|
-
}),
|
|
1228
|
-
latency:
|
|
1226
|
+
}), _.result && ((B = (P = t.callbacks).onNewMessage) == null || B.call(P, [...n.messages], "answer"), s.track("agent-message-received", {
|
|
1227
|
+
latency: N.get(!0),
|
|
1229
1228
|
messages: n.messages.length
|
|
1230
|
-
})),
|
|
1231
|
-
} catch (
|
|
1232
|
-
throw ((
|
|
1229
|
+
})), _;
|
|
1230
|
+
} catch (R) {
|
|
1231
|
+
throw (($ = n.messages[n.messages.length - 1]) == null ? void 0 : $.role) === "assistant" && n.messages.pop(), s.track("agent-message-send", {
|
|
1233
1232
|
event: "error",
|
|
1234
1233
|
messages: n.messages.length
|
|
1235
|
-
}),
|
|
1234
|
+
}), R;
|
|
1236
1235
|
}
|
|
1237
1236
|
},
|
|
1238
1237
|
rate(f, D, g) {
|
|
1239
|
-
var k,
|
|
1240
|
-
const S = n.messages.find((
|
|
1238
|
+
var k, P, B, $;
|
|
1239
|
+
const S = n.messages.find((R) => R.id === f);
|
|
1241
1240
|
if (n.chat) {
|
|
1242
1241
|
if (!S)
|
|
1243
1242
|
throw new Error("Message not found");
|
|
1244
1243
|
} else throw new Error("Chat is not initialized");
|
|
1245
|
-
const
|
|
1244
|
+
const p = ((k = S.matches) == null ? void 0 : k.map((R) => [R.document_id, R.id])) ?? [];
|
|
1246
1245
|
return s.track("agent-rate", {
|
|
1247
1246
|
event: g ? "update" : "create",
|
|
1248
1247
|
thumb: D === 1 ? "up" : "down",
|
|
1249
|
-
knowledge_id: ((
|
|
1250
|
-
matches:
|
|
1248
|
+
knowledge_id: ((P = u.knowledge) == null ? void 0 : P.id) ?? "",
|
|
1249
|
+
matches: p,
|
|
1251
1250
|
score: D
|
|
1252
1251
|
}), g ? l.updateRating(u.id, n.chat.id, g, {
|
|
1253
1252
|
knowledge_id: ((B = u.knowledge) == null ? void 0 : B.id) ?? "",
|
|
1254
1253
|
message_id: f,
|
|
1255
|
-
matches:
|
|
1254
|
+
matches: p,
|
|
1256
1255
|
score: D
|
|
1257
1256
|
}) : l.createRating(u.id, n.chat.id, {
|
|
1258
|
-
knowledge_id: ((
|
|
1257
|
+
knowledge_id: (($ = u.knowledge) == null ? void 0 : $.id) ?? "",
|
|
1259
1258
|
message_id: f,
|
|
1260
|
-
matches:
|
|
1259
|
+
matches: p,
|
|
1261
1260
|
score: D
|
|
1262
1261
|
});
|
|
1263
1262
|
},
|
|
@@ -1267,7 +1266,7 @@ async function $t(e, t) {
|
|
|
1267
1266
|
return s.track("agent-rate-delete", { type: "text" }), l.deleteRating(u.id, n.chat.id, f);
|
|
1268
1267
|
},
|
|
1269
1268
|
async speak(f) {
|
|
1270
|
-
var
|
|
1269
|
+
var p, k, P;
|
|
1271
1270
|
function D() {
|
|
1272
1271
|
if (typeof f == "string") {
|
|
1273
1272
|
if (!u.presenter.voice)
|
|
@@ -1292,12 +1291,12 @@ async function $t(e, t) {
|
|
|
1292
1291
|
return f;
|
|
1293
1292
|
}
|
|
1294
1293
|
const g = D();
|
|
1295
|
-
if (s.track("agent-speak", g),
|
|
1294
|
+
if (s.track("agent-speak", g), N.update(), n.messages && g.type === "text" && (n.messages.push({
|
|
1296
1295
|
id: O(),
|
|
1297
1296
|
role: "assistant",
|
|
1298
1297
|
content: g.input,
|
|
1299
1298
|
created_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
1300
|
-
}), (k = (
|
|
1299
|
+
}), (k = (p = t.callbacks).onNewMessage) == null || k.call(p, [...n.messages], "answer")), We(n.chatMode))
|
|
1301
1300
|
return {
|
|
1302
1301
|
duration: 0,
|
|
1303
1302
|
video_id: "",
|
|
@@ -1307,48 +1306,48 @@ async function $t(e, t) {
|
|
|
1307
1306
|
throw new Error("Please connect to the agent first");
|
|
1308
1307
|
return n.streamingManager.speak({
|
|
1309
1308
|
script: g,
|
|
1310
|
-
metadata: { chat_id: (
|
|
1309
|
+
metadata: { chat_id: (P = n.chat) == null ? void 0 : P.id, agent_id: u.id }
|
|
1311
1310
|
});
|
|
1312
1311
|
},
|
|
1313
1312
|
async interrupt({ type: f }) {
|
|
1314
|
-
var g, S,
|
|
1313
|
+
var g, S, p;
|
|
1315
1314
|
et(n.streamingManager, (g = n.streamingManager) == null ? void 0 : g.streamType, r);
|
|
1316
1315
|
const D = n.messages[n.messages.length - 1];
|
|
1317
1316
|
s.track("agent-video-interrupt", {
|
|
1318
1317
|
type: f || "click",
|
|
1319
1318
|
video_duration_to_interrupt: ie.get(!0),
|
|
1320
|
-
message_duration_to_interrupt:
|
|
1321
|
-
}), D.interrupted = !0, (
|
|
1319
|
+
message_duration_to_interrupt: N.get(!0)
|
|
1320
|
+
}), D.interrupted = !0, (p = (S = t.callbacks).onNewMessage) == null || p.call(S, [...n.messages], "answer"), tt(n.streamingManager, r);
|
|
1322
1321
|
}
|
|
1323
1322
|
};
|
|
1324
1323
|
}
|
|
1325
1324
|
export {
|
|
1326
1325
|
X as A,
|
|
1327
|
-
|
|
1326
|
+
M as C,
|
|
1328
1327
|
xe as D,
|
|
1329
1328
|
Le as K,
|
|
1330
1329
|
Ae as P,
|
|
1331
1330
|
be as R,
|
|
1332
1331
|
J as S,
|
|
1333
|
-
|
|
1332
|
+
de as T,
|
|
1334
1333
|
Te as U,
|
|
1335
1334
|
V,
|
|
1336
1335
|
_e as W,
|
|
1337
1336
|
dt as a,
|
|
1338
1337
|
Z as b,
|
|
1339
|
-
|
|
1338
|
+
Ce as c,
|
|
1340
1339
|
te as d,
|
|
1341
|
-
|
|
1342
|
-
|
|
1340
|
+
w as e,
|
|
1341
|
+
b as f,
|
|
1343
1342
|
q as g,
|
|
1344
1343
|
Ee as h,
|
|
1345
1344
|
Me as i,
|
|
1346
|
-
|
|
1345
|
+
xt as j,
|
|
1347
1346
|
Pe as k,
|
|
1348
|
-
|
|
1347
|
+
T as l,
|
|
1349
1348
|
je as m,
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1349
|
+
we as n,
|
|
1350
|
+
Lt as o,
|
|
1351
|
+
Be as p,
|
|
1352
|
+
$e as q
|
|
1354
1353
|
};
|