avin-ai 0.2.7 → 0.2.9
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/avin-ai.es.js +711 -483
- package/dist/avin-ai.js +73 -79
- package/dist/avin-ai.umd.js +74 -80
- package/dist/index.d.ts +82 -0
- package/package.json +1 -1
package/dist/avin-ai.es.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
class
|
|
1
|
+
var V = Object.defineProperty;
|
|
2
|
+
var K = (c, t, e) => t in c ? V(c, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[t] = e;
|
|
3
|
+
var n = (c, t, e) => K(c, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
class M {
|
|
5
5
|
constructor(t) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
n(this, "serverUrl");
|
|
7
|
+
n(this, "agentId");
|
|
8
|
+
n(this, "callId");
|
|
9
|
+
n(this, "onConnected");
|
|
10
|
+
n(this, "onDisconnected");
|
|
11
|
+
n(this, "onError");
|
|
12
|
+
n(this, "onTranscription");
|
|
13
13
|
// @ts-ignore
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
n(this, "onRemoteTrack");
|
|
15
|
+
n(this, "onClientToolCall");
|
|
16
|
+
n(this, "pc", null);
|
|
17
|
+
n(this, "dataChannel", null);
|
|
18
|
+
n(this, "audioElement", null);
|
|
19
|
+
n(this, "connected", !1);
|
|
20
|
+
n(this, "iceServers");
|
|
21
|
+
n(this, "token");
|
|
22
22
|
if (!t.serverUrl) throw new Error("serverUrl is required");
|
|
23
23
|
if (!t.agentId) throw new Error("agentId is required");
|
|
24
24
|
this.serverUrl = t.serverUrl.replace(/\/$/, ""), this.agentId = t.agentId, this.callId = t.callId || this.generateCallId(), this.iceServers = t.iceServers, this.token = t.token, this.onConnected = t.onConnected || (() => {
|
|
@@ -36,9 +36,9 @@ class Q {
|
|
|
36
36
|
try {
|
|
37
37
|
if (!this.iceServers && this.token)
|
|
38
38
|
try {
|
|
39
|
-
this.iceServers = await
|
|
40
|
-
} catch (
|
|
41
|
-
console.warn("⚠️ [WebRTC] Failed to fetch ICE servers:",
|
|
39
|
+
this.iceServers = await M.fetchIceServers(this.token);
|
|
40
|
+
} catch (a) {
|
|
41
|
+
console.warn("⚠️ [WebRTC] Failed to fetch ICE servers:", a);
|
|
42
42
|
}
|
|
43
43
|
this.pc = new RTCPeerConnection({
|
|
44
44
|
iceServers: this.iceServers || [
|
|
@@ -66,56 +66,56 @@ class Q {
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
if (console.log("🎤 [WebRTC] Microphone access granted"), !this.pc) {
|
|
69
|
-
console.log("[WebRTC] Connection aborted: peer connection closed during setup"), t.getTracks().forEach((
|
|
69
|
+
console.log("[WebRTC] Connection aborted: peer connection closed during setup"), t.getTracks().forEach((a) => a.stop());
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
|
-
if (t.getTracks().forEach((
|
|
73
|
-
var
|
|
74
|
-
(
|
|
72
|
+
if (t.getTracks().forEach((a) => {
|
|
73
|
+
var r;
|
|
74
|
+
(r = this.pc) == null || r.addTrack(a, t);
|
|
75
75
|
}), !this.pc)
|
|
76
76
|
throw new Error("RTCPeerConnection was closed unexpectedly");
|
|
77
|
-
this.dataChannel = this.pc.createDataChannel("control"), this.dataChannel.onopen = () => console.log("📡 [WebRTC] DataChannel opened"), this.dataChannel.onmessage = (
|
|
78
|
-
if (typeof
|
|
77
|
+
this.dataChannel = this.pc.createDataChannel("control"), this.dataChannel.onopen = () => console.log("📡 [WebRTC] DataChannel opened"), this.dataChannel.onmessage = (a) => {
|
|
78
|
+
if (typeof a.data == "string")
|
|
79
79
|
try {
|
|
80
|
-
this.handleControlEvent(JSON.parse(
|
|
80
|
+
this.handleControlEvent(JSON.parse(a.data));
|
|
81
81
|
} catch {
|
|
82
|
-
console.warn("[WebRTC] Failed to parse message:",
|
|
82
|
+
console.warn("[WebRTC] Failed to parse message:", a.data);
|
|
83
83
|
}
|
|
84
|
-
else if (
|
|
84
|
+
else if (a.data instanceof ArrayBuffer)
|
|
85
85
|
try {
|
|
86
|
-
const
|
|
86
|
+
const r = new TextDecoder().decode(a.data);
|
|
87
87
|
try {
|
|
88
|
-
const
|
|
89
|
-
|
|
88
|
+
const l = JSON.parse(r);
|
|
89
|
+
l && typeof l == "object" && l.event === "client_tool_call" ? (console.log("[OvinAI] Safely decoding binary tool_call to JSON:", l), this.handleControlEvent(l)) : console.log("[OvinAI] Decoded JSON from binary (inspect only):", l);
|
|
90
90
|
} catch {
|
|
91
|
-
console.log("[OvinAI] Decoded String from binary:",
|
|
91
|
+
console.log("[OvinAI] Decoded String from binary:", r);
|
|
92
92
|
}
|
|
93
93
|
} catch {
|
|
94
|
-
console.log("[OvinAI] Received binary data:",
|
|
94
|
+
console.log("[OvinAI] Received binary data:", a.data.byteLength, "bytes (not decodable)");
|
|
95
95
|
}
|
|
96
|
-
else
|
|
96
|
+
else a.data instanceof Blob && a.data.text().then((r) => {
|
|
97
97
|
try {
|
|
98
|
-
this.handleControlEvent(JSON.parse(
|
|
98
|
+
this.handleControlEvent(JSON.parse(r));
|
|
99
99
|
} catch {
|
|
100
|
-
console.warn("[WebRTC] Failed to parse blob data:",
|
|
100
|
+
console.warn("[WebRTC] Failed to parse blob data:", r);
|
|
101
101
|
}
|
|
102
102
|
});
|
|
103
|
-
}, this.dataChannel.onerror = (
|
|
104
|
-
const
|
|
105
|
-
console.log(`📥 [WebRTC] Received ${
|
|
103
|
+
}, this.dataChannel.onerror = (a) => console.error("❌ [WebRTC] DataChannel error:", a), this.pc.ontrack = (a) => {
|
|
104
|
+
const r = a.track, l = a.streams[0];
|
|
105
|
+
console.log(`📥 [WebRTC] Received ${r.kind} track`), r.kind === "audio" ? (console.log("🔊 [WebRTC] Received audio track from server"), this.audioElement = new Audio(), this.audioElement.srcObject = l, this.audioElement.play().catch((A) => console.warn("Audio autoplay blocked:", A)), this.audioElement.onended = () => {
|
|
106
106
|
this.sendEvent("playedStream"), console.log("✅ [WebRTC] TTS playback complete");
|
|
107
|
-
}) :
|
|
107
|
+
}) : r.kind === "video" && (console.log("📹 [WebRTC] Video track received"), this.onRemoteTrack(r, l));
|
|
108
108
|
};
|
|
109
109
|
const e = () => {
|
|
110
|
-
var
|
|
111
|
-
console.log("🔄 [WebRTC] State:", (
|
|
112
|
-
const
|
|
113
|
-
|
|
110
|
+
var l, A, d, w, f, p, h, u, g, m, y;
|
|
111
|
+
console.log("🔄 [WebRTC] State:", (l = this.pc) == null ? void 0 : l.connectionState, "| ICE:", (A = this.pc) == null ? void 0 : A.iceConnectionState);
|
|
112
|
+
const a = ((d = this.pc) == null ? void 0 : d.connectionState) === "connected" || ((w = this.pc) == null ? void 0 : w.iceConnectionState) === "connected" || ((f = this.pc) == null ? void 0 : f.iceConnectionState) === "completed", r = ((p = this.pc) == null ? void 0 : p.connectionState) === "failed" || ((h = this.pc) == null ? void 0 : h.iceConnectionState) === "failed" || ((u = this.pc) == null ? void 0 : u.connectionState) === "closed" || ((g = this.pc) == null ? void 0 : g.iceConnectionState) === "closed" || ((m = this.pc) == null ? void 0 : m.connectionState) === "disconnected" || ((y = this.pc) == null ? void 0 : y.iceConnectionState) === "disconnected";
|
|
113
|
+
a && !this.connected ? (this.connected = !0, this.onConnected()) : r && this.connected && (this.connected = !1, this.onDisconnected());
|
|
114
114
|
};
|
|
115
115
|
this.pc.onconnectionstatechange = e, this.pc.oniceconnectionstatechange = e;
|
|
116
116
|
const i = await this.pc.createOffer();
|
|
117
117
|
await this.pc.setLocalDescription(i), console.log("📝 [WebRTC] Created offer, waiting for ICE gathering..."), await this.waitForIceGathering(), console.log("🧊 [WebRTC] ICE gathering complete"), console.log("📤 [WebRTC] Sending offer via HTTP...");
|
|
118
|
-
const
|
|
118
|
+
const s = await fetch(`${this.serverUrl}/webrtc?agent=${this.agentId}_${this.callId}`, {
|
|
119
119
|
method: "POST",
|
|
120
120
|
headers: { "Content-Type": "application/json" },
|
|
121
121
|
body: JSON.stringify({
|
|
@@ -124,12 +124,12 @@ class Q {
|
|
|
124
124
|
callId: this.callId
|
|
125
125
|
})
|
|
126
126
|
});
|
|
127
|
-
if (!
|
|
128
|
-
const
|
|
129
|
-
throw new Error(
|
|
127
|
+
if (!s.ok) {
|
|
128
|
+
const a = await s.json();
|
|
129
|
+
throw new Error(a.error || `HTTP ${s.status}`);
|
|
130
130
|
}
|
|
131
|
-
const { answer:
|
|
132
|
-
console.log("📥 [WebRTC] Received answer from server"), await this.pc.setRemoteDescription(
|
|
131
|
+
const { answer: o } = await s.json();
|
|
132
|
+
console.log("📥 [WebRTC] Received answer from server"), await this.pc.setRemoteDescription(o), console.log("✅ [WebRTC] Connection established!");
|
|
133
133
|
} catch (t) {
|
|
134
134
|
throw console.error("❌ [WebRTC] Connection failed:", t), this.disconnect(), this.onError(t.message || t), t;
|
|
135
135
|
}
|
|
@@ -144,8 +144,8 @@ class Q {
|
|
|
144
144
|
t();
|
|
145
145
|
else {
|
|
146
146
|
const e = () => {
|
|
147
|
-
var i,
|
|
148
|
-
((i = this.pc) == null ? void 0 : i.iceGatheringState) === "complete" && ((
|
|
147
|
+
var i, s;
|
|
148
|
+
((i = this.pc) == null ? void 0 : i.iceGatheringState) === "complete" && ((s = this.pc) == null || s.removeEventListener("icegatheringstatechange", e), t());
|
|
149
149
|
};
|
|
150
150
|
this.pc.addEventListener("icegatheringstatechange", e), setTimeout(() => {
|
|
151
151
|
var i;
|
|
@@ -225,7 +225,7 @@ class Q {
|
|
|
225
225
|
static async fetchIceServers(t, e = "https://coredb.travelr.club/v1/graphql") {
|
|
226
226
|
var i;
|
|
227
227
|
try {
|
|
228
|
-
const
|
|
228
|
+
const o = await fetch(e, {
|
|
229
229
|
method: "POST",
|
|
230
230
|
headers: {
|
|
231
231
|
"Content-Type": "application/json",
|
|
@@ -240,21 +240,21 @@ class Q {
|
|
|
240
240
|
}
|
|
241
241
|
}` })
|
|
242
242
|
});
|
|
243
|
-
if (!
|
|
243
|
+
if (!o.ok)
|
|
244
244
|
throw new Error("Failed to fetch ICE servers");
|
|
245
|
-
return ((i = (await
|
|
246
|
-
} catch (
|
|
247
|
-
throw console.error("[WebRTC] Failed to fetch ICE servers:",
|
|
245
|
+
return ((i = (await o.json()).data) == null ? void 0 : i.ice_servers) || [];
|
|
246
|
+
} catch (s) {
|
|
247
|
+
throw console.error("[WebRTC] Failed to fetch ICE servers:", s), s;
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
const
|
|
252
|
-
class
|
|
251
|
+
const q = {};
|
|
252
|
+
class Z {
|
|
253
253
|
constructor(t) {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
n(this, "config");
|
|
255
|
+
n(this, "_status", "idle");
|
|
256
|
+
n(this, "client", null);
|
|
257
|
+
n(this, "listeners", /* @__PURE__ */ new Map());
|
|
258
258
|
if (!t.agentId) throw new Error("[AvinAI] agentId is required");
|
|
259
259
|
this.config = t;
|
|
260
260
|
}
|
|
@@ -288,7 +288,7 @@ class K {
|
|
|
288
288
|
}
|
|
289
289
|
emit(t, e) {
|
|
290
290
|
var i;
|
|
291
|
-
(i = this.listeners.get(t)) == null || i.forEach((
|
|
291
|
+
(i = this.listeners.get(t)) == null || i.forEach((s) => s(e));
|
|
292
292
|
}
|
|
293
293
|
// ─── Lifecycle ───────────────────────────────────────────────────────────
|
|
294
294
|
/**
|
|
@@ -303,7 +303,7 @@ class K {
|
|
|
303
303
|
this._setStatus("connecting");
|
|
304
304
|
const t = this.config.serverUrl || this._inferServerUrl();
|
|
305
305
|
try {
|
|
306
|
-
this.client = new
|
|
306
|
+
this.client = new M({
|
|
307
307
|
serverUrl: t,
|
|
308
308
|
agentId: this.config.agentId,
|
|
309
309
|
callId: this.config.callId,
|
|
@@ -323,13 +323,13 @@ class K {
|
|
|
323
323
|
},
|
|
324
324
|
// @ts-ignore - onClientToolCall is on the dashboard's WebRTCClient; proxy it here
|
|
325
325
|
onClientToolCall: (e) => {
|
|
326
|
-
const i = (e == null ? void 0 : e.data) || e,
|
|
326
|
+
const i = (e == null ? void 0 : e.data) || e, s = {
|
|
327
327
|
name: i.name || i.tool_name || "",
|
|
328
328
|
arguments: i.arguments || i.args || {},
|
|
329
329
|
tool_call_id: i.tool_call_id || i.call_id || "",
|
|
330
330
|
execution_mode: i.execution_mode || "fire_and_forget"
|
|
331
331
|
};
|
|
332
|
-
this.emit("tool_call",
|
|
332
|
+
this.emit("tool_call", s);
|
|
333
333
|
},
|
|
334
334
|
// @ts-ignore - onRemoteTrack is on the dashboard's WebRTCClient; proxy it here
|
|
335
335
|
onRemoteTrack: (e, i) => {
|
|
@@ -410,17 +410,17 @@ class K {
|
|
|
410
410
|
this._status = t;
|
|
411
411
|
}
|
|
412
412
|
_inferServerUrl() {
|
|
413
|
-
return (typeof import.meta < "u" &&
|
|
413
|
+
return (typeof import.meta < "u" && q || {}).VITE_WEBRTC_SERVER_URL || "https://in-godspeed.travelr.club";
|
|
414
414
|
}
|
|
415
415
|
_assertConnected(t) {
|
|
416
416
|
if (!this.client || !this.isConnected)
|
|
417
417
|
throw new Error(`[AvinAI] Cannot call ${t}() when not connected. Call start() first.`);
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
|
-
const
|
|
421
|
-
class
|
|
420
|
+
const T = "https://coredb.travelr.club/v1/graphql";
|
|
421
|
+
class _ {
|
|
422
422
|
static async fetchWidgetConfig(t) {
|
|
423
|
-
var i,
|
|
423
|
+
var i, s;
|
|
424
424
|
const e = `
|
|
425
425
|
query GetWidgetConfig($id: uuid!) {
|
|
426
426
|
app_widget_by_pk(id: $id) {
|
|
@@ -441,15 +441,15 @@ class Z {
|
|
|
441
441
|
}
|
|
442
442
|
`;
|
|
443
443
|
try {
|
|
444
|
-
const
|
|
444
|
+
const r = (i = (await (await fetch(T, {
|
|
445
445
|
method: "POST",
|
|
446
446
|
headers: { "Content-Type": "application/json" },
|
|
447
447
|
body: JSON.stringify({ query: e, variables: { id: t } })
|
|
448
448
|
})).json()).data) == null ? void 0 : i.app_widget_by_pk;
|
|
449
|
-
if (!
|
|
449
|
+
if (!r)
|
|
450
450
|
throw new Error(`Widget configuration not found for ID: ${t}`);
|
|
451
|
-
if (
|
|
452
|
-
const d = await (await fetch(
|
|
451
|
+
if (r.client_id) {
|
|
452
|
+
const d = await (await fetch(T, {
|
|
453
453
|
method: "POST",
|
|
454
454
|
headers: { "Content-Type": "application/json" },
|
|
455
455
|
body: JSON.stringify({
|
|
@@ -460,25 +460,25 @@ class Z {
|
|
|
460
460
|
}
|
|
461
461
|
}
|
|
462
462
|
`,
|
|
463
|
-
variables: { id:
|
|
463
|
+
variables: { id: r.client_id }
|
|
464
464
|
})
|
|
465
465
|
})).json();
|
|
466
|
-
(
|
|
466
|
+
(s = d.data) != null && s.client_by_pk && (r.client = d.data.client_by_pk);
|
|
467
467
|
}
|
|
468
|
-
return
|
|
469
|
-
} catch (
|
|
470
|
-
throw console.error("[AvinAI] Failed to fetch widget config:",
|
|
468
|
+
return r;
|
|
469
|
+
} catch (o) {
|
|
470
|
+
throw console.error("[AvinAI] Failed to fetch widget config:", o), o;
|
|
471
471
|
}
|
|
472
472
|
}
|
|
473
473
|
}
|
|
474
474
|
const Y = "https://coredb.travelr.club/v1/graphql";
|
|
475
|
-
let
|
|
476
|
-
class
|
|
475
|
+
let I = "https://inboxapi.travelr.club";
|
|
476
|
+
class B {
|
|
477
477
|
static setChatUrl(t) {
|
|
478
|
-
|
|
478
|
+
I = t;
|
|
479
479
|
}
|
|
480
480
|
static async createChatProspect(t) {
|
|
481
|
-
var i,
|
|
481
|
+
var i, s;
|
|
482
482
|
const e = `
|
|
483
483
|
mutation CreateChatProspect($prospectGroupId: uuid!, $name: String!) {
|
|
484
484
|
insert_prospects_one(object: {prospect_group_id: $prospectGroupId, name: $name, source: "widget"}) {
|
|
@@ -487,7 +487,7 @@ class C {
|
|
|
487
487
|
}
|
|
488
488
|
`;
|
|
489
489
|
try {
|
|
490
|
-
const
|
|
490
|
+
const a = await (await fetch(Y, {
|
|
491
491
|
method: "POST",
|
|
492
492
|
headers: { "Content-Type": "application/json" },
|
|
493
493
|
body: JSON.stringify({
|
|
@@ -498,16 +498,16 @@ class C {
|
|
|
498
498
|
}
|
|
499
499
|
})
|
|
500
500
|
})).json();
|
|
501
|
-
return
|
|
502
|
-
} catch (
|
|
503
|
-
return console.error("[AvinAI] Failed to create prospect:",
|
|
501
|
+
return a.errors ? (console.warn("[AvinAI] Prospect creation failed, using anonymous ID", a.errors), `anon_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`) : ((s = (i = a.data) == null ? void 0 : i.insert_prospects_one) == null ? void 0 : s.id) || `anon_${Date.now()}`;
|
|
502
|
+
} catch (o) {
|
|
503
|
+
return console.error("[AvinAI] Failed to create prospect:", o), `anon_${Date.now()}`;
|
|
504
504
|
}
|
|
505
505
|
}
|
|
506
506
|
// Calls the new Go bridge /widget/chat endpoint with an empty message to initialize the session and get the Welcome config + inbox_id
|
|
507
507
|
static async fetchWelcomeMessage(t, e, i) {
|
|
508
|
-
var
|
|
508
|
+
var s, o;
|
|
509
509
|
try {
|
|
510
|
-
const
|
|
510
|
+
const a = await fetch(`${I}/widget/chat`, {
|
|
511
511
|
method: "POST",
|
|
512
512
|
headers: { "Content-Type": "application/json" },
|
|
513
513
|
body: JSON.stringify({
|
|
@@ -518,22 +518,22 @@ class C {
|
|
|
518
518
|
stream: !1
|
|
519
519
|
})
|
|
520
520
|
});
|
|
521
|
-
if (!
|
|
522
|
-
const
|
|
523
|
-
let
|
|
524
|
-
const d =
|
|
525
|
-
if (
|
|
526
|
-
|
|
527
|
-
const
|
|
528
|
-
|
|
521
|
+
if (!a.ok) throw new Error("Failed to fetch welcome message");
|
|
522
|
+
const r = await a.json();
|
|
523
|
+
let l = r.response || "Hello! How can I help you today?", A;
|
|
524
|
+
const d = r.chat_id || r.inbox_id;
|
|
525
|
+
if (r.widget) {
|
|
526
|
+
A = r.widget;
|
|
527
|
+
const w = { text: l };
|
|
528
|
+
A.type === "carousel" && ((s = A.data) != null && s.cards) ? w.cards = A.data.cards : A.type === "button_list" && ((o = A.data) != null && o.buttons) && (w.buttons = A.data.buttons), l = JSON.stringify(w);
|
|
529
529
|
}
|
|
530
|
-
return { role: "assistant", content:
|
|
531
|
-
} catch (
|
|
532
|
-
return console.error("[AvinAI] Failed to fetch welcome message:",
|
|
530
|
+
return { role: "assistant", content: l, widget: A, chatId: d };
|
|
531
|
+
} catch (a) {
|
|
532
|
+
return console.error("[AvinAI] Failed to fetch welcome message:", a), { role: "assistant", content: "Hello! How can I help you today?" };
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
|
-
static async sendChatMessage(t, e, i,
|
|
536
|
-
var
|
|
535
|
+
static async sendChatMessage(t, e, i, s, o, a, r, l) {
|
|
536
|
+
var A, d, w, f;
|
|
537
537
|
try {
|
|
538
538
|
const p = {
|
|
539
539
|
agent_id: t,
|
|
@@ -541,80 +541,80 @@ class C {
|
|
|
541
541
|
prospect_id: e,
|
|
542
542
|
stream: !0
|
|
543
543
|
};
|
|
544
|
-
|
|
545
|
-
const
|
|
544
|
+
s && (p.inbox_id = s), l && (p.widget_id = l);
|
|
545
|
+
const h = await fetch(`${I}/widget/chat`, {
|
|
546
546
|
method: "POST",
|
|
547
547
|
headers: { "Content-Type": "application/json" },
|
|
548
548
|
body: JSON.stringify(p)
|
|
549
549
|
});
|
|
550
|
-
if (!
|
|
551
|
-
const
|
|
552
|
-
if (!
|
|
553
|
-
let
|
|
550
|
+
if (!h.ok) throw new Error("Chat request failed");
|
|
551
|
+
const u = (A = h.body) == null ? void 0 : A.getReader(), g = new TextDecoder();
|
|
552
|
+
if (!u) throw new Error("No reader");
|
|
553
|
+
let m = "", y = "", b = null;
|
|
554
554
|
for (; ; ) {
|
|
555
|
-
const { done:
|
|
556
|
-
if (
|
|
557
|
-
y +=
|
|
558
|
-
const
|
|
555
|
+
const { done: W, value: X } = await u.read();
|
|
556
|
+
if (W) break;
|
|
557
|
+
y += g.decode(X, { stream: !0 });
|
|
558
|
+
const k = y.split(`
|
|
559
559
|
`);
|
|
560
|
-
y =
|
|
561
|
-
for (const
|
|
562
|
-
const
|
|
563
|
-
if (
|
|
564
|
-
const
|
|
565
|
-
if (
|
|
566
|
-
|
|
560
|
+
y = k.pop() || "";
|
|
561
|
+
for (const F of k) {
|
|
562
|
+
const Q = F.trim();
|
|
563
|
+
if (Q && Q.startsWith("data: ")) {
|
|
564
|
+
const S = Q.slice(6);
|
|
565
|
+
if (S === "[DONE]") {
|
|
566
|
+
r(b);
|
|
567
567
|
return;
|
|
568
568
|
}
|
|
569
569
|
try {
|
|
570
|
-
const
|
|
571
|
-
if (
|
|
572
|
-
|
|
570
|
+
const v = JSON.parse(S);
|
|
571
|
+
if (v.type === "metadata" && v.chat_id) {
|
|
572
|
+
b = v.chat_id;
|
|
573
573
|
continue;
|
|
574
574
|
}
|
|
575
|
-
const
|
|
576
|
-
|
|
575
|
+
const P = (f = (w = (d = v.choices) == null ? void 0 : d[0]) == null ? void 0 : w.delta) == null ? void 0 : f.content;
|
|
576
|
+
P && (m += P, o(m)), v.widget && a(v.widget), v.chat_id && !b && (b = v.chat_id);
|
|
577
577
|
} catch {
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
580
|
}
|
|
581
581
|
}
|
|
582
|
-
|
|
582
|
+
r(b);
|
|
583
583
|
} catch (p) {
|
|
584
|
-
console.error("[AvinAI] Chat error:", p),
|
|
584
|
+
console.error("[AvinAI] Chat error:", p), o("Sorry, I encountered an error. Please try again."), r(null);
|
|
585
585
|
}
|
|
586
586
|
}
|
|
587
587
|
static listenForAdminReplies(t, e, i) {
|
|
588
|
-
const
|
|
589
|
-
let
|
|
590
|
-
const
|
|
591
|
-
|
|
592
|
-
console.log("[AvinAI] SSE connection opened successfully."),
|
|
593
|
-
},
|
|
594
|
-
console.log("[AvinAI] 📡 Raw SSE Event triggered:",
|
|
588
|
+
const s = `${I}/inbox/stream?inbox_id=${t}&sender=${encodeURIComponent(e)}`;
|
|
589
|
+
let o = null, a = 0, r = !1;
|
|
590
|
+
const l = () => {
|
|
591
|
+
r || (o = new EventSource(s), console.log(`[AvinAI] Subscribed to SSE EventSource at ${o.url}`), o.onopen = () => {
|
|
592
|
+
console.log("[AvinAI] SSE connection opened successfully."), a = 0;
|
|
593
|
+
}, o.onmessage = (A) => {
|
|
594
|
+
console.log("[AvinAI] 📡 Raw SSE Event triggered:", A.data);
|
|
595
595
|
try {
|
|
596
|
-
const d = JSON.parse(
|
|
596
|
+
const d = JSON.parse(A.data);
|
|
597
597
|
console.log("[AvinAI] SSE stream JSON parsed:", d);
|
|
598
|
-
const
|
|
599
|
-
|
|
598
|
+
const w = d.direction === "outgoing", f = !!d.content, p = d.source !== "ai";
|
|
599
|
+
w && f && p && (console.log("[AvinAI] 🎯 Displaying admin message in chat UI:", d.content), i(d.content));
|
|
600
600
|
} catch (d) {
|
|
601
601
|
console.error("[AvinAI] SSE parse error", d);
|
|
602
602
|
}
|
|
603
|
-
},
|
|
604
|
-
if (console.error("[AvinAI] SSE connection error or disconnect",
|
|
605
|
-
const d = Math.min(2e3 * Math.pow(2,
|
|
606
|
-
console.log(`[AvinAI] Reconnecting SSE in ${d}ms (Attempt ${
|
|
603
|
+
}, o.onerror = (A) => {
|
|
604
|
+
if (console.error("[AvinAI] SSE connection error or disconnect", A), o && (o.close(), o = null), r) return;
|
|
605
|
+
const d = Math.min(2e3 * Math.pow(2, a), 3e4);
|
|
606
|
+
console.log(`[AvinAI] Reconnecting SSE in ${d}ms (Attempt ${a + 1})...`), a++, setTimeout(l, d);
|
|
607
607
|
});
|
|
608
608
|
};
|
|
609
|
-
return
|
|
609
|
+
return l(), {
|
|
610
610
|
close: () => {
|
|
611
|
-
|
|
611
|
+
r = !0, o && (o.close(), o = null, console.log("[AvinAI] SSE connection manually closed."));
|
|
612
612
|
}
|
|
613
613
|
};
|
|
614
614
|
}
|
|
615
615
|
static async createCall(t, e, i) {
|
|
616
|
-
var
|
|
617
|
-
const
|
|
616
|
+
var o, a;
|
|
617
|
+
const s = `
|
|
618
618
|
mutation CreateCall($object: calls_insert_input!) {
|
|
619
619
|
insert_calls_one(object: $object) {
|
|
620
620
|
id
|
|
@@ -622,11 +622,11 @@ class C {
|
|
|
622
622
|
}
|
|
623
623
|
`;
|
|
624
624
|
try {
|
|
625
|
-
const
|
|
625
|
+
const l = await (await fetch(Y, {
|
|
626
626
|
method: "POST",
|
|
627
627
|
headers: { "Content-Type": "application/json" },
|
|
628
628
|
body: JSON.stringify({
|
|
629
|
-
query:
|
|
629
|
+
query: s,
|
|
630
630
|
variables: {
|
|
631
631
|
object: {
|
|
632
632
|
agent_id: t,
|
|
@@ -639,27 +639,175 @@ class C {
|
|
|
639
639
|
}
|
|
640
640
|
})
|
|
641
641
|
})).json();
|
|
642
|
-
return
|
|
643
|
-
} catch (
|
|
644
|
-
return console.error("[AvinAI] Failed to create call:",
|
|
642
|
+
return l.errors ? (console.warn("[AvinAI] Call creation failed", l.errors), `web_${Date.now()}_${Math.random().toString(36).substr(2, 8)}`) : ((a = (o = l.data) == null ? void 0 : o.insert_calls_one) == null ? void 0 : a.id) || `web_${Date.now()}`;
|
|
643
|
+
} catch (r) {
|
|
644
|
+
return console.error("[AvinAI] Failed to create call:", r), `web_${Date.now()}_${Math.random().toString(36).substr(2, 8)}`;
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
647
|
}
|
|
648
|
-
class
|
|
648
|
+
class $ {
|
|
649
649
|
constructor(t) {
|
|
650
|
-
|
|
651
|
-
|
|
650
|
+
n(this, "config");
|
|
651
|
+
n(this, "root", null);
|
|
652
652
|
this.config = t;
|
|
653
653
|
}
|
|
654
654
|
async initialize(t) {
|
|
655
655
|
this.config = t;
|
|
656
656
|
}
|
|
657
657
|
}
|
|
658
|
-
const H = "data:image/png;base64,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", z = "data:image/png;base64,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", _ = (l, t) => `
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
658
|
+
const x = class x {
|
|
659
|
+
constructor(t) {
|
|
660
|
+
n(this, "tabId");
|
|
661
|
+
n(this, "sessionKey");
|
|
662
|
+
n(this, "channelName");
|
|
663
|
+
n(this, "channel", null);
|
|
664
|
+
n(this, "heartbeatTimer", null);
|
|
665
|
+
n(this, "listeners", /* @__PURE__ */ new Map());
|
|
666
|
+
const e = t.replace(/[^a-z0-9_-]/gi, "_");
|
|
667
|
+
this.sessionKey = `avinai_session_${e}`, this.channelName = `avinai_channel_${e}`, this.tabId = this._getOrCreateTabId(), this._setupChannel();
|
|
668
|
+
}
|
|
669
|
+
// ─── Public API ──────────────────────────────────────────────────────────
|
|
670
|
+
/** Returns this tab's unique ID (stable across same-tab page refreshes). */
|
|
671
|
+
getTabId() {
|
|
672
|
+
return this.tabId;
|
|
673
|
+
}
|
|
674
|
+
/**
|
|
675
|
+
* Try to claim the session for this tab.
|
|
676
|
+
* Returns true → session claimed (or restored after stale prior tab).
|
|
677
|
+
* Returns false → another live tab already owns the session.
|
|
678
|
+
*/
|
|
679
|
+
claimSession() {
|
|
680
|
+
const t = this._loadSession();
|
|
681
|
+
if (t) {
|
|
682
|
+
const s = Date.now() - t.lastActive, o = t.tabId === this.tabId, a = s > x.HEARTBEAT_TIMEOUT_MS;
|
|
683
|
+
if (o)
|
|
684
|
+
return this._startHeartbeat(), this._emit("session_restored"), !0;
|
|
685
|
+
if (!a)
|
|
686
|
+
return this._emit("tab_conflict"), !1;
|
|
687
|
+
}
|
|
688
|
+
const e = t ? { ...t, tabId: this.tabId, lastActive: Date.now() } : { tabId: this.tabId, prospectId: "", chatId: null, messages: [], lastActive: Date.now() };
|
|
689
|
+
this._saveSession(e), this._startHeartbeat(), this._broadcast({ type: "took_over", tabId: this.tabId });
|
|
690
|
+
const i = !!(t != null && t.prospectId);
|
|
691
|
+
return this._emit(i ? "session_restored" : "session_claimed"), !0;
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* Force-claim the session even if another tab owns it.
|
|
695
|
+
* Call this when the user explicitly clicks "Use here" in the conflict UI.
|
|
696
|
+
*/
|
|
697
|
+
forceClaimSession() {
|
|
698
|
+
const t = this._loadSession(), e = t ? { ...t, tabId: this.tabId, lastActive: Date.now() } : { tabId: this.tabId, prospectId: "", chatId: null, messages: [], lastActive: Date.now() };
|
|
699
|
+
this._saveSession(e), this._startHeartbeat(), this._broadcast({ type: "took_over", tabId: this.tabId }), this._emit("session_claimed");
|
|
700
|
+
}
|
|
701
|
+
/** Save / update the prospect and chat IDs for this session. */
|
|
702
|
+
saveIds(t, e) {
|
|
703
|
+
const i = this._loadSession() ?? this._blankSession();
|
|
704
|
+
this._saveSession({ ...i, prospectId: t, chatId: e, tabId: this.tabId, lastActive: Date.now() });
|
|
705
|
+
}
|
|
706
|
+
/** Append a message to the persisted history. */
|
|
707
|
+
pushMessage(t, e) {
|
|
708
|
+
const i = this._loadSession() ?? this._blankSession();
|
|
709
|
+
i.messages.push({ role: t, content: e, timestamp: Date.now() }), i.messages.length > 100 && (i.messages = i.messages.slice(-100)), this._saveSession({ ...i, tabId: this.tabId, lastActive: Date.now() });
|
|
710
|
+
}
|
|
711
|
+
/** Update the content of the last assistant message (streaming). */
|
|
712
|
+
updateLastAssistantMessage(t) {
|
|
713
|
+
const e = this._loadSession() ?? this._blankSession(), i = e.messages;
|
|
714
|
+
let s = !1;
|
|
715
|
+
for (let o = i.length - 1; o >= 0; o--)
|
|
716
|
+
if (i[o].role === "assistant" && i[o].content === "") {
|
|
717
|
+
i[o].content = t, s = !0;
|
|
718
|
+
break;
|
|
719
|
+
}
|
|
720
|
+
if (!s) {
|
|
721
|
+
for (let o = i.length - 1; o >= 0; o--)
|
|
722
|
+
if (i[o].role === "assistant") {
|
|
723
|
+
i[o].content = t, s = !0;
|
|
724
|
+
break;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
s || i.push({ role: "assistant", content: t, timestamp: Date.now() }), this._saveSession({ ...e, tabId: this.tabId, lastActive: Date.now() });
|
|
728
|
+
}
|
|
729
|
+
/** Returns the currently persisted session data (null if none). */
|
|
730
|
+
getSession() {
|
|
731
|
+
return this._loadSession();
|
|
732
|
+
}
|
|
733
|
+
/** Clears ALL session data (prospect_id, chat_id, messages). */
|
|
734
|
+
clearSession() {
|
|
735
|
+
localStorage.removeItem(this.sessionKey), this._broadcast({ type: "session_cleared", tabId: this.tabId }), this._emit("session_cleared");
|
|
736
|
+
}
|
|
737
|
+
/** Stop the heartbeat and release resources. Call on widget destroy. */
|
|
738
|
+
destroy() {
|
|
739
|
+
this._stopHeartbeat(), this.channel && (this.channel.close(), this.channel = null);
|
|
740
|
+
}
|
|
741
|
+
// ─── Event Emitter ───────────────────────────────────────────────────────
|
|
742
|
+
on(t, e) {
|
|
743
|
+
return this.listeners.has(t) || this.listeners.set(t, /* @__PURE__ */ new Set()), this.listeners.get(t).add(e), this;
|
|
744
|
+
}
|
|
745
|
+
off(t, e) {
|
|
746
|
+
var i;
|
|
747
|
+
return (i = this.listeners.get(t)) == null || i.delete(e), this;
|
|
748
|
+
}
|
|
749
|
+
// ─── Private ─────────────────────────────────────────────────────────────
|
|
750
|
+
_getOrCreateTabId() {
|
|
751
|
+
let t = sessionStorage.getItem("avinai_tab_id");
|
|
752
|
+
return t || (t = `tab_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`, sessionStorage.setItem("avinai_tab_id", t)), t;
|
|
753
|
+
}
|
|
754
|
+
_setupChannel() {
|
|
755
|
+
typeof BroadcastChannel > "u" || (this.channel = new BroadcastChannel(this.channelName), this.channel.onmessage = (t) => {
|
|
756
|
+
const e = t.data;
|
|
757
|
+
e.tabId !== this.tabId && (e.type === "took_over" && (this._stopHeartbeat(), this._emit("tab_took_over")), e.type, e.type === "session_cleared" && this._emit("session_cleared"));
|
|
758
|
+
});
|
|
759
|
+
}
|
|
760
|
+
_broadcast(t) {
|
|
761
|
+
var e;
|
|
762
|
+
(e = this.channel) == null || e.postMessage(t);
|
|
763
|
+
}
|
|
764
|
+
_startHeartbeat() {
|
|
765
|
+
this._stopHeartbeat(), this.heartbeatTimer = setInterval(() => {
|
|
766
|
+
const t = this._loadSession();
|
|
767
|
+
t && t.tabId === this.tabId && (this._saveSession({ ...t, lastActive: Date.now() }), this._broadcast({ type: "heartbeat", tabId: this.tabId }));
|
|
768
|
+
}, x.HEARTBEAT_INTERVAL_MS);
|
|
769
|
+
}
|
|
770
|
+
_stopHeartbeat() {
|
|
771
|
+
this.heartbeatTimer !== null && (clearInterval(this.heartbeatTimer), this.heartbeatTimer = null);
|
|
772
|
+
}
|
|
773
|
+
_loadSession() {
|
|
774
|
+
try {
|
|
775
|
+
const t = localStorage.getItem(this.sessionKey);
|
|
776
|
+
return t ? JSON.parse(t) : null;
|
|
777
|
+
} catch {
|
|
778
|
+
return null;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
_saveSession(t) {
|
|
782
|
+
try {
|
|
783
|
+
localStorage.setItem(this.sessionKey, JSON.stringify(t));
|
|
784
|
+
} catch (e) {
|
|
785
|
+
console.warn("[AvinAI] SessionManager: failed to save session", e);
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
_blankSession() {
|
|
789
|
+
return {
|
|
790
|
+
tabId: this.tabId,
|
|
791
|
+
prospectId: "",
|
|
792
|
+
chatId: null,
|
|
793
|
+
messages: [],
|
|
794
|
+
lastActive: Date.now()
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
_emit(t) {
|
|
798
|
+
var e;
|
|
799
|
+
(e = this.listeners.get(t)) == null || e.forEach((i) => i());
|
|
800
|
+
}
|
|
801
|
+
};
|
|
802
|
+
/** How often (ms) the active tab broadcasts its heartbeat */
|
|
803
|
+
n(x, "HEARTBEAT_INTERVAL_MS", 5e3), /** How old (ms) a heartbeat must be before we consider the tab dead */
|
|
804
|
+
n(x, "HEARTBEAT_TIMEOUT_MS", 15e3);
|
|
805
|
+
let D = x;
|
|
806
|
+
const J = "data:image/png;base64,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", L = "data:image/png;base64,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", ee = (c, t) => `
|
|
807
|
+
--primary: ${c};
|
|
808
|
+
--primary-hover: ${t || c};
|
|
809
|
+
--secondary: ${t || c};
|
|
810
|
+
`, te = `
|
|
663
811
|
@keyframes fadeInScale {
|
|
664
812
|
from { opacity: 0; transform: scale(0.8); }
|
|
665
813
|
to { opacity: 1; transform: scale(1); }
|
|
@@ -728,7 +876,7 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
728
876
|
from { transform: rotate(0deg); }
|
|
729
877
|
to { transform: rotate(360deg); }
|
|
730
878
|
}
|
|
731
|
-
`,
|
|
879
|
+
`, ie = `
|
|
732
880
|
:host {
|
|
733
881
|
display: block;
|
|
734
882
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
@@ -752,7 +900,7 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
752
900
|
--shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.15);
|
|
753
901
|
}
|
|
754
902
|
|
|
755
|
-
${
|
|
903
|
+
${te}
|
|
756
904
|
|
|
757
905
|
.widget-fab {
|
|
758
906
|
position: fixed;
|
|
@@ -1209,7 +1357,7 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
1209
1357
|
border-radius: 0;
|
|
1210
1358
|
}
|
|
1211
1359
|
}
|
|
1212
|
-
`,
|
|
1360
|
+
`, C = {
|
|
1213
1361
|
phone: `
|
|
1214
1362
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1215
1363
|
<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/>
|
|
@@ -1228,21 +1376,6 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
1228
1376
|
<line x1="12" y1="19" x2="12" y2="22"/>
|
|
1229
1377
|
</svg>
|
|
1230
1378
|
`,
|
|
1231
|
-
micOff: `
|
|
1232
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1233
|
-
<line x1="1" y1="1" x2="23" y2="23"/>
|
|
1234
|
-
<path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6"/>
|
|
1235
|
-
<path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23"/>
|
|
1236
|
-
<line x1="12" y1="19" x2="12" y2="23"/>
|
|
1237
|
-
</svg>
|
|
1238
|
-
`,
|
|
1239
|
-
waves: `
|
|
1240
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1241
|
-
<path d="M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/>
|
|
1242
|
-
<path d="M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/>
|
|
1243
|
-
<path d="M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/>
|
|
1244
|
-
</svg>
|
|
1245
|
-
`,
|
|
1246
1379
|
send: `
|
|
1247
1380
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1248
1381
|
<line x1="22" y1="2" x2="11" y2="13"/>
|
|
@@ -1254,26 +1387,6 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
1254
1387
|
<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>
|
|
1255
1388
|
</svg>
|
|
1256
1389
|
`,
|
|
1257
|
-
video: `
|
|
1258
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1259
|
-
<polygon points="23 7 16 12 23 17 23 7"/>
|
|
1260
|
-
<rect x="1" y="5" width="15" height="14" rx="2" ry="2"/>
|
|
1261
|
-
</svg>
|
|
1262
|
-
`,
|
|
1263
|
-
talkToAgent: `
|
|
1264
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
1265
|
-
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" opacity="0.3"/>
|
|
1266
|
-
<path d="M12 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"/>
|
|
1267
|
-
<circle cx="12" cy="12" r="2"/>
|
|
1268
|
-
</svg>
|
|
1269
|
-
`,
|
|
1270
|
-
sparkles: `
|
|
1271
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
1272
|
-
<path d="M12 2l2.5 6.5L21 11l-6.5 2.5L12 20l-2.5-6.5L3 11l6.5-2.5L12 2z"/>
|
|
1273
|
-
<path d="M18 2l1.5 3.5L23 7l-3.5 1.5L18 12l-1.5-3.5L13 7l3.5-1.5L18 2z" opacity="0.6"/>
|
|
1274
|
-
<path d="M6 12l1.5 3.5L11 17l-3.5 1.5L6 22l-1.5-3.5L1 17l3.5-1.5L6 12z" opacity="0.6"/>
|
|
1275
|
-
</svg>
|
|
1276
|
-
`,
|
|
1277
1390
|
audioLines: `
|
|
1278
1391
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1279
1392
|
<path d="M2 10v3"/>
|
|
@@ -1299,28 +1412,8 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
1299
1412
|
<line x1="14" y1="10" x2="21" y2="3"/>
|
|
1300
1413
|
<line x1="3" y1="21" x2="10" y2="14"/>
|
|
1301
1414
|
</svg>
|
|
1302
|
-
`,
|
|
1303
|
-
user: `
|
|
1304
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1305
|
-
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
|
|
1306
|
-
<circle cx="12" cy="7" r="4"/>
|
|
1307
|
-
</svg>
|
|
1308
|
-
`,
|
|
1309
|
-
keyboard: `
|
|
1310
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1311
|
-
<rect x="2" y="4" width="20" height="16" rx="2" ry="2"/>
|
|
1312
|
-
<line x1="6" y1="8" x2="6" y2="8"/>
|
|
1313
|
-
<line x1="10" y1="8" x2="10" y2="8"/>
|
|
1314
|
-
<line x1="14" y1="8" x2="14" y2="8"/>
|
|
1315
|
-
<line x1="18" y1="8" x2="18" y2="8"/>
|
|
1316
|
-
<line x1="6" y1="12" x2="6" y2="12"/>
|
|
1317
|
-
<line x1="10" y1="12" x2="10" y2="12"/>
|
|
1318
|
-
<line x1="14" y1="12" x2="14" y2="12"/>
|
|
1319
|
-
<line x1="18" y1="12" x2="18" y2="12"/>
|
|
1320
|
-
<line x1="7" y1="16" x2="17" y2="16"/>
|
|
1321
|
-
</svg>
|
|
1322
1415
|
`
|
|
1323
|
-
},
|
|
1416
|
+
}, N = {
|
|
1324
1417
|
automotive: `
|
|
1325
1418
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
1326
1419
|
<path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"/>
|
|
@@ -1451,15 +1544,15 @@ const H = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAA
|
|
|
1451
1544
|
<line x1="2" x2="22" y1="20" y2="20"/>
|
|
1452
1545
|
</svg>
|
|
1453
1546
|
`
|
|
1454
|
-
},
|
|
1455
|
-
...
|
|
1456
|
-
default_chat:
|
|
1457
|
-
default_voice:
|
|
1458
|
-
male: `<img src="${
|
|
1459
|
-
female: `<img src="${
|
|
1547
|
+
}, E = {
|
|
1548
|
+
...N,
|
|
1549
|
+
default_chat: C.chat,
|
|
1550
|
+
default_voice: C.mic,
|
|
1551
|
+
male: `<img src="${J}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`,
|
|
1552
|
+
female: `<img src="${L}" style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;" />`
|
|
1460
1553
|
};
|
|
1461
|
-
Object.entries(
|
|
1462
|
-
|
|
1554
|
+
Object.entries(N).forEach(([c, t]) => {
|
|
1555
|
+
E[`male_${c} `] = `
|
|
1463
1556
|
< div style = "position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: white; border-radius: 50%;" >
|
|
1464
1557
|
<div style="width: 60%; height: 60%; color: #6366f1;" >
|
|
1465
1558
|
${t}
|
|
@@ -1476,10 +1569,10 @@ border: 2px solid white;
|
|
|
1476
1569
|
box - shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
1477
1570
|
overflow: hidden;
|
|
1478
1571
|
">
|
|
1479
|
-
< img src = "${
|
|
1572
|
+
< img src = "${J}" style = "width: 100%; height: 100%; object-fit: cover;" />
|
|
1480
1573
|
</div>
|
|
1481
1574
|
</div>
|
|
1482
|
-
`,
|
|
1575
|
+
`, E[`female_${c} `] = `
|
|
1483
1576
|
< div style = "position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: white; border-radius: 50%;" >
|
|
1484
1577
|
<div style="width: 60%; height: 60%; color: #6366f1;" >
|
|
1485
1578
|
${t}
|
|
@@ -1496,15 +1589,15 @@ border: 2px solid white;
|
|
|
1496
1589
|
box - shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
1497
1590
|
overflow: hidden;
|
|
1498
1591
|
">
|
|
1499
|
-
< img src = "${
|
|
1592
|
+
< img src = "${L}" style = "width: 100%; height: 100%; object-fit: cover;" />
|
|
1500
1593
|
</div>
|
|
1501
1594
|
</div>
|
|
1502
1595
|
`;
|
|
1503
1596
|
});
|
|
1504
|
-
class
|
|
1505
|
-
constructor(t, e =
|
|
1506
|
-
|
|
1507
|
-
|
|
1597
|
+
class G {
|
|
1598
|
+
constructor(t, e = C.chat) {
|
|
1599
|
+
n(this, "element");
|
|
1600
|
+
n(this, "iconContainer");
|
|
1508
1601
|
this.onClick = t, this.element = document.createElement("button"), this.element.className = "widget-fab", this.element.onclick = this.onClick, this.iconContainer = document.createElement("div"), this.iconContainer.style.display = "flex", this.iconContainer.style.alignItems = "center", this.iconContainer.style.justifyContent = "center", this.iconContainer.style.width = "100%", this.iconContainer.style.height = "100%", this.iconContainer.innerHTML = e, this.element.appendChild(this.iconContainer);
|
|
1509
1602
|
}
|
|
1510
1603
|
getElement() {
|
|
@@ -1552,18 +1645,18 @@ class S {
|
|
|
1552
1645
|
`;
|
|
1553
1646
|
}
|
|
1554
1647
|
}
|
|
1555
|
-
class
|
|
1648
|
+
class H {
|
|
1556
1649
|
constructor(t, e = "Assistant") {
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1650
|
+
n(this, "element");
|
|
1651
|
+
n(this, "header");
|
|
1652
|
+
n(this, "titleElement");
|
|
1653
|
+
n(this, "contentArea");
|
|
1654
|
+
n(this, "maximizeBtn");
|
|
1655
|
+
n(this, "closeBtn");
|
|
1656
|
+
n(this, "isMaximized", !1);
|
|
1564
1657
|
this.onClose = t, this.title = e, this.element = document.createElement("div"), this.element.className = "widget-panel hidden", this.header = document.createElement("div"), this.header.className = "widget-header", this.titleElement = document.createElement("h3"), this.titleElement.className = "widget-title", this.titleElement.textContent = this.title;
|
|
1565
1658
|
const i = document.createElement("div");
|
|
1566
|
-
i.style.display = "flex", i.style.alignItems = "center", i.style.gap = "8px", this.maximizeBtn = document.createElement("button"), this.maximizeBtn.className = "close-btn", this.maximizeBtn.innerHTML =
|
|
1659
|
+
i.style.display = "flex", i.style.alignItems = "center", i.style.gap = "8px", this.maximizeBtn = document.createElement("button"), this.maximizeBtn.className = "close-btn", this.maximizeBtn.innerHTML = C.maximize2, this.maximizeBtn.onclick = () => this.toggleMaximize(), this.closeBtn = document.createElement("button"), this.closeBtn.className = "close-btn", this.closeBtn.innerHTML = C.close, this.closeBtn.onclick = this.onClose, i.appendChild(this.maximizeBtn), i.appendChild(this.closeBtn), this.header.appendChild(this.titleElement), this.header.appendChild(i), this.contentArea = document.createElement("div"), this.contentArea.className = "widget-body", this.contentArea.style.flex = "1", this.contentArea.style.display = "flex", this.contentArea.style.flexDirection = "column", this.contentArea.style.overflow = "hidden", this.contentArea.style.padding = "0", this.element.appendChild(this.header), this.element.appendChild(this.contentArea);
|
|
1567
1660
|
}
|
|
1568
1661
|
getElement() {
|
|
1569
1662
|
return this.element;
|
|
@@ -1584,7 +1677,7 @@ class G {
|
|
|
1584
1677
|
this.element.classList.add("hidden");
|
|
1585
1678
|
}
|
|
1586
1679
|
toggleMaximize() {
|
|
1587
|
-
this.isMaximized = !this.isMaximized, this.element.style.width = this.isMaximized ? "605px" : "380px", this.maximizeBtn.innerHTML = this.isMaximized ?
|
|
1680
|
+
this.isMaximized = !this.isMaximized, this.element.style.width = this.isMaximized ? "605px" : "380px", this.maximizeBtn.innerHTML = this.isMaximized ? C.minimize2 : C.maximize2;
|
|
1588
1681
|
}
|
|
1589
1682
|
static get styles() {
|
|
1590
1683
|
return `
|
|
@@ -1592,39 +1685,39 @@ class G {
|
|
|
1592
1685
|
`;
|
|
1593
1686
|
}
|
|
1594
1687
|
}
|
|
1595
|
-
class
|
|
1688
|
+
class j {
|
|
1596
1689
|
constructor(t, e = "#6366f1", i = "#a855f7") {
|
|
1597
|
-
|
|
1690
|
+
n(this, "element");
|
|
1598
1691
|
// Layout Containers
|
|
1599
|
-
|
|
1600
|
-
|
|
1692
|
+
n(this, "contentContainer");
|
|
1693
|
+
n(this, "footerContainer");
|
|
1601
1694
|
// Voice Mode Elements
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1695
|
+
n(this, "waveContainer");
|
|
1696
|
+
n(this, "waveLayers", []);
|
|
1697
|
+
n(this, "connectingSpinner");
|
|
1605
1698
|
// Avatar Mode Elements
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1699
|
+
n(this, "videoContainer");
|
|
1700
|
+
n(this, "videoElement");
|
|
1701
|
+
n(this, "statusBadge");
|
|
1702
|
+
n(this, "prepareBadge");
|
|
1610
1703
|
// "AGENT IS ON THE WAY..."
|
|
1611
1704
|
// Common Elements
|
|
1612
|
-
|
|
1705
|
+
n(this, "statusText");
|
|
1613
1706
|
// For Voice Mode
|
|
1614
|
-
|
|
1707
|
+
n(this, "timerElement");
|
|
1615
1708
|
// For Voice Mode
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1709
|
+
n(this, "transcriptionElement");
|
|
1710
|
+
n(this, "hangupBtn");
|
|
1711
|
+
n(this, "startTime", null);
|
|
1712
|
+
n(this, "timerInterval", null);
|
|
1713
|
+
n(this, "isAvatarMode", !1);
|
|
1621
1714
|
this.onHangup = t, this.primaryColor = e, this.secondaryColor = i, this.element = document.createElement("div"), this.element.id = "voice-active-overlay", this.element.style.position = "absolute", this.element.style.top = "0", this.element.style.left = "0", this.element.style.width = "100%", this.element.style.height = "100%", this.element.style.background = "transparent", this.element.style.pointerEvents = "none", this.element.style.zIndex = "60", this.element.style.display = "none", this.element.style.flexDirection = "column", this.element.style.alignItems = "center", this.contentContainer = document.createElement("div"), this.contentContainer.style.flex = "1", this.contentContainer.style.display = "flex", this.contentContainer.style.flexDirection = "column", this.contentContainer.style.alignItems = "center", this.contentContainer.style.justifyContent = "center", this.contentContainer.style.width = "100%", this.contentContainer.style.padding = "20px", this.contentContainer.style.paddingBottom = "20px", this.videoContainer = document.createElement("div"), this.videoContainer.style.position = "relative", this.videoContainer.style.width = "100%", this.videoContainer.style.maxWidth = "300px", this.videoContainer.style.aspectRatio = "1/1", this.videoContainer.style.marginBottom = "16px", this.videoContainer.style.overflow = "hidden", this.videoContainer.style.borderRadius = "16px", this.videoContainer.style.boxShadow = "0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(17, 24, 39, 0.05)", this.videoContainer.style.display = "none", this.videoContainer.style.pointerEvents = "auto", this.videoElement = document.createElement("video"), this.videoElement.style.width = "100%", this.videoElement.style.height = "100%", this.videoElement.style.objectFit = "cover", this.videoElement.style.backgroundColor = "transparent", this.videoElement.autoplay = !0, this.videoElement.playsInline = !0, this.videoElement.muted = !0, this.videoContainer.appendChild(this.videoElement), this.contentContainer.appendChild(this.videoContainer), this.waveContainer = document.createElement("div"), this.waveContainer.style.position = "relative", this.waveContainer.style.width = "200px", this.waveContainer.style.height = "200px", this.waveContainer.style.display = "flex", this.waveContainer.style.alignItems = "center", this.waveContainer.style.justifyContent = "center", this.waveContainer.style.marginBottom = "24px", this.waveContainer.style.pointerEvents = "auto", this.createWaveLayers(), this.contentContainer.appendChild(this.waveContainer), this.statusText = document.createElement("div"), this.statusText.className = "voice-status-text", this.statusText.style.fontSize = "18px", this.statusText.textContent = "Connecting...", this.contentContainer.appendChild(this.statusText), this.timerElement = document.createElement("div"), this.timerElement.className = "voice-status-subtext", this.timerElement.style.fontSize = "14px", this.timerElement.style.marginTop = "4px", this.contentContainer.appendChild(this.timerElement), this.statusBadge = document.createElement("div"), this.statusBadge.style.display = "none", this.statusBadge.style.alignItems = "center", this.statusBadge.style.gap = "8px", this.statusBadge.style.padding = "6px 16px", this.statusBadge.style.backgroundColor = "#f0fdf4", this.statusBadge.style.borderRadius = "9999px", this.statusBadge.style.border = "1px solid #dcfce7", this.statusBadge.style.marginBottom = "8px", this.statusBadge.style.position = "relative", this.statusBadge.style.zIndex = "10";
|
|
1622
|
-
const
|
|
1623
|
-
|
|
1624
|
-
const
|
|
1625
|
-
|
|
1626
|
-
const
|
|
1627
|
-
|
|
1715
|
+
const s = document.createElement("div");
|
|
1716
|
+
s.style.width = "8px", s.style.height = "8px", s.style.borderRadius = "50%", s.style.backgroundColor = "#22c55e", s.style.boxShadow = "0 0 8px rgba(34,197,94,0.6)", s.style.animation = "pulse 2s infinite";
|
|
1717
|
+
const o = document.createElement("span");
|
|
1718
|
+
o.textContent = "CONNECTED", o.style.fontSize = "12px", o.style.fontWeight = "600", o.style.color = "#15803d", o.style.textTransform = "uppercase", o.style.letterSpacing = "0.05em", this.statusBadge.appendChild(s), this.statusBadge.appendChild(o), this.contentContainer.appendChild(this.statusBadge), this.prepareBadge = document.createElement("div"), this.prepareBadge.textContent = "AGENT IS ON THE WAY...", this.prepareBadge.style.display = "none", this.prepareBadge.style.fontSize = "12px", this.prepareBadge.style.fontWeight = "600", this.prepareBadge.style.color = "#a855f7", this.prepareBadge.style.textTransform = "uppercase", this.prepareBadge.style.letterSpacing = "0.05em", this.prepareBadge.style.animation = "pulse 1.5s infinite", this.prepareBadge.style.position = "relative", this.prepareBadge.style.zIndex = "10", this.contentContainer.appendChild(this.prepareBadge), this.transcriptionElement = document.createElement("div"), this.transcriptionElement.style.marginTop = "20px", this.transcriptionElement.style.padding = "0 24px", this.transcriptionElement.style.textAlign = "center", this.transcriptionElement.style.minHeight = "40px", this.transcriptionElement.style.maxHeight = "80px", this.transcriptionElement.style.overflowY = "auto", this.transcriptionElement.style.fontSize = "14px", this.transcriptionElement.style.color = "#4b5563", this.transcriptionElement.style.fontStyle = "italic", this.contentContainer.appendChild(this.transcriptionElement), this.element.appendChild(this.contentContainer), this.footerContainer = document.createElement("div"), this.footerContainer.style.position = "absolute", this.footerContainer.style.bottom = "16px", this.footerContainer.style.left = "0", this.footerContainer.style.width = "100%", this.footerContainer.style.display = "flex", this.footerContainer.style.justifyContent = "center", this.footerContainer.style.zIndex = "70", this.hangupBtn = document.createElement("button"), this.hangupBtn.className = "control-btn", this.hangupBtn.style.flex = "none", this.hangupBtn.style.width = "auto", this.hangupBtn.style.minWidth = "140px", this.hangupBtn.style.backgroundColor = "#ef4444", this.hangupBtn.style.color = "white", this.hangupBtn.style.borderRadius = "9999px", this.hangupBtn.style.padding = "10px 24px", this.hangupBtn.style.fontSize = "14px", this.hangupBtn.style.fontWeight = "500", this.hangupBtn.style.display = "flex", this.hangupBtn.style.alignItems = "center", this.hangupBtn.style.gap = "8px", this.hangupBtn.style.border = "none", this.hangupBtn.style.cursor = "pointer", this.hangupBtn.style.pointerEvents = "auto", this.hangupBtn.style.transition = "background-color 0.2s", this.hangupBtn.style.boxShadow = "0 4px 6px -1px rgba(0, 0, 0, 0.1)", this.hangupBtn.onmouseover = () => this.hangupBtn.style.backgroundColor = "#dc2626", this.hangupBtn.onmouseout = () => this.hangupBtn.style.backgroundColor = "#ef4444", this.hangupBtn.innerHTML = `${C.phone} End Call`;
|
|
1719
|
+
const a = this.hangupBtn.querySelector("svg");
|
|
1720
|
+
a && (a.style.transform = "rotate(135deg)", a.style.width = "16px", a.style.height = "16px"), this.hangupBtn.onclick = this.onHangup, this.footerContainer.appendChild(this.hangupBtn), this.element.appendChild(this.footerContainer);
|
|
1628
1721
|
}
|
|
1629
1722
|
createWaveLayers() {
|
|
1630
1723
|
this.waveContainer.innerHTML = "", this.waveLayers = [], this.connectingSpinner = document.createElement("div"), this.connectingSpinner.className = "central-orb connecting", this.connectingSpinner.style.background = "#e5e7eb", this.connectingSpinner.style.width = "80px", this.connectingSpinner.style.height = "80px", this.connectingSpinner.style.borderRadius = "50%", this.connectingSpinner.style.display = "flex", this.connectingSpinner.style.alignItems = "center", this.connectingSpinner.style.justifyContent = "center", this.connectingSpinner.style.animation = "pulse 1.5s infinite", this.connectingSpinner.innerHTML = `
|
|
@@ -1636,10 +1729,10 @@ class L {
|
|
|
1636
1729
|
e.className = "absolute rounded-full wave-1", e.style.width = "200px", e.style.height = "200px", e.style.background = `conic-gradient(from 0deg, ${this.primaryColor}, ${this.secondaryColor}, #fcd34d, ${this.primaryColor})`, e.style.filter = "blur(0px)", e.style.animation = "wave-rotate-1 8s linear infinite", e.style.display = "none", this.waveLayers.push(e), this.waveContainer.appendChild(e);
|
|
1637
1730
|
const i = document.createElement("div");
|
|
1638
1731
|
i.className = "absolute rounded-full wave-2", i.style.width = "180px", i.style.height = "180px", i.style.background = `conic-gradient(from 60deg, ${this.secondaryColor}, #fcd34d, ${this.primaryColor}, ${this.secondaryColor})`, i.style.opacity = "0.8", i.style.animation = "wave-rotate-2 6s linear infinite", i.style.display = "none", this.waveLayers.push(i), this.waveContainer.appendChild(i);
|
|
1639
|
-
const n = document.createElement("div");
|
|
1640
|
-
n.className = "absolute rounded-full wave-3", n.style.width = "160px", n.style.height = "160px", n.style.background = `conic-gradient(from 120deg, #fcd34d, ${this.primaryColor}, ${this.secondaryColor}, #fcd34d)`, n.style.opacity = "0.9", n.style.animation = "wave-rotate-3 4s linear infinite", n.style.display = "none", this.waveLayers.push(n), this.waveContainer.appendChild(n);
|
|
1641
1732
|
const s = document.createElement("div");
|
|
1642
|
-
s.className = "
|
|
1733
|
+
s.className = "absolute rounded-full wave-3", s.style.width = "160px", s.style.height = "160px", s.style.background = `conic-gradient(from 120deg, #fcd34d, ${this.primaryColor}, ${this.secondaryColor}, #fcd34d)`, s.style.opacity = "0.9", s.style.animation = "wave-rotate-3 4s linear infinite", s.style.display = "none", this.waveLayers.push(s), this.waveContainer.appendChild(s);
|
|
1734
|
+
const o = document.createElement("div");
|
|
1735
|
+
o.className = "central-orb active", o.style.width = "56px", o.style.height = "56px", o.style.zIndex = "10", o.style.background = "#1f2937", o.style.borderRadius = "50%", o.style.display = "none", o.style.alignItems = "center", o.style.justifyContent = "center", o.style.color = "white", o.style.boxShadow = "0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)", o.innerHTML = C.phone, this.waveLayers.push(o), this.waveContainer.appendChild(o);
|
|
1643
1736
|
}
|
|
1644
1737
|
getElement() {
|
|
1645
1738
|
return this.element;
|
|
@@ -1696,17 +1789,17 @@ class L {
|
|
|
1696
1789
|
t ? (this.videoContainer.style.position = "absolute", this.videoContainer.style.top = "0", this.videoContainer.style.left = "0", this.videoContainer.style.width = "100%", this.videoContainer.style.height = "100%", this.videoContainer.style.maxWidth = "none", this.videoContainer.style.borderRadius = "0", this.videoContainer.style.margin = "0", this.videoContainer.style.zIndex = "0", this.videoContainer.style.boxShadow = "none", this.videoElement.style.objectFit = "cover", this.statusBadge && (this.statusBadge.style.position = "relative", this.statusBadge.style.zIndex = "10"), this.prepareBadge && (this.prepareBadge.style.position = "relative", this.prepareBadge.style.zIndex = "10")) : (this.videoContainer.style.position = "relative", this.videoContainer.style.width = "100%", this.videoContainer.style.maxWidth = "300px", this.videoContainer.style.height = "auto", this.videoContainer.style.aspectRatio = "1/1", this.videoContainer.style.borderRadius = "16px", this.videoContainer.style.marginBottom = "16px", this.videoContainer.style.zIndex = "auto", this.videoContainer.style.boxShadow = "0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(17, 24, 39, 0.05)");
|
|
1697
1790
|
}
|
|
1698
1791
|
}
|
|
1699
|
-
class
|
|
1792
|
+
class R {
|
|
1700
1793
|
constructor(t) {
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1794
|
+
n(this, "element");
|
|
1795
|
+
n(this, "messageContainer");
|
|
1796
|
+
n(this, "inputArea");
|
|
1797
|
+
n(this, "input");
|
|
1798
|
+
n(this, "sendBtn");
|
|
1799
|
+
n(this, "typingIndicator", null);
|
|
1707
1800
|
this.onSend = t, this.element = document.createElement("div"), this.element.style.display = "flex", this.element.style.flexDirection = "column", this.element.style.flex = "1", this.element.style.overflow = "hidden", this.element.style.minHeight = "0", this.messageContainer = document.createElement("div"), this.messageContainer.className = "chat-messages", this.inputArea = document.createElement("div"), this.inputArea.className = "chat-input-area", this.input = document.createElement("input"), this.input.className = "chat-input", this.input.placeholder = "Type a message...", this.input.addEventListener("keypress", (e) => {
|
|
1708
1801
|
e.key === "Enter" && this.handleSend();
|
|
1709
|
-
}), this.sendBtn = document.createElement("button"), this.sendBtn.className = "chat-send-btn", this.sendBtn.innerHTML =
|
|
1802
|
+
}), this.sendBtn = document.createElement("button"), this.sendBtn.className = "chat-send-btn", this.sendBtn.innerHTML = C.send, this.sendBtn.onclick = () => this.handleSend(), this.inputArea.appendChild(this.input), this.inputArea.appendChild(this.sendBtn), this.element.appendChild(this.messageContainer), this.element.appendChild(this.inputArea);
|
|
1710
1803
|
}
|
|
1711
1804
|
getElement() {
|
|
1712
1805
|
return this.element;
|
|
@@ -1722,14 +1815,14 @@ class j {
|
|
|
1722
1815
|
addButtons(t) {
|
|
1723
1816
|
const e = document.createElement("div");
|
|
1724
1817
|
e.className = "chat-buttons-container", e.style.display = "flex", e.style.flexWrap = "wrap", e.style.gap = "8px", e.style.marginTop = "8px", e.style.marginBottom = "12px", e.style.justifyContent = "flex-start", t.forEach((i) => {
|
|
1725
|
-
const
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
},
|
|
1729
|
-
|
|
1730
|
-
},
|
|
1818
|
+
const s = document.createElement("button");
|
|
1819
|
+
s.className = "chat-suggestion-chip", s.textContent = i.title, s.style.padding = "6px 12px", s.style.borderRadius = "16px", s.style.border = "1px solid #e5e7eb", s.style.backgroundColor = "white", s.style.fontSize = "12px", s.style.color = "#4b5563", s.style.cursor = "pointer", s.style.transition = "all 0.2s", s.onmouseenter = () => {
|
|
1820
|
+
s.style.backgroundColor = "#f3f4f6", s.style.borderColor = "#d1d5db";
|
|
1821
|
+
}, s.onmouseleave = () => {
|
|
1822
|
+
s.style.backgroundColor = "white", s.style.borderColor = "#e5e7eb";
|
|
1823
|
+
}, s.onclick = () => {
|
|
1731
1824
|
this.handleSend(i.payload);
|
|
1732
|
-
}, e.appendChild(
|
|
1825
|
+
}, e.appendChild(s);
|
|
1733
1826
|
}), this.messageContainer.appendChild(e), this.scrollToBottom();
|
|
1734
1827
|
}
|
|
1735
1828
|
handleSend(t) {
|
|
@@ -1753,22 +1846,22 @@ class j {
|
|
|
1753
1846
|
this.messageContainer.scrollTop = this.messageContainer.scrollHeight;
|
|
1754
1847
|
}
|
|
1755
1848
|
}
|
|
1756
|
-
class
|
|
1849
|
+
class se {
|
|
1757
1850
|
constructor(t) {
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1851
|
+
n(this, "element");
|
|
1852
|
+
n(this, "videoElement");
|
|
1853
|
+
n(this, "placeholderContainer");
|
|
1761
1854
|
this.element = document.createElement("div"), this.element.className = "avatar-container", this.element.style.position = "relative", this.element.style.width = "100%", this.element.style.height = "100%", this.element.style.background = "#ffffff", this.element.style.borderRadius = "16px", this.element.style.overflow = "hidden", this.placeholderContainer = document.createElement("div"), this.placeholderContainer.style.width = "100%", this.placeholderContainer.style.height = "100%", this.placeholderContainer.style.display = "flex", this.placeholderContainer.style.alignItems = "center", this.placeholderContainer.style.justifyContent = "center";
|
|
1762
1855
|
const e = t || "https://www.simli.com/jenna.mp4", i = e.endsWith(".mp4") || e.endsWith(".webm");
|
|
1763
|
-
let
|
|
1856
|
+
let s;
|
|
1764
1857
|
if (i) {
|
|
1765
|
-
const
|
|
1766
|
-
|
|
1858
|
+
const o = document.createElement("video");
|
|
1859
|
+
o.src = e, o.muted = !0, o.loop = !0, o.autoplay = !0, o.playsInline = !0, s = o;
|
|
1767
1860
|
} else {
|
|
1768
|
-
const
|
|
1769
|
-
|
|
1861
|
+
const o = document.createElement("img");
|
|
1862
|
+
o.src = e, s = o;
|
|
1770
1863
|
}
|
|
1771
|
-
|
|
1864
|
+
s.style.width = "140px", s.style.height = "140px", s.style.borderRadius = "50%", s.style.objectFit = "cover", s.style.backgroundColor = "#f3f4f6", this.placeholderContainer.appendChild(s), this.element.appendChild(this.placeholderContainer), this.videoElement = document.createElement("video"), this.videoElement.className = "avatar-video", this.videoElement.autoplay = !0, this.videoElement.playsInline = !0, this.videoElement.muted = !0, this.videoElement.style.display = "none", this.element.appendChild(this.videoElement);
|
|
1772
1865
|
}
|
|
1773
1866
|
getElement() {
|
|
1774
1867
|
return this.element;
|
|
@@ -1777,13 +1870,13 @@ class te {
|
|
|
1777
1870
|
this.videoElement.srcObject = t, this.videoElement.style.display = "block", this.placeholderContainer.style.display = "none";
|
|
1778
1871
|
}
|
|
1779
1872
|
}
|
|
1780
|
-
class
|
|
1873
|
+
class ne {
|
|
1781
1874
|
constructor(t) {
|
|
1782
|
-
|
|
1875
|
+
n(this, "element");
|
|
1783
1876
|
this.onClick = t, this.element = document.createElement("div"), this.element.className = "voice-mode-container", this.element.innerHTML = `
|
|
1784
1877
|
<div class="central-orb-container">
|
|
1785
1878
|
<div class="central-orb idle">
|
|
1786
|
-
${
|
|
1879
|
+
${C.audioLines}
|
|
1787
1880
|
</div>
|
|
1788
1881
|
<div class="central-orb-glow"></div>
|
|
1789
1882
|
</div>
|
|
@@ -1797,10 +1890,10 @@ class ie {
|
|
|
1797
1890
|
return this.element;
|
|
1798
1891
|
}
|
|
1799
1892
|
}
|
|
1800
|
-
class
|
|
1893
|
+
class z {
|
|
1801
1894
|
constructor(t) {
|
|
1802
|
-
|
|
1803
|
-
|
|
1895
|
+
n(this, "element");
|
|
1896
|
+
n(this, "chips", []);
|
|
1804
1897
|
this.onChipClick = t, this.element = document.createElement("div"), this.element.className = "welcome-chips-container";
|
|
1805
1898
|
}
|
|
1806
1899
|
setChips(t) {
|
|
@@ -1816,8 +1909,8 @@ class T {
|
|
|
1816
1909
|
render() {
|
|
1817
1910
|
this.element.innerHTML = "", this.chips.forEach((t, e) => {
|
|
1818
1911
|
const i = document.createElement("button");
|
|
1819
|
-
i.className = "welcome-chip-btn", i.textContent = t.title, i.onclick = (
|
|
1820
|
-
|
|
1912
|
+
i.className = "welcome-chip-btn", i.textContent = t.title, i.onclick = (s) => {
|
|
1913
|
+
s.stopPropagation(), this.onChipClick(t.title);
|
|
1821
1914
|
}, i.style.animationDelay = `${e * 0.1}s`, this.element.appendChild(i);
|
|
1822
1915
|
});
|
|
1823
1916
|
}
|
|
@@ -1881,18 +1974,18 @@ class T {
|
|
|
1881
1974
|
`;
|
|
1882
1975
|
}
|
|
1883
1976
|
}
|
|
1884
|
-
class
|
|
1885
|
-
constructor(t, e, i = "#6366f1",
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
this.onStartCall = t, this.onHangup = e, this.primaryColor = i, this.secondaryColor =
|
|
1977
|
+
class O {
|
|
1978
|
+
constructor(t, e, i = "#6366f1", s = "#a855f7") {
|
|
1979
|
+
n(this, "element");
|
|
1980
|
+
n(this, "overlay");
|
|
1981
|
+
n(this, "onStartCall");
|
|
1982
|
+
n(this, "onHangup");
|
|
1983
|
+
n(this, "primaryColor");
|
|
1984
|
+
n(this, "secondaryColor");
|
|
1985
|
+
this.onStartCall = t, this.onHangup = e, this.primaryColor = i, this.secondaryColor = s, this.element = document.createElement("div"), this.element.style.height = "100%", this.element.style.position = "relative";
|
|
1893
1986
|
}
|
|
1894
1987
|
initOverlay() {
|
|
1895
|
-
this.overlay = new
|
|
1988
|
+
this.overlay = new j(() => this.onHangup(), this.primaryColor, this.secondaryColor), this.element.appendChild(this.overlay.getElement());
|
|
1896
1989
|
}
|
|
1897
1990
|
getElement() {
|
|
1898
1991
|
return this.element;
|
|
@@ -1910,18 +2003,18 @@ class N {
|
|
|
1910
2003
|
this.overlay.setVideoTrack(t);
|
|
1911
2004
|
}
|
|
1912
2005
|
}
|
|
1913
|
-
class
|
|
1914
|
-
constructor(e, i,
|
|
1915
|
-
super(e, i,
|
|
1916
|
-
|
|
1917
|
-
this.voiceOrb = new
|
|
2006
|
+
class oe extends O {
|
|
2007
|
+
constructor(e, i, s = "#6366f1", o = "#a855f7") {
|
|
2008
|
+
super(e, i, s, o);
|
|
2009
|
+
n(this, "voiceOrb");
|
|
2010
|
+
this.voiceOrb = new ne(() => this.onStartCall()), this.element.appendChild(this.voiceOrb.getElement()), this.initOverlay();
|
|
1918
2011
|
}
|
|
1919
2012
|
}
|
|
1920
|
-
class
|
|
2013
|
+
class ae {
|
|
1921
2014
|
constructor(t) {
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
this.onSendMessage = t, this.element = document.createElement("div"), this.element.style.flex = "1", this.element.style.width = "100%", this.element.style.minHeight = "0", this.element.style.display = "flex", this.element.style.flexDirection = "column", this.chatWindow = new
|
|
2015
|
+
n(this, "element");
|
|
2016
|
+
n(this, "chatWindow");
|
|
2017
|
+
this.onSendMessage = t, this.element = document.createElement("div"), this.element.style.flex = "1", this.element.style.width = "100%", this.element.style.minHeight = "0", this.element.style.display = "flex", this.element.style.flexDirection = "column", this.chatWindow = new R((e) => this.onSendMessage(e)), this.element.appendChild(this.chatWindow.getElement());
|
|
1925
2018
|
}
|
|
1926
2019
|
getElement() {
|
|
1927
2020
|
return this.element;
|
|
@@ -1930,22 +2023,22 @@ class se {
|
|
|
1930
2023
|
return this.chatWindow;
|
|
1931
2024
|
}
|
|
1932
2025
|
}
|
|
1933
|
-
class
|
|
1934
|
-
constructor(t, e, i,
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
this.onSendMessage = t, this.onStartCall = e, this.onHangup = i, this.primaryColor =
|
|
2026
|
+
class U {
|
|
2027
|
+
constructor(t, e, i, s = "#6366f1", o = "#a855f7") {
|
|
2028
|
+
n(this, "element");
|
|
2029
|
+
n(this, "chatWindow");
|
|
2030
|
+
n(this, "overlay");
|
|
2031
|
+
n(this, "voiceTrigger");
|
|
2032
|
+
this.onSendMessage = t, this.onStartCall = e, this.onHangup = i, this.primaryColor = s, this.secondaryColor = o, this.element = document.createElement("div"), this.element.style.flex = "1", this.element.style.display = "flex", this.element.style.flexDirection = "column", this.element.style.minHeight = "0", this.element.style.position = "relative";
|
|
1940
2033
|
}
|
|
1941
2034
|
setupChat() {
|
|
1942
|
-
this.chatWindow = new
|
|
2035
|
+
this.chatWindow = new R((e) => this.onSendMessage(e));
|
|
1943
2036
|
const t = this.chatWindow.getElement();
|
|
1944
|
-
t.style.flex = "1", this.element.appendChild(t), this.injectVoiceTrigger(), this.overlay = new
|
|
2037
|
+
t.style.flex = "1", this.element.appendChild(t), this.injectVoiceTrigger(), this.overlay = new j(() => this.onHangup(), this.primaryColor, this.secondaryColor), this.element.appendChild(this.overlay.getElement());
|
|
1945
2038
|
}
|
|
1946
2039
|
injectVoiceTrigger() {
|
|
1947
2040
|
const t = document.createElement("button");
|
|
1948
|
-
this.voiceTrigger = t, t.className = "voice-btn-simple", t.innerHTML = `<div class="voice-btn-icon">${
|
|
2041
|
+
this.voiceTrigger = t, t.className = "voice-btn-simple", t.innerHTML = `<div class="voice-btn-icon">${C.audioLines}</div>`, t.onclick = () => this.onStartCall();
|
|
1949
2042
|
const e = this.chatWindow.getElement().querySelector(".chat-input-area"), i = e == null ? void 0 : e.querySelector(".chat-send-btn");
|
|
1950
2043
|
e && i ? e.insertBefore(this.voiceTrigger, i) : console.warn("AvinSDK: Failed to inject voice trigger", { inputArea: e, sendBtn: i });
|
|
1951
2044
|
}
|
|
@@ -1968,22 +2061,22 @@ class R {
|
|
|
1968
2061
|
this.overlay.setVideoTrack(t);
|
|
1969
2062
|
}
|
|
1970
2063
|
}
|
|
1971
|
-
class
|
|
1972
|
-
constructor(t, e, i,
|
|
1973
|
-
super(t, e, i,
|
|
2064
|
+
class re extends U {
|
|
2065
|
+
constructor(t, e, i, s = "#6366f1", o = "#a855f7") {
|
|
2066
|
+
super(t, e, i, s, o), this.setupChat();
|
|
1974
2067
|
}
|
|
1975
2068
|
}
|
|
1976
|
-
class
|
|
1977
|
-
constructor(e, i,
|
|
1978
|
-
super(e, i,
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
this.element.style.display = "flex", this.element.style.flexDirection = "column", this.avatarView = new
|
|
1983
|
-
const
|
|
1984
|
-
|
|
1985
|
-
const
|
|
1986
|
-
|
|
2069
|
+
class le extends O {
|
|
2070
|
+
constructor(e, i, s = "#6366f1", o = "#a855f7") {
|
|
2071
|
+
super(e, i, s, o);
|
|
2072
|
+
n(this, "avatarView");
|
|
2073
|
+
n(this, "startCallBtn");
|
|
2074
|
+
n(this, "controlsContainer");
|
|
2075
|
+
this.element.style.display = "flex", this.element.style.flexDirection = "column", this.avatarView = new se();
|
|
2076
|
+
const a = this.avatarView.getElement();
|
|
2077
|
+
a.style.width = "100%", a.style.maxWidth = "300px", a.style.aspectRatio = "1/1", a.style.borderRadius = "16px", a.style.overflow = "hidden", a.style.margin = "auto", a.style.position = "relative", this.element.appendChild(a), this.controlsContainer = document.createElement("div"), this.controlsContainer.className = "widget-body", this.controlsContainer.style.position = "absolute", this.controlsContainer.style.bottom = "20px", this.controlsContainer.style.width = "100%", this.controlsContainer.style.zIndex = "10";
|
|
2078
|
+
const r = document.createElement("div");
|
|
2079
|
+
r.className = "controls", this.startCallBtn = document.createElement("button"), this.startCallBtn.className = "control-btn primary", this.startCallBtn.innerHTML = `${C.phone} <span>Start Call</span>`, this.startCallBtn.onclick = () => this.onStartCall(), r.appendChild(this.startCallBtn), this.controlsContainer.appendChild(r), this.element.appendChild(this.controlsContainer), this.initOverlay(), this.overlay.setMode("avatar");
|
|
1987
2080
|
}
|
|
1988
2081
|
getAvatarView() {
|
|
1989
2082
|
return this.avatarView;
|
|
@@ -1992,9 +2085,9 @@ class re extends N {
|
|
|
1992
2085
|
e && this.overlay.setMode("avatar"), super.setCallActive(e), e ? this.controlsContainer.style.display = "none" : this.controlsContainer.style.display = "block";
|
|
1993
2086
|
}
|
|
1994
2087
|
}
|
|
1995
|
-
class
|
|
1996
|
-
constructor(t, e, i,
|
|
1997
|
-
super(t, e, i,
|
|
2088
|
+
class Ae extends U {
|
|
2089
|
+
constructor(t, e, i, s = "#6366f1", o = "#a855f7") {
|
|
2090
|
+
super(t, e, i, s, o), this.setupChat(), this.overlay.setMode("avatar");
|
|
1998
2091
|
}
|
|
1999
2092
|
// Override to inject the unique Circular Video Button
|
|
2000
2093
|
injectVoiceTrigger() {
|
|
@@ -2006,35 +2099,35 @@ class ae extends R {
|
|
|
2006
2099
|
style="width: 100%; height: 100%; object-fit: cover; border-radius: 50%;">
|
|
2007
2100
|
</video>
|
|
2008
2101
|
<div style="position: absolute; bottom: -2px; right: -2px; background: white; border-radius: 50%; padding: 2px; box-shadow: 0 1px 2px rgba(0,0,0,0.1);">
|
|
2009
|
-
${
|
|
2102
|
+
${C.audioLines.replace('width="24"', 'width="12"').replace('height="24"', 'height="12"')}
|
|
2010
2103
|
</div>
|
|
2011
2104
|
`;
|
|
2012
2105
|
const e = t.querySelector("div");
|
|
2013
2106
|
if (e) {
|
|
2014
|
-
const
|
|
2015
|
-
|
|
2107
|
+
const o = e.querySelector("svg");
|
|
2108
|
+
o && (o.style.width = "12px", o.style.height = "12px");
|
|
2016
2109
|
}
|
|
2017
2110
|
t.onclick = () => this.onStartCall();
|
|
2018
|
-
const i = this.chatWindow.getElement().querySelector(".chat-input-area"),
|
|
2019
|
-
i &&
|
|
2111
|
+
const i = this.chatWindow.getElement().querySelector(".chat-input-area"), s = i == null ? void 0 : i.querySelector(".chat-send-btn");
|
|
2112
|
+
i && s ? i.insertBefore(this.voiceTrigger, s) : console.warn("AvinSDK: Failed to inject voice trigger", { inputArea: i, sendBtn: s });
|
|
2020
2113
|
}
|
|
2021
2114
|
// No getAvatarView method anymore. AvinInternalProvider should check for capability or cast.
|
|
2022
2115
|
}
|
|
2023
|
-
class
|
|
2024
|
-
async sendMessage(t, e, i,
|
|
2025
|
-
return
|
|
2116
|
+
class ce {
|
|
2117
|
+
async sendMessage(t, e, i, s, o, a, r, l) {
|
|
2118
|
+
return B.sendChatMessage(
|
|
2026
2119
|
e,
|
|
2027
2120
|
i,
|
|
2028
2121
|
t,
|
|
2029
|
-
n,
|
|
2030
|
-
(c) => {
|
|
2031
|
-
r && r(c);
|
|
2032
|
-
},
|
|
2033
2122
|
s,
|
|
2034
|
-
(
|
|
2035
|
-
a &&
|
|
2123
|
+
(A) => {
|
|
2124
|
+
a && a(A);
|
|
2036
2125
|
},
|
|
2037
|
-
|
|
2126
|
+
o,
|
|
2127
|
+
(A) => {
|
|
2128
|
+
r && A && r(A);
|
|
2129
|
+
},
|
|
2130
|
+
l
|
|
2038
2131
|
);
|
|
2039
2132
|
}
|
|
2040
2133
|
async sendFile(t) {
|
|
@@ -2044,108 +2137,225 @@ class Ae {
|
|
|
2044
2137
|
console.warn("likeDislike not implemented for AvinChatAdapter yet - Incompatible function adapted", t, e);
|
|
2045
2138
|
}
|
|
2046
2139
|
}
|
|
2047
|
-
class
|
|
2140
|
+
class de extends $ {
|
|
2048
2141
|
constructor(e) {
|
|
2049
2142
|
super(e);
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2143
|
+
n(this, "avinClient", null);
|
|
2144
|
+
n(this, "currentView", null);
|
|
2145
|
+
n(this, "isPanelOpen", !1);
|
|
2146
|
+
n(this, "callActive", !1);
|
|
2147
|
+
n(this, "eventSource", null);
|
|
2055
2148
|
// Components
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2149
|
+
n(this, "floatingButton", null);
|
|
2150
|
+
n(this, "floatingWelcomeChips", null);
|
|
2151
|
+
n(this, "panel", null);
|
|
2152
|
+
n(this, "welcomeChipsData", []);
|
|
2060
2153
|
// Chat Adapter
|
|
2061
|
-
|
|
2154
|
+
n(this, "chatAdapter");
|
|
2155
|
+
// ─── Session Manager ─────────────────────────────────────────────────────
|
|
2156
|
+
n(this, "sessionManager", null);
|
|
2157
|
+
/** Whether this tab currently owns the widget session. */
|
|
2158
|
+
n(this, "sessionActive", !1);
|
|
2062
2159
|
// Config derived state
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2160
|
+
n(this, "widgetMode", "voice_only");
|
|
2161
|
+
n(this, "agentId", "");
|
|
2162
|
+
n(this, "prospectGroupId", "");
|
|
2163
|
+
n(this, "chatServerUrl", "");
|
|
2164
|
+
n(this, "mediaServerUrl", "");
|
|
2165
|
+
n(this, "prospectId", "");
|
|
2166
|
+
n(this, "chatId", null);
|
|
2167
|
+
n(this, "widgetId", "");
|
|
2071
2168
|
// Appearance (Defaults)
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
this.chatAdapter = new
|
|
2078
|
-
}
|
|
2079
|
-
//
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2169
|
+
n(this, "primaryColor", "#6366f1");
|
|
2170
|
+
n(this, "secondaryColor", "#4f46e5");
|
|
2171
|
+
n(this, "gradient", null);
|
|
2172
|
+
n(this, "position", "bottom-right");
|
|
2173
|
+
n(this, "widgetIcon", null);
|
|
2174
|
+
this.chatAdapter = new ce(), this.processConfig(e);
|
|
2175
|
+
}
|
|
2176
|
+
// ─── Session Initialisation ───────────────────────────────────────────────
|
|
2177
|
+
/**
|
|
2178
|
+
* Boot the SessionManager.
|
|
2179
|
+
* Called once we have a stable widgetId to key the session on.
|
|
2180
|
+
* Returns true if this tab owns the session, false if another tab owns it.
|
|
2181
|
+
*/
|
|
2182
|
+
initSessionManager() {
|
|
2183
|
+
const e = this.widgetId || this.agentId || "default";
|
|
2184
|
+
this.sessionManager = new D(e), this.sessionManager.on("tab_took_over", () => {
|
|
2185
|
+
console.warn("[AvinAI] Session taken over by another tab."), this.sessionActive = !1, this.showTabConflictBanner("taken_over");
|
|
2186
|
+
}), this.sessionManager.on("session_cleared", () => {
|
|
2187
|
+
console.log("[AvinAI] Session cleared externally.");
|
|
2188
|
+
});
|
|
2189
|
+
const i = this.sessionManager.claimSession();
|
|
2190
|
+
return this.sessionActive = i, i;
|
|
2191
|
+
}
|
|
2192
|
+
/**
|
|
2193
|
+
* Restore persisted chat messages into the chat window.
|
|
2194
|
+
* Called after the view is rendered.
|
|
2195
|
+
*/
|
|
2196
|
+
restoreSessionMessages() {
|
|
2197
|
+
var o, a, r;
|
|
2198
|
+
const e = (o = this.sessionManager) == null ? void 0 : o.getSession();
|
|
2199
|
+
if (!e) return;
|
|
2200
|
+
const i = (r = (a = this.currentView) == null ? void 0 : a.getChatWindow) == null ? void 0 : r.call(a);
|
|
2201
|
+
if (!i) return;
|
|
2202
|
+
const s = e.messages.filter((l) => l.content.trim() !== "");
|
|
2203
|
+
s.length !== 0 && (i.clearMessages(), s.forEach((l) => {
|
|
2204
|
+
i.addMessage(l.role, l.content);
|
|
2205
|
+
}), console.log(`[AvinAI] Restored ${s.length} messages from session (tab: ${e.tabId.slice(0, 20)}).`));
|
|
2206
|
+
}
|
|
2207
|
+
// ─── Tab Conflict UI ─────────────────────────────────────────────────────
|
|
2208
|
+
/**
|
|
2209
|
+
* Renders a friendly overlay when:
|
|
2210
|
+
* - 'conflict' → this tab tried to open but another tab owns the session
|
|
2211
|
+
* - 'taken_over' → another tab stole the session while this tab was active
|
|
2212
|
+
*/
|
|
2213
|
+
showTabConflictBanner(e) {
|
|
2214
|
+
var o, a, r;
|
|
2215
|
+
if (!this.root) return;
|
|
2216
|
+
(o = this.root.querySelector(".avin-tab-conflict-banner")) == null || o.remove();
|
|
2217
|
+
const i = e === "conflict", s = document.createElement("div");
|
|
2218
|
+
s.className = "avin-tab-conflict-banner", s.style.cssText = `
|
|
2219
|
+
position: fixed;
|
|
2220
|
+
bottom: 90px;
|
|
2221
|
+
${this.position.includes("right") ? "right: 24px;" : "left: 24px;"}
|
|
2222
|
+
width: 280px;
|
|
2223
|
+
background: #1e293b;
|
|
2224
|
+
color: #f1f5f9;
|
|
2225
|
+
border-radius: 16px;
|
|
2226
|
+
padding: 16px;
|
|
2227
|
+
z-index: 99999;
|
|
2228
|
+
box-shadow: 0 8px 32px rgba(0,0,0,0.35);
|
|
2229
|
+
font-family: inherit;
|
|
2230
|
+
font-size: 13px;
|
|
2231
|
+
line-height: 1.5;
|
|
2232
|
+
animation: avin-slide-up 0.3s ease;
|
|
2233
|
+
`, s.innerHTML = `
|
|
2234
|
+
<div style="display:flex;gap:10px;align-items:flex-start;">
|
|
2235
|
+
<span style="font-size:20px;">${i ? "🔒" : "⚠️"}</span>
|
|
2236
|
+
<div style="flex:1;">
|
|
2237
|
+
<div style="font-weight:600;margin-bottom:4px;color:#e2e8f0;">
|
|
2238
|
+
${i ? "Widget active in another tab" : "Session moved to another tab"}
|
|
2239
|
+
</div>
|
|
2240
|
+
<div style="color:#94a3b8;font-size:12px;">
|
|
2241
|
+
${i ? "Your chat session is open elsewhere. Use the widget there, or click below to continue here." : "Another tab took over your session. Click below to reclaim it here."}
|
|
2242
|
+
</div>
|
|
2243
|
+
<div style="display:flex;gap:8px;margin-top:12px;">
|
|
2244
|
+
<button id="avin-use-here-btn" style="
|
|
2245
|
+
flex:1;padding:7px 12px;border-radius:8px;
|
|
2246
|
+
background:var(--avin-primary,#6366f1);color:#fff;
|
|
2247
|
+
border:none;cursor:pointer;font-size:12px;font-weight:600;
|
|
2248
|
+
">Use Here</button>
|
|
2249
|
+
<button id="avin-dismiss-btn" style="
|
|
2250
|
+
flex:1;padding:7px 12px;border-radius:8px;
|
|
2251
|
+
background:#334155;color:#cbd5e1;
|
|
2252
|
+
border:none;cursor:pointer;font-size:12px;
|
|
2253
|
+
">Dismiss</button>
|
|
2254
|
+
</div>
|
|
2255
|
+
</div>
|
|
2256
|
+
</div>
|
|
2257
|
+
`, this.root.appendChild(s), (a = s.querySelector("#avin-use-here-btn")) == null || a.addEventListener("click", () => {
|
|
2258
|
+
var l;
|
|
2259
|
+
(l = this.sessionManager) == null || l.forceClaimSession(), this.sessionActive = !0, s.remove(), this.widgetMode.includes("chat") && this.initializeChatSession(!1);
|
|
2260
|
+
}), (r = s.querySelector("#avin-dismiss-btn")) == null || r.addEventListener("click", () => {
|
|
2261
|
+
s.remove();
|
|
2262
|
+
});
|
|
2263
|
+
}
|
|
2264
|
+
// ─── Chat Logic ───────────────────────────────────────────────────────────
|
|
2265
|
+
async initializeChatSession(e = !1) {
|
|
2266
|
+
var i, s, o, a, r, l, A, d, w, f;
|
|
2267
|
+
if (this.sessionActive)
|
|
2268
|
+
try {
|
|
2269
|
+
B.setChatUrl(this.chatServerUrl);
|
|
2270
|
+
const p = (i = this.sessionManager) == null ? void 0 : i.getSession();
|
|
2271
|
+
if (!e && (p != null && p.prospectId)) {
|
|
2272
|
+
this.prospectId = p.prospectId, this.chatId = p.chatId, console.log(`[AvinAI] Session restored — tab: ${(s = this.sessionManager) == null ? void 0 : s.getTabId()}, prospect: ${this.prospectId}`), this.restoreSessionMessages(), this.chatId && !this.eventSource && (this.eventSource = B.listenForAdminReplies(
|
|
2273
|
+
this.chatId,
|
|
2274
|
+
this.prospectId,
|
|
2275
|
+
(u) => {
|
|
2276
|
+
var g, m, y;
|
|
2277
|
+
(m = (g = this.currentView) == null ? void 0 : g.getChatWindow) == null || m.call(g).addMessage("assistant", u), (y = this.sessionManager) == null || y.pushMessage("assistant", u);
|
|
2278
|
+
}
|
|
2279
|
+
));
|
|
2280
|
+
return;
|
|
2281
|
+
}
|
|
2282
|
+
this.prospectGroupId ? this.prospectId = await B.createChatProspect(this.prospectGroupId) : this.prospectId = `anon_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
2283
|
+
const h = await B.fetchWelcomeMessage(this.agentId, this.prospectId, this.widgetId || void 0);
|
|
2284
|
+
if (h != null && h.chatId && !this.chatId && (this.chatId = h.chatId, this.eventSource || (this.eventSource = B.listenForAdminReplies(
|
|
2285
|
+
this.chatId,
|
|
2286
|
+
this.prospectId,
|
|
2287
|
+
(u) => {
|
|
2288
|
+
var g, m, y;
|
|
2289
|
+
(m = (g = this.currentView) == null ? void 0 : g.getChatWindow) == null || m.call(g).addMessage("assistant", u), (y = this.sessionManager) == null || y.pushMessage("assistant", u);
|
|
2096
2290
|
}
|
|
2097
|
-
|
|
2098
|
-
|
|
2291
|
+
))), (o = this.sessionManager) == null || o.saveIds(this.prospectId, this.chatId), h && ((a = this.currentView) != null && a.getChatWindow)) {
|
|
2292
|
+
const u = this.currentView.getChatWindow();
|
|
2293
|
+
if (u.clearMessages(), h.widget)
|
|
2294
|
+
try {
|
|
2295
|
+
const g = JSON.parse(h.content), m = g.text || "";
|
|
2296
|
+
u.addMessage(h.role, m), (r = this.sessionManager) == null || r.pushMessage(h.role, m), g.buttons && Array.isArray(g.buttons) && (u.addButtons(g.buttons), this.welcomeChipsData = g.buttons), this.updateWelcomeChipsVisibility();
|
|
2297
|
+
} catch (g) {
|
|
2298
|
+
console.error("Failed to parse welcome widget content", g), u.addMessage(h.role, h.content), (l = this.sessionManager) == null || l.pushMessage(h.role, h.content);
|
|
2299
|
+
}
|
|
2300
|
+
else
|
|
2301
|
+
u.addMessage(h.role, h.content), (A = this.sessionManager) == null || A.pushMessage(h.role, h.content);
|
|
2302
|
+
}
|
|
2303
|
+
} catch (p) {
|
|
2304
|
+
console.error("[AvinAI] Chat init failed", p);
|
|
2305
|
+
const h = "Hello! How can I help you today?";
|
|
2306
|
+
(w = (d = this.currentView) == null ? void 0 : d.getChatWindow) == null || w.call(d).addMessage("assistant", h), (f = this.sessionManager) == null || f.pushMessage("assistant", h);
|
|
2099
2307
|
}
|
|
2100
|
-
} catch (s) {
|
|
2101
|
-
console.error("Chat init failed", s), (n = (i = this.currentView) == null ? void 0 : i.getChatWindow) == null || n.call(i).addMessage("assistant", "Hello! How can I help you today?");
|
|
2102
|
-
}
|
|
2103
2308
|
}
|
|
2104
2309
|
async initialize(e) {
|
|
2105
2310
|
await super.initialize(e), this.processConfig(e), this.root && this.ui_renderer(this.root);
|
|
2106
2311
|
}
|
|
2107
2312
|
processConfig(e) {
|
|
2108
|
-
var i,
|
|
2109
|
-
if (this.agentId = e.agentId || e.agent_id || "", this.prospectGroupId = e.prospectGroupId || ((i = e.client) == null ? void 0 : i.base_prospect_group_id) || "", this.widgetMode = e.widgetMode || e.mode || "voice_only", this.widgetId = e.widgetId || e.widget_id || "", this.primaryColor = e.primaryColor || "#6366f1", this.secondaryColor = e.secondaryColor || e.primaryColor || "#4f46e5", this.gradient = e.gradient || null, this.position = e.position || "bottom-right", this.widgetIcon = e.widgetIcon || e.icon || null, this.chatServerUrl = e.serverUrl || e.chatServerUrl || "https://inboxapi.travelr.club", (
|
|
2110
|
-
const
|
|
2111
|
-
this.mediaServerUrl =
|
|
2313
|
+
var i, s, o, a;
|
|
2314
|
+
if (this.widgetId = e.widgetId || e.widget_id || "", this.agentId = e.agentId || e.agent_id || "", this.prospectGroupId = e.prospectGroupId || ((i = e.client) == null ? void 0 : i.base_prospect_group_id) || "", this.widgetMode = e.widgetMode || e.mode || "voice_only", this.widgetId = e.widgetId || e.widget_id || "", this.primaryColor = e.primaryColor || "#6366f1", this.secondaryColor = e.secondaryColor || e.primaryColor || "#4f46e5", this.gradient = e.gradient || null, this.position = e.position || "bottom-right", this.widgetIcon = e.widgetIcon || e.icon || null, this.chatServerUrl = e.serverUrl || e.chatServerUrl || "https://inboxapi.travelr.club", (a = (o = (s = e.agent) == null ? void 0 : s.tts_voice) == null ? void 0 : o.provider) != null && a.root_name) {
|
|
2315
|
+
const r = e.agent.tts_voice.provider.root_name.toLowerCase();
|
|
2316
|
+
this.mediaServerUrl = r === "premium" ? e.premiumMediaServerUrl || "https://godspeed.travelr.club" : e.mediaServerUrl || "https://in-godspeed.travelr.club";
|
|
2112
2317
|
} else
|
|
2113
2318
|
this.mediaServerUrl = e.mediaServerUrl || e.serverUrl || "https://api.travelr.club";
|
|
2114
2319
|
}
|
|
2115
2320
|
async create_call() {
|
|
2116
|
-
if (!(this.callActive || !this.agentId))
|
|
2321
|
+
if (!(this.callActive || !this.agentId)) {
|
|
2322
|
+
if (!this.sessionActive) {
|
|
2323
|
+
console.warn("[AvinAI] Cannot start call — session not owned by this tab.");
|
|
2324
|
+
return;
|
|
2325
|
+
}
|
|
2117
2326
|
try {
|
|
2118
2327
|
this.callActive = !0, this.updateViewCallState(!0), this.updateViewStatus("connecting");
|
|
2119
|
-
const e = await
|
|
2328
|
+
const e = await B.createCall(
|
|
2120
2329
|
this.agentId,
|
|
2121
2330
|
this.prospectId || null,
|
|
2122
2331
|
this.widgetMode
|
|
2123
|
-
), i = new
|
|
2332
|
+
), i = new Z({
|
|
2124
2333
|
agentId: this.agentId,
|
|
2125
2334
|
callId: e,
|
|
2126
2335
|
serverUrl: this.mediaServerUrl
|
|
2127
2336
|
});
|
|
2128
|
-
i.on("connected", () => this.updateViewStatus("connected")).on("disconnected", () => this.end_call()).on("error", (
|
|
2129
|
-
console.error("[AvinAI Widget] Call error:",
|
|
2130
|
-
}).on("transcription", ({ text:
|
|
2131
|
-
var
|
|
2132
|
-
(
|
|
2133
|
-
}).on("track", ({ track:
|
|
2134
|
-
var
|
|
2135
|
-
this.widgetMode.includes("avatar") &&
|
|
2136
|
-
}).on("tool_call", (
|
|
2137
|
-
var
|
|
2138
|
-
const
|
|
2139
|
-
detail:
|
|
2337
|
+
i.on("connected", () => this.updateViewStatus("connected")).on("disconnected", () => this.end_call()).on("error", (s) => {
|
|
2338
|
+
console.error("[AvinAI Widget] Call error:", s), this.updateViewStatus("error");
|
|
2339
|
+
}).on("transcription", ({ text: s, isFinal: o }) => {
|
|
2340
|
+
var a, r;
|
|
2341
|
+
(r = (a = this.currentView) == null ? void 0 : a.setTranscription) == null || r.call(a, s, o);
|
|
2342
|
+
}).on("track", ({ track: s }) => {
|
|
2343
|
+
var o;
|
|
2344
|
+
this.widgetMode.includes("avatar") && s.kind === "video" && ((o = this.currentView) != null && o.setVideoTrack) && this.currentView.setVideoTrack(s);
|
|
2345
|
+
}).on("tool_call", (s) => {
|
|
2346
|
+
var a, r;
|
|
2347
|
+
const o = new CustomEvent("avinai:tool_call", {
|
|
2348
|
+
detail: s,
|
|
2140
2349
|
bubbles: !0,
|
|
2141
2350
|
composed: !0
|
|
2142
2351
|
// crosses Shadow DOM boundary
|
|
2143
2352
|
});
|
|
2144
|
-
(
|
|
2353
|
+
(r = (a = this.root) == null ? void 0 : a.host) == null || r.dispatchEvent(o), console.log("[AvinAI Widget] Tool call dispatched:", s.name, s.arguments), s.execution_mode;
|
|
2145
2354
|
}), this.avinClient = i, await i.start();
|
|
2146
2355
|
} catch (e) {
|
|
2147
2356
|
console.error("[AvinAI Widget] Call failed", e), this.updateViewStatus("error");
|
|
2148
2357
|
}
|
|
2358
|
+
}
|
|
2149
2359
|
}
|
|
2150
2360
|
end_call() {
|
|
2151
2361
|
this.callActive = !1;
|
|
@@ -2153,25 +2363,32 @@ class le extends q {
|
|
|
2153
2363
|
this.avinClient = null, e && e.stop(), this.updateViewCallState(!1);
|
|
2154
2364
|
}
|
|
2155
2365
|
updateViewCallState(e) {
|
|
2156
|
-
|
|
2366
|
+
var i;
|
|
2367
|
+
(i = this.currentView) != null && i.setCallActive && this.currentView.setCallActive(e);
|
|
2157
2368
|
}
|
|
2158
2369
|
updateViewStatus(e) {
|
|
2159
|
-
|
|
2370
|
+
var i;
|
|
2371
|
+
(i = this.currentView) != null && i.setStatus && this.currentView.setStatus(e);
|
|
2160
2372
|
}
|
|
2161
2373
|
ui_renderer(e) {
|
|
2162
2374
|
this.root = e, this.root.innerHTML = "";
|
|
2163
2375
|
const i = document.createElement("style");
|
|
2164
|
-
i.textContent =
|
|
2165
|
-
|
|
2166
|
-
:
|
|
2167
|
-
|
|
2168
|
-
|
|
2376
|
+
i.textContent = `@keyframes avin-slide-up {
|
|
2377
|
+
from { opacity:0; transform:translateY(16px); }
|
|
2378
|
+
to { opacity:1; transform:translateY(0); }
|
|
2379
|
+
}`, this.root.appendChild(i);
|
|
2380
|
+
const s = document.createElement("style");
|
|
2381
|
+
s.textContent = `
|
|
2382
|
+
${ie}
|
|
2383
|
+
:host { ${ee(this.primaryColor, this.secondaryColor)} }
|
|
2169
2384
|
${G.styles}
|
|
2385
|
+
${z.styles}
|
|
2386
|
+
${H.styles}
|
|
2170
2387
|
${this.gradient ? `.widget-fab { background: ${this.gradient} !important; }` : ""}
|
|
2171
|
-
`, this.root.appendChild(
|
|
2388
|
+
`, this.root.appendChild(s), this.floatingButton = new G(() => this.togglePanel()), this.floatingButton.setIcon(this.getFabIcon()), this.floatingButton.setPosition(this.getPosStyle()), this.floatingWelcomeChips = new z((a) => this.handleFloatingChipClick(a)), this.floatingWelcomeChips.setPosition(this.getPosStyle()), this.panel = new H(() => this.closePanel(), this.getPanelTitle()), this.root.appendChild(this.floatingWelcomeChips.getElement()), this.root.appendChild(this.floatingButton.getElement()), this.root.appendChild(this.panel.getElement()), this.setupPanelContent(), this.initSessionManager() ? this.widgetMode.includes("chat") && this.initializeChatSession() : this.showTabConflictBanner("conflict");
|
|
2172
2389
|
}
|
|
2173
2390
|
getFabIcon() {
|
|
2174
|
-
return this.widgetIcon &&
|
|
2391
|
+
return this.widgetIcon && E[this.widgetIcon] ? E[this.widgetIcon] : this.widgetMode.includes("chat") ? C.chat : C.audioLines;
|
|
2175
2392
|
}
|
|
2176
2393
|
getPanelTitle() {
|
|
2177
2394
|
let e = "Voice Assistant";
|
|
@@ -2190,10 +2407,10 @@ class le extends q {
|
|
|
2190
2407
|
const e = [this.primaryColor, this.secondaryColor];
|
|
2191
2408
|
switch (this.widgetMode) {
|
|
2192
2409
|
case "chat_only":
|
|
2193
|
-
this.currentView = new
|
|
2410
|
+
this.currentView = new ae((i) => this.handleChatSend(i));
|
|
2194
2411
|
break;
|
|
2195
2412
|
case "chat_voice":
|
|
2196
|
-
this.currentView = new
|
|
2413
|
+
this.currentView = new re(
|
|
2197
2414
|
(i) => this.handleChatSend(i),
|
|
2198
2415
|
() => this.create_call(),
|
|
2199
2416
|
() => this.end_call(),
|
|
@@ -2201,14 +2418,14 @@ class le extends q {
|
|
|
2201
2418
|
);
|
|
2202
2419
|
break;
|
|
2203
2420
|
case "avatar_only":
|
|
2204
|
-
this.currentView = new
|
|
2421
|
+
this.currentView = new le(
|
|
2205
2422
|
() => this.create_call(),
|
|
2206
2423
|
() => this.end_call(),
|
|
2207
2424
|
...e
|
|
2208
2425
|
);
|
|
2209
2426
|
break;
|
|
2210
2427
|
case "chat_avatar":
|
|
2211
|
-
this.currentView = new
|
|
2428
|
+
this.currentView = new Ae(
|
|
2212
2429
|
(i) => this.handleChatSend(i),
|
|
2213
2430
|
() => this.create_call(),
|
|
2214
2431
|
() => this.end_call(),
|
|
@@ -2217,7 +2434,7 @@ class le extends q {
|
|
|
2217
2434
|
break;
|
|
2218
2435
|
case "voice_only":
|
|
2219
2436
|
default:
|
|
2220
|
-
this.currentView = new
|
|
2437
|
+
this.currentView = new oe(
|
|
2221
2438
|
() => this.create_call(),
|
|
2222
2439
|
() => this.end_call(),
|
|
2223
2440
|
...e
|
|
@@ -2227,37 +2444,47 @@ class le extends q {
|
|
|
2227
2444
|
this.currentView && this.panel && this.panel.setContent(this.currentView.getElement());
|
|
2228
2445
|
}
|
|
2229
2446
|
async handleChatSend(e) {
|
|
2230
|
-
var
|
|
2447
|
+
var s, o, a, r;
|
|
2231
2448
|
if (!e) return;
|
|
2232
|
-
|
|
2449
|
+
if (!this.sessionActive) {
|
|
2450
|
+
console.warn("[AvinAI] Cannot send message — session not owned by this tab."), this.showTabConflictBanner("conflict");
|
|
2451
|
+
return;
|
|
2452
|
+
}
|
|
2453
|
+
const i = (o = (s = this.currentView) == null ? void 0 : s.getChatWindow) == null ? void 0 : o.call(s);
|
|
2233
2454
|
if (i) {
|
|
2234
|
-
this.chatId && !this.eventSource && (this.eventSource =
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2455
|
+
this.chatId && !this.eventSource && (this.eventSource = B.listenForAdminReplies(
|
|
2456
|
+
this.chatId,
|
|
2457
|
+
this.prospectId,
|
|
2458
|
+
(l) => {
|
|
2459
|
+
var A, d, w;
|
|
2460
|
+
(d = (A = this.currentView) == null ? void 0 : A.getChatWindow) == null || d.call(A).addMessage("assistant", l), (w = this.sessionManager) == null || w.pushMessage("assistant", l);
|
|
2461
|
+
}
|
|
2462
|
+
)), i.addMessage("user", e), (a = this.sessionManager) == null || a.pushMessage("user", e), i.setTyping(!0), (r = this.sessionManager) == null || r.pushMessage("assistant", "");
|
|
2238
2463
|
try {
|
|
2239
2464
|
await this.chatAdapter.sendMessage(
|
|
2240
2465
|
e,
|
|
2241
2466
|
this.agentId,
|
|
2242
2467
|
this.prospectId,
|
|
2243
2468
|
this.chatId,
|
|
2244
|
-
(
|
|
2245
|
-
var
|
|
2246
|
-
i.setTyping(!1),
|
|
2469
|
+
(l) => {
|
|
2470
|
+
var A;
|
|
2471
|
+
i.setTyping(!1), (l == null ? void 0 : l.type) === "button_list" && ((A = l.data) != null && A.buttons) && (i.addButtons(l.data.buttons), this.welcomeChipsData = l.data.buttons, this.updateWelcomeChipsVisibility());
|
|
2247
2472
|
},
|
|
2248
|
-
(
|
|
2249
|
-
|
|
2473
|
+
(l) => {
|
|
2474
|
+
var A;
|
|
2475
|
+
i.setTyping(!1), i.updateLastAssistantMessage(l), (A = this.sessionManager) == null || A.updateLastAssistantMessage(l);
|
|
2250
2476
|
},
|
|
2251
|
-
(
|
|
2252
|
-
|
|
2477
|
+
(l) => {
|
|
2478
|
+
var A;
|
|
2479
|
+
l && (this.chatId = l, (A = this.sessionManager) == null || A.saveIds(this.prospectId, l));
|
|
2253
2480
|
}
|
|
2254
2481
|
);
|
|
2255
|
-
} catch (
|
|
2256
|
-
i.setTyping(!1), console.error("Send message failed",
|
|
2482
|
+
} catch (l) {
|
|
2483
|
+
i.setTyping(!1), console.error("[AvinAI] Send message failed", l), i.addMessage("assistant", "Error sending message.");
|
|
2257
2484
|
}
|
|
2258
2485
|
}
|
|
2259
2486
|
}
|
|
2260
|
-
// Panel Management
|
|
2487
|
+
// ─── Panel Management ─────────────────────────────────────────────────────
|
|
2261
2488
|
togglePanel() {
|
|
2262
2489
|
this.isPanelOpen ? this.closePanel() : this.openPanel();
|
|
2263
2490
|
}
|
|
@@ -2281,29 +2508,29 @@ class le extends q {
|
|
|
2281
2508
|
this.openPanel(), this.handleChatSend(e);
|
|
2282
2509
|
}
|
|
2283
2510
|
}
|
|
2284
|
-
class
|
|
2511
|
+
class he {
|
|
2285
2512
|
/**
|
|
2286
2513
|
* Factory Method to create the appropriate Widget Provider.
|
|
2287
2514
|
* Implements the Factory Pattern to decouple creation logic.
|
|
2288
2515
|
* Trade-off: Currently hardcoded to AvinInternalProvider, but extensible for other providers.
|
|
2289
2516
|
*/
|
|
2290
2517
|
static getProvider(t) {
|
|
2291
|
-
return new
|
|
2518
|
+
return new de(t);
|
|
2292
2519
|
}
|
|
2293
2520
|
}
|
|
2294
|
-
class
|
|
2521
|
+
class pe extends HTMLElement {
|
|
2295
2522
|
constructor() {
|
|
2296
2523
|
super();
|
|
2297
|
-
|
|
2298
|
-
|
|
2524
|
+
n(this, "shadow");
|
|
2525
|
+
n(this, "provider", null);
|
|
2299
2526
|
// Config attributes
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2527
|
+
n(this, "widgetId", "");
|
|
2528
|
+
n(this, "agentId", "");
|
|
2529
|
+
n(this, "serverUrl", "https://inboxapi.travelr.club");
|
|
2530
|
+
n(this, "position", "bottom-right");
|
|
2531
|
+
n(this, "primaryColor", "#6366f1");
|
|
2532
|
+
n(this, "secondaryColor", "#4f46e5");
|
|
2533
|
+
n(this, "gradient", null);
|
|
2307
2534
|
this.shadow = this.attachShadow({ mode: "open" });
|
|
2308
2535
|
}
|
|
2309
2536
|
static get observedAttributes() {
|
|
@@ -2320,14 +2547,14 @@ class he extends HTMLElement {
|
|
|
2320
2547
|
secondaryColor: this.secondaryColor,
|
|
2321
2548
|
gradient: this.gradient
|
|
2322
2549
|
};
|
|
2323
|
-
this.provider =
|
|
2550
|
+
this.provider = he.getProvider(e), this.provider && this.provider.ui_renderer(this.shadow), this.widgetId && !this.agentId && this.initializeExpandedConfig();
|
|
2324
2551
|
}
|
|
2325
2552
|
readAttributes() {
|
|
2326
2553
|
this.widgetId = this.getAttribute("widget-id") || "", this.agentId = this.getAttribute("agent-id") || "", this.serverUrl = this.getAttribute("server-url") || "https://inboxapi.travelr.club", this.position = this.getAttribute("position") || "bottom-right", this.primaryColor = this.getAttribute("primary-color") || "#6366f1", this.secondaryColor = this.getAttribute("secondary-color") || this.primaryColor, this.gradient = this.getAttribute("gradient");
|
|
2327
2554
|
}
|
|
2328
2555
|
async initializeExpandedConfig() {
|
|
2329
2556
|
try {
|
|
2330
|
-
const e = await
|
|
2557
|
+
const e = await _.fetchWidgetConfig(this.widgetId);
|
|
2331
2558
|
this.provider && await this.provider.initialize(e);
|
|
2332
2559
|
} catch (e) {
|
|
2333
2560
|
console.error("[AvinAI Widget] Config failed:", e);
|
|
@@ -2335,9 +2562,10 @@ class he extends HTMLElement {
|
|
|
2335
2562
|
}
|
|
2336
2563
|
}
|
|
2337
2564
|
export {
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2565
|
+
Z as AvinAI,
|
|
2566
|
+
pe as AvinWidget,
|
|
2567
|
+
B as ChatService,
|
|
2568
|
+
_ as ConfigService,
|
|
2569
|
+
D as SessionManager,
|
|
2570
|
+
M as WebRTCClient
|
|
2343
2571
|
};
|