@d-id/client-sdk 1.1.49 → 1.1.50-staging.218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- var rt = Object.defineProperty;
2
- var it = (e, t, i) => t in e ? rt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i;
3
- var ge = (e, t, i) => it(e, typeof t != "symbol" ? t + "" : t, i);
1
+ var nt = Object.defineProperty;
2
+ var rt = (e, t, i) => t in e ? nt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i;
3
+ var me = (e, t, i) => rt(e, typeof t != "symbol" ? t + "" : t, i);
4
4
  class Se extends Error {
5
5
  constructor({ kind: i, description: r, error: o }) {
6
6
  super(JSON.stringify({ kind: i, description: r }));
7
- ge(this, "kind");
8
- ge(this, "description");
9
- ge(this, "error");
7
+ me(this, "kind");
8
+ me(this, "description");
9
+ me(this, "error");
10
10
  this.kind = i, this.description = r, this.error = o;
11
11
  }
12
12
  }
13
- class at extends Se {
13
+ class it extends Se {
14
14
  constructor(t, i) {
15
15
  super({
16
16
  kind: "ChatCreationFailed",
@@ -18,25 +18,25 @@ class at extends Se {
18
18
  });
19
19
  }
20
20
  }
21
- class ot extends Se {
21
+ class at extends Se {
22
22
  constructor(t) {
23
23
  super({ kind: "ChatModeDowngraded", description: `Chat mode downgraded to ${t}` });
24
24
  }
25
25
  }
26
- class fe extends Se {
26
+ class le extends Se {
27
27
  constructor(i, r) {
28
28
  super({ kind: "ValidationError", description: i });
29
- ge(this, "key");
29
+ me(this, "key");
30
30
  this.key = r;
31
31
  }
32
32
  }
33
- class st extends Se {
33
+ class ot extends Se {
34
34
  constructor(t) {
35
35
  super({ kind: "WSError", description: t });
36
36
  }
37
37
  }
38
- var ct = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(ct || {}), dt = /* @__PURE__ */ ((e) => (e.TRIAL = "deid-trial", e.PRO = "deid-pro", e.ENTERPRISE = "deid-enterprise", e.LITE = "deid-lite", e.ADVANCED = "deid-advanced", e.BUILD = "deid-api-build", e.LAUNCH = "deid-api-launch", e.SCALE = "deid-api-scale", e))(dt || {}), ut = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(ut || {}), lt = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(lt || {}), x = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e.Playground = "Playground", e.DirectPlayback = "DirectPlayback", e.Off = "Off", e))(x || {}), X = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Transcribe = "transcribe", e.Complete = "done", e))(X || {}), ft = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(ft || {}), mt = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(mt || {}), gt = /* @__PURE__ */ ((e) => (e.Pdf = "pdf", e.Text = "text", e.Html = "html", e.Word = "word", e.Json = "json", e.Markdown = "markdown", e.Csv = "csv", e.Excel = "excel", e.Powerpoint = "powerpoint", e.Archive = "archive", e.Image = "image", e.Audio = "audio", e.Video = "video", e))(gt || {}), Oe = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e.Expressive = "expressive", e))(Oe || {});
39
- const kn = (e) => {
38
+ var st = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(st || {}), ct = /* @__PURE__ */ ((e) => (e.TRIAL = "deid-trial", e.PRO = "deid-pro", e.ENTERPRISE = "deid-enterprise", e.LITE = "deid-lite", e.ADVANCED = "deid-advanced", e.BUILD = "deid-api-build", e.LAUNCH = "deid-api-launch", e.SCALE = "deid-api-scale", e))(ct || {}), dt = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(dt || {}), ut = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(ut || {}), x = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e.Playground = "Playground", e.DirectPlayback = "DirectPlayback", e.Off = "Off", e))(x || {}), Y = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Transcribe = "transcribe", e.Complete = "done", e))(Y || {}), lt = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(lt || {}), ft = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(ft || {}), mt = /* @__PURE__ */ ((e) => (e.Pdf = "pdf", e.Text = "text", e.Html = "html", e.Word = "word", e.Json = "json", e.Markdown = "markdown", e.Csv = "csv", e.Excel = "excel", e.Powerpoint = "powerpoint", e.Archive = "archive", e.Image = "image", e.Audio = "audio", e.Video = "video", e))(mt || {}), He = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e.Expressive = "expressive", e))(He || {});
39
+ const Sn = (e) => {
40
40
  switch (e) {
41
41
  case "clip":
42
42
  return "clip";
@@ -48,13 +48,13 @@ const kn = (e) => {
48
48
  throw new Error(`Unknown video type: ${e}`);
49
49
  }
50
50
  };
51
- var C = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(C || {}), ne = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(ne || {}), O = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Loading = "LOADING", e.Talking = "TALKING", e))(O || {}), L = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.ChatAudioTranscribed = "chat/audio-transcribed", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e.StreamReady = "stream/ready", e.StreamCreated = "stream/created", e.StreamInterrupt = "stream/interrupt", e.StreamVideoCreated = "stream-video/started", e.StreamVideoDone = "stream-video/done", e.StreamVideoError = "stream-video/error", e.StreamVideoRejected = "stream-video/rejected", e))(L || {}), T = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnecting = "disconnecting", e.Disconnected = "disconnected", e))(T || {}), re = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(re || {}), ke = /* @__PURE__ */ ((e) => (e.Livekit = "livekit", e))(ke || {}), ht = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.AzureOpenAi = "azure-openai", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(ht || {}), pt = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(pt || {});
52
- const wt = 45 * 1e3, yt = "X-Playground-Chat", pe = "https://api.d-id.com", vt = "wss://notifications.d-id.com", Ct = "79f81a83a67430be2bc0fd61042b8faa", St = (...e) => {
53
- }, He = (e) => new Promise((t) => setTimeout(t, e)), me = (e = 16) => {
51
+ var C = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(C || {}), re = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(re || {}), O = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Loading = "LOADING", e.Talking = "TALKING", e))(O || {}), A = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.ChatAudioTranscribed = "chat/audio-transcribed", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e.StreamReady = "stream/ready", e.StreamCreated = "stream/created", e.StreamInterrupt = "stream/interrupt", e.StreamVideoCreated = "stream-video/started", e.StreamVideoDone = "stream-video/done", e.StreamVideoError = "stream-video/error", e.StreamVideoRejected = "stream-video/rejected", e))(A || {}), T = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnecting = "disconnecting", e.Disconnected = "disconnected", e))(T || {}), ie = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(ie || {}), ke = /* @__PURE__ */ ((e) => (e.Livekit = "livekit", e))(ke || {}), gt = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.AzureOpenAi = "azure-openai", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(gt || {}), ht = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(ht || {});
52
+ const pt = 45 * 1e3, wt = "X-Playground-Chat", he = "https://api.d-id.com", yt = "wss://notifications.d-id.com", vt = "79f81a83a67430be2bc0fd61042b8faa", Ct = (...e) => {
53
+ }, qe = (e) => new Promise((t) => setTimeout(t, e)), fe = (e = 16) => {
54
54
  const t = new Uint8Array(e);
55
55
  return window.crypto.getRandomValues(t), Array.from(t, (i) => i.toString(16).padStart(2, "0")).join("").slice(0, 13);
56
- }, qe = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type, _e = (e) => e === Oe.Expressive, kt = (e) => [x.TextOnly, x.Playground, x.Maintenance].includes(e), Qe = (e) => e && [x.DirectPlayback, x.Off].includes(e);
57
- function Rt(e, t) {
56
+ }, Qe = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type, _e = (e) => e === He.Expressive, St = (e) => [x.TextOnly, x.Playground, x.Maintenance].includes(e), Xe = (e) => e && [x.DirectPlayback, x.Off].includes(e);
57
+ function kt(e, t) {
58
58
  let i;
59
59
  return {
60
60
  promise: new Promise((o, a) => {
@@ -78,12 +78,12 @@ async function De(e, t) {
78
78
  try {
79
79
  if (!i.timeout)
80
80
  return await e();
81
- const { promise: a, clear: s } = Rt(i.timeout, i.timeoutErrorMessage), d = e().finally(s);
81
+ const { promise: a, clear: s } = kt(i.timeout, i.timeoutErrorMessage), d = e().finally(s);
82
82
  return await Promise.race([d, a]);
83
83
  } catch (a) {
84
84
  if (r = a, !i.shouldRetryFn(a) || o >= i.limit)
85
85
  throw a;
86
- await He(i.delayMs), i.onRetry(a);
86
+ await qe(i.delayMs), i.onRetry(a);
87
87
  }
88
88
  throw r;
89
89
  }
@@ -92,43 +92,43 @@ function Ee(e) {
92
92
  return window.localStorage.setItem("did_external_key_id", e), e;
93
93
  let t = window.localStorage.getItem("did_external_key_id");
94
94
  if (!t) {
95
- let i = me();
95
+ let i = fe();
96
96
  window.localStorage.setItem("did_external_key_id", i), t = i;
97
97
  }
98
98
  return t;
99
99
  }
100
- let Dt = me();
101
- function Xe(e, t) {
100
+ let Rt = fe();
101
+ function Ye(e, t) {
102
102
  if (e.type === "bearer")
103
103
  return `Bearer ${e.token}`;
104
104
  if (e.type === "basic")
105
105
  return `Basic ${btoa(`${e.username}:${e.password}`)}`;
106
106
  if (e.type === "key")
107
- return `Client-Key ${e.clientKey}.${Ee(t)}_${Dt}`;
107
+ return `Client-Key ${e.clientKey}.${Ee(t)}_${Rt}`;
108
108
  throw new Error(`Unknown auth type: ${e}`);
109
109
  }
110
- const Et = (e) => De(e, {
110
+ const Dt = (e) => De(e, {
111
111
  limit: 3,
112
112
  delayMs: 1e3,
113
113
  timeout: 0,
114
114
  shouldRetryFn: (t) => t.status === 429
115
115
  });
116
- function Ae(e, t = pe, i, r) {
116
+ function Ae(e, t = he, i, r) {
117
117
  const o = async (a, s) => {
118
- const { skipErrorHandler: d, ...n } = s || {}, c = await Et(
118
+ const { skipErrorHandler: d, ...n } = s || {}, c = await Dt(
119
119
  () => fetch(t + (a != null && a.startsWith("/") ? a : `/${a}`), {
120
120
  ...n,
121
121
  headers: {
122
122
  ...n.headers,
123
- Authorization: Xe(e, r),
123
+ Authorization: Ye(e, r),
124
124
  "Content-Type": "application/json"
125
125
  }
126
126
  })
127
127
  );
128
128
  if (!c.ok) {
129
129
  let g = await c.text().catch(() => `Failed to fetch with status ${c.status}`);
130
- const w = new Error(g);
131
- throw i && !d && i(w, { url: a, options: n, headers: c.headers }), w;
130
+ const p = new Error(g);
131
+ throw i && !d && i(p, { url: a, options: n, headers: c.headers }), p;
132
132
  }
133
133
  return c.json();
134
134
  };
@@ -147,7 +147,7 @@ function Ae(e, t = pe, i, r) {
147
147
  }
148
148
  };
149
149
  }
150
- function Mt(e, t = pe, i, r) {
150
+ function Et(e, t = he, i, r) {
151
151
  const o = Ae(e, `${t}/agents`, i, r);
152
152
  return {
153
153
  create(a, s) {
@@ -185,7 +185,7 @@ function Mt(e, t = pe, i, r) {
185
185
  }
186
186
  };
187
187
  }
188
- function It(e) {
188
+ function Mt(e) {
189
189
  var o, a, s, d;
190
190
  const t = () => /Mobi|Android/i.test(navigator.userAgent) ? "Mobile" : "Desktop", i = () => {
191
191
  const n = navigator.platform;
@@ -196,18 +196,18 @@ function It(e) {
196
196
  isMobile: `${t() == "Mobile"}`,
197
197
  browser: navigator.userAgent,
198
198
  origin: window.location.origin,
199
- agentType: qe(r),
199
+ agentType: Qe(r),
200
200
  agentVoice: {
201
201
  voiceId: (a = (o = e.presenter) == null ? void 0 : o.voice) == null ? void 0 : a.voice_id,
202
202
  provider: (d = (s = e.presenter) == null ? void 0 : s.voice) == null ? void 0 : d.type
203
203
  }
204
204
  };
205
205
  }
206
- function Tt(e) {
206
+ function It(e) {
207
207
  var i, r, o, a, s, d;
208
208
  const t = (i = e.llm) == null ? void 0 : i.prompt_customization;
209
209
  return {
210
- agentType: qe(e.presenter),
210
+ agentType: Qe(e.presenter),
211
211
  owner_id: e.owner_id ?? "",
212
212
  promptVersion: (r = e.llm) == null ? void 0 : r.prompt_version,
213
213
  behavior: {
@@ -226,8 +226,8 @@ function Tt(e) {
226
226
  ...e.access === "public" ? { from: "agent-template" } : {}
227
227
  };
228
228
  }
229
- const _t = (e) => e.reduce((t, i) => t + i, 0), ze = (e) => _t(e) / e.length;
230
- function At(e, t, i) {
229
+ const Tt = (e) => e.reduce((t, i) => t + i, 0), ze = (e) => Tt(e) / e.length;
230
+ function _t(e, t, i) {
231
231
  var n, c, g;
232
232
  const { event: r, ...o } = e, { template: a } = (t == null ? void 0 : t.llm) || {}, { language: s } = ((n = t == null ? void 0 : t.presenter) == null ? void 0 : n.voice) || {};
233
233
  return {
@@ -241,8 +241,8 @@ function At(e, t, i) {
241
241
  function Ke(e) {
242
242
  "requestIdleCallback" in window ? requestIdleCallback(e, { timeout: 2e3 }) : setTimeout(e, 0);
243
243
  }
244
- const Lt = "https://api-js.mixpanel.com/track/?verbose=1&ip=1";
245
- function Pt(e) {
244
+ const At = "https://api-js.mixpanel.com/track/?verbose=1&ip=1";
245
+ function Lt(e) {
246
246
  const t = window != null && window.hasOwnProperty("DID_AGENTS_API") ? "agents-ui" : "agents-sdk", i = {};
247
247
  return {
248
248
  token: e.token || "testKey",
@@ -253,7 +253,7 @@ function Pt(e) {
253
253
  ...e.mixpanelAdditionalProperties || {}
254
254
  },
255
255
  isEnabled: e.isEnabled ?? !0,
256
- getRandom: me,
256
+ getRandom: fe,
257
257
  enrich(r) {
258
258
  this.additionalProperties = { ...this.additionalProperties, ...r };
259
259
  },
@@ -286,7 +286,7 @@ function Pt(e) {
286
286
  ])
287
287
  })
288
288
  };
289
- return fetch(Lt, c).catch((g) => console.error("Analytics tracking error:", g)), Promise.resolve();
289
+ return fetch(At, c).catch((g) => console.error("Analytics tracking error:", g)), Promise.resolve();
290
290
  },
291
291
  linkTrack(r, o, a, s) {
292
292
  i[r] || (i[r] = { events: {}, resolvedDependencies: [] }), s.includes(a) || s.push(a);
@@ -294,7 +294,7 @@ function Pt(e) {
294
294
  if (d.events[a] = { props: o }, d.resolvedDependencies.push(a), s.every(
295
295
  (c) => d.resolvedDependencies.includes(c)
296
296
  )) {
297
- const c = s.reduce((g, w) => d.events[w] ? { ...g, ...d.events[w].props } : g, {});
297
+ const c = s.reduce((g, p) => d.events[p] ? { ...g, ...d.events[p].props } : g, {});
298
298
  this.track(r, c), d.resolvedDependencies = d.resolvedDependencies.filter(
299
299
  (g) => !s.includes(g)
300
300
  ), s.forEach((g) => {
@@ -312,22 +312,22 @@ function Le() {
312
312
  get: (t = !1) => t ? Date.now() - e : e
313
313
  };
314
314
  }
315
- const te = Le(), Me = Le(), Ne = Le();
316
- function Ye(e) {
317
- return e === x.Playground ? { headers: { [yt]: "true" } } : {};
315
+ const ne = Le(), Me = Le(), Ne = Le();
316
+ function Ge(e) {
317
+ return e === x.Playground ? { headers: { [wt]: "true" } } : {};
318
318
  }
319
- async function Ge(e, t, i, r, o = !1, a) {
319
+ async function Ze(e, t, i, r, o = !1, a) {
320
320
  try {
321
- return !a && !Qe(r) && (a = await t.newChat(e.id, { persist: o }, Ye(r)), i.track("agent-chat", {
321
+ return !a && !Xe(r) && (a = await t.newChat(e.id, { persist: o }, Ge(r)), i.track("agent-chat", {
322
322
  event: "created",
323
323
  chatId: a.id,
324
324
  mode: r
325
325
  })), { chat: a, chatMode: (a == null ? void 0 : a.chat_mode) ?? r };
326
326
  } catch (s) {
327
- throw bt(s) === "InsufficientCreditsError" ? new Error("InsufficientCreditsError") : new Error("Cannot create new chat");
327
+ throw Pt(s) === "InsufficientCreditsError" ? new Error("InsufficientCreditsError") : new Error("Cannot create new chat");
328
328
  }
329
329
  }
330
- const bt = (e) => {
330
+ const Pt = (e) => {
331
331
  try {
332
332
  const t = JSON.parse(e.message);
333
333
  return t == null ? void 0 : t.kind;
@@ -335,10 +335,10 @@ const bt = (e) => {
335
335
  return "UnknownError";
336
336
  }
337
337
  };
338
- function jt(e) {
338
+ function bt(e) {
339
339
  return e && e.length > 0 ? e : [];
340
340
  }
341
- function $t(e, t, i, r) {
341
+ function jt(e, t, i, r) {
342
342
  const o = Ae(e, `${t}/v2/agents/${i}`, r);
343
343
  return {
344
344
  async createStream(a) {
@@ -346,8 +346,8 @@ function $t(e, t, i, r) {
346
346
  }
347
347
  };
348
348
  }
349
- const Ze = (e, t) => (i, r) => e && console.log(`[${t}] ${i}`, r ?? "");
350
- function Bt(e, t, i) {
349
+ const et = (e, t) => (i, r) => e && console.log(`[${t}] ${i}`, r ?? "");
350
+ function $t(e, t, i) {
351
351
  const r = (t.timestamp - e.timestamp) / 1e3;
352
352
  return {
353
353
  duration: r,
@@ -367,7 +367,7 @@ function Bt(e, t, i) {
367
367
  lowFpsCount: i
368
368
  };
369
369
  }
370
- function xt(e) {
370
+ function Bt(e) {
371
371
  return e.filter(
372
372
  (t) => t.freezeCount > 0 || t.framesPerSecond < 21 || t.framesDropped > 0 || t.packetsLost > 0
373
373
  ).map((t) => {
@@ -378,7 +378,7 @@ function xt(e) {
378
378
  };
379
379
  });
380
380
  }
381
- function Ft(e) {
381
+ function xt(e) {
382
382
  let t = "", i = 0;
383
383
  for (const r of e.values()) {
384
384
  if (r && r.type === "codec" && r.mimeType.startsWith("video") && (t = r.mimeType.split("/")[1]), r && r.type === "candidate-pair") {
@@ -460,14 +460,14 @@ function Ve(e, t, i) {
460
460
  framesPerSecond: n.framesPerSecond,
461
461
  freezeCount: n.freezeCount - e[c - 1].freezeCount,
462
462
  freezeDuration: n.freezeDuration - e[c - 1].freezeDuration
463
- }), o = xt(r), a = o.reduce((n, c) => n + (c.causes.includes("low fps") ? 1 : 0), 0), s = r.filter((n) => !!n.avgJitterDelayInInterval).map((n) => n.avgJitterDelayInInterval), d = r.filter((n) => !!n.rtt).map((n) => n.rtt);
463
+ }), o = Bt(r), a = o.reduce((n, c) => n + (c.causes.includes("low fps") ? 1 : 0), 0), s = r.filter((n) => !!n.avgJitterDelayInInterval).map((n) => n.avgJitterDelayInInterval), d = r.filter((n) => !!n.rtt).map((n) => n.rtt);
464
464
  return {
465
465
  webRTCStats: {
466
466
  anomalies: o,
467
467
  minRtt: Math.min(...d),
468
468
  avgRtt: ze(d),
469
469
  maxRtt: Math.max(...d),
470
- aggregateReport: Bt(e[0], e[e.length - 1], a),
470
+ aggregateReport: $t(e[0], e[e.length - 1], a),
471
471
  minJitterDelayInInterval: Math.min(...s),
472
472
  maxJitterDelayInInterval: Math.max(...s),
473
473
  avgJitterDelayInInterval: ze(s)
@@ -476,16 +476,16 @@ function Ve(e, t, i) {
476
476
  resolution: `${e[0].frameWidth}x${e[0].frameHeight}`
477
477
  };
478
478
  }
479
- const Ce = 100, zt = Math.max(Math.ceil(400 / Ce), 1), Kt = 0.25, Nt = 0.28;
480
- function Vt() {
479
+ const Ce = 100, Ft = Math.max(Math.ceil(400 / Ce), 1), zt = 0.25, Kt = 0.28;
480
+ function Nt() {
481
481
  let e = 0, t, i, r = 0;
482
482
  return (o) => {
483
483
  for (const a of o.values())
484
484
  if (a && a.type === "inbound-rtp" && a.kind === "video") {
485
485
  const s = a.jitterBufferDelay, d = a.jitterBufferEmittedCount;
486
486
  if (i && d > i) {
487
- const g = s - t, w = d - i;
488
- r = g / w;
487
+ const g = s - t, p = d - i;
488
+ r = g / p;
489
489
  }
490
490
  t = s, i = d;
491
491
  const n = a.framesDecoded, c = n - e > 0;
@@ -494,24 +494,24 @@ function Vt() {
494
494
  return { isReceiving: !1, avgJitterDelayInInterval: r };
495
495
  };
496
496
  }
497
- function et(e, t, i, r, o) {
498
- let a = null, s = [], d, n = 0, c = !1, g = ne.Unknown, w = ne.Unknown, h = 0, f = 0;
499
- const P = Vt();
500
- async function J() {
501
- const D = await e();
502
- if (!D)
497
+ function tt(e, t, i, r, o) {
498
+ let a = null, s = [], d, n = 0, c = !1, g = re.Unknown, p = re.Unknown, u = 0, v = 0;
499
+ const F = Nt();
500
+ async function P() {
501
+ const k = await e();
502
+ if (!k)
503
503
  return;
504
- const { isReceiving: k, avgJitterDelayInInterval: _, freezeCount: I } = P(D), F = Ft(D);
505
- if (k)
506
- n = 0, h = I - f, w = _ < Kt ? ne.Strong : _ > Nt && h > 1 ? ne.Weak : g, w !== g && (o == null || o(w), g = w, f += h, h = 0), c || (r == null || r(C.Start), d = s[s.length - 1], s = [], c = !0), s.push(F);
507
- else if (c && (n++, n >= zt)) {
508
- const $ = Ve(s, Ce, d);
509
- r == null || r(C.Stop, $), t() || i(), f = I, c = !1;
504
+ const { isReceiving: S, avgJitterDelayInInterval: N, freezeCount: E } = F(k), b = xt(k);
505
+ if (S)
506
+ n = 0, u = E - v, p = N < zt ? re.Strong : N > Kt && u > 1 ? re.Weak : g, p !== g && (o == null || o(p), g = p, v += u, u = 0), c || (r == null || r(C.Start), d = s[s.length - 1], s = [], c = !0), s.push(b);
507
+ else if (c && (n++, n >= Ft)) {
508
+ const V = Ve(s, Ce, d);
509
+ r == null || r(C.Stop, V), t() || i(), v = E, c = !1;
510
510
  }
511
511
  }
512
512
  return {
513
513
  start: () => {
514
- a || (a = setInterval(J, Ce));
514
+ a || (a = setInterval(P, Ce));
515
515
  },
516
516
  stop: () => {
517
517
  a && (clearInterval(a), a = null);
@@ -519,22 +519,23 @@ function et(e, t, i, r, o) {
519
519
  getReport: () => Ve(s, Ce, d)
520
520
  };
521
521
  }
522
- async function Jt() {
522
+ const Je = 2e4;
523
+ async function Vt() {
523
524
  try {
524
- return await import("./livekit-client.esm-C1GRQdZY.js");
525
+ return await import("./livekit-client.esm-RGXA_gNu.js");
525
526
  } catch {
526
527
  throw new Error(
527
528
  "LiveKit client is required for this streaming manager. Please install it using: npm install livekit-client"
528
529
  );
529
530
  }
530
531
  }
531
- const Ut = {
532
- excellent: ne.Strong,
533
- good: ne.Strong,
534
- poor: ne.Weak,
535
- lost: ne.Unknown,
536
- unknown: ne.Unknown
537
- }, he = JSON.stringify({
532
+ const Jt = {
533
+ excellent: re.Strong,
534
+ good: re.Strong,
535
+ poor: re.Weak,
536
+ lost: re.Unknown,
537
+ unknown: re.Unknown
538
+ }, ge = JSON.stringify({
538
539
  kind: "InternalServerError",
539
540
  description: "Stream Error"
540
541
  });
@@ -543,365 +544,365 @@ function Ie(e, t, i) {
543
544
  var r, o;
544
545
  throw t("Failed to connect to LiveKit room:", e), (r = i.onConnectionStateChange) == null || r.call(i, T.Fail, "internal:init-error"), (o = i.onError) == null || o.call(i, e, { sessionId: "" }), e;
545
546
  }
546
- async function Wt(e, t, i) {
547
+ async function Ut(e, t, i) {
547
548
  var be;
548
- const r = Ze(i.debug || !1, "LiveKitStreamingManager"), { Room: o, RoomEvent: a, ConnectionState: s, Track: d } = await Jt(), { callbacks: n, auth: c, baseURL: g, analytics: w, microphoneStream: h } = i;
549
- let f = null, P = !1;
550
- const J = re.Fluent;
551
- let D = null, k = null, _ = null, I = null, F = !1;
552
- f = new o({
549
+ const r = et(i.debug || !1, "LiveKitStreamingManager"), { Room: o, RoomEvent: a, ConnectionState: s, Track: d } = await Vt(), { callbacks: n, auth: c, baseURL: g, analytics: p } = i;
550
+ let u = null, v = !1;
551
+ const F = ie.Fluent;
552
+ let P = null, k = null, S = null, N = null, E = !1;
553
+ u = new o({
553
554
  adaptiveStream: !1,
554
555
  // Must be false to use mediaStreamTrack directly
555
556
  dynacast: !0
556
557
  });
557
- let $ = null;
558
- const H = 2e4;
559
- let Z = O.Idle;
560
- const se = $t(c, g || pe, e, n.onError);
561
- let N, u, S;
558
+ let b = null, V = O.Idle;
559
+ const H = jt(c, g || he, e, n.onError);
560
+ let z, Z, ee;
562
561
  try {
563
- const l = await se.createStream({
562
+ const f = await H.createStream({
564
563
  transport_provider: ke.Livekit,
565
564
  chat_persist: t.chat_persist ?? !0
566
- }), { id: p, session_token: v, session_url: M } = l;
567
- (be = n.onStreamCreated) == null || be.call(n, { session_id: p, stream_id: p, agent_id: e }), N = p, u = v, S = M, await f.prepareConnection(S, u);
568
- } catch (l) {
569
- Ie(l, r, n);
565
+ }), { id: h, session_token: y, session_url: I } = f;
566
+ (be = n.onStreamCreated) == null || be.call(n, { session_id: h, stream_id: h, agent_id: e }), z = h, Z = y, ee = I, await u.prepareConnection(ee, Z);
567
+ } catch (f) {
568
+ Ie(f, r, n);
570
569
  }
571
- if (!S || !u || !N)
570
+ if (!ee || !Z || !z)
572
571
  return Promise.reject(new Error("Failed to initialize LiveKit stream"));
573
- f.on(a.ConnectionStateChanged, z).on(a.ConnectionQualityChanged, b).on(a.ParticipantConnected, A).on(a.ParticipantDisconnected, K).on(a.TrackSubscribed, j).on(a.TrackUnsubscribed, B).on(a.DataReceived, Y).on(a.MediaDevicesError, ie).on(a.TranscriptionReceived, R).on(a.EncryptionError, y).on(a.TrackSubscriptionFailed, m);
574
- function R(l, p) {
575
- var v;
576
- p != null && p.isLocal && (te.update(), Z === O.Talking && ((v = n.onInterruptDetected) == null || v.call(n, { type: "audio" }), Z = O.Idle));
572
+ u.on(a.ConnectionStateChanged, D).on(a.ConnectionQualityChanged, R).on(a.ParticipantConnected, K).on(a.ParticipantDisconnected, L).on(a.TrackSubscribed, q).on(a.TrackUnsubscribed, Q).on(a.DataReceived, j).on(a.MediaDevicesError, $).on(a.TranscriptionReceived, l).on(a.EncryptionError, G).on(a.TrackSubscriptionFailed, ae);
573
+ function l(f, h) {
574
+ var y;
575
+ h != null && h.isLocal && (ne.update(), V === O.Talking && ((y = n.onInterruptDetected) == null || y.call(n, { type: "audio" }), V = O.Idle));
577
576
  }
578
577
  try {
579
- await f.connect(S, u), r("LiveKit room joined successfully"), $ = setTimeout(() => {
580
- var l;
581
- r("Track subscription timeout - no track subscribed within 30 seconds after connect"), $ = null, w.track("connectivity-error", {
578
+ await u.connect(ee, Z), r("LiveKit room joined successfully"), b = setTimeout(() => {
579
+ var f;
580
+ r(
581
+ `Track subscription timeout - no track subscribed within ${Je / 1e3} seconds after connect`
582
+ ), b = null, p.track("connectivity-error", {
582
583
  error: "Track subscription timeout",
583
- sessionId: N
584
- }), (l = n.onError) == null || l.call(n, new Error("Track subscription timeout"), { sessionId: N }), Re("internal:track-subscription-timeout");
585
- }, H);
586
- } catch (l) {
587
- Ie(l, r, n);
584
+ sessionId: z
585
+ }), (f = n.onError) == null || f.call(n, new Error("Track subscription timeout"), { sessionId: z }), Re("internal:track-subscription-timeout");
586
+ }, Je);
587
+ } catch (f) {
588
+ Ie(f, r, n);
588
589
  }
589
- w.enrich({
590
- "stream-type": J
590
+ p.enrich({
591
+ "stream-type": F
591
592
  });
592
- function z(l) {
593
- var p, v, M, U;
594
- switch (r("Connection state changed:", l), l) {
593
+ function D(f) {
594
+ var h, y, I, U;
595
+ switch (r("Connection state changed:", f), f) {
595
596
  case s.Connecting:
596
- r("CALLBACK: onConnectionStateChange(Connecting)"), (p = n.onConnectionStateChange) == null || p.call(n, T.Connecting, "livekit:connecting");
597
+ r("CALLBACK: onConnectionStateChange(Connecting)"), (h = n.onConnectionStateChange) == null || h.call(n, T.Connecting, "livekit:connecting");
597
598
  break;
598
599
  case s.Connected:
599
- r("LiveKit room connected successfully"), P = !0;
600
+ r("LiveKit room connected successfully"), v = !0;
600
601
  break;
601
602
  case s.Disconnected:
602
- r("LiveKit room disconnected"), P = !1, F = !1, (v = n.onConnectionStateChange) == null || v.call(n, T.Disconnected, "livekit:disconnected");
603
+ r("LiveKit room disconnected"), v = !1, E = !1, (y = n.onConnectionStateChange) == null || y.call(n, T.Disconnected, "livekit:disconnected");
603
604
  break;
604
605
  case s.Reconnecting:
605
- r("LiveKit room reconnecting..."), (M = n.onConnectionStateChange) == null || M.call(n, T.Connecting, "livekit:reconnecting");
606
+ r("LiveKit room reconnecting..."), (I = n.onConnectionStateChange) == null || I.call(n, T.Connecting, "livekit:reconnecting");
606
607
  break;
607
608
  case s.SignalReconnecting:
608
609
  r("LiveKit room signal reconnecting..."), (U = n.onConnectionStateChange) == null || U.call(n, T.Connecting, "livekit:signal-reconnecting");
609
610
  break;
610
611
  }
611
612
  }
612
- function b(l, p) {
613
- var v;
614
- r("Connection quality:", l), p != null && p.isLocal && ((v = n.onConnectivityStateChange) == null || v.call(n, Ut[l]));
613
+ function R(f, h) {
614
+ var y;
615
+ r("Connection quality:", f), h != null && h.isLocal && ((y = n.onConnectivityStateChange) == null || y.call(n, Jt[f]));
615
616
  }
616
- function A(l) {
617
- r("Participant connected:", l.identity);
617
+ function K(f) {
618
+ r("Participant connected:", f.identity);
618
619
  }
619
- function K(l) {
620
- r("Participant disconnected:", l.identity), Re("livekit:participant-disconnected");
620
+ function L(f) {
621
+ r("Participant disconnected:", f.identity), Re("livekit:participant-disconnected");
621
622
  }
622
- function q() {
623
- var l;
624
- I !== C.Start && (r("CALLBACK: onVideoStateChange(Start)"), I = C.Start, (l = n.onVideoStateChange) == null || l.call(n, C.Start));
623
+ function _() {
624
+ var f;
625
+ N !== C.Start && (r("CALLBACK: onVideoStateChange(Start)"), N = C.Start, (f = n.onVideoStateChange) == null || f.call(n, C.Start));
625
626
  }
626
- function W(l) {
627
- var p;
628
- I !== C.Stop && (r("CALLBACK: onVideoStateChange(Stop)"), I = C.Stop, (p = n.onVideoStateChange) == null || p.call(n, C.Stop, l));
627
+ function B(f) {
628
+ var h;
629
+ N !== C.Stop && (r("CALLBACK: onVideoStateChange(Stop)"), N = C.Stop, (h = n.onVideoStateChange) == null || h.call(n, C.Stop, f));
629
630
  }
630
- function j(l, p, v) {
631
- var U, V, ae;
632
- r(`Track subscribed: ${l.kind} from ${v.identity}`), $ && (clearTimeout($), $ = null, r("Track subscription timeout cleared"));
633
- const M = l.mediaStreamTrack;
634
- if (!M) {
635
- r(`No mediaStreamTrack available for ${l.kind}`);
631
+ function q(f, h, y) {
632
+ var U, J, oe;
633
+ r(`Track subscribed: ${f.kind} from ${y.identity}`);
634
+ const I = f.mediaStreamTrack;
635
+ if (!I) {
636
+ r(`No mediaStreamTrack available for ${f.kind}`);
636
637
  return;
637
638
  }
638
- D ? (D.addTrack(M), r(`Added ${l.kind} track to shared MediaStream`)) : (D = new MediaStream([M]), r(`Created shared MediaStream with ${l.kind} track`)), l.kind === "video" && ((U = n.onStreamReady) == null || U.call(n), r("CALLBACK: onSrcObjectReady"), (V = n.onSrcObjectReady) == null || V.call(n, D), F || (F = !0, r("CALLBACK: onConnectionStateChange(Connected)"), (ae = n.onConnectionStateChange) == null || ae.call(n, T.Connected, "livekit:track-subscribed")), _ = et(
639
- () => l.getRTCStatsReport(),
640
- () => P,
641
- St,
642
- (le, ye) => {
643
- r(`Video state change: ${le}`), le === C.Start ? q() : le === C.Stop && W(ye);
639
+ P ? (P.addTrack(I), r(`Added ${f.kind} track to shared MediaStream`)) : (P = new MediaStream([I]), r(`Created shared MediaStream with ${f.kind} track`)), f.kind === "video" && ((U = n.onStreamReady) == null || U.call(n), r("CALLBACK: onSrcObjectReady"), (J = n.onSrcObjectReady) == null || J.call(n, P), E || (E = !0, r("CALLBACK: onConnectionStateChange(Connected)"), (oe = n.onConnectionStateChange) == null || oe.call(n, T.Connected, "livekit:track-subscribed")), S = tt(
640
+ () => f.getRTCStatsReport(),
641
+ () => v,
642
+ Ct,
643
+ (ue, ye) => {
644
+ r(`Video state change: ${ue}`), ue === C.Start ? (b && (clearTimeout(b), b = null, r("Track subscription timeout cleared")), _()) : ue === C.Stop && B(ye);
644
645
  }
645
- ), _.start());
646
+ ), S.start());
646
647
  }
647
- function B(l, p, v) {
648
- r(`Track unsubscribed: ${l.kind} from ${v.identity}`), l.kind === "video" && (W(_ == null ? void 0 : _.getReport()), _ == null || _.stop(), _ = null);
648
+ function Q(f, h, y) {
649
+ r(`Track unsubscribed: ${f.kind} from ${y.identity}`), f.kind === "video" && (B(S == null ? void 0 : S.getReport()), S == null || S.stop(), S = null);
649
650
  }
650
- function Y(l, p, v, M) {
651
- var V, ae, le, ye, je, $e, Be, xe;
652
- const U = new TextDecoder().decode(l);
651
+ function j(f, h, y, I) {
652
+ var J, oe, ue, ye, je, $e, Be, xe;
653
+ const U = new TextDecoder().decode(f);
653
654
  try {
654
- const Q = JSON.parse(U), oe = M || Q.subject;
655
- if (r("Data received:", { subject: oe, data: Q }), oe === L.ChatAnswer) {
656
- const ee = X.Answer;
657
- (V = n.onMessage) == null || V.call(n, ee, {
658
- event: ee,
659
- ...Q
655
+ const X = JSON.parse(U), se = I || X.subject;
656
+ if (r("Data received:", { subject: se, data: X }), se === A.ChatAnswer) {
657
+ const te = Y.Answer;
658
+ (J = n.onMessage) == null || J.call(n, te, {
659
+ event: te,
660
+ ...X
660
661
  });
661
- } else if (oe === L.ChatPartial) {
662
- const ee = X.Partial;
663
- (ae = n.onMessage) == null || ae.call(n, ee, {
664
- event: ee,
665
- ...Q
662
+ } else if (se === A.ChatPartial) {
663
+ const te = Y.Partial;
664
+ (oe = n.onMessage) == null || oe.call(n, te, {
665
+ event: te,
666
+ ...X
666
667
  });
667
668
  } else if ([
668
- L.StreamVideoCreated,
669
- L.StreamVideoDone,
670
- L.StreamVideoError,
671
- L.StreamVideoRejected
672
- ].includes(oe)) {
673
- Z = oe === L.StreamVideoCreated ? O.Talking : O.Idle, (le = n.onAgentActivityStateChange) == null || le.call(n, Z);
674
- const ee = ((je = (ye = _ == null ? void 0 : _.getReport()) == null ? void 0 : ye.webRTCStats) == null ? void 0 : je.avgRtt) ?? 0, ve = ee > 0 ? Math.round(ee / 2 * 1e3) : 0, Fe = { ...Q, downstreamNetworkLatency: ve };
675
- i.debug && (($e = Q == null ? void 0 : Q.metadata) != null && $e.sentiment) && (Fe.sentiment = {
676
- id: Q.metadata.sentiment.id,
677
- name: Q.metadata.sentiment.sentiment
678
- }), (Be = n.onMessage) == null || Be.call(n, oe, Fe);
679
- } else if (oe === L.ChatAudioTranscribed) {
680
- const ee = X.Transcribe;
681
- (xe = n.onMessage) == null || xe.call(n, ee, {
682
- event: ee,
683
- ...Q
669
+ A.StreamVideoCreated,
670
+ A.StreamVideoDone,
671
+ A.StreamVideoError,
672
+ A.StreamVideoRejected
673
+ ].includes(se)) {
674
+ V = se === A.StreamVideoCreated ? O.Talking : O.Idle, (ue = n.onAgentActivityStateChange) == null || ue.call(n, V);
675
+ const te = ((je = (ye = S == null ? void 0 : S.getReport()) == null ? void 0 : ye.webRTCStats) == null ? void 0 : je.avgRtt) ?? 0, ve = te > 0 ? Math.round(te / 2 * 1e3) : 0, Fe = { ...X, downstreamNetworkLatency: ve };
676
+ i.debug && (($e = X == null ? void 0 : X.metadata) != null && $e.sentiment) && (Fe.sentiment = {
677
+ id: X.metadata.sentiment.id,
678
+ name: X.metadata.sentiment.sentiment
679
+ }), (Be = n.onMessage) == null || Be.call(n, se, Fe);
680
+ } else if (se === A.ChatAudioTranscribed) {
681
+ const te = Y.Transcribe;
682
+ (xe = n.onMessage) == null || xe.call(n, te, {
683
+ event: te,
684
+ ...X
684
685
  }), queueMicrotask(() => {
685
686
  var ve;
686
687
  (ve = n.onAgentActivityStateChange) == null || ve.call(n, O.Loading);
687
688
  });
688
689
  }
689
- } catch (Q) {
690
- r("Failed to parse data channel message:", Q);
690
+ } catch (X) {
691
+ r("Failed to parse data channel message:", X);
691
692
  }
692
693
  }
693
- function ie(l) {
694
- var p;
695
- r("Media devices error:", l), (p = n.onError) == null || p.call(n, new Error(he), { sessionId: N });
694
+ function $(f) {
695
+ var h;
696
+ r("Media devices error:", f), (h = n.onError) == null || h.call(n, new Error(ge), { sessionId: z });
696
697
  }
697
- function y(l) {
698
- var p;
699
- r("Encryption error:", l), (p = n.onError) == null || p.call(n, new Error(he), { sessionId: N });
698
+ function G(f) {
699
+ var h;
700
+ r("Encryption error:", f), (h = n.onError) == null || h.call(n, new Error(ge), { sessionId: z });
700
701
  }
701
- function m(l, p, v) {
702
- r("Track subscription failed:", { trackSid: l, participant: p, reason: v });
702
+ function ae(f, h, y) {
703
+ r("Track subscription failed:", { trackSid: f, participant: h, reason: y });
703
704
  }
704
- function E(l) {
705
- if (!f) return null;
706
- const p = f.localParticipant.audioTrackPublications;
707
- if (p) {
708
- for (const [v, M] of p)
709
- if (M.source === d.Source.Microphone && M.track) {
710
- const V = M.track.mediaStreamTrack;
711
- if (V === l || V && V.id === l.id)
712
- return M;
705
+ function w(f) {
706
+ if (!u) return null;
707
+ const h = u.localParticipant.audioTrackPublications;
708
+ if (h) {
709
+ for (const [y, I] of h)
710
+ if (I.source === d.Source.Microphone && I.track) {
711
+ const J = I.track.mediaStreamTrack;
712
+ if (J === f || J && J.id === f.id)
713
+ return I;
713
714
  }
714
715
  }
715
716
  return null;
716
717
  }
717
- function G(l) {
718
+ function m(f) {
718
719
  if (!k || !k.track)
719
720
  return !1;
720
- const p = k.track.mediaStreamTrack;
721
- return p !== l && (p == null ? void 0 : p.id) !== l.id;
721
+ const h = k.track.mediaStreamTrack;
722
+ return h !== f && (h == null ? void 0 : h.id) !== f.id;
722
723
  }
723
- async function ce(l) {
724
- var U, V;
725
- if (!P || !f)
724
+ async function M(f) {
725
+ var U, J;
726
+ if (!v || !u)
726
727
  throw r("Room is not connected, cannot publish microphone stream"), new Error("Room is not connected");
727
- const p = l.getAudioTracks();
728
- if (p.length === 0) {
728
+ const h = f.getAudioTracks();
729
+ if (h.length === 0) {
729
730
  r("No audio track found in the provided MediaStream");
730
731
  return;
731
732
  }
732
- const v = p[0], M = E(v);
733
- if (M) {
733
+ const y = h[0], I = w(y);
734
+ if (I) {
734
735
  r("Microphone track is already published, skipping", {
735
- trackId: v.id,
736
- publishedTrackId: (V = (U = M.track) == null ? void 0 : U.mediaStreamTrack) == null ? void 0 : V.id
737
- }), k = M;
736
+ trackId: y.id,
737
+ publishedTrackId: (J = (U = I.track) == null ? void 0 : U.mediaStreamTrack) == null ? void 0 : J.id
738
+ }), k = I;
738
739
  return;
739
740
  }
740
- G(v) && (r("Unpublishing existing microphone track before publishing new one"), await de()), r("Publishing microphone track from provided MediaStream", { trackId: v.id });
741
+ m(y) && (r("Unpublishing existing microphone track before publishing new one"), await W()), r("Publishing microphone track from provided MediaStream", { trackId: y.id });
741
742
  try {
742
- k = await f.localParticipant.publishTrack(v, {
743
+ k = await u.localParticipant.publishTrack(y, {
743
744
  source: d.Source.Microphone
744
745
  }), r("Microphone track published successfully", { trackSid: k.trackSid });
745
- } catch (ae) {
746
- throw r("Failed to publish microphone track:", ae), ae;
746
+ } catch (oe) {
747
+ throw r("Failed to publish microphone track:", oe), oe;
747
748
  }
748
749
  }
749
- async function de() {
750
+ async function W() {
750
751
  if (!(!k || !k.track))
751
752
  try {
752
- f && (await f.localParticipant.unpublishTrack(k.track), r("Microphone track unpublished"));
753
- } catch (l) {
754
- r("Error unpublishing microphone track:", l);
753
+ u && (await u.localParticipant.unpublishTrack(k.track), r("Microphone track unpublished"));
754
+ } catch (f) {
755
+ r("Error unpublishing microphone track:", f);
755
756
  } finally {
756
757
  k = null;
757
758
  }
758
759
  }
759
- function we() {
760
- D && (D.getTracks().forEach((l) => l.stop()), D = null);
760
+ function ce() {
761
+ P && (P.getTracks().forEach((f) => f.stop()), P = null);
761
762
  }
762
- async function ue(l, p) {
763
- var v, M;
764
- if (!P || !f) {
765
- r("Room is not connected for sending messages"), (v = n.onError) == null || v.call(n, new Error(he), {
766
- sessionId: N
763
+ async function de(f, h) {
764
+ var y, I;
765
+ if (!v || !u) {
766
+ r("Room is not connected for sending messages"), (y = n.onError) == null || y.call(n, new Error(ge), {
767
+ sessionId: z
767
768
  });
768
769
  return;
769
770
  }
770
771
  try {
771
- await f.localParticipant.sendText(l, { topic: p }), r("Message sent successfully:", l);
772
+ await u.localParticipant.sendText(f, { topic: h }), r("Message sent successfully:", f);
772
773
  } catch (U) {
773
- r("Failed to send message:", U), (M = n.onError) == null || M.call(n, new Error(he), { sessionId: N });
774
+ r("Failed to send message:", U), (I = n.onError) == null || I.call(n, new Error(ge), { sessionId: z });
774
775
  }
775
776
  }
776
- async function tt(l) {
777
- var p;
777
+ async function pe(f) {
778
+ var h;
778
779
  try {
779
- const M = JSON.parse(l).topic;
780
- return ue("", M);
781
- } catch (v) {
782
- r("Failed to send data channel message:", v), (p = n.onError) == null || p.call(n, new Error(he), { sessionId: N });
780
+ const I = JSON.parse(f).topic;
781
+ return de("", I);
782
+ } catch (y) {
783
+ r("Failed to send data channel message:", y), (h = n.onError) == null || h.call(n, new Error(ge), { sessionId: z });
783
784
  }
784
785
  }
785
- function nt(l) {
786
- return ue(
787
- l,
786
+ function we(f) {
787
+ return de(
788
+ f,
788
789
  "lk.chat"
789
790
  /* Chat */
790
791
  );
791
792
  }
792
- async function Re(l) {
793
- var p, v;
794
- $ && (clearTimeout($), $ = null), f && (await de(), (p = n.onConnectionStateChange) == null || p.call(n, T.Disconnecting, l), await f.disconnect()), we(), P = !1, F = !1, (v = n.onAgentActivityStateChange) == null || v.call(n, O.Idle), Z = O.Idle;
793
+ async function Re(f) {
794
+ var h, y;
795
+ b && (clearTimeout(b), b = null), u && (await W(), (h = n.onConnectionStateChange) == null || h.call(n, T.Disconnecting, f), await u.disconnect()), ce(), v = !1, E = !1, (y = n.onAgentActivityStateChange) == null || y.call(n, O.Idle), V = O.Idle;
795
796
  }
796
797
  return {
797
- speak(l) {
798
- const p = typeof l == "string" ? l : JSON.stringify(l);
799
- return ue(
800
- p,
798
+ speak(f) {
799
+ const h = typeof f == "string" ? f : JSON.stringify(f);
800
+ return de(
801
+ h,
801
802
  "did.speak"
802
803
  /* Speak */
803
804
  );
804
805
  },
805
806
  disconnect: () => Re("user:disconnect"),
806
807
  async reconnect() {
807
- var l, p;
808
- if ((f == null ? void 0 : f.state) === s.Connected) {
808
+ var f, h;
809
+ if ((u == null ? void 0 : u.state) === s.Connected) {
809
810
  r("Room is already connected");
810
811
  return;
811
812
  }
812
- if (!f || !S || !u)
813
+ if (!u || !ee || !Z)
813
814
  throw r("Cannot reconnect: missing room, URL or token"), new Error("Cannot reconnect: session not available");
814
- r("Reconnecting to LiveKit room, state:", f.state), F = !1, (l = n.onConnectionStateChange) == null || l.call(n, T.Connecting, "user:reconnect");
815
+ r("Reconnecting to LiveKit room, state:", u.state), E = !1, (f = n.onConnectionStateChange) == null || f.call(n, T.Connecting, "user:reconnect");
815
816
  try {
816
- if (await f.connect(S, u), r("Room reconnected"), P = !0, f.remoteParticipants.size === 0) {
817
- if (r("Waiting for agent to join..."), !await new Promise((M) => {
817
+ if (await u.connect(ee, Z), r("Room reconnected"), v = !0, u.remoteParticipants.size === 0) {
818
+ if (r("Waiting for agent to join..."), !await new Promise((I) => {
818
819
  const U = setTimeout(() => {
819
- f == null || f.off(a.ParticipantConnected, V), M(!1);
820
- }, 5e3), V = () => {
821
- clearTimeout(U), f == null || f.off(a.ParticipantConnected, V), M(!0);
820
+ u == null || u.off(a.ParticipantConnected, J), I(!1);
821
+ }, 5e3), J = () => {
822
+ clearTimeout(U), u == null || u.off(a.ParticipantConnected, J), I(!0);
822
823
  };
823
- f == null || f.on(a.ParticipantConnected, V);
824
+ u == null || u.on(a.ParticipantConnected, J);
824
825
  }))
825
- throw r("Agent did not join within timeout"), await f.disconnect(), new Error("Agent did not rejoin the room");
826
+ throw r("Agent did not join within timeout"), await u.disconnect(), new Error("Agent did not rejoin the room");
826
827
  r("Agent joined, reconnection successful");
827
828
  }
828
- } catch (v) {
829
- throw r("Failed to reconnect:", v), (p = n.onConnectionStateChange) == null || p.call(n, T.Fail, "user:reconnect-failed"), v;
829
+ } catch (y) {
830
+ throw r("Failed to reconnect:", y), (h = n.onConnectionStateChange) == null || h.call(n, T.Fail, "user:reconnect-failed"), y;
830
831
  }
831
832
  },
832
- sendDataChannelMessage: tt,
833
- sendTextMessage: nt,
834
- publishMicrophoneStream: ce,
835
- unpublishMicrophoneStream: de,
836
- sessionId: N,
837
- streamId: N,
838
- streamType: J,
833
+ sendDataChannelMessage: pe,
834
+ sendTextMessage: we,
835
+ publishMicrophoneStream: M,
836
+ unpublishMicrophoneStream: W,
837
+ sessionId: z,
838
+ streamId: z,
839
+ streamType: F,
839
840
  interruptAvailable: !0,
840
841
  triggersAvailable: !1
841
842
  };
842
843
  }
843
- const Ot = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
844
+ const Wt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
844
845
  __proto__: null,
845
846
  DataChannelTopic: Pe,
846
- createLiveKitStreamingManager: Wt,
847
+ createLiveKitStreamingManager: Ut,
847
848
  handleInitError: Ie
848
849
  }, Symbol.toStringTag, { value: "Module" }));
849
- function Ht(e, t, i) {
850
+ function Ot(e, t, i) {
850
851
  if (!e)
851
852
  throw new Error("Please connect to the agent first");
852
853
  if (!e.interruptAvailable)
853
854
  throw new Error("Interrupt is not enabled for this stream");
854
- if (t !== re.Fluent)
855
+ if (t !== ie.Fluent)
855
856
  throw new Error("Interrupt only available for Fluent streams");
856
857
  if (!i)
857
858
  throw new Error("No active video to interrupt");
858
859
  }
859
- async function qt(e, t) {
860
+ async function Ht(e, t) {
860
861
  const i = {
861
- type: L.StreamInterrupt,
862
+ type: A.StreamInterrupt,
862
863
  videoId: t,
863
864
  timestamp: Date.now()
864
865
  };
865
866
  e.sendDataChannelMessage(JSON.stringify(i));
866
867
  }
867
- async function Qt(e) {
868
+ async function qt(e) {
868
869
  const t = {
869
870
  topic: Pe.Interrupt
870
871
  };
871
872
  e.sendDataChannelMessage(JSON.stringify(t));
872
873
  }
873
- function Xt(e) {
874
+ function Qt(e) {
874
875
  return new Promise((t, i) => {
875
- const { callbacks: r, host: o, auth: a, externalId: s } = e, { onMessage: d = null, onOpen: n = null, onClose: c = null, onError: g = null } = r || {}, w = new WebSocket(`${o}?authorization=${encodeURIComponent(Xe(a, s))}`);
876
- w.onmessage = d, w.onclose = c, w.onerror = (h) => {
877
- console.error(h), g == null || g("Websocket failed to connect", h), i(h);
878
- }, w.onopen = (h) => {
879
- n == null || n(h), t(w);
876
+ const { callbacks: r, host: o, auth: a, externalId: s } = e, { onMessage: d = null, onOpen: n = null, onClose: c = null, onError: g = null } = r || {}, p = new WebSocket(`${o}?authorization=${encodeURIComponent(Ye(a, s))}`);
877
+ p.onmessage = d, p.onclose = c, p.onerror = (u) => {
878
+ console.error(u), g == null || g("Websocket failed to connect", u), i(u);
879
+ }, p.onopen = (u) => {
880
+ n == null || n(u), t(p);
880
881
  };
881
882
  });
882
883
  }
883
- async function Yt(e) {
884
+ async function Xt(e) {
884
885
  const { retries: t = 1 } = e;
885
886
  let i = null;
886
887
  for (let r = 0; (i == null ? void 0 : i.readyState) !== WebSocket.OPEN; r++)
887
888
  try {
888
- i = await Xt(e);
889
+ i = await Qt(e);
889
890
  } catch (o) {
890
891
  if (r === t)
891
892
  throw o;
892
- await He(r * 500);
893
+ await qe(r * 500);
893
894
  }
894
895
  return i;
895
896
  }
896
- async function Gt(e, t, i, r) {
897
- const o = i != null && i.onMessage ? [i.onMessage] : [], a = await Yt({
897
+ async function Yt(e, t, i, r) {
898
+ const o = i != null && i.onMessage ? [i.onMessage] : [], a = await Xt({
898
899
  auth: e,
899
900
  host: t,
900
901
  externalId: r,
901
902
  callbacks: {
902
903
  onError: (s) => {
903
904
  var d;
904
- return (d = i.onError) == null ? void 0 : d.call(i, new st(s));
905
+ return (d = i.onError) == null ? void 0 : d.call(i, new ot(s));
905
906
  },
906
907
  onMessage(s) {
907
908
  const d = JSON.parse(s.data);
@@ -915,7 +916,7 @@ async function Gt(e, t, i, r) {
915
916
  subscribeToEvents: (s) => o.push(s)
916
917
  };
917
918
  }
918
- function Zt(e) {
919
+ function Gt(e) {
919
920
  if (e.answer !== void 0)
920
921
  return e.answer;
921
922
  let t = 0, i = "";
@@ -923,7 +924,7 @@ function Zt(e) {
923
924
  i += e[t++];
924
925
  return i;
925
926
  }
926
- function en(e, t, i) {
927
+ function Zt(e, t, i) {
927
928
  if (!e.content)
928
929
  return;
929
930
  const r = t.messages[t.messages.length - 1];
@@ -937,17 +938,17 @@ function en(e, t, i) {
937
938
  };
938
939
  t.messages.push(o), i == null || i([...t.messages], "user");
939
940
  }
940
- function tn(e, t, i, r, o) {
941
- if (e === X.Transcribe && t.content) {
942
- en(t, r, o);
941
+ function en(e, t, i, r, o) {
942
+ if (e === Y.Transcribe && t.content) {
943
+ Zt(t, r, o);
943
944
  return;
944
945
  }
945
- if (!(e === X.Partial || e === X.Answer))
946
+ if (!(e === Y.Partial || e === Y.Answer))
946
947
  return;
947
948
  const a = r.messages[r.messages.length - 1];
948
949
  let s;
949
950
  if (a != null && a.transcribed && a.role === "user")
950
- e === X.Answer && t.content, s = {
951
+ e === Y.Answer && t.content, s = {
951
952
  id: t.id || `assistant-${Date.now()}`,
952
953
  role: t.role || "assistant",
953
954
  content: t.content || "",
@@ -958,48 +959,48 @@ function tn(e, t, i, r, o) {
958
959
  else
959
960
  return;
960
961
  const { content: d, sequence: n } = t;
961
- e === X.Partial ? i[n] = d : i.answer = d;
962
- const c = Zt(i);
963
- (s.content !== c || e === X.Answer) && (s.content = c, o == null || o([...r.messages], e));
962
+ e === Y.Partial ? i[n] = d : i.answer = d;
963
+ const c = Gt(i);
964
+ (s.content !== c || e === Y.Answer) && (s.content = c, o == null || o([...r.messages], e));
964
965
  }
965
- function nn(e, t, i, r, o) {
966
+ function tn(e, t, i, r, o) {
966
967
  let a = {};
967
968
  const s = () => a = {};
968
969
  let d = "answer";
969
970
  const n = (c, g) => {
970
- var w, h;
971
- g === "user" && s(), d = g, (h = (w = i.callbacks).onNewMessage) == null || h.call(w, c, g);
971
+ var p, u;
972
+ g === "user" && s(), d = g, (u = (p = i.callbacks).onNewMessage) == null || u.call(p, c, g);
972
973
  };
973
974
  return {
974
975
  clearQueue: s,
975
976
  onMessage: (c, g) => {
976
- var w, h;
977
+ var p, u;
977
978
  if ("content" in g) {
978
- const f = c === L.ChatAnswer ? X.Answer : c === L.ChatAudioTranscribed ? X.Transcribe : c;
979
- tn(f, g, a, t, n), f === X.Answer && e.track("agent-message-received", {
979
+ const v = c === A.ChatAnswer ? Y.Answer : c === A.ChatAudioTranscribed ? Y.Transcribe : c;
980
+ en(v, g, a, t, n), v === Y.Answer && e.track("agent-message-received", {
980
981
  content: g.content,
981
982
  messages: t.messages.length,
982
983
  mode: t.chatMode
983
984
  });
984
985
  } else {
985
- const f = L, P = [f.StreamVideoDone, f.StreamVideoError, f.StreamVideoRejected], J = [f.StreamFailed, f.StreamVideoError, f.StreamVideoRejected], D = At(g, r, { mode: t.chatMode });
986
- if (c = c, c === f.StreamVideoCreated && (e.linkTrack("agent-video", D, f.StreamVideoCreated, ["start"]), g.sentiment)) {
987
- const k = t.messages[t.messages.length - 1];
988
- if ((k == null ? void 0 : k.role) === "assistant") {
989
- const _ = { ...k, sentiment: g.sentiment };
990
- t.messages[t.messages.length - 1] = _, n == null || n([...t.messages], d);
986
+ const v = A, F = [v.StreamVideoDone, v.StreamVideoError, v.StreamVideoRejected], P = [v.StreamFailed, v.StreamVideoError, v.StreamVideoRejected], k = _t(g, r, { mode: t.chatMode });
987
+ if (c = c, c === v.StreamVideoCreated && (e.linkTrack("agent-video", k, v.StreamVideoCreated, ["start"]), g.sentiment)) {
988
+ const S = t.messages[t.messages.length - 1];
989
+ if ((S == null ? void 0 : S.role) === "assistant") {
990
+ const N = { ...S, sentiment: g.sentiment };
991
+ t.messages[t.messages.length - 1] = N, n == null || n([...t.messages], d);
991
992
  }
992
993
  }
993
- if (P.includes(c)) {
994
- const k = c.split("/")[1];
995
- J.includes(c) ? e.track("agent-video", { ...D, event: k }) : e.linkTrack("agent-video", { ...D, event: k }, c, ["done"]);
994
+ if (F.includes(c)) {
995
+ const S = c.split("/")[1];
996
+ P.includes(c) ? e.track("agent-video", { ...k, event: S }) : e.linkTrack("agent-video", { ...k, event: S }, c, ["done"]);
996
997
  }
997
- J.includes(c) && ((h = (w = i.callbacks).onError) == null || h.call(w, new Error(`Stream failed with event ${c}`), { data: g })), g.event === f.StreamDone && o();
998
+ P.includes(c) && ((u = (p = i.callbacks).onError) == null || u.call(p, new Error(`Stream failed with event ${c}`), { data: g })), g.event === v.StreamDone && o();
998
999
  }
999
1000
  }
1000
1001
  };
1001
1002
  }
1002
- function rn(e, t, i, r) {
1003
+ function nn(e, t, i, r) {
1003
1004
  const o = Ae(e, `${t}/agents/${i}`, r);
1004
1005
  return {
1005
1006
  createStream(a, s) {
@@ -1036,8 +1037,8 @@ function rn(e, t, i, r) {
1036
1037
  }
1037
1038
  };
1038
1039
  }
1039
- const an = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
1040
- function Je(e) {
1040
+ const rn = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
1041
+ function Ue(e) {
1041
1042
  switch (e) {
1042
1043
  case "connected":
1043
1044
  return T.Connected;
@@ -1057,7 +1058,7 @@ function Je(e) {
1057
1058
  return T.New;
1058
1059
  }
1059
1060
  }
1060
- const on = (e) => (t) => {
1061
+ const an = (e) => (t) => {
1061
1062
  const [i, r = ""] = t.split(/:(.+)/);
1062
1063
  try {
1063
1064
  const o = JSON.parse(r);
@@ -1066,7 +1067,7 @@ const on = (e) => (t) => {
1066
1067
  return e("Failed to parse data channel message, returning data as string", { subject: i, rawData: r, error: o }), { subject: i, data: r };
1067
1068
  }
1068
1069
  };
1069
- function sn({
1070
+ function on({
1070
1071
  statsSignal: e,
1071
1072
  dataChannelSignal: t,
1072
1073
  onVideoStateChange: i,
@@ -1075,7 +1076,7 @@ function sn({
1075
1076
  }) {
1076
1077
  e === C.Start && t === C.Start ? (o("CALLBACK: onVideoStateChange(Start)"), i == null || i(C.Start)) : e === C.Stop && t === C.Stop && (o("CALLBACK: onVideoStateChange(Stop)"), i == null || i(C.Stop, r));
1077
1078
  }
1078
- function cn({
1079
+ function sn({
1079
1080
  statsSignal: e,
1080
1081
  dataChannelSignal: t,
1081
1082
  onVideoStateChange: i,
@@ -1085,7 +1086,7 @@ function cn({
1085
1086
  }) {
1086
1087
  e === C.Start ? (a("CALLBACK: onVideoStateChange(Start)"), i == null || i(C.Start)) : e === C.Stop && (a("CALLBACK: onVideoStateChange(Stop)"), i == null || i(C.Stop, o)), t === C.Start ? r == null || r(O.Talking) : t === C.Stop && (r == null || r(O.Idle));
1087
1088
  }
1088
- function Ue({
1089
+ function We({
1089
1090
  statsSignal: e,
1090
1091
  dataChannelSignal: t,
1091
1092
  onVideoStateChange: i,
@@ -1094,7 +1095,7 @@ function Ue({
1094
1095
  report: a,
1095
1096
  log: s
1096
1097
  }) {
1097
- o === re.Legacy ? sn({ statsSignal: e, dataChannelSignal: t, onVideoStateChange: i, report: a, log: s }) : o === re.Fluent && cn({
1098
+ o === ie.Legacy ? on({ statsSignal: e, dataChannelSignal: t, onVideoStateChange: i, report: a, log: s }) : o === ie.Fluent && sn({
1098
1099
  statsSignal: e,
1099
1100
  dataChannelSignal: t,
1100
1101
  onVideoStateChange: i,
@@ -1103,161 +1104,161 @@ function Ue({
1103
1104
  log: s
1104
1105
  });
1105
1106
  }
1106
- async function dn(e, t, { debug: i = !1, callbacks: r, auth: o, baseURL: a = pe, analytics: s }, d) {
1107
- var ie;
1108
- const n = Ze(i, "WebRTCStreamingManager"), c = on(n);
1109
- let g = !1, w = !1, h = C.Stop, f = C.Stop;
1110
- const { startConnection: P, sendStreamRequest: J, close: D, createStream: k, addIceCandidate: _ } = rn(
1107
+ async function cn(e, t, { debug: i = !1, callbacks: r, auth: o, baseURL: a = he, analytics: s }, d) {
1108
+ var ae;
1109
+ const n = et(i, "WebRTCStreamingManager"), c = an(n);
1110
+ let g = !1, p = !1, u = C.Stop, v = C.Stop;
1111
+ const { startConnection: F, sendStreamRequest: P, close: k, createStream: S, addIceCandidate: N } = nn(
1111
1112
  o,
1112
1113
  a,
1113
1114
  e,
1114
1115
  r.onError
1115
1116
  ), {
1116
- id: I,
1117
- offer: F,
1118
- ice_servers: $,
1117
+ id: E,
1118
+ offer: b,
1119
+ ice_servers: V,
1119
1120
  session_id: H,
1120
- fluent: Z,
1121
- interrupt_enabled: se,
1122
- triggers_enabled: N
1123
- } = await k(t, d);
1124
- (ie = r.onStreamCreated) == null || ie.call(r, { stream_id: I, session_id: H, agent_id: e });
1125
- const u = new an({ iceServers: $ }), S = u.createDataChannel("JanusDataChannel");
1121
+ fluent: z,
1122
+ interrupt_enabled: Z,
1123
+ triggers_enabled: ee
1124
+ } = await S(t, d);
1125
+ (ae = r.onStreamCreated) == null || ae.call(r, { stream_id: E, session_id: H, agent_id: e });
1126
+ const l = new rn({ iceServers: V }), D = l.createDataChannel("JanusDataChannel");
1126
1127
  if (!H)
1127
1128
  throw new Error("Could not create session_id");
1128
- const R = Z ? re.Fluent : re.Legacy;
1129
+ const R = z ? ie.Fluent : ie.Legacy;
1129
1130
  s.enrich({
1130
1131
  "stream-type": R
1131
1132
  });
1132
- const z = t.stream_warmup && !Z, b = () => g, A = () => {
1133
- var y;
1134
- g = !0, w && (n("CALLBACK: onConnectionStateChange(Connected)"), (y = r.onConnectionStateChange) == null || y.call(r, T.Connected));
1135
- }, K = et(
1136
- () => u.getStats(),
1137
- b,
1138
- A,
1139
- (y, m) => Ue({
1140
- statsSignal: f = y,
1141
- dataChannelSignal: R === re.Legacy ? h : void 0,
1133
+ const K = t.stream_warmup && !z, L = () => g, _ = () => {
1134
+ var w;
1135
+ g = !0, p && (n("CALLBACK: onConnectionStateChange(Connected)"), (w = r.onConnectionStateChange) == null || w.call(r, T.Connected));
1136
+ }, B = tt(
1137
+ () => l.getStats(),
1138
+ L,
1139
+ _,
1140
+ (w, m) => We({
1141
+ statsSignal: v = w,
1142
+ dataChannelSignal: R === ie.Legacy ? u : void 0,
1142
1143
  onVideoStateChange: r.onVideoStateChange,
1143
1144
  onAgentActivityStateChange: r.onAgentActivityStateChange,
1144
1145
  report: m,
1145
1146
  streamType: R,
1146
1147
  log: n
1147
1148
  }),
1148
- (y) => {
1149
+ (w) => {
1149
1150
  var m;
1150
- return (m = r.onConnectivityStateChange) == null ? void 0 : m.call(r, y);
1151
+ return (m = r.onConnectivityStateChange) == null ? void 0 : m.call(r, w);
1151
1152
  }
1152
1153
  );
1153
- K.start(), u.onicecandidate = (y) => {
1154
+ B.start(), l.onicecandidate = (w) => {
1154
1155
  var m;
1155
- n("peerConnection.onicecandidate", y);
1156
+ n("peerConnection.onicecandidate", w);
1156
1157
  try {
1157
- y.candidate && y.candidate.sdpMid && y.candidate.sdpMLineIndex !== null ? _(
1158
- I,
1158
+ w.candidate && w.candidate.sdpMid && w.candidate.sdpMLineIndex !== null ? N(
1159
+ E,
1159
1160
  {
1160
- candidate: y.candidate.candidate,
1161
- sdpMid: y.candidate.sdpMid,
1162
- sdpMLineIndex: y.candidate.sdpMLineIndex
1161
+ candidate: w.candidate.candidate,
1162
+ sdpMid: w.candidate.sdpMid,
1163
+ sdpMLineIndex: w.candidate.sdpMLineIndex
1163
1164
  },
1164
1165
  H,
1165
1166
  d
1166
- ) : _(I, { candidate: null }, H, d);
1167
- } catch (E) {
1168
- (m = r.onError) == null || m.call(r, E, { streamId: I });
1167
+ ) : N(E, { candidate: null }, H, d);
1168
+ } catch (M) {
1169
+ (m = r.onError) == null || m.call(r, M, { streamId: E });
1169
1170
  }
1170
- }, S.onopen = () => {
1171
- w = !0, (!z || g) && A();
1171
+ }, D.onopen = () => {
1172
+ p = !0, (!K || g) && _();
1172
1173
  };
1173
- const q = (y) => {
1174
+ const q = (w) => {
1174
1175
  var m;
1175
- (m = r.onVideoIdChange) == null || m.call(r, y);
1176
+ (m = r.onVideoIdChange) == null || m.call(r, w);
1176
1177
  };
1177
- function W(y, m) {
1178
- if (y === L.StreamStarted && typeof m == "object" && "metadata" in m) {
1179
- const E = m.metadata;
1180
- q(E.videoId);
1178
+ function Q(w, m) {
1179
+ if (w === A.StreamStarted && typeof m == "object" && "metadata" in m) {
1180
+ const M = m.metadata;
1181
+ q(M.videoId);
1181
1182
  }
1182
- y === L.StreamDone && q(null), h = y === L.StreamStarted ? C.Start : C.Stop, Ue({
1183
- statsSignal: R === re.Legacy ? f : void 0,
1184
- dataChannelSignal: h,
1183
+ w === A.StreamDone && q(null), u = w === A.StreamStarted ? C.Start : C.Stop, We({
1184
+ statsSignal: R === ie.Legacy ? v : void 0,
1185
+ dataChannelSignal: u,
1185
1186
  onVideoStateChange: r.onVideoStateChange,
1186
1187
  onAgentActivityStateChange: r.onAgentActivityStateChange,
1187
1188
  streamType: R,
1188
1189
  log: n
1189
1190
  });
1190
1191
  }
1191
- function j(y, m) {
1192
- var G;
1193
- const E = typeof m == "string" ? m : m == null ? void 0 : m.metadata;
1194
- E && s.enrich({ streamMetadata: E }), (G = r.onStreamReady) == null || G.call(r);
1192
+ function j(w, m) {
1193
+ var W;
1194
+ const M = typeof m == "string" ? m : m == null ? void 0 : m.metadata;
1195
+ M && s.enrich({ streamMetadata: M }), (W = r.onStreamReady) == null || W.call(r);
1195
1196
  }
1196
- const B = {
1197
- [L.StreamStarted]: W,
1198
- [L.StreamDone]: W,
1199
- [L.StreamReady]: j
1197
+ const $ = {
1198
+ [A.StreamStarted]: Q,
1199
+ [A.StreamDone]: Q,
1200
+ [A.StreamReady]: j
1200
1201
  };
1201
- S.onmessage = (y) => {
1202
- var G;
1203
- const { subject: m, data: E } = c(y.data);
1204
- (G = B[m]) == null || G.call(B, m, E);
1205
- }, u.oniceconnectionstatechange = () => {
1202
+ D.onmessage = (w) => {
1203
+ var W;
1204
+ const { subject: m, data: M } = c(w.data);
1205
+ (W = $[m]) == null || W.call($, m, M);
1206
+ }, l.oniceconnectionstatechange = () => {
1206
1207
  var m;
1207
- n("peerConnection.oniceconnectionstatechange => " + u.iceConnectionState);
1208
- const y = Je(u.iceConnectionState);
1209
- y !== T.Connected && ((m = r.onConnectionStateChange) == null || m.call(r, y));
1210
- }, u.ontrack = (y) => {
1208
+ n("peerConnection.oniceconnectionstatechange => " + l.iceConnectionState);
1209
+ const w = Ue(l.iceConnectionState);
1210
+ w !== T.Connected && ((m = r.onConnectionStateChange) == null || m.call(r, w));
1211
+ }, l.ontrack = (w) => {
1211
1212
  var m;
1212
- n("peerConnection.ontrack", y), n("CALLBACK: onSrcObjectReady"), (m = r.onSrcObjectReady) == null || m.call(r, y.streams[0]);
1213
- }, await u.setRemoteDescription(F), n("set remote description OK");
1214
- const Y = await u.createAnswer();
1215
- return n("create answer OK"), await u.setLocalDescription(Y), n("set local description OK"), await P(I, Y, H, d), n("start connection OK"), {
1213
+ n("peerConnection.ontrack", w), n("CALLBACK: onSrcObjectReady"), (m = r.onSrcObjectReady) == null || m.call(r, w.streams[0]);
1214
+ }, await l.setRemoteDescription(b), n("set remote description OK");
1215
+ const G = await l.createAnswer();
1216
+ return n("create answer OK"), await l.setLocalDescription(G), n("set local description OK"), await F(E, G, H, d), n("start connection OK"), {
1216
1217
  /**
1217
1218
  * Method to send request to server to get clip or talk depend on you payload
1218
1219
  * @param payload
1219
1220
  */
1220
- speak(y) {
1221
- return J(I, H, y);
1221
+ speak(w) {
1222
+ return P(E, H, w);
1222
1223
  },
1223
1224
  /**
1224
1225
  * Method to close RTC connection
1225
1226
  */
1226
1227
  async disconnect() {
1227
- var y;
1228
- if (I) {
1229
- const m = Je(u.iceConnectionState);
1230
- if (u) {
1228
+ var w;
1229
+ if (E) {
1230
+ const m = Ue(l.iceConnectionState);
1231
+ if (l) {
1231
1232
  if (m === T.New) {
1232
- K.stop();
1233
+ B.stop();
1233
1234
  return;
1234
1235
  }
1235
- u.close(), u.oniceconnectionstatechange = null, u.onnegotiationneeded = null, u.onicecandidate = null, u.ontrack = null;
1236
+ l.close(), l.oniceconnectionstatechange = null, l.onnegotiationneeded = null, l.onicecandidate = null, l.ontrack = null;
1236
1237
  }
1237
1238
  try {
1238
- m === T.Connected && await D(I, H).catch((E) => {
1239
+ m === T.Connected && await k(E, H).catch((M) => {
1239
1240
  });
1240
- } catch (E) {
1241
- n("Error on close stream connection", E);
1241
+ } catch (M) {
1242
+ n("Error on close stream connection", M);
1242
1243
  }
1243
- (y = r.onAgentActivityStateChange) == null || y.call(r, O.Idle), K.stop();
1244
+ (w = r.onAgentActivityStateChange) == null || w.call(r, O.Idle), B.stop();
1244
1245
  }
1245
1246
  },
1246
1247
  /**
1247
1248
  * Method to send data channel messages to the server
1248
1249
  */
1249
- sendDataChannelMessage(y) {
1250
- var m, E;
1251
- if (!g || S.readyState !== "open") {
1250
+ sendDataChannelMessage(w) {
1251
+ var m, M;
1252
+ if (!g || D.readyState !== "open") {
1252
1253
  n("Data channel is not ready for sending messages"), (m = r.onError) == null || m.call(r, new Error("Data channel is not ready for sending messages"), {
1253
- streamId: I
1254
+ streamId: E
1254
1255
  });
1255
1256
  return;
1256
1257
  }
1257
1258
  try {
1258
- S.send(y);
1259
- } catch (G) {
1260
- n("Error sending data channel message", G), (E = r.onError) == null || E.call(r, G, { streamId: I });
1259
+ D.send(w);
1260
+ } catch (W) {
1261
+ n("Error sending data channel message", W), (M = r.onError) == null || M.call(r, W, { streamId: E });
1261
1262
  }
1262
1263
  },
1263
1264
  /**
@@ -1267,25 +1268,25 @@ async function dn(e, t, { debug: i = !1, callbacks: r, auth: o, baseURL: a = pe,
1267
1268
  /**
1268
1269
  * Id of current RTC stream
1269
1270
  */
1270
- streamId: I,
1271
+ streamId: E,
1271
1272
  streamType: R,
1272
- interruptAvailable: se ?? !1,
1273
- triggersAvailable: N ?? !1
1273
+ interruptAvailable: Z ?? !1,
1274
+ triggersAvailable: ee ?? !1
1274
1275
  };
1275
1276
  }
1276
1277
  var Te = /* @__PURE__ */ ((e) => (e.V1 = "v1", e.V2 = "v2", e))(Te || {});
1277
- async function un(e, t, i, r) {
1278
+ async function dn(e, t, i, r) {
1278
1279
  const o = e.id;
1279
1280
  switch (t.version) {
1280
1281
  case "v1": {
1281
1282
  const { version: a, ...s } = t;
1282
- return dn(o, s, i, r);
1283
+ return cn(o, s, i, r);
1283
1284
  }
1284
1285
  case "v2": {
1285
1286
  const { version: a, ...s } = t;
1286
1287
  switch (s.transport_provider) {
1287
1288
  case ke.Livekit:
1288
- const { createLiveKitStreamingManager: d } = await Promise.resolve().then(() => Ot);
1289
+ const { createLiveKitStreamingManager: d } = await Promise.resolve().then(() => Wt);
1289
1290
  return d(o, s, i);
1290
1291
  default:
1291
1292
  throw new Error(`Unsupported transport provider: ${s.transport_provider}`);
@@ -1295,13 +1296,13 @@ async function un(e, t, i, r) {
1295
1296
  throw new Error(`Invalid stream version: ${t.version}`);
1296
1297
  }
1297
1298
  }
1298
- const ln = "cht";
1299
- function fn() {
1299
+ const un = "cht";
1300
+ function ln() {
1300
1301
  return {
1301
1302
  transport_provider: ke.Livekit
1302
1303
  };
1303
1304
  }
1304
- function mn(e) {
1305
+ function fn(e) {
1305
1306
  var o, a;
1306
1307
  const { streamOptions: t } = e ?? {}, i = ((o = e == null ? void 0 : e.mixpanelAdditionalProperties) == null ? void 0 : o.plan) !== void 0 ? {
1307
1308
  plan: (a = e.mixpanelAdditionalProperties) == null ? void 0 : a.plan
@@ -1314,16 +1315,16 @@ function mn(e) {
1314
1315
  fluent: t == null ? void 0 : t.fluent
1315
1316
  }, ...i && { end_user_data: i } };
1316
1317
  }
1317
- function gn(e, t) {
1318
- return _e(e.presenter.type) ? { version: Te.V2, ...fn() } : { version: Te.V1, ...mn(t) };
1318
+ function mn(e, t) {
1319
+ return _e(e.presenter.type) ? { version: Te.V2, ...ln() } : { version: Te.V1, ...fn(t) };
1319
1320
  }
1320
- function hn(e, t, i) {
1321
+ function gn(e, t, i) {
1321
1322
  i.track("agent-connection-state-change", { state: e, ...t && { reason: t } });
1322
1323
  }
1323
- function pn(e, t, i, r, o) {
1324
- o === re.Fluent ? wn(e, t, i, r, o) : vn(e, t, i, r, o);
1324
+ function hn(e, t, i, r, o) {
1325
+ o === ie.Fluent ? pn(e, t, i, r, o) : yn(e, t, i, r, o);
1325
1326
  }
1326
- function wn(e, t, i, r, o) {
1327
+ function pn(e, t, i, r, o) {
1327
1328
  e === C.Start ? r.track("stream-session", { event: "start", "stream-type": o }) : e === C.Stop && r.track("stream-session", {
1328
1329
  event: "stop",
1329
1330
  is_greenscreen: t.presenter.type === "clip" && t.presenter.is_greenscreen,
@@ -1332,12 +1333,12 @@ function wn(e, t, i, r, o) {
1332
1333
  ...i
1333
1334
  });
1334
1335
  }
1335
- function yn(e, t, i, r) {
1336
- te.get() <= 0 || (e === C.Start ? i.linkTrack(
1336
+ function wn(e, t, i, r) {
1337
+ ne.get() <= 0 || (e === C.Start ? i.linkTrack(
1337
1338
  "agent-video",
1338
- { event: "start", latency: te.get(!0), "stream-type": r },
1339
+ { event: "start", latency: ne.get(!0), "stream-type": r },
1339
1340
  "start",
1340
- [L.StreamVideoCreated]
1341
+ [A.StreamVideoCreated]
1341
1342
  ) : e === C.Stop && i.linkTrack(
1342
1343
  "agent-video",
1343
1344
  {
@@ -1347,15 +1348,15 @@ function yn(e, t, i, r) {
1347
1348
  "stream-type": r
1348
1349
  },
1349
1350
  "done",
1350
- [L.StreamVideoDone]
1351
+ [A.StreamVideoDone]
1351
1352
  ));
1352
1353
  }
1353
- function vn(e, t, i, r, o) {
1354
- te.get() <= 0 || (e === C.Start ? r.linkTrack(
1354
+ function yn(e, t, i, r, o) {
1355
+ ne.get() <= 0 || (e === C.Start ? r.linkTrack(
1355
1356
  "agent-video",
1356
- { event: "start", latency: te.get(!0), "stream-type": o },
1357
+ { event: "start", latency: ne.get(!0), "stream-type": o },
1357
1358
  "start",
1358
- [L.StreamVideoCreated]
1359
+ [A.StreamVideoCreated]
1359
1360
  ) : e === C.Stop && r.linkTrack(
1360
1361
  "agent-video",
1361
1362
  {
@@ -1366,17 +1367,17 @@ function vn(e, t, i, r, o) {
1366
1367
  ...i
1367
1368
  },
1368
1369
  "done",
1369
- [L.StreamVideoDone]
1370
+ [A.StreamVideoDone]
1370
1371
  ));
1371
1372
  }
1372
- function We(e, t, i, r) {
1373
- return te.reset(), Ne.update(), new Promise(async (o, a) => {
1373
+ function Oe(e, t, i, r) {
1374
+ return ne.reset(), Ne.update(), new Promise(async (o, a) => {
1374
1375
  try {
1375
1376
  let s, d = !1;
1376
- const n = gn(e, t);
1377
+ const n = mn(e, t);
1377
1378
  i.enrich({
1378
1379
  "stream-version": n.version.toString()
1379
- }), s = await un(
1380
+ }), s = await dn(
1380
1381
  e,
1381
1382
  n,
1382
1383
  {
@@ -1385,12 +1386,12 @@ function We(e, t, i, r) {
1385
1386
  callbacks: {
1386
1387
  ...t.callbacks,
1387
1388
  onConnectionStateChange: (c, g) => {
1388
- var w, h;
1389
- (h = (w = t.callbacks).onConnectionStateChange) == null || h.call(w, c), hn(c, g, i), c === T.Connected && (s ? o(s) : d = !0);
1389
+ var p, u;
1390
+ (u = (p = t.callbacks).onConnectionStateChange) == null || u.call(p, c), gn(c, g, i), c === T.Connected && (s ? o(s) : d = !0);
1390
1391
  },
1391
1392
  onVideoStateChange: (c, g) => {
1392
- var w, h;
1393
- (h = (w = t.callbacks).onVideoStateChange) == null || h.call(w, c), pn(
1393
+ var p, u;
1394
+ (u = (p = t.callbacks).onVideoStateChange) == null || u.call(p, c), hn(
1394
1395
  c,
1395
1396
  e,
1396
1397
  g,
@@ -1399,8 +1400,8 @@ function We(e, t, i, r) {
1399
1400
  );
1400
1401
  },
1401
1402
  onAgentActivityStateChange: (c) => {
1402
- var g, w;
1403
- (w = (g = t.callbacks).onAgentActivityStateChange) == null || w.call(g, c), c === O.Talking ? Me.update() : Me.reset(), yn(
1403
+ var g, p;
1404
+ (p = (g = t.callbacks).onAgentActivityStateChange) == null || p.call(g, c), c === O.Talking ? Me.update() : Me.reset(), wn(
1404
1405
  c === O.Talking ? C.Start : C.Stop,
1405
1406
  e,
1406
1407
  i,
@@ -1420,53 +1421,53 @@ function We(e, t, i, r) {
1420
1421
  }
1421
1422
  });
1422
1423
  }
1423
- async function Cn(e, t, i, r, o) {
1424
- var g, w, h, f;
1424
+ async function vn(e, t, i, r, o) {
1425
+ var g, p, u, v;
1425
1426
  const a = async () => {
1426
1427
  if (_e(e.presenter.type)) {
1427
- const P = await We(e, t, r), J = `${ln}_${P.sessionId}`, D = (/* @__PURE__ */ new Date()).toISOString();
1428
+ const F = await Oe(e, t, r), P = `${un}_${F.sessionId}`, k = (/* @__PURE__ */ new Date()).toISOString();
1428
1429
  return { chatResult: {
1429
1430
  chatMode: x.Functional,
1430
1431
  chat: {
1431
- id: J,
1432
+ id: P,
1432
1433
  agent_id: e.id,
1433
1434
  owner_id: e.owner_id ?? "",
1434
- created: D,
1435
- modified: D,
1436
- agent_id__created_at: D,
1437
- agent_id__modified_at: D,
1435
+ created: k,
1436
+ modified: k,
1437
+ agent_id__created_at: k,
1438
+ agent_id__modified_at: k,
1438
1439
  chat_mode: x.Functional,
1439
1440
  messages: []
1440
1441
  }
1441
- }, streamingManager: P };
1442
+ }, streamingManager: F };
1442
1443
  } else {
1443
- const P = new AbortController(), J = P.signal;
1444
- let D;
1444
+ const F = new AbortController(), P = F.signal;
1445
+ let k;
1445
1446
  try {
1446
- const k = Ge(
1447
+ const S = Ze(
1447
1448
  e,
1448
1449
  i,
1449
1450
  r,
1450
1451
  t.mode,
1451
1452
  t.persistentChat,
1452
1453
  o
1453
- ), _ = We(e, t, r, J).then(($) => (D = $, $)), [I, F] = await Promise.all([k, _]);
1454
- return { chatResult: I, streamingManager: F };
1455
- } catch (k) {
1456
- throw P.abort(), D && await D.disconnect().catch(() => {
1457
- }), k;
1454
+ ), N = Oe(e, t, r, P).then((V) => (k = V, V)), [E, b] = await Promise.all([S, N]);
1455
+ return { chatResult: E, streamingManager: b };
1456
+ } catch (S) {
1457
+ throw F.abort(), k && await k.disconnect().catch(() => {
1458
+ }), S;
1458
1459
  }
1459
1460
  }
1460
1461
  }, { chatResult: s, streamingManager: d } = await a(), { chat: n, chatMode: c } = s;
1461
- return c && t.mode !== void 0 && c !== t.mode && (t.mode = c, (w = (g = t.callbacks).onModeChange) == null || w.call(g, c), c !== x.Functional) ? ((f = (h = t.callbacks).onError) == null || f.call(h, new ot(c)), d == null || d.disconnect(), { chat: n }) : { chat: n, streamingManager: d };
1462
+ return c && t.mode !== void 0 && c !== t.mode && (t.mode = c, (p = (g = t.callbacks).onModeChange) == null || p.call(g, c), c !== x.Functional) ? ((v = (u = t.callbacks).onError) == null || v.call(u, new at(c)), d == null || d.disconnect(), { chat: n }) : { chat: n, streamingManager: d };
1462
1463
  }
1463
- async function Rn(e, t) {
1464
- var H, Z, se, N;
1464
+ async function kn(e, t) {
1465
+ var H, z, Z, ee;
1465
1466
  let i = !0, r = null;
1466
- const o = t.mixpanelKey || Ct, a = t.wsURL || vt, s = t.baseURL || pe, d = t.mode || x.Functional, n = {
1467
+ const o = t.mixpanelKey || vt, a = t.wsURL || yt, s = t.baseURL || he, d = t.mode || x.Functional, n = {
1467
1468
  messages: [],
1468
1469
  chatMode: d
1469
- }, c = Pt({
1470
+ }, c = Lt({
1470
1471
  token: o,
1471
1472
  agentId: e,
1472
1473
  isEnabled: t.enableAnalitics,
@@ -1476,302 +1477,302 @@ async function Rn(e, t) {
1476
1477
  Ke(() => {
1477
1478
  c.track("agent-sdk", { event: "init" }, g);
1478
1479
  });
1479
- const w = Mt(t.auth, s, t.callbacks.onError, t.externalId), h = await w.getById(e);
1480
- t.debug = t.debug || ((H = h == null ? void 0 : h.advanced_settings) == null ? void 0 : H.ui_debug_mode);
1481
- const f = _e(h.presenter.type);
1482
- c.enrich(Tt(h));
1483
- const { onMessage: P, clearQueue: J } = nn(
1480
+ const p = Et(t.auth, s, t.callbacks.onError, t.externalId), u = await p.getById(e);
1481
+ t.debug = t.debug || ((H = u == null ? void 0 : u.advanced_settings) == null ? void 0 : H.ui_debug_mode);
1482
+ const v = _e(u.presenter.type);
1483
+ c.enrich(It(u));
1484
+ const { onMessage: F, clearQueue: P } = tn(
1484
1485
  c,
1485
1486
  n,
1486
1487
  t,
1487
- h,
1488
+ u,
1488
1489
  () => {
1489
- var u;
1490
- return (u = n.socketManager) == null ? void 0 : u.disconnect();
1490
+ var l;
1491
+ return (l = n.socketManager) == null ? void 0 : l.disconnect();
1491
1492
  }
1492
1493
  );
1493
- n.messages = jt(t.initialMessages), (se = (Z = t.callbacks).onNewMessage) == null || se.call(Z, [...n.messages], "answer");
1494
- const D = (u) => {
1495
- r = u;
1496
- }, k = ({ type: u }) => {
1497
- var R, z, b;
1498
- const S = n.messages[n.messages.length - 1];
1494
+ n.messages = bt(t.initialMessages), (Z = (z = t.callbacks).onNewMessage) == null || Z.call(z, [...n.messages], "answer");
1495
+ const k = (l) => {
1496
+ r = l;
1497
+ }, S = ({ type: l }) => {
1498
+ var R, K, L;
1499
+ const D = n.messages[n.messages.length - 1];
1499
1500
  c.track("agent-video-interrupt", {
1500
- type: u || "click",
1501
+ type: l || "click",
1501
1502
  video_duration_to_interrupt: Me.get(!0),
1502
- message_duration_to_interrupt: te.get(!0)
1503
- }), S.interrupted = !0, (z = (R = t.callbacks).onNewMessage) == null || z.call(R, [...n.messages], "answer"), f ? Qt(n.streamingManager) : (Ht(n.streamingManager, (b = n.streamingManager) == null ? void 0 : b.streamType, r), qt(n.streamingManager, r));
1504
- }, _ = Date.now();
1503
+ message_duration_to_interrupt: ne.get(!0)
1504
+ }), D.interrupted = !0, (K = (R = t.callbacks).onNewMessage) == null || K.call(R, [...n.messages], "answer"), v ? qt(n.streamingManager) : (Ot(n.streamingManager, (L = n.streamingManager) == null ? void 0 : L.streamType, r), Ht(n.streamingManager, r));
1505
+ }, N = Date.now();
1505
1506
  Ke(() => {
1506
- c.track("agent-sdk", { event: "loaded", ...It(h) }, _);
1507
+ c.track("agent-sdk", { event: "loaded", ...Mt(u) }, N);
1507
1508
  });
1508
- async function I(u) {
1509
- var K, q, W, j, B, Y, ie;
1510
- (q = (K = t.callbacks).onConnectionStateChange) == null || q.call(K, T.Connecting), te.reset(), u && !i && (delete n.chat, (j = (W = t.callbacks).onNewMessage) == null || j.call(W, [...n.messages], "answer"));
1511
- const S = d === x.DirectPlayback || f ? Promise.resolve(void 0) : Gt(
1509
+ async function E(l) {
1510
+ var B, q, Q, j, $, G, ae;
1511
+ (q = (B = t.callbacks).onConnectionStateChange) == null || q.call(B, T.Connecting), ne.reset(), l && !i && (delete n.chat, (j = (Q = t.callbacks).onNewMessage) == null || j.call(Q, [...n.messages], "answer"));
1512
+ const D = d === x.DirectPlayback || v ? Promise.resolve(void 0) : Yt(
1512
1513
  t.auth,
1513
1514
  a,
1514
- { onMessage: P, onError: t.callbacks.onError },
1515
+ { onMessage: F, onError: t.callbacks.onError },
1515
1516
  t.externalId
1516
1517
  ), R = De(
1517
- () => Cn(
1518
- h,
1518
+ () => vn(
1519
+ u,
1519
1520
  {
1520
1521
  ...t,
1521
1522
  mode: d,
1522
1523
  callbacks: {
1523
1524
  ...t.callbacks,
1524
- onVideoIdChange: D,
1525
- onMessage: P,
1526
- onInterruptDetected: k
1525
+ onVideoIdChange: k,
1526
+ onMessage: F,
1527
+ onInterruptDetected: S
1527
1528
  }
1528
1529
  },
1529
- w,
1530
+ p,
1530
1531
  c,
1531
1532
  n.chat
1532
1533
  ),
1533
1534
  {
1534
1535
  limit: 3,
1535
- timeout: wt,
1536
+ timeout: pt,
1536
1537
  timeoutErrorMessage: "Timeout initializing the stream",
1537
- shouldRetryFn: (y) => (y == null ? void 0 : y.message) !== "Could not connect" && y.status !== 429 && (y == null ? void 0 : y.message) !== "InsufficientCreditsError",
1538
+ shouldRetryFn: (w) => (w == null ? void 0 : w.message) !== "Could not connect" && w.status !== 429 && (w == null ? void 0 : w.message) !== "InsufficientCreditsError",
1538
1539
  delayMs: 1e3
1539
1540
  }
1540
- ).catch((y) => {
1541
- var m, E;
1542
- throw $(x.Maintenance), (E = (m = t.callbacks).onConnectionStateChange) == null || E.call(m, T.Fail), y;
1543
- }), [z, { streamingManager: b, chat: A }] = await Promise.all([S, R]);
1544
- A && A.id !== ((B = n.chat) == null ? void 0 : B.id) && ((ie = (Y = t.callbacks).onNewChat) == null || ie.call(Y, A.id)), n.streamingManager = b, n.socketManager = z, n.chat = A, i = !1, c.enrich({
1545
- chatId: A == null ? void 0 : A.id,
1546
- streamId: b == null ? void 0 : b.streamId,
1541
+ ).catch((w) => {
1542
+ var m, M;
1543
+ throw V(x.Maintenance), (M = (m = t.callbacks).onConnectionStateChange) == null || M.call(m, T.Fail), w;
1544
+ }), [K, { streamingManager: L, chat: _ }] = await Promise.all([D, R]);
1545
+ _ && _.id !== (($ = n.chat) == null ? void 0 : $.id) && ((ae = (G = t.callbacks).onNewChat) == null || ae.call(G, _.id)), n.streamingManager = L, n.socketManager = K, n.chat = _, i = !1, c.enrich({
1546
+ chatId: _ == null ? void 0 : _.id,
1547
+ streamId: L == null ? void 0 : L.streamId,
1547
1548
  mode: n.chatMode
1548
- }), $((A == null ? void 0 : A.chat_mode) ?? d);
1549
+ }), V((_ == null ? void 0 : _.chat_mode) ?? d);
1549
1550
  }
1550
- async function F() {
1551
- var u, S, R, z;
1552
- (u = n.socketManager) == null || u.disconnect(), await ((S = n.streamingManager) == null ? void 0 : S.disconnect()), delete n.streamingManager, delete n.socketManager, (z = (R = t.callbacks).onConnectionStateChange) == null || z.call(R, T.Disconnected);
1551
+ async function b() {
1552
+ var l, D, R, K;
1553
+ (l = n.socketManager) == null || l.disconnect(), await ((D = n.streamingManager) == null ? void 0 : D.disconnect()), delete n.streamingManager, delete n.socketManager, (K = (R = t.callbacks).onConnectionStateChange) == null || K.call(R, T.Disconnected);
1553
1554
  }
1554
- async function $(u) {
1555
- var S, R;
1556
- u !== n.chatMode && (c.track("agent-mode-change", { mode: u }), n.chatMode = u, n.chatMode !== x.Functional && await F(), (R = (S = t.callbacks).onModeChange) == null || R.call(S, u));
1555
+ async function V(l) {
1556
+ var D, R;
1557
+ l !== n.chatMode && (c.track("agent-mode-change", { mode: l }), n.chatMode = l, n.chatMode !== x.Functional && await b(), (R = (D = t.callbacks).onModeChange) == null || R.call(D, l));
1557
1558
  }
1558
1559
  return {
1559
- agent: h,
1560
+ agent: u,
1560
1561
  getStreamType: () => {
1561
- var u;
1562
- return (u = n.streamingManager) == null ? void 0 : u.streamType;
1562
+ var l;
1563
+ return (l = n.streamingManager) == null ? void 0 : l.streamType;
1563
1564
  },
1564
1565
  getIsInterruptAvailable: () => {
1565
- var u;
1566
- return ((u = n.streamingManager) == null ? void 0 : u.interruptAvailable) ?? !1;
1566
+ var l;
1567
+ return ((l = n.streamingManager) == null ? void 0 : l.interruptAvailable) ?? !1;
1567
1568
  },
1568
1569
  getIsTriggersAvailable: () => {
1569
- var u;
1570
- return ((u = n.streamingManager) == null ? void 0 : u.triggersAvailable) ?? !1;
1570
+ var l;
1571
+ return ((l = n.streamingManager) == null ? void 0 : l.triggersAvailable) ?? !1;
1571
1572
  },
1572
- starterMessages: ((N = h.knowledge) == null ? void 0 : N.starter_message) || [],
1573
- getSTTToken: () => w.getSTTToken(h.id),
1574
- changeMode: $,
1573
+ starterMessages: ((ee = u.knowledge) == null ? void 0 : ee.starter_message) || [],
1574
+ getSTTToken: () => p.getSTTToken(u.id),
1575
+ changeMode: V,
1575
1576
  enrichAnalytics: c.enrich,
1576
1577
  async connect() {
1577
- await I(!0), c.track("agent-chat", {
1578
+ await E(!0), c.track("agent-chat", {
1578
1579
  event: "connect",
1579
1580
  mode: n.chatMode
1580
1581
  });
1581
1582
  },
1582
1583
  async reconnect() {
1583
- const u = n.streamingManager;
1584
- if (f && (u != null && u.reconnect)) {
1584
+ const l = n.streamingManager;
1585
+ if (v && (l != null && l.reconnect)) {
1585
1586
  try {
1586
- await u.reconnect(), c.track("agent-chat", {
1587
+ await l.reconnect(), c.track("agent-chat", {
1587
1588
  event: "reconnect",
1588
1589
  mode: n.chatMode
1589
1590
  });
1590
1591
  } catch {
1591
- await F(), await I(!1);
1592
+ await b(), await E(!1);
1592
1593
  }
1593
1594
  return;
1594
1595
  }
1595
- await F(), await I(!1), c.track("agent-chat", {
1596
+ await b(), await E(!1), c.track("agent-chat", {
1596
1597
  event: "reconnect",
1597
1598
  mode: n.chatMode
1598
1599
  });
1599
1600
  },
1600
1601
  async disconnect() {
1601
- await F(), c.track("agent-chat", {
1602
+ await b(), c.track("agent-chat", {
1602
1603
  event: "disconnect",
1603
1604
  mode: n.chatMode
1604
1605
  });
1605
1606
  },
1606
- async publishMicrophoneStream(u) {
1607
- var S;
1608
- if (!((S = n.streamingManager) != null && S.publishMicrophoneStream))
1607
+ async publishMicrophoneStream(l) {
1608
+ var D;
1609
+ if (!((D = n.streamingManager) != null && D.publishMicrophoneStream))
1609
1610
  throw new Error("publishMicrophoneStream is not available for this streaming manager");
1610
- return n.streamingManager.publishMicrophoneStream(u);
1611
+ return n.streamingManager.publishMicrophoneStream(l);
1611
1612
  },
1612
1613
  async unpublishMicrophoneStream() {
1613
- var u;
1614
- if (!((u = n.streamingManager) != null && u.unpublishMicrophoneStream))
1614
+ var l;
1615
+ if (!((l = n.streamingManager) != null && l.unpublishMicrophoneStream))
1615
1616
  throw new Error("unpublishMicrophoneStream is not available for this streaming manager");
1616
1617
  return n.streamingManager.unpublishMicrophoneStream();
1617
1618
  },
1618
- async chat(u) {
1619
- var b, A, K, q, W;
1620
- const S = () => {
1621
- if (Qe(d))
1622
- throw new fe(`${d} is enabled, chat is disabled`);
1623
- if (u.length >= 800)
1624
- throw new fe("Message cannot be more than 800 characters");
1625
- if (u.length === 0)
1626
- throw new fe("Message cannot be empty");
1619
+ async chat(l) {
1620
+ var L, _, B, q, Q;
1621
+ const D = () => {
1622
+ if (Xe(d))
1623
+ throw new le(`${d} is enabled, chat is disabled`);
1624
+ if (l.length >= 800)
1625
+ throw new le("Message cannot be more than 800 characters");
1626
+ if (l.length === 0)
1627
+ throw new le("Message cannot be empty");
1627
1628
  if (n.chatMode === x.Maintenance)
1628
- throw new fe("Chat is in maintenance mode");
1629
+ throw new le("Chat is in maintenance mode");
1629
1630
  if (![x.TextOnly, x.Playground].includes(n.chatMode)) {
1630
1631
  if (!n.streamingManager)
1631
- throw new fe("Streaming manager is not initialized");
1632
+ throw new le("Streaming manager is not initialized");
1632
1633
  if (!n.chat)
1633
- throw new fe("Chat is not initialized");
1634
+ throw new le("Chat is not initialized");
1634
1635
  }
1635
1636
  }, R = async () => {
1636
- var j, B;
1637
+ var j, $;
1637
1638
  if (!n.chat) {
1638
- const Y = await Ge(
1639
- h,
1640
- w,
1639
+ const G = await Ze(
1640
+ u,
1641
+ p,
1641
1642
  c,
1642
1643
  n.chatMode,
1643
1644
  t.persistentChat
1644
1645
  );
1645
- if (!Y.chat)
1646
- throw new at(n.chatMode, !!t.persistentChat);
1647
- n.chat = Y.chat, (B = (j = t.callbacks).onNewChat) == null || B.call(j, n.chat.id);
1646
+ if (!G.chat)
1647
+ throw new it(n.chatMode, !!t.persistentChat);
1648
+ n.chat = G.chat, ($ = (j = t.callbacks).onNewChat) == null || $.call(j, n.chat.id);
1648
1649
  }
1649
1650
  return n.chat.id;
1650
- }, z = async (j, B) => {
1651
- const Y = n.chatMode === x.Playground;
1652
- return De(f && !Y ? async () => {
1653
- var m, E;
1654
- return await ((E = (m = n.streamingManager) == null ? void 0 : m.sendTextMessage) == null ? void 0 : E.call(m, u)), Promise.resolve({});
1651
+ }, K = async (j, $) => {
1652
+ const G = n.chatMode === x.Playground;
1653
+ return De(v && !G ? async () => {
1654
+ var m, M;
1655
+ return await ((M = (m = n.streamingManager) == null ? void 0 : m.sendTextMessage) == null ? void 0 : M.call(m, l)), Promise.resolve({});
1655
1656
  } : async () => {
1656
- var m, E;
1657
- return w.chat(
1658
- h.id,
1659
- B,
1657
+ var m, M;
1658
+ return p.chat(
1659
+ u.id,
1660
+ $,
1660
1661
  {
1661
1662
  chatMode: n.chatMode,
1662
1663
  streamId: (m = n.streamingManager) == null ? void 0 : m.streamId,
1663
- sessionId: (E = n.streamingManager) == null ? void 0 : E.sessionId,
1664
- messages: j.map(({ matches: G, ...ce }) => ce)
1664
+ sessionId: (M = n.streamingManager) == null ? void 0 : M.sessionId,
1665
+ messages: j.map(({ matches: W, ...ce }) => ce)
1665
1666
  },
1666
1667
  {
1667
- ...Ye(n.chatMode),
1668
+ ...Ge(n.chatMode),
1668
1669
  skipErrorHandler: !0
1669
1670
  }
1670
1671
  );
1671
1672
  }, {
1672
1673
  limit: 2,
1673
1674
  shouldRetryFn: (m) => {
1674
- var ce, de, we, ue;
1675
- const E = (ce = m == null ? void 0 : m.message) == null ? void 0 : ce.includes("missing or invalid session_id");
1676
- return !((de = m == null ? void 0 : m.message) == null ? void 0 : de.includes("Stream Error")) && !E ? ((ue = (we = t.callbacks).onError) == null || ue.call(we, m), !1) : !0;
1675
+ var ce, de, pe, we;
1676
+ const M = (ce = m == null ? void 0 : m.message) == null ? void 0 : ce.includes("missing or invalid session_id");
1677
+ return !((de = m == null ? void 0 : m.message) == null ? void 0 : de.includes("Stream Error")) && !M ? ((we = (pe = t.callbacks).onError) == null || we.call(pe, m), !1) : !0;
1677
1678
  },
1678
1679
  onRetry: async () => {
1679
- await F(), await I(!1);
1680
+ await b(), await E(!1);
1680
1681
  }
1681
1682
  });
1682
1683
  };
1683
1684
  try {
1684
- J(), S(), n.messages.push({
1685
- id: me(),
1685
+ P(), D(), n.messages.push({
1686
+ id: fe(),
1686
1687
  role: "user",
1687
- content: u,
1688
- created_at: new Date(te.update()).toISOString()
1689
- }), (A = (b = t.callbacks).onNewMessage) == null || A.call(b, [...n.messages], "user");
1690
- const j = await R(), B = await z([...n.messages], j);
1688
+ content: l,
1689
+ created_at: new Date(ne.update()).toISOString()
1690
+ }), (_ = (L = t.callbacks).onNewMessage) == null || _.call(L, [...n.messages], "user");
1691
+ const j = await R(), $ = await K([...n.messages], j);
1691
1692
  return n.messages.push({
1692
- id: me(),
1693
+ id: fe(),
1693
1694
  role: "assistant",
1694
- content: B.result || "",
1695
+ content: $.result || "",
1695
1696
  created_at: (/* @__PURE__ */ new Date()).toISOString(),
1696
- context: B.context,
1697
- matches: B.matches
1697
+ context: $.context,
1698
+ matches: $.matches
1698
1699
  }), c.track("agent-message-send", {
1699
1700
  event: "success",
1700
1701
  messages: n.messages.length + 1
1701
- }), B.result && ((q = (K = t.callbacks).onNewMessage) == null || q.call(K, [...n.messages], "answer"), c.track("agent-message-received", {
1702
- latency: te.get(!0),
1702
+ }), $.result && ((q = (B = t.callbacks).onNewMessage) == null || q.call(B, [...n.messages], "answer"), c.track("agent-message-received", {
1703
+ latency: ne.get(!0),
1703
1704
  messages: n.messages.length
1704
- })), B;
1705
+ })), $;
1705
1706
  } catch (j) {
1706
- throw ((W = n.messages[n.messages.length - 1]) == null ? void 0 : W.role) === "assistant" && n.messages.pop(), c.track("agent-message-send", {
1707
+ throw ((Q = n.messages[n.messages.length - 1]) == null ? void 0 : Q.role) === "assistant" && n.messages.pop(), c.track("agent-message-send", {
1707
1708
  event: "error",
1708
1709
  messages: n.messages.length
1709
1710
  }), j;
1710
1711
  }
1711
1712
  },
1712
- rate(u, S, R) {
1713
- var A, K, q, W;
1714
- const z = n.messages.find((j) => j.id === u);
1713
+ rate(l, D, R) {
1714
+ var _, B, q, Q;
1715
+ const K = n.messages.find((j) => j.id === l);
1715
1716
  if (n.chat) {
1716
- if (!z)
1717
+ if (!K)
1717
1718
  throw new Error("Message not found");
1718
1719
  } else throw new Error("Chat is not initialized");
1719
- const b = ((A = z.matches) == null ? void 0 : A.map((j) => [j.document_id, j.id])) ?? [];
1720
+ const L = ((_ = K.matches) == null ? void 0 : _.map((j) => [j.document_id, j.id])) ?? [];
1720
1721
  return c.track("agent-rate", {
1721
1722
  event: R ? "update" : "create",
1722
- thumb: S === 1 ? "up" : "down",
1723
- knowledge_id: ((K = h.knowledge) == null ? void 0 : K.id) ?? "",
1724
- matches: b,
1725
- score: S
1726
- }), R ? w.updateRating(h.id, n.chat.id, R, {
1727
- knowledge_id: ((q = h.knowledge) == null ? void 0 : q.id) ?? "",
1728
- message_id: u,
1729
- matches: b,
1730
- score: S
1731
- }) : w.createRating(h.id, n.chat.id, {
1732
- knowledge_id: ((W = h.knowledge) == null ? void 0 : W.id) ?? "",
1733
- message_id: u,
1734
- matches: b,
1735
- score: S
1723
+ thumb: D === 1 ? "up" : "down",
1724
+ knowledge_id: ((B = u.knowledge) == null ? void 0 : B.id) ?? "",
1725
+ matches: L,
1726
+ score: D
1727
+ }), R ? p.updateRating(u.id, n.chat.id, R, {
1728
+ knowledge_id: ((q = u.knowledge) == null ? void 0 : q.id) ?? "",
1729
+ message_id: l,
1730
+ matches: L,
1731
+ score: D
1732
+ }) : p.createRating(u.id, n.chat.id, {
1733
+ knowledge_id: ((Q = u.knowledge) == null ? void 0 : Q.id) ?? "",
1734
+ message_id: l,
1735
+ matches: L,
1736
+ score: D
1736
1737
  });
1737
1738
  },
1738
- deleteRate(u) {
1739
+ deleteRate(l) {
1739
1740
  if (!n.chat)
1740
1741
  throw new Error("Chat is not initialized");
1741
- return c.track("agent-rate-delete", { type: "text" }), w.deleteRating(h.id, n.chat.id, u);
1742
+ return c.track("agent-rate-delete", { type: "text" }), p.deleteRating(u.id, n.chat.id, l);
1742
1743
  },
1743
- async speak(u) {
1744
- var b, A, K;
1745
- function S() {
1746
- if (typeof u == "string") {
1747
- if (!h.presenter.voice)
1744
+ async speak(l) {
1745
+ var L, _, B;
1746
+ function D() {
1747
+ if (typeof l == "string") {
1748
+ if (!u.presenter.voice)
1748
1749
  throw new Error("Presenter voice is not initialized");
1749
1750
  return {
1750
1751
  type: "text",
1751
- provider: h.presenter.voice,
1752
- input: u,
1752
+ provider: u.presenter.voice,
1753
+ input: l,
1753
1754
  ssml: !1
1754
1755
  };
1755
1756
  }
1756
- if (u.type === "text" && !u.provider) {
1757
- if (!h.presenter.voice)
1757
+ if (l.type === "text" && !l.provider) {
1758
+ if (!u.presenter.voice)
1758
1759
  throw new Error("Presenter voice is not initialized");
1759
1760
  return {
1760
1761
  type: "text",
1761
- provider: h.presenter.voice,
1762
- input: u.input,
1763
- ssml: u.ssml
1762
+ provider: u.presenter.voice,
1763
+ input: l.input,
1764
+ ssml: l.ssml
1764
1765
  };
1765
1766
  }
1766
- return u;
1767
+ return l;
1767
1768
  }
1768
- const R = S();
1769
- if (c.track("agent-speak", R), te.update(), n.messages && R.type === "text" && (n.messages.push({
1770
- id: me(),
1769
+ const R = D();
1770
+ if (c.track("agent-speak", R), ne.update(), n.messages && R.type === "text" && (n.messages.push({
1771
+ id: fe(),
1771
1772
  role: "assistant",
1772
1773
  content: R.input,
1773
1774
  created_at: (/* @__PURE__ */ new Date()).toISOString()
1774
- }), (A = (b = t.callbacks).onNewMessage) == null || A.call(b, [...n.messages], "answer")), kt(n.chatMode))
1775
+ }), (_ = (L = t.callbacks).onNewMessage) == null || _.call(L, [...n.messages], "answer")), St(n.chatMode))
1775
1776
  return {
1776
1777
  duration: 0,
1777
1778
  video_id: "",
@@ -1781,36 +1782,36 @@ async function Rn(e, t) {
1781
1782
  throw new Error("Please connect to the agent first");
1782
1783
  return n.streamingManager.speak({
1783
1784
  script: R,
1784
- metadata: { chat_id: (K = n.chat) == null ? void 0 : K.id, agent_id: h.id }
1785
+ metadata: { chat_id: (B = n.chat) == null ? void 0 : B.id, agent_id: u.id }
1785
1786
  });
1786
1787
  },
1787
- interrupt: k
1788
+ interrupt: S
1788
1789
  };
1789
1790
  }
1790
1791
  export {
1791
1792
  O as AgentActivityState,
1792
- ut as AgentStatus,
1793
- at as ChatCreationFailed,
1793
+ dt as AgentStatus,
1794
+ it as ChatCreationFailed,
1794
1795
  x as ChatMode,
1795
- ot as ChatModeDowngraded,
1796
- X as ChatProgress,
1796
+ at as ChatModeDowngraded,
1797
+ Y as ChatProgress,
1797
1798
  T as ConnectionState,
1798
- ne as ConnectivityState,
1799
- gt as DocumentType,
1800
- mt as KnowledgeType,
1801
- dt as PlanGroup,
1802
- ht as Providers,
1803
- lt as RateState,
1804
- L as StreamEvents,
1805
- re as StreamType,
1799
+ re as ConnectivityState,
1800
+ mt as DocumentType,
1801
+ ft as KnowledgeType,
1802
+ ct as PlanGroup,
1803
+ gt as Providers,
1804
+ ut as RateState,
1805
+ A as StreamEvents,
1806
+ ie as StreamType,
1806
1807
  C as StreamingState,
1807
- ft as Subject,
1808
+ lt as Subject,
1808
1809
  ke as TransportProvider,
1809
- ct as UserPlan,
1810
- fe as ValidationError,
1811
- Oe as VideoType,
1812
- pt as VoiceAccess,
1813
- st as WsError,
1814
- Rn as createAgentManager,
1815
- kn as mapVideoType
1810
+ st as UserPlan,
1811
+ le as ValidationError,
1812
+ He as VideoType,
1813
+ ht as VoiceAccess,
1814
+ ot as WsError,
1815
+ kn as createAgentManager,
1816
+ Sn as mapVideoType
1816
1817
  };