@alxxsck/ai-assistant 2.12.0 → 2.13.0
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/{Avatar-CXBRZKvb.js → Avatar-C3jiPjI_.js} +1 -1
- package/dist/{ChatWidgetContent-zUHVNXLa.js → ChatWidgetContent-CEsq_0Pe.js} +1 -1
- package/dist/api/voice.api.d.ts +3 -1
- package/dist/bridge-ai-chat-widget.es.js +1 -1
- package/dist/{index-CjC1YCB_.js → index-C7FJIuWE.js} +724 -690
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as U, jsxs as Ne, Fragment as Qi } from "react/jsx-runtime";
|
|
2
2
|
import * as g from "react";
|
|
3
|
-
import
|
|
3
|
+
import gt, { createContext as Ht, useState as Y, useEffect as _, useContext as Tn, useRef as J, useCallback as be, useLayoutEffect as $i, Suspense as ea, lazy as ta, Component as na, createElement as Qn, useMemo as ra } from "react";
|
|
4
4
|
import { createRoot as ia } from "react-dom/client";
|
|
5
5
|
function $n(n) {
|
|
6
6
|
return typeof n == "object" && n != null && "pathname" in n && "search" in n && "hash" in n && "state" in n && "key" in n;
|
|
@@ -40,7 +40,7 @@ function aa(n = {}) {
|
|
|
40
40
|
), A;
|
|
41
41
|
}
|
|
42
42
|
function u(h) {
|
|
43
|
-
return typeof h == "string" ? h :
|
|
43
|
+
return typeof h == "string" ? h : zt(h);
|
|
44
44
|
}
|
|
45
45
|
return {
|
|
46
46
|
get index() {
|
|
@@ -57,7 +57,7 @@ function aa(n = {}) {
|
|
|
57
57
|
return new URL(u(h), "http://localhost");
|
|
58
58
|
},
|
|
59
59
|
encodeLocation(h) {
|
|
60
|
-
let w = typeof h == "string" ?
|
|
60
|
+
let w = typeof h == "string" ? Ze(h) : h;
|
|
61
61
|
return {
|
|
62
62
|
pathname: w.pathname || "",
|
|
63
63
|
search: w.search || "",
|
|
@@ -107,7 +107,7 @@ function oa(n, e, t = null, r, i) {
|
|
|
107
107
|
pathname: typeof n == "string" ? n : n.pathname,
|
|
108
108
|
search: "",
|
|
109
109
|
hash: "",
|
|
110
|
-
...typeof e == "string" ?
|
|
110
|
+
...typeof e == "string" ? Ze(e) : e,
|
|
111
111
|
state: t,
|
|
112
112
|
// TODO: This could be cleaned up. push/replace should probably just take
|
|
113
113
|
// full Locations now and avoid the need to run through this flow at all
|
|
@@ -117,14 +117,14 @@ function oa(n, e, t = null, r, i) {
|
|
|
117
117
|
unstable_mask: i
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
|
-
function
|
|
120
|
+
function zt({
|
|
121
121
|
pathname: n = "/",
|
|
122
122
|
search: e = "",
|
|
123
123
|
hash: t = ""
|
|
124
124
|
}) {
|
|
125
125
|
return e && e !== "?" && (n += e.charAt(0) === "?" ? e : "?" + e), t && t !== "#" && (n += t.charAt(0) === "#" ? t : "#" + t), n;
|
|
126
126
|
}
|
|
127
|
-
function
|
|
127
|
+
function Ze(n) {
|
|
128
128
|
let e = {};
|
|
129
129
|
if (n) {
|
|
130
130
|
let t = n.indexOf("#");
|
|
@@ -138,7 +138,7 @@ function Zr(n, e, t = "/") {
|
|
|
138
138
|
return ca(n, e, t, !1);
|
|
139
139
|
}
|
|
140
140
|
function ca(n, e, t, r) {
|
|
141
|
-
let i = typeof e == "string" ?
|
|
141
|
+
let i = typeof e == "string" ? Ze(e) : e, a = Re(i.pathname || "/", t);
|
|
142
142
|
if (a == null)
|
|
143
143
|
return null;
|
|
144
144
|
let s = Ur(n);
|
|
@@ -243,11 +243,11 @@ function ba(n, e) {
|
|
|
243
243
|
function wa(n, e, t = !1) {
|
|
244
244
|
let { routesMeta: r } = n, i = {}, a = "/", s = [];
|
|
245
245
|
for (let o = 0; o < r.length; ++o) {
|
|
246
|
-
let c = r[o], l = o === r.length - 1, d = a === "/" ? e : e.slice(a.length) || "/", u =
|
|
246
|
+
let c = r[o], l = o === r.length - 1, d = a === "/" ? e : e.slice(a.length) || "/", u = Gt(
|
|
247
247
|
{ path: c.relativePath, caseSensitive: c.caseSensitive, end: l },
|
|
248
248
|
d
|
|
249
249
|
), f = c.route;
|
|
250
|
-
if (!u && l && t && !r[r.length - 1].route.index && (u =
|
|
250
|
+
if (!u && l && t && !r[r.length - 1].route.index && (u = Gt(
|
|
251
251
|
{
|
|
252
252
|
path: c.relativePath,
|
|
253
253
|
caseSensitive: c.caseSensitive,
|
|
@@ -268,7 +268,7 @@ function wa(n, e, t = !1) {
|
|
|
268
268
|
}
|
|
269
269
|
return s;
|
|
270
270
|
}
|
|
271
|
-
function
|
|
271
|
+
function Gt(n, e) {
|
|
272
272
|
typeof n == "string" && (n = { path: n, caseSensitive: !1, end: !0 });
|
|
273
273
|
let [t, r] = ya(
|
|
274
274
|
n.path,
|
|
@@ -334,7 +334,7 @@ function Ia(n, e = "/") {
|
|
|
334
334
|
pathname: t,
|
|
335
335
|
search: r = "",
|
|
336
336
|
hash: i = ""
|
|
337
|
-
} = typeof n == "string" ?
|
|
337
|
+
} = typeof n == "string" ? Ze(n) : n, a;
|
|
338
338
|
return t ? (t = t.replace(/\/\/+/g, "/"), t.startsWith("/") ? a = tr(t.substring(1), "/") : a = tr(t, e)) : a = e, {
|
|
339
339
|
pathname: a,
|
|
340
340
|
search: xa(r),
|
|
@@ -347,7 +347,7 @@ function tr(n, e) {
|
|
|
347
347
|
i === ".." ? t.length > 1 && t.pop() : i !== "." && t.push(i);
|
|
348
348
|
}), t.length > 1 ? t.join("/") : "/";
|
|
349
349
|
}
|
|
350
|
-
function
|
|
350
|
+
function tn(n, e, t, r) {
|
|
351
351
|
return `Cannot include a '${n}' character in a manually specified \`to.${e}\` field [${JSON.stringify(
|
|
352
352
|
r
|
|
353
353
|
)}]. Please separate it out to the \`to.${t}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`;
|
|
@@ -363,17 +363,17 @@ function En(n) {
|
|
|
363
363
|
(t, r) => r === e.length - 1 ? t.pathname : t.pathnameBase
|
|
364
364
|
);
|
|
365
365
|
}
|
|
366
|
-
function
|
|
366
|
+
function jt(n, e, t, r = !1) {
|
|
367
367
|
let i;
|
|
368
|
-
typeof n == "string" ? i =
|
|
368
|
+
typeof n == "string" ? i = Ze(n) : (i = { ...n }, j(
|
|
369
369
|
!i.pathname || !i.pathname.includes("?"),
|
|
370
|
-
|
|
370
|
+
tn("?", "pathname", "search", i)
|
|
371
371
|
), j(
|
|
372
372
|
!i.pathname || !i.pathname.includes("#"),
|
|
373
|
-
|
|
373
|
+
tn("#", "pathname", "hash", i)
|
|
374
374
|
), j(
|
|
375
375
|
!i.search || !i.search.includes("#"),
|
|
376
|
-
|
|
376
|
+
tn("#", "search", "hash", i)
|
|
377
377
|
));
|
|
378
378
|
let a = n === "" || i.pathname === "", s = a ? "/" : i.pathname, o;
|
|
379
379
|
if (s == null)
|
|
@@ -403,7 +403,7 @@ function Ra(n) {
|
|
|
403
403
|
return n.map((e) => e.route.path).filter(Boolean).join("/").replace(/\/\/*/g, "/") || "/";
|
|
404
404
|
}
|
|
405
405
|
var jr = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u";
|
|
406
|
-
function
|
|
406
|
+
function _r(n, e) {
|
|
407
407
|
let t = n;
|
|
408
408
|
if (typeof t != "string" || !Ca.test(t))
|
|
409
409
|
return {
|
|
@@ -429,24 +429,24 @@ function qr(n, e) {
|
|
|
429
429
|
};
|
|
430
430
|
}
|
|
431
431
|
Object.getOwnPropertyNames(Object.prototype).sort().join("\0");
|
|
432
|
-
var
|
|
432
|
+
var qr = [
|
|
433
433
|
"POST",
|
|
434
434
|
"PUT",
|
|
435
435
|
"PATCH",
|
|
436
436
|
"DELETE"
|
|
437
437
|
];
|
|
438
438
|
new Set(
|
|
439
|
-
|
|
439
|
+
qr
|
|
440
440
|
);
|
|
441
441
|
var Ma = [
|
|
442
442
|
"GET",
|
|
443
|
-
...
|
|
443
|
+
...qr
|
|
444
444
|
];
|
|
445
445
|
new Set(Ma);
|
|
446
|
-
var
|
|
447
|
-
|
|
448
|
-
var
|
|
449
|
-
|
|
446
|
+
var Ye = g.createContext(null);
|
|
447
|
+
Ye.displayName = "DataRouter";
|
|
448
|
+
var _t = g.createContext(null);
|
|
449
|
+
_t.displayName = "DataRouterState";
|
|
450
450
|
var La = g.createContext(!1), Kr = g.createContext({
|
|
451
451
|
isTransitioning: !1
|
|
452
452
|
});
|
|
@@ -461,10 +461,10 @@ var se = g.createContext(
|
|
|
461
461
|
null
|
|
462
462
|
);
|
|
463
463
|
se.displayName = "Navigation";
|
|
464
|
-
var
|
|
464
|
+
var ct = g.createContext(
|
|
465
465
|
null
|
|
466
466
|
);
|
|
467
|
-
|
|
467
|
+
ct.displayName = "Location";
|
|
468
468
|
var Se = g.createContext({
|
|
469
469
|
outlet: null,
|
|
470
470
|
matches: [],
|
|
@@ -500,24 +500,24 @@ function Ga(n) {
|
|
|
500
500
|
}
|
|
501
501
|
function Fa(n, { relative: e } = {}) {
|
|
502
502
|
j(
|
|
503
|
-
|
|
503
|
+
Je(),
|
|
504
504
|
// TODO: This error is probably because they somehow have 2 versions of the
|
|
505
505
|
// router loaded. We can help them understand how to avoid that.
|
|
506
506
|
"useHref() may be used only in the context of a <Router> component."
|
|
507
507
|
);
|
|
508
|
-
let { basename: t, navigator: r } = g.useContext(se), { hash: i, pathname: a, search: s } =
|
|
508
|
+
let { basename: t, navigator: r } = g.useContext(se), { hash: i, pathname: a, search: s } = lt(n, { relative: e }), o = a;
|
|
509
509
|
return t !== "/" && (o = a === "/" ? t : Ae([t, a])), r.createHref({ pathname: o, search: s, hash: i });
|
|
510
510
|
}
|
|
511
|
-
function
|
|
512
|
-
return g.useContext(
|
|
511
|
+
function Je() {
|
|
512
|
+
return g.useContext(ct) != null;
|
|
513
513
|
}
|
|
514
514
|
function ye() {
|
|
515
515
|
return j(
|
|
516
|
-
|
|
516
|
+
Je(),
|
|
517
517
|
// TODO: This error is probably because they somehow have 2 versions of the
|
|
518
518
|
// router loaded. We can help them understand how to avoid that.
|
|
519
519
|
"useLocation() may be used only in the context of a <Router> component."
|
|
520
|
-
), g.useContext(
|
|
520
|
+
), g.useContext(ct).location;
|
|
521
521
|
}
|
|
522
522
|
var Jr = "You should call navigate() in a React.useEffect(), not when your component is first rendered.";
|
|
523
523
|
function Qr(n) {
|
|
@@ -529,12 +529,12 @@ function qt() {
|
|
|
529
529
|
}
|
|
530
530
|
function Da() {
|
|
531
531
|
j(
|
|
532
|
-
|
|
532
|
+
Je(),
|
|
533
533
|
// TODO: This error is probably because they somehow have 2 versions of the
|
|
534
534
|
// router loaded. We can help them understand how to avoid that.
|
|
535
535
|
"useNavigate() may be used only in the context of a <Router> component."
|
|
536
536
|
);
|
|
537
|
-
let n = g.useContext(
|
|
537
|
+
let n = g.useContext(Ye), { basename: e, navigator: t } = g.useContext(se), { matches: r } = g.useContext(Se), { pathname: i } = ye(), a = JSON.stringify(En(r)), s = g.useRef(!1);
|
|
538
538
|
return Qr(() => {
|
|
539
539
|
s.current = !0;
|
|
540
540
|
}), g.useCallback(
|
|
@@ -544,7 +544,7 @@ function Da() {
|
|
|
544
544
|
t.go(c);
|
|
545
545
|
return;
|
|
546
546
|
}
|
|
547
|
-
let d =
|
|
547
|
+
let d = jt(
|
|
548
548
|
c,
|
|
549
549
|
JSON.parse(a),
|
|
550
550
|
i,
|
|
@@ -566,10 +566,10 @@ function Da() {
|
|
|
566
566
|
);
|
|
567
567
|
}
|
|
568
568
|
g.createContext(null);
|
|
569
|
-
function
|
|
569
|
+
function lt(n, { relative: e } = {}) {
|
|
570
570
|
let { matches: t } = g.useContext(Se), { pathname: r } = ye(), i = JSON.stringify(En(t));
|
|
571
571
|
return g.useMemo(
|
|
572
|
-
() =>
|
|
572
|
+
() => jt(
|
|
573
573
|
n,
|
|
574
574
|
JSON.parse(i),
|
|
575
575
|
r,
|
|
@@ -583,7 +583,7 @@ function Ba(n, e) {
|
|
|
583
583
|
}
|
|
584
584
|
function $r(n, e, t) {
|
|
585
585
|
j(
|
|
586
|
-
|
|
586
|
+
Je(),
|
|
587
587
|
// TODO: This error is probably because they somehow have 2 versions of the
|
|
588
588
|
// router loaded. We can help them understand how to avoid that.
|
|
589
589
|
"useRoutes() may be used only in the context of a <Router> component."
|
|
@@ -601,7 +601,7 @@ Please change the parent <Route path="${b}"> to <Route path="${b === "/" ? "*" :
|
|
|
601
601
|
}
|
|
602
602
|
let d = ye(), u;
|
|
603
603
|
if (e) {
|
|
604
|
-
let b = typeof e == "string" ?
|
|
604
|
+
let b = typeof e == "string" ? Ze(e) : e;
|
|
605
605
|
j(
|
|
606
606
|
c === "/" || b.pathname?.startsWith(c),
|
|
607
607
|
`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${b.pathname}" was given in the \`location\` prop.`
|
|
@@ -651,7 +651,7 @@ Please change the parent <Route path="${b}"> to <Route path="${b === "/" ? "*" :
|
|
|
651
651
|
t
|
|
652
652
|
);
|
|
653
653
|
return e && p ? /* @__PURE__ */ g.createElement(
|
|
654
|
-
|
|
654
|
+
ct.Provider,
|
|
655
655
|
{
|
|
656
656
|
value: {
|
|
657
657
|
location: {
|
|
@@ -722,7 +722,7 @@ var Xa = /* @__PURE__ */ g.createElement(Wa, null), ei = class extends g.Compone
|
|
|
722
722
|
}
|
|
723
723
|
};
|
|
724
724
|
ei.contextType = La;
|
|
725
|
-
var
|
|
725
|
+
var nn = /* @__PURE__ */ new WeakMap();
|
|
726
726
|
function Za({
|
|
727
727
|
children: n,
|
|
728
728
|
error: e
|
|
@@ -731,10 +731,10 @@ function Za({
|
|
|
731
731
|
if (typeof e == "object" && e && "digest" in e && typeof e.digest == "string") {
|
|
732
732
|
let r = za(e.digest);
|
|
733
733
|
if (r) {
|
|
734
|
-
let i =
|
|
734
|
+
let i = nn.get(e);
|
|
735
735
|
if (i) throw i;
|
|
736
|
-
let a =
|
|
737
|
-
if (jr && !
|
|
736
|
+
let a = _r(r.location, t);
|
|
737
|
+
if (jr && !nn.get(e))
|
|
738
738
|
if (a.isExternal || r.reloadDocument)
|
|
739
739
|
window.location.href = a.absoluteURL || a.to;
|
|
740
740
|
else {
|
|
@@ -743,7 +743,7 @@ function Za({
|
|
|
743
743
|
replace: r.replace
|
|
744
744
|
})
|
|
745
745
|
);
|
|
746
|
-
throw
|
|
746
|
+
throw nn.set(e, s), s;
|
|
747
747
|
}
|
|
748
748
|
return /* @__PURE__ */ g.createElement(
|
|
749
749
|
"meta",
|
|
@@ -757,7 +757,7 @@ function Za({
|
|
|
757
757
|
return n;
|
|
758
758
|
}
|
|
759
759
|
function Ua({ routeContext: n, match: e, children: t }) {
|
|
760
|
-
let r = g.useContext(
|
|
760
|
+
let r = g.useContext(Ye);
|
|
761
761
|
return r && r.static && r.staticContext && (e.route.errorElement || e.route.ErrorBoundary) && (r.staticContext._deepestRenderedBoundaryId = e.route.id), /* @__PURE__ */ g.createElement(Se.Provider, { value: n }, t);
|
|
762
762
|
}
|
|
763
763
|
function Ha(n, e = [], t) {
|
|
@@ -852,19 +852,19 @@ function Mn(n) {
|
|
|
852
852
|
return `${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
|
|
853
853
|
}
|
|
854
854
|
function ja(n) {
|
|
855
|
-
let e = g.useContext(
|
|
855
|
+
let e = g.useContext(Ye);
|
|
856
856
|
return j(e, Mn(n)), e;
|
|
857
857
|
}
|
|
858
|
-
function
|
|
859
|
-
let e = g.useContext(
|
|
858
|
+
function _a(n) {
|
|
859
|
+
let e = g.useContext(_t);
|
|
860
860
|
return j(e, Mn(n)), e;
|
|
861
861
|
}
|
|
862
|
-
function
|
|
862
|
+
function qa(n) {
|
|
863
863
|
let e = g.useContext(Se);
|
|
864
864
|
return j(e, Mn(n)), e;
|
|
865
865
|
}
|
|
866
866
|
function Ln(n) {
|
|
867
|
-
let e =
|
|
867
|
+
let e = qa(n), t = e.matches[e.matches.length - 1];
|
|
868
868
|
return j(
|
|
869
869
|
t.route.id,
|
|
870
870
|
`${n} can only be used on routes that contain a unique "id"`
|
|
@@ -877,7 +877,7 @@ function Ka() {
|
|
|
877
877
|
);
|
|
878
878
|
}
|
|
879
879
|
function Ya() {
|
|
880
|
-
let n = g.useContext(Rn), e =
|
|
880
|
+
let n = g.useContext(Rn), e = _a(
|
|
881
881
|
"useRouteError"
|
|
882
882
|
/* UseRouteError */
|
|
883
883
|
), t = Ln(
|
|
@@ -951,14 +951,14 @@ function $a({
|
|
|
951
951
|
}
|
|
952
952
|
);
|
|
953
953
|
}
|
|
954
|
-
function
|
|
954
|
+
function Su({
|
|
955
955
|
to: n,
|
|
956
956
|
replace: e,
|
|
957
957
|
state: t,
|
|
958
958
|
relative: r
|
|
959
959
|
}) {
|
|
960
960
|
j(
|
|
961
|
-
|
|
961
|
+
Je(),
|
|
962
962
|
// TODO: This error is probably because they somehow have 2 versions of
|
|
963
963
|
// the router loaded. We can help them understand how to avoid that.
|
|
964
964
|
"<Navigate> may be used only in the context of a <Router> component."
|
|
@@ -968,7 +968,7 @@ function ku({
|
|
|
968
968
|
!i,
|
|
969
969
|
"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change."
|
|
970
970
|
);
|
|
971
|
-
let { matches: a } = g.useContext(Se), { pathname: s } = ye(), o = qt(), c =
|
|
971
|
+
let { matches: a } = g.useContext(Se), { pathname: s } = ye(), o = qt(), c = jt(
|
|
972
972
|
n,
|
|
973
973
|
En(a),
|
|
974
974
|
s,
|
|
@@ -994,7 +994,7 @@ function ts({
|
|
|
994
994
|
unstable_useTransitions: s
|
|
995
995
|
}) {
|
|
996
996
|
j(
|
|
997
|
-
!
|
|
997
|
+
!Je(),
|
|
998
998
|
"You cannot render a <Router> inside another <Router>. You should never have more than one in your app."
|
|
999
999
|
);
|
|
1000
1000
|
let o = n.replace(/^\/*/, "/"), c = g.useMemo(
|
|
@@ -1007,7 +1007,7 @@ function ts({
|
|
|
1007
1007
|
}),
|
|
1008
1008
|
[o, i, a, s]
|
|
1009
1009
|
);
|
|
1010
|
-
typeof t == "string" && (t =
|
|
1010
|
+
typeof t == "string" && (t = Ze(t));
|
|
1011
1011
|
let {
|
|
1012
1012
|
pathname: l = "/",
|
|
1013
1013
|
search: d = "",
|
|
@@ -1041,15 +1041,15 @@ function ts({
|
|
|
1041
1041
|
return ue(
|
|
1042
1042
|
p != null,
|
|
1043
1043
|
`<Router basename="${o}"> is not able to match the URL "${l}${d}${u}" because it does not start with the basename, so the <Router> won't render anything.`
|
|
1044
|
-
), p == null ? null : /* @__PURE__ */ g.createElement(se.Provider, { value: c }, /* @__PURE__ */ g.createElement(
|
|
1044
|
+
), p == null ? null : /* @__PURE__ */ g.createElement(se.Provider, { value: c }, /* @__PURE__ */ g.createElement(ct.Provider, { children: e, value: p }));
|
|
1045
1045
|
}
|
|
1046
|
-
function
|
|
1046
|
+
function Tu({
|
|
1047
1047
|
children: n,
|
|
1048
1048
|
location: e
|
|
1049
1049
|
}) {
|
|
1050
|
-
return Ba(
|
|
1050
|
+
return Ba(gn(n), e);
|
|
1051
1051
|
}
|
|
1052
|
-
function
|
|
1052
|
+
function gn(n, e = []) {
|
|
1053
1053
|
let t = [];
|
|
1054
1054
|
return g.Children.forEach(n, (r, i) => {
|
|
1055
1055
|
if (!g.isValidElement(r))
|
|
@@ -1058,7 +1058,7 @@ function pn(n, e = []) {
|
|
|
1058
1058
|
if (r.type === g.Fragment) {
|
|
1059
1059
|
t.push.apply(
|
|
1060
1060
|
t,
|
|
1061
|
-
|
|
1061
|
+
gn(r.props.children, a)
|
|
1062
1062
|
);
|
|
1063
1063
|
return;
|
|
1064
1064
|
}
|
|
@@ -1088,24 +1088,24 @@ function pn(n, e = []) {
|
|
|
1088
1088
|
handle: r.props.handle,
|
|
1089
1089
|
lazy: r.props.lazy
|
|
1090
1090
|
};
|
|
1091
|
-
r.props.children && (s.children =
|
|
1091
|
+
r.props.children && (s.children = gn(
|
|
1092
1092
|
r.props.children,
|
|
1093
1093
|
a
|
|
1094
1094
|
)), t.push(s);
|
|
1095
1095
|
}), t;
|
|
1096
1096
|
}
|
|
1097
|
-
var
|
|
1098
|
-
function
|
|
1097
|
+
var xt = "get", St = "application/x-www-form-urlencoded";
|
|
1098
|
+
function Kt(n) {
|
|
1099
1099
|
return typeof HTMLElement < "u" && n instanceof HTMLElement;
|
|
1100
1100
|
}
|
|
1101
1101
|
function ns(n) {
|
|
1102
|
-
return
|
|
1102
|
+
return Kt(n) && n.tagName.toLowerCase() === "button";
|
|
1103
1103
|
}
|
|
1104
1104
|
function rs(n) {
|
|
1105
|
-
return
|
|
1105
|
+
return Kt(n) && n.tagName.toLowerCase() === "form";
|
|
1106
1106
|
}
|
|
1107
1107
|
function is(n) {
|
|
1108
|
-
return
|
|
1108
|
+
return Kt(n) && n.tagName.toLowerCase() === "input";
|
|
1109
1109
|
}
|
|
1110
1110
|
function as(n) {
|
|
1111
1111
|
return !!(n.metaKey || n.altKey || n.ctrlKey || n.shiftKey);
|
|
@@ -1115,36 +1115,36 @@ function ss(n, e) {
|
|
|
1115
1115
|
(!e || e === "_self") && // Let browser handle "target=_blank" etc.
|
|
1116
1116
|
!as(n);
|
|
1117
1117
|
}
|
|
1118
|
-
var
|
|
1118
|
+
var ft = null;
|
|
1119
1119
|
function os() {
|
|
1120
|
-
if (
|
|
1120
|
+
if (ft === null)
|
|
1121
1121
|
try {
|
|
1122
1122
|
new FormData(
|
|
1123
1123
|
document.createElement("form"),
|
|
1124
1124
|
// @ts-expect-error if FormData supports the submitter parameter, this will throw
|
|
1125
1125
|
0
|
|
1126
|
-
),
|
|
1126
|
+
), ft = !1;
|
|
1127
1127
|
} catch {
|
|
1128
|
-
|
|
1128
|
+
ft = !0;
|
|
1129
1129
|
}
|
|
1130
|
-
return
|
|
1130
|
+
return ft;
|
|
1131
1131
|
}
|
|
1132
1132
|
var cs = /* @__PURE__ */ new Set([
|
|
1133
1133
|
"application/x-www-form-urlencoded",
|
|
1134
1134
|
"multipart/form-data",
|
|
1135
1135
|
"text/plain"
|
|
1136
1136
|
]);
|
|
1137
|
-
function
|
|
1137
|
+
function rn(n) {
|
|
1138
1138
|
return n != null && !cs.has(n) ? (ue(
|
|
1139
1139
|
!1,
|
|
1140
|
-
`"${n}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${
|
|
1140
|
+
`"${n}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${St}"`
|
|
1141
1141
|
), null) : n;
|
|
1142
1142
|
}
|
|
1143
1143
|
function ls(n, e) {
|
|
1144
1144
|
let t, r, i, a, s;
|
|
1145
1145
|
if (rs(n)) {
|
|
1146
1146
|
let o = n.getAttribute("action");
|
|
1147
|
-
r = o ? Re(o, e) : null, t = n.getAttribute("method") ||
|
|
1147
|
+
r = o ? Re(o, e) : null, t = n.getAttribute("method") || xt, i = rn(n.getAttribute("enctype")) || St, a = new FormData(n);
|
|
1148
1148
|
} else if (ns(n) || is(n) && (n.type === "submit" || n.type === "image")) {
|
|
1149
1149
|
let o = n.form;
|
|
1150
1150
|
if (o == null)
|
|
@@ -1152,7 +1152,7 @@ function ls(n, e) {
|
|
|
1152
1152
|
'Cannot submit a <button> or <input type="submit"> without a <form>'
|
|
1153
1153
|
);
|
|
1154
1154
|
let c = n.getAttribute("formaction") || o.getAttribute("action");
|
|
1155
|
-
if (r = c ? Re(c, e) : null, t = n.getAttribute("formmethod") || o.getAttribute("method") ||
|
|
1155
|
+
if (r = c ? Re(c, e) : null, t = n.getAttribute("formmethod") || o.getAttribute("method") || xt, i = rn(n.getAttribute("formenctype")) || rn(o.getAttribute("enctype")) || St, a = new FormData(o, n), !os()) {
|
|
1156
1156
|
let { name: l, type: d, value: u } = n;
|
|
1157
1157
|
if (d === "image") {
|
|
1158
1158
|
let f = l ? `${l}.` : "";
|
|
@@ -1160,11 +1160,11 @@ function ls(n, e) {
|
|
|
1160
1160
|
} else l && a.append(l, u);
|
|
1161
1161
|
}
|
|
1162
1162
|
} else {
|
|
1163
|
-
if (
|
|
1163
|
+
if (Kt(n))
|
|
1164
1164
|
throw new Error(
|
|
1165
1165
|
'Cannot submit element that is not <form>, <button>, or <input type="submit|image">'
|
|
1166
1166
|
);
|
|
1167
|
-
t =
|
|
1167
|
+
t = xt, r = null, i = St, s = n;
|
|
1168
1168
|
}
|
|
1169
1169
|
return a && i === "text/plain" && (s = a, a = void 0), { action: r, method: t.toLowerCase(), encType: i, formData: a, body: s };
|
|
1170
1170
|
}
|
|
@@ -1278,14 +1278,14 @@ function bs(n, e) {
|
|
|
1278
1278
|
}, []);
|
|
1279
1279
|
}
|
|
1280
1280
|
function ni() {
|
|
1281
|
-
let n = g.useContext(
|
|
1281
|
+
let n = g.useContext(Ye);
|
|
1282
1282
|
return Nn(
|
|
1283
1283
|
n,
|
|
1284
1284
|
"You must render this element inside a <DataRouterContext.Provider> element"
|
|
1285
1285
|
), n;
|
|
1286
1286
|
}
|
|
1287
1287
|
function ws() {
|
|
1288
|
-
let n = g.useContext(
|
|
1288
|
+
let n = g.useContext(_t);
|
|
1289
1289
|
return Nn(
|
|
1290
1290
|
n,
|
|
1291
1291
|
"You must render this element inside a <DataRouterStateContext.Provider> element"
|
|
@@ -1332,15 +1332,15 @@ function ys(n, e) {
|
|
|
1332
1332
|
a,
|
|
1333
1333
|
f,
|
|
1334
1334
|
{
|
|
1335
|
-
onFocus:
|
|
1336
|
-
onBlur:
|
|
1337
|
-
onMouseEnter:
|
|
1338
|
-
onMouseLeave:
|
|
1339
|
-
onTouchStart:
|
|
1335
|
+
onFocus: $e(o, h),
|
|
1336
|
+
onBlur: $e(c, w),
|
|
1337
|
+
onMouseEnter: $e(l, h),
|
|
1338
|
+
onMouseLeave: $e(d, w),
|
|
1339
|
+
onTouchStart: $e(u, h)
|
|
1340
1340
|
}
|
|
1341
1341
|
] : [!1, f, {}];
|
|
1342
1342
|
}
|
|
1343
|
-
function
|
|
1343
|
+
function $e(n, e) {
|
|
1344
1344
|
return (t) => {
|
|
1345
1345
|
n && n(t), t.defaultPrevented || e(t);
|
|
1346
1346
|
};
|
|
@@ -1467,11 +1467,11 @@ var ii = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i, ai = g.forwardRef(
|
|
|
1467
1467
|
unstable_defaultShouldRevalidate: h,
|
|
1468
1468
|
...w
|
|
1469
1469
|
}, p) {
|
|
1470
|
-
let { basename: b, navigator: A, unstable_useTransitions: C } = g.useContext(se), S = typeof d == "string" && ii.test(d), N =
|
|
1470
|
+
let { basename: b, navigator: A, unstable_useTransitions: C } = g.useContext(se), S = typeof d == "string" && ii.test(d), N = _r(d, b);
|
|
1471
1471
|
d = N.to;
|
|
1472
1472
|
let x = Fa(d, { relative: i }), y = ye(), P = null;
|
|
1473
1473
|
if (o) {
|
|
1474
|
-
let te =
|
|
1474
|
+
let te = jt(
|
|
1475
1475
|
o,
|
|
1476
1476
|
[],
|
|
1477
1477
|
y.unstable_mask ? y.unstable_mask.pathname : "/",
|
|
@@ -1527,7 +1527,7 @@ var xs = g.forwardRef(
|
|
|
1527
1527
|
children: c,
|
|
1528
1528
|
...l
|
|
1529
1529
|
}, d) {
|
|
1530
|
-
let u =
|
|
1530
|
+
let u = lt(s, { relative: l.relative }), f = ye(), h = g.useContext(_t), { navigator: w, basename: p } = g.useContext(se), b = h != null && // Conditional usage is OK here because the usage of a data router is static
|
|
1531
1531
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
1532
1532
|
Ps(u) && o === !0, A = w.encodeLocation ? w.encodeLocation(u).pathname : u.pathname, C = f.pathname, S = h && h.navigation && h.navigation.location ? h.navigation.location.pathname : null;
|
|
1533
1533
|
t || (C = C.toLowerCase(), S = S ? S.toLowerCase() : null, A = A.toLowerCase()), S && p && (S = Re(S, p) || S);
|
|
@@ -1568,7 +1568,7 @@ var Ss = g.forwardRef(
|
|
|
1568
1568
|
reloadDocument: r,
|
|
1569
1569
|
replace: i,
|
|
1570
1570
|
state: a,
|
|
1571
|
-
method: s =
|
|
1571
|
+
method: s = xt,
|
|
1572
1572
|
action: o,
|
|
1573
1573
|
onSubmit: c,
|
|
1574
1574
|
relative: l,
|
|
@@ -1611,7 +1611,7 @@ function Ts(n) {
|
|
|
1611
1611
|
return `${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`;
|
|
1612
1612
|
}
|
|
1613
1613
|
function si(n) {
|
|
1614
|
-
let e = g.useContext(
|
|
1614
|
+
let e = g.useContext(Ye);
|
|
1615
1615
|
return j(e, Ts(n)), e;
|
|
1616
1616
|
}
|
|
1617
1617
|
function Es(n, {
|
|
@@ -1625,12 +1625,12 @@ function Es(n, {
|
|
|
1625
1625
|
unstable_defaultShouldRevalidate: c,
|
|
1626
1626
|
unstable_useTransitions: l
|
|
1627
1627
|
} = {}) {
|
|
1628
|
-
let d = qt(), u = ye(), f =
|
|
1628
|
+
let d = qt(), u = ye(), f = lt(n, { relative: s });
|
|
1629
1629
|
return g.useCallback(
|
|
1630
1630
|
(h) => {
|
|
1631
1631
|
if (ss(h, e)) {
|
|
1632
1632
|
h.preventDefault();
|
|
1633
|
-
let w = t !== void 0 ? t :
|
|
1633
|
+
let w = t !== void 0 ? t : zt(u) === zt(f), p = () => d(n, {
|
|
1634
1634
|
replace: w,
|
|
1635
1635
|
unstable_mask: r,
|
|
1636
1636
|
state: i,
|
|
@@ -1703,7 +1703,7 @@ function Ls() {
|
|
|
1703
1703
|
function Ns(n, { relative: e } = {}) {
|
|
1704
1704
|
let { basename: t } = g.useContext(se), r = g.useContext(Se);
|
|
1705
1705
|
j(r, "useFormAction must be used inside a RouteContext");
|
|
1706
|
-
let [i] = r.matches.slice(-1), a = { ...
|
|
1706
|
+
let [i] = r.matches.slice(-1), a = { ...lt(n || ".", { relative: e }) }, s = ye();
|
|
1707
1707
|
if (n == null) {
|
|
1708
1708
|
a.search = s.search;
|
|
1709
1709
|
let o = new URLSearchParams(a.search), c = o.getAll("index");
|
|
@@ -1713,7 +1713,7 @@ function Ns(n, { relative: e } = {}) {
|
|
|
1713
1713
|
a.search = d ? `?${d}` : "";
|
|
1714
1714
|
}
|
|
1715
1715
|
}
|
|
1716
|
-
return (!n || n === ".") && i.route.index && (a.search = a.search ? a.search.replace(/^\?/, "?index&") : "?index"), t !== "/" && (a.pathname = a.pathname === "/" ? t : Ae([t, a.pathname])),
|
|
1716
|
+
return (!n || n === ".") && i.route.index && (a.search = a.search ? a.search.replace(/^\?/, "?index&") : "?index"), t !== "/" && (a.pathname = a.pathname === "/" ? t : Ae([t, a.pathname])), zt(a);
|
|
1717
1717
|
}
|
|
1718
1718
|
function Ps(n, { relative: e } = {}) {
|
|
1719
1719
|
let t = g.useContext(Kr);
|
|
@@ -1724,13 +1724,13 @@ function Ps(n, { relative: e } = {}) {
|
|
|
1724
1724
|
let { basename: r } = si(
|
|
1725
1725
|
"useViewTransitionState"
|
|
1726
1726
|
/* useViewTransitionState */
|
|
1727
|
-
), i =
|
|
1727
|
+
), i = lt(n, { relative: e });
|
|
1728
1728
|
if (!t.isTransitioning)
|
|
1729
1729
|
return !1;
|
|
1730
1730
|
let a = Re(t.currentLocation.pathname, r) || t.currentLocation.pathname, s = Re(t.nextLocation.pathname, r) || t.nextLocation.pathname;
|
|
1731
|
-
return
|
|
1731
|
+
return Gt(i.pathname, s) != null || Gt(i.pathname, a) != null;
|
|
1732
1732
|
}
|
|
1733
|
-
let
|
|
1733
|
+
let Yt = () => ({
|
|
1734
1734
|
emit(n, ...e) {
|
|
1735
1735
|
for (let t = this.events[n] || [], r = 0, i = t.length; r < i; r++)
|
|
1736
1736
|
t[r](...e);
|
|
@@ -1742,22 +1742,22 @@ let Kt = () => ({
|
|
|
1742
1742
|
};
|
|
1743
1743
|
}
|
|
1744
1744
|
});
|
|
1745
|
-
class
|
|
1745
|
+
class dt extends Error {
|
|
1746
1746
|
constructor(e, t) {
|
|
1747
1747
|
e instanceof Error ? (super(e.message), this.cause = e) : super(e), this.reason = t, this.name = "ReasonError";
|
|
1748
1748
|
}
|
|
1749
1749
|
}
|
|
1750
|
-
class oi extends
|
|
1750
|
+
class oi extends dt {
|
|
1751
1751
|
constructor(e) {
|
|
1752
1752
|
super("Rejected", e), this.name = "SubscriptionRejectedError";
|
|
1753
1753
|
}
|
|
1754
1754
|
}
|
|
1755
|
-
class Vs extends
|
|
1755
|
+
class Vs extends dt {
|
|
1756
1756
|
constructor(e) {
|
|
1757
1757
|
super(e || "Timed out to receive subscription ack"), this.name = "SubscriptionTimeoutError";
|
|
1758
1758
|
}
|
|
1759
1759
|
}
|
|
1760
|
-
class fe extends
|
|
1760
|
+
class fe extends dt {
|
|
1761
1761
|
constructor(e, t) {
|
|
1762
1762
|
t ? super(e, t) : super("Disconnected", e), this.name = "DisconnectedError";
|
|
1763
1763
|
}
|
|
@@ -1826,7 +1826,7 @@ class Vn {
|
|
|
1826
1826
|
// Unique channel identifier
|
|
1827
1827
|
// static identifier = ''
|
|
1828
1828
|
constructor(e = {}) {
|
|
1829
|
-
this.emitter =
|
|
1829
|
+
this.emitter = Yt(), this.params = Object.freeze(e), this.presence = new zs(this), this.initialConnect = !0, this[ze] = "idle";
|
|
1830
1830
|
}
|
|
1831
1831
|
get identifier() {
|
|
1832
1832
|
return this._identifier ? this._identifier : (this._identifier = ci({
|
|
@@ -1919,7 +1919,7 @@ class Vn {
|
|
|
1919
1919
|
), r.push(
|
|
1920
1920
|
this.on("close", (i) => {
|
|
1921
1921
|
r.forEach((a) => a()), t(
|
|
1922
|
-
i || new
|
|
1922
|
+
i || new dt(
|
|
1923
1923
|
"Channel was disconnected before subscribing",
|
|
1924
1924
|
"canceled"
|
|
1925
1925
|
)
|
|
@@ -2100,7 +2100,7 @@ class li {
|
|
|
2100
2100
|
this.log("error", e, t);
|
|
2101
2101
|
}
|
|
2102
2102
|
}
|
|
2103
|
-
class
|
|
2103
|
+
class ut extends li {
|
|
2104
2104
|
writeLogEntry() {
|
|
2105
2105
|
}
|
|
2106
2106
|
}
|
|
@@ -2119,7 +2119,7 @@ let Xs = 0;
|
|
|
2119
2119
|
class di {
|
|
2120
2120
|
constructor(e = {}) {
|
|
2121
2121
|
let { logger: t } = e;
|
|
2122
|
-
this.logger = t || new
|
|
2122
|
+
this.logger = t || new ut(), this.pendingSubscriptions = {}, this.pendingUnsubscriptions = {}, this.subscribeCooldownInterval = e.subscribeCooldownInterval || 250, this.subscribeRetryInterval = e.subscribeRetryInterval || 5e3;
|
|
2123
2123
|
}
|
|
2124
2124
|
attached(e) {
|
|
2125
2125
|
this.cable = e;
|
|
@@ -2387,7 +2387,7 @@ class Zs extends di {
|
|
|
2387
2387
|
});
|
|
2388
2388
|
}
|
|
2389
2389
|
}
|
|
2390
|
-
class Us extends
|
|
2390
|
+
class Us extends dt {
|
|
2391
2391
|
constructor() {
|
|
2392
2392
|
super("No connection", "closed"), this.name = "NoConnectionError";
|
|
2393
2393
|
}
|
|
@@ -2414,7 +2414,7 @@ class sr extends Vn {
|
|
|
2414
2414
|
}
|
|
2415
2415
|
}
|
|
2416
2416
|
const Ge = /* @__PURE__ */ Symbol("state");
|
|
2417
|
-
class
|
|
2417
|
+
class _s {
|
|
2418
2418
|
constructor({
|
|
2419
2419
|
transport: e,
|
|
2420
2420
|
protocol: t,
|
|
@@ -2425,7 +2425,7 @@ class qs {
|
|
|
2425
2425
|
performFailures: o,
|
|
2426
2426
|
transportConfigurator: c
|
|
2427
2427
|
}) {
|
|
2428
|
-
this.emitter =
|
|
2428
|
+
this.emitter = Yt(), this.transport = e, this.encoder = r, this.logger = i || new ut(), this.protocol = t, this.performFailures = o || "throw", this.protocol.attached(this), this.hub = new Bs(s || {}), this[Ge] = "idle", this.handleClose = this.handleClose.bind(this), this.handleIncoming = this.handleIncoming.bind(this), this.transportConfigurator = c, this.transport.on("close", this.handleClose), this.transport.on("data", this.handleIncoming), this.initialConnect = !0, this.recovering = !1, a === !1 && this.connect().catch(() => {
|
|
2429
2429
|
});
|
|
2430
2430
|
}
|
|
2431
2431
|
get state() {
|
|
@@ -2716,10 +2716,10 @@ class qs {
|
|
|
2716
2716
|
}), this._pendingConnect);
|
|
2717
2717
|
}
|
|
2718
2718
|
}
|
|
2719
|
-
const
|
|
2719
|
+
const qs = {
|
|
2720
2720
|
maxMissingPings: 2,
|
|
2721
2721
|
maxReconnectAttempts: 1 / 0
|
|
2722
|
-
},
|
|
2722
|
+
}, _e = () => Date.now(), ui = (n, e) => {
|
|
2723
2723
|
e = e || {};
|
|
2724
2724
|
let { backoffRate: t, jitterRatio: r, maxInterval: i } = e;
|
|
2725
2725
|
return t = t || 2, r === void 0 && (r = 0.5), (a) => {
|
|
@@ -2731,9 +2731,9 @@ let hi = class {
|
|
|
2731
2731
|
constructor({ pingInterval: e, ...t }) {
|
|
2732
2732
|
if (this.pingInterval = e, !this.pingInterval)
|
|
2733
2733
|
throw Error(`Incorrect pingInterval is provided: ${e}`);
|
|
2734
|
-
if (t = Object.assign({},
|
|
2734
|
+
if (t = Object.assign({}, qs, t), this.strategy = t.reconnectStrategy, !this.strategy)
|
|
2735
2735
|
throw Error("Reconnect strategy must be provided");
|
|
2736
|
-
this.maxMissingPings = t.maxMissingPings, this.maxReconnectAttempts = t.maxReconnectAttempts, this.logger = t.logger || new
|
|
2736
|
+
this.maxMissingPings = t.maxMissingPings, this.maxReconnectAttempts = t.maxReconnectAttempts, this.logger = t.logger || new ut(), this.state = "pending_connect", this.attempts = 0, this.disconnectedAt = _e();
|
|
2737
2737
|
}
|
|
2738
2738
|
watch(e) {
|
|
2739
2739
|
this.target = e, this.initListeners();
|
|
@@ -2746,19 +2746,19 @@ let hi = class {
|
|
|
2746
2746
|
initListeners() {
|
|
2747
2747
|
this.unbind = [], this.unbind.push(
|
|
2748
2748
|
this.target.on("connect", () => {
|
|
2749
|
-
this.attempts = 0, this.pingedAt =
|
|
2749
|
+
this.attempts = 0, this.pingedAt = _e(), this.state = "connected", this.cancelReconnect(), this.startPolling();
|
|
2750
2750
|
})
|
|
2751
2751
|
), this.unbind.push(
|
|
2752
2752
|
this.target.on("disconnect", () => {
|
|
2753
|
-
this.disconnectedAt =
|
|
2753
|
+
this.disconnectedAt = _e(), this.state = "disconnected", this.stopPolling(), this.scheduleReconnect();
|
|
2754
2754
|
})
|
|
2755
2755
|
), this.unbind.push(
|
|
2756
2756
|
this.target.on("close", () => {
|
|
2757
|
-
this.disconnectedAt =
|
|
2757
|
+
this.disconnectedAt = _e(), this.state = "closed", this.cancelReconnect(), this.stopPolling();
|
|
2758
2758
|
})
|
|
2759
2759
|
), this.unbind.push(
|
|
2760
2760
|
this.target.on("keepalive", () => {
|
|
2761
|
-
this.pingedAt =
|
|
2761
|
+
this.pingedAt = _e();
|
|
2762
2762
|
})
|
|
2763
2763
|
), this.unbind.push(() => {
|
|
2764
2764
|
this.cancelReconnect(), this.stopPolling();
|
|
@@ -2778,7 +2778,7 @@ let hi = class {
|
|
|
2778
2778
|
this.pollId && clearTimeout(this.pollId);
|
|
2779
2779
|
}
|
|
2780
2780
|
checkStale() {
|
|
2781
|
-
let e =
|
|
2781
|
+
let e = _e() - this.pingedAt;
|
|
2782
2782
|
e > this.maxMissingPings * this.pingInterval && (this.logger.warn(`Stale connection: ${e}ms without pings`), this.state = "pending_disconnect", this.target.disconnected(new Os()));
|
|
2783
2783
|
}
|
|
2784
2784
|
scheduleReconnect() {
|
|
@@ -2795,7 +2795,7 @@ let hi = class {
|
|
|
2795
2795
|
};
|
|
2796
2796
|
class Ks {
|
|
2797
2797
|
constructor(e, t = {}) {
|
|
2798
|
-
this.transports = e, this.transport = null, this.emitter =
|
|
2798
|
+
this.transports = e, this.transport = null, this.emitter = Yt(), this.unbind = [], this.logger = t.logger || new ut();
|
|
2799
2799
|
}
|
|
2800
2800
|
displayName() {
|
|
2801
2801
|
return "fallbacked transport";
|
|
@@ -2876,7 +2876,7 @@ class Ys {
|
|
|
2876
2876
|
this.Impl = WebSocket;
|
|
2877
2877
|
else
|
|
2878
2878
|
throw new Error("No WebSocket support");
|
|
2879
|
-
this.connected = !1, this.emitter =
|
|
2879
|
+
this.connected = !1, this.emitter = Yt();
|
|
2880
2880
|
let { format: i, subprotocol: a, authStrategy: s } = t;
|
|
2881
2881
|
this.format = i || "text", this.connectionOptions = t.websocketOptions, this.authStrategy = s || "param", this.authProtocol = "", this.subprotocol = a;
|
|
2882
2882
|
}
|
|
@@ -2991,7 +2991,7 @@ function Js(n, e) {
|
|
|
2991
2991
|
transportConfigurator: F,
|
|
2992
2992
|
auth: D
|
|
2993
2993
|
} = e;
|
|
2994
|
-
if (l = l || new
|
|
2994
|
+
if (l = l || new ut(c), typeof t == "string") {
|
|
2995
2995
|
C = C || t;
|
|
2996
2996
|
let H = t.substring(0, t.lastIndexOf("-")), ne = t.substring(t.lastIndexOf("-") + 1);
|
|
2997
2997
|
if (x = x || {}, H === "actioncable-v1")
|
|
@@ -3033,7 +3033,7 @@ function Js(n, e) {
|
|
|
3033
3033
|
maxReconnectAttempts: A,
|
|
3034
3034
|
logger: l
|
|
3035
3035
|
}));
|
|
3036
|
-
let V = { concurrentSubscribes: y }, W = new
|
|
3036
|
+
let V = { concurrentSubscribes: y }, W = new _s({
|
|
3037
3037
|
protocol: t,
|
|
3038
3038
|
transport: d,
|
|
3039
3039
|
encoder: u,
|
|
@@ -3090,7 +3090,7 @@ class eo extends hi {
|
|
|
3090
3090
|
this.state === "disconnected" || this.state === "closed" || (this.logger.info("Disconnecting", { reason: e.message }), this.cancelReconnect(), this.stopPolling(), this.state = "pending_disconnect", this.target.disconnected(e));
|
|
3091
3091
|
}
|
|
3092
3092
|
}
|
|
3093
|
-
const to = ["cable", "action-cable"], no = "/cable",
|
|
3093
|
+
const to = ["cable", "action-cable"], no = "/cable", Jt = (n, e) => {
|
|
3094
3094
|
for (let t of to) {
|
|
3095
3095
|
let r = n.head.querySelector(`meta[name='${t}-${e}']`);
|
|
3096
3096
|
if (r)
|
|
@@ -3098,23 +3098,23 @@ const to = ["cable", "action-cable"], no = "/cable", Yt = (n, e) => {
|
|
|
3098
3098
|
}
|
|
3099
3099
|
}, or = (n) => n.match(/wss?:\/\//) ? n : typeof window < "u" ? `${window.location.protocol.replace("http", "ws")}//${window.location.host}${n}` : n, ro = () => {
|
|
3100
3100
|
if (typeof document < "u" && document.head) {
|
|
3101
|
-
let n =
|
|
3101
|
+
let n = Jt(document, "url");
|
|
3102
3102
|
if (n)
|
|
3103
3103
|
return or(n);
|
|
3104
3104
|
}
|
|
3105
3105
|
return or(no);
|
|
3106
3106
|
}, io = () => {
|
|
3107
3107
|
if (typeof document < "u" && document.head) {
|
|
3108
|
-
let n =
|
|
3108
|
+
let n = Jt(document, "history-timestamp");
|
|
3109
3109
|
if (n)
|
|
3110
3110
|
return n | 0;
|
|
3111
3111
|
}
|
|
3112
3112
|
}, ao = () => {
|
|
3113
3113
|
if (typeof document < "u" && document.head)
|
|
3114
|
-
return
|
|
3114
|
+
return Jt(document, "token");
|
|
3115
3115
|
}, so = () => {
|
|
3116
3116
|
if (typeof document < "u" && document.head)
|
|
3117
|
-
return
|
|
3117
|
+
return Jt(document, "token-param");
|
|
3118
3118
|
};
|
|
3119
3119
|
function oo(n, e) {
|
|
3120
3120
|
typeof n == "object" && typeof e > "u" && (e = n, n = void 0), n = n || ro(), e = e || {}, e.historyTimestamp ||= io();
|
|
@@ -3179,13 +3179,13 @@ class lo {
|
|
|
3179
3179
|
this.isEnabled("error") && console.error(this.prefix, ...e);
|
|
3180
3180
|
}
|
|
3181
3181
|
}
|
|
3182
|
-
const uo = "warn", z = new lo("Lola-Widget", uo), lr = /401|403|auth|token|unauthori[sz]ed|forbidden/i,
|
|
3182
|
+
const uo = "warn", z = new lo("Lola-Widget", uo), lr = /401|403|auth|token|unauthori[sz]ed|forbidden/i, Qt = (n) => {
|
|
3183
3183
|
if (!n || typeof n != "object")
|
|
3184
3184
|
return typeof n == "string" && lr.test(n);
|
|
3185
3185
|
const e = n;
|
|
3186
3186
|
return e.status === 401 || e.status === 403 ? !0 : [e.code, e.message, e.type, e.reason].some(
|
|
3187
3187
|
(t) => typeof t == "string" && lr.test(t)
|
|
3188
|
-
) ||
|
|
3188
|
+
) || Qt(e.cause);
|
|
3189
3189
|
};
|
|
3190
3190
|
class ho {
|
|
3191
3191
|
constructor(e, t, r) {
|
|
@@ -3243,7 +3243,7 @@ class ho {
|
|
|
3243
3243
|
this.channels.chat.identifier
|
|
3244
3244
|
);
|
|
3245
3245
|
}).catch((e) => {
|
|
3246
|
-
|
|
3246
|
+
Qt(e) && this.onAuthenticationError?.(), z.warn("[AnyCableService] Cable connection failed", e);
|
|
3247
3247
|
})), this;
|
|
3248
3248
|
}
|
|
3249
3249
|
/** Unregisters the cable and disconnects from the WebSocket server */
|
|
@@ -3264,25 +3264,25 @@ const dr = (n) => {
|
|
|
3264
3264
|
return o;
|
|
3265
3265
|
}, po = ((n) => n ? dr(n) : dr), go = (n) => n;
|
|
3266
3266
|
function fo(n, e = go) {
|
|
3267
|
-
const t =
|
|
3267
|
+
const t = gt.useSyncExternalStore(
|
|
3268
3268
|
n.subscribe,
|
|
3269
|
-
|
|
3270
|
-
|
|
3269
|
+
gt.useCallback(() => e(n.getState()), [n, e]),
|
|
3270
|
+
gt.useCallback(() => e(n.getInitialState()), [n, e])
|
|
3271
3271
|
);
|
|
3272
|
-
return
|
|
3272
|
+
return gt.useDebugValue(t), t;
|
|
3273
3273
|
}
|
|
3274
3274
|
const ur = (n) => {
|
|
3275
3275
|
const e = po(n), t = (r) => fo(e, r);
|
|
3276
3276
|
return Object.assign(t, e), t;
|
|
3277
3277
|
}, gi = ((n) => n ? ur(n) : ur);
|
|
3278
3278
|
var Ee = /* @__PURE__ */ ((n) => (n.Customer = "PARTICIPANT_TYPE_CUSTOMER", n.Agent = "PARTICIPANT_TYPE_AGENT", n))(Ee || {}), Q = /* @__PURE__ */ ((n) => (n.Completed = "MESSAGE_STATUS_COMPLETED", n.Writing = "MESSAGE_STATUS_WRITING", n.Failed = "MESSAGE_STATUS_FAILED", n))(Q || {});
|
|
3279
|
-
const
|
|
3279
|
+
const Tt = {
|
|
3280
3280
|
connectionFailed: "error.connectionFailed",
|
|
3281
3281
|
offline: "error.offline",
|
|
3282
3282
|
agentResponseFailed: "error.agentResponseFailed",
|
|
3283
3283
|
sendMessageFallback: "error.sendMessageFailed",
|
|
3284
3284
|
conversationClosed: "error.conversationClosed"
|
|
3285
|
-
}, mo = new Set(Object.values(
|
|
3285
|
+
}, mo = new Set(Object.values(Tt)), Mu = (n, e) => mo.has(n) ? e(n) : n, Lu = {
|
|
3286
3286
|
audio_playback_failed: "voice.audioPlaybackFailed",
|
|
3287
3287
|
session_failed: "voice.sessionFailed",
|
|
3288
3288
|
connection_closed: "voice.connectionClosed",
|
|
@@ -3302,7 +3302,7 @@ class mi extends Error {
|
|
|
3302
3302
|
super(t), this.status = e;
|
|
3303
3303
|
}
|
|
3304
3304
|
}
|
|
3305
|
-
const
|
|
3305
|
+
const mt = (n) => n instanceof mi && n.status === 409, ht = async (n, e, t, r) => {
|
|
3306
3306
|
const i = await fetch(`${Oe}${t}`, {
|
|
3307
3307
|
...r,
|
|
3308
3308
|
headers: {
|
|
@@ -3357,7 +3357,7 @@ const ft = (n) => n instanceof mi && n.status === 409, ut = async (n, e, t, r) =
|
|
|
3357
3357
|
}), bi = (n, e) => {
|
|
3358
3358
|
const t = new URLSearchParams(n);
|
|
3359
3359
|
return e && t.set("cursor", e), t.toString();
|
|
3360
|
-
}, hr = (n, e, t, r) =>
|
|
3360
|
+
}, hr = (n, e, t, r) => ht(
|
|
3361
3361
|
n,
|
|
3362
3362
|
e,
|
|
3363
3363
|
`/chat/conversations?${bi(
|
|
@@ -3366,7 +3366,7 @@ const ft = (n) => n instanceof mi && n.status === 409, ut = async (n, e, t, r) =
|
|
|
3366
3366
|
)}`,
|
|
3367
3367
|
{ signal: r }
|
|
3368
3368
|
), pr = async (n, e, t, r, i) => {
|
|
3369
|
-
const a = await
|
|
3369
|
+
const a = await ht(
|
|
3370
3370
|
n,
|
|
3371
3371
|
e,
|
|
3372
3372
|
`/chat/conversations/${encodeURIComponent(
|
|
@@ -3381,17 +3381,17 @@ const ft = (n) => n instanceof mi && n.status === 409, ut = async (n, e, t, r) =
|
|
|
3381
3381
|
items: a.items.map((s) => On(s, n)).reverse(),
|
|
3382
3382
|
nextCursor: a.nextCursor
|
|
3383
3383
|
};
|
|
3384
|
-
}, Io = (n, e) =>
|
|
3384
|
+
}, Io = (n, e) => ht(n, e, "/chat/conversations", {
|
|
3385
3385
|
method: "POST",
|
|
3386
3386
|
body: JSON.stringify({})
|
|
3387
|
-
}), Ao = (n, e, t, r) =>
|
|
3387
|
+
}), Ao = (n, e, t, r) => ht(
|
|
3388
3388
|
n,
|
|
3389
3389
|
e,
|
|
3390
3390
|
`/chat/conversations/${encodeURIComponent(t)}/select`,
|
|
3391
3391
|
{ method: "POST", signal: r }
|
|
3392
3392
|
);
|
|
3393
3393
|
async function gr(n, e, t, r, i = crypto.randomUUID()) {
|
|
3394
|
-
const a = await
|
|
3394
|
+
const a = await ht(
|
|
3395
3395
|
n,
|
|
3396
3396
|
e,
|
|
3397
3397
|
"/chat/messages",
|
|
@@ -3431,17 +3431,17 @@ const ko = (n, e) => {
|
|
|
3431
3431
|
}, xo = (n, e) => ({
|
|
3432
3432
|
...e,
|
|
3433
3433
|
...ko(n?.text ?? "", e.text)
|
|
3434
|
-
}),
|
|
3435
|
-
let
|
|
3436
|
-
const Ce = /* @__PURE__ */ new Map(),
|
|
3434
|
+
}), an = [], So = 100;
|
|
3435
|
+
let et = 0, Te = null, ce = null, To = 0, Eo = 0, ge = null;
|
|
3436
|
+
const Ce = /* @__PURE__ */ new Map(), bt = (n) => n instanceof DOMException && n.name === "AbortError", fr = (n) => {
|
|
3437
3437
|
Ce.get(n)?.controller.abort();
|
|
3438
3438
|
const e = {
|
|
3439
3439
|
controller: new AbortController(),
|
|
3440
3440
|
generation: ++To
|
|
3441
3441
|
};
|
|
3442
3442
|
return Ce.set(n, e), e;
|
|
3443
|
-
},
|
|
3444
|
-
|
|
3443
|
+
}, it = (n, e) => Ce.get(n)?.generation === e.generation, mr = (n, e) => {
|
|
3444
|
+
it(n, e) && Ce.delete(n);
|
|
3445
3445
|
}, Ro = () => {
|
|
3446
3446
|
ge?.controller.abort(), ge = null, Te?.abort(), Te = null, ce?.abort(), ce = null;
|
|
3447
3447
|
for (const { controller: n } of Ce.values())
|
|
@@ -3449,16 +3449,16 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3449
3449
|
Ce.clear();
|
|
3450
3450
|
}, br = (n, e) => n.flatMap(
|
|
3451
3451
|
(t) => t.messages?.[0] ? [On(t.messages[0], e)] : []
|
|
3452
|
-
),
|
|
3452
|
+
), Et = (n) => n.status === Q.Completed || n.status === Q.Failed, fn = (n) => {
|
|
3453
3453
|
if (!n) return !1;
|
|
3454
3454
|
const e = n;
|
|
3455
|
-
return e.text?.trim() ? !0 : e.content?.some(
|
|
3456
|
-
},
|
|
3455
|
+
return e.text?.trim() ? !0 : e.content?.some(fn) ?? !1;
|
|
3456
|
+
}, mn = (n) => {
|
|
3457
3457
|
if (n.author.type !== Ee.Agent || n.status !== Q.Completed)
|
|
3458
3458
|
return !1;
|
|
3459
3459
|
const e = n.data?.commands;
|
|
3460
|
-
return !n.content || !Array.isArray(e) ? !1 : !
|
|
3461
|
-
},
|
|
3460
|
+
return !n.content || !Array.isArray(e) ? !1 : !fn(n.content) && !(n.agenticSteps ?? []).some(({ text: t }) => fn(t)) && e.length === 0;
|
|
3461
|
+
}, wt = (n, e) => {
|
|
3462
3462
|
const t = new Set(
|
|
3463
3463
|
e.filter(({ status: r }) => r === Q.Failed).map(({ id: r }) => r)
|
|
3464
3464
|
);
|
|
@@ -3508,7 +3508,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3508
3508
|
canonicalMessageId: null
|
|
3509
3509
|
}), Po = (n, e) => n && e.some(
|
|
3510
3510
|
({ id: t }) => t === n.id || t === n.canonicalMessageId
|
|
3511
|
-
) ? null : n,
|
|
3511
|
+
) ? null : n, yt = (n, e, t) => {
|
|
3512
3512
|
if (!n || n.canonicalMessageId) return n;
|
|
3513
3513
|
const r = new Set(t.map(({ id: a }) => a)), i = e.find((a) => {
|
|
3514
3514
|
const s = a.conversationId ?? a.threadId;
|
|
@@ -3520,18 +3520,18 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3520
3520
|
conversationId: n.conversationId ?? i.conversationId ?? i.threadId,
|
|
3521
3521
|
canonicalMessageId: i.id
|
|
3522
3522
|
} : n;
|
|
3523
|
-
},
|
|
3523
|
+
}, vt = (n, e, t = /* @__PURE__ */ new Set()) => {
|
|
3524
3524
|
const r = new Map(
|
|
3525
3525
|
n.filter(
|
|
3526
|
-
(i) => t.has(i.id) || !
|
|
3526
|
+
(i) => t.has(i.id) || !mn(i)
|
|
3527
3527
|
).map((i) => [i.id, i])
|
|
3528
3528
|
);
|
|
3529
3529
|
for (const i of e) {
|
|
3530
|
-
if (!t.has(i.id) &&
|
|
3530
|
+
if (!t.has(i.id) && mn(i)) {
|
|
3531
3531
|
r.delete(i.id);
|
|
3532
3532
|
continue;
|
|
3533
3533
|
}
|
|
3534
|
-
const a = r.get(i.id), s = a && Date.parse(a.updatedAt) > Date.parse(i.updatedAt), o = a &&
|
|
3534
|
+
const a = r.get(i.id), s = a && Date.parse(a.updatedAt) > Date.parse(i.updatedAt), o = a && Et(a) && i.status === Q.Writing;
|
|
3535
3535
|
s || o || r.set(
|
|
3536
3536
|
i.id,
|
|
3537
3537
|
a && t.has(i.id) && i.status === Q.Writing ? {
|
|
@@ -3544,7 +3544,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3544
3544
|
);
|
|
3545
3545
|
}
|
|
3546
3546
|
return [...r.values()];
|
|
3547
|
-
},
|
|
3547
|
+
}, q = gi((n, e) => ({
|
|
3548
3548
|
currentThreadId: void 0,
|
|
3549
3549
|
currentThreadMessages: [],
|
|
3550
3550
|
conversations: [],
|
|
@@ -3575,7 +3575,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3575
3575
|
},
|
|
3576
3576
|
initMessageStore: async (t, r) => {
|
|
3577
3577
|
const i = e().config?.customerInteractionSession.interactionSessionId !== t.customerInteractionSession.interactionSessionId;
|
|
3578
|
-
i && (
|
|
3578
|
+
i && (et += 1, Ro()), n({
|
|
3579
3579
|
config: t,
|
|
3580
3580
|
api: r,
|
|
3581
3581
|
...i ? {
|
|
@@ -3618,7 +3618,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3618
3618
|
a.signal
|
|
3619
3619
|
);
|
|
3620
3620
|
} catch (y) {
|
|
3621
|
-
if (Te === a && (Te = null),
|
|
3621
|
+
if (Te === a && (Te = null), bt(y)) return;
|
|
3622
3622
|
throw y;
|
|
3623
3623
|
}
|
|
3624
3624
|
if (Te !== a || e().config?.customerInteractionSession.interactionSessionId !== s)
|
|
@@ -3645,7 +3645,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3645
3645
|
), A = br(
|
|
3646
3646
|
f,
|
|
3647
3647
|
r
|
|
3648
|
-
), C = e().currentThreadId, S = u || (C && h.includes(C) ? C : void 0), N =
|
|
3648
|
+
), C = e().currentThreadId, S = u || (C && h.includes(C) ? C : void 0), N = wt(
|
|
3649
3649
|
e().messageStreams,
|
|
3650
3650
|
A
|
|
3651
3651
|
), x = e().messages;
|
|
@@ -3657,12 +3657,12 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3657
3657
|
threadMessagesNextCursor: b,
|
|
3658
3658
|
currentThreadId: S,
|
|
3659
3659
|
messageStreams: N,
|
|
3660
|
-
messages:
|
|
3660
|
+
messages: vt(
|
|
3661
3661
|
x,
|
|
3662
3662
|
A,
|
|
3663
3663
|
new Set(N.keys())
|
|
3664
3664
|
),
|
|
3665
|
-
pendingCustomerMessage:
|
|
3665
|
+
pendingCustomerMessage: yt(
|
|
3666
3666
|
e().pendingCustomerMessage,
|
|
3667
3667
|
A,
|
|
3668
3668
|
x
|
|
@@ -3694,7 +3694,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3694
3694
|
), l = o.items.filter(({ id: h }) => c.has(h) ? !1 : (c.add(h), !0)), d = br(
|
|
3695
3695
|
l,
|
|
3696
3696
|
t
|
|
3697
|
-
), u = e().messages, f =
|
|
3697
|
+
), u = e().messages, f = wt(
|
|
3698
3698
|
e().messageStreams,
|
|
3699
3699
|
d
|
|
3700
3700
|
);
|
|
@@ -3706,19 +3706,19 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3706
3706
|
...l.map(({ id: h }) => h)
|
|
3707
3707
|
],
|
|
3708
3708
|
messageStreams: f,
|
|
3709
|
-
messages:
|
|
3709
|
+
messages: vt(
|
|
3710
3710
|
u,
|
|
3711
3711
|
d,
|
|
3712
3712
|
new Set(f.keys())
|
|
3713
3713
|
),
|
|
3714
|
-
pendingCustomerMessage:
|
|
3714
|
+
pendingCustomerMessage: yt(
|
|
3715
3715
|
e().pendingCustomerMessage,
|
|
3716
3716
|
d,
|
|
3717
3717
|
u
|
|
3718
3718
|
)
|
|
3719
3719
|
}), e().actions.updateThreads();
|
|
3720
3720
|
} catch (o) {
|
|
3721
|
-
if (!
|
|
3721
|
+
if (!bt(o)) throw o;
|
|
3722
3722
|
} finally {
|
|
3723
3723
|
const o = ce === s;
|
|
3724
3724
|
o && (ce = null), (o || ce === null) && e().config?.customerInteractionSession.interactionSessionId === a && n({ isLoadingMoreConversations: !1 });
|
|
@@ -3740,7 +3740,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3740
3740
|
const o = e().currentThreadId, c = e().currentThreadMessages;
|
|
3741
3741
|
n({
|
|
3742
3742
|
currentThreadId: t,
|
|
3743
|
-
currentThreadMessages: e().loadedThreadIds.has(t) ? [...e().threads.get(t) ??
|
|
3743
|
+
currentThreadMessages: e().loadedThreadIds.has(t) ? [...e().threads.get(t) ?? an] : [],
|
|
3744
3744
|
sendError: null,
|
|
3745
3745
|
responsePhase: "idle"
|
|
3746
3746
|
});
|
|
@@ -3756,11 +3756,11 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3756
3756
|
} catch (l) {
|
|
3757
3757
|
if (ge?.generation !== s.generation || e().config?.customerInteractionSession.interactionSessionId !== a)
|
|
3758
3758
|
return;
|
|
3759
|
-
if (
|
|
3759
|
+
if (mt(l)) {
|
|
3760
3760
|
e().currentThreadId === t && n({
|
|
3761
3761
|
currentThreadId: void 0,
|
|
3762
3762
|
currentThreadMessages: [],
|
|
3763
|
-
sendError:
|
|
3763
|
+
sendError: Tt.conversationClosed,
|
|
3764
3764
|
responsePhase: "idle"
|
|
3765
3765
|
}), await e().actions.recoverMessages();
|
|
3766
3766
|
return;
|
|
@@ -3854,7 +3854,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3854
3854
|
return;
|
|
3855
3855
|
}
|
|
3856
3856
|
const s = e().messages[a];
|
|
3857
|
-
if (s.author.type !== Ee.Agent ||
|
|
3857
|
+
if (s.author.type !== Ee.Agent || Et(s))
|
|
3858
3858
|
return;
|
|
3859
3859
|
const o = new Map(e().messageStreams).set(
|
|
3860
3860
|
t.messageId,
|
|
@@ -3890,12 +3890,12 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3890
3890
|
...t,
|
|
3891
3891
|
conversationId: r,
|
|
3892
3892
|
threadId: r
|
|
3893
|
-
}, s =
|
|
3893
|
+
}, s = Et(a), o = a.author.type === Ee.Agent, c = e().messageStreams.get(a.id), l = !!c || !mn(a), d = e().messages.findIndex(
|
|
3894
3894
|
({ id: C }) => C === a.id
|
|
3895
3895
|
);
|
|
3896
3896
|
let u = a;
|
|
3897
3897
|
if (d !== -1) {
|
|
3898
|
-
const C = e().messages[d], S = a.status === Q.Writing &&
|
|
3898
|
+
const C = e().messages[d], S = a.status === Q.Writing && Et(C), N = a.status === Q.Writing && !!c;
|
|
3899
3899
|
u = S ? C : N ? {
|
|
3900
3900
|
...a,
|
|
3901
3901
|
status: c.done ? Q.Completed : Q.Writing,
|
|
@@ -3956,7 +3956,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3956
3956
|
sendMessage: async (t) => {
|
|
3957
3957
|
if (e().sendInFlight || e().responsePhase !== "idle")
|
|
3958
3958
|
return;
|
|
3959
|
-
const r =
|
|
3959
|
+
const r = ++et, i = crypto.randomUUID(), a = No(
|
|
3960
3960
|
i,
|
|
3961
3961
|
t,
|
|
3962
3962
|
e().currentThreadId,
|
|
@@ -3976,7 +3976,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3976
3976
|
e().currentThreadId,
|
|
3977
3977
|
i
|
|
3978
3978
|
);
|
|
3979
|
-
if (r !==
|
|
3979
|
+
if (r !== et) return;
|
|
3980
3980
|
const o = e().pendingCustomerMessage;
|
|
3981
3981
|
return n({
|
|
3982
3982
|
currentThreadId: s.conversationId,
|
|
@@ -3987,17 +3987,17 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
3987
3987
|
} : o
|
|
3988
3988
|
}), e().actions.handleMessage(s), await e().actions.recoverMessages(!0), s;
|
|
3989
3989
|
} catch (s) {
|
|
3990
|
-
if (r !==
|
|
3990
|
+
if (r !== et) return;
|
|
3991
3991
|
const o = e().pendingCustomerMessage;
|
|
3992
3992
|
n({
|
|
3993
|
-
sendError:
|
|
3993
|
+
sendError: mt(s) ? Tt.conversationClosed : s instanceof Error ? s.message : Tt.sendMessageFallback,
|
|
3994
3994
|
responsePhase: "idle",
|
|
3995
3995
|
pendingCustomerMessage: o?.id === i && !o.acknowledged ? null : o,
|
|
3996
|
-
...
|
|
3997
|
-
}),
|
|
3996
|
+
...mt(s) ? { currentThreadId: void 0, currentThreadMessages: [] } : {}
|
|
3997
|
+
}), mt(s) && e().actions.recoverMessages();
|
|
3998
3998
|
return;
|
|
3999
3999
|
} finally {
|
|
4000
|
-
r ===
|
|
4000
|
+
r === et && n({ sendInFlight: !1 });
|
|
4001
4001
|
}
|
|
4002
4002
|
},
|
|
4003
4003
|
clearSendError: () => n({ sendError: null }),
|
|
@@ -4023,7 +4023,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4023
4023
|
threads: r,
|
|
4024
4024
|
threadsPreviews: i,
|
|
4025
4025
|
currentThreadMessages: [
|
|
4026
|
-
...r.get(a) ??
|
|
4026
|
+
...r.get(a) ?? an
|
|
4027
4027
|
],
|
|
4028
4028
|
pendingCustomerMessage: Po(
|
|
4029
4029
|
e().pendingCustomerMessage,
|
|
@@ -4034,7 +4034,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4034
4034
|
setCurrentThreadMessages: (t) => {
|
|
4035
4035
|
n({
|
|
4036
4036
|
currentThreadMessages: [
|
|
4037
|
-
...e().threads.get(t) ??
|
|
4037
|
+
...e().threads.get(t) ?? an
|
|
4038
4038
|
]
|
|
4039
4039
|
});
|
|
4040
4040
|
},
|
|
@@ -4058,9 +4058,9 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4058
4058
|
void 0,
|
|
4059
4059
|
s.controller.signal
|
|
4060
4060
|
);
|
|
4061
|
-
if (!
|
|
4061
|
+
if (!it(t, s) || e().config?.customerInteractionSession.interactionSessionId !== a)
|
|
4062
4062
|
return;
|
|
4063
|
-
const l =
|
|
4063
|
+
const l = wt(
|
|
4064
4064
|
e().messageStreams,
|
|
4065
4065
|
o
|
|
4066
4066
|
), d = e().messages, u = new Set(e().loadedThreadIds).add(
|
|
@@ -4071,21 +4071,21 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4071
4071
|
n({
|
|
4072
4072
|
messageStreams: l,
|
|
4073
4073
|
threadMessagesNextCursor: f,
|
|
4074
|
-
messages:
|
|
4074
|
+
messages: vt(
|
|
4075
4075
|
d,
|
|
4076
4076
|
o,
|
|
4077
4077
|
new Set(l.keys())
|
|
4078
4078
|
),
|
|
4079
|
-
pendingCustomerMessage:
|
|
4079
|
+
pendingCustomerMessage: yt(
|
|
4080
4080
|
e().pendingCustomerMessage,
|
|
4081
4081
|
o,
|
|
4082
4082
|
d
|
|
4083
4083
|
)
|
|
4084
4084
|
}), e().actions.updateThreads(), n({ loadedThreadIds: u });
|
|
4085
4085
|
} catch (o) {
|
|
4086
|
-
if (!
|
|
4086
|
+
if (!bt(o)) throw o;
|
|
4087
4087
|
} finally {
|
|
4088
|
-
const o =
|
|
4088
|
+
const o = it(
|
|
4089
4089
|
t,
|
|
4090
4090
|
s
|
|
4091
4091
|
);
|
|
@@ -4120,9 +4120,9 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4120
4120
|
a,
|
|
4121
4121
|
o.controller.signal
|
|
4122
4122
|
);
|
|
4123
|
-
if (!
|
|
4123
|
+
if (!it(t, o) || e().config?.customerInteractionSession.interactionSessionId !== s || e().threadMessagesNextCursor.get(t) !== a)
|
|
4124
4124
|
return;
|
|
4125
|
-
const d =
|
|
4125
|
+
const d = wt(
|
|
4126
4126
|
e().messageStreams,
|
|
4127
4127
|
c
|
|
4128
4128
|
), u = e().messages;
|
|
@@ -4132,21 +4132,21 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4132
4132
|
t,
|
|
4133
4133
|
l
|
|
4134
4134
|
),
|
|
4135
|
-
messages:
|
|
4135
|
+
messages: vt(
|
|
4136
4136
|
u,
|
|
4137
4137
|
c,
|
|
4138
4138
|
new Set(d.keys())
|
|
4139
4139
|
),
|
|
4140
|
-
pendingCustomerMessage:
|
|
4140
|
+
pendingCustomerMessage: yt(
|
|
4141
4141
|
e().pendingCustomerMessage,
|
|
4142
4142
|
c,
|
|
4143
4143
|
u
|
|
4144
4144
|
)
|
|
4145
4145
|
}), e().actions.updateThreads();
|
|
4146
4146
|
} catch (c) {
|
|
4147
|
-
if (!
|
|
4147
|
+
if (!bt(c)) throw c;
|
|
4148
4148
|
} finally {
|
|
4149
|
-
const c =
|
|
4149
|
+
const c = it(t, o);
|
|
4150
4150
|
if (mr(t, o), c && e().config?.customerInteractionSession.interactionSessionId === s) {
|
|
4151
4151
|
const l = new Set(e().loadingOlderThreadIds);
|
|
4152
4152
|
l.delete(t), n({ loadingOlderThreadIds: l });
|
|
@@ -4164,16 +4164,16 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4164
4164
|
n({ currentThreadId: r.conversationId }), e().actions.handleMessage(r);
|
|
4165
4165
|
}
|
|
4166
4166
|
}
|
|
4167
|
-
})),
|
|
4167
|
+
})), Nu = () => q((n) => n.currentThreadId), Vo = () => q((n) => n.currentThreadMessages), Pu = () => q((n) => n.threadsPreviews), Vu = () => q((n) => !!n.conversationsNextCursor), Ou = () => q((n) => n.isLoadingMoreConversations), Oo = () => q((n) => n.currentThreadId), zu = () => q(
|
|
4168
4168
|
(n) => n.currentThreadId ? !n.refreshingThreadIds.has(n.currentThreadId) && !!n.threadMessagesNextCursor.get(n.currentThreadId) : !1
|
|
4169
|
-
),
|
|
4169
|
+
), Gu = () => q(
|
|
4170
4170
|
(n) => n.currentThreadId ? n.loadingOlderThreadIds.has(n.currentThreadId) : !1
|
|
4171
|
-
), zo = () =>
|
|
4171
|
+
), zo = () => q((n) => n.latestReadMessageDate), wi = () => q((n) => n.latestMessageDate), Fu = () => q((n) => n.sendError), Go = (n) => !!(n.currentThreadId && !n.loadedThreadIds.has(n.currentThreadId)), Du = () => q(Go), Bu = () => q((n) => n.responsePhase === "awaiting-first-token"), Wu = () => q(
|
|
4172
4172
|
(n) => n.sendInFlight || n.responsePhase !== "idle"
|
|
4173
|
-
), Fo = (n) => n.pendingCustomerMessage?.conversationId === n.currentThreadId ? n.pendingCustomerMessage : null,
|
|
4174
|
-
if (!
|
|
4173
|
+
), Fo = (n) => n.pendingCustomerMessage?.conversationId === n.currentThreadId ? n.pendingCustomerMessage : null, Xu = () => q(Fo), Zu = (n) => q((e) => e.messageStreams.get(n)), Do = () => q((n) => n.actions), Ft = (n) => !!n && typeof n == "object" && !Array.isArray(n), Bo = 2e5, Wo = (n) => {
|
|
4174
|
+
if (!Ft(n)) return null;
|
|
4175
4175
|
const e = n.event?.conversationCreated;
|
|
4176
|
-
if (!e || !
|
|
4176
|
+
if (!e || !Ft(e.conversation)) return null;
|
|
4177
4177
|
const t = e.conversation, r = t.id, i = t.title, a = t.status, s = t.createdAt, o = t.updatedAt;
|
|
4178
4178
|
return typeof r != "string" || r !== e.conversationId || i !== null && typeof i != "string" || a !== "OPEN" && a !== "CLOSED" || typeof s != "string" || typeof o != "string" ? null : { id: r, title: i, status: a, createdAt: s, updatedAt: o, isCurrent: !0 };
|
|
4179
4179
|
}, Xo = (n) => {
|
|
@@ -4183,9 +4183,9 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4183
4183
|
const r = t.conversationId ?? t.threadId;
|
|
4184
4184
|
return r ? { ...t, conversationId: r, threadId: r } : null;
|
|
4185
4185
|
}, Zo = (n) => {
|
|
4186
|
-
if (!
|
|
4186
|
+
if (!Ft(n)) return null;
|
|
4187
4187
|
const t = n.messageDelta;
|
|
4188
|
-
if (!
|
|
4188
|
+
if (!Ft(t) || t.contractVersion !== 1) return null;
|
|
4189
4189
|
const { messageId: r, sequence: i, text: a, done: s } = t;
|
|
4190
4190
|
return typeof r != "string" || !r || !Number.isSafeInteger(i) || i < 0 || typeof a != "string" || a.length > Bo || typeof s != "boolean" ? null : {
|
|
4191
4191
|
messageId: r,
|
|
@@ -4197,7 +4197,7 @@ const Ce = /* @__PURE__ */ new Map(), mt = (n) => n instanceof DOMException && n
|
|
|
4197
4197
|
if (!n || typeof n != "object") return null;
|
|
4198
4198
|
const e = n.event;
|
|
4199
4199
|
return e?.messageAgenticStepsAppended ?? e?.messageAgenticStepsUpdated ?? null;
|
|
4200
|
-
}, Ho = /* @__PURE__ */ new Set(["A", "B", "C", "D", "E", "F", "G", "H", "X"]), jo = 8,
|
|
4200
|
+
}, Ho = /* @__PURE__ */ new Set(["A", "B", "C", "D", "E", "F", "G", "H", "X"]), jo = 8, _o = 16, qo = 256, wr = 128, Ko = 32;
|
|
4201
4201
|
class Yo {
|
|
4202
4202
|
playbacks = /* @__PURE__ */ new Map();
|
|
4203
4203
|
terminalPlaybackIds = /* @__PURE__ */ new Set();
|
|
@@ -4206,7 +4206,7 @@ class Yo {
|
|
|
4206
4206
|
if (!t || this.terminalPlaybackIds.has(t.playbackId)) return;
|
|
4207
4207
|
const r = this.bufferFor(t.playbackId);
|
|
4208
4208
|
if (!(!r || r.final)) {
|
|
4209
|
-
if (r.batches.length >=
|
|
4209
|
+
if (r.batches.length >= _o || r.cueCount + t.cues.length > qo) {
|
|
4210
4210
|
r.batches = [], r.cueCount = 0, r.final = !0, r.wake?.();
|
|
4211
4211
|
return;
|
|
4212
4212
|
}
|
|
@@ -4320,11 +4320,11 @@ const ec = (n) => {
|
|
|
4320
4320
|
e.session,
|
|
4321
4321
|
e.sendAck
|
|
4322
4322
|
) : null;
|
|
4323
|
-
}, Ci =
|
|
4323
|
+
}, Ci = Ht(void 0), nc = (n, e, t) => {
|
|
4324
4324
|
const [r, i] = Y(
|
|
4325
4325
|
Le.Pending
|
|
4326
4326
|
), [a, s] = Y(null);
|
|
4327
|
-
return
|
|
4327
|
+
return _(() => {
|
|
4328
4328
|
const o = { current: null }, c = () => {
|
|
4329
4329
|
i(Le.Available);
|
|
4330
4330
|
}, l = () => {
|
|
@@ -4335,7 +4335,7 @@ const ec = (n) => {
|
|
|
4335
4335
|
yo(n.customerInteractionSession.accessToken),
|
|
4336
4336
|
(h) => {
|
|
4337
4337
|
c();
|
|
4338
|
-
const w =
|
|
4338
|
+
const w = q.getState().actions, p = tc(h, {
|
|
4339
4339
|
messageActions: w,
|
|
4340
4340
|
commandRuntime: e,
|
|
4341
4341
|
session: n.customerInteractionSession,
|
|
@@ -4356,7 +4356,7 @@ const ec = (n) => {
|
|
|
4356
4356
|
}), d.channels.chat.on("connect", () => {
|
|
4357
4357
|
console.info("[CableContext] Connected to the chat channel"), s(d), c();
|
|
4358
4358
|
}), d.channels.chat.on("disconnect", (h) => {
|
|
4359
|
-
|
|
4359
|
+
Qt(h) && t?.(), i(
|
|
4360
4360
|
navigator.onLine ? Le.Unavailable : Le.Offline
|
|
4361
4361
|
), console.warn("[CableContext] Disconnected from the chat channel", h);
|
|
4362
4362
|
});
|
|
@@ -4394,43 +4394,43 @@ const de = {
|
|
|
4394
4394
|
voice: "/chat/voice",
|
|
4395
4395
|
text: "/chat/text"
|
|
4396
4396
|
};
|
|
4397
|
-
function
|
|
4397
|
+
function Uu(n) {
|
|
4398
4398
|
if (!n || typeof n != "object" || !("chatMode" in n))
|
|
4399
4399
|
return null;
|
|
4400
4400
|
const { chatMode: e } = n;
|
|
4401
4401
|
return e === "text" || e === "voice" ? e : null;
|
|
4402
4402
|
}
|
|
4403
|
-
function
|
|
4403
|
+
function Hu(n) {
|
|
4404
4404
|
return n === de.text || n.endsWith(de.text) ? "text" : "voice";
|
|
4405
4405
|
}
|
|
4406
|
-
function
|
|
4406
|
+
function bn(n) {
|
|
4407
4407
|
return n === de.list || n.endsWith(de.list);
|
|
4408
4408
|
}
|
|
4409
|
-
function
|
|
4409
|
+
function wn(n) {
|
|
4410
4410
|
return n === de.voice || n.endsWith(de.voice) || n === de.text || n.endsWith(de.text);
|
|
4411
4411
|
}
|
|
4412
|
-
function
|
|
4413
|
-
return
|
|
4412
|
+
function ju(n, e) {
|
|
4413
|
+
return wn(n) && bn(e) ? "forward" : bn(n) && wn(e) ? "backward" : null;
|
|
4414
4414
|
}
|
|
4415
4415
|
function sc(n) {
|
|
4416
|
-
return !
|
|
4416
|
+
return !wn(n);
|
|
4417
4417
|
}
|
|
4418
|
-
const
|
|
4418
|
+
const yn = 300 * 1e3;
|
|
4419
4419
|
function oc(n, e = Date.now()) {
|
|
4420
4420
|
const t = Date.parse(n.expiresAt);
|
|
4421
|
-
return !Number.isFinite(t) || t <= e +
|
|
4421
|
+
return !Number.isFinite(t) || t <= e + yn;
|
|
4422
4422
|
}
|
|
4423
4423
|
const cc = 60 * 1e3;
|
|
4424
4424
|
function lc(n, e) {
|
|
4425
4425
|
const t = J(e), r = n.customerInteractionSession, i = be(() => {
|
|
4426
4426
|
oc(r) && t.current.onSessionExpired();
|
|
4427
4427
|
}, [r]);
|
|
4428
|
-
|
|
4428
|
+
_(() => {
|
|
4429
4429
|
i();
|
|
4430
|
-
}, [i]),
|
|
4430
|
+
}, [i]), _(() => {
|
|
4431
4431
|
const a = () => i();
|
|
4432
4432
|
return window.addEventListener("focus", a), () => window.removeEventListener("focus", a);
|
|
4433
|
-
}, [i]),
|
|
4433
|
+
}, [i]), _(() => {
|
|
4434
4434
|
const a = window.setInterval(i, cc);
|
|
4435
4435
|
return () => window.clearInterval(a);
|
|
4436
4436
|
}, [i]);
|
|
@@ -4454,11 +4454,11 @@ xe.pong = "3";
|
|
|
4454
4454
|
xe.message = "4";
|
|
4455
4455
|
xe.upgrade = "5";
|
|
4456
4456
|
xe.noop = "6";
|
|
4457
|
-
const
|
|
4457
|
+
const Rt = /* @__PURE__ */ Object.create(null);
|
|
4458
4458
|
Object.keys(xe).forEach((n) => {
|
|
4459
|
-
|
|
4459
|
+
Rt[xe[n]] = n;
|
|
4460
4460
|
});
|
|
4461
|
-
const
|
|
4461
|
+
const vn = { type: "error", data: "parser error" }, Ii = typeof Blob == "function" || typeof Blob < "u" && Object.prototype.toString.call(Blob) === "[object BlobConstructor]", Ai = typeof ArrayBuffer == "function", ki = (n) => typeof ArrayBuffer.isView == "function" ? ArrayBuffer.isView(n) : n && n.buffer instanceof ArrayBuffer, zn = ({ type: n, data: e }, t, r) => Ii && e instanceof Blob ? t ? r(e) : vr(e, r) : Ai && (e instanceof ArrayBuffer || ki(e)) ? t ? r(e) : vr(new Blob([e]), r) : r(xe[n] + (e || "")), vr = (n, e) => {
|
|
4462
4462
|
const t = new FileReader();
|
|
4463
4463
|
return t.onload = function() {
|
|
4464
4464
|
const r = t.result.split(",")[1];
|
|
@@ -4468,25 +4468,25 @@ const yn = { type: "error", data: "parser error" }, Ii = typeof Blob == "functio
|
|
|
4468
4468
|
function Cr(n) {
|
|
4469
4469
|
return n instanceof Uint8Array ? n : n instanceof ArrayBuffer ? new Uint8Array(n) : new Uint8Array(n.buffer, n.byteOffset, n.byteLength);
|
|
4470
4470
|
}
|
|
4471
|
-
let
|
|
4471
|
+
let sn;
|
|
4472
4472
|
function hc(n, e) {
|
|
4473
4473
|
if (Ii && n.data instanceof Blob)
|
|
4474
4474
|
return n.data.arrayBuffer().then(Cr).then(e);
|
|
4475
4475
|
if (Ai && (n.data instanceof ArrayBuffer || ki(n.data)))
|
|
4476
4476
|
return e(Cr(n.data));
|
|
4477
4477
|
zn(n, !1, (t) => {
|
|
4478
|
-
|
|
4478
|
+
sn || (sn = new TextEncoder()), e(sn.encode(t));
|
|
4479
4479
|
});
|
|
4480
4480
|
}
|
|
4481
|
-
const Ir = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
|
|
4481
|
+
const Ir = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", at = typeof Uint8Array > "u" ? [] : new Uint8Array(256);
|
|
4482
4482
|
for (let n = 0; n < Ir.length; n++)
|
|
4483
|
-
|
|
4483
|
+
at[Ir.charCodeAt(n)] = n;
|
|
4484
4484
|
const pc = (n) => {
|
|
4485
4485
|
let e = n.length * 0.75, t = n.length, r, i = 0, a, s, o, c;
|
|
4486
4486
|
n[n.length - 1] === "=" && (e--, n[n.length - 2] === "=" && e--);
|
|
4487
4487
|
const l = new ArrayBuffer(e), d = new Uint8Array(l);
|
|
4488
4488
|
for (r = 0; r < t; r += 4)
|
|
4489
|
-
a =
|
|
4489
|
+
a = at[n.charCodeAt(r)], s = at[n.charCodeAt(r + 1)], o = at[n.charCodeAt(r + 2)], c = at[n.charCodeAt(r + 3)], d[i++] = a << 2 | s >> 4, d[i++] = (s & 15) << 4 | o >> 2, d[i++] = (o & 3) << 6 | c & 63;
|
|
4490
4490
|
return l;
|
|
4491
4491
|
}, gc = typeof ArrayBuffer == "function", Gn = (n, e) => {
|
|
4492
4492
|
if (typeof n != "string")
|
|
@@ -4498,12 +4498,12 @@ const pc = (n) => {
|
|
|
4498
4498
|
return t === "b" ? {
|
|
4499
4499
|
type: "message",
|
|
4500
4500
|
data: fc(n.substring(1), e)
|
|
4501
|
-
} :
|
|
4502
|
-
type:
|
|
4501
|
+
} : Rt[t] ? n.length > 1 ? {
|
|
4502
|
+
type: Rt[t],
|
|
4503
4503
|
data: n.substring(1)
|
|
4504
4504
|
} : {
|
|
4505
|
-
type:
|
|
4506
|
-
} :
|
|
4505
|
+
type: Rt[t]
|
|
4506
|
+
} : vn;
|
|
4507
4507
|
}, fc = (n, e) => {
|
|
4508
4508
|
if (gc) {
|
|
4509
4509
|
const t = pc(n);
|
|
@@ -4549,11 +4549,11 @@ function wc() {
|
|
|
4549
4549
|
}
|
|
4550
4550
|
});
|
|
4551
4551
|
}
|
|
4552
|
-
let
|
|
4553
|
-
function
|
|
4552
|
+
let on;
|
|
4553
|
+
function Ct(n) {
|
|
4554
4554
|
return n.reduce((e, t) => e + t.length, 0);
|
|
4555
4555
|
}
|
|
4556
|
-
function
|
|
4556
|
+
function It(n, e) {
|
|
4557
4557
|
if (n[0].length === e)
|
|
4558
4558
|
return n.shift();
|
|
4559
4559
|
const t = new Uint8Array(e);
|
|
@@ -4563,39 +4563,39 @@ function Ct(n, e) {
|
|
|
4563
4563
|
return n.length && r < n[0].length && (n[0] = n[0].slice(r)), t;
|
|
4564
4564
|
}
|
|
4565
4565
|
function yc(n, e) {
|
|
4566
|
-
|
|
4566
|
+
on || (on = new TextDecoder());
|
|
4567
4567
|
const t = [];
|
|
4568
4568
|
let r = 0, i = -1, a = !1;
|
|
4569
4569
|
return new TransformStream({
|
|
4570
4570
|
transform(s, o) {
|
|
4571
4571
|
for (t.push(s); ; ) {
|
|
4572
4572
|
if (r === 0) {
|
|
4573
|
-
if (
|
|
4573
|
+
if (Ct(t) < 1)
|
|
4574
4574
|
break;
|
|
4575
|
-
const c =
|
|
4575
|
+
const c = It(t, 1);
|
|
4576
4576
|
a = (c[0] & 128) === 128, i = c[0] & 127, i < 126 ? r = 3 : i === 126 ? r = 1 : r = 2;
|
|
4577
4577
|
} else if (r === 1) {
|
|
4578
|
-
if (
|
|
4578
|
+
if (Ct(t) < 2)
|
|
4579
4579
|
break;
|
|
4580
|
-
const c =
|
|
4580
|
+
const c = It(t, 2);
|
|
4581
4581
|
i = new DataView(c.buffer, c.byteOffset, c.length).getUint16(0), r = 3;
|
|
4582
4582
|
} else if (r === 2) {
|
|
4583
|
-
if (
|
|
4583
|
+
if (Ct(t) < 8)
|
|
4584
4584
|
break;
|
|
4585
|
-
const c =
|
|
4585
|
+
const c = It(t, 8), l = new DataView(c.buffer, c.byteOffset, c.length), d = l.getUint32(0);
|
|
4586
4586
|
if (d > Math.pow(2, 21) - 1) {
|
|
4587
|
-
o.enqueue(
|
|
4587
|
+
o.enqueue(vn);
|
|
4588
4588
|
break;
|
|
4589
4589
|
}
|
|
4590
4590
|
i = d * Math.pow(2, 32) + l.getUint32(4), r = 3;
|
|
4591
4591
|
} else {
|
|
4592
|
-
if (
|
|
4592
|
+
if (Ct(t) < i)
|
|
4593
4593
|
break;
|
|
4594
|
-
const c =
|
|
4595
|
-
o.enqueue(Gn(a ? c :
|
|
4594
|
+
const c = It(t, i);
|
|
4595
|
+
o.enqueue(Gn(a ? c : on.decode(c), e)), r = 0;
|
|
4596
4596
|
}
|
|
4597
4597
|
if (i === 0 || i > n) {
|
|
4598
|
-
o.enqueue(
|
|
4598
|
+
o.enqueue(vn);
|
|
4599
4599
|
break;
|
|
4600
4600
|
}
|
|
4601
4601
|
}
|
|
@@ -4652,12 +4652,12 @@ $.prototype.listeners = function(n) {
|
|
|
4652
4652
|
$.prototype.hasListeners = function(n) {
|
|
4653
4653
|
return !!this.listeners(n).length;
|
|
4654
4654
|
};
|
|
4655
|
-
const
|
|
4655
|
+
const $t = typeof Promise == "function" && typeof Promise.resolve == "function" ? (e) => Promise.resolve().then(e) : (e, t) => t(e, 0), le = typeof self < "u" ? self : typeof window < "u" ? window : Function("return this")(), Cc = "arraybuffer";
|
|
4656
4656
|
function Ei(n, ...e) {
|
|
4657
4657
|
return e.reduce((t, r) => (n.hasOwnProperty(r) && (t[r] = n[r]), t), {});
|
|
4658
4658
|
}
|
|
4659
4659
|
const Ic = le.setTimeout, Ac = le.clearTimeout;
|
|
4660
|
-
function
|
|
4660
|
+
function en(n, e) {
|
|
4661
4661
|
e.useNativeTimers ? (n.setTimeoutFn = Ic.bind(le), n.clearTimeoutFn = Ac.bind(le)) : (n.setTimeoutFn = le.setTimeout.bind(le), n.clearTimeoutFn = le.clearTimeout.bind(le));
|
|
4662
4662
|
}
|
|
4663
4663
|
const kc = 1.33;
|
|
@@ -4700,7 +4700,7 @@ class Fn extends $ {
|
|
|
4700
4700
|
* @protected
|
|
4701
4701
|
*/
|
|
4702
4702
|
constructor(e) {
|
|
4703
|
-
super(), this.writable = !1,
|
|
4703
|
+
super(), this.writable = !1, en(this, e), this.opts = e, this.query = e.query, this.socket = e.socket, this.supportsBinary = !e.forceBase64;
|
|
4704
4704
|
}
|
|
4705
4705
|
/**
|
|
4706
4706
|
* Emits an error.
|
|
@@ -4932,7 +4932,7 @@ class Pc extends Mc {
|
|
|
4932
4932
|
}), this.pollXhr = e;
|
|
4933
4933
|
}
|
|
4934
4934
|
}
|
|
4935
|
-
let
|
|
4935
|
+
let Ke = class Mt extends $ {
|
|
4936
4936
|
/**
|
|
4937
4937
|
* Request constructor
|
|
4938
4938
|
*
|
|
@@ -4940,7 +4940,7 @@ let _e = class Rt extends $ {
|
|
|
4940
4940
|
* @package
|
|
4941
4941
|
*/
|
|
4942
4942
|
constructor(e, t, r) {
|
|
4943
|
-
super(), this.createRequest = e,
|
|
4943
|
+
super(), this.createRequest = e, en(this, r), this._opts = r, this._method = r.method || "GET", this._uri = t, this._data = r.data !== void 0 ? r.data : null, this._create();
|
|
4944
4944
|
}
|
|
4945
4945
|
/**
|
|
4946
4946
|
* Creates the XHR object and sends the request.
|
|
@@ -4986,7 +4986,7 @@ let _e = class Rt extends $ {
|
|
|
4986
4986
|
}, 0);
|
|
4987
4987
|
return;
|
|
4988
4988
|
}
|
|
4989
|
-
typeof document < "u" && (this._index =
|
|
4989
|
+
typeof document < "u" && (this._index = Mt.requestsCount++, Mt.requests[this._index] = this);
|
|
4990
4990
|
}
|
|
4991
4991
|
/**
|
|
4992
4992
|
* Called upon error.
|
|
@@ -5008,7 +5008,7 @@ let _e = class Rt extends $ {
|
|
|
5008
5008
|
this._xhr.abort();
|
|
5009
5009
|
} catch {
|
|
5010
5010
|
}
|
|
5011
|
-
typeof document < "u" && delete
|
|
5011
|
+
typeof document < "u" && delete Mt.requests[this._index], this._xhr = null;
|
|
5012
5012
|
}
|
|
5013
5013
|
}
|
|
5014
5014
|
/**
|
|
@@ -5029,8 +5029,8 @@ let _e = class Rt extends $ {
|
|
|
5029
5029
|
this._cleanup();
|
|
5030
5030
|
}
|
|
5031
5031
|
};
|
|
5032
|
-
|
|
5033
|
-
|
|
5032
|
+
Ke.requestsCount = 0;
|
|
5033
|
+
Ke.requests = {};
|
|
5034
5034
|
if (typeof document < "u") {
|
|
5035
5035
|
if (typeof attachEvent == "function")
|
|
5036
5036
|
attachEvent("onunload", Ar);
|
|
@@ -5040,8 +5040,8 @@ if (typeof document < "u") {
|
|
|
5040
5040
|
}
|
|
5041
5041
|
}
|
|
5042
5042
|
function Ar() {
|
|
5043
|
-
for (let n in
|
|
5044
|
-
|
|
5043
|
+
for (let n in Ke.requests)
|
|
5044
|
+
Ke.requests.hasOwnProperty(n) && Ke.requests[n].abort();
|
|
5045
5045
|
}
|
|
5046
5046
|
const Vc = (function() {
|
|
5047
5047
|
const n = Li({
|
|
@@ -5056,7 +5056,7 @@ class Oc extends Pc {
|
|
|
5056
5056
|
this.supportsBinary = Vc && !t;
|
|
5057
5057
|
}
|
|
5058
5058
|
request(e = {}) {
|
|
5059
|
-
return Object.assign(e, { xd: this.xd }, this.opts), new
|
|
5059
|
+
return Object.assign(e, { xd: this.xd }, this.opts), new Ke(Li, this.uri(), e);
|
|
5060
5060
|
}
|
|
5061
5061
|
}
|
|
5062
5062
|
function Li(n) {
|
|
@@ -5109,7 +5109,7 @@ class zc extends Fn {
|
|
|
5109
5109
|
this.doWrite(r, a);
|
|
5110
5110
|
} catch {
|
|
5111
5111
|
}
|
|
5112
|
-
i &&
|
|
5112
|
+
i && $t(() => {
|
|
5113
5113
|
this.writable = !0, this.emitReserved("drain");
|
|
5114
5114
|
}, this.setTimeoutFn);
|
|
5115
5115
|
});
|
|
@@ -5129,10 +5129,10 @@ class zc extends Fn {
|
|
|
5129
5129
|
return this.opts.timestampRequests && (t[this.opts.timestampParam] = Ri()), this.supportsBinary || (t.b64 = 1), this.createUri(e, t);
|
|
5130
5130
|
}
|
|
5131
5131
|
}
|
|
5132
|
-
const
|
|
5132
|
+
const cn = le.WebSocket || le.MozWebSocket;
|
|
5133
5133
|
class Gc extends zc {
|
|
5134
5134
|
createSocket(e, t, r) {
|
|
5135
|
-
return Ni ? new
|
|
5135
|
+
return Ni ? new cn(e, t, r) : t ? new cn(e, t) : new cn(e);
|
|
5136
5136
|
}
|
|
5137
5137
|
doWrite(e, t) {
|
|
5138
5138
|
this.ws.send(t);
|
|
@@ -5173,7 +5173,7 @@ class Fc extends Fn {
|
|
|
5173
5173
|
for (let t = 0; t < e.length; t++) {
|
|
5174
5174
|
const r = e[t], i = t === e.length - 1;
|
|
5175
5175
|
this._writer.write(r).then(() => {
|
|
5176
|
-
i &&
|
|
5176
|
+
i && $t(() => {
|
|
5177
5177
|
this.writable = !0, this.emitReserved("drain");
|
|
5178
5178
|
}, this.setTimeoutFn);
|
|
5179
5179
|
});
|
|
@@ -5204,7 +5204,7 @@ const Dc = {
|
|
|
5204
5204
|
"query",
|
|
5205
5205
|
"anchor"
|
|
5206
5206
|
];
|
|
5207
|
-
function
|
|
5207
|
+
function Cn(n) {
|
|
5208
5208
|
if (n.length > 8e3)
|
|
5209
5209
|
throw "URI too long";
|
|
5210
5210
|
const e = n, t = n.indexOf("["), r = n.indexOf("]");
|
|
@@ -5224,9 +5224,9 @@ function Zc(n, e) {
|
|
|
5224
5224
|
i && (t[i] = a);
|
|
5225
5225
|
}), t;
|
|
5226
5226
|
}
|
|
5227
|
-
const
|
|
5228
|
-
|
|
5229
|
-
|
|
5227
|
+
const In = typeof addEventListener == "function" && typeof removeEventListener == "function", Lt = [];
|
|
5228
|
+
In && addEventListener("offline", () => {
|
|
5229
|
+
Lt.forEach((n) => n());
|
|
5230
5230
|
}, !1);
|
|
5231
5231
|
class Ve extends $ {
|
|
5232
5232
|
/**
|
|
@@ -5237,10 +5237,10 @@ class Ve extends $ {
|
|
|
5237
5237
|
*/
|
|
5238
5238
|
constructor(e, t) {
|
|
5239
5239
|
if (super(), this.binaryType = Cc, this.writeBuffer = [], this._prevBufferLen = 0, this._pingInterval = -1, this._pingTimeout = -1, this._maxPayload = -1, this._pingTimeoutTime = 1 / 0, e && typeof e == "object" && (t = e, e = null), e) {
|
|
5240
|
-
const r =
|
|
5240
|
+
const r = Cn(e);
|
|
5241
5241
|
t.hostname = r.host, t.secure = r.protocol === "https" || r.protocol === "wss", t.port = r.port, r.query && (t.query = r.query);
|
|
5242
|
-
} else t.host && (t.hostname =
|
|
5243
|
-
|
|
5242
|
+
} else t.host && (t.hostname = Cn(t.host).host);
|
|
5243
|
+
en(this, t), this.secure = t.secure != null ? t.secure : typeof location < "u" && location.protocol === "https:", t.hostname && !t.port && (t.port = this.secure ? "443" : "80"), this.hostname = t.hostname || (typeof location < "u" ? location.hostname : "localhost"), this.port = t.port || (typeof location < "u" && location.port ? location.port : this.secure ? "443" : "80"), this.transports = [], this._transportsByName = {}, t.transports.forEach((r) => {
|
|
5244
5244
|
const i = r.prototype.name;
|
|
5245
5245
|
this.transports.push(i), this._transportsByName[i] = r;
|
|
5246
5246
|
}), this.opts = Object.assign({
|
|
@@ -5257,13 +5257,13 @@ class Ve extends $ {
|
|
|
5257
5257
|
},
|
|
5258
5258
|
transportOptions: {},
|
|
5259
5259
|
closeOnBeforeunload: !1
|
|
5260
|
-
}, t), this.opts.path = this.opts.path.replace(/\/$/, "") + (this.opts.addTrailingSlash ? "/" : ""), typeof this.opts.query == "string" && (this.opts.query = Ec(this.opts.query)),
|
|
5260
|
+
}, t), this.opts.path = this.opts.path.replace(/\/$/, "") + (this.opts.addTrailingSlash ? "/" : ""), typeof this.opts.query == "string" && (this.opts.query = Ec(this.opts.query)), In && (this.opts.closeOnBeforeunload && (this._beforeunloadEventListener = () => {
|
|
5261
5261
|
this.transport && (this.transport.removeAllListeners(), this.transport.close());
|
|
5262
5262
|
}, addEventListener("beforeunload", this._beforeunloadEventListener, !1)), this.hostname !== "localhost" && (this._offlineEventListener = () => {
|
|
5263
5263
|
this._onClose("transport close", {
|
|
5264
5264
|
description: "network connection lost"
|
|
5265
5265
|
});
|
|
5266
|
-
},
|
|
5266
|
+
}, Lt.push(this._offlineEventListener))), this.opts.withCredentials && (this._cookieJar = void 0), this._open();
|
|
5267
5267
|
}
|
|
5268
5268
|
/**
|
|
5269
5269
|
* Creates transport of the given type.
|
|
@@ -5412,7 +5412,7 @@ class Ve extends $ {
|
|
|
5412
5412
|
if (!this._pingTimeoutTime)
|
|
5413
5413
|
return !0;
|
|
5414
5414
|
const e = Date.now() > this._pingTimeoutTime;
|
|
5415
|
-
return e && (this._pingTimeoutTime = 0,
|
|
5415
|
+
return e && (this._pingTimeoutTime = 0, $t(() => {
|
|
5416
5416
|
this._onClose("ping timeout");
|
|
5417
5417
|
}, this.setTimeoutFn)), e;
|
|
5418
5418
|
}
|
|
@@ -5490,9 +5490,9 @@ class Ve extends $ {
|
|
|
5490
5490
|
*/
|
|
5491
5491
|
_onClose(e, t) {
|
|
5492
5492
|
if (this.readyState === "opening" || this.readyState === "open" || this.readyState === "closing") {
|
|
5493
|
-
if (this.clearTimeoutFn(this._pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(),
|
|
5494
|
-
const r =
|
|
5495
|
-
r !== -1 &&
|
|
5493
|
+
if (this.clearTimeoutFn(this._pingTimeoutTimer), this.transport.removeAllListeners("close"), this.transport.close(), this.transport.removeAllListeners(), In && (this._beforeunloadEventListener && removeEventListener("beforeunload", this._beforeunloadEventListener, !1), this._offlineEventListener)) {
|
|
5494
|
+
const r = Lt.indexOf(this._offlineEventListener);
|
|
5495
|
+
r !== -1 && Lt.splice(r, 1);
|
|
5496
5496
|
}
|
|
5497
5497
|
this.readyState = "closed", this.id = null, this.emitReserved("close", e, t), this.writeBuffer = [], this._prevBufferLen = 0;
|
|
5498
5498
|
}
|
|
@@ -5579,37 +5579,37 @@ let Hc = class extends Uc {
|
|
|
5579
5579
|
};
|
|
5580
5580
|
function jc(n, e = "", t) {
|
|
5581
5581
|
let r = n;
|
|
5582
|
-
t = t || typeof location < "u" && location, n == null && (n = t.protocol + "//" + t.host), typeof n == "string" && (n.charAt(0) === "/" && (n.charAt(1) === "/" ? n = t.protocol + n : n = t.host + n), /^(https?|wss?):\/\//.test(n) || (typeof t < "u" ? n = t.protocol + "//" + n : n = "https://" + n), r =
|
|
5582
|
+
t = t || typeof location < "u" && location, n == null && (n = t.protocol + "//" + t.host), typeof n == "string" && (n.charAt(0) === "/" && (n.charAt(1) === "/" ? n = t.protocol + n : n = t.host + n), /^(https?|wss?):\/\//.test(n) || (typeof t < "u" ? n = t.protocol + "//" + n : n = "https://" + n), r = Cn(n)), r.port || (/^(http|ws)$/.test(r.protocol) ? r.port = "80" : /^(http|ws)s$/.test(r.protocol) && (r.port = "443")), r.path = r.path || "/";
|
|
5583
5583
|
const a = r.host.indexOf(":") !== -1 ? "[" + r.host + "]" : r.host;
|
|
5584
5584
|
return r.id = r.protocol + "://" + a + ":" + r.port + e, r.href = r.protocol + "://" + a + (t && t.port === r.port ? "" : ":" + r.port), r;
|
|
5585
5585
|
}
|
|
5586
|
-
const
|
|
5586
|
+
const _c = typeof ArrayBuffer == "function", qc = (n) => typeof ArrayBuffer.isView == "function" ? ArrayBuffer.isView(n) : n.buffer instanceof ArrayBuffer, Pi = Object.prototype.toString, Kc = typeof Blob == "function" || typeof Blob < "u" && Pi.call(Blob) === "[object BlobConstructor]", Yc = typeof File == "function" || typeof File < "u" && Pi.call(File) === "[object FileConstructor]";
|
|
5587
5587
|
function Dn(n) {
|
|
5588
|
-
return
|
|
5588
|
+
return _c && (n instanceof ArrayBuffer || qc(n)) || Kc && n instanceof Blob || Yc && n instanceof File;
|
|
5589
5589
|
}
|
|
5590
|
-
function
|
|
5590
|
+
function Nt(n, e) {
|
|
5591
5591
|
if (!n || typeof n != "object")
|
|
5592
5592
|
return !1;
|
|
5593
5593
|
if (Array.isArray(n)) {
|
|
5594
5594
|
for (let t = 0, r = n.length; t < r; t++)
|
|
5595
|
-
if (
|
|
5595
|
+
if (Nt(n[t]))
|
|
5596
5596
|
return !0;
|
|
5597
5597
|
return !1;
|
|
5598
5598
|
}
|
|
5599
5599
|
if (Dn(n))
|
|
5600
5600
|
return !0;
|
|
5601
5601
|
if (n.toJSON && typeof n.toJSON == "function" && arguments.length === 1)
|
|
5602
|
-
return
|
|
5602
|
+
return Nt(n.toJSON(), !0);
|
|
5603
5603
|
for (const t in n)
|
|
5604
|
-
if (Object.prototype.hasOwnProperty.call(n, t) &&
|
|
5604
|
+
if (Object.prototype.hasOwnProperty.call(n, t) && Nt(n[t]))
|
|
5605
5605
|
return !0;
|
|
5606
5606
|
return !1;
|
|
5607
5607
|
}
|
|
5608
5608
|
function Jc(n) {
|
|
5609
5609
|
const e = [], t = n.data, r = n;
|
|
5610
|
-
return r.data =
|
|
5610
|
+
return r.data = Pt(t, e), r.attachments = e.length, { packet: r, buffers: e };
|
|
5611
5611
|
}
|
|
5612
|
-
function
|
|
5612
|
+
function Pt(n, e, t) {
|
|
5613
5613
|
if (!n)
|
|
5614
5614
|
return n;
|
|
5615
5615
|
if (Dn(n)) {
|
|
@@ -5618,22 +5618,22 @@ function Nt(n, e, t) {
|
|
|
5618
5618
|
} else if (Array.isArray(n)) {
|
|
5619
5619
|
const r = new Array(n.length);
|
|
5620
5620
|
for (let i = 0; i < n.length; i++)
|
|
5621
|
-
r[i] =
|
|
5621
|
+
r[i] = Pt(n[i], e);
|
|
5622
5622
|
return r;
|
|
5623
5623
|
} else if (typeof n == "object" && !(n instanceof Date)) {
|
|
5624
5624
|
if (n.toJSON && typeof n.toJSON == "function" && !t)
|
|
5625
|
-
return
|
|
5625
|
+
return Pt(n.toJSON(), e, !0);
|
|
5626
5626
|
const r = {};
|
|
5627
5627
|
for (const i in n)
|
|
5628
|
-
Object.prototype.hasOwnProperty.call(n, i) && (r[i] =
|
|
5628
|
+
Object.prototype.hasOwnProperty.call(n, i) && (r[i] = Pt(n[i], e));
|
|
5629
5629
|
return r;
|
|
5630
5630
|
}
|
|
5631
5631
|
return n;
|
|
5632
5632
|
}
|
|
5633
5633
|
function Qc(n, e) {
|
|
5634
|
-
return n.data =
|
|
5634
|
+
return n.data = An(n.data, e), delete n.attachments, n;
|
|
5635
5635
|
}
|
|
5636
|
-
function
|
|
5636
|
+
function An(n, e) {
|
|
5637
5637
|
if (!n)
|
|
5638
5638
|
return n;
|
|
5639
5639
|
if (n && n._placeholder === !0) {
|
|
@@ -5642,10 +5642,10 @@ function In(n, e) {
|
|
|
5642
5642
|
throw new Error("illegal attachments");
|
|
5643
5643
|
} else if (Array.isArray(n))
|
|
5644
5644
|
for (let t = 0; t < n.length; t++)
|
|
5645
|
-
n[t] =
|
|
5645
|
+
n[t] = An(n[t], e);
|
|
5646
5646
|
else if (typeof n == "object")
|
|
5647
5647
|
for (const t in n)
|
|
5648
|
-
Object.prototype.hasOwnProperty.call(n, t) && (n[t] =
|
|
5648
|
+
Object.prototype.hasOwnProperty.call(n, t) && (n[t] = An(n[t], e));
|
|
5649
5649
|
return n;
|
|
5650
5650
|
}
|
|
5651
5651
|
const Vi = [
|
|
@@ -5682,7 +5682,7 @@ class el {
|
|
|
5682
5682
|
* @param {Object} obj - packet object
|
|
5683
5683
|
*/
|
|
5684
5684
|
encode(e) {
|
|
5685
|
-
return (e.type === G.EVENT || e.type === G.ACK) &&
|
|
5685
|
+
return (e.type === G.EVENT || e.type === G.ACK) && Nt(e) ? this.encodeAsBinary({
|
|
5686
5686
|
type: e.type === G.EVENT ? G.BINARY_EVENT : G.BINARY_ACK,
|
|
5687
5687
|
nsp: e.nsp,
|
|
5688
5688
|
data: e.data,
|
|
@@ -5804,11 +5804,11 @@ class Bn extends $ {
|
|
|
5804
5804
|
static isPayloadValid(e, t) {
|
|
5805
5805
|
switch (e) {
|
|
5806
5806
|
case G.CONNECT:
|
|
5807
|
-
return
|
|
5807
|
+
return Dt(t);
|
|
5808
5808
|
case G.DISCONNECT:
|
|
5809
5809
|
return t === void 0;
|
|
5810
5810
|
case G.CONNECT_ERROR:
|
|
5811
|
-
return typeof t == "string" ||
|
|
5811
|
+
return typeof t == "string" || Dt(t);
|
|
5812
5812
|
case G.EVENT:
|
|
5813
5813
|
case G.BINARY_EVENT:
|
|
5814
5814
|
return Array.isArray(t) && (typeof t[0] == "number" || typeof t[0] == "string" && Vi.indexOf(t[0]) === -1);
|
|
@@ -5859,13 +5859,13 @@ const Oi = Number.isInteger || function(n) {
|
|
|
5859
5859
|
function rl(n) {
|
|
5860
5860
|
return n === void 0 || Oi(n);
|
|
5861
5861
|
}
|
|
5862
|
-
function
|
|
5862
|
+
function Dt(n) {
|
|
5863
5863
|
return Object.prototype.toString.call(n) === "[object Object]";
|
|
5864
5864
|
}
|
|
5865
5865
|
function il(n, e) {
|
|
5866
5866
|
switch (n) {
|
|
5867
5867
|
case G.CONNECT:
|
|
5868
|
-
return e === void 0 ||
|
|
5868
|
+
return e === void 0 || Dt(e);
|
|
5869
5869
|
case G.DISCONNECT:
|
|
5870
5870
|
return e === void 0;
|
|
5871
5871
|
case G.EVENT:
|
|
@@ -5873,7 +5873,7 @@ function il(n, e) {
|
|
|
5873
5873
|
case G.ACK:
|
|
5874
5874
|
return Array.isArray(e);
|
|
5875
5875
|
case G.CONNECT_ERROR:
|
|
5876
|
-
return typeof e == "string" ||
|
|
5876
|
+
return typeof e == "string" || Dt(e);
|
|
5877
5877
|
default:
|
|
5878
5878
|
return !1;
|
|
5879
5879
|
}
|
|
@@ -6497,10 +6497,10 @@ class zi extends $ {
|
|
|
6497
6497
|
}
|
|
6498
6498
|
}
|
|
6499
6499
|
}
|
|
6500
|
-
function
|
|
6500
|
+
function Qe(n) {
|
|
6501
6501
|
n = n || {}, this.ms = n.min || 100, this.max = n.max || 1e4, this.factor = n.factor || 2, this.jitter = n.jitter > 0 && n.jitter <= 1 ? n.jitter : 0, this.attempts = 0;
|
|
6502
6502
|
}
|
|
6503
|
-
|
|
6503
|
+
Qe.prototype.duration = function() {
|
|
6504
6504
|
var n = this.ms * Math.pow(this.factor, this.attempts++);
|
|
6505
6505
|
if (this.jitter) {
|
|
6506
6506
|
var e = Math.random(), t = Math.floor(e * this.jitter * n);
|
|
@@ -6508,22 +6508,22 @@ Je.prototype.duration = function() {
|
|
|
6508
6508
|
}
|
|
6509
6509
|
return Math.min(n, this.max) | 0;
|
|
6510
6510
|
};
|
|
6511
|
-
|
|
6511
|
+
Qe.prototype.reset = function() {
|
|
6512
6512
|
this.attempts = 0;
|
|
6513
6513
|
};
|
|
6514
|
-
|
|
6514
|
+
Qe.prototype.setMin = function(n) {
|
|
6515
6515
|
this.ms = n;
|
|
6516
6516
|
};
|
|
6517
|
-
|
|
6517
|
+
Qe.prototype.setMax = function(n) {
|
|
6518
6518
|
this.max = n;
|
|
6519
6519
|
};
|
|
6520
|
-
|
|
6520
|
+
Qe.prototype.setJitter = function(n) {
|
|
6521
6521
|
this.jitter = n;
|
|
6522
6522
|
};
|
|
6523
|
-
class
|
|
6523
|
+
class kn extends $ {
|
|
6524
6524
|
constructor(e, t) {
|
|
6525
6525
|
var r;
|
|
6526
|
-
super(), this.nsps = {}, this.subs = [], e && typeof e == "object" && (t = e, e = void 0), t = t || {}, t.path = t.path || "/socket.io", this.opts = t,
|
|
6526
|
+
super(), this.nsps = {}, this.subs = [], e && typeof e == "object" && (t = e, e = void 0), t = t || {}, t.path = t.path || "/socket.io", this.opts = t, en(this, t), this.reconnection(t.reconnection !== !1), this.reconnectionAttempts(t.reconnectionAttempts || 1 / 0), this.reconnectionDelay(t.reconnectionDelay || 1e3), this.reconnectionDelayMax(t.reconnectionDelayMax || 5e3), this.randomizationFactor((r = t.randomizationFactor) !== null && r !== void 0 ? r : 0.5), this.backoff = new Qe({
|
|
6527
6527
|
min: this.reconnectionDelay(),
|
|
6528
6528
|
max: this.reconnectionDelayMax(),
|
|
6529
6529
|
jitter: this.randomizationFactor()
|
|
@@ -6641,7 +6641,7 @@ class An extends $ {
|
|
|
6641
6641
|
* @private
|
|
6642
6642
|
*/
|
|
6643
6643
|
ondecoded(e) {
|
|
6644
|
-
|
|
6644
|
+
$t(() => {
|
|
6645
6645
|
this.emitReserved("packet", e);
|
|
6646
6646
|
}, this.setTimeoutFn);
|
|
6647
6647
|
}
|
|
@@ -6758,33 +6758,33 @@ class An extends $ {
|
|
|
6758
6758
|
this._reconnecting = !1, this.backoff.reset(), this.emitReserved("reconnect", e);
|
|
6759
6759
|
}
|
|
6760
6760
|
}
|
|
6761
|
-
const
|
|
6762
|
-
function
|
|
6761
|
+
const tt = {};
|
|
6762
|
+
function Vt(n, e) {
|
|
6763
6763
|
typeof n == "object" && (e = n, n = void 0), e = e || {};
|
|
6764
|
-
const t = jc(n, e.path || "/socket.io"), r = t.source, i = t.id, a = t.path, s =
|
|
6764
|
+
const t = jc(n, e.path || "/socket.io"), r = t.source, i = t.id, a = t.path, s = tt[i] && a in tt[i].nsps, o = e.forceNew || e["force new connection"] || e.multiplex === !1 || s;
|
|
6765
6765
|
let c;
|
|
6766
|
-
return o ? c = new
|
|
6766
|
+
return o ? c = new kn(r, e) : (tt[i] || (tt[i] = new kn(r, e)), c = tt[i]), t.query && !e.query && (e.query = t.queryKey), c.socket(t.path, e);
|
|
6767
6767
|
}
|
|
6768
|
-
Object.assign(
|
|
6769
|
-
Manager:
|
|
6768
|
+
Object.assign(Vt, {
|
|
6769
|
+
Manager: kn,
|
|
6770
6770
|
Socket: zi,
|
|
6771
|
-
io:
|
|
6772
|
-
connect:
|
|
6771
|
+
io: Vt,
|
|
6772
|
+
connect: Vt
|
|
6773
6773
|
});
|
|
6774
6774
|
const cl = "data:text/javascript;base64,Y2xhc3MgUGNtQ2FwdHVyZVByb2Nlc3NvciBleHRlbmRzIEF1ZGlvV29ya2xldFByb2Nlc3NvciB7CiAgY29uc3RydWN0b3Iob3B0aW9ucykgewogICAgc3VwZXIoKTsKICAgIGNvbnN0IGNvbmZpZyA9IG9wdGlvbnMucHJvY2Vzc29yT3B0aW9ucyA/PyB7fTsKICAgIHRoaXMudGFyZ2V0U2FtcGxlUmF0ZSA9IE1hdGgubWF4KDEsIE51bWJlcihjb25maWcudGFyZ2V0U2FtcGxlUmF0ZSkgfHwgMjQwMDApOwogICAgdGhpcy5jaHVua1NhbXBsZXMgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKCh0aGlzLnRhcmdldFNhbXBsZVJhdGUgKiAoTnVtYmVyKGNvbmZpZy5jaHVua0R1cmF0aW9uTXMpIHx8IDEwMCkpIC8gMTAwMCkpOwogICAgdGhpcy5zb3VyY2VTdGVwID0gc2FtcGxlUmF0ZSAvIHRoaXMudGFyZ2V0U2FtcGxlUmF0ZTsKICAgIHRoaXMuZmlsdGVyVGFwcyA9IDQ4OwogICAgdGhpcy5yaW5nQ2FwYWNpdHkgPSAyNTY7CiAgICB0aGlzLnJpbmcgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMucmluZ0NhcGFjaXR5KTsKICAgIHRoaXMuaW5wdXRDb3VudCA9IDA7CiAgICB0aGlzLmZpcnN0U2FtcGxlID0gMDsKICAgIHRoaXMubmV4dFNvdXJjZVBvc2l0aW9uID0gMDsKICAgIHRoaXMub3V0cHV0U2FtcGxlcyA9IG5ldyBJbnQxNkFycmF5KHRoaXMuY2h1bmtTYW1wbGVzKTsKICAgIHRoaXMub3V0cHV0T2Zmc2V0ID0gMDsKICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7CiAgICB0aGlzLnBvcnQub25tZXNzYWdlID0gKHsgZGF0YSB9KSA9PiB7CiAgICAgIGlmIChkYXRhLnR5cGUgPT09ICJlbmFibGVkIikgdGhpcy5lbmFibGVkID0gQm9vbGVhbihkYXRhLnZhbHVlKTsKICAgICAgaWYgKGRhdGEudHlwZSA9PT0gInJlc2V0IikgdGhpcy5yZXNldCgpOwogICAgfTsKICB9CgogIHJlc2V0KCkgewogICAgdGhpcy5pbnB1dENvdW50ID0gMDsKICAgIHRoaXMubmV4dFNvdXJjZVBvc2l0aW9uID0gMDsKICAgIHRoaXMub3V0cHV0T2Zmc2V0ID0gMDsKICB9CgogIHB1c2hNaXhlZFNhbXBsZSh2YWx1ZSkgewogICAgY29uc3Qgc2FtcGxlID0gTWF0aC5tYXgoLTEsIE1hdGgubWluKDEsIHZhbHVlKSk7CiAgICBpZiAodGhpcy5pbnB1dENvdW50ID09PSAwKSB0aGlzLmZpcnN0U2FtcGxlID0gc2FtcGxlOwogICAgdGhpcy5yaW5nW3RoaXMuaW5wdXRDb3VudCAlIHRoaXMucmluZ0NhcGFjaXR5XSA9IHNhbXBsZTsKICAgIHRoaXMuaW5wdXRDb3VudCArPSAxOwogIH0KCiAgc2FtcGxlQXQoaW5kZXgpIHsKICAgIGlmIChpbmRleCA8IDApIHJldHVybiB0aGlzLmZpcnN0U2FtcGxlOwogICAgaWYgKGluZGV4ID49IHRoaXMuaW5wdXRDb3VudCkgcmV0dXJuIHRoaXMucmluZ1sodGhpcy5pbnB1dENvdW50IC0gMSkgJSB0aGlzLnJpbmdDYXBhY2l0eV07CiAgICBpZiAodGhpcy5pbnB1dENvdW50IC0gaW5kZXggPiB0aGlzLnJpbmdDYXBhY2l0eSkgcmV0dXJuIHRoaXMuZmlyc3RTYW1wbGU7CiAgICByZXR1cm4gdGhpcy5yaW5nW2luZGV4ICUgdGhpcy5yaW5nQ2FwYWNpdHldOwogIH0KCiAgZmlsdGVyZWRTYW1wbGUocG9zaXRpb24pIHsKICAgIGNvbnN0IGN1dG9mZiA9IE1hdGgubWluKDAuNDgsIDAuNDUgLyBNYXRoLm1heCgxLCB0aGlzLnNvdXJjZVN0ZXApKTsKICAgIGNvbnN0IGNlbnRyZSA9IE1hdGguZmxvb3IocG9zaXRpb24pOwogICAgY29uc3QgaGFsZiA9IHRoaXMuZmlsdGVyVGFwcyAvIDI7CiAgICBsZXQgd2VpZ2h0ZWQgPSAwOwogICAgbGV0IHdlaWdodCA9IDA7CiAgICBmb3IgKGxldCB0YXAgPSAtaGFsZiArIDE7IHRhcCA8PSBoYWxmOyB0YXAgKz0gMSkgewogICAgICBjb25zdCBkaXN0YW5jZSA9IGNlbnRyZSArIHRhcCAtIHBvc2l0aW9uOwogICAgICBjb25zdCBzaW5jID0gZGlzdGFuY2UgPT09IDAgPyAxIDogTWF0aC5zaW4oMiAqIE1hdGguUEkgKiBjdXRvZmYgKiBkaXN0YW5jZSkgLyAoTWF0aC5QSSAqIGRpc3RhbmNlKTsKICAgICAgY29uc3Qgd2luZG93ID0gMC41NCArIDAuNDYgKiBNYXRoLmNvcygoTWF0aC5QSSAqIHRhcCkgLyBoYWxmKTsKICAgICAgY29uc3QgY29lZmZpY2llbnQgPSBzaW5jICogd2luZG93OwogICAgICB3ZWlnaHRlZCArPSB0aGlzLnNhbXBsZUF0KGNlbnRyZSArIHRhcCkgKiBjb2VmZmljaWVudDsKICAgICAgd2VpZ2h0ICs9IGNvZWZmaWNpZW50OwogICAgfQogICAgcmV0dXJuIHdlaWdodCA/IHdlaWdodGVkIC8gd2VpZ2h0IDogMDsKICB9CgogIGVtaXRTYW1wbGUoc2FtcGxlKSB7CiAgICBjb25zdCBjbGlwcGVkID0gTWF0aC5tYXgoLTEsIE1hdGgubWluKDEsIHNhbXBsZSkpOwogICAgdGhpcy5vdXRwdXRTYW1wbGVzW3RoaXMub3V0cHV0T2Zmc2V0XSA9IGNsaXBwZWQgPCAwID8gTWF0aC5yb3VuZChjbGlwcGVkICogMzI3NjgpIDogTWF0aC5yb3VuZChjbGlwcGVkICogMzI3NjcpOwogICAgdGhpcy5vdXRwdXRPZmZzZXQgKz0gMTsKICAgIGlmICh0aGlzLm91dHB1dE9mZnNldCA8IHRoaXMuY2h1bmtTYW1wbGVzKSByZXR1cm47CiAgICBjb25zdCBieXRlcyA9IHRoaXMub3V0cHV0U2FtcGxlcy5idWZmZXI7CiAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoeyB0eXBlOiAiY2h1bmsiLCBieXRlcyB9LCBbYnl0ZXNdKTsKICAgIHRoaXMub3V0cHV0U2FtcGxlcyA9IG5ldyBJbnQxNkFycmF5KHRoaXMuY2h1bmtTYW1wbGVzKTsKICAgIHRoaXMub3V0cHV0T2Zmc2V0ID0gMDsKICB9CgogIHByb2Nlc3MoaW5wdXRzKSB7CiAgICBjb25zdCBjaGFubmVscyA9IGlucHV0c1swXTsKICAgIGNvbnN0IGZpcnN0Q2hhbm5lbCA9IGNoYW5uZWxzPy5bMF07CiAgICBpZiAoIWZpcnN0Q2hhbm5lbD8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgIGlmICghdGhpcy5lbmFibGVkKSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmlyc3RDaGFubmVsLmxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgICBsZXQgbWl4ZWQgPSAwOwogICAgICBmb3IgKGNvbnN0IGNoYW5uZWwgb2YgY2hhbm5lbHMpIG1peGVkICs9IGNoYW5uZWxbaW5kZXhdID8/IDA7CiAgICAgIHRoaXMucHVzaE1peGVkU2FtcGxlKG1peGVkIC8gY2hhbm5lbHMubGVuZ3RoKTsKICAgICAgd2hpbGUgKHRoaXMubmV4dFNvdXJjZVBvc2l0aW9uIDw9IHRoaXMuaW5wdXRDb3VudCAtIDEpIHsKICAgICAgICB0aGlzLmVtaXRTYW1wbGUodGhpcy5maWx0ZXJlZFNhbXBsZSh0aGlzLm5leHRTb3VyY2VQb3NpdGlvbikpOwogICAgICAgIHRoaXMubmV4dFNvdXJjZVBvc2l0aW9uICs9IHRoaXMuc291cmNlU3RlcDsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHRydWU7CiAgfQp9CgpyZWdpc3RlclByb2Nlc3NvcigibG9sYS1wY20tY2FwdHVyZSIsIFBjbUNhcHR1cmVQcm9jZXNzb3IpOwo=";
|
|
6775
6775
|
class Wn extends Error {
|
|
6776
|
-
constructor(e, t) {
|
|
6777
|
-
super(t), this.status = e;
|
|
6776
|
+
constructor(e, t, r, i) {
|
|
6777
|
+
super(t), this.status = e, this.code = r, this.details = i;
|
|
6778
6778
|
}
|
|
6779
6779
|
}
|
|
6780
|
-
const
|
|
6780
|
+
const We = (n) => !!n && typeof n == "object" && !Array.isArray(n), ll = /* @__PURE__ */ new Set([
|
|
6781
6781
|
"CREATED",
|
|
6782
6782
|
"CONNECTING",
|
|
6783
6783
|
"ACTIVE",
|
|
6784
6784
|
"ENDED",
|
|
6785
6785
|
"FAILED",
|
|
6786
6786
|
"EXPIRED"
|
|
6787
|
-
]),
|
|
6787
|
+
]), dl = {
|
|
6788
6788
|
path: "/socket.io/assistant",
|
|
6789
6789
|
namespace: "/assistant",
|
|
6790
6790
|
connectEvent: "voice.connect",
|
|
@@ -6792,7 +6792,16 @@ const kn = (n) => !!n && typeof n == "object" && !Array.isArray(n), ll = /* @__P
|
|
|
6792
6792
|
disconnectEvent: "voice.disconnect",
|
|
6793
6793
|
serverEvent: "voice.event",
|
|
6794
6794
|
eventProtocol: "xai-realtime-v1"
|
|
6795
|
-
},
|
|
6795
|
+
}, ul = {
|
|
6796
|
+
path: "/socket.io/assistant",
|
|
6797
|
+
namespace: "/assistant",
|
|
6798
|
+
connectEvent: "voice.connect",
|
|
6799
|
+
audioAppendEvent: "voice.audio.append",
|
|
6800
|
+
playbackInterruptEvent: "voice.playback.interrupt",
|
|
6801
|
+
disconnectEvent: "voice.disconnect",
|
|
6802
|
+
serverEvent: "voice.event",
|
|
6803
|
+
eventProtocol: "lola-voice-v5"
|
|
6804
|
+
}, hl = (n) => {
|
|
6796
6805
|
if (typeof n != "string" || !n.startsWith("/")) return !1;
|
|
6797
6806
|
try {
|
|
6798
6807
|
const e = new URL(n, "https://lola.invalid");
|
|
@@ -6800,38 +6809,60 @@ const kn = (n) => !!n && typeof n == "object" && !Array.isArray(n), ll = /* @__P
|
|
|
6800
6809
|
} catch {
|
|
6801
6810
|
return !1;
|
|
6802
6811
|
}
|
|
6803
|
-
},
|
|
6804
|
-
if (!
|
|
6812
|
+
}, pl = (n, e) => {
|
|
6813
|
+
if (!We(n))
|
|
6805
6814
|
throw new Error("Invalid voice session websocket contract");
|
|
6806
|
-
if (!
|
|
6815
|
+
if (!hl(n.path))
|
|
6807
6816
|
throw new Error("Invalid voice session websocket contract");
|
|
6808
|
-
|
|
6809
|
-
|
|
6817
|
+
const t = e === 5 ? ul : dl;
|
|
6818
|
+
for (const [r, i] of Object.entries(t))
|
|
6819
|
+
if (r !== "path" && n[r] !== i)
|
|
6810
6820
|
throw new Error("Invalid voice session websocket contract");
|
|
6811
|
-
return { ...
|
|
6821
|
+
return { ...t, path: n.path };
|
|
6822
|
+
}, gl = (n, e) => {
|
|
6823
|
+
if (e !== 5) return;
|
|
6824
|
+
if (!We(n) || !We(n.input))
|
|
6825
|
+
throw new Error("Invalid voice session quality profile");
|
|
6826
|
+
const t = n.input;
|
|
6827
|
+
if (typeof n.id != "string" || !n.id || t.encoding !== "pcm_s16le" || t.sampleRate !== 24e3 || t.channels !== 1 || t.chunkDurationMs !== 100 || t.chunkBytes !== 4800)
|
|
6828
|
+
throw new Error("Invalid voice session quality profile");
|
|
6829
|
+
return {
|
|
6830
|
+
id: n.id,
|
|
6831
|
+
input: {
|
|
6832
|
+
encoding: "pcm_s16le",
|
|
6833
|
+
sampleRate: 24e3,
|
|
6834
|
+
channels: 1,
|
|
6835
|
+
chunkDurationMs: 100,
|
|
6836
|
+
chunkBytes: 4800
|
|
6837
|
+
}
|
|
6838
|
+
};
|
|
6812
6839
|
}, Xn = (n) => {
|
|
6813
|
-
if (!
|
|
6840
|
+
if (!We(n)) throw new Error("Invalid voice session response");
|
|
6814
6841
|
const e = n.voiceConfig;
|
|
6815
|
-
if (typeof n.voiceSessionId != "string" || !n.voiceSessionId || typeof n.conversationId != "string" || !n.conversationId || typeof n.status != "string" || !ll.has(n.status) || !
|
|
6842
|
+
if (typeof n.voiceSessionId != "string" || !n.voiceSessionId || typeof n.conversationId != "string" || !n.conversationId || typeof n.status != "string" || !ll.has(n.status) || !We(e) || typeof e.voice != "string" || !e.voice || !Number.isSafeInteger(n.voiceProtocolVersion))
|
|
6816
6843
|
throw new Error("Invalid voice session response");
|
|
6844
|
+
const t = n.voiceProtocolVersion, r = gl(n.qualityProfile, t);
|
|
6817
6845
|
return {
|
|
6818
6846
|
voiceSessionId: n.voiceSessionId,
|
|
6819
6847
|
conversationId: n.conversationId,
|
|
6820
6848
|
status: n.status,
|
|
6821
6849
|
voiceConfig: { voice: e.voice },
|
|
6822
|
-
voiceProtocolVersion:
|
|
6823
|
-
|
|
6850
|
+
voiceProtocolVersion: t,
|
|
6851
|
+
...r ? { qualityProfile: r } : {},
|
|
6852
|
+
websocket: pl(n.websocket, t)
|
|
6824
6853
|
};
|
|
6825
|
-
},
|
|
6854
|
+
}, fl = async (n) => {
|
|
6826
6855
|
try {
|
|
6827
|
-
const e = await n.json();
|
|
6828
|
-
if (
|
|
6829
|
-
return
|
|
6830
|
-
|
|
6831
|
-
|
|
6856
|
+
const e = await n.json(), t = We(e.error) ? e.error : e, r = typeof t.message == "string" ? t.message : typeof e.error == "string" ? e.error : void 0;
|
|
6857
|
+
if (r)
|
|
6858
|
+
return {
|
|
6859
|
+
message: r,
|
|
6860
|
+
...typeof t.code == "string" ? { code: t.code } : {},
|
|
6861
|
+
...We(t.details) ? { details: t.details } : {}
|
|
6862
|
+
};
|
|
6832
6863
|
} catch {
|
|
6833
6864
|
}
|
|
6834
|
-
return `Voice request failed: ${n.status} ${n.statusText}
|
|
6865
|
+
return { message: `Voice request failed: ${n.status} ${n.statusText}` };
|
|
6835
6866
|
}, Zn = async (n, e, t, r) => {
|
|
6836
6867
|
const i = await fetch(`${Oe}${t}`, {
|
|
6837
6868
|
method: r.method,
|
|
@@ -6842,15 +6873,18 @@ const kn = (n) => !!n && typeof n == "object" && !Array.isArray(n), ll = /* @__P
|
|
|
6842
6873
|
},
|
|
6843
6874
|
...r.body ? { body: JSON.stringify(r.body) } : {}
|
|
6844
6875
|
});
|
|
6845
|
-
if (!i.ok)
|
|
6846
|
-
|
|
6876
|
+
if (!i.ok) {
|
|
6877
|
+
i.status === 401 && e.onSessionExpired();
|
|
6878
|
+
const a = await fl(i);
|
|
6879
|
+
throw new Wn(i.status, a.message ?? "Voice request failed", a.code, a.details);
|
|
6880
|
+
}
|
|
6847
6881
|
return i.json();
|
|
6848
|
-
},
|
|
6882
|
+
}, kr = (n, e, t) => Zn(n, e, "/voice/sessions", {
|
|
6849
6883
|
method: "POST",
|
|
6850
6884
|
body: {
|
|
6851
6885
|
...t ? { conversationId: t } : {}
|
|
6852
6886
|
}
|
|
6853
|
-
}).then(Xn),
|
|
6887
|
+
}).then(Xn), ml = (n, e, t) => Zn(
|
|
6854
6888
|
n,
|
|
6855
6889
|
e,
|
|
6856
6890
|
`/voice/sessions/${encodeURIComponent(t)}`,
|
|
@@ -6876,7 +6910,7 @@ const Gi = async (n) => {
|
|
|
6876
6910
|
} catch {
|
|
6877
6911
|
}
|
|
6878
6912
|
return `Audio request failed: ${n.status} ${n.statusText}`;
|
|
6879
|
-
},
|
|
6913
|
+
}, bl = async (n, e, t) => {
|
|
6880
6914
|
if (!t.audioPath.startsWith("/") || t.audioPath.startsWith("//"))
|
|
6881
6915
|
throw new Pe(0, "Audio path must be relative to Lola API");
|
|
6882
6916
|
const r = await fetch(`${Oe}${t.audioPath}`, {
|
|
@@ -6898,7 +6932,7 @@ const Gi = async (n) => {
|
|
|
6898
6932
|
if (a.size === 0)
|
|
6899
6933
|
throw new Pe(r.status, "Audio response is empty");
|
|
6900
6934
|
return a;
|
|
6901
|
-
},
|
|
6935
|
+
}, wl = async (n, e, t, r) => {
|
|
6902
6936
|
if (!t.audioPath.startsWith("/") || t.audioPath.startsWith("//"))
|
|
6903
6937
|
throw new Pe(0, "Audio path must be relative to Lola API");
|
|
6904
6938
|
const i = await fetch(`${Oe}${t.audioPath}`, {
|
|
@@ -6920,8 +6954,8 @@ const Gi = async (n) => {
|
|
|
6920
6954
|
if (!i.body)
|
|
6921
6955
|
throw new Pe(i.status, "Audio response has no body");
|
|
6922
6956
|
return i.body;
|
|
6923
|
-
},
|
|
6924
|
-
class
|
|
6957
|
+
}, yl = "audio/wav", xr = "audio/pcm", vl = 24e3 * 5;
|
|
6958
|
+
class Cl {
|
|
6925
6959
|
constructor(e, t) {
|
|
6926
6960
|
this.send = e, this.onFailure = t;
|
|
6927
6961
|
}
|
|
@@ -6932,7 +6966,7 @@ class wl {
|
|
|
6932
6966
|
firstDispatchAtMs = null;
|
|
6933
6967
|
enqueue(e) {
|
|
6934
6968
|
if (this.closed) return;
|
|
6935
|
-
if (this.queue.reduce((r, i) => r + i.sampleCount, 0) + e.sampleCount >
|
|
6969
|
+
if (this.queue.reduce((r, i) => r + i.sampleCount, 0) + e.sampleCount > vl) {
|
|
6936
6970
|
this.onFailure(new Error("audio_queue_overflow"));
|
|
6937
6971
|
return;
|
|
6938
6972
|
}
|
|
@@ -6973,7 +7007,7 @@ class wl {
|
|
|
6973
7007
|
r > 1 && await new Promise((i) => setTimeout(i, r));
|
|
6974
7008
|
}
|
|
6975
7009
|
}
|
|
6976
|
-
const yl = "data:text/javascript;base64,Y2xhc3MgUGNtUGxheWJhY2tQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHsKICAgIHN1cGVyKCk7CiAgICBjb25zdCBjb25maWcgPSBvcHRpb25zLnByb2Nlc3Nvck9wdGlvbnMgPz8ge307CiAgICB0aGlzLnNvdXJjZVNhbXBsZVJhdGUgPSBNYXRoLm1heCgKICAgICAgMSwKICAgICAgTnVtYmVyKGNvbmZpZy5zb3VyY2VTYW1wbGVSYXRlKSB8fCAyNDAwMCwKICAgICk7CiAgICB0aGlzLmppdHRlckJ1ZmZlclNhbXBsZXMgPSBNYXRoLm1heCgKICAgICAgMSwKICAgICAgTWF0aC5yb3VuZCgKICAgICAgICAodGhpcy5zb3VyY2VTYW1wbGVSYXRlICogKE51bWJlcihjb25maWcuaml0dGVyQnVmZmVyTXMpIHx8IDUwMCkpIC8gMTAwMCwKICAgICAgKSwKICAgICk7CiAgICB0aGlzLmNodW5rcyA9IFtdOwogICAgdGhpcy5jaHVua0hlYWQgPSAwOwogICAgdGhpcy5jaHVua09mZnNldCA9IDA7CiAgICB0aGlzLnF1ZXVlZFNhbXBsZXMgPSAwOwogICAgdGhpcy5zb3VyY2VQb3NpdGlvbiA9IDA7CiAgICB0aGlzLmNhcnJ5Qnl0ZSA9IG51bGw7CiAgICB0aGlzLmlucHV0RW5kZWQgPSBmYWxzZTsKICAgIHRoaXMucGxheWluZyA9IGZhbHNlOwogICAgdGhpcy5zdGFydGVkID0gZmFsc2U7CiAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7CiAgICB0aGlzLnVuZGVycnVuID0gZmFsc2U7CiAgICB0aGlzLnBsYXllZFNvdXJjZVNhbXBsZXMgPSAwOwogICAgdGhpcy5ybXNXaW5kb3dGcmFtZXMgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKHNhbXBsZVJhdGUgKiAwLjAxKSk7CiAgICB0aGlzLnByb2dyZXNzUmVwb3J0RnJhbWVzID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChzYW1wbGVSYXRlICogMC4wMikpOwogICAgdGhpcy5ybXNGcmFtZXMgPSAwOwogICAgdGhpcy5yZXBvcnRGcmFtZXMgPSAwOwogICAgdGhpcy5zdW1TcXVhcmVzID0gMDsKICAgIHRoaXMud2luZG93UGVhayA9IDA7CiAgICB0aGlzLmxhc3RQZWFrID0gMDsKICAgIHRoaXMubW91dGhPcGVuID0gMDsKICAgIHRoaXMuc3BlZWNoTGV2ZWwgPSAwOwogICAgdGhpcy5wcmV2aW91c1JtcyA9IDA7CiAgICB0aGlzLnNpbGVuY2VXaW5kb3dzID0gMDsKICAgIHRoaXMuY2xvc3VyZVdpbmRvd3NSZW1haW5pbmcgPSAwOwogICAgdGhpcy5jbG9zdXJlQ29vbGRvd25XaW5kb3dzID0gMDsKICAgIHRoaXMubGFzdFJlbmRlckNvbnRleHRGcmFtZSA9IDA7CiAgICB0aGlzLmF0dGFja0NvZWZmaWNpZW50ID0KICAgICAgMSAtIE1hdGguZXhwKC10aGlzLnJtc1dpbmRvd0ZyYW1lcyAvIChzYW1wbGVSYXRlICogMC4wMTUpKTsKICAgIHRoaXMucmVsZWFzZUNvZWZmaWNpZW50ID0KICAgICAgMSAtIE1hdGguZXhwKC10aGlzLnJtc1dpbmRvd0ZyYW1lcyAvIChzYW1wbGVSYXRlICogMC4wMjUpKTsKICAgIHRoaXMubGV2ZWxBdHRhY2tDb2VmZmljaWVudCA9CiAgICAgIDEgLSBNYXRoLmV4cCgtdGhpcy5ybXNXaW5kb3dGcmFtZXMgLyAoc2FtcGxlUmF0ZSAqIDAuMTIpKTsKICAgIHRoaXMubGV2ZWxSZWxlYXNlQ29lZmZpY2llbnQgPQogICAgICAxIC0gTWF0aC5leHAoLXRoaXMucm1zV2luZG93RnJhbWVzIC8gKHNhbXBsZVJhdGUgKiAwLjQpKTsKICAgIHRoaXMuY2xvc3VyZUhvbGRXaW5kb3dzID0gTWF0aC5tYXgoCiAgICAgIDEsCiAgICAgIE1hdGgucm91bmQoKHNhbXBsZVJhdGUgKiAwLjAzKSAvIHRoaXMucm1zV2luZG93RnJhbWVzKSwKICAgICk7CiAgICB0aGlzLmNsb3N1cmVDb29sZG93bkR1cmF0aW9uID0gTWF0aC5tYXgoCiAgICAgIDEsCiAgICAgIE1hdGgucm91bmQoKHNhbXBsZVJhdGUgKiAwLjA4KSAvIHRoaXMucm1zV2luZG93RnJhbWVzKSwKICAgICk7CgogICAgdGhpcy5wb3J0Lm9ubWVzc2FnZSA9ICh7IGRhdGEgfSkgPT4gewogICAgICBpZiAoZGF0YS50eXBlID09PSAiY2h1bmsiICYmIGRhdGEuYnl0ZXMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgICAgIHRoaXMuZW5xdWV1ZVBjbTE2KG5ldyBVaW50OEFycmF5KGRhdGEuYnl0ZXMpKTsKICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICJlbmQiKSB7CiAgICAgICAgaWYgKHRoaXMuY2FycnlCeXRlICE9PSBudWxsKSB7CiAgICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSh7IHR5cGU6ICJlcnJvciIgfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMuaW5wdXRFbmRlZCA9IHRydWU7CiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAic3RvcCIpIHsKICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICB9CgogIGVucXVldWVQY20xNihieXRlcykgewogICAgY29uc3Qgc2FtcGxlQ291bnQgPSBNYXRoLmZsb29yKAogICAgICAoYnl0ZXMubGVuZ3RoICsgKHRoaXMuY2FycnlCeXRlID09PSBudWxsID8gMCA6IDEpKSAvIDIsCiAgICApOwogICAgaWYgKCFzYW1wbGVDb3VudCkgewogICAgICBpZiAoYnl0ZXMubGVuZ3RoKSB0aGlzLmNhcnJ5Qnl0ZSA9IGJ5dGVzWzBdOwogICAgICByZXR1cm47CiAgICB9CgogICAgY29uc3Qgc2FtcGxlcyA9IG5ldyBGbG9hdDMyQXJyYXkoc2FtcGxlQ291bnQpOwogICAgbGV0IGJ5dGVJbmRleCA9IDA7CiAgICBsZXQgc2FtcGxlSW5kZXggPSAwOwogICAgaWYgKHRoaXMuY2FycnlCeXRlICE9PSBudWxsKSB7CiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYXJyeUJ5dGUgfCAoYnl0ZXNbYnl0ZUluZGV4KytdIDw8IDgpOwogICAgICBzYW1wbGVzW3NhbXBsZUluZGV4KytdID0gKHZhbHVlIDw8IDE2KSAvIDIxNDc0ODM2NDg7CiAgICAgIHRoaXMuY2FycnlCeXRlID0gbnVsbDsKICAgIH0KICAgIHdoaWxlIChieXRlSW5kZXggKyAxIDwgYnl0ZXMubGVuZ3RoKSB7CiAgICAgIGNvbnN0IHZhbHVlID0gYnl0ZXNbYnl0ZUluZGV4XSB8IChieXRlc1tieXRlSW5kZXggKyAxXSA8PCA4KTsKICAgICAgc2FtcGxlc1tzYW1wbGVJbmRleCsrXSA9ICh2YWx1ZSA8PCAxNikgLyAyMTQ3NDgzNjQ4OwogICAgICBieXRlSW5kZXggKz0gMjsKICAgIH0KICAgIGlmIChieXRlSW5kZXggPCBieXRlcy5sZW5ndGgpIHRoaXMuY2FycnlCeXRlID0gYnl0ZXNbYnl0ZUluZGV4XTsKICAgIGlmICh0aGlzLmNodW5rSGVhZCA9PT0gdGhpcy5jaHVua3MubGVuZ3RoKSB7CiAgICAgIHRoaXMuY2h1bmtzLmxlbmd0aCA9IDA7CiAgICAgIHRoaXMuY2h1bmtIZWFkID0gMDsKICAgIH0gZWxzZSBpZiAodGhpcy5jaHVua0hlYWQgPj0gNjQpIHsKICAgICAgdGhpcy5jaHVua3MuY29weVdpdGhpbigwLCB0aGlzLmNodW5rSGVhZCk7CiAgICAgIHRoaXMuY2h1bmtzLmxlbmd0aCAtPSB0aGlzLmNodW5rSGVhZDsKICAgICAgdGhpcy5jaHVua0hlYWQgPSAwOwogICAgfQogICAgdGhpcy5jaHVua3MucHVzaChzYW1wbGVzKTsKICAgIHRoaXMucXVldWVkU2FtcGxlcyArPSBzYW1wbGVzLmxlbmd0aDsKICB9CgogIHNhbXBsZUF0KGluZGV4KSB7CiAgICBsZXQgcmVtYWluaW5nID0gaW5kZXggKyB0aGlzLmNodW5rT2Zmc2V0OwogICAgZm9yICgKICAgICAgbGV0IGNodW5rSW5kZXggPSB0aGlzLmNodW5rSGVhZDsKICAgICAgY2h1bmtJbmRleCA8IHRoaXMuY2h1bmtzLmxlbmd0aDsKICAgICAgY2h1bmtJbmRleCArPSAxCiAgICApIHsKICAgICAgY29uc3QgY2h1bmsgPSB0aGlzLmNodW5rc1tjaHVua0luZGV4XTsKICAgICAgaWYgKHJlbWFpbmluZyA8IGNodW5rLmxlbmd0aCkgcmV0dXJuIGNodW5rW3JlbWFpbmluZ107CiAgICAgIHJlbWFpbmluZyAtPSBjaHVuay5sZW5ndGg7CiAgICB9CiAgICByZXR1cm4gMDsKICB9CgogIGRpc2NhcmQoY291bnQpIHsKICAgIGNvbnN0IGRpc2NhcmRlZCA9IE1hdGgubWluKGNvdW50LCB0aGlzLnF1ZXVlZFNhbXBsZXMpOwogICAgbGV0IHJlbWFpbmluZyA9IGRpc2NhcmRlZDsKICAgIHRoaXMucXVldWVkU2FtcGxlcyAtPSBkaXNjYXJkZWQ7CiAgICB3aGlsZSAocmVtYWluaW5nID4gMCAmJiB0aGlzLmNodW5rSGVhZCA8IHRoaXMuY2h1bmtzLmxlbmd0aCkgewogICAgICBjb25zdCBhdmFpbGFibGUgPSB0aGlzLmNodW5rc1t0aGlzLmNodW5rSGVhZF0ubGVuZ3RoIC0gdGhpcy5jaHVua09mZnNldDsKICAgICAgaWYgKHJlbWFpbmluZyA8IGF2YWlsYWJsZSkgewogICAgICAgIHRoaXMuY2h1bmtPZmZzZXQgKz0gcmVtYWluaW5nOwogICAgICAgIHJldHVybiBkaXNjYXJkZWQ7CiAgICAgIH0KICAgICAgcmVtYWluaW5nIC09IGF2YWlsYWJsZTsKICAgICAgdGhpcy5jaHVua0hlYWQgKz0gMTsKICAgICAgdGhpcy5jaHVua09mZnNldCA9IDA7CiAgICB9CiAgICBpZiAodGhpcy5jaHVua0hlYWQgPT09IHRoaXMuY2h1bmtzLmxlbmd0aCkgewogICAgICB0aGlzLmNodW5rcy5sZW5ndGggPSAwOwogICAgICB0aGlzLmNodW5rSGVhZCA9IDA7CiAgICB9CiAgICByZXR1cm4gZGlzY2FyZGVkOwogIH0KCiAgZmluaXNoUm1zV2luZG93KCkgewogICAgaWYgKHRoaXMucm1zRnJhbWVzID09PSAwKSByZXR1cm47CiAgICBjb25zdCBybXMgPSBNYXRoLnNxcnQodGhpcy5zdW1TcXVhcmVzIC8gdGhpcy5ybXNGcmFtZXMpOwogICAgY29uc3QgYWJzb2x1dGVUYXJnZXQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCAocm1zIC0gMC4wMDgpIC8gMC4xMTIpKTsKICAgIGlmIChybXMgPD0gMC4wMDgpIHsKICAgICAgdGhpcy5zaWxlbmNlV2luZG93cyArPSAxOwogICAgICBpZiAodGhpcy5zaWxlbmNlV2luZG93cyA+PSA4KSB0aGlzLnNwZWVjaExldmVsID0gMDsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuc2lsZW5jZVdpbmRvd3MgPSAwOwogICAgICBpZiAodGhpcy5zcGVlY2hMZXZlbCA9PT0gMCkgewogICAgICAgIHRoaXMuc3BlZWNoTGV2ZWwgPSBybXM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgbGV2ZWxDb2VmZmljaWVudCA9CiAgICAgICAgICBybXMgPiB0aGlzLnNwZWVjaExldmVsCiAgICAgICAgICAgID8gdGhpcy5sZXZlbEF0dGFja0NvZWZmaWNpZW50CiAgICAgICAgICAgIDogdGhpcy5sZXZlbFJlbGVhc2VDb2VmZmljaWVudDsKICAgICAgICB0aGlzLnNwZWVjaExldmVsICs9IChybXMgLSB0aGlzLnNwZWVjaExldmVsKSAqIGxldmVsQ29lZmZpY2llbnQ7CiAgICAgIH0KICAgIH0KCiAgICBjb25zdCByZWxhdGl2ZUxldmVsID0KICAgICAgdGhpcy5zcGVlY2hMZXZlbCA+IDAgPyBybXMgLyB0aGlzLnNwZWVjaExldmVsIDogYWJzb2x1dGVUYXJnZXQ7CiAgICBjb25zdCByZWxhdGl2ZVRhcmdldCA9IE1hdGgubWF4KAogICAgICAwLAogICAgICBNYXRoLm1pbigxLCAocmVsYXRpdmVMZXZlbCAtIDAuMzUpIC8gMC42NSksCiAgICApOwogICAgbGV0IHRhcmdldCA9IE1hdGgubWluKGFic29sdXRlVGFyZ2V0LCByZWxhdGl2ZVRhcmdldCk7CgogICAgaWYgKHRoaXMuY2xvc3VyZUNvb2xkb3duV2luZG93cyA+IDApIHsKICAgICAgdGhpcy5jbG9zdXJlQ29vbGRvd25XaW5kb3dzIC09IDE7CiAgICB9CiAgICBjb25zdCBmZWxsU2hhcnBseSA9IHRoaXMucHJldmlvdXNSbXMgPiAwICYmIHJtcyA8IHRoaXMucHJldmlvdXNSbXMgKiAwLjU1OwogICAgaWYgKAogICAgICBybXMgPiAwLjAwOCAmJgogICAgICB0aGlzLmNsb3N1cmVDb29sZG93bldpbmRvd3MgPT09IDAgJiYKICAgICAgKHJlbGF0aXZlTGV2ZWwgPCAwLjU1IHx8IGZlbGxTaGFycGx5KQogICAgKSB7CiAgICAgIHRoaXMuY2xvc3VyZVdpbmRvd3NSZW1haW5pbmcgPSB0aGlzLmNsb3N1cmVIb2xkV2luZG93czsKICAgICAgdGhpcy5jbG9zdXJlQ29vbGRvd25XaW5kb3dzID0gdGhpcy5jbG9zdXJlQ29vbGRvd25EdXJhdGlvbjsKICAgIH0KICAgIGlmICh0aGlzLmNsb3N1cmVXaW5kb3dzUmVtYWluaW5nID4gMCkgewogICAgICB0YXJnZXQgPSAwOwogICAgICB0aGlzLmNsb3N1cmVXaW5kb3dzUmVtYWluaW5nIC09IDE7CiAgICB9CgogICAgY29uc3QgY29lZmZpY2llbnQgPQogICAgICB0YXJnZXQgPiB0aGlzLm1vdXRoT3BlbgogICAgICAgID8gdGhpcy5hdHRhY2tDb2VmZmljaWVudAogICAgICAgIDogdGhpcy5yZWxlYXNlQ29lZmZpY2llbnQ7CiAgICB0aGlzLm1vdXRoT3BlbiArPSAodGFyZ2V0IC0gdGhpcy5tb3V0aE9wZW4pICogY29lZmZpY2llbnQ7CiAgICB0aGlzLnByZXZpb3VzUm1zID0gcm1zOwogICAgdGhpcy5sYXN0UGVhayA9IHRoaXMud2luZG93UGVhazsKICAgIHRoaXMucm1zRnJhbWVzID0gMDsKICAgIHRoaXMuc3VtU3F1YXJlcyA9IDA7CiAgICB0aGlzLndpbmRvd1BlYWsgPSAwOwogIH0KCiAgY29tcGxldGUoKSB7CiAgICBpZiAodGhpcy5maW5pc2hlZCkgcmV0dXJuOwogICAgaWYgKHRoaXMuc3RhcnRlZCAmJiB0aGlzLnJlcG9ydEZyYW1lcyA+IDApIHsKICAgICAgdGhpcy5maW5pc2hSbXNXaW5kb3coKTsKICAgICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKHsKICAgICAgICB0eXBlOiAicHJvZ3Jlc3MiLAogICAgICAgIHNvdXJjZVNhbXBsZTogdGhpcy5wbGF5ZWRTb3VyY2VTYW1wbGVzLAogICAgICAgIHJlbmRlckNvbnRleHRGcmFtZTogdGhpcy5sYXN0UmVuZGVyQ29udGV4dEZyYW1lLAogICAgICAgIG1vdXRoT3BlbjogdGhpcy5tb3V0aE9wZW4sCiAgICAgICAgcGVhazogdGhpcy5sYXN0UGVhaywKICAgICAgfSk7CiAgICAgIHRoaXMucmVwb3J0RnJhbWVzID0gMDsKICAgIH0KICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlOwogICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKHsKICAgICAgdHlwZTogImVuZGVkIiwKICAgICAgcmVuZGVyQ29udGV4dEZyYW1lOiB0aGlzLmxhc3RSZW5kZXJDb250ZXh0RnJhbWUsCiAgICB9KTsKICB9CgogIGNvbGxlY3RQcm9ncmVzcyhzYW1wbGUsIHJlbmRlckNvbnRleHRGcmFtZSkgewogICAgdGhpcy5sYXN0UmVuZGVyQ29udGV4dEZyYW1lID0gcmVuZGVyQ29udGV4dEZyYW1lOwogICAgdGhpcy5zdW1TcXVhcmVzICs9IHNhbXBsZSAqIHNhbXBsZTsKICAgIHRoaXMud2luZG93UGVhayA9IE1hdGgubWF4KHRoaXMud2luZG93UGVhaywgTWF0aC5hYnMoc2FtcGxlKSk7CiAgICB0aGlzLnJtc0ZyYW1lcyArPSAxOwogICAgdGhpcy5yZXBvcnRGcmFtZXMgKz0gMTsKCiAgICBpZiAodGhpcy5ybXNGcmFtZXMgPj0gdGhpcy5ybXNXaW5kb3dGcmFtZXMpIHsKICAgICAgdGhpcy5maW5pc2hSbXNXaW5kb3coKTsKICAgIH0KCiAgICBpZiAodGhpcy5yZXBvcnRGcmFtZXMgPj0gdGhpcy5wcm9ncmVzc1JlcG9ydEZyYW1lcykgewogICAgICB0aGlzLnJlcG9ydEZyYW1lcyA9IDA7CiAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgdHlwZTogInByb2dyZXNzIiwKICAgICAgICBzb3VyY2VTYW1wbGU6IHRoaXMucGxheWVkU291cmNlU2FtcGxlcywKICAgICAgICByZW5kZXJDb250ZXh0RnJhbWUsCiAgICAgICAgbW91dGhPcGVuOiB0aGlzLm1vdXRoT3BlbiwKICAgICAgICBwZWFrOiB0aGlzLmxhc3RQZWFrLAogICAgICB9KTsKICAgIH0KICB9CgogIHByb2Nlc3MoX2lucHV0cywgb3V0cHV0cykgewogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXT8uWzBdOwogICAgaWYgKCFvdXRwdXQpIHJldHVybiAhdGhpcy5maW5pc2hlZDsKICAgIG91dHB1dC5maWxsKDApOwogICAgaWYgKHRoaXMuZmluaXNoZWQpIHJldHVybiBmYWxzZTsKCiAgICBjb25zdCBzb3VyY2VTdGVwID0gdGhpcy5zb3VyY2VTYW1wbGVSYXRlIC8gc2FtcGxlUmF0ZTsKICAgIGNvbnN0IHJlcXVpcmVkU2FtcGxlcyA9CiAgICAgIE1hdGguY2VpbCh0aGlzLnNvdXJjZVBvc2l0aW9uICsgb3V0cHV0Lmxlbmd0aCAqIHNvdXJjZVN0ZXApICsgMTsKICAgIGlmICgKICAgICAgdGhpcy5wbGF5aW5nICYmCiAgICAgICF0aGlzLmlucHV0RW5kZWQgJiYKICAgICAgdGhpcy5xdWV1ZWRTYW1wbGVzIDwgcmVxdWlyZWRTYW1wbGVzCiAgICApIHsKICAgICAgdGhpcy5wbGF5aW5nID0gZmFsc2U7CiAgICAgIGlmICghdGhpcy51bmRlcnJ1bikgewogICAgICAgIHRoaXMudW5kZXJydW4gPSB0cnVlOwogICAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAidW5kZXJydW4iLAogICAgICAgICAgcmVuZGVyQ29udGV4dEZyYW1lOiBjdXJyZW50RnJhbWUsCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KCiAgICBpZiAoIXRoaXMucGxheWluZykgewogICAgICBpZiAoCiAgICAgICAgdGhpcy5xdWV1ZWRTYW1wbGVzID49CiAgICAgICAgICBNYXRoLm1heCh0aGlzLmppdHRlckJ1ZmZlclNhbXBsZXMsIHJlcXVpcmVkU2FtcGxlcykgfHwKICAgICAgICAodGhpcy5pbnB1dEVuZGVkICYmIHRoaXMucXVldWVkU2FtcGxlcyA+IDApCiAgICAgICkgewogICAgICAgIHRoaXMucGxheWluZyA9IHRydWU7CiAgICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHsKICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IHRydWU7CiAgICAgICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAic3RhcnRlZCIsCiAgICAgICAgICAgIHJlbmRlckNvbnRleHRGcmFtZTogY3VycmVudEZyYW1lLAogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVuZGVycnVuKSB7CiAgICAgICAgICB0aGlzLnVuZGVycnVuID0gZmFsc2U7CiAgICAgICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAicmVzdW1lZCIsCiAgICAgICAgICAgIHJlbmRlckNvbnRleHRGcmFtZTogY3VycmVudEZyYW1lLAogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbmRlZCkgewogICAgICAgIHRoaXMuY29tcGxldGUoKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KCiAgICBmb3IgKGxldCBvdXRwdXRJbmRleCA9IDA7IG91dHB1dEluZGV4IDwgb3V0cHV0Lmxlbmd0aDsgb3V0cHV0SW5kZXggKz0gMSkgewogICAgICBjb25zdCBsb3dlckluZGV4ID0gTWF0aC5mbG9vcih0aGlzLnNvdXJjZVBvc2l0aW9uKTsKICAgICAgaWYgKGxvd2VySW5kZXggPj0gdGhpcy5xdWV1ZWRTYW1wbGVzKSBicmVhazsKICAgICAgY29uc3QgdXBwZXJJbmRleCA9IGxvd2VySW5kZXggKyAxOwogICAgICBpZiAoIXRoaXMuaW5wdXRFbmRlZCAmJiB1cHBlckluZGV4ID49IHRoaXMucXVldWVkU2FtcGxlcykgYnJlYWs7CiAgICAgIGNvbnN0IGxvd2VyID0gdGhpcy5zYW1wbGVBdChsb3dlckluZGV4KTsKICAgICAgY29uc3QgdXBwZXIgPSB0aGlzLnNhbXBsZUF0KE1hdGgubWluKHVwcGVySW5kZXgsIHRoaXMucXVldWVkU2FtcGxlcyAtIDEpKTsKICAgICAgY29uc3QgZnJhY3Rpb24gPSB0aGlzLnNvdXJjZVBvc2l0aW9uIC0gbG93ZXJJbmRleDsKICAgICAgb3V0cHV0W291dHB1dEluZGV4XSA9IGxvd2VyICsgKHVwcGVyIC0gbG93ZXIpICogZnJhY3Rpb247CgogICAgICB0aGlzLnNvdXJjZVBvc2l0aW9uICs9IHNvdXJjZVN0ZXA7CiAgICAgIGNvbnN0IGNvbnN1bWVkID0gTWF0aC5mbG9vcih0aGlzLnNvdXJjZVBvc2l0aW9uKTsKICAgICAgaWYgKGNvbnN1bWVkID4gMCkgewogICAgICAgIHRoaXMucGxheWVkU291cmNlU2FtcGxlcyArPSB0aGlzLmRpc2NhcmQoY29uc3VtZWQpOwogICAgICAgIHRoaXMuc291cmNlUG9zaXRpb24gLT0gY29uc3VtZWQ7CiAgICAgIH0KICAgICAgdGhpcy5jb2xsZWN0UHJvZ3Jlc3Mob3V0cHV0W291dHB1dEluZGV4XSwgY3VycmVudEZyYW1lICsgb3V0cHV0SW5kZXggKyAxKTsKICAgIH0KCiAgICBpZiAodGhpcy5pbnB1dEVuZGVkICYmIHRoaXMucXVldWVkU2FtcGxlcyA9PT0gMCkgewogICAgICB0aGlzLmNvbXBsZXRlKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoImxvbGEtcGNtLXBsYXliYWNrIiwgUGNtUGxheWJhY2tQcm9jZXNzb3IpOwo=", vl = 1e3, Cl = 3e3, Il = 45e3, Fi = (n, e, t, r) => new Promise((i, a) => {
|
|
7010
|
+
const Il = "data:text/javascript;base64,Y2xhc3MgUGNtUGxheWJhY2tQcm9jZXNzb3IgZXh0ZW5kcyBBdWRpb1dvcmtsZXRQcm9jZXNzb3IgewogIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHsKICAgIHN1cGVyKCk7CiAgICBjb25zdCBjb25maWcgPSBvcHRpb25zLnByb2Nlc3Nvck9wdGlvbnMgPz8ge307CiAgICB0aGlzLnNvdXJjZVNhbXBsZVJhdGUgPSBNYXRoLm1heCgKICAgICAgMSwKICAgICAgTnVtYmVyKGNvbmZpZy5zb3VyY2VTYW1wbGVSYXRlKSB8fCAyNDAwMCwKICAgICk7CiAgICB0aGlzLmppdHRlckJ1ZmZlclNhbXBsZXMgPSBNYXRoLm1heCgKICAgICAgMSwKICAgICAgTWF0aC5yb3VuZCgKICAgICAgICAodGhpcy5zb3VyY2VTYW1wbGVSYXRlICogKE51bWJlcihjb25maWcuaml0dGVyQnVmZmVyTXMpIHx8IDUwMCkpIC8gMTAwMCwKICAgICAgKSwKICAgICk7CiAgICB0aGlzLmNodW5rcyA9IFtdOwogICAgdGhpcy5jaHVua0hlYWQgPSAwOwogICAgdGhpcy5jaHVua09mZnNldCA9IDA7CiAgICB0aGlzLnF1ZXVlZFNhbXBsZXMgPSAwOwogICAgdGhpcy5zb3VyY2VQb3NpdGlvbiA9IDA7CiAgICB0aGlzLmNhcnJ5Qnl0ZSA9IG51bGw7CiAgICB0aGlzLmlucHV0RW5kZWQgPSBmYWxzZTsKICAgIHRoaXMucGxheWluZyA9IGZhbHNlOwogICAgdGhpcy5zdGFydGVkID0gZmFsc2U7CiAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7CiAgICB0aGlzLnVuZGVycnVuID0gZmFsc2U7CiAgICB0aGlzLnBsYXllZFNvdXJjZVNhbXBsZXMgPSAwOwogICAgdGhpcy5ybXNXaW5kb3dGcmFtZXMgPSBNYXRoLm1heCgxLCBNYXRoLnJvdW5kKHNhbXBsZVJhdGUgKiAwLjAxKSk7CiAgICB0aGlzLnByb2dyZXNzUmVwb3J0RnJhbWVzID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChzYW1wbGVSYXRlICogMC4wMikpOwogICAgdGhpcy5ybXNGcmFtZXMgPSAwOwogICAgdGhpcy5yZXBvcnRGcmFtZXMgPSAwOwogICAgdGhpcy5zdW1TcXVhcmVzID0gMDsKICAgIHRoaXMud2luZG93UGVhayA9IDA7CiAgICB0aGlzLmxhc3RQZWFrID0gMDsKICAgIHRoaXMubW91dGhPcGVuID0gMDsKICAgIHRoaXMuc3BlZWNoTGV2ZWwgPSAwOwogICAgdGhpcy5wcmV2aW91c1JtcyA9IDA7CiAgICB0aGlzLnNpbGVuY2VXaW5kb3dzID0gMDsKICAgIHRoaXMuY2xvc3VyZVdpbmRvd3NSZW1haW5pbmcgPSAwOwogICAgdGhpcy5jbG9zdXJlQ29vbGRvd25XaW5kb3dzID0gMDsKICAgIHRoaXMubGFzdFJlbmRlckNvbnRleHRGcmFtZSA9IDA7CiAgICB0aGlzLmF0dGFja0NvZWZmaWNpZW50ID0KICAgICAgMSAtIE1hdGguZXhwKC10aGlzLnJtc1dpbmRvd0ZyYW1lcyAvIChzYW1wbGVSYXRlICogMC4wMTUpKTsKICAgIHRoaXMucmVsZWFzZUNvZWZmaWNpZW50ID0KICAgICAgMSAtIE1hdGguZXhwKC10aGlzLnJtc1dpbmRvd0ZyYW1lcyAvIChzYW1wbGVSYXRlICogMC4wMjUpKTsKICAgIHRoaXMubGV2ZWxBdHRhY2tDb2VmZmljaWVudCA9CiAgICAgIDEgLSBNYXRoLmV4cCgtdGhpcy5ybXNXaW5kb3dGcmFtZXMgLyAoc2FtcGxlUmF0ZSAqIDAuMTIpKTsKICAgIHRoaXMubGV2ZWxSZWxlYXNlQ29lZmZpY2llbnQgPQogICAgICAxIC0gTWF0aC5leHAoLXRoaXMucm1zV2luZG93RnJhbWVzIC8gKHNhbXBsZVJhdGUgKiAwLjQpKTsKICAgIHRoaXMuY2xvc3VyZUhvbGRXaW5kb3dzID0gTWF0aC5tYXgoCiAgICAgIDEsCiAgICAgIE1hdGgucm91bmQoKHNhbXBsZVJhdGUgKiAwLjAzKSAvIHRoaXMucm1zV2luZG93RnJhbWVzKSwKICAgICk7CiAgICB0aGlzLmNsb3N1cmVDb29sZG93bkR1cmF0aW9uID0gTWF0aC5tYXgoCiAgICAgIDEsCiAgICAgIE1hdGgucm91bmQoKHNhbXBsZVJhdGUgKiAwLjA4KSAvIHRoaXMucm1zV2luZG93RnJhbWVzKSwKICAgICk7CgogICAgdGhpcy5wb3J0Lm9ubWVzc2FnZSA9ICh7IGRhdGEgfSkgPT4gewogICAgICBpZiAoZGF0YS50eXBlID09PSAiY2h1bmsiICYmIGRhdGEuYnl0ZXMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgICAgIHRoaXMuZW5xdWV1ZVBjbTE2KG5ldyBVaW50OEFycmF5KGRhdGEuYnl0ZXMpKTsKICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICJlbmQiKSB7CiAgICAgICAgaWYgKHRoaXMuY2FycnlCeXRlICE9PSBudWxsKSB7CiAgICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSh7IHR5cGU6ICJlcnJvciIgfSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMuaW5wdXRFbmRlZCA9IHRydWU7CiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAic3RvcCIpIHsKICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICB9CgogIGVucXVldWVQY20xNihieXRlcykgewogICAgY29uc3Qgc2FtcGxlQ291bnQgPSBNYXRoLmZsb29yKAogICAgICAoYnl0ZXMubGVuZ3RoICsgKHRoaXMuY2FycnlCeXRlID09PSBudWxsID8gMCA6IDEpKSAvIDIsCiAgICApOwogICAgaWYgKCFzYW1wbGVDb3VudCkgewogICAgICBpZiAoYnl0ZXMubGVuZ3RoKSB0aGlzLmNhcnJ5Qnl0ZSA9IGJ5dGVzWzBdOwogICAgICByZXR1cm47CiAgICB9CgogICAgY29uc3Qgc2FtcGxlcyA9IG5ldyBGbG9hdDMyQXJyYXkoc2FtcGxlQ291bnQpOwogICAgbGV0IGJ5dGVJbmRleCA9IDA7CiAgICBsZXQgc2FtcGxlSW5kZXggPSAwOwogICAgaWYgKHRoaXMuY2FycnlCeXRlICE9PSBudWxsKSB7CiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYXJyeUJ5dGUgfCAoYnl0ZXNbYnl0ZUluZGV4KytdIDw8IDgpOwogICAgICBzYW1wbGVzW3NhbXBsZUluZGV4KytdID0gKHZhbHVlIDw8IDE2KSAvIDIxNDc0ODM2NDg7CiAgICAgIHRoaXMuY2FycnlCeXRlID0gbnVsbDsKICAgIH0KICAgIHdoaWxlIChieXRlSW5kZXggKyAxIDwgYnl0ZXMubGVuZ3RoKSB7CiAgICAgIGNvbnN0IHZhbHVlID0gYnl0ZXNbYnl0ZUluZGV4XSB8IChieXRlc1tieXRlSW5kZXggKyAxXSA8PCA4KTsKICAgICAgc2FtcGxlc1tzYW1wbGVJbmRleCsrXSA9ICh2YWx1ZSA8PCAxNikgLyAyMTQ3NDgzNjQ4OwogICAgICBieXRlSW5kZXggKz0gMjsKICAgIH0KICAgIGlmIChieXRlSW5kZXggPCBieXRlcy5sZW5ndGgpIHRoaXMuY2FycnlCeXRlID0gYnl0ZXNbYnl0ZUluZGV4XTsKICAgIGlmICh0aGlzLmNodW5rSGVhZCA9PT0gdGhpcy5jaHVua3MubGVuZ3RoKSB7CiAgICAgIHRoaXMuY2h1bmtzLmxlbmd0aCA9IDA7CiAgICAgIHRoaXMuY2h1bmtIZWFkID0gMDsKICAgIH0gZWxzZSBpZiAodGhpcy5jaHVua0hlYWQgPj0gNjQpIHsKICAgICAgdGhpcy5jaHVua3MuY29weVdpdGhpbigwLCB0aGlzLmNodW5rSGVhZCk7CiAgICAgIHRoaXMuY2h1bmtzLmxlbmd0aCAtPSB0aGlzLmNodW5rSGVhZDsKICAgICAgdGhpcy5jaHVua0hlYWQgPSAwOwogICAgfQogICAgdGhpcy5jaHVua3MucHVzaChzYW1wbGVzKTsKICAgIHRoaXMucXVldWVkU2FtcGxlcyArPSBzYW1wbGVzLmxlbmd0aDsKICB9CgogIHNhbXBsZUF0KGluZGV4KSB7CiAgICBsZXQgcmVtYWluaW5nID0gaW5kZXggKyB0aGlzLmNodW5rT2Zmc2V0OwogICAgZm9yICgKICAgICAgbGV0IGNodW5rSW5kZXggPSB0aGlzLmNodW5rSGVhZDsKICAgICAgY2h1bmtJbmRleCA8IHRoaXMuY2h1bmtzLmxlbmd0aDsKICAgICAgY2h1bmtJbmRleCArPSAxCiAgICApIHsKICAgICAgY29uc3QgY2h1bmsgPSB0aGlzLmNodW5rc1tjaHVua0luZGV4XTsKICAgICAgaWYgKHJlbWFpbmluZyA8IGNodW5rLmxlbmd0aCkgcmV0dXJuIGNodW5rW3JlbWFpbmluZ107CiAgICAgIHJlbWFpbmluZyAtPSBjaHVuay5sZW5ndGg7CiAgICB9CiAgICByZXR1cm4gMDsKICB9CgogIGRpc2NhcmQoY291bnQpIHsKICAgIGNvbnN0IGRpc2NhcmRlZCA9IE1hdGgubWluKGNvdW50LCB0aGlzLnF1ZXVlZFNhbXBsZXMpOwogICAgbGV0IHJlbWFpbmluZyA9IGRpc2NhcmRlZDsKICAgIHRoaXMucXVldWVkU2FtcGxlcyAtPSBkaXNjYXJkZWQ7CiAgICB3aGlsZSAocmVtYWluaW5nID4gMCAmJiB0aGlzLmNodW5rSGVhZCA8IHRoaXMuY2h1bmtzLmxlbmd0aCkgewogICAgICBjb25zdCBhdmFpbGFibGUgPSB0aGlzLmNodW5rc1t0aGlzLmNodW5rSGVhZF0ubGVuZ3RoIC0gdGhpcy5jaHVua09mZnNldDsKICAgICAgaWYgKHJlbWFpbmluZyA8IGF2YWlsYWJsZSkgewogICAgICAgIHRoaXMuY2h1bmtPZmZzZXQgKz0gcmVtYWluaW5nOwogICAgICAgIHJldHVybiBkaXNjYXJkZWQ7CiAgICAgIH0KICAgICAgcmVtYWluaW5nIC09IGF2YWlsYWJsZTsKICAgICAgdGhpcy5jaHVua0hlYWQgKz0gMTsKICAgICAgdGhpcy5jaHVua09mZnNldCA9IDA7CiAgICB9CiAgICBpZiAodGhpcy5jaHVua0hlYWQgPT09IHRoaXMuY2h1bmtzLmxlbmd0aCkgewogICAgICB0aGlzLmNodW5rcy5sZW5ndGggPSAwOwogICAgICB0aGlzLmNodW5rSGVhZCA9IDA7CiAgICB9CiAgICByZXR1cm4gZGlzY2FyZGVkOwogIH0KCiAgZmluaXNoUm1zV2luZG93KCkgewogICAgaWYgKHRoaXMucm1zRnJhbWVzID09PSAwKSByZXR1cm47CiAgICBjb25zdCBybXMgPSBNYXRoLnNxcnQodGhpcy5zdW1TcXVhcmVzIC8gdGhpcy5ybXNGcmFtZXMpOwogICAgY29uc3QgYWJzb2x1dGVUYXJnZXQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCAocm1zIC0gMC4wMDgpIC8gMC4xMTIpKTsKICAgIGlmIChybXMgPD0gMC4wMDgpIHsKICAgICAgdGhpcy5zaWxlbmNlV2luZG93cyArPSAxOwogICAgICBpZiAodGhpcy5zaWxlbmNlV2luZG93cyA+PSA4KSB0aGlzLnNwZWVjaExldmVsID0gMDsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuc2lsZW5jZVdpbmRvd3MgPSAwOwogICAgICBpZiAodGhpcy5zcGVlY2hMZXZlbCA9PT0gMCkgewogICAgICAgIHRoaXMuc3BlZWNoTGV2ZWwgPSBybXM7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgbGV2ZWxDb2VmZmljaWVudCA9CiAgICAgICAgICBybXMgPiB0aGlzLnNwZWVjaExldmVsCiAgICAgICAgICAgID8gdGhpcy5sZXZlbEF0dGFja0NvZWZmaWNpZW50CiAgICAgICAgICAgIDogdGhpcy5sZXZlbFJlbGVhc2VDb2VmZmljaWVudDsKICAgICAgICB0aGlzLnNwZWVjaExldmVsICs9IChybXMgLSB0aGlzLnNwZWVjaExldmVsKSAqIGxldmVsQ29lZmZpY2llbnQ7CiAgICAgIH0KICAgIH0KCiAgICBjb25zdCByZWxhdGl2ZUxldmVsID0KICAgICAgdGhpcy5zcGVlY2hMZXZlbCA+IDAgPyBybXMgLyB0aGlzLnNwZWVjaExldmVsIDogYWJzb2x1dGVUYXJnZXQ7CiAgICBjb25zdCByZWxhdGl2ZVRhcmdldCA9IE1hdGgubWF4KAogICAgICAwLAogICAgICBNYXRoLm1pbigxLCAocmVsYXRpdmVMZXZlbCAtIDAuMzUpIC8gMC42NSksCiAgICApOwogICAgbGV0IHRhcmdldCA9IE1hdGgubWluKGFic29sdXRlVGFyZ2V0LCByZWxhdGl2ZVRhcmdldCk7CgogICAgaWYgKHRoaXMuY2xvc3VyZUNvb2xkb3duV2luZG93cyA+IDApIHsKICAgICAgdGhpcy5jbG9zdXJlQ29vbGRvd25XaW5kb3dzIC09IDE7CiAgICB9CiAgICBjb25zdCBmZWxsU2hhcnBseSA9IHRoaXMucHJldmlvdXNSbXMgPiAwICYmIHJtcyA8IHRoaXMucHJldmlvdXNSbXMgKiAwLjU1OwogICAgaWYgKAogICAgICBybXMgPiAwLjAwOCAmJgogICAgICB0aGlzLmNsb3N1cmVDb29sZG93bldpbmRvd3MgPT09IDAgJiYKICAgICAgKHJlbGF0aXZlTGV2ZWwgPCAwLjU1IHx8IGZlbGxTaGFycGx5KQogICAgKSB7CiAgICAgIHRoaXMuY2xvc3VyZVdpbmRvd3NSZW1haW5pbmcgPSB0aGlzLmNsb3N1cmVIb2xkV2luZG93czsKICAgICAgdGhpcy5jbG9zdXJlQ29vbGRvd25XaW5kb3dzID0gdGhpcy5jbG9zdXJlQ29vbGRvd25EdXJhdGlvbjsKICAgIH0KICAgIGlmICh0aGlzLmNsb3N1cmVXaW5kb3dzUmVtYWluaW5nID4gMCkgewogICAgICB0YXJnZXQgPSAwOwogICAgICB0aGlzLmNsb3N1cmVXaW5kb3dzUmVtYWluaW5nIC09IDE7CiAgICB9CgogICAgY29uc3QgY29lZmZpY2llbnQgPQogICAgICB0YXJnZXQgPiB0aGlzLm1vdXRoT3BlbgogICAgICAgID8gdGhpcy5hdHRhY2tDb2VmZmljaWVudAogICAgICAgIDogdGhpcy5yZWxlYXNlQ29lZmZpY2llbnQ7CiAgICB0aGlzLm1vdXRoT3BlbiArPSAodGFyZ2V0IC0gdGhpcy5tb3V0aE9wZW4pICogY29lZmZpY2llbnQ7CiAgICB0aGlzLnByZXZpb3VzUm1zID0gcm1zOwogICAgdGhpcy5sYXN0UGVhayA9IHRoaXMud2luZG93UGVhazsKICAgIHRoaXMucm1zRnJhbWVzID0gMDsKICAgIHRoaXMuc3VtU3F1YXJlcyA9IDA7CiAgICB0aGlzLndpbmRvd1BlYWsgPSAwOwogIH0KCiAgY29tcGxldGUoKSB7CiAgICBpZiAodGhpcy5maW5pc2hlZCkgcmV0dXJuOwogICAgaWYgKHRoaXMuc3RhcnRlZCAmJiB0aGlzLnJlcG9ydEZyYW1lcyA+IDApIHsKICAgICAgdGhpcy5maW5pc2hSbXNXaW5kb3coKTsKICAgICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKHsKICAgICAgICB0eXBlOiAicHJvZ3Jlc3MiLAogICAgICAgIHNvdXJjZVNhbXBsZTogdGhpcy5wbGF5ZWRTb3VyY2VTYW1wbGVzLAogICAgICAgIHJlbmRlckNvbnRleHRGcmFtZTogdGhpcy5sYXN0UmVuZGVyQ29udGV4dEZyYW1lLAogICAgICAgIG1vdXRoT3BlbjogdGhpcy5tb3V0aE9wZW4sCiAgICAgICAgcGVhazogdGhpcy5sYXN0UGVhaywKICAgICAgfSk7CiAgICAgIHRoaXMucmVwb3J0RnJhbWVzID0gMDsKICAgIH0KICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlOwogICAgdGhpcy5wb3J0LnBvc3RNZXNzYWdlKHsKICAgICAgdHlwZTogImVuZGVkIiwKICAgICAgcmVuZGVyQ29udGV4dEZyYW1lOiB0aGlzLmxhc3RSZW5kZXJDb250ZXh0RnJhbWUsCiAgICB9KTsKICB9CgogIGNvbGxlY3RQcm9ncmVzcyhzYW1wbGUsIHJlbmRlckNvbnRleHRGcmFtZSkgewogICAgdGhpcy5sYXN0UmVuZGVyQ29udGV4dEZyYW1lID0gcmVuZGVyQ29udGV4dEZyYW1lOwogICAgdGhpcy5zdW1TcXVhcmVzICs9IHNhbXBsZSAqIHNhbXBsZTsKICAgIHRoaXMud2luZG93UGVhayA9IE1hdGgubWF4KHRoaXMud2luZG93UGVhaywgTWF0aC5hYnMoc2FtcGxlKSk7CiAgICB0aGlzLnJtc0ZyYW1lcyArPSAxOwogICAgdGhpcy5yZXBvcnRGcmFtZXMgKz0gMTsKCiAgICBpZiAodGhpcy5ybXNGcmFtZXMgPj0gdGhpcy5ybXNXaW5kb3dGcmFtZXMpIHsKICAgICAgdGhpcy5maW5pc2hSbXNXaW5kb3coKTsKICAgIH0KCiAgICBpZiAodGhpcy5yZXBvcnRGcmFtZXMgPj0gdGhpcy5wcm9ncmVzc1JlcG9ydEZyYW1lcykgewogICAgICB0aGlzLnJlcG9ydEZyYW1lcyA9IDA7CiAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgdHlwZTogInByb2dyZXNzIiwKICAgICAgICBzb3VyY2VTYW1wbGU6IHRoaXMucGxheWVkU291cmNlU2FtcGxlcywKICAgICAgICByZW5kZXJDb250ZXh0RnJhbWUsCiAgICAgICAgbW91dGhPcGVuOiB0aGlzLm1vdXRoT3BlbiwKICAgICAgICBwZWFrOiB0aGlzLmxhc3RQZWFrLAogICAgICB9KTsKICAgIH0KICB9CgogIHByb2Nlc3MoX2lucHV0cywgb3V0cHV0cykgewogICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c1swXT8uWzBdOwogICAgaWYgKCFvdXRwdXQpIHJldHVybiAhdGhpcy5maW5pc2hlZDsKICAgIG91dHB1dC5maWxsKDApOwogICAgaWYgKHRoaXMuZmluaXNoZWQpIHJldHVybiBmYWxzZTsKCiAgICBjb25zdCBzb3VyY2VTdGVwID0gdGhpcy5zb3VyY2VTYW1wbGVSYXRlIC8gc2FtcGxlUmF0ZTsKICAgIGNvbnN0IHJlcXVpcmVkU2FtcGxlcyA9CiAgICAgIE1hdGguY2VpbCh0aGlzLnNvdXJjZVBvc2l0aW9uICsgb3V0cHV0Lmxlbmd0aCAqIHNvdXJjZVN0ZXApICsgMTsKICAgIGlmICgKICAgICAgdGhpcy5wbGF5aW5nICYmCiAgICAgICF0aGlzLmlucHV0RW5kZWQgJiYKICAgICAgdGhpcy5xdWV1ZWRTYW1wbGVzIDwgcmVxdWlyZWRTYW1wbGVzCiAgICApIHsKICAgICAgdGhpcy5wbGF5aW5nID0gZmFsc2U7CiAgICAgIGlmICghdGhpcy51bmRlcnJ1bikgewogICAgICAgIHRoaXMudW5kZXJydW4gPSB0cnVlOwogICAgICAgIHRoaXMucG9ydC5wb3N0TWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAidW5kZXJydW4iLAogICAgICAgICAgcmVuZGVyQ29udGV4dEZyYW1lOiBjdXJyZW50RnJhbWUsCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KCiAgICBpZiAoIXRoaXMucGxheWluZykgewogICAgICBpZiAoCiAgICAgICAgdGhpcy5xdWV1ZWRTYW1wbGVzID49CiAgICAgICAgICBNYXRoLm1heCh0aGlzLmppdHRlckJ1ZmZlclNhbXBsZXMsIHJlcXVpcmVkU2FtcGxlcykgfHwKICAgICAgICAodGhpcy5pbnB1dEVuZGVkICYmIHRoaXMucXVldWVkU2FtcGxlcyA+IDApCiAgICAgICkgewogICAgICAgIHRoaXMucGxheWluZyA9IHRydWU7CiAgICAgICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHsKICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IHRydWU7CiAgICAgICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAic3RhcnRlZCIsCiAgICAgICAgICAgIHJlbmRlckNvbnRleHRGcmFtZTogY3VycmVudEZyYW1lLAogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVuZGVycnVuKSB7CiAgICAgICAgICB0aGlzLnVuZGVycnVuID0gZmFsc2U7CiAgICAgICAgICB0aGlzLnBvcnQucG9zdE1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAicmVzdW1lZCIsCiAgICAgICAgICAgIHJlbmRlckNvbnRleHRGcmFtZTogY3VycmVudEZyYW1lLAogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbmRlZCkgewogICAgICAgIHRoaXMuY29tcGxldGUoKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KCiAgICBmb3IgKGxldCBvdXRwdXRJbmRleCA9IDA7IG91dHB1dEluZGV4IDwgb3V0cHV0Lmxlbmd0aDsgb3V0cHV0SW5kZXggKz0gMSkgewogICAgICBjb25zdCBsb3dlckluZGV4ID0gTWF0aC5mbG9vcih0aGlzLnNvdXJjZVBvc2l0aW9uKTsKICAgICAgaWYgKGxvd2VySW5kZXggPj0gdGhpcy5xdWV1ZWRTYW1wbGVzKSBicmVhazsKICAgICAgY29uc3QgdXBwZXJJbmRleCA9IGxvd2VySW5kZXggKyAxOwogICAgICBpZiAoIXRoaXMuaW5wdXRFbmRlZCAmJiB1cHBlckluZGV4ID49IHRoaXMucXVldWVkU2FtcGxlcykgYnJlYWs7CiAgICAgIGNvbnN0IGxvd2VyID0gdGhpcy5zYW1wbGVBdChsb3dlckluZGV4KTsKICAgICAgY29uc3QgdXBwZXIgPSB0aGlzLnNhbXBsZUF0KE1hdGgubWluKHVwcGVySW5kZXgsIHRoaXMucXVldWVkU2FtcGxlcyAtIDEpKTsKICAgICAgY29uc3QgZnJhY3Rpb24gPSB0aGlzLnNvdXJjZVBvc2l0aW9uIC0gbG93ZXJJbmRleDsKICAgICAgb3V0cHV0W291dHB1dEluZGV4XSA9IGxvd2VyICsgKHVwcGVyIC0gbG93ZXIpICogZnJhY3Rpb247CgogICAgICB0aGlzLnNvdXJjZVBvc2l0aW9uICs9IHNvdXJjZVN0ZXA7CiAgICAgIGNvbnN0IGNvbnN1bWVkID0gTWF0aC5mbG9vcih0aGlzLnNvdXJjZVBvc2l0aW9uKTsKICAgICAgaWYgKGNvbnN1bWVkID4gMCkgewogICAgICAgIHRoaXMucGxheWVkU291cmNlU2FtcGxlcyArPSB0aGlzLmRpc2NhcmQoY29uc3VtZWQpOwogICAgICAgIHRoaXMuc291cmNlUG9zaXRpb24gLT0gY29uc3VtZWQ7CiAgICAgIH0KICAgICAgdGhpcy5jb2xsZWN0UHJvZ3Jlc3Mob3V0cHV0W291dHB1dEluZGV4XSwgY3VycmVudEZyYW1lICsgb3V0cHV0SW5kZXggKyAxKTsKICAgIH0KCiAgICBpZiAodGhpcy5pbnB1dEVuZGVkICYmIHRoaXMucXVldWVkU2FtcGxlcyA9PT0gMCkgewogICAgICB0aGlzLmNvbXBsZXRlKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0KfQoKcmVnaXN0ZXJQcm9jZXNzb3IoImxvbGEtcGNtLXBsYXliYWNrIiwgUGNtUGxheWJhY2tQcm9jZXNzb3IpOwo=", Al = 1e3, kl = 3e3, xl = 45e3, Fi = (n, e, t, r) => new Promise((i, a) => {
|
|
6977
7011
|
let s = !1;
|
|
6978
7012
|
const o = (d) => {
|
|
6979
7013
|
s || (s = !0, clearTimeout(l), r.removeEventListener("abort", c), d());
|
|
@@ -6985,12 +7019,12 @@ const yl = "data:text/javascript;base64,Y2xhc3MgUGNtUGxheWJhY2tQcm9jZXNzb3IgZXh0
|
|
|
6985
7019
|
(d) => o(() => i(d)),
|
|
6986
7020
|
(d) => o(() => a(d))
|
|
6987
7021
|
);
|
|
6988
|
-
}),
|
|
7022
|
+
}), Sl = (n, e) => Fi(
|
|
6989
7023
|
n.resume(),
|
|
6990
|
-
|
|
7024
|
+
kl,
|
|
6991
7025
|
"Audio playback was blocked",
|
|
6992
7026
|
e
|
|
6993
|
-
),
|
|
7027
|
+
), Tl = (n) => {
|
|
6994
7028
|
let e = Number.NaN;
|
|
6995
7029
|
try {
|
|
6996
7030
|
const r = n.getOutputTimestamp?.()?.contextTime;
|
|
@@ -6999,7 +7033,7 @@ const yl = "data:text/javascript;base64,Y2xhc3MgUGNtUGxheWJhY2tQcm9jZXNzb3IgZXh0
|
|
|
6999
7033
|
}
|
|
7000
7034
|
return Number.isFinite(e) || (e = n.currentTime - n.baseLatency - (n.outputLatency || 0)), !Number.isFinite(e) || !Number.isFinite(n.sampleRate) || n.sampleRate <= 0 ? null : Math.max(0, e * n.sampleRate);
|
|
7001
7035
|
};
|
|
7002
|
-
class
|
|
7036
|
+
class El {
|
|
7003
7037
|
active = null;
|
|
7004
7038
|
get isPlaying() {
|
|
7005
7039
|
return this.active !== null;
|
|
@@ -7057,13 +7091,13 @@ class xl {
|
|
|
7057
7091
|
}), this.active === S && (this.active = null));
|
|
7058
7092
|
}, p = (x, y) => {
|
|
7059
7093
|
if (l) return;
|
|
7060
|
-
const P = i ?
|
|
7094
|
+
const P = i ? Tl(i) : null;
|
|
7061
7095
|
if (P === null || !Number.isFinite(x) || !i || x <= P) {
|
|
7062
7096
|
y();
|
|
7063
7097
|
return;
|
|
7064
7098
|
}
|
|
7065
7099
|
const F = Math.min(
|
|
7066
|
-
|
|
7100
|
+
Al,
|
|
7067
7101
|
(x - P) / i.sampleRate * 1e3
|
|
7068
7102
|
), D = setTimeout(() => {
|
|
7069
7103
|
c.delete(D), l || y();
|
|
@@ -7092,7 +7126,7 @@ class xl {
|
|
|
7092
7126
|
return this.active = S, (async () => {
|
|
7093
7127
|
try {
|
|
7094
7128
|
i = new AudioContext({ latencyHint: "interactive" });
|
|
7095
|
-
const x =
|
|
7129
|
+
const x = Sl(
|
|
7096
7130
|
i,
|
|
7097
7131
|
r.signal
|
|
7098
7132
|
);
|
|
@@ -7103,10 +7137,10 @@ class xl {
|
|
|
7103
7137
|
const [, , y] = await Fi(
|
|
7104
7138
|
Promise.all([
|
|
7105
7139
|
x,
|
|
7106
|
-
i.audioWorklet.addModule(
|
|
7140
|
+
i.audioWorklet.addModule(Il),
|
|
7107
7141
|
o
|
|
7108
7142
|
]),
|
|
7109
|
-
|
|
7143
|
+
xl,
|
|
7110
7144
|
"Audio playback setup timed out",
|
|
7111
7145
|
r.signal
|
|
7112
7146
|
);
|
|
@@ -7205,7 +7239,7 @@ class xl {
|
|
|
7205
7239
|
this.active?.stop();
|
|
7206
7240
|
}
|
|
7207
7241
|
}
|
|
7208
|
-
const
|
|
7242
|
+
const Rl = /* @__PURE__ */ new Set(["A", "B", "C", "D", "E", "F", "G", "H", "X"]), Ml = 128, Ll = 256, Nl = 5, Sr = {
|
|
7209
7243
|
playbackId: null,
|
|
7210
7244
|
phase: "idle",
|
|
7211
7245
|
sampleRate: 0,
|
|
@@ -7213,8 +7247,8 @@ const Sl = /* @__PURE__ */ new Set(["A", "B", "C", "D", "E", "F", "G", "H", "X"]
|
|
|
7213
7247
|
mouthOpen: 0,
|
|
7214
7248
|
activeViseme: null
|
|
7215
7249
|
};
|
|
7216
|
-
class
|
|
7217
|
-
snapshot =
|
|
7250
|
+
class Pl {
|
|
7251
|
+
snapshot = Sr;
|
|
7218
7252
|
listeners = /* @__PURE__ */ new Set();
|
|
7219
7253
|
cues = [];
|
|
7220
7254
|
cueIndex = 0;
|
|
@@ -7235,7 +7269,7 @@ class Ml {
|
|
|
7235
7269
|
}
|
|
7236
7270
|
if (e.playbackId === this.snapshot.playbackId) {
|
|
7237
7271
|
if (e.type === "playback-stopped") {
|
|
7238
|
-
this.cues = [], this.cueIndex = 0, this.rmsMouthOpen = 0, this.publish(
|
|
7272
|
+
this.cues = [], this.cueIndex = 0, this.rmsMouthOpen = 0, this.publish(Sr);
|
|
7239
7273
|
return;
|
|
7240
7274
|
}
|
|
7241
7275
|
if (e.type === "playback-underrun") {
|
|
@@ -7285,26 +7319,26 @@ class Ml {
|
|
|
7285
7319
|
};
|
|
7286
7320
|
}
|
|
7287
7321
|
acceptCueBatch(e, t) {
|
|
7288
|
-
if (!this.cuesEnabled || !Number.isSafeInteger(e) || e !== this.nextCueSequence || t.length >
|
|
7322
|
+
if (!this.cuesEnabled || !Number.isSafeInteger(e) || e !== this.nextCueSequence || t.length > Ml)
|
|
7289
7323
|
return !1;
|
|
7290
7324
|
this.cueIndex > 0 && (this.cues.splice(0, this.cueIndex), this.cueIndex = 0);
|
|
7291
7325
|
let r = this.cues.at(-1)?.endSample ?? -1;
|
|
7292
|
-
const i = this.snapshot.sourceSample + this.snapshot.sampleRate *
|
|
7326
|
+
const i = this.snapshot.sourceSample + this.snapshot.sampleRate * Nl;
|
|
7293
7327
|
let a = 0;
|
|
7294
7328
|
for (let s = 0; s < t.length; s += 1) {
|
|
7295
7329
|
const o = t[s];
|
|
7296
|
-
if (!
|
|
7330
|
+
if (!Rl.has(o.viseme) || !Number.isSafeInteger(o.startSample) || !Number.isSafeInteger(o.endSample) || o.startSample < 0 || o.startSample < r || o.endSample <= o.startSample || o.endSample > i)
|
|
7297
7331
|
return !1;
|
|
7298
7332
|
r = o.endSample, o.endSample > this.snapshot.sourceSample && (a += 1);
|
|
7299
7333
|
}
|
|
7300
|
-
if (this.cues.length + a >
|
|
7334
|
+
if (this.cues.length + a > Ll) return !1;
|
|
7301
7335
|
for (let s = 0; s < t.length; s += 1)
|
|
7302
7336
|
t[s].endSample > this.snapshot.sourceSample && this.cues.push(t[s]);
|
|
7303
7337
|
return this.nextCueSequence += 1, !0;
|
|
7304
7338
|
}
|
|
7305
7339
|
}
|
|
7306
|
-
const we = new
|
|
7307
|
-
async function
|
|
7340
|
+
const we = new Pl(), Vl = 256;
|
|
7341
|
+
async function Ol({
|
|
7308
7342
|
source: n,
|
|
7309
7343
|
runtime: e,
|
|
7310
7344
|
playbackId: t,
|
|
@@ -7318,17 +7352,17 @@ async function Nl({
|
|
|
7318
7352
|
if (i.aborted) return;
|
|
7319
7353
|
if (o.playbackId !== t)
|
|
7320
7354
|
continue;
|
|
7321
|
-
const c =
|
|
7355
|
+
const c = zl(o);
|
|
7322
7356
|
if (o.sequence < a) {
|
|
7323
7357
|
if (s.get(o.sequence) === c) continue;
|
|
7324
|
-
|
|
7358
|
+
ln(e, o, r);
|
|
7325
7359
|
return;
|
|
7326
7360
|
}
|
|
7327
7361
|
if (o.sequence > a) {
|
|
7328
|
-
|
|
7362
|
+
ln(e, o, r);
|
|
7329
7363
|
return;
|
|
7330
7364
|
}
|
|
7331
|
-
for (
|
|
7365
|
+
for (ln(e, o, r), s.set(o.sequence, c); s.size > Vl; ) {
|
|
7332
7366
|
const l = s.keys().next().value;
|
|
7333
7367
|
if (l === void 0) break;
|
|
7334
7368
|
s.delete(l);
|
|
@@ -7338,7 +7372,7 @@ async function Nl({
|
|
|
7338
7372
|
} catch {
|
|
7339
7373
|
}
|
|
7340
7374
|
}
|
|
7341
|
-
function
|
|
7375
|
+
function ln(n, e, t) {
|
|
7342
7376
|
n.dispatch({
|
|
7343
7377
|
type: "cue-batch",
|
|
7344
7378
|
playbackId: e.playbackId,
|
|
@@ -7350,7 +7384,7 @@ function cn(n, e, t) {
|
|
|
7350
7384
|
}))
|
|
7351
7385
|
});
|
|
7352
7386
|
}
|
|
7353
|
-
function
|
|
7387
|
+
function zl(n) {
|
|
7354
7388
|
return JSON.stringify(
|
|
7355
7389
|
n.cues.map((e) => [e.viseme, e.startMs, e.endMs])
|
|
7356
7390
|
);
|
|
@@ -7373,7 +7407,7 @@ const Fe = {
|
|
|
7373
7407
|
assistantMessageTranscriptVisible: !1,
|
|
7374
7408
|
assistantResponseInProgress: !1,
|
|
7375
7409
|
microphoneEnabled: !1
|
|
7376
|
-
}, ve = 24e3, Un = 5,
|
|
7410
|
+
}, ve = 24e3, Un = 5, Gl = 100, Tr = 120, Fl = 1e4, Dl = 1e4, xn = 256 * 1024, Bl = 4 * 1024 * 1024, Wl = 6e4, Er = 1e5, Xl = 200, Rr = /[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i, Mr = (n) => ({
|
|
7377
7411
|
onProgress: ({ sourceSample: e, mouthOpen: t }) => we.dispatch({
|
|
7378
7412
|
type: "playback-progress",
|
|
7379
7413
|
playbackId: n,
|
|
@@ -7383,7 +7417,7 @@ const Fe = {
|
|
|
7383
7417
|
onUnderrun: () => we.dispatch({ type: "playback-underrun", playbackId: n }),
|
|
7384
7418
|
onResumed: () => we.dispatch({ type: "playback-resumed", playbackId: n }),
|
|
7385
7419
|
onStopped: () => we.dispatch({ type: "playback-stopped", playbackId: n })
|
|
7386
|
-
}),
|
|
7420
|
+
}), Zl = /* @__PURE__ */ new Set([
|
|
7387
7421
|
"input_audio_buffer.speech_started",
|
|
7388
7422
|
"input_audio_buffer.speech_stopped",
|
|
7389
7423
|
"conversation.item.input_audio_transcription.updated",
|
|
@@ -7397,23 +7431,23 @@ const Fe = {
|
|
|
7397
7431
|
"response.text.delta",
|
|
7398
7432
|
"response.done",
|
|
7399
7433
|
"error"
|
|
7400
|
-
]), ke = (n) => !!n && typeof n == "object" && !Array.isArray(n),
|
|
7401
|
-
class
|
|
7434
|
+
]), ke = (n) => !!n && typeof n == "object" && !Array.isArray(n), Ul = (n) => n instanceof Error ? n.message : "Voice session failed";
|
|
7435
|
+
class st extends Error {
|
|
7402
7436
|
constructor(e, t) {
|
|
7403
7437
|
super(t), this.code = e;
|
|
7404
7438
|
}
|
|
7405
7439
|
}
|
|
7406
|
-
const
|
|
7440
|
+
const Hl = (n) => {
|
|
7407
7441
|
const e = ke(n) ? n.error : void 0, t = ke(e) ? e.message : ke(n) ? n.message : void 0;
|
|
7408
7442
|
return typeof t == "string" ? t : null;
|
|
7409
7443
|
}, Lr = (n) => {
|
|
7410
7444
|
n?.getTracks().forEach((e) => e.stop());
|
|
7411
|
-
},
|
|
7445
|
+
}, jl = (n) => {
|
|
7412
7446
|
let e = "";
|
|
7413
7447
|
for (let t = 0; t < n.length; t += 1)
|
|
7414
7448
|
e += String.fromCharCode(n[t]);
|
|
7415
7449
|
return btoa(e);
|
|
7416
|
-
},
|
|
7450
|
+
}, _l = (n) => {
|
|
7417
7451
|
if (n.length > Math.ceil(xn * 4 / 3) + 4)
|
|
7418
7452
|
throw new Error("Voice audio chunk is too large");
|
|
7419
7453
|
const e = atob(n);
|
|
@@ -7423,26 +7457,26 @@ const Zl = (n) => {
|
|
|
7423
7457
|
for (let r = 0; r < e.length; r += 1)
|
|
7424
7458
|
t[r] = e.charCodeAt(r);
|
|
7425
7459
|
return t;
|
|
7426
|
-
},
|
|
7427
|
-
const e = ke(n) ? n.delta ?? n.audio : n, t = e instanceof Uint8Array ? e.slice() : e instanceof ArrayBuffer ? new Uint8Array(e.slice(0)) : typeof e == "string" && e ?
|
|
7460
|
+
}, ql = (n) => {
|
|
7461
|
+
const e = ke(n) ? n.delta ?? n.audio : n, t = e instanceof Uint8Array ? e.slice() : e instanceof ArrayBuffer ? new Uint8Array(e.slice(0)) : typeof e == "string" && e ? _l(e) : null;
|
|
7428
7462
|
if (!t || !t.byteLength || t.byteLength % 2 !== 0)
|
|
7429
7463
|
throw new Error("Voice audio delta is invalid");
|
|
7430
7464
|
if (t.byteLength > xn)
|
|
7431
7465
|
throw new Error("Voice audio chunk is too large");
|
|
7432
7466
|
return t;
|
|
7433
|
-
},
|
|
7467
|
+
}, At = (n, e = !1) => {
|
|
7434
7468
|
if (typeof n == "string") {
|
|
7435
|
-
if (n.length >
|
|
7469
|
+
if (n.length > Er)
|
|
7436
7470
|
throw new Error("Voice transcript is too large");
|
|
7437
7471
|
return n;
|
|
7438
7472
|
}
|
|
7439
7473
|
if (!ke(n)) return "";
|
|
7440
7474
|
const t = e ? n.transcript ?? n.text ?? n.delta : n.delta ?? n.transcript ?? n.text;
|
|
7441
7475
|
if (typeof t != "string") return "";
|
|
7442
|
-
if (t.length >
|
|
7476
|
+
if (t.length > Er)
|
|
7443
7477
|
throw new Error("Voice transcript is too large");
|
|
7444
7478
|
return t;
|
|
7445
|
-
}, qe = (n) => ke(n) ? typeof n.response_id == "string" ? n.response_id : ke(n.response) && typeof n.response.id == "string" ? n.response.id : null : null,
|
|
7479
|
+
}, qe = (n) => ke(n) ? typeof n.response_id == "string" ? n.response_id : ke(n.response) && typeof n.response.id == "string" ? n.response.id : null : null, Kl = (n) => {
|
|
7446
7480
|
const e = new URL(Oe);
|
|
7447
7481
|
if (e.protocol !== "https:" && !["localhost", "127.0.0.1", "[::1]"].includes(e.hostname))
|
|
7448
7482
|
throw new Error("Voice proxy must use HTTPS");
|
|
@@ -7450,7 +7484,7 @@ const Zl = (n) => {
|
|
|
7450
7484
|
url: `${e.origin}${n.websocket.namespace}`,
|
|
7451
7485
|
path: n.websocket.path
|
|
7452
7486
|
};
|
|
7453
|
-
},
|
|
7487
|
+
}, Yl = (n, e) => {
|
|
7454
7488
|
if (e.voiceProtocolVersion !== Un)
|
|
7455
7489
|
throw new Error(
|
|
7456
7490
|
`Unsupported voice protocol version: ${e.voiceProtocolVersion}`
|
|
@@ -7461,8 +7495,8 @@ const Zl = (n) => {
|
|
|
7461
7495
|
throw new Error(
|
|
7462
7496
|
`Voice session cannot connect from status ${e.status}`
|
|
7463
7497
|
);
|
|
7464
|
-
const t =
|
|
7465
|
-
return
|
|
7498
|
+
const t = Kl(e);
|
|
7499
|
+
return Vt(t.url, {
|
|
7466
7500
|
path: t.path,
|
|
7467
7501
|
transports: ["websocket"],
|
|
7468
7502
|
reconnection: !1,
|
|
@@ -7471,15 +7505,15 @@ const Zl = (n) => {
|
|
|
7471
7505
|
token: n.customerInteractionSession.accessToken
|
|
7472
7506
|
}
|
|
7473
7507
|
});
|
|
7474
|
-
},
|
|
7508
|
+
}, Jl = (n) => new Promise((e, t) => {
|
|
7475
7509
|
const r = setTimeout(() => {
|
|
7476
7510
|
i(), t(
|
|
7477
|
-
new
|
|
7511
|
+
new st(
|
|
7478
7512
|
"connection_timed_out",
|
|
7479
7513
|
"Voice connection timed out"
|
|
7480
7514
|
)
|
|
7481
7515
|
);
|
|
7482
|
-
},
|
|
7516
|
+
}, Fl), i = () => {
|
|
7483
7517
|
clearTimeout(r), n.off("connect", a), n.off("connect_error", s);
|
|
7484
7518
|
}, a = () => {
|
|
7485
7519
|
i(), e();
|
|
@@ -7487,13 +7521,13 @@ const Zl = (n) => {
|
|
|
7487
7521
|
i(), t(o);
|
|
7488
7522
|
};
|
|
7489
7523
|
n.once("connect", a), n.once("connect_error", s), n.connect();
|
|
7490
|
-
}),
|
|
7524
|
+
}), Ql = (n) => {
|
|
7491
7525
|
const e = n.error?.code ?? "VOICE_OPERATION_FAILED", t = n.error?.message;
|
|
7492
7526
|
return new Error(t ? `${e}: ${t}` : e);
|
|
7493
|
-
},
|
|
7527
|
+
}, Bt = (n, e, t) => new Promise((r, i) => {
|
|
7494
7528
|
const a = setTimeout(
|
|
7495
7529
|
() => i(new Error(`${e} timed out`)),
|
|
7496
|
-
|
|
7530
|
+
Dl
|
|
7497
7531
|
);
|
|
7498
7532
|
n.emit(e, t, (s) => {
|
|
7499
7533
|
clearTimeout(a);
|
|
@@ -7503,13 +7537,13 @@ const Zl = (n) => {
|
|
|
7503
7537
|
r(o);
|
|
7504
7538
|
return;
|
|
7505
7539
|
}
|
|
7506
|
-
i(
|
|
7540
|
+
i(Ql(o));
|
|
7507
7541
|
return;
|
|
7508
7542
|
}
|
|
7509
7543
|
r(o);
|
|
7510
7544
|
});
|
|
7511
|
-
}),
|
|
7512
|
-
const r = await
|
|
7545
|
+
}), $l = async (n, e, t) => {
|
|
7546
|
+
const r = await Bt(n, e.websocket.connectEvent, {
|
|
7513
7547
|
voiceSessionId: e.voiceSessionId,
|
|
7514
7548
|
client: {
|
|
7515
7549
|
protocolVersion: Un,
|
|
@@ -7520,35 +7554,35 @@ const Zl = (n) => {
|
|
|
7520
7554
|
});
|
|
7521
7555
|
if (r.voiceSessionId !== e.voiceSessionId || r.protocol !== e.websocket.eventProtocol || r.turnDetection !== "server_vad" || r.protocol !== "lola-voice-v5")
|
|
7522
7556
|
throw new Error("Invalid voice.connect acknowledgement");
|
|
7523
|
-
},
|
|
7557
|
+
}, ed = async (n, e, t) => !n?.connected || !e ? !1 : (await Bt(n, e.websocket.disconnectEvent, {
|
|
7524
7558
|
voiceSessionId: e.voiceSessionId,
|
|
7525
7559
|
reason: t
|
|
7526
|
-
}), !0),
|
|
7560
|
+
}), !0), td = (n, e, t) => {
|
|
7527
7561
|
if (!ke(n) || !ke(n.event))
|
|
7528
7562
|
throw new Error("Invalid voice.event envelope");
|
|
7529
7563
|
if (n.contractVersion !== Un || n.protocol !== e.websocket.eventProtocol || n.voiceSessionId !== e.voiceSessionId || n.sequence !== t)
|
|
7530
7564
|
throw new Error("Invalid voice.event envelope");
|
|
7531
7565
|
const r = n.event.type;
|
|
7532
|
-
if (typeof r != "string" || !
|
|
7566
|
+
if (typeof r != "string" || !Zl.has(r))
|
|
7533
7567
|
throw new Error("Unsupported voice provider event");
|
|
7534
7568
|
return { type: r, event: n.event };
|
|
7535
|
-
},
|
|
7536
|
-
const t =
|
|
7569
|
+
}, nd = async (n, e) => {
|
|
7570
|
+
const t = q.getState().currentThreadId;
|
|
7537
7571
|
try {
|
|
7538
|
-
return await
|
|
7572
|
+
return await kr(n, e, t);
|
|
7539
7573
|
} catch (r) {
|
|
7540
7574
|
if (!(r instanceof Wn) || r.status !== 409) throw r;
|
|
7541
|
-
const
|
|
7542
|
-
if (!
|
|
7575
|
+
const a = (r.code === "VOICE_SESSION_ACTIVE" && typeof r.details?.activeVoiceSessionId == "string" && Rr.test(r.details.activeVoiceSessionId) ? r.details.activeVoiceSessionId : void 0) ?? r.message.match(Rr)?.[0];
|
|
7576
|
+
if (!a) throw r;
|
|
7543
7577
|
return await De(
|
|
7544
7578
|
n,
|
|
7545
7579
|
e,
|
|
7546
|
-
|
|
7580
|
+
a,
|
|
7547
7581
|
"replace_stale_session"
|
|
7548
|
-
),
|
|
7582
|
+
), kr(n, e, t);
|
|
7549
7583
|
}
|
|
7550
|
-
},
|
|
7551
|
-
const t = new
|
|
7584
|
+
}, Ot = gi((n, e) => {
|
|
7585
|
+
const t = new El();
|
|
7552
7586
|
let r = !1, i = null, a = null, s = null, o = null, c = 0, l = 0, d = null, u = null, f = 0, h = 0;
|
|
7553
7587
|
const w = /* @__PURE__ */ new Set();
|
|
7554
7588
|
let p = !1, b = !0, A = 0, C = !1;
|
|
@@ -7591,11 +7625,11 @@ const Zl = (n) => {
|
|
|
7591
7625
|
});
|
|
7592
7626
|
a = I, c = Math.max(
|
|
7593
7627
|
c,
|
|
7594
|
-
performance.now() +
|
|
7628
|
+
performance.now() + Tr
|
|
7595
7629
|
), n({ assistantResponseInProgress: !0 });
|
|
7596
7630
|
const R = t.playPcm16(async () => v, {
|
|
7597
7631
|
sampleRate: ve,
|
|
7598
|
-
jitterBufferMs:
|
|
7632
|
+
jitterBufferMs: Tr,
|
|
7599
7633
|
onStarted: () => {
|
|
7600
7634
|
e().generation === T && (we.dispatch({
|
|
7601
7635
|
type: "playback-started",
|
|
@@ -7630,7 +7664,7 @@ const Zl = (n) => {
|
|
|
7630
7664
|
const v = d, R = u, L = f;
|
|
7631
7665
|
x();
|
|
7632
7666
|
const m = e();
|
|
7633
|
-
v && R && m.socket?.connected && m.session &&
|
|
7667
|
+
v && R && m.socket?.connected && m.session && Bt(m.socket, "voice.playback.interrupt", {
|
|
7634
7668
|
voiceSessionId: m.session.voiceSessionId,
|
|
7635
7669
|
responseId: v,
|
|
7636
7670
|
itemId: R,
|
|
@@ -7650,7 +7684,7 @@ const Zl = (n) => {
|
|
|
7650
7684
|
});
|
|
7651
7685
|
break;
|
|
7652
7686
|
case "conversation.item.input_audio_transcription.updated": {
|
|
7653
|
-
const v =
|
|
7687
|
+
const v = At(k, !0);
|
|
7654
7688
|
n({
|
|
7655
7689
|
customerMessageTranscript: v,
|
|
7656
7690
|
customerMessageTranscriptVisible: !!v
|
|
@@ -7658,7 +7692,7 @@ const Zl = (n) => {
|
|
|
7658
7692
|
break;
|
|
7659
7693
|
}
|
|
7660
7694
|
case "conversation.item.input_audio_transcription.completed": {
|
|
7661
|
-
const v =
|
|
7695
|
+
const v = At(k, !0);
|
|
7662
7696
|
n({
|
|
7663
7697
|
customerMessageTranscript: v,
|
|
7664
7698
|
customerMessageTranscriptVisible: !!v
|
|
@@ -7681,10 +7715,10 @@ const Zl = (n) => {
|
|
|
7681
7715
|
if (v && w.has(v) || d && v && v !== d)
|
|
7682
7716
|
break;
|
|
7683
7717
|
!d && v && (d = v), typeof k.item_id == "string" && (u = k.item_id);
|
|
7684
|
-
const R =
|
|
7685
|
-
if (l += R.byteLength, l >
|
|
7718
|
+
const R = ql(k);
|
|
7719
|
+
if (l += R.byteLength, l > Bl)
|
|
7686
7720
|
throw new Error("Voice audio response is too large");
|
|
7687
|
-
if (P(I), c = Math.max(performance.now(), c) + R.byteLength / 2 / ve * 1e3, c - performance.now() >
|
|
7721
|
+
if (P(I), c = Math.max(performance.now(), c) + R.byteLength / 2 / ve * 1e3, c - performance.now() > Wl)
|
|
7688
7722
|
throw new Error("Voice audio buffer is too large");
|
|
7689
7723
|
n({ status: "speaking", assistantResponseInProgress: !0 }), a.enqueue(R);
|
|
7690
7724
|
break;
|
|
@@ -7693,7 +7727,7 @@ const Zl = (n) => {
|
|
|
7693
7727
|
const v = qe(k);
|
|
7694
7728
|
if (v && w.has(v) || d && v && v !== d)
|
|
7695
7729
|
break;
|
|
7696
|
-
const R =
|
|
7730
|
+
const R = At(k);
|
|
7697
7731
|
n((L) => ({
|
|
7698
7732
|
assistantMessageTranscript: L.assistantMessageTranscript + R,
|
|
7699
7733
|
assistantMessageTranscriptVisible: L.assistantMessageTranscriptVisible || !!R
|
|
@@ -7704,7 +7738,7 @@ const Zl = (n) => {
|
|
|
7704
7738
|
const v = qe(k);
|
|
7705
7739
|
if (v && w.has(v) || d && v && v !== d)
|
|
7706
7740
|
break;
|
|
7707
|
-
const R =
|
|
7741
|
+
const R = At(k, !0);
|
|
7708
7742
|
n({
|
|
7709
7743
|
assistantMessageTranscript: R,
|
|
7710
7744
|
assistantMessageTranscriptVisible: !!R
|
|
@@ -7726,7 +7760,7 @@ const Zl = (n) => {
|
|
|
7726
7760
|
break;
|
|
7727
7761
|
}
|
|
7728
7762
|
case "error": {
|
|
7729
|
-
const v =
|
|
7763
|
+
const v = Hl(k);
|
|
7730
7764
|
x(), n((R) => ({
|
|
7731
7765
|
status: R.microphoneEnabled ? "listening" : "idle",
|
|
7732
7766
|
errorMessage: v,
|
|
@@ -7811,7 +7845,7 @@ const Zl = (n) => {
|
|
|
7811
7845
|
type: "playback-started",
|
|
7812
7846
|
playbackId: v,
|
|
7813
7847
|
sampleRate: k
|
|
7814
|
-
}), R && (m =
|
|
7848
|
+
}), R && (m = Ol({
|
|
7815
7849
|
source: R,
|
|
7816
7850
|
runtime: we,
|
|
7817
7851
|
playbackId: v,
|
|
@@ -7837,7 +7871,7 @@ const Zl = (n) => {
|
|
|
7837
7871
|
L.resume(),
|
|
7838
7872
|
L.audioWorklet.addModule(cl)
|
|
7839
7873
|
]), L.state !== "running")
|
|
7840
|
-
throw new
|
|
7874
|
+
throw new st(
|
|
7841
7875
|
"microphone_blocked",
|
|
7842
7876
|
"Microphone processing was blocked"
|
|
7843
7877
|
);
|
|
@@ -7848,12 +7882,12 @@ const Zl = (n) => {
|
|
|
7848
7882
|
outputChannelCount: [1],
|
|
7849
7883
|
processorOptions: {
|
|
7850
7884
|
targetSampleRate: ve,
|
|
7851
|
-
chunkDurationMs:
|
|
7885
|
+
chunkDurationMs: Gl
|
|
7852
7886
|
}
|
|
7853
7887
|
});
|
|
7854
7888
|
let B = 1, X = 0;
|
|
7855
|
-
const K = new
|
|
7856
|
-
(Z) =>
|
|
7889
|
+
const K = new Cl(
|
|
7890
|
+
(Z) => Bt(k, I.websocket.audioAppendEvent, {
|
|
7857
7891
|
voiceSessionId: I.voiceSessionId,
|
|
7858
7892
|
...Z
|
|
7859
7893
|
}),
|
|
@@ -7874,7 +7908,7 @@ const Zl = (n) => {
|
|
|
7874
7908
|
captureStartSample: X,
|
|
7875
7909
|
sampleCount: 2400,
|
|
7876
7910
|
capturedAtMonotonicMs: performance.now(),
|
|
7877
|
-
audio:
|
|
7911
|
+
audio: jl(ee)
|
|
7878
7912
|
}), X += 2400;
|
|
7879
7913
|
}, m.port.postMessage({ type: "enabled", value: R }), E.connect(m);
|
|
7880
7914
|
const M = L.createGain();
|
|
@@ -7939,7 +7973,7 @@ const Zl = (n) => {
|
|
|
7939
7973
|
return;
|
|
7940
7974
|
}
|
|
7941
7975
|
if (await new Promise(
|
|
7942
|
-
(X) => setTimeout(X,
|
|
7976
|
+
(X) => setTimeout(X, Xl)
|
|
7943
7977
|
), !p || A !== E) {
|
|
7944
7978
|
C = !1;
|
|
7945
7979
|
return;
|
|
@@ -7968,12 +8002,12 @@ const Zl = (n) => {
|
|
|
7968
8002
|
generation: X
|
|
7969
8003
|
});
|
|
7970
8004
|
let K = null, M = null, Z = v ?? null, ee = null, re = null;
|
|
7971
|
-
const
|
|
7972
|
-
if (!
|
|
8005
|
+
const Ue = () => p && A === B && e().generation === X, He = () => {
|
|
8006
|
+
if (!Ue()) throw new S();
|
|
7973
8007
|
};
|
|
7974
8008
|
try {
|
|
7975
8009
|
if (!navigator.mediaDevices?.getUserMedia)
|
|
7976
|
-
throw new
|
|
8010
|
+
throw new st(
|
|
7977
8011
|
"microphone_unsupported",
|
|
7978
8012
|
"Microphone access is not supported in this browser"
|
|
7979
8013
|
);
|
|
@@ -7985,25 +8019,25 @@ const Zl = (n) => {
|
|
|
7985
8019
|
autoGainControl: { ideal: !0 },
|
|
7986
8020
|
sampleRate: { ideal: ve }
|
|
7987
8021
|
}
|
|
7988
|
-
}),
|
|
8022
|
+
}), He();
|
|
7989
8023
|
const ie = K.getAudioTracks().find((oe) => oe.readyState === void 0 || oe.readyState === "live");
|
|
7990
|
-
if (!ie) throw new
|
|
7991
|
-
const Me = ie.getSettings?.() ?? {},
|
|
8024
|
+
if (!ie) throw new st("microphone_blocked", "No live microphone track");
|
|
8025
|
+
const Me = ie.getSettings?.() ?? {}, je = {
|
|
7992
8026
|
...typeof Me.sampleRate == "number" ? { trackSampleRate: Me.sampleRate } : {},
|
|
7993
8027
|
contextSampleRate: ve,
|
|
7994
8028
|
echoCancellation: Me.echoCancellation === !0,
|
|
7995
8029
|
noiseSuppression: Me.noiseSuppression === !0,
|
|
7996
8030
|
autoGainControl: Me.autoGainControl === !0
|
|
7997
|
-
},
|
|
8031
|
+
}, _n = () => {
|
|
7998
8032
|
e().generation === X && W("microphone_blocked", "microphone_track_ended");
|
|
7999
8033
|
};
|
|
8000
|
-
ie.addEventListener?.("ended",
|
|
8034
|
+
ie.addEventListener?.("ended", _n, { once: !0 }), ie.addEventListener?.("mute", _n, { once: !0 }), K.getAudioTracks().forEach(
|
|
8001
8035
|
(oe) => oe.enabled = !m && E
|
|
8002
|
-
), Z ??= R ? await R() : await
|
|
8003
|
-
let
|
|
8036
|
+
), Z ??= R ? await R() : await nd(T, k), He(), M = Yl(T, Z);
|
|
8037
|
+
let qn = !1, Kn = 1;
|
|
8004
8038
|
M.on(Z.websocket.serverEvent, (oe) => {
|
|
8005
8039
|
try {
|
|
8006
|
-
const Jn =
|
|
8040
|
+
const Jn = td(
|
|
8007
8041
|
oe,
|
|
8008
8042
|
Z,
|
|
8009
8043
|
Kn
|
|
@@ -8013,14 +8047,14 @@ const Zl = (n) => {
|
|
|
8013
8047
|
W("session_failed", "invalid_event");
|
|
8014
8048
|
}
|
|
8015
8049
|
}), M.on("disconnect", (oe) => {
|
|
8016
|
-
|
|
8050
|
+
qn && te(M, oe);
|
|
8017
8051
|
}), n({ session: Z, socket: M, localStream: K });
|
|
8018
8052
|
try {
|
|
8019
|
-
await
|
|
8053
|
+
await Jl(M), He(), await $l(M, Z, je);
|
|
8020
8054
|
} catch (oe) {
|
|
8021
|
-
throw
|
|
8055
|
+
throw Qt(oe) && k.onSessionExpired(), oe;
|
|
8022
8056
|
}
|
|
8023
|
-
|
|
8057
|
+
qn = !0, He();
|
|
8024
8058
|
const Yn = await he(
|
|
8025
8059
|
K,
|
|
8026
8060
|
M,
|
|
@@ -8028,21 +8062,21 @@ const Zl = (n) => {
|
|
|
8028
8062
|
X,
|
|
8029
8063
|
!m && E
|
|
8030
8064
|
);
|
|
8031
|
-
if (ee = Yn.context, re = Yn.node,
|
|
8065
|
+
if (ee = Yn.context, re = Yn.node, He(), n({
|
|
8032
8066
|
inputAudioContext: ee,
|
|
8033
8067
|
inputAudioNode: re,
|
|
8034
8068
|
microphoneEnabled: !m && E
|
|
8035
8069
|
}), m) {
|
|
8036
8070
|
if (!await H(
|
|
8037
|
-
() =>
|
|
8071
|
+
() => bl(T, k, {
|
|
8038
8072
|
audioPath: m.path,
|
|
8039
8073
|
method: "POST",
|
|
8040
|
-
mimeType:
|
|
8074
|
+
mimeType: yl
|
|
8041
8075
|
}),
|
|
8042
8076
|
X,
|
|
8043
8077
|
m.text
|
|
8044
8078
|
)) throw new S();
|
|
8045
|
-
|
|
8079
|
+
He();
|
|
8046
8080
|
}
|
|
8047
8081
|
N(E, !1), n({ assistantResponseInProgress: !1 });
|
|
8048
8082
|
} catch (ie) {
|
|
@@ -8061,17 +8095,17 @@ const Zl = (n) => {
|
|
|
8061
8095
|
Me,
|
|
8062
8096
|
ie instanceof S ? "cancelled" : "bootstrap_failed"
|
|
8063
8097
|
);
|
|
8064
|
-
} catch (
|
|
8065
|
-
z.warn("Failed to end rejected voice session",
|
|
8098
|
+
} catch (je) {
|
|
8099
|
+
z.warn("Failed to end rejected voice session", je);
|
|
8066
8100
|
}
|
|
8067
|
-
if (!(ie instanceof S) &&
|
|
8101
|
+
if (!(ie instanceof S) && Ue()) {
|
|
8068
8102
|
z.error("Voice bootstrap failed", ie), p = !1;
|
|
8069
|
-
const
|
|
8103
|
+
const je = ie instanceof st ? ie.code : ie instanceof DOMException ? "microphone_blocked" : ie instanceof Wn ? null : "session_failed";
|
|
8070
8104
|
n({
|
|
8071
8105
|
...Fe,
|
|
8072
8106
|
status: "error",
|
|
8073
|
-
errorMessage:
|
|
8074
|
-
errorCode:
|
|
8107
|
+
errorMessage: je ? null : Ul(ie),
|
|
8108
|
+
errorCode: je,
|
|
8075
8109
|
generation: X
|
|
8076
8110
|
});
|
|
8077
8111
|
}
|
|
@@ -8116,12 +8150,12 @@ const Zl = (n) => {
|
|
|
8116
8150
|
const I = e().pendingInvitation, v = i;
|
|
8117
8151
|
if (!I || v?.commandId !== I.commandId)
|
|
8118
8152
|
throw new Error("Voice invitation is no longer available");
|
|
8119
|
-
|
|
8153
|
+
q.setState({
|
|
8120
8154
|
currentThreadId: I.conversationId
|
|
8121
|
-
}),
|
|
8155
|
+
}), q.getState().actions.setCurrentThreadMessages(I.conversationId);
|
|
8122
8156
|
try {
|
|
8123
8157
|
p = !0, b = !0, await pe(T, k, {
|
|
8124
|
-
loadSession: () =>
|
|
8158
|
+
loadSession: () => ml(T, k, I.voiceSessionId),
|
|
8125
8159
|
existingSessionId: I.voiceSessionId,
|
|
8126
8160
|
scriptedIntro: {
|
|
8127
8161
|
path: I.introAudioPath,
|
|
@@ -8159,7 +8193,7 @@ const Zl = (n) => {
|
|
|
8159
8193
|
}), n({ microphoneEnabled: !1 });
|
|
8160
8194
|
try {
|
|
8161
8195
|
if (!await ne(
|
|
8162
|
-
(B) =>
|
|
8196
|
+
(B) => wl(
|
|
8163
8197
|
T,
|
|
8164
8198
|
k,
|
|
8165
8199
|
{
|
|
@@ -8199,7 +8233,7 @@ const Zl = (n) => {
|
|
|
8199
8233
|
i = null, I?.reject(new Error("Voice invitation was dismissed"));
|
|
8200
8234
|
let v = !1;
|
|
8201
8235
|
try {
|
|
8202
|
-
v = await
|
|
8236
|
+
v = await ed(
|
|
8203
8237
|
k.socket,
|
|
8204
8238
|
k.session,
|
|
8205
8239
|
T
|
|
@@ -8222,7 +8256,7 @@ const Zl = (n) => {
|
|
|
8222
8256
|
}
|
|
8223
8257
|
}
|
|
8224
8258
|
};
|
|
8225
|
-
}),
|
|
8259
|
+
}), qu = () => Ot((n) => n.actions);
|
|
8226
8260
|
class Di extends Error {
|
|
8227
8261
|
constructor(e, t) {
|
|
8228
8262
|
super(t), this.status = e;
|
|
@@ -8242,12 +8276,12 @@ const Hn = async (n, e, t, r) => {
|
|
|
8242
8276
|
`Telegram link request failed: ${i.status} ${i.statusText}`
|
|
8243
8277
|
);
|
|
8244
8278
|
return await i.json();
|
|
8245
|
-
},
|
|
8279
|
+
}, rd = (n) => {
|
|
8246
8280
|
const e = new URL(n.deepLink), t = decodeURIComponent(e.pathname.slice(1));
|
|
8247
8281
|
if (e.protocol !== "https:" || e.hostname !== "t.me" || e.username || e.password || !t || t.toLowerCase() !== n.botUsername.toLowerCase() || !e.searchParams.get("start")?.startsWith("link_"))
|
|
8248
8282
|
throw new TypeError("Invalid Telegram deep link");
|
|
8249
8283
|
return n;
|
|
8250
|
-
},
|
|
8284
|
+
}, id = async (n, e, t) => rd(
|
|
8251
8285
|
await Hn(
|
|
8252
8286
|
n,
|
|
8253
8287
|
e,
|
|
@@ -8257,16 +8291,16 @@ const Hn = async (n, e, t, r) => {
|
|
|
8257
8291
|
headers: { "Idempotency-Key": `telegram-link:${t}` }
|
|
8258
8292
|
}
|
|
8259
8293
|
)
|
|
8260
|
-
),
|
|
8294
|
+
), ad = (n, e, t) => Hn(
|
|
8261
8295
|
n,
|
|
8262
8296
|
e,
|
|
8263
8297
|
`/chat/telegram-link/challenges/${encodeURIComponent(t)}`
|
|
8264
|
-
),
|
|
8298
|
+
), sd = (n, e, t) => Hn(
|
|
8265
8299
|
n,
|
|
8266
8300
|
e,
|
|
8267
8301
|
`/chat/telegram-link/challenges/${encodeURIComponent(t)}/confirm`,
|
|
8268
8302
|
{ method: "POST" }
|
|
8269
|
-
),
|
|
8303
|
+
), od = async (n, e, t) => {
|
|
8270
8304
|
const r = await fetch(
|
|
8271
8305
|
`${Oe}/chat/telegram-link/challenges/${encodeURIComponent(t)}`,
|
|
8272
8306
|
{
|
|
@@ -8295,14 +8329,14 @@ const Hn = async (n, e, t, r) => {
|
|
|
8295
8329
|
"sw",
|
|
8296
8330
|
"so",
|
|
8297
8331
|
"ar"
|
|
8298
|
-
],
|
|
8299
|
-
function
|
|
8332
|
+
], cd = new Set(Bi), ld = /^(?:(?:[a-z]{2,3}(?:-[a-z]{3}){0,3}|[a-z]{4}|[a-z]{5,8})(?:-[a-z]{4})?(?:-(?:[a-z]{2}|[0-9]{3}))?(?:-(?:[a-z0-9]{5,8}|[0-9][a-z0-9]{3}))*(?:-[0-9a-wy-z](?:-[a-z0-9]{2,8})+)*(?:-x(?:-[a-z0-9]{1,8})+)?|x(?:-[a-z0-9]{1,8})+)$/i;
|
|
8333
|
+
function dd(n) {
|
|
8300
8334
|
const e = n?.trim().replace(/_/g, "-");
|
|
8301
|
-
if (!e || !
|
|
8335
|
+
if (!e || !ld.test(e)) return "en";
|
|
8302
8336
|
const t = e.split("-", 1)[0].toLowerCase();
|
|
8303
|
-
return
|
|
8337
|
+
return cd.has(t) ? t : "en";
|
|
8304
8338
|
}
|
|
8305
|
-
const
|
|
8339
|
+
const ud = {
|
|
8306
8340
|
app: { restart: "Restart Lola" },
|
|
8307
8341
|
launcher: { open: "Open Lola" },
|
|
8308
8342
|
widget: {
|
|
@@ -8384,8 +8418,8 @@ const ld = {
|
|
|
8384
8418
|
confirmTelegram: "Confirm Telegram",
|
|
8385
8419
|
confirming: "Confirming…"
|
|
8386
8420
|
}
|
|
8387
|
-
},
|
|
8388
|
-
en:
|
|
8421
|
+
}, hd = {
|
|
8422
|
+
en: ud,
|
|
8389
8423
|
ru: {
|
|
8390
8424
|
app: { restart: "Перезапустить Lola" },
|
|
8391
8425
|
launcher: { open: "Открыть Lola" },
|
|
@@ -9382,7 +9416,7 @@ const ld = {
|
|
|
9382
9416
|
confirming: "جارٍ التأكيد…"
|
|
9383
9417
|
}
|
|
9384
9418
|
}
|
|
9385
|
-
},
|
|
9419
|
+
}, pd = (n) => {
|
|
9386
9420
|
const e = {}, t = n;
|
|
9387
9421
|
for (const r of Object.keys(t)) {
|
|
9388
9422
|
const i = t[r];
|
|
@@ -9394,9 +9428,9 @@ const ld = {
|
|
|
9394
9428
|
return e;
|
|
9395
9429
|
}, Wi = {};
|
|
9396
9430
|
for (const n of Bi)
|
|
9397
|
-
Wi[n] =
|
|
9431
|
+
Wi[n] = pd(hd[n]);
|
|
9398
9432
|
const Xi = (n) => {
|
|
9399
|
-
const e =
|
|
9433
|
+
const e = dd(n);
|
|
9400
9434
|
return {
|
|
9401
9435
|
locale: e,
|
|
9402
9436
|
direction: e === "ar" ? "rtl" : "ltr",
|
|
@@ -9408,16 +9442,16 @@ const Xi = (n) => {
|
|
|
9408
9442
|
}, i) : i;
|
|
9409
9443
|
}
|
|
9410
9444
|
};
|
|
9411
|
-
}, Zi =
|
|
9412
|
-
function
|
|
9445
|
+
}, Zi = Ht(Xi());
|
|
9446
|
+
function pt() {
|
|
9413
9447
|
return Tn(Zi);
|
|
9414
9448
|
}
|
|
9415
|
-
const Ui =
|
|
9449
|
+
const Ui = Ht(null), gd = ({
|
|
9416
9450
|
children: n,
|
|
9417
9451
|
config: e,
|
|
9418
9452
|
api: t
|
|
9419
9453
|
}) => {
|
|
9420
|
-
const { t: r } =
|
|
9454
|
+
const { t: r } = pt(), [i, a] = Y(!1), [s, o] = Y(!1), [c, l] = Y(!1), [d, u] = Y(!1), [f, h] = Y(null), w = Oo(), [p, b] = Y(null), [A, C] = Y("idle"), [S, N] = Y(
|
|
9421
9455
|
null
|
|
9422
9456
|
), [x, y] = Y(null), P = J(0), F = J(!1), [D, V] = Y(
|
|
9423
9457
|
() => !!e.hideOpenButton
|
|
@@ -9429,15 +9463,15 @@ const Ui = Ut(null), hd = ({
|
|
|
9429
9463
|
), ne = J(null), he = !e.hideOpenButton || !D, [te, pe] = Y(0), [T, k] = Y(
|
|
9430
9464
|
() => window.innerWidth <= yr
|
|
9431
9465
|
);
|
|
9432
|
-
lc(e, t),
|
|
9433
|
-
|
|
9434
|
-
}, [t, e]),
|
|
9466
|
+
lc(e, t), _(() => {
|
|
9467
|
+
Ot.getState().actions.updateSession(e, t).catch((M) => z.warn("Voice session renewal failed", M));
|
|
9468
|
+
}, [t, e]), _(() => {
|
|
9435
9469
|
const M = () => {
|
|
9436
9470
|
const Z = window.innerWidth <= yr;
|
|
9437
9471
|
k(Z), Z || o(!1);
|
|
9438
9472
|
};
|
|
9439
9473
|
return window.addEventListener("resize", M), () => window.removeEventListener("resize", M);
|
|
9440
|
-
}, []),
|
|
9474
|
+
}, []), _(() => (t.registerSetOpen(H), () => {
|
|
9441
9475
|
t.registerSetOpen(null);
|
|
9442
9476
|
}), [t, H]);
|
|
9443
9477
|
const I = be(
|
|
@@ -9446,10 +9480,10 @@ const Ui = Ut(null), hd = ({
|
|
|
9446
9480
|
const ee = window.open("about:blank", "_blank");
|
|
9447
9481
|
ee && (ee.opener = null), C("creating"), N(null);
|
|
9448
9482
|
try {
|
|
9449
|
-
const re = await
|
|
9483
|
+
const re = await id(
|
|
9450
9484
|
e,
|
|
9451
9485
|
t,
|
|
9452
|
-
[M.commandId, P.current || null].filter((
|
|
9486
|
+
[M.commandId, P.current || null].filter((Ue) => Ue !== null).join(":")
|
|
9453
9487
|
);
|
|
9454
9488
|
ee && !ee.closed && (ee.location.href = re.deepLink), y({
|
|
9455
9489
|
challengeId: re.id,
|
|
@@ -9465,7 +9499,7 @@ const Ui = Ut(null), hd = ({
|
|
|
9465
9499
|
return;
|
|
9466
9500
|
}
|
|
9467
9501
|
C("confirming"), N(null);
|
|
9468
|
-
const Z = await
|
|
9502
|
+
const Z = await ad(
|
|
9469
9503
|
e,
|
|
9470
9504
|
t,
|
|
9471
9505
|
x.challengeId
|
|
@@ -9475,7 +9509,7 @@ const Ui = Ut(null), hd = ({
|
|
|
9475
9509
|
return;
|
|
9476
9510
|
}
|
|
9477
9511
|
if (Z.challengeStatus === "PENDING_CONFIRMATION") {
|
|
9478
|
-
if (!(await
|
|
9512
|
+
if (!(await sd(
|
|
9479
9513
|
e,
|
|
9480
9514
|
t,
|
|
9481
9515
|
x.challengeId
|
|
@@ -9494,14 +9528,14 @@ const Ui = Ut(null), hd = ({
|
|
|
9494
9528
|
},
|
|
9495
9529
|
[t, e, x]
|
|
9496
9530
|
), v = be((M) => {
|
|
9497
|
-
const { currentThreadId: Z, currentThreadMessages: ee, pendingCustomerMessage: re } =
|
|
9531
|
+
const { currentThreadId: Z, currentThreadMessages: ee, pendingCustomerMessage: re } = q.getState(), Ue = re && re.conversationId === Z;
|
|
9498
9532
|
b({
|
|
9499
9533
|
context: M,
|
|
9500
9534
|
threadId: Z,
|
|
9501
|
-
afterMessageId:
|
|
9535
|
+
afterMessageId: Ue ? re.id : ee.at(-1)?.id ?? null
|
|
9502
9536
|
});
|
|
9503
9537
|
}, []);
|
|
9504
|
-
|
|
9538
|
+
_(() => t.commandRuntime.setInternalHandlers({
|
|
9505
9539
|
setAssistantVisible: (M) => {
|
|
9506
9540
|
V(!M), M || a(!1);
|
|
9507
9541
|
},
|
|
@@ -9515,9 +9549,9 @@ const Ui = Ut(null), hd = ({
|
|
|
9515
9549
|
},
|
|
9516
9550
|
showCta: v,
|
|
9517
9551
|
connectTelegram: I,
|
|
9518
|
-
speakText: (M) =>
|
|
9552
|
+
speakText: (M) => Ot.getState().actions.speakText(e, t, M),
|
|
9519
9553
|
startVoiceConversation: async (M) => {
|
|
9520
|
-
H(!0), W(de.voice), await
|
|
9554
|
+
H(!0), W(de.voice), await Ot.getState().actions.offerConversation(M);
|
|
9521
9555
|
}
|
|
9522
9556
|
}), [t, e, I, W, H, v]);
|
|
9523
9557
|
const R = p && p.threadId === w ? p.context : null, L = p && p.threadId === w ? p.afterMessageId : null, m = be(async () => {
|
|
@@ -9532,7 +9566,7 @@ const Ui = Ut(null), hd = ({
|
|
|
9532
9566
|
}
|
|
9533
9567
|
}
|
|
9534
9568
|
}, [t.commandRuntime, R, x]), E = be(() => {
|
|
9535
|
-
x &&
|
|
9569
|
+
x && od(
|
|
9536
9570
|
e,
|
|
9537
9571
|
t,
|
|
9538
9572
|
x.challengeId
|
|
@@ -9542,7 +9576,7 @@ const Ui = Ut(null), hd = ({
|
|
|
9542
9576
|
}, [t, e, x]), B = be(() => {
|
|
9543
9577
|
F.current || E();
|
|
9544
9578
|
}, [E]);
|
|
9545
|
-
|
|
9579
|
+
_(() => {
|
|
9546
9580
|
p && p.threadId !== w && E();
|
|
9547
9581
|
}, [p, E, w]);
|
|
9548
9582
|
const X = A === "creating" ? r("cta.preparingLink") : A === "awaiting_confirmation" ? r("cta.confirmTelegram") : A === "confirming" ? r("cta.confirming") : R?.label ?? null, K = {
|
|
@@ -9581,17 +9615,17 @@ function jn() {
|
|
|
9581
9615
|
throw new Error("ChatWidget components must be used inside <ChatWidget>");
|
|
9582
9616
|
return n;
|
|
9583
9617
|
}
|
|
9584
|
-
const
|
|
9618
|
+
const fd = (n) => {
|
|
9585
9619
|
if (!n || typeof n != "object") return !1;
|
|
9586
9620
|
const e = n;
|
|
9587
9621
|
return typeof e.id == "string" && e.id.trim().length > 0 && typeof e.label == "string" && e.label.trim().length > 0;
|
|
9588
|
-
},
|
|
9622
|
+
}, md = (n) => {
|
|
9589
9623
|
const e = n.data?.commands;
|
|
9590
9624
|
if (!Array.isArray(e)) return null;
|
|
9591
9625
|
for (const t of e) {
|
|
9592
9626
|
if (!t || typeof t != "object") continue;
|
|
9593
9627
|
const r = t;
|
|
9594
|
-
if (!(r.type !== "ask_choice" || typeof r.inputRequestId != "string" || !r.inputRequestId.trim() || !Array.isArray(r.options) || r.options.length < 2 || !r.options.every(
|
|
9628
|
+
if (!(r.type !== "ask_choice" || typeof r.inputRequestId != "string" || !r.inputRequestId.trim() || !Array.isArray(r.options) || r.options.length < 2 || !r.options.every(fd)))
|
|
9595
9629
|
return {
|
|
9596
9630
|
type: "ask_choice",
|
|
9597
9631
|
inputRequestId: r.inputRequestId,
|
|
@@ -9599,13 +9633,13 @@ const pd = (n) => {
|
|
|
9599
9633
|
};
|
|
9600
9634
|
}
|
|
9601
9635
|
return null;
|
|
9602
|
-
},
|
|
9636
|
+
}, bd = (n) => {
|
|
9603
9637
|
for (let e = n.length - 1; e >= 0; e -= 1) {
|
|
9604
|
-
const t =
|
|
9638
|
+
const t = md(n[e]);
|
|
9605
9639
|
if (t) return t;
|
|
9606
9640
|
}
|
|
9607
9641
|
return null;
|
|
9608
|
-
}, Ie = 52, ae = 16, Hi = 240,
|
|
9642
|
+
}, Ie = 52, ae = 16, Hi = 240, wd = 360, ji = 320, yd = 680;
|
|
9609
9643
|
function Be() {
|
|
9610
9644
|
const n = window.visualViewport;
|
|
9611
9645
|
return {
|
|
@@ -9613,8 +9647,8 @@ function Be() {
|
|
|
9613
9647
|
height: n?.height || window.innerHeight
|
|
9614
9648
|
};
|
|
9615
9649
|
}
|
|
9616
|
-
function
|
|
9617
|
-
return
|
|
9650
|
+
function vd(n) {
|
|
9651
|
+
return Wt(
|
|
9618
9652
|
{
|
|
9619
9653
|
x: n.width - Ie - 24,
|
|
9620
9654
|
y: n.height - Ie - 24
|
|
@@ -9622,29 +9656,29 @@ function wd(n) {
|
|
|
9622
9656
|
n
|
|
9623
9657
|
);
|
|
9624
9658
|
}
|
|
9625
|
-
function
|
|
9659
|
+
function Wt(n, e) {
|
|
9626
9660
|
return {
|
|
9627
|
-
x:
|
|
9661
|
+
x: Xe(
|
|
9628
9662
|
n.x,
|
|
9629
9663
|
ae,
|
|
9630
9664
|
e.width - ae - Ie
|
|
9631
9665
|
),
|
|
9632
|
-
y:
|
|
9666
|
+
y: Xe(
|
|
9633
9667
|
n.y,
|
|
9634
9668
|
ae,
|
|
9635
9669
|
e.height - ae - Ie
|
|
9636
9670
|
)
|
|
9637
9671
|
};
|
|
9638
9672
|
}
|
|
9639
|
-
function
|
|
9673
|
+
function ot(n, e) {
|
|
9640
9674
|
const t = Math.max(1, e.width - ae * 2), r = Math.max(1, e.height - ae * 2), i = Nr(n.width, Hi, t), a = Nr(
|
|
9641
9675
|
n.height,
|
|
9642
9676
|
ji,
|
|
9643
9677
|
r
|
|
9644
9678
|
);
|
|
9645
9679
|
return {
|
|
9646
|
-
x:
|
|
9647
|
-
y:
|
|
9680
|
+
x: Xe(n.x, ae, e.width - ae - i),
|
|
9681
|
+
y: Xe(
|
|
9648
9682
|
n.y,
|
|
9649
9683
|
ae,
|
|
9650
9684
|
e.height - ae - a
|
|
@@ -9653,9 +9687,9 @@ function st(n, e) {
|
|
|
9653
9687
|
height: a
|
|
9654
9688
|
};
|
|
9655
9689
|
}
|
|
9656
|
-
function
|
|
9690
|
+
function _i(n, e, t) {
|
|
9657
9691
|
const r = n.x + Ie / 2 > t.width / 2, i = n.y + Ie / 2 > t.height / 2;
|
|
9658
|
-
return
|
|
9692
|
+
return ot(
|
|
9659
9693
|
{
|
|
9660
9694
|
x: r ? n.x + Ie - e.width : n.x,
|
|
9661
9695
|
y: i ? n.y + Ie - e.height : n.y,
|
|
@@ -9665,9 +9699,9 @@ function qi(n, e, t) {
|
|
|
9665
9699
|
t
|
|
9666
9700
|
);
|
|
9667
9701
|
}
|
|
9668
|
-
function
|
|
9669
|
-
const i = n.x + n.width, a = n.y + n.height, s = Math.max(1, i - ae), o = Math.max(1, a - ae), c = Math.min(Hi, s), l = Math.min(ji, o), d = t === "left" || t === "corner" ?
|
|
9670
|
-
return
|
|
9702
|
+
function Cd(n, e, t, r) {
|
|
9703
|
+
const i = n.x + n.width, a = n.y + n.height, s = Math.max(1, i - ae), o = Math.max(1, a - ae), c = Math.min(Hi, s), l = Math.min(ji, o), d = t === "left" || t === "corner" ? Xe(n.x + e.x, ae, i - c) : n.x, u = t === "top" || t === "corner" ? Xe(n.y + e.y, ae, a - l) : n.y;
|
|
9704
|
+
return ot(
|
|
9671
9705
|
{
|
|
9672
9706
|
x: d,
|
|
9673
9707
|
y: u,
|
|
@@ -9678,61 +9712,61 @@ function yd(n, e, t, r) {
|
|
|
9678
9712
|
);
|
|
9679
9713
|
}
|
|
9680
9714
|
function Nr(n, e, t) {
|
|
9681
|
-
return
|
|
9715
|
+
return Xe(n, Math.min(e, t), t);
|
|
9682
9716
|
}
|
|
9683
|
-
function
|
|
9717
|
+
function Xe(n, e, t) {
|
|
9684
9718
|
return t < e ? Math.max(0, t) : Math.min(t, Math.max(e, n));
|
|
9685
9719
|
}
|
|
9686
|
-
const
|
|
9687
|
-
function
|
|
9720
|
+
const qi = "bridge-chat-widget-ui";
|
|
9721
|
+
function Id() {
|
|
9688
9722
|
try {
|
|
9689
|
-
const n = localStorage.getItem(
|
|
9723
|
+
const n = localStorage.getItem(qi);
|
|
9690
9724
|
if (!n) return null;
|
|
9691
9725
|
const e = JSON.parse(n);
|
|
9692
|
-
if (!
|
|
9693
|
-
if (
|
|
9726
|
+
if (!Xt(e)) return null;
|
|
9727
|
+
if (kt(e.width) && kt(e.height))
|
|
9694
9728
|
return {
|
|
9695
9729
|
version: 2,
|
|
9696
9730
|
panel: { width: e.width, height: e.height }
|
|
9697
9731
|
};
|
|
9698
|
-
if (e.version !== 2 || !
|
|
9732
|
+
if (e.version !== 2 || !Xt(e.panel)) return null;
|
|
9699
9733
|
const t = e.panel;
|
|
9700
|
-
return !
|
|
9734
|
+
return !kt(t.width) || !kt(t.height) || !Ad(t) || e.launcher !== void 0 && !kd(e.launcher) ? null : e;
|
|
9701
9735
|
} catch {
|
|
9702
9736
|
return null;
|
|
9703
9737
|
}
|
|
9704
9738
|
}
|
|
9705
9739
|
function Pr(n) {
|
|
9706
9740
|
try {
|
|
9707
|
-
localStorage.setItem(
|
|
9741
|
+
localStorage.setItem(qi, JSON.stringify(n));
|
|
9708
9742
|
} catch {
|
|
9709
9743
|
}
|
|
9710
9744
|
}
|
|
9711
|
-
function
|
|
9745
|
+
function Xt(n) {
|
|
9712
9746
|
return typeof n == "object" && n !== null;
|
|
9713
9747
|
}
|
|
9714
|
-
function
|
|
9748
|
+
function kt(n) {
|
|
9715
9749
|
return typeof n == "number" && Number.isFinite(n) && n > 0;
|
|
9716
9750
|
}
|
|
9717
|
-
function
|
|
9718
|
-
if (!
|
|
9751
|
+
function Ad(n) {
|
|
9752
|
+
if (!Xt(n)) return !1;
|
|
9719
9753
|
const e = n.x !== void 0, t = n.y !== void 0;
|
|
9720
|
-
return e !== t ? !1 : !e ||
|
|
9754
|
+
return e !== t ? !1 : !e || Zt(n.x) && Zt(n.y);
|
|
9721
9755
|
}
|
|
9722
|
-
function
|
|
9723
|
-
return
|
|
9756
|
+
function kd(n) {
|
|
9757
|
+
return Xt(n) && Zt(n.x) && Zt(n.y);
|
|
9724
9758
|
}
|
|
9725
|
-
function
|
|
9759
|
+
function Zt(n) {
|
|
9726
9760
|
return typeof n == "number" && Number.isFinite(n);
|
|
9727
9761
|
}
|
|
9728
|
-
const Vr = 5, Or = 16,
|
|
9762
|
+
const Vr = 5, Or = 16, xd = {
|
|
9729
9763
|
launcher: "grabbing",
|
|
9730
9764
|
panel: "grabbing",
|
|
9731
9765
|
top: "ns-resize",
|
|
9732
9766
|
left: "ew-resize",
|
|
9733
9767
|
northWestCorner: "nwse-resize"
|
|
9734
9768
|
};
|
|
9735
|
-
function
|
|
9769
|
+
function Sd({
|
|
9736
9770
|
open: n,
|
|
9737
9771
|
onOpenChange: e,
|
|
9738
9772
|
isMobile: t,
|
|
@@ -9743,7 +9777,7 @@ function kd({
|
|
|
9743
9777
|
unreadIndicator: o,
|
|
9744
9778
|
children: c
|
|
9745
9779
|
}) {
|
|
9746
|
-
const { direction: l, locale: d, t: u } =
|
|
9780
|
+
const { direction: l, locale: d, t: u } = pt(), [f] = Y(Td), [h, w] = Y(f.launcher), [p, b] = Y(f.panel), [A, C] = Y(null), S = J({ launcher: h, panel: p }), N = J({ launcher: h, panel: p }), x = J(!1), y = J(!1), P = J(null), F = J(!1), D = J(null), V = J(null), W = J(r), H = be((m, E = !0) => {
|
|
9747
9781
|
S.current = { ...S.current, launcher: m }, E && (N.current = {
|
|
9748
9782
|
...N.current,
|
|
9749
9783
|
launcher: m
|
|
@@ -9765,7 +9799,7 @@ function kd({
|
|
|
9765
9799
|
switch (m) {
|
|
9766
9800
|
case "launcher":
|
|
9767
9801
|
H(
|
|
9768
|
-
|
|
9802
|
+
Wt(
|
|
9769
9803
|
{
|
|
9770
9804
|
x: E.x + X.x,
|
|
9771
9805
|
y: E.y + X.y
|
|
@@ -9776,7 +9810,7 @@ function kd({
|
|
|
9776
9810
|
return;
|
|
9777
9811
|
case "panel":
|
|
9778
9812
|
ne(
|
|
9779
|
-
|
|
9813
|
+
ot(
|
|
9780
9814
|
{
|
|
9781
9815
|
...B,
|
|
9782
9816
|
x: B.x + X.x,
|
|
@@ -9788,7 +9822,7 @@ function kd({
|
|
|
9788
9822
|
return;
|
|
9789
9823
|
default:
|
|
9790
9824
|
ne(
|
|
9791
|
-
|
|
9825
|
+
Cd(
|
|
9792
9826
|
B,
|
|
9793
9827
|
X,
|
|
9794
9828
|
m === "northWestCorner" ? "corner" : m,
|
|
@@ -9799,10 +9833,10 @@ function kd({
|
|
|
9799
9833
|
},
|
|
9800
9834
|
[H, ne]
|
|
9801
9835
|
);
|
|
9802
|
-
|
|
9836
|
+
_(() => {
|
|
9803
9837
|
if (!A) return;
|
|
9804
9838
|
const m = document.body.style.cursor, E = document.body.style.userSelect;
|
|
9805
|
-
document.body.style.cursor =
|
|
9839
|
+
document.body.style.cursor = xd[A.kind], document.body.style.userSelect = "none";
|
|
9806
9840
|
const B = (K) => {
|
|
9807
9841
|
if (K.pointerId !== A.pointerId) return;
|
|
9808
9842
|
const M = {
|
|
@@ -9848,18 +9882,18 @@ function kd({
|
|
|
9848
9882
|
easing: "cubic-bezier(0.16, 1, 0.3, 1)"
|
|
9849
9883
|
}
|
|
9850
9884
|
);
|
|
9851
|
-
}, [r, t, n, p.height, p.width, p.x, p.y]),
|
|
9885
|
+
}, [r, t, n, p.height, p.width, p.x, p.y]), _(
|
|
9852
9886
|
() => () => {
|
|
9853
9887
|
P.current !== null && window.clearTimeout(P.current);
|
|
9854
9888
|
},
|
|
9855
9889
|
[]
|
|
9856
|
-
),
|
|
9890
|
+
), _(() => {
|
|
9857
9891
|
const m = () => {
|
|
9858
9892
|
const E = N.current;
|
|
9859
9893
|
H(
|
|
9860
|
-
|
|
9894
|
+
Wt(E.launcher, Be()),
|
|
9861
9895
|
!1
|
|
9862
|
-
), ne(
|
|
9896
|
+
), ne(ot(E.panel, Be()), !1);
|
|
9863
9897
|
};
|
|
9864
9898
|
return window.addEventListener("resize", m), window.visualViewport?.addEventListener("resize", m), () => {
|
|
9865
9899
|
window.removeEventListener("resize", m), window.visualViewport?.removeEventListener("resize", m);
|
|
@@ -9882,7 +9916,7 @@ function kd({
|
|
|
9882
9916
|
y.current = !1;
|
|
9883
9917
|
return;
|
|
9884
9918
|
}
|
|
9885
|
-
const m =
|
|
9919
|
+
const m = _i(
|
|
9886
9920
|
S.current.launcher,
|
|
9887
9921
|
S.current.panel,
|
|
9888
9922
|
Be()
|
|
@@ -10013,14 +10047,14 @@ function kd({
|
|
|
10013
10047
|
}
|
|
10014
10048
|
);
|
|
10015
10049
|
}
|
|
10016
|
-
function
|
|
10017
|
-
const n = Be(), e =
|
|
10018
|
-
e?.launcher ??
|
|
10050
|
+
function Td() {
|
|
10051
|
+
const n = Be(), e = Id(), t = Wt(
|
|
10052
|
+
e?.launcher ?? vd(n),
|
|
10019
10053
|
n
|
|
10020
10054
|
), r = e?.panel;
|
|
10021
10055
|
return {
|
|
10022
10056
|
launcher: t,
|
|
10023
|
-
panel: r?.x !== void 0 && r.y !== void 0 ?
|
|
10057
|
+
panel: r?.x !== void 0 && r.y !== void 0 ? ot(
|
|
10024
10058
|
{
|
|
10025
10059
|
x: r.x,
|
|
10026
10060
|
y: r.y,
|
|
@@ -10028,18 +10062,18 @@ function xd() {
|
|
|
10028
10062
|
height: r.height
|
|
10029
10063
|
},
|
|
10030
10064
|
n
|
|
10031
|
-
) :
|
|
10065
|
+
) : _i(
|
|
10032
10066
|
t,
|
|
10033
10067
|
{
|
|
10034
|
-
width: r?.width ??
|
|
10035
|
-
height: r?.height ??
|
|
10068
|
+
width: r?.width ?? wd,
|
|
10069
|
+
height: r?.height ?? yd
|
|
10036
10070
|
},
|
|
10037
10071
|
n
|
|
10038
10072
|
)
|
|
10039
10073
|
};
|
|
10040
10074
|
}
|
|
10041
|
-
function
|
|
10042
|
-
const { open: n, loadingProgress: e } = jn(), { t } =
|
|
10075
|
+
function Ed() {
|
|
10076
|
+
const { open: n, loadingProgress: e } = jn(), { t } = pt(), r = zo(), i = wi(), a = e >= 1, s = i && r && new Date(i) > new Date(r);
|
|
10043
10077
|
return /* @__PURE__ */ U(
|
|
10044
10078
|
"div",
|
|
10045
10079
|
{
|
|
@@ -10049,8 +10083,8 @@ function Sd() {
|
|
|
10049
10083
|
);
|
|
10050
10084
|
}
|
|
10051
10085
|
const Ki = "data:image/png;base64,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";
|
|
10052
|
-
function
|
|
10053
|
-
const { t: n } =
|
|
10086
|
+
function Rd() {
|
|
10087
|
+
const { t: n } = pt(), {
|
|
10054
10088
|
open: e,
|
|
10055
10089
|
isChromeVisible: t,
|
|
10056
10090
|
api: r,
|
|
@@ -10058,8 +10092,8 @@ function Td() {
|
|
|
10058
10092
|
loadingProgress: a,
|
|
10059
10093
|
isAvatarCoveredByChatList: s,
|
|
10060
10094
|
assistantRef: o
|
|
10061
|
-
} = jn(), c = ye(), d =
|
|
10062
|
-
return p.current = w,
|
|
10095
|
+
} = jn(), c = ye(), d = bn(c.pathname) && s, u = J(null), f = J(null), h = J(null), w = e && t && !d, p = J(w);
|
|
10096
|
+
return p.current = w, _(() => {
|
|
10063
10097
|
const b = u.current, A = f.current;
|
|
10064
10098
|
if (!b || !A) return;
|
|
10065
10099
|
let C = !1;
|
|
@@ -10079,7 +10113,7 @@ function Td() {
|
|
|
10079
10113
|
});
|
|
10080
10114
|
let y = null;
|
|
10081
10115
|
const P = r.onAvatarLoadStarted();
|
|
10082
|
-
return import("./Avatar-
|
|
10116
|
+
return import("./Avatar-C3jiPjI_.js").then(({ Avatar: F }) => {
|
|
10083
10117
|
if (C) return;
|
|
10084
10118
|
const D = {
|
|
10085
10119
|
...r,
|
|
@@ -10098,14 +10132,14 @@ function Td() {
|
|
|
10098
10132
|
new Error("Avatar was unmounted before animation playback")
|
|
10099
10133
|
)), N !== null && window.clearTimeout(N), x.disconnect();
|
|
10100
10134
|
};
|
|
10101
|
-
}, [r, o, i]),
|
|
10135
|
+
}, [r, o, i]), _(() => {
|
|
10102
10136
|
const b = () => {
|
|
10103
10137
|
o.current?.setRenderingEnabled(
|
|
10104
10138
|
w && document.visibilityState !== "hidden"
|
|
10105
10139
|
);
|
|
10106
10140
|
};
|
|
10107
10141
|
return b(), document.addEventListener("visibilitychange", b), () => document.removeEventListener("visibilitychange", b);
|
|
10108
|
-
}, [o, w]),
|
|
10142
|
+
}, [o, w]), _(() => we.subscribe((b) => {
|
|
10109
10143
|
h.current = b, o.current?.applyLipSyncSnapshot(b);
|
|
10110
10144
|
}), [o]), /* @__PURE__ */ Ne("div", { className: "pointer-events-none absolute inset-0 z-0", children: [
|
|
10111
10145
|
/* @__PURE__ */ U("div", { className: "absolute inset-0 bg-black/8" }),
|
|
@@ -10140,12 +10174,12 @@ function Td() {
|
|
|
10140
10174
|
)
|
|
10141
10175
|
] });
|
|
10142
10176
|
}
|
|
10143
|
-
const
|
|
10177
|
+
const Md = ta(() => import("./ChatWidgetContent-CEsq_0Pe.js")), nt = (n) => {
|
|
10144
10178
|
n.catch(
|
|
10145
10179
|
(e) => console.warn("[ChatWidget] Message history recovery failed", e)
|
|
10146
10180
|
);
|
|
10147
10181
|
};
|
|
10148
|
-
function
|
|
10182
|
+
function Ld() {
|
|
10149
10183
|
const {
|
|
10150
10184
|
open: n,
|
|
10151
10185
|
setOpen: e,
|
|
@@ -10156,39 +10190,39 @@ function Rd() {
|
|
|
10156
10190
|
api: s,
|
|
10157
10191
|
isChromeVisible: o,
|
|
10158
10192
|
loadingProgress: c
|
|
10159
|
-
} = jn(), { anycableService: l } = ic(), d = qt(), u = ye(), f = Vo(), h = wi(), w =
|
|
10193
|
+
} = jn(), { anycableService: l } = ic(), d = qt(), u = ye(), f = Vo(), h = wi(), w = bd(
|
|
10160
10194
|
f
|
|
10161
10195
|
)?.inputRequestId, p = J(void 0), b = J(h), { initMessageStore: A, recoverMessages: C, updateConfig: S } = Do(), N = J({
|
|
10162
10196
|
accessToken: a.customerInteractionSession.accessToken,
|
|
10163
10197
|
interactionSessionId: a.customerInteractionSession.interactionSessionId
|
|
10164
10198
|
});
|
|
10165
|
-
return
|
|
10166
|
-
|
|
10167
|
-
}, []),
|
|
10199
|
+
return _(() => {
|
|
10200
|
+
nt(A(a, s));
|
|
10201
|
+
}, []), _(() => {
|
|
10168
10202
|
const x = N.current, y = a.customerInteractionSession;
|
|
10169
10203
|
if (N.current = {
|
|
10170
10204
|
accessToken: y.accessToken,
|
|
10171
10205
|
interactionSessionId: y.interactionSessionId
|
|
10172
10206
|
}, x.interactionSessionId !== y.interactionSessionId) {
|
|
10173
|
-
|
|
10207
|
+
nt(A(a, s));
|
|
10174
10208
|
return;
|
|
10175
10209
|
}
|
|
10176
|
-
S(a, s), x.accessToken !== y.accessToken &&
|
|
10177
|
-
}, [a, s, A, C, S]),
|
|
10210
|
+
S(a, s), x.accessToken !== y.accessToken && nt(C());
|
|
10211
|
+
}, [a, s, A, C, S]), _(() => {
|
|
10178
10212
|
!w || p.current === w || (p.current = w, d(de.text));
|
|
10179
|
-
}, [d, w]),
|
|
10213
|
+
}, [d, w]), _(() => {
|
|
10180
10214
|
!h || b.current === h || (b.current = h, sc(u.pathname) && d(de.text));
|
|
10181
|
-
}, [h, u.pathname, d]),
|
|
10215
|
+
}, [h, u.pathname, d]), _(() => {
|
|
10182
10216
|
if (!l?.channels.chat) return;
|
|
10183
10217
|
const x = l.channels.chat.on(
|
|
10184
10218
|
"connect",
|
|
10185
10219
|
(P) => {
|
|
10186
|
-
(P.reconnect || P.restored) &&
|
|
10220
|
+
(P.reconnect || P.restored) && nt(C());
|
|
10187
10221
|
}
|
|
10188
10222
|
), y = l.channels.chat.on(
|
|
10189
10223
|
"info",
|
|
10190
10224
|
(P) => {
|
|
10191
|
-
P.type === "reject_history" &&
|
|
10225
|
+
P.type === "reject_history" && nt(C());
|
|
10192
10226
|
}
|
|
10193
10227
|
);
|
|
10194
10228
|
return () => {
|
|
@@ -10201,7 +10235,7 @@ function Rd() {
|
|
|
10201
10235
|
"aria-hidden": !o,
|
|
10202
10236
|
inert: o ? void 0 : !0,
|
|
10203
10237
|
children: /* @__PURE__ */ Ne(
|
|
10204
|
-
|
|
10238
|
+
Sd,
|
|
10205
10239
|
{
|
|
10206
10240
|
open: n,
|
|
10207
10241
|
onOpenChange: e,
|
|
@@ -10210,23 +10244,23 @@ function Rd() {
|
|
|
10210
10244
|
hideOpenButton: !!a.hideOpenButton,
|
|
10211
10245
|
loadingProgress: c,
|
|
10212
10246
|
launcherImageSrc: Ki,
|
|
10213
|
-
unreadIndicator: /* @__PURE__ */ U(
|
|
10247
|
+
unreadIndicator: /* @__PURE__ */ U(Ed, {}),
|
|
10214
10248
|
children: [
|
|
10215
|
-
/* @__PURE__ */ U(
|
|
10216
|
-
r && /* @__PURE__ */ U(ea, { fallback: null, children: /* @__PURE__ */ U(
|
|
10249
|
+
/* @__PURE__ */ U(Rd, {}),
|
|
10250
|
+
r && /* @__PURE__ */ U(ea, { fallback: null, children: /* @__PURE__ */ U(Md, {}) })
|
|
10217
10251
|
]
|
|
10218
10252
|
}
|
|
10219
10253
|
)
|
|
10220
10254
|
}
|
|
10221
10255
|
);
|
|
10222
10256
|
}
|
|
10223
|
-
const
|
|
10257
|
+
const Nd = Ht(null), dn = {
|
|
10224
10258
|
didCatch: !1,
|
|
10225
10259
|
error: null
|
|
10226
10260
|
};
|
|
10227
|
-
class
|
|
10261
|
+
class Pd extends na {
|
|
10228
10262
|
constructor(e) {
|
|
10229
|
-
super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state =
|
|
10263
|
+
super(e), this.resetErrorBoundary = this.resetErrorBoundary.bind(this), this.state = dn;
|
|
10230
10264
|
}
|
|
10231
10265
|
static getDerivedStateFromError(e) {
|
|
10232
10266
|
return { didCatch: !0, error: e };
|
|
@@ -10236,18 +10270,18 @@ class Ld extends na {
|
|
|
10236
10270
|
t !== null && (this.props.onReset?.({
|
|
10237
10271
|
args: e,
|
|
10238
10272
|
reason: "imperative-api"
|
|
10239
|
-
}), this.setState(
|
|
10273
|
+
}), this.setState(dn));
|
|
10240
10274
|
}
|
|
10241
10275
|
componentDidCatch(e, t) {
|
|
10242
10276
|
this.props.onError?.(e, t);
|
|
10243
10277
|
}
|
|
10244
10278
|
componentDidUpdate(e, t) {
|
|
10245
10279
|
const { didCatch: r } = this.state, { resetKeys: i } = this.props;
|
|
10246
|
-
r && t.error !== null &&
|
|
10280
|
+
r && t.error !== null && Vd(e.resetKeys, i) && (this.props.onReset?.({
|
|
10247
10281
|
next: i,
|
|
10248
10282
|
prev: e.resetKeys,
|
|
10249
10283
|
reason: "keys"
|
|
10250
|
-
}), this.setState(
|
|
10284
|
+
}), this.setState(dn));
|
|
10251
10285
|
}
|
|
10252
10286
|
render() {
|
|
10253
10287
|
const { children: e, fallbackRender: t, FallbackComponent: r, fallback: i } = this.props, { didCatch: a, error: s } = this.state;
|
|
@@ -10267,7 +10301,7 @@ class Ld extends na {
|
|
|
10267
10301
|
throw s;
|
|
10268
10302
|
}
|
|
10269
10303
|
return Qn(
|
|
10270
|
-
|
|
10304
|
+
Nd.Provider,
|
|
10271
10305
|
{
|
|
10272
10306
|
value: {
|
|
10273
10307
|
didCatch: a,
|
|
@@ -10279,31 +10313,31 @@ class Ld extends na {
|
|
|
10279
10313
|
);
|
|
10280
10314
|
}
|
|
10281
10315
|
}
|
|
10282
|
-
function
|
|
10316
|
+
function Vd(n = [], e = []) {
|
|
10283
10317
|
return n.length !== e.length || n.some((t, r) => !Object.is(t, e[r]));
|
|
10284
10318
|
}
|
|
10285
|
-
function
|
|
10319
|
+
function Od({
|
|
10286
10320
|
children: n,
|
|
10287
10321
|
locale: e
|
|
10288
10322
|
}) {
|
|
10289
10323
|
const t = ra(() => Xi(e), [e]);
|
|
10290
10324
|
return /* @__PURE__ */ U(Zi.Provider, { value: t, children: n });
|
|
10291
10325
|
}
|
|
10292
|
-
function
|
|
10293
|
-
const { t: e } =
|
|
10326
|
+
function zd({ reset: n }) {
|
|
10327
|
+
const { t: e } = pt();
|
|
10294
10328
|
return /* @__PURE__ */ U("button", { type: "button", onClick: n, children: e("app.restart") });
|
|
10295
10329
|
}
|
|
10296
|
-
function
|
|
10330
|
+
function Gd({ config: n, api: e }) {
|
|
10297
10331
|
const [t, r] = Y(n), [i, a] = Y(n.locale);
|
|
10298
|
-
return
|
|
10332
|
+
return _(() => (e.registerSetSession((s) => {
|
|
10299
10333
|
r((o) => ({
|
|
10300
10334
|
...o,
|
|
10301
10335
|
customerInteractionSession: s
|
|
10302
10336
|
}));
|
|
10303
|
-
}), () => e.registerSetSession(null)), [e]),
|
|
10304
|
-
|
|
10337
|
+
}), () => e.registerSetSession(null)), [e]), _(() => (e.registerSetLocale(a), () => e.registerSetLocale(null)), [e]), /* @__PURE__ */ U(Od, { locale: i, children: /* @__PURE__ */ U(
|
|
10338
|
+
Pd,
|
|
10305
10339
|
{
|
|
10306
|
-
fallbackRender: ({ resetErrorBoundary: s }) => /* @__PURE__ */ U(
|
|
10340
|
+
fallbackRender: ({ resetErrorBoundary: s }) => /* @__PURE__ */ U(zd, { reset: s }),
|
|
10307
10341
|
onError: (s, o) => {
|
|
10308
10342
|
z.error("Widget render failed", s, o.componentStack);
|
|
10309
10343
|
},
|
|
@@ -10313,62 +10347,62 @@ function Od({ config: n, api: e }) {
|
|
|
10313
10347
|
config: t,
|
|
10314
10348
|
commandRuntime: e.commandRuntime,
|
|
10315
10349
|
onSessionExpired: e.onSessionExpired,
|
|
10316
|
-
children: /* @__PURE__ */ U($a, { children: /* @__PURE__ */ U(
|
|
10350
|
+
children: /* @__PURE__ */ U($a, { children: /* @__PURE__ */ U(gd, { config: t, api: e, children: /* @__PURE__ */ U(Ld, {}) }) })
|
|
10317
10351
|
}
|
|
10318
10352
|
)
|
|
10319
10353
|
}
|
|
10320
10354
|
) });
|
|
10321
10355
|
}
|
|
10322
|
-
function
|
|
10356
|
+
function Fd(n, e, t) {
|
|
10323
10357
|
const r = ia(n);
|
|
10324
|
-
return r.render(/* @__PURE__ */ U(
|
|
10358
|
+
return r.render(/* @__PURE__ */ U(Gd, { config: { ...e }, api: t })), r;
|
|
10325
10359
|
}
|
|
10326
|
-
const Gd = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-blue-500:oklch(62.3% .214 259.815);--color-violet-200:oklch(89.4% .057 293.283);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-xs:4px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.btn-preview{border-style:var(--tw-border-style);border-width:5px;border-color:var(--color-blue-500);border-radius:3.40282e38px}.message{background:var(--chat-surface-agent);max-width:100%;color:var(--chat-text-primary);border:0;border-radius:17px;padding:7px 11px;font-size:14px;font-weight:400;line-height:20px;box-shadow:0 6px 18px #00000029}.chat-message-row[data-author=customer]>.message,.message[data-author=customer]{background:var(--chat-surface-customer)}.bridge-ai-chat-widget [class~=text-start]{text-align:left;text-align:start}.bridge-ai-chat-widget[dir=rtl] [class~=text-start]{text-align:right;text-align:start}.chat-message-row[data-author=agent]>.message,.message[data-author=agent],.chat-message-skeleton-bubble.self-start{border-bottom-left-radius:5px}.chat-message-row[data-author=customer]>.message,.message[data-author=customer],.chat-message-skeleton-bubble.self-end{border-bottom-right-radius:5px}.bridge-ai-chat-widget[dir=rtl] .chat-message-row[data-author=agent]>.message,.bridge-ai-chat-widget[dir=rtl] .message[data-author=agent],.bridge-ai-chat-widget[dir=rtl] .chat-message-skeleton-bubble.self-start{border-bottom-right-radius:5px;border-bottom-left-radius:17px}.bridge-ai-chat-widget[dir=rtl] .chat-message-row[data-author=customer]>.message,.bridge-ai-chat-widget[dir=rtl] .message[data-author=customer],.bridge-ai-chat-widget[dir=rtl] .chat-message-skeleton-bubble.self-end{border-bottom-right-radius:17px;border-bottom-left-radius:5px}.message[data-author=agent]{margin-left:8px}.message[data-author=customer]{margin-right:8px}.bridge-ai-chat-widget[dir=rtl] .message[data-author=agent]{margin-left:0;margin-right:8px}.bridge-ai-chat-widget[dir=rtl] .message[data-author=customer]{margin-left:8px;margin-right:0}.chat-message-row[data-author=agent]+.chat-message-row[data-author=agent],.chat-message-row[data-author=customer]+.chat-message-row[data-author=customer]{margin-top:-4px}.chat-message-content p+p{margin-top:8px}.chat-message-content strong{font-weight:650}.chat-message-content h1,.chat-message-content h2,.chat-message-content h3,.chat-message-content h4,.chat-message-content h5,.chat-message-content h6{margin:8px 0 4px;font-weight:650;line-height:1.3}.chat-message-content h1,.chat-message-content h2{font-size:1.12em}.chat-message-content ul,.chat-message-content ol{padding-left:20px;margin:6px 0;padding-inline-start:20px}.bridge-ai-chat-widget[dir=rtl] .chat-message-content ul,.bridge-ai-chat-widget[dir=rtl] .chat-message-content ol{padding-left:0;padding-right:20px}.chat-message-content ul{list-style:outside}.chat-message-content ol{list-style:decimal}.chat-message-content blockquote{color:#f3f0f4c2;border-left:2px solid #68d8ff7a;padding-left:9px;border-inline-start:2px solid #68d8ff7a;margin:6px 0;padding-inline-start:9px}.bridge-ai-chat-widget[dir=rtl] .chat-message-content blockquote{border-left:0;border-right:2px solid #68d8ff7a;padding-left:0;padding-right:9px}.chat-message-content code{background:#ffffff17;border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.88em}.chat-message-content pre{background:#0003;border:1px solid #ffffff14;border-radius:8px;max-width:100%;margin:7px 0;padding:8px;overflow-x:auto}.chat-message-content pre code{background:0 0;padding:0}.chat-message-link{color:var(--chat-accent-cyan);text-underline-offset:2px;-webkit-text-decoration:underline #68d8ff61;text-decoration:underline #68d8ff61}.chat-message-link:hover{text-decoration-color:currentColor}.chat-message-link:focus-visible{outline:2px solid var(--chat-accent-cyan);outline-offset:2px;border-radius:2px}.chat-citation{vertical-align:super;margin-left:1px;margin-inline-start:1px;font-size:.72em;line-height:0}.bridge-ai-chat-widget[dir=rtl] .chat-citation{margin-left:0;margin-right:1px}.chat-citation .chat-message-link{text-decoration:none}.chat-icon-button{color:#ffffffd6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0c0f157a;border:1px solid #ffffff1a;border-radius:9999px;justify-content:center;align-items:center;width:36px;height:36px;transition:color .16s,border-color .16s,background-color .16s,transform .16s;display:flex;box-shadow:inset 0 1px #ffffff0a}.chat-icon-button:hover{color:var(--chat-accent-cyan);background:#141921c7;border-color:#68d8ff57}.chat-icon-button:active{transform:scale(.96)}.chat-icon-button:focus-visible,.chat-launcher:focus-visible,.chat-composer-button:focus-visible,.chat-send-button:focus-visible,.chat-microphone-button:focus-visible{outline:2px solid var(--chat-accent-cyan);outline-offset:2px}[data-lola-widget-shell]{backface-visibility:hidden;visibility:hidden;opacity:0;pointer-events:none;transform-origin:50% 100%;transition:visibility 0s linear .2s,opacity .13s ease-in,transform .2s cubic-bezier(.4,0,.7,.2);transform:translateY(10px)scale(.985);box-shadow:0 24px 64px #00000052,0 8px 24px #0003}[data-lola-widget-shell][data-state=open]{visibility:visible;opacity:1;pointer-events:auto;transition:visibility,opacity .15s ease-out,transform .28s cubic-bezier(.16,1,.3,1);transition-timing-function:linear,ease-out,var(--chat-route-enter-easing);transform:translate(0)scale(1)}[data-lola-widget-shell][data-layout=fullscreen]{width:100vw;height:100vh}@supports (width:100dvw) and (height:100dvh){[data-lola-widget-shell][data-layout=fullscreen]{width:100dvw;height:100dvh}}[data-lola-widget-shell][data-layout=fullscreen] .chat-widget-panel{padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.chat-widget-panel{transform:translateZ(0)}.chat-launcher{visibility:visible;opacity:1;transition:visibility,opacity .14s ease-out,transform .18s ease-out;transform:translateZ(0)scale(1)}.chat-launcher[aria-expanded=true]{visibility:hidden;opacity:0;pointer-events:none;transition:visibility 0s linear .16s,opacity .12s ease-in,transform .16s ease-in;transform:translateZ(0)scale(.88)}.chat-launcher{color:#fff;cursor:grab;isolation:isolate;touch-action:none;background:#090f16e0;border:0;border-radius:9999px;place-items:center;padding:3px;display:grid}.chat-launcher:active{cursor:grabbing}.chat-launcher__portrait{z-index:2;border:3px solid var(--chat-accent-cyan);background:radial-gradient(circle at 50% 35%,#3d4c5d,#0c1219 72%);border-radius:9999px;width:46px;height:46px;animation:2.8s ease-in-out infinite lola-launcher-breathe;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff3d,0 0 13px #68d8ffa3,0 0 30px #45bdff42}.chat-launcher__portrait img{object-fit:cover;object-position:50% 20%;-webkit-user-select:none;user-select:none;width:100%;height:100%;transform:scale(1.22)translateY(6%)}.chat-launcher__aura{z-index:1;filter:blur(7px);opacity:.7;background:conic-gradient(from 45deg,#68d8ff47,#775cff14,#68d8ff5c,#775cff14,#68d8ff47);border:1px solid #68d8ff61;border-radius:9999px;animation:3.6s ease-in-out infinite lola-launcher-aura;position:absolute;inset:-7px}.chat-widget-resize-corner:after{content:"";border-top:2px solid #68d8ffc2;border-left:2px solid #68d8ffc2;border-radius:3px 0 0;width:8px;height:8px;position:absolute;top:5px;left:5px}.bridge-ai-chat-widget[data-mobile=true] .chat-icon-button{width:48px;height:48px}@keyframes lola-launcher-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes lola-launcher-aura{0%,to{opacity:.48;transform:scale(.94)rotate(0)}50%{opacity:.82;transform:scale(1.08)rotate(18deg)}}.chat-composer{background:linear-gradient(145deg,#1d142af0,#0a0f16f5);border:0;border-radius:22px;min-height:42px;box-shadow:0 12px 34px #0000004d,0 0 0 1px #b564ff29,inset 0 1px #ffffff12}.chat-composer:focus-within{box-shadow:0 12px 34px #0000004d,0 0 0 1px #68d8ff57,0 0 24px #68d8ff14,inset 0 1px #ffffff14}.chat-composer-button{background:var(--chat-surface-customer);border-radius:15px;box-shadow:0 4px 14px #00000024}.chat-composer-button:hover{background:#684b6c}.chat-talk-button{width:var(--chat-talk-expanded-width);flex:none;transition:width .22s cubic-bezier(.16,1,.3,1);transform:translateZ(0)}.chat-talk-button[data-compact=true]{width:32px}.chat-unread-indicator{right:-2px}.bridge-ai-chat-widget[dir=rtl] .chat-unread-indicator{left:-2px;right:auto}.chat-talk-button__content{z-index:1;pointer-events:none;align-items:center;gap:8px;padding:0 12px;display:flex;position:absolute;inset:0}.chat-talk-button__label{opacity:1;flex:none;line-height:16px;transition:opacity 90ms ease-out,transform .18s cubic-bezier(.16,1,.3,1);transform:translateZ(0)}.chat-talk-button[data-compact=true] .chat-talk-button__content{justify-content:center;gap:0;padding:0}.chat-talk-button[data-compact=true] .chat-talk-button__label{opacity:0;position:absolute;inset-inline-start:38px;transform:translate(-6px)}.bridge-ai-chat-widget[dir=rtl] .chat-talk-button[data-compact=true] .chat-talk-button__label{left:auto;right:38px;transform:translate(6px)}.chat-send-button{background:var(--chat-accent-lime);color:#081207;border-radius:9999px;flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;transition:filter .16s,transform .16s,opacity .16s;display:flex;box-shadow:0 6px 18px #d7ff6438}.chat-send-button:hover:not(:disabled){filter:brightness(1.08)}.chat-send-button:active:not(:disabled){transform:scale(.95)}.chat-send-button:disabled{box-shadow:none;color:#ffffff3d;background:#ffffff13}.chat-cta-primary,.chat-cta-secondary{border-radius:9999px;padding:7px 12px;font-size:12px;font-weight:600;line-height:16px;transition:background-color .16s,border-color .16s,transform .16s}.chat-cta-primary{background:var(--chat-accent-lime);color:#081207;border:0;box-shadow:0 6px 18px #d7ff642e}.chat-cta-primary:hover{filter:brightness(1.07)}.chat-cta-action{color:#fff;background:linear-gradient(135deg,#45c7ff,#288cff);box-shadow:0 8px 24px #288cff57,inset 0 1px #ffffff47}.chat-cta-action:hover{filter:brightness(1.12)}.chat-cta-secondary{color:#ffffffb8;background:#fff1;border:1px solid #ffffff1f}.chat-cta-secondary:hover{background:#68d8ff14;border-color:#68d8ff47}.chat-voice-card{-webkit-backdrop-filter:blur(22px)saturate(135%);backdrop-filter:blur(22px)saturate(135%);background:#0d1016c7;border:1px solid #ffffff1c;border-radius:20px;box-shadow:0 12px 36px #0000003d}.chat-microphone-button{color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0d1016a6;border:1px solid #ffffff21;border-radius:9999px;justify-content:center;align-items:center;width:68px;height:68px;transition:transform .16s,border-color .16s,background-color .16s;display:flex;position:relative;box-shadow:0 12px 32px #0000003d,inset 0 1px #ffffff0f}.chat-microphone-button:hover{border-color:#68d8ff6b;transform:translateY(-1px)}.chat-microphone-button_active{background:#68d8ff2e;border-color:#68d8ff75;box-shadow:0 12px 32px #0000003d,0 0 0 6px #68d8ff0f}.chat-list-surface{background:radial-gradient(circle at 92% 0,#68d8ff1a,#0000 26%),radial-gradient(circle at 8% 0,#ef6b7f1a,#0000 28%),#0d1016;box-shadow:inset 0 1px #ffffff0d}.chat-list-item_selected{background:linear-gradient(100deg,#70265757,#14475e47);box-shadow:inset 0 1px #ffffff0d}.chat-list-entry{content-visibility:auto;contain-intrinsic-block-size:64px}.chat-route-stage{border-radius:inherit;isolation:isolate;overflow:hidden}.chat-route-page{border-radius:inherit;height:100%;position:absolute;inset:0;overflow:hidden}.chat-route-page_background{z-index:1}.chat-route-pane{z-index:2;backface-visibility:hidden;contain:layout paint;will-change:transform,opacity}.chat-route-pane_exit{pointer-events:none}.chat-route-pane .chat-list-entry{content-visibility:visible}.chat-route-pane_enter.chat-route-pane_forward{animation:.3s cubic-bezier(.16,1,.3,1) both chat-route-forward-enter;animation-timing-function:var(--chat-route-enter-easing)}.chat-route-pane_exit.chat-route-pane_backward{animation:.24s cubic-bezier(.4,0,.7,.2) both chat-route-backward-exit}@keyframes chat-route-forward-enter{0%{opacity:.88;transform:translate3d(var(--chat-route-offset-x),0,0)}to{opacity:1;transform:translate(0)}}@keyframes chat-route-backward-exit{0%{opacity:1;transform:translate(0)}to{opacity:.94;transform:translate3d(var(--chat-route-offset-x),0,0)}}.chat-message-skeleton{justify-content:flex-end;min-height:min(420px,62vh)}.chat-message-skeleton-bubble{animation:1.2s ease-in-out infinite alternate chat-message-skeleton-pulse;animation-delay:var(--chat-skeleton-delay);will-change:opacity;position:relative;overflow:hidden}.chat-message-skeleton-bubble:after{content:"";pointer-events:none;animation:1.45s cubic-bezier(.4,0,.2,1) infinite chat-message-skeleton-shimmer;animation-delay:var(--chat-skeleton-delay);will-change:transform;background:linear-gradient(105deg,#0000 24%,#ffffff16,#0000 72%);position:absolute;inset:-1px;transform:translate(-125%)}.chat-avatar-ring{background:linear-gradient(145deg,var(--chat-accent-cherry),var(--chat-accent-cyan));border-radius:9999px;padding:1px;display:inline-flex;box-shadow:0 4px 14px #0003}.chat-scrollbar{overscroll-behavior:contain;scrollbar-color:transparent transparent;scrollbar-width:thin;touch-action:pan-y}.chat-scrollbar:hover{scrollbar-color:#ffffff38 transparent}.chat-scrollbar::-webkit-scrollbar{width:4px;height:4px}.chat-scrollbar::-webkit-scrollbar-track{background:0 0}.chat-scrollbar::-webkit-scrollbar-thumb{background:0 0;border-radius:9999px}.chat-scrollbar:hover::-webkit-scrollbar-thumb{background:#ffffff38}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.chat-pending-assistant-message{transform-origin:0 100%;animation:.22s cubic-bezier(.22,1,.36,1) both chat-pending-assistant-message-in}.bridge-ai-chat-widget[dir=rtl] .chat-pending-assistant-message{transform-origin:100% 100%}.chat-typing-indicator{align-items:center;gap:5px;display:flex}.chat-typing-indicator__dot{background-color:var(--chat-accent-cyan);opacity:.38;border-radius:50%;width:7px;height:7px;animation:1.2s cubic-bezier(.45,0,.55,1) infinite both chat-typing-dot;transform:translateY(0)scale(.82)}.chat-typing-indicator__dot_left{animation-delay:0s}.chat-typing-indicator__dot_center{animation-delay:.14s}.chat-typing-indicator__dot_right{animation-delay:.28s}.chat-stream-fragment{animation:.12s cubic-bezier(.22,1,.36,1) both chat-stream-fragment-in}@keyframes chat-stream-fragment-in{0%{opacity:.15}to{opacity:1}}@keyframes chat-message-skeleton-pulse{0%{opacity:.58}to{opacity:1}}@keyframes chat-message-skeleton-shimmer{to{transform:translate(125%)}}@media(prefers-reduced-motion:reduce){[data-lola-widget-shell],.chat-widget-panel,.chat-launcher,.chat-talk-button,.chat-talk-button__icon,.chat-talk-button__label{transition:none}.chat-launcher__portrait,.chat-launcher__aura,.chat-pending-assistant-message,.chat-typing-indicator__dot{animation:none}.chat-route-pane{animation-duration:1ms!important}.chat-typing-indicator__dot{opacity:.72;transform:none}.chat-stream-fragment{animation:none}.chat-message-skeleton-bubble{opacity:.82;will-change:auto;animation:none}.chat-message-skeleton-bubble:after{will-change:auto;animation:none;display:none}}@keyframes chat-pending-assistant-message-in{0%{opacity:0;transform:translateY(4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes chat-typing-dot{0%,60%,to{opacity:.38;transform:translateY(0)scale(.82)}30%{opacity:1;transform:translateY(-3px)scale(1.05)}}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-end-0\\.5{inset-inline-end:calc(var(--spacing)*-.5)}.-top-0\\.5{top:calc(var(--spacing)*-.5)}.top-0{top:calc(var(--spacing)*0)}.top-5{top:calc(var(--spacing)*5)}.right-0{right:calc(var(--spacing)*0)}.right-5{right:calc(var(--spacing)*5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-5{bottom:calc(var(--spacing)*5)}.left-0{left:calc(var(--spacing)*0)}.left-5{left:calc(var(--spacing)*5)}.z-0{z-index:0}.z-1{z-index:1}.z-5{z-index:5}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-51{z-index:51}.z-\\[9999999\\]{z-index:9999999}.\\!container{width:100%!important}@media(min-width:40rem){.\\!container{max-width:40rem!important}}@media(min-width:48rem){.\\!container{max-width:48rem!important}}@media(min-width:64rem){.\\!container{max-width:64rem!important}}@media(min-width:80rem){.\\!container{max-width:80rem!important}}@media(min-width:96rem){.\\!container{max-width:96rem!important}}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.me-2{margin-inline-end:calc(var(--spacing)*2)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-0{height:calc(var(--spacing)*0)}.h-1{height:calc(var(--spacing)*1)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-8{min-height:calc(var(--spacing)*8)}.min-h-9{min-height:calc(var(--spacing)*9)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing)*1)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-14{width:calc(var(--spacing)*14)}.w-\\[42\\%\\]{width:42%}.w-\\[48\\%\\]{width:48%}.w-\\[52\\%\\]{width:52%}.w-\\[56\\%\\]{width:56%}.w-\\[58\\%\\]{width:58%}.w-\\[62\\%\\]{width:62%}.w-\\[64\\%\\]{width:64%}.w-\\[66\\%\\]{width:66%}.w-\\[68\\%\\]{width:68%}.w-\\[70\\%\\]{width:70%}.w-\\[72\\%\\]{width:72%}.w-\\[74\\%\\]{width:74%}.w-\\[76\\%\\]{width:76%}.w-\\[78\\%\\]{width:78%}.w-\\[86\\%\\]{width:86%}.w-fit{width:fit-content}.w-full{width:100%}.max-w-8{max-width:calc(var(--spacing)*8)}.max-w-70{max-width:calc(var(--spacing)*70)}.max-w-72{max-width:calc(var(--spacing)*72)}.max-w-\\[86\\%\\]{max-width:86%}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\\.5{--tw-translate-y:calc(var(--spacing)*1.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.-scale-x-100{--tw-scale-x: -100% ;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-grab{cursor:grab}.cursor-n-resize{cursor:n-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-w-resize{cursor:w-resize}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-\\[3px\\]{gap:3px}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-\\[17px\\]{border-radius:17px}.rounded-\\[24px\\]{border-radius:24px}.rounded-\\[32px\\]{border-radius:32px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-none{border-radius:0}.rounded-ee-\\[5px\\]{border-end-end-radius:5px}.rounded-es-\\[5px\\]{border-end-start-radius:5px}.rounded-br-\\[5px\\]{border-bottom-right-radius:5px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-\\[\\#68d8ff\\]\\/10{border-color:#68d8ff1a}.border-\\[\\#68d8ff\\]\\/65{border-color:#68d8ffa6}.border-white\\/8{border-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.border-white\\/8{border-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\\/16{border-color:#ffffff29}@supports (color:color-mix(in lab,red,red)){.border-white\\/16{border-color:color-mix(in oklab,var(--color-white)16%,transparent)}}.border-white\\/\\[0\\.05\\]{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\\/\\[0\\.05\\]{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-white\\/\\[0\\.06\\]{border-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.border-white\\/\\[0\\.06\\]{border-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.bg-\\[\\#5b405f\\]\\/70{background-color:#5b405fb3}.bg-\\[\\#68d8ff\\]{background-color:#68d8ff}.bg-\\[\\#68d8ff\\]\\/12{background-color:#68d8ff1f}.bg-\\[\\#68d8ff\\]\\/\\[0\\.1\\]{background-color:#68d8ff1a}.bg-\\[\\#68d8ff\\]\\/\\[0\\.13\\]{background-color:#68d8ff21}.bg-\\[\\#090b10\\]\\/58{background-color:#090b1094}.bg-\\[\\#17131b\\]{background-color:#17131b}.bg-\\[\\#111319\\]{background-color:#111319}.bg-\\[\\#ef6b7f\\]{background-color:#ef6b7f}.bg-\\[var\\(--chat-surface-agent\\)\\]{background-color:var(--chat-surface-agent)}.bg-black{background-color:var(--color-black)}.bg-black\\/8{background-color:#00000014}@supports (color:color-mix(in lab,red,red)){.bg-black\\/8{background-color:color-mix(in oklab,var(--color-black)8%,transparent)}}.bg-black\\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\\/20{background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.bg-black\\/28{background-color:#00000047}@supports (color:color-mix(in lab,red,red)){.bg-black\\/28{background-color:color-mix(in oklab,var(--color-black)28%,transparent)}}.bg-black\\/35{background-color:#00000059}@supports (color:color-mix(in lab,red,red)){.bg-black\\/35{background-color:color-mix(in oklab,var(--color-black)35%,transparent)}}.bg-current{background-color:currentColor}.bg-transparent{background-color:#0000}.bg-white\\/\\[0\\.04\\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.04\\]{background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.bg-white\\/\\[0\\.06\\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.bg-white\\/\\[0\\.07\\]{background-color:#ffffff12}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--color-white)7%,transparent)}}.bg-white\\/\\[0\\.09\\]{background-color:#ffffff17}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.09\\]{background-color:color-mix(in oklab,var(--color-white)9%,transparent)}}.bg-white\\/\\[0\\.11\\]{background-color:#ffffff1c}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.11\\]{background-color:color-mix(in oklab,var(--color-white)11%,transparent)}}.bg-white\\/\\[0\\.035\\]{background-color:#ffffff09}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.035\\]{background-color:color-mix(in oklab,var(--color-white)3.5%,transparent)}}.bg-\\[linear-gradient\\(to_bottom\\,rgba\\(0\\,0\\,0\\,0\\.7\\)_0\\%\\,rgba\\(0\\,0\\,0\\,0\\.7\\)_20\\%\\,rgba\\(0\\,0\\,0\\,0\\.2\\)_60\\%\\,rgba\\(0\\,0\\,0\\,0\\)_100\\%\\)\\]{background-image:linear-gradient(#000000b3 0% 20%,#0003 60%,#0000)}.bg-\\[linear-gradient\\(to_top\\,rgba\\(8\\,10\\,15\\,0\\.78\\)_0\\%\\,rgba\\(8\\,10\\,15\\,0\\.42\\)_42\\%\\,rgba\\(8\\,10\\,15\\,0\\)_100\\%\\)\\]{background-image:linear-gradient(#080a0f00,#080a0f6b 58%,#080a0fc7)}.object-contain{object-fit:contain}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-3{padding-top:calc(var(--spacing)*3)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.text-center{text-align:center}.text-start{text-align:start}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[14px\\]{font-size:14px}.text-\\[15px\\]{font-size:15px}.text-\\[16px\\]{font-size:16px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\\[18px\\]{--tw-leading:18px;line-height:18px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[-0\\.01em\\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\\[-0\\.005em\\]{--tw-tracking:-.005em;letter-spacing:-.005em}.tracking-\\[0\\.01em\\]{--tw-tracking:.01em;letter-spacing:.01em}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[\\#68d8ff\\]{color:#68d8ff}.text-red-200{color:var(--color-red-200)}.text-violet-200{color:var(--color-violet-200)}.text-white{color:var(--color-white)}.text-white\\/42{color:#ffffff6b}@supports (color:color-mix(in lab,red,red)){.text-white\\/42{color:color-mix(in oklab,var(--color-white)42%,transparent)}}.text-white\\/65{color:#ffffffa6}@supports (color:color-mix(in lab,red,red)){.text-white\\/65{color:color-mix(in oklab,var(--color-white)65%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/75{color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.text-white\\/75{color:color-mix(in oklab,var(--color-white)75%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\\[\\#111319\\]{outline-color:#111319}.outline-black\\/9{outline-color:#00000017}@supports (color:color-mix(in lab,red,red)){.outline-black\\/9{outline-color:color-mix(in oklab,var(--color-black)9%,transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.\\!transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[background-color\\,transform\\]{transition-property:background-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-75{transition-delay:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-\\[180ms\\]{--tw-duration:.18s;transition-duration:.18s}.duration-\\[220ms\\]{--tw-duration:.22s;transition-duration:.22s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.delay-75{--tw-animation-delay:75ms;animation-delay:75ms}.outline-none{--tw-outline-style:none;outline-style:none}.outline-solid{--tw-outline-style:solid;outline-style:solid}.select-none{-webkit-user-select:none;user-select:none}.\\[overflow-anchor\\:none\\]{overflow-anchor:none}.paused{animation-play-state:paused}.running{animation-play-state:running}@media(hover:hover){.group-hover\\:block:is(:where(.group):hover *){display:block}.group-hover\\:hidden:is(:where(.group):hover *){display:none}.group-hover\\:opacity-70:is(:where(.group):hover *){opacity:.7}}.group-aria-\\[current\\=page\\]\\:opacity-100:is(:where(.group)[aria-current=page] *){opacity:1}.placeholder\\:text-white\\/38::placeholder{color:#ffffff61}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-white\\/38::placeholder{color:color-mix(in oklab,var(--color-white)38%,transparent)}}@media(hover:hover){.hover\\:border-\\[\\#68d8ff\\]\\/30:hover{border-color:#68d8ff4d}.hover\\:bg-white\\/6:hover{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/6:hover{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.hover\\:text-white\\/90:hover{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.hover\\:text-white\\/90:hover{color:color-mix(in oklab,var(--color-white)90%,transparent)}}}.active\\:scale-\\[0\\.992\\]:active{scale:.992}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-white\\/8:active{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.active\\:bg-white\\/8:active{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.data-disabled\\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-disabled\\:opacity-45[data-disabled]{opacity:.45}.data-disabled\\:opacity-50[data-disabled]{opacity:.5}.data-hover\\:border-\\[\\#68d8ff\\]\\/55[data-hover]{border-color:#68d8ff8c}.data-hover\\:bg-white\\/10[data-hover]{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.data-hover\\:bg-white\\/10[data-hover]{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}@media(prefers-reduced-motion:reduce){.motion-reduce\\:translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.motion-reduce\\:transition-none{transition-property:none}.motion-reduce\\:delay-0{--tw-animation-delay:0s;transition-delay:0s;animation-delay:0s}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.bridge-ai-chat-widget{--radius:.625rem;--chat-accent-cherry:#ef6b7f;--chat-accent-cyan:#68d8ff;--chat-accent-lime:#d7ff64;--chat-surface-agent:#1a191bd1;--chat-surface-customer:#5b405f;--chat-text-primary:#f3f0f4;--chat-talk-expanded-width:80px;--chat-route-offset-x:100%;--chat-route-enter-easing:linear(0,.062 5%,.192 10%,.338 15%,.477 20%,.596 25%,.694 30%,.771 35%,.831 40%,.877 45%,.911 50%,.937 55%,.955 60%,.969 65%,.979 70%,.986 75%,.991 80%,.994 85%,.997 90%,.999 95%,1);color-scheme:dark;font-synthesis:none;letter-spacing:-.006em;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:InterVariable,Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.bridge-ai-chat-widget[dir=rtl]{--chat-route-offset-x:-100%}.bridge-ai-chat-widget button,.bridge-ai-chat-widget textarea{font-family:inherit}.bridge-ai-chat-widget :where(button:not(:disabled),[role=button]:not([aria-disabled=true]),a[href]){cursor:pointer}.bridge-ai-chat-widget button:disabled{cursor:not-allowed}.bridge-ai-chat-widget .chat-launcher,.bridge-ai-chat-widget [data-lola-drag-handle]{cursor:grab}.bridge-ai-chat-widget .chat-launcher:active,.bridge-ai-chat-widget [data-lola-drag-handle]:active{cursor:grabbing}.bridge-ai-chat-widget [data-lola-resize=top]{cursor:n-resize}.bridge-ai-chat-widget [data-lola-resize=left]{cursor:w-resize}.bridge-ai-chat-widget [data-lola-resize=corner]{cursor:nwse-resize}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}';
|
|
10327
|
-
var
|
|
10328
|
-
function
|
|
10329
|
-
var e =
|
|
10360
|
+
const Dd = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-blue-500:oklch(62.3% .214 259.815);--color-violet-200:oklch(89.4% .057 293.283);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-xs:4px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.btn-preview{border-style:var(--tw-border-style);border-width:5px;border-color:var(--color-blue-500);border-radius:3.40282e38px}.message{background:var(--chat-surface-agent);max-width:100%;color:var(--chat-text-primary);border:0;border-radius:17px;padding:7px 11px;font-size:14px;font-weight:400;line-height:20px;box-shadow:0 6px 18px #00000029}.chat-message-row[data-author=customer]>.message,.message[data-author=customer]{background:var(--chat-surface-customer)}.bridge-ai-chat-widget [class~=text-start]{text-align:left;text-align:start}.bridge-ai-chat-widget[dir=rtl] [class~=text-start]{text-align:right;text-align:start}.chat-message-row[data-author=agent]>.message,.message[data-author=agent],.chat-message-skeleton-bubble.self-start{border-bottom-left-radius:5px}.chat-message-row[data-author=customer]>.message,.message[data-author=customer],.chat-message-skeleton-bubble.self-end{border-bottom-right-radius:5px}.bridge-ai-chat-widget[dir=rtl] .chat-message-row[data-author=agent]>.message,.bridge-ai-chat-widget[dir=rtl] .message[data-author=agent],.bridge-ai-chat-widget[dir=rtl] .chat-message-skeleton-bubble.self-start{border-bottom-right-radius:5px;border-bottom-left-radius:17px}.bridge-ai-chat-widget[dir=rtl] .chat-message-row[data-author=customer]>.message,.bridge-ai-chat-widget[dir=rtl] .message[data-author=customer],.bridge-ai-chat-widget[dir=rtl] .chat-message-skeleton-bubble.self-end{border-bottom-right-radius:17px;border-bottom-left-radius:5px}.message[data-author=agent]{margin-left:8px}.message[data-author=customer]{margin-right:8px}.bridge-ai-chat-widget[dir=rtl] .message[data-author=agent]{margin-left:0;margin-right:8px}.bridge-ai-chat-widget[dir=rtl] .message[data-author=customer]{margin-left:8px;margin-right:0}.chat-message-row[data-author=agent]+.chat-message-row[data-author=agent],.chat-message-row[data-author=customer]+.chat-message-row[data-author=customer]{margin-top:-4px}.chat-message-content p+p{margin-top:8px}.chat-message-content strong{font-weight:650}.chat-message-content h1,.chat-message-content h2,.chat-message-content h3,.chat-message-content h4,.chat-message-content h5,.chat-message-content h6{margin:8px 0 4px;font-weight:650;line-height:1.3}.chat-message-content h1,.chat-message-content h2{font-size:1.12em}.chat-message-content ul,.chat-message-content ol{padding-left:20px;margin:6px 0;padding-inline-start:20px}.bridge-ai-chat-widget[dir=rtl] .chat-message-content ul,.bridge-ai-chat-widget[dir=rtl] .chat-message-content ol{padding-left:0;padding-right:20px}.chat-message-content ul{list-style:outside}.chat-message-content ol{list-style:decimal}.chat-message-content blockquote{color:#f3f0f4c2;border-left:2px solid #68d8ff7a;padding-left:9px;border-inline-start:2px solid #68d8ff7a;margin:6px 0;padding-inline-start:9px}.bridge-ai-chat-widget[dir=rtl] .chat-message-content blockquote{border-left:0;border-right:2px solid #68d8ff7a;padding-left:0;padding-right:9px}.chat-message-content code{background:#ffffff17;border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.88em}.chat-message-content pre{background:#0003;border:1px solid #ffffff14;border-radius:8px;max-width:100%;margin:7px 0;padding:8px;overflow-x:auto}.chat-message-content pre code{background:0 0;padding:0}.chat-message-link{color:var(--chat-accent-cyan);text-underline-offset:2px;-webkit-text-decoration:underline #68d8ff61;text-decoration:underline #68d8ff61}.chat-message-link:hover{text-decoration-color:currentColor}.chat-message-link:focus-visible{outline:2px solid var(--chat-accent-cyan);outline-offset:2px;border-radius:2px}.chat-citation{vertical-align:super;margin-left:1px;margin-inline-start:1px;font-size:.72em;line-height:0}.bridge-ai-chat-widget[dir=rtl] .chat-citation{margin-left:0;margin-right:1px}.chat-citation .chat-message-link{text-decoration:none}.chat-icon-button{color:#ffffffd6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0c0f157a;border:1px solid #ffffff1a;border-radius:9999px;justify-content:center;align-items:center;width:36px;height:36px;transition:color .16s,border-color .16s,background-color .16s,transform .16s;display:flex;box-shadow:inset 0 1px #ffffff0a}.chat-icon-button:hover{color:var(--chat-accent-cyan);background:#141921c7;border-color:#68d8ff57}.chat-icon-button:active{transform:scale(.96)}.chat-icon-button:focus-visible,.chat-launcher:focus-visible,.chat-composer-button:focus-visible,.chat-send-button:focus-visible,.chat-microphone-button:focus-visible{outline:2px solid var(--chat-accent-cyan);outline-offset:2px}[data-lola-widget-shell]{backface-visibility:hidden;visibility:hidden;opacity:0;pointer-events:none;transform-origin:50% 100%;transition:visibility 0s linear .2s,opacity .13s ease-in,transform .2s cubic-bezier(.4,0,.7,.2);transform:translateY(10px)scale(.985);box-shadow:0 24px 64px #00000052,0 8px 24px #0003}[data-lola-widget-shell][data-state=open]{visibility:visible;opacity:1;pointer-events:auto;transition:visibility,opacity .15s ease-out,transform .28s cubic-bezier(.16,1,.3,1);transition-timing-function:linear,ease-out,var(--chat-route-enter-easing);transform:translate(0)scale(1)}[data-lola-widget-shell][data-layout=fullscreen]{width:100vw;height:100vh}@supports (width:100dvw) and (height:100dvh){[data-lola-widget-shell][data-layout=fullscreen]{width:100dvw;height:100dvh}}[data-lola-widget-shell][data-layout=fullscreen] .chat-widget-panel{padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.chat-widget-panel{transform:translateZ(0)}.chat-launcher{visibility:visible;opacity:1;transition:visibility,opacity .14s ease-out,transform .18s ease-out;transform:translateZ(0)scale(1)}.chat-launcher[aria-expanded=true]{visibility:hidden;opacity:0;pointer-events:none;transition:visibility 0s linear .16s,opacity .12s ease-in,transform .16s ease-in;transform:translateZ(0)scale(.88)}.chat-launcher{color:#fff;cursor:grab;isolation:isolate;touch-action:none;background:#090f16e0;border:0;border-radius:9999px;place-items:center;padding:3px;display:grid}.chat-launcher:active{cursor:grabbing}.chat-launcher__portrait{z-index:2;border:3px solid var(--chat-accent-cyan);background:radial-gradient(circle at 50% 35%,#3d4c5d,#0c1219 72%);border-radius:9999px;width:46px;height:46px;animation:2.8s ease-in-out infinite lola-launcher-breathe;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff3d,0 0 13px #68d8ffa3,0 0 30px #45bdff42}.chat-launcher__portrait img{object-fit:cover;object-position:50% 20%;-webkit-user-select:none;user-select:none;width:100%;height:100%;transform:scale(1.22)translateY(6%)}.chat-launcher__aura{z-index:1;filter:blur(7px);opacity:.7;background:conic-gradient(from 45deg,#68d8ff47,#775cff14,#68d8ff5c,#775cff14,#68d8ff47);border:1px solid #68d8ff61;border-radius:9999px;animation:3.6s ease-in-out infinite lola-launcher-aura;position:absolute;inset:-7px}.chat-widget-resize-corner:after{content:"";border-top:2px solid #68d8ffc2;border-left:2px solid #68d8ffc2;border-radius:3px 0 0;width:8px;height:8px;position:absolute;top:5px;left:5px}.bridge-ai-chat-widget[data-mobile=true] .chat-icon-button{width:48px;height:48px}@keyframes lola-launcher-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes lola-launcher-aura{0%,to{opacity:.48;transform:scale(.94)rotate(0)}50%{opacity:.82;transform:scale(1.08)rotate(18deg)}}.chat-composer{background:linear-gradient(145deg,#1d142af0,#0a0f16f5);border:0;border-radius:22px;min-height:42px;box-shadow:0 12px 34px #0000004d,0 0 0 1px #b564ff29,inset 0 1px #ffffff12}.chat-composer:focus-within{box-shadow:0 12px 34px #0000004d,0 0 0 1px #68d8ff57,0 0 24px #68d8ff14,inset 0 1px #ffffff14}.chat-composer-button{background:var(--chat-surface-customer);border-radius:15px;box-shadow:0 4px 14px #00000024}.chat-composer-button:hover{background:#684b6c}.chat-talk-button{width:var(--chat-talk-expanded-width);flex:none;transition:width .22s cubic-bezier(.16,1,.3,1);transform:translateZ(0)}.chat-talk-button[data-compact=true]{width:32px}.chat-unread-indicator{right:-2px}.bridge-ai-chat-widget[dir=rtl] .chat-unread-indicator{left:-2px;right:auto}.chat-talk-button__content{z-index:1;pointer-events:none;align-items:center;gap:8px;padding:0 12px;display:flex;position:absolute;inset:0}.chat-talk-button__label{opacity:1;flex:none;line-height:16px;transition:opacity 90ms ease-out,transform .18s cubic-bezier(.16,1,.3,1);transform:translateZ(0)}.chat-talk-button[data-compact=true] .chat-talk-button__content{justify-content:center;gap:0;padding:0}.chat-talk-button[data-compact=true] .chat-talk-button__label{opacity:0;position:absolute;inset-inline-start:38px;transform:translate(-6px)}.bridge-ai-chat-widget[dir=rtl] .chat-talk-button[data-compact=true] .chat-talk-button__label{left:auto;right:38px;transform:translate(6px)}.chat-send-button{background:var(--chat-accent-lime);color:#081207;border-radius:9999px;flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;transition:filter .16s,transform .16s,opacity .16s;display:flex;box-shadow:0 6px 18px #d7ff6438}.chat-send-button:hover:not(:disabled){filter:brightness(1.08)}.chat-send-button:active:not(:disabled){transform:scale(.95)}.chat-send-button:disabled{box-shadow:none;color:#ffffff3d;background:#ffffff13}.chat-cta-primary,.chat-cta-secondary{border-radius:9999px;padding:7px 12px;font-size:12px;font-weight:600;line-height:16px;transition:background-color .16s,border-color .16s,transform .16s}.chat-cta-primary{background:var(--chat-accent-lime);color:#081207;border:0;box-shadow:0 6px 18px #d7ff642e}.chat-cta-primary:hover{filter:brightness(1.07)}.chat-cta-action{color:#fff;background:linear-gradient(135deg,#45c7ff,#288cff);box-shadow:0 8px 24px #288cff57,inset 0 1px #ffffff47}.chat-cta-action:hover{filter:brightness(1.12)}.chat-cta-secondary{color:#ffffffb8;background:#fff1;border:1px solid #ffffff1f}.chat-cta-secondary:hover{background:#68d8ff14;border-color:#68d8ff47}.chat-voice-card{-webkit-backdrop-filter:blur(22px)saturate(135%);backdrop-filter:blur(22px)saturate(135%);background:#0d1016c7;border:1px solid #ffffff1c;border-radius:20px;box-shadow:0 12px 36px #0000003d}.chat-microphone-button{color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0d1016a6;border:1px solid #ffffff21;border-radius:9999px;justify-content:center;align-items:center;width:68px;height:68px;transition:transform .16s,border-color .16s,background-color .16s;display:flex;position:relative;box-shadow:0 12px 32px #0000003d,inset 0 1px #ffffff0f}.chat-microphone-button:hover{border-color:#68d8ff6b;transform:translateY(-1px)}.chat-microphone-button_active{background:#68d8ff2e;border-color:#68d8ff75;box-shadow:0 12px 32px #0000003d,0 0 0 6px #68d8ff0f}.chat-list-surface{background:radial-gradient(circle at 92% 0,#68d8ff1a,#0000 26%),radial-gradient(circle at 8% 0,#ef6b7f1a,#0000 28%),#0d1016;box-shadow:inset 0 1px #ffffff0d}.chat-list-item_selected{background:linear-gradient(100deg,#70265757,#14475e47);box-shadow:inset 0 1px #ffffff0d}.chat-list-entry{content-visibility:auto;contain-intrinsic-block-size:64px}.chat-route-stage{border-radius:inherit;isolation:isolate;overflow:hidden}.chat-route-page{border-radius:inherit;height:100%;position:absolute;inset:0;overflow:hidden}.chat-route-page_background{z-index:1}.chat-route-pane{z-index:2;backface-visibility:hidden;contain:layout paint;will-change:transform,opacity}.chat-route-pane_exit{pointer-events:none}.chat-route-pane .chat-list-entry{content-visibility:visible}.chat-route-pane_enter.chat-route-pane_forward{animation:.3s cubic-bezier(.16,1,.3,1) both chat-route-forward-enter;animation-timing-function:var(--chat-route-enter-easing)}.chat-route-pane_exit.chat-route-pane_backward{animation:.24s cubic-bezier(.4,0,.7,.2) both chat-route-backward-exit}@keyframes chat-route-forward-enter{0%{opacity:.88;transform:translate3d(var(--chat-route-offset-x),0,0)}to{opacity:1;transform:translate(0)}}@keyframes chat-route-backward-exit{0%{opacity:1;transform:translate(0)}to{opacity:.94;transform:translate3d(var(--chat-route-offset-x),0,0)}}.chat-message-skeleton{justify-content:flex-end;min-height:min(420px,62vh)}.chat-message-skeleton-bubble{animation:1.2s ease-in-out infinite alternate chat-message-skeleton-pulse;animation-delay:var(--chat-skeleton-delay);will-change:opacity;position:relative;overflow:hidden}.chat-message-skeleton-bubble:after{content:"";pointer-events:none;animation:1.45s cubic-bezier(.4,0,.2,1) infinite chat-message-skeleton-shimmer;animation-delay:var(--chat-skeleton-delay);will-change:transform;background:linear-gradient(105deg,#0000 24%,#ffffff16,#0000 72%);position:absolute;inset:-1px;transform:translate(-125%)}.chat-avatar-ring{background:linear-gradient(145deg,var(--chat-accent-cherry),var(--chat-accent-cyan));border-radius:9999px;padding:1px;display:inline-flex;box-shadow:0 4px 14px #0003}.chat-scrollbar{overscroll-behavior:contain;scrollbar-color:transparent transparent;scrollbar-width:thin;touch-action:pan-y}.chat-scrollbar:hover{scrollbar-color:#ffffff38 transparent}.chat-scrollbar::-webkit-scrollbar{width:4px;height:4px}.chat-scrollbar::-webkit-scrollbar-track{background:0 0}.chat-scrollbar::-webkit-scrollbar-thumb{background:0 0;border-radius:9999px}.chat-scrollbar:hover::-webkit-scrollbar-thumb{background:#ffffff38}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.chat-pending-assistant-message{transform-origin:0 100%;animation:.22s cubic-bezier(.22,1,.36,1) both chat-pending-assistant-message-in}.bridge-ai-chat-widget[dir=rtl] .chat-pending-assistant-message{transform-origin:100% 100%}.chat-typing-indicator{align-items:center;gap:5px;display:flex}.chat-typing-indicator__dot{background-color:var(--chat-accent-cyan);opacity:.38;border-radius:50%;width:7px;height:7px;animation:1.2s cubic-bezier(.45,0,.55,1) infinite both chat-typing-dot;transform:translateY(0)scale(.82)}.chat-typing-indicator__dot_left{animation-delay:0s}.chat-typing-indicator__dot_center{animation-delay:.14s}.chat-typing-indicator__dot_right{animation-delay:.28s}.chat-stream-fragment{animation:.12s cubic-bezier(.22,1,.36,1) both chat-stream-fragment-in}@keyframes chat-stream-fragment-in{0%{opacity:.15}to{opacity:1}}@keyframes chat-message-skeleton-pulse{0%{opacity:.58}to{opacity:1}}@keyframes chat-message-skeleton-shimmer{to{transform:translate(125%)}}@media(prefers-reduced-motion:reduce){[data-lola-widget-shell],.chat-widget-panel,.chat-launcher,.chat-talk-button,.chat-talk-button__icon,.chat-talk-button__label{transition:none}.chat-launcher__portrait,.chat-launcher__aura,.chat-pending-assistant-message,.chat-typing-indicator__dot{animation:none}.chat-route-pane{animation-duration:1ms!important}.chat-typing-indicator__dot{opacity:.72;transform:none}.chat-stream-fragment{animation:none}.chat-message-skeleton-bubble{opacity:.82;will-change:auto;animation:none}.chat-message-skeleton-bubble:after{will-change:auto;animation:none;display:none}}@keyframes chat-pending-assistant-message-in{0%{opacity:0;transform:translateY(4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes chat-typing-dot{0%,60%,to{opacity:.38;transform:translateY(0)scale(.82)}30%{opacity:1;transform:translateY(-3px)scale(1.05)}}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.-end-0\\.5{inset-inline-end:calc(var(--spacing)*-.5)}.-top-0\\.5{top:calc(var(--spacing)*-.5)}.top-0{top:calc(var(--spacing)*0)}.top-5{top:calc(var(--spacing)*5)}.right-0{right:calc(var(--spacing)*0)}.right-5{right:calc(var(--spacing)*5)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-5{bottom:calc(var(--spacing)*5)}.left-0{left:calc(var(--spacing)*0)}.left-5{left:calc(var(--spacing)*5)}.z-0{z-index:0}.z-1{z-index:1}.z-5{z-index:5}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-51{z-index:51}.z-\\[9999999\\]{z-index:9999999}.\\!container{width:100%!important}@media(min-width:40rem){.\\!container{max-width:40rem!important}}@media(min-width:48rem){.\\!container{max-width:48rem!important}}@media(min-width:64rem){.\\!container{max-width:64rem!important}}@media(min-width:80rem){.\\!container{max-width:80rem!important}}@media(min-width:96rem){.\\!container{max-width:96rem!important}}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing)*2)}.ms-2{margin-inline-start:calc(var(--spacing)*2)}.me-2{margin-inline-end:calc(var(--spacing)*2)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.h-0{height:calc(var(--spacing)*0)}.h-1{height:calc(var(--spacing)*1)}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-fit{height:fit-content}.h-full{height:100%}.h-px{height:1px}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-8{min-height:calc(var(--spacing)*8)}.min-h-9{min-height:calc(var(--spacing)*9)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-full{min-height:100%}.w-1{width:calc(var(--spacing)*1)}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-14{width:calc(var(--spacing)*14)}.w-\\[42\\%\\]{width:42%}.w-\\[48\\%\\]{width:48%}.w-\\[52\\%\\]{width:52%}.w-\\[56\\%\\]{width:56%}.w-\\[58\\%\\]{width:58%}.w-\\[62\\%\\]{width:62%}.w-\\[64\\%\\]{width:64%}.w-\\[66\\%\\]{width:66%}.w-\\[68\\%\\]{width:68%}.w-\\[70\\%\\]{width:70%}.w-\\[72\\%\\]{width:72%}.w-\\[74\\%\\]{width:74%}.w-\\[76\\%\\]{width:76%}.w-\\[78\\%\\]{width:78%}.w-\\[86\\%\\]{width:86%}.w-fit{width:fit-content}.w-full{width:100%}.max-w-8{max-width:calc(var(--spacing)*8)}.max-w-70{max-width:calc(var(--spacing)*70)}.max-w-72{max-width:calc(var(--spacing)*72)}.max-w-\\[86\\%\\]{max-width:86%}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-y-1{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\\.5{--tw-translate-y:calc(var(--spacing)*1.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.-scale-x-100{--tw-scale-x: -100% ;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-grab{cursor:grab}.cursor-n-resize{cursor:n-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-w-resize{cursor:w-resize}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-\\[3px\\]{gap:3px}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-\\[17px\\]{border-radius:17px}.rounded-\\[24px\\]{border-radius:24px}.rounded-\\[32px\\]{border-radius:32px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-none{border-radius:0}.rounded-ee-\\[5px\\]{border-end-end-radius:5px}.rounded-es-\\[5px\\]{border-end-start-radius:5px}.rounded-br-\\[5px\\]{border-bottom-right-radius:5px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-\\[\\#68d8ff\\]\\/10{border-color:#68d8ff1a}.border-\\[\\#68d8ff\\]\\/65{border-color:#68d8ffa6}.border-white\\/8{border-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.border-white\\/8{border-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\\/16{border-color:#ffffff29}@supports (color:color-mix(in lab,red,red)){.border-white\\/16{border-color:color-mix(in oklab,var(--color-white)16%,transparent)}}.border-white\\/\\[0\\.05\\]{border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.border-white\\/\\[0\\.05\\]{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-white\\/\\[0\\.06\\]{border-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.border-white\\/\\[0\\.06\\]{border-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.bg-\\[\\#5b405f\\]\\/70{background-color:#5b405fb3}.bg-\\[\\#68d8ff\\]{background-color:#68d8ff}.bg-\\[\\#68d8ff\\]\\/12{background-color:#68d8ff1f}.bg-\\[\\#68d8ff\\]\\/\\[0\\.1\\]{background-color:#68d8ff1a}.bg-\\[\\#68d8ff\\]\\/\\[0\\.13\\]{background-color:#68d8ff21}.bg-\\[\\#090b10\\]\\/58{background-color:#090b1094}.bg-\\[\\#17131b\\]{background-color:#17131b}.bg-\\[\\#111319\\]{background-color:#111319}.bg-\\[\\#ef6b7f\\]{background-color:#ef6b7f}.bg-\\[var\\(--chat-surface-agent\\)\\]{background-color:var(--chat-surface-agent)}.bg-black{background-color:var(--color-black)}.bg-black\\/8{background-color:#00000014}@supports (color:color-mix(in lab,red,red)){.bg-black\\/8{background-color:color-mix(in oklab,var(--color-black)8%,transparent)}}.bg-black\\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\\/20{background-color:color-mix(in oklab,var(--color-black)20%,transparent)}}.bg-black\\/28{background-color:#00000047}@supports (color:color-mix(in lab,red,red)){.bg-black\\/28{background-color:color-mix(in oklab,var(--color-black)28%,transparent)}}.bg-black\\/35{background-color:#00000059}@supports (color:color-mix(in lab,red,red)){.bg-black\\/35{background-color:color-mix(in oklab,var(--color-black)35%,transparent)}}.bg-current{background-color:currentColor}.bg-transparent{background-color:#0000}.bg-white\\/\\[0\\.04\\]{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.04\\]{background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.bg-white\\/\\[0\\.06\\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.bg-white\\/\\[0\\.07\\]{background-color:#ffffff12}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--color-white)7%,transparent)}}.bg-white\\/\\[0\\.09\\]{background-color:#ffffff17}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.09\\]{background-color:color-mix(in oklab,var(--color-white)9%,transparent)}}.bg-white\\/\\[0\\.11\\]{background-color:#ffffff1c}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.11\\]{background-color:color-mix(in oklab,var(--color-white)11%,transparent)}}.bg-white\\/\\[0\\.035\\]{background-color:#ffffff09}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.035\\]{background-color:color-mix(in oklab,var(--color-white)3.5%,transparent)}}.bg-\\[linear-gradient\\(to_bottom\\,rgba\\(0\\,0\\,0\\,0\\.7\\)_0\\%\\,rgba\\(0\\,0\\,0\\,0\\.7\\)_20\\%\\,rgba\\(0\\,0\\,0\\,0\\.2\\)_60\\%\\,rgba\\(0\\,0\\,0\\,0\\)_100\\%\\)\\]{background-image:linear-gradient(#000000b3 0% 20%,#0003 60%,#0000)}.bg-\\[linear-gradient\\(to_top\\,rgba\\(8\\,10\\,15\\,0\\.78\\)_0\\%\\,rgba\\(8\\,10\\,15\\,0\\.42\\)_42\\%\\,rgba\\(8\\,10\\,15\\,0\\)_100\\%\\)\\]{background-image:linear-gradient(#080a0f00,#080a0f6b 58%,#080a0fc7)}.object-contain{object-fit:contain}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-3{padding-top:calc(var(--spacing)*3)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.text-center{text-align:center}.text-start{text-align:start}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[14px\\]{font-size:14px}.text-\\[15px\\]{font-size:15px}.text-\\[16px\\]{font-size:16px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\\[18px\\]{--tw-leading:18px;line-height:18px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[-0\\.01em\\]{--tw-tracking:-.01em;letter-spacing:-.01em}.tracking-\\[-0\\.005em\\]{--tw-tracking:-.005em;letter-spacing:-.005em}.tracking-\\[0\\.01em\\]{--tw-tracking:.01em;letter-spacing:.01em}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[\\#68d8ff\\]{color:#68d8ff}.text-red-200{color:var(--color-red-200)}.text-violet-200{color:var(--color-violet-200)}.text-white{color:var(--color-white)}.text-white\\/42{color:#ffffff6b}@supports (color:color-mix(in lab,red,red)){.text-white\\/42{color:color-mix(in oklab,var(--color-white)42%,transparent)}}.text-white\\/65{color:#ffffffa6}@supports (color:color-mix(in lab,red,red)){.text-white\\/65{color:color-mix(in oklab,var(--color-white)65%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/75{color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.text-white\\/75{color:color-mix(in oklab,var(--color-white)75%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.outline-2{outline-style:var(--tw-outline-style);outline-width:2px}.outline-\\[\\#111319\\]{outline-color:#111319}.outline-black\\/9{outline-color:#00000017}@supports (color:color-mix(in lab,red,red)){.outline-black\\/9{outline-color:color-mix(in oklab,var(--color-black)9%,transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.\\!transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))!important;transition-duration:var(--tw-duration,var(--default-transition-duration))!important}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[background-color\\,transform\\]{transition-property:background-color,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[opacity\\,transform\\]{transition-property:opacity,transform;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-75{transition-delay:75ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-\\[180ms\\]{--tw-duration:.18s;transition-duration:.18s}.duration-\\[220ms\\]{--tw-duration:.22s;transition-duration:.22s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.delay-75{--tw-animation-delay:75ms;animation-delay:75ms}.outline-none{--tw-outline-style:none;outline-style:none}.outline-solid{--tw-outline-style:solid;outline-style:solid}.select-none{-webkit-user-select:none;user-select:none}.\\[overflow-anchor\\:none\\]{overflow-anchor:none}.paused{animation-play-state:paused}.running{animation-play-state:running}@media(hover:hover){.group-hover\\:block:is(:where(.group):hover *){display:block}.group-hover\\:hidden:is(:where(.group):hover *){display:none}.group-hover\\:opacity-70:is(:where(.group):hover *){opacity:.7}}.group-aria-\\[current\\=page\\]\\:opacity-100:is(:where(.group)[aria-current=page] *){opacity:1}.placeholder\\:text-white\\/38::placeholder{color:#ffffff61}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-white\\/38::placeholder{color:color-mix(in oklab,var(--color-white)38%,transparent)}}@media(hover:hover){.hover\\:border-\\[\\#68d8ff\\]\\/30:hover{border-color:#68d8ff4d}.hover\\:bg-white\\/6:hover{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/6:hover{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.hover\\:text-white\\/90:hover{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.hover\\:text-white\\/90:hover{color:color-mix(in oklab,var(--color-white)90%,transparent)}}}.active\\:scale-\\[0\\.992\\]:active{scale:.992}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-white\\/8:active{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.active\\:bg-white\\/8:active{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.data-disabled\\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-disabled\\:opacity-45[data-disabled]{opacity:.45}.data-disabled\\:opacity-50[data-disabled]{opacity:.5}.data-hover\\:border-\\[\\#68d8ff\\]\\/55[data-hover]{border-color:#68d8ff8c}.data-hover\\:bg-white\\/10[data-hover]{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.data-hover\\:bg-white\\/10[data-hover]{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}@media(prefers-reduced-motion:reduce){.motion-reduce\\:translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.motion-reduce\\:transition-none{transition-property:none}.motion-reduce\\:delay-0{--tw-animation-delay:0s;transition-delay:0s;animation-delay:0s}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.bridge-ai-chat-widget{--radius:.625rem;--chat-accent-cherry:#ef6b7f;--chat-accent-cyan:#68d8ff;--chat-accent-lime:#d7ff64;--chat-surface-agent:#1a191bd1;--chat-surface-customer:#5b405f;--chat-text-primary:#f3f0f4;--chat-talk-expanded-width:80px;--chat-route-offset-x:100%;--chat-route-enter-easing:linear(0,.062 5%,.192 10%,.338 15%,.477 20%,.596 25%,.694 30%,.771 35%,.831 40%,.877 45%,.911 50%,.937 55%,.955 60%,.969 65%,.979 70%,.986 75%,.991 80%,.994 85%,.997 90%,.999 95%,1);color-scheme:dark;font-synthesis:none;letter-spacing:-.006em;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:InterVariable,Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.bridge-ai-chat-widget[dir=rtl]{--chat-route-offset-x:-100%}.bridge-ai-chat-widget button,.bridge-ai-chat-widget textarea{font-family:inherit}.bridge-ai-chat-widget :where(button:not(:disabled),[role=button]:not([aria-disabled=true]),a[href]){cursor:pointer}.bridge-ai-chat-widget button:disabled{cursor:not-allowed}.bridge-ai-chat-widget .chat-launcher,.bridge-ai-chat-widget [data-lola-drag-handle]{cursor:grab}.bridge-ai-chat-widget .chat-launcher:active,.bridge-ai-chat-widget [data-lola-drag-handle]:active{cursor:grabbing}.bridge-ai-chat-widget [data-lola-resize=top]{cursor:n-resize}.bridge-ai-chat-widget [data-lola-resize=left]{cursor:w-resize}.bridge-ai-chat-widget [data-lola-resize=corner]{cursor:nwse-resize}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}';
|
|
10361
|
+
var Bd = typeof global == "object" && global && global.Object === Object && global, Wd = typeof self == "object" && self && self.Object === Object && self, Yi = Bd || Wd || Function("return this")(), Ut = Yi.Symbol, Ji = Object.prototype, Xd = Ji.hasOwnProperty, Zd = Ji.toString, rt = Ut ? Ut.toStringTag : void 0;
|
|
10362
|
+
function Ud(n) {
|
|
10363
|
+
var e = Xd.call(n, rt), t = n[rt];
|
|
10330
10364
|
try {
|
|
10331
|
-
n[
|
|
10365
|
+
n[rt] = void 0;
|
|
10332
10366
|
var r = !0;
|
|
10333
10367
|
} catch {
|
|
10334
10368
|
}
|
|
10335
|
-
var i =
|
|
10336
|
-
return r && (e ? n[
|
|
10337
|
-
}
|
|
10338
|
-
var Zd = Object.prototype, Ud = Zd.toString;
|
|
10339
|
-
function Hd(n) {
|
|
10340
|
-
return Ud.call(n);
|
|
10369
|
+
var i = Zd.call(n);
|
|
10370
|
+
return r && (e ? n[rt] = t : delete n[rt]), i;
|
|
10341
10371
|
}
|
|
10342
|
-
var
|
|
10372
|
+
var Hd = Object.prototype, jd = Hd.toString;
|
|
10343
10373
|
function _d(n) {
|
|
10344
|
-
return
|
|
10374
|
+
return jd.call(n);
|
|
10345
10375
|
}
|
|
10346
|
-
|
|
10347
|
-
|
|
10376
|
+
var qd = "[object Null]", Kd = "[object Undefined]", zr = Ut ? Ut.toStringTag : void 0;
|
|
10377
|
+
function Yd(n) {
|
|
10378
|
+
return n == null ? n === void 0 ? Kd : qd : zr && zr in Object(n) ? Ud(n) : _d(n);
|
|
10348
10379
|
}
|
|
10349
|
-
var Yd = "[object Symbol]";
|
|
10350
10380
|
function Jd(n) {
|
|
10351
|
-
return
|
|
10381
|
+
return n != null && typeof n == "object";
|
|
10352
10382
|
}
|
|
10353
|
-
var Qd =
|
|
10383
|
+
var Qd = "[object Symbol]";
|
|
10354
10384
|
function $d(n) {
|
|
10355
|
-
|
|
10385
|
+
return typeof n == "symbol" || Jd(n) && Yd(n) == Qd;
|
|
10386
|
+
}
|
|
10387
|
+
var eu = /\s/;
|
|
10388
|
+
function tu(n) {
|
|
10389
|
+
for (var e = n.length; e-- && eu.test(n.charAt(e)); )
|
|
10356
10390
|
;
|
|
10357
10391
|
return e;
|
|
10358
10392
|
}
|
|
10359
|
-
var
|
|
10360
|
-
function
|
|
10361
|
-
return n && n.slice(0,
|
|
10393
|
+
var nu = /^\s+/;
|
|
10394
|
+
function ru(n) {
|
|
10395
|
+
return n && n.slice(0, tu(n) + 1).replace(nu, "");
|
|
10362
10396
|
}
|
|
10363
10397
|
function Sn(n) {
|
|
10364
10398
|
var e = typeof n;
|
|
10365
10399
|
return n != null && (e == "object" || e == "function");
|
|
10366
10400
|
}
|
|
10367
|
-
var Gr = NaN,
|
|
10401
|
+
var Gr = NaN, iu = /^[-+]0x[0-9a-f]+$/i, au = /^0b[01]+$/i, su = /^0o[0-7]+$/i, ou = parseInt;
|
|
10368
10402
|
function Fr(n) {
|
|
10369
10403
|
if (typeof n == "number")
|
|
10370
10404
|
return n;
|
|
10371
|
-
if (
|
|
10405
|
+
if ($d(n))
|
|
10372
10406
|
return Gr;
|
|
10373
10407
|
if (Sn(n)) {
|
|
10374
10408
|
var e = typeof n.valueOf == "function" ? n.valueOf() : n;
|
|
@@ -10376,18 +10410,18 @@ function Fr(n) {
|
|
|
10376
10410
|
}
|
|
10377
10411
|
if (typeof n != "string")
|
|
10378
10412
|
return n === 0 ? n : +n;
|
|
10379
|
-
n =
|
|
10380
|
-
var t =
|
|
10381
|
-
return t ||
|
|
10413
|
+
n = ru(n);
|
|
10414
|
+
var t = au.test(n);
|
|
10415
|
+
return t || su.test(n) ? ou(n.slice(2), t ? 2 : 8) : iu.test(n) ? Gr : +n;
|
|
10382
10416
|
}
|
|
10383
|
-
var
|
|
10417
|
+
var un = function() {
|
|
10384
10418
|
return Yi.Date.now();
|
|
10385
|
-
},
|
|
10386
|
-
function
|
|
10419
|
+
}, cu = "Expected a function", lu = Math.max, du = Math.min;
|
|
10420
|
+
function uu(n, e, t) {
|
|
10387
10421
|
var r, i, a, s, o, c, l = 0, d = !1, u = !1, f = !0;
|
|
10388
10422
|
if (typeof n != "function")
|
|
10389
|
-
throw new TypeError(
|
|
10390
|
-
e = Fr(e) || 0, Sn(t) && (d = !0, u = "maxWait" in t, a = u ?
|
|
10423
|
+
throw new TypeError(cu);
|
|
10424
|
+
e = Fr(e) || 0, Sn(t) && (d = !0, u = "maxWait" in t, a = u ? lu(Fr(t.maxWait) || 0, e) : a, f = "trailing" in t ? !!t.trailing : f);
|
|
10391
10425
|
function h(y) {
|
|
10392
10426
|
var P = r, F = i;
|
|
10393
10427
|
return r = i = void 0, l = y, s = n.apply(F, P), s;
|
|
@@ -10397,14 +10431,14 @@ function lu(n, e, t) {
|
|
|
10397
10431
|
}
|
|
10398
10432
|
function p(y) {
|
|
10399
10433
|
var P = y - c, F = y - l, D = e - P;
|
|
10400
|
-
return u ?
|
|
10434
|
+
return u ? du(D, a - F) : D;
|
|
10401
10435
|
}
|
|
10402
10436
|
function b(y) {
|
|
10403
10437
|
var P = y - c, F = y - l;
|
|
10404
10438
|
return c === void 0 || P >= e || P < 0 || u && F >= a;
|
|
10405
10439
|
}
|
|
10406
10440
|
function A() {
|
|
10407
|
-
var y =
|
|
10441
|
+
var y = un();
|
|
10408
10442
|
if (b(y))
|
|
10409
10443
|
return C(y);
|
|
10410
10444
|
o = setTimeout(A, p(y));
|
|
@@ -10416,10 +10450,10 @@ function lu(n, e, t) {
|
|
|
10416
10450
|
o !== void 0 && clearTimeout(o), l = 0, r = c = i = o = void 0;
|
|
10417
10451
|
}
|
|
10418
10452
|
function N() {
|
|
10419
|
-
return o === void 0 ? s : C(
|
|
10453
|
+
return o === void 0 ? s : C(un());
|
|
10420
10454
|
}
|
|
10421
10455
|
function x() {
|
|
10422
|
-
var y =
|
|
10456
|
+
var y = un(), P = b(y);
|
|
10423
10457
|
if (r = arguments, i = this, c = y, P) {
|
|
10424
10458
|
if (o === void 0)
|
|
10425
10459
|
return w(c);
|
|
@@ -10435,13 +10469,13 @@ class O extends Error {
|
|
|
10435
10469
|
super(e, r), this.code = e, this.status = t;
|
|
10436
10470
|
}
|
|
10437
10471
|
}
|
|
10438
|
-
const
|
|
10472
|
+
const hu = /^[a-zA-Z0-9_.:-]{1,200}$/, pu = /* @__PURE__ */ new Set([
|
|
10439
10473
|
"button",
|
|
10440
10474
|
"element",
|
|
10441
10475
|
"modal",
|
|
10442
10476
|
"page"
|
|
10443
10477
|
]);
|
|
10444
|
-
class
|
|
10478
|
+
class gu {
|
|
10445
10479
|
targets = /* @__PURE__ */ new Map();
|
|
10446
10480
|
handlers = {};
|
|
10447
10481
|
constructor(e = {}, t = {}) {
|
|
@@ -10573,7 +10607,7 @@ class hu {
|
|
|
10573
10607
|
});
|
|
10574
10608
|
}
|
|
10575
10609
|
assertLegacyTarget(e) {
|
|
10576
|
-
if (!e || typeof e != "object" || !
|
|
10610
|
+
if (!e || typeof e != "object" || !pu.has(e.kind))
|
|
10577
10611
|
throw new O("TARGET_INVALID");
|
|
10578
10612
|
for (const t of [
|
|
10579
10613
|
e.selector,
|
|
@@ -10628,11 +10662,11 @@ class hu {
|
|
|
10628
10662
|
return e.trim();
|
|
10629
10663
|
}
|
|
10630
10664
|
assertTargetCode(e) {
|
|
10631
|
-
if (!
|
|
10665
|
+
if (!hu.test(e))
|
|
10632
10666
|
throw new O("TARGET_INVALID");
|
|
10633
10667
|
}
|
|
10634
10668
|
}
|
|
10635
|
-
const
|
|
10669
|
+
const fu = [
|
|
10636
10670
|
"show_assistant",
|
|
10637
10671
|
"hide_assistant",
|
|
10638
10672
|
"open_chat",
|
|
@@ -10651,10 +10685,10 @@ const pu = [
|
|
|
10651
10685
|
"failed",
|
|
10652
10686
|
"expired",
|
|
10653
10687
|
"unsupported"
|
|
10654
|
-
]),
|
|
10655
|
-
class
|
|
10688
|
+
]), mu = 600 * 1e3, bu = /^[a-zA-Z0-9_.:-]{1,200}$/, hn = "rgba(167, 139, 250, 0.82)", wu = "rgba(196, 181, 253, 1)", pn = "0 0 0 1px rgba(255, 255, 255, 0.12), 0 0 0 4px rgba(139, 92, 246, 0.12), 0 0 18px 2px rgba(124, 58, 237, 0.28), inset 0 0 12px rgba(139, 92, 246, 0.06)", yu = "0 0 0 1px rgba(255, 255, 255, 0.28), 0 0 0 5px rgba(139, 92, 246, 0.2), 0 0 26px 4px rgba(124, 58, 237, 0.5), inset 0 0 14px rgba(139, 92, 246, 0.12)";
|
|
10689
|
+
class vu {
|
|
10656
10690
|
constructor(e = {}, t = {}, r) {
|
|
10657
|
-
this.onStatus = r, this.uiCommands = new
|
|
10691
|
+
this.onStatus = r, this.uiCommands = new gu(e, t), this.internalHandlersReady = new Promise((i) => {
|
|
10658
10692
|
this.resolveInternalHandlers = i;
|
|
10659
10693
|
});
|
|
10660
10694
|
}
|
|
@@ -10760,7 +10794,7 @@ class wu {
|
|
|
10760
10794
|
);
|
|
10761
10795
|
return;
|
|
10762
10796
|
}
|
|
10763
|
-
if (!
|
|
10797
|
+
if (!fu.includes(a)) {
|
|
10764
10798
|
await this.finish(
|
|
10765
10799
|
{ commandId: i, status: "unsupported", errorCode: "COMMAND_UNSUPPORTED" },
|
|
10766
10800
|
t,
|
|
@@ -10850,7 +10884,7 @@ class wu {
|
|
|
10850
10884
|
t.audioPath,
|
|
10851
10885
|
"SPEECH_AUDIO_INVALID"
|
|
10852
10886
|
);
|
|
10853
|
-
if (s !== `/scenario-commands/${r}/audio` || t.method !== "POST" || t.mimeType !==
|
|
10887
|
+
if (s !== `/scenario-commands/${r}/audio` || t.method !== "POST" || t.mimeType !== xr || t.format !== "pcm16" || t.sampleRate !== 24e3 || t.channels !== 1)
|
|
10854
10888
|
throw new O("SPEECH_AUDIO_INVALID");
|
|
10855
10889
|
const o = this.readLipSyncDescriptor(t.lipSync, r);
|
|
10856
10890
|
try {
|
|
@@ -10859,7 +10893,7 @@ class wu {
|
|
|
10859
10893
|
commandType: e,
|
|
10860
10894
|
audioPath: s,
|
|
10861
10895
|
method: "POST",
|
|
10862
|
-
mimeType:
|
|
10896
|
+
mimeType: xr,
|
|
10863
10897
|
format: "pcm16",
|
|
10864
10898
|
sampleRate: 24e3,
|
|
10865
10899
|
channels: 1,
|
|
@@ -10969,7 +11003,7 @@ class wu {
|
|
|
10969
11003
|
}
|
|
10970
11004
|
requireTarget(e, t) {
|
|
10971
11005
|
const r = e && typeof e == "object" ? e.code ?? e.id : e, i = this.requireString(r, "TARGET_INVALID");
|
|
10972
|
-
if (!
|
|
11006
|
+
if (!bu.test(i))
|
|
10973
11007
|
throw new O("TARGET_INVALID");
|
|
10974
11008
|
const a = this.uiCommands.getTarget(i);
|
|
10975
11009
|
if (a && !t.includes(a.kind))
|
|
@@ -11006,8 +11040,8 @@ class wu {
|
|
|
11006
11040
|
position: "fixed",
|
|
11007
11041
|
pointerEvents: "none",
|
|
11008
11042
|
zIndex: "2147483647",
|
|
11009
|
-
border: `2px solid ${
|
|
11010
|
-
boxShadow:
|
|
11043
|
+
border: `2px solid ${hn}`,
|
|
11044
|
+
boxShadow: pn,
|
|
11011
11045
|
boxSizing: "border-box"
|
|
11012
11046
|
}), document.body.appendChild(i);
|
|
11013
11047
|
const a = () => {
|
|
@@ -11030,16 +11064,16 @@ class wu {
|
|
|
11030
11064
|
}, d = !(typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) && typeof i.animate == "function" ? i.animate(
|
|
11031
11065
|
[
|
|
11032
11066
|
{
|
|
11033
|
-
borderColor:
|
|
11034
|
-
boxShadow:
|
|
11067
|
+
borderColor: hn,
|
|
11068
|
+
boxShadow: pn
|
|
11035
11069
|
},
|
|
11036
11070
|
{
|
|
11037
|
-
borderColor:
|
|
11038
|
-
boxShadow:
|
|
11071
|
+
borderColor: wu,
|
|
11072
|
+
boxShadow: yu
|
|
11039
11073
|
},
|
|
11040
11074
|
{
|
|
11041
|
-
borderColor:
|
|
11042
|
-
boxShadow:
|
|
11075
|
+
borderColor: hn,
|
|
11076
|
+
boxShadow: pn
|
|
11043
11077
|
}
|
|
11044
11078
|
],
|
|
11045
11079
|
{
|
|
@@ -11077,7 +11111,7 @@ class wu {
|
|
|
11077
11111
|
async finish(e, t, r, i) {
|
|
11078
11112
|
Dr.has(e.status) && (this.completed.set(e.commandId, {
|
|
11079
11113
|
...e,
|
|
11080
|
-
storedUntil: Date.now() +
|
|
11114
|
+
storedUntil: Date.now() + mu
|
|
11081
11115
|
}), this.saveCompleted(t)), this.onStatus?.({ ...e, commandType: i }), await r(e);
|
|
11082
11116
|
}
|
|
11083
11117
|
storageKey(e) {
|
|
@@ -11112,7 +11146,7 @@ class wu {
|
|
|
11112
11146
|
};
|
|
11113
11147
|
}
|
|
11114
11148
|
}
|
|
11115
|
-
class
|
|
11149
|
+
class Cu {
|
|
11116
11150
|
constructor(e, t) {
|
|
11117
11151
|
this.getSession = e, this.onSessionExpired = t;
|
|
11118
11152
|
}
|
|
@@ -11151,10 +11185,10 @@ class yu {
|
|
|
11151
11185
|
}
|
|
11152
11186
|
}
|
|
11153
11187
|
}
|
|
11154
|
-
const Br = wo, Wr = 3e4,
|
|
11188
|
+
const Br = wo, Wr = 3e4, Iu = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:\d{2})$/, Xr = (n) => {
|
|
11155
11189
|
z.error("Session renewal callback failed", n);
|
|
11156
11190
|
};
|
|
11157
|
-
class
|
|
11191
|
+
class Ku extends EventTarget {
|
|
11158
11192
|
root = null;
|
|
11159
11193
|
hostElement;
|
|
11160
11194
|
shadowRoot;
|
|
@@ -11172,12 +11206,12 @@ class qu extends EventTarget {
|
|
|
11172
11206
|
setLocaleImpl = null;
|
|
11173
11207
|
commandRuntime;
|
|
11174
11208
|
eventTracker;
|
|
11175
|
-
onSessionExpired =
|
|
11209
|
+
onSessionExpired = uu(
|
|
11176
11210
|
() => {
|
|
11177
11211
|
this.destroyed || this.runRenewSessionCallback();
|
|
11178
11212
|
},
|
|
11179
|
-
|
|
11180
|
-
{ leading: !0, maxWait:
|
|
11213
|
+
yn,
|
|
11214
|
+
{ leading: !0, maxWait: yn }
|
|
11181
11215
|
);
|
|
11182
11216
|
runRenewSessionCallback() {
|
|
11183
11217
|
try {
|
|
@@ -11192,10 +11226,10 @@ class qu extends EventTarget {
|
|
|
11192
11226
|
super.addEventListener(e, t, r);
|
|
11193
11227
|
}
|
|
11194
11228
|
constructor(e) {
|
|
11195
|
-
if (super(), this.validateCustomerInteractionSession(e.customerInteractionSession), this.config = e, this.eventTracker = new
|
|
11229
|
+
if (super(), this.validateCustomerInteractionSession(e.customerInteractionSession), this.config = e, this.eventTracker = new Cu(
|
|
11196
11230
|
() => this.config.customerInteractionSession,
|
|
11197
11231
|
this.onSessionExpired
|
|
11198
|
-
), this.commandRuntime = new
|
|
11232
|
+
), this.commandRuntime = new vu(
|
|
11199
11233
|
{},
|
|
11200
11234
|
e.handlers,
|
|
11201
11235
|
this.onCommandStatus
|
|
@@ -11233,7 +11267,7 @@ class qu extends EventTarget {
|
|
|
11233
11267
|
},
|
|
11234
11268
|
commandRuntime: this.commandRuntime
|
|
11235
11269
|
};
|
|
11236
|
-
this.destroyed || (this.root =
|
|
11270
|
+
this.destroyed || (this.root = Fd(e, this.config, a));
|
|
11237
11271
|
}
|
|
11238
11272
|
onAvatarReady = (e) => {
|
|
11239
11273
|
if (!this.destroyed) {
|
|
@@ -11313,7 +11347,7 @@ class qu extends EventTarget {
|
|
|
11313
11347
|
};
|
|
11314
11348
|
injectStyles(e) {
|
|
11315
11349
|
const t = document.createElement("style");
|
|
11316
|
-
t.textContent =
|
|
11350
|
+
t.textContent = Dd, e.appendChild(t);
|
|
11317
11351
|
}
|
|
11318
11352
|
validateCustomerInteractionSession(e) {
|
|
11319
11353
|
if (!e?.accessToken?.trim())
|
|
@@ -11324,7 +11358,7 @@ class qu extends EventTarget {
|
|
|
11324
11358
|
throw new Error(
|
|
11325
11359
|
"ChatWidget: customerInteractionSession.interactionSessionId is invalid"
|
|
11326
11360
|
);
|
|
11327
|
-
if (!
|
|
11361
|
+
if (!Iu.test(e.expiresAt) || !Number.isFinite(Date.parse(e.expiresAt)))
|
|
11328
11362
|
throw new Error(
|
|
11329
11363
|
"ChatWidget: customerInteractionSession.expiresAt is invalid"
|
|
11330
11364
|
);
|
|
@@ -11351,48 +11385,48 @@ class qu extends EventTarget {
|
|
|
11351
11385
|
}
|
|
11352
11386
|
}
|
|
11353
11387
|
export {
|
|
11354
|
-
|
|
11355
|
-
|
|
11388
|
+
Vu as A,
|
|
11389
|
+
Ou as B,
|
|
11356
11390
|
de as C,
|
|
11357
|
-
|
|
11358
|
-
|
|
11359
|
-
|
|
11391
|
+
Uu as D,
|
|
11392
|
+
ju as E,
|
|
11393
|
+
bn as F,
|
|
11360
11394
|
es as G,
|
|
11361
|
-
|
|
11395
|
+
Su as H,
|
|
11362
11396
|
z as I,
|
|
11363
|
-
|
|
11397
|
+
Ku as J,
|
|
11364
11398
|
dc as K,
|
|
11365
11399
|
uc as L,
|
|
11366
11400
|
Q as M,
|
|
11367
11401
|
Le as N,
|
|
11368
11402
|
Ee as P,
|
|
11369
|
-
|
|
11403
|
+
Tu as R,
|
|
11370
11404
|
Bi as S,
|
|
11371
|
-
|
|
11405
|
+
Lu as V,
|
|
11372
11406
|
jn as a,
|
|
11373
11407
|
qt as b,
|
|
11374
11408
|
ic as c,
|
|
11375
|
-
|
|
11376
|
-
|
|
11377
|
-
|
|
11409
|
+
qu as d,
|
|
11410
|
+
Ot as e,
|
|
11411
|
+
Tt as f,
|
|
11378
11412
|
Do as g,
|
|
11379
|
-
|
|
11380
|
-
|
|
11381
|
-
|
|
11382
|
-
|
|
11383
|
-
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
|
|
11413
|
+
Zu as h,
|
|
11414
|
+
md as i,
|
|
11415
|
+
Fu as j,
|
|
11416
|
+
Bu as k,
|
|
11417
|
+
Du as l,
|
|
11418
|
+
zu as m,
|
|
11419
|
+
Gu as n,
|
|
11420
|
+
Wu as o,
|
|
11421
|
+
Xu as p,
|
|
11388
11422
|
Vo as q,
|
|
11389
11423
|
Oo as r,
|
|
11390
11424
|
ye as s,
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11425
|
+
Mu as t,
|
|
11426
|
+
pt as u,
|
|
11427
|
+
Hu as v,
|
|
11394
11428
|
ac as w,
|
|
11395
11429
|
Ki as x,
|
|
11396
|
-
|
|
11397
|
-
|
|
11430
|
+
Nu as y,
|
|
11431
|
+
Pu as z
|
|
11398
11432
|
};
|