@d-id/client-sdk 1.1.0-beta.6 → 1.1.0-beta.7

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,31 +1,31 @@
1
- var ge = Object.defineProperty;
2
- var he = (e, t, n) => t in e ? ge(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var H = (e, t, n) => (he(e, typeof t != "symbol" ? t + "" : t, n), n);
1
+ var we = Object.defineProperty;
2
+ var ye = (e, t, r) => t in e ? we(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
+ var H = (e, t, r) => (ye(e, typeof t != "symbol" ? t + "" : t, r), r);
4
4
  class Q extends Error {
5
5
  constructor({
6
- kind: n,
6
+ kind: r,
7
7
  description: a,
8
8
  error: o
9
9
  }) {
10
10
  super(JSON.stringify({
11
- kind: n,
11
+ kind: r,
12
12
  description: a
13
13
  }));
14
14
  H(this, "kind");
15
15
  H(this, "description");
16
16
  H(this, "error");
17
- this.kind = n, this.description = a, this.error = o;
17
+ this.kind = r, this.description = a, this.error = o;
18
18
  }
19
19
  }
20
- class we extends Q {
21
- constructor(t, n) {
20
+ class pe extends Q {
21
+ constructor(t, r) {
22
22
  super({
23
23
  kind: "ChatCreationFailed",
24
- description: `Failed to create ${n ? "persistent" : ""} chat, mode: ${t}`
24
+ description: `Failed to create ${r ? "persistent" : ""} chat, mode: ${t}`
25
25
  });
26
26
  }
27
27
  }
28
- class pe extends Q {
28
+ class ve extends Q {
29
29
  constructor(t) {
30
30
  super({
31
31
  kind: "ChatModeDowngraded",
@@ -33,17 +33,17 @@ class pe extends Q {
33
33
  });
34
34
  }
35
35
  }
36
- class F extends Q {
37
- constructor(n, a) {
36
+ class J extends Q {
37
+ constructor(r, a) {
38
38
  super({
39
39
  kind: "ValidationError",
40
- description: n
40
+ description: r
41
41
  });
42
42
  H(this, "key");
43
43
  this.key = a;
44
44
  }
45
45
  }
46
- class ye extends Q {
46
+ class ke extends Q {
47
47
  constructor(t) {
48
48
  super({
49
49
  kind: "WSError",
@@ -51,8 +51,8 @@ class ye extends Q {
51
51
  });
52
52
  }
53
53
  }
54
- var ve = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(ve || {}), ke = /* @__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))(ke || {}), Ce = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(Ce || {}), De = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(De || {}), j = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e.Playground = "Playground", e.DirectPlayback = "DirectPlayback", e))(j || {}), J = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(J || {}), Re = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(Re || {}), Ee = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(Ee || {}), Se = /* @__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))(Se || {}), ie = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))(ie || {});
55
- const Me = (e) => {
54
+ var Ce = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(Ce || {}), De = /* @__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))(De || {}), Re = /* @__PURE__ */ ((e) => (e.Created = "created", e.Started = "started", e.Done = "done", e.Error = "error", e.Rejected = "rejected", e.Ready = "ready", e))(Re || {}), _e = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(_e || {}), j = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e.Playground = "Playground", e.DirectPlayback = "DirectPlayback", e))(j || {}), U = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(U || {}), Ee = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(Ee || {}), Se = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(Se || {}), Me = /* @__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))(Me || {}), oe = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))(oe || {});
55
+ const Ie = (e) => {
56
56
  switch (e) {
57
57
  case "clip":
58
58
  return "clip";
@@ -62,25 +62,25 @@ const Me = (e) => {
62
62
  throw new Error(`Unknown video type: ${e}`);
63
63
  }
64
64
  };
65
- var v = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(v || {}), W = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(W || {}), K = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Talking = "TALKING", e))(K || {});
66
- const te = {
65
+ var C = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(C || {}), W = /* @__PURE__ */ ((e) => (e.Strong = "STRONG", e.Weak = "WEAK", e.Unknown = "UNKNOWN", e))(W || {}), K = /* @__PURE__ */ ((e) => (e.Idle = "IDLE", e.Talking = "TALKING", e))(K || {});
66
+ const ne = {
67
67
  "stream/started": "START",
68
68
  "stream/done": "STOP"
69
69
  /* Stop */
70
70
  };
71
- var Y = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e.StreamReady = "stream/ready", e.StreamCreated = "stream/created", e.StreamVideoCreated = "stream-video/started", e.StreamVideoDone = "stream-video/done", e.StreamVideoError = "stream-video/error", e.StreamVideoRejected = "stream-video/rejected", e))(Y || {}), I = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnected = "disconnected", e))(I || {}), N = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(N || {}), _e = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(_e || {}), Ie = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(Ie || {});
72
- const Te = 45 * 1e3, je = "X-Playground-Chat", q = "https://api.d-id.com", be = "wss://notifications.d-id.com", Pe = "79f81a83a67430be2bc0fd61042b8faa", se = (e) => new Promise((t) => setTimeout(t, e)), X = () => Math.random().toString(16).slice(2), Be = (e) => [j.TextOnly, j.Playground, j.Maintenance].includes(e);
73
- function $e(e, t) {
74
- let n;
71
+ var Y = /* @__PURE__ */ ((e) => (e.ChatAnswer = "chat/answer", e.ChatPartial = "chat/partial", e.StreamDone = "stream/done", e.StreamStarted = "stream/started", e.StreamFailed = "stream/error", e.StreamReady = "stream/ready", e.StreamCreated = "stream/created", e.StreamVideoCreated = "stream-video/started", e.StreamVideoDone = "stream-video/done", e.StreamVideoError = "stream-video/error", e.StreamVideoRejected = "stream-video/rejected", e))(Y || {}), I = /* @__PURE__ */ ((e) => (e.New = "new", e.Fail = "fail", e.Connected = "connected", e.Connecting = "connecting", e.Closed = "closed", e.Completed = "completed", e.Disconnected = "disconnected", e))(I || {}), F = /* @__PURE__ */ ((e) => (e.Legacy = "legacy", e.Fluent = "fluent", e))(F || {}), Te = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(Te || {}), je = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(je || {});
72
+ const Pe = 45 * 1e3, be = "X-Playground-Chat", q = "https://api.d-id.com", $e = "wss://notifications.d-id.com", Le = "79f81a83a67430be2bc0fd61042b8faa", ce = (e) => new Promise((t) => setTimeout(t, e)), X = () => Math.random().toString(16).slice(2), Be = (e) => [j.TextOnly, j.Playground, j.Maintenance].includes(e);
73
+ function Ae(e, t) {
74
+ let r;
75
75
  return {
76
- promise: new Promise((o, s) => {
77
- n = setTimeout(() => s(new Error(t)), e);
76
+ promise: new Promise((o, i) => {
77
+ r = setTimeout(() => i(new Error(t)), e);
78
78
  }),
79
- clear: () => clearTimeout(n)
79
+ clear: () => clearTimeout(r)
80
80
  };
81
81
  }
82
82
  async function Z(e, t) {
83
- const n = {
83
+ const r = {
84
84
  limit: (t == null ? void 0 : t.limit) ?? 3,
85
85
  delayMs: (t == null ? void 0 : t.delayMs) ?? 0,
86
86
  timeout: (t == null ? void 0 : t.timeout) ?? 3e4,
@@ -90,200 +90,218 @@ async function Z(e, t) {
90
90
  })
91
91
  };
92
92
  let a;
93
- for (let o = 1; o <= n.limit; o++)
93
+ for (let o = 1; o <= r.limit; o++)
94
94
  try {
95
- if (!n.timeout)
95
+ if (!r.timeout)
96
96
  return await e();
97
97
  const {
98
- promise: s,
99
- clear: r
100
- } = $e(n.timeout, n.timeoutErrorMessage), i = e().finally(r);
101
- return await Promise.race([i, s]);
102
- } catch (s) {
103
- if (a = s, !n.shouldRetryFn(s) || o >= n.limit)
104
- throw s;
105
- await se(n.delayMs), n.onRetry(s);
98
+ promise: i,
99
+ clear: n
100
+ } = Ae(r.timeout, r.timeoutErrorMessage), s = e().finally(n);
101
+ return await Promise.race([s, i]);
102
+ } catch (i) {
103
+ if (a = i, !r.shouldRetryFn(i) || o >= r.limit)
104
+ throw i;
105
+ await ce(r.delayMs), r.onRetry(i);
106
106
  }
107
107
  throw a;
108
108
  }
109
- function oe() {
109
+ function de() {
110
110
  let e = window.localStorage.getItem("did_external_key_id");
111
111
  return e || (e = Math.random().toString(16).slice(2), window.localStorage.setItem("did_external_key_id", e)), e;
112
112
  }
113
- let Le = X();
114
- function ce(e) {
113
+ let ze = X();
114
+ function le(e) {
115
115
  if (e.type === "bearer")
116
116
  return `Bearer ${e.token}`;
117
117
  if (e.type === "basic")
118
118
  return `Basic ${btoa(`${e.username}:${e.password}`)}`;
119
119
  if (e.type === "key")
120
- return `Client-Key ${e.clientKey}.${oe()}_${Le}`;
120
+ return `Client-Key ${e.clientKey}.${de()}_${ze}`;
121
121
  throw new Error(`Unknown auth type: ${e}`);
122
122
  }
123
- const Ae = (e) => Z(e, {
123
+ const xe = (e) => Z(e, {
124
124
  limit: 3,
125
125
  delayMs: 1e3,
126
126
  timeout: 0,
127
127
  shouldRetryFn: (t) => t.status === 429
128
128
  });
129
- function O(e, t = q, n) {
130
- const a = async (o, s) => {
129
+ function O(e, t = q, r) {
130
+ const a = async (o, i) => {
131
131
  const {
132
- skipErrorHandler: r,
133
- ...i
134
- } = s || {}, c = await Ae(() => fetch(t + (o != null && o.startsWith("/") ? o : `/${o}`), {
135
- ...i,
132
+ skipErrorHandler: n,
133
+ ...s
134
+ } = i || {}, c = await xe(() => fetch(t + (o != null && o.startsWith("/") ? o : `/${o}`), {
135
+ ...s,
136
136
  headers: {
137
- ...i.headers,
138
- Authorization: ce(e),
137
+ ...s.headers,
138
+ Authorization: le(e),
139
139
  "Content-Type": "application/json"
140
140
  }
141
141
  }));
142
142
  if (!c.ok) {
143
143
  let l = await c.text().catch(() => `Failed to fetch with status ${c.status}`);
144
- const u = new Error(l);
145
- throw n && !r && n(u, {
144
+ const f = new Error(l);
145
+ throw r && !n && r(f, {
146
146
  url: o,
147
- options: i,
147
+ options: s,
148
148
  headers: c.headers
149
- }), u;
149
+ }), f;
150
150
  }
151
151
  return c.json();
152
152
  };
153
153
  return {
154
- get(o, s) {
154
+ get(o, i) {
155
155
  return a(o, {
156
- ...s,
156
+ ...i,
157
157
  method: "GET"
158
158
  });
159
159
  },
160
- post(o, s, r) {
160
+ post(o, i, n) {
161
161
  return a(o, {
162
- ...r,
163
- body: JSON.stringify(s),
162
+ ...n,
163
+ body: JSON.stringify(i),
164
164
  method: "POST"
165
165
  });
166
166
  },
167
- delete(o, s, r) {
167
+ put(o, i, n) {
168
+ return a(o, {
169
+ ...n,
170
+ body: JSON.stringify(i),
171
+ method: "PUT"
172
+ });
173
+ },
174
+ delete(o, i, n) {
168
175
  return a(o, {
169
- ...r,
170
- body: JSON.stringify(s),
176
+ ...n,
177
+ body: JSON.stringify(i),
171
178
  method: "DELETE"
172
179
  });
173
180
  },
174
- patch(o, s, r) {
181
+ patch(o, i, n) {
175
182
  return a(o, {
176
- ...r,
177
- body: JSON.stringify(s),
183
+ ...n,
184
+ body: JSON.stringify(i),
178
185
  method: "PATCH"
179
186
  });
180
187
  }
181
188
  };
182
189
  }
183
- function de(e, t = q, n) {
184
- const a = O(e, `${t}/agents`, n);
190
+ function ue(e, t = q, r) {
191
+ const a = O(e, `${t}/agents`, r);
185
192
  return {
186
- create(o, s) {
187
- return a.post("/", o, s);
193
+ joinChat(o, i, n, s) {
194
+ return console.info("joinChat", {
195
+ userId: o,
196
+ externalId: i,
197
+ chatId: n,
198
+ options: s
199
+ }), a.put(`/chats/${n}`, {
200
+ user_id: o,
201
+ external_id: i
202
+ }, s);
188
203
  },
189
- getAgents(o, s) {
190
- return a.get(`/${o ? `?tag=${o}` : ""}`, s).then((r) => r ?? []);
204
+ create(o, i) {
205
+ return a.post("/", o, i);
191
206
  },
192
- getById(o, s) {
193
- return a.get(`/${o}`, s);
207
+ getAgents(o, i) {
208
+ return a.get(`/${o ? `?tag=${o}` : ""}`, i).then((n) => n ?? []);
194
209
  },
195
- delete(o, s) {
196
- return a.delete(`/${o}`, void 0, s);
210
+ getById(o, i) {
211
+ return a.get(`/${o}`, i);
197
212
  },
198
- update(o, s, r) {
199
- return a.patch(`/${o}`, s, r);
213
+ delete(o, i) {
214
+ return a.delete(`/${o}`, void 0, i);
200
215
  },
201
- newChat(o, s, r) {
202
- return a.post(`/${o}/chat`, s, r);
216
+ update(o, i, n) {
217
+ return a.patch(`/${o}`, i, n);
203
218
  },
204
- chat(o, s, r, i) {
205
- return a.post(`/${o}/chat/${s}`, r, i);
219
+ newChat(o, i, n) {
220
+ return a.post(`/${o}/chat`, i, n);
206
221
  },
207
- createRating(o, s, r, i) {
208
- return a.post(`/${o}/chat/${s}/ratings`, r, i);
222
+ chat(o, i, n, s) {
223
+ return a.post(`/${o}/chat/${i}`, n, s);
209
224
  },
210
- updateRating(o, s, r, i, c) {
211
- return a.patch(`/${o}/chat/${s}/ratings/${r}`, i, c);
225
+ createRating(o, i, n, s) {
226
+ return a.post(`/${o}/chat/${i}/ratings`, n, s);
212
227
  },
213
- deleteRating(o, s, r, i) {
214
- return a.delete(`/${o}/chat/${s}/ratings/${r}`, i);
228
+ updateRating(o, i, n, s, c) {
229
+ return a.patch(`/${o}/chat/${i}/ratings/${n}`, s, c);
215
230
  },
216
- getSTTToken(o, s) {
217
- return a.get(`/${o}/stt-token`, s);
231
+ deleteRating(o, i, n, s) {
232
+ return a.delete(`/${o}/chat/${i}/ratings/${n}`, s);
233
+ },
234
+ getSTTToken(o, i) {
235
+ return a.get(`/${o}/stt-token`, i);
218
236
  }
219
237
  };
220
238
  }
221
- const le = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type;
222
- function ze(e) {
223
- var o, s, r, i;
224
- const t = () => /Mobi|Android/i.test(navigator.userAgent) ? "Mobile" : "Desktop", n = () => {
239
+ const fe = (e) => e.type === "clip" && e.presenter_id.startsWith("v2_") ? "clip_v2" : e.type;
240
+ function Ne(e) {
241
+ var o, i, n, s;
242
+ const t = () => /Mobi|Android/i.test(navigator.userAgent) ? "Mobile" : "Desktop", r = () => {
225
243
  const c = navigator.platform;
226
244
  return c.toLowerCase().includes("win") ? "Windows" : c.toLowerCase().includes("mac") ? "Mac OS X" : c.toLowerCase().includes("linux") ? "Linux" : "Unknown";
227
245
  }, a = e.presenter;
228
246
  return {
229
- $os: `${n()}`,
247
+ $os: `${r()}`,
230
248
  isMobile: `${t() == "Mobile"}`,
231
249
  browser: navigator.userAgent,
232
250
  origin: window.location.origin,
233
- agentType: le(a),
251
+ agentType: fe(a),
234
252
  agentVoice: {
235
- voiceId: (s = (o = e.presenter) == null ? void 0 : o.voice) == null ? void 0 : s.voice_id,
236
- provider: (i = (r = e.presenter) == null ? void 0 : r.voice) == null ? void 0 : i.type
253
+ voiceId: (i = (o = e.presenter) == null ? void 0 : o.voice) == null ? void 0 : i.voice_id,
254
+ provider: (s = (n = e.presenter) == null ? void 0 : n.voice) == null ? void 0 : s.type
237
255
  }
238
256
  };
239
257
  }
240
- const xe = (e) => e.reduce((t, n) => t + n, 0), Ne = (e) => xe(e) / e.length;
241
- function Fe(e, t, n) {
242
- var c, l, u;
258
+ const Fe = (e) => e.reduce((t, r) => t + r, 0), Je = (e) => Fe(e) / e.length;
259
+ function Ue(e, t, r) {
260
+ var c, l, f;
243
261
  const {
244
262
  event: a,
245
263
  ...o
246
264
  } = e, {
247
- template: s
265
+ template: i
248
266
  } = (t == null ? void 0 : t.llm) || {}, {
249
- language: r
267
+ language: n
250
268
  } = ((c = t == null ? void 0 : t.presenter) == null ? void 0 : c.voice) || {};
251
269
  return {
252
270
  ...o,
253
271
  llm: {
254
272
  ...o.llm,
255
- template: s
273
+ template: i
256
274
  },
257
275
  script: {
258
276
  ...o.script,
259
277
  provider: {
260
278
  ...(l = o == null ? void 0 : o.script) == null ? void 0 : l.provider,
261
- language: r
279
+ language: n
262
280
  }
263
281
  },
264
- stitch: (t == null ? void 0 : t.presenter.type) === "talk" ? (u = t == null ? void 0 : t.presenter) == null ? void 0 : u.stitch : void 0,
265
- ...n
282
+ stitch: (t == null ? void 0 : t.presenter.type) === "talk" ? (f = t == null ? void 0 : t.presenter) == null ? void 0 : f.stitch : void 0,
283
+ ...r
266
284
  };
267
285
  }
268
286
  let V = {};
269
- const Je = "https://api-js.mixpanel.com/track/?verbose=1&ip=1";
270
- function We(e) {
271
- var s, r, i, c, l, u;
272
- const t = window != null && window.hasOwnProperty("DID_AGENTS_API") ? "agents-ui" : "agents-sdk", n = e.agent.presenter, a = (s = e.agent.llm) == null ? void 0 : s.prompt_customization, o = {
287
+ const We = "https://api-js.mixpanel.com/track/?verbose=1&ip=1";
288
+ function He(e) {
289
+ var i, n, s, c, l, f;
290
+ const t = window != null && window.hasOwnProperty("DID_AGENTS_API") ? "agents-ui" : "agents-sdk", r = e.agent.presenter, a = (i = e.agent.llm) == null ? void 0 : i.prompt_customization, o = {
273
291
  token: e.token || "testKey",
274
- distinct_id: e.distinctId || oe(),
292
+ distinct_id: e.distinctId || de(),
275
293
  agentId: e.agent.id,
276
- agentType: le(n),
294
+ agentType: fe(r),
277
295
  owner_id: e.agent.owner_id ?? "",
278
- promptVersion: (r = e.agent.llm) == null ? void 0 : r.prompt_version,
296
+ promptVersion: (n = e.agent.llm) == null ? void 0 : n.prompt_version,
279
297
  behavior: {
280
298
  role: a == null ? void 0 : a.role,
281
299
  personality: a == null ? void 0 : a.personality,
282
- instructions: (i = e.agent.llm) == null ? void 0 : i.instructions
300
+ instructions: (s = e.agent.llm) == null ? void 0 : s.instructions
283
301
  },
284
302
  temperature: (c = e.agent.llm) == null ? void 0 : c.temperature,
285
303
  knowledgeSource: a == null ? void 0 : a.knowledge_source,
286
- starterQuestionsCount: (u = (l = e.agent.knowledge) == null ? void 0 : l.starter_message) == null ? void 0 : u.length,
304
+ starterQuestionsCount: (f = (l = e.agent.knowledge) == null ? void 0 : l.starter_message) == null ? void 0 : f.length,
287
305
  topicsToAvoid: a == null ? void 0 : a.topics_to_avoid,
288
306
  maxResponseLength: a == null ? void 0 : a.max_response_length
289
307
  };
@@ -292,34 +310,34 @@ function We(e) {
292
310
  additionalProperties: {},
293
311
  isEnabled: e.isEnabled ?? !0,
294
312
  getRandom: () => Math.random().toString(16).slice(2),
295
- enrich(f) {
296
- const k = {};
297
- if (f && typeof f != "object")
313
+ enrich(m) {
314
+ const D = {};
315
+ if (m && typeof m != "object")
298
316
  throw new Error("properties must be a flat json object");
299
- for (let y in f)
300
- (typeof f[y] == "string" || typeof f[y] == "number") && (k[y] = f[y]);
317
+ for (let y in m)
318
+ (typeof m[y] == "string" || typeof m[y] == "number") && (D[y] = m[y]);
301
319
  this.additionalProperties = {
302
320
  ...this.additionalProperties,
303
- ...k
321
+ ...D
304
322
  };
305
323
  },
306
- async track(f, k) {
324
+ async track(m, D) {
307
325
  if (!this.isEnabled)
308
326
  return Promise.resolve();
309
327
  const {
310
328
  audioPath: y,
311
- ...C
312
- } = k || {}, S = {
329
+ ...w
330
+ } = D || {}, R = {
313
331
  method: "POST",
314
332
  headers: {
315
333
  "Content-Type": "application/x-www-form-urlencoded"
316
334
  },
317
335
  body: new URLSearchParams({
318
336
  data: JSON.stringify([{
319
- event: f,
337
+ event: m,
320
338
  properties: {
321
339
  ...this.additionalProperties,
322
- ...C,
340
+ ...w,
323
341
  ...o,
324
342
  source: t,
325
343
  time: Date.now(),
@@ -333,32 +351,32 @@ function We(e) {
333
351
  })
334
352
  };
335
353
  try {
336
- return await fetch(Je, S).then((B) => B.json());
337
- } catch (B) {
338
- return console.error(B);
354
+ return await fetch(We, R).then((L) => L.json());
355
+ } catch (L) {
356
+ return console.error(L);
339
357
  }
340
358
  },
341
- linkTrack(f, k, y, C) {
342
- V[f] || (V[f] = {
359
+ linkTrack(m, D, y, w) {
360
+ V[m] || (V[m] = {
343
361
  events: {},
344
362
  resolvedDependencies: []
345
- }), C.includes(y) || C.push(y);
346
- const S = V[f];
347
- if (S.events[y] = {
348
- props: k
349
- }, S.resolvedDependencies.push(y), C.every((M) => S.resolvedDependencies.includes(M))) {
350
- const M = C.reduce((d, w) => S.events[w] ? {
351
- ...d,
352
- ...S.events[w].props
353
- } : d, {});
354
- this.track(f, M), S.resolvedDependencies = S.resolvedDependencies.filter((d) => !C.includes(d)), C.forEach((d) => {
355
- delete S.events[d];
363
+ }), w.includes(y) || w.push(y);
364
+ const R = V[m];
365
+ if (R.events[y] = {
366
+ props: D
367
+ }, R.resolvedDependencies.push(y), w.every((E) => R.resolvedDependencies.includes(E))) {
368
+ const E = w.reduce((P, d) => R.events[d] ? {
369
+ ...P,
370
+ ...R.events[d].props
371
+ } : P, {});
372
+ this.track(m, E), R.resolvedDependencies = R.resolvedDependencies.filter((P) => !w.includes(P)), w.forEach((P) => {
373
+ delete R.events[P];
356
374
  });
357
375
  }
358
376
  }
359
377
  };
360
378
  }
361
- function Ue() {
379
+ function Ke() {
362
380
  let e = 0;
363
381
  return {
364
382
  reset: () => e = 0,
@@ -366,228 +384,233 @@ function Ue() {
366
384
  get: (t = !1) => t ? Date.now() - e : e
367
385
  };
368
386
  }
369
- const x = Ue();
370
- function ue(e) {
387
+ const N = Ke();
388
+ function me(e) {
371
389
  return e === j.Playground ? {
372
390
  headers: {
373
- [je]: "true"
391
+ [be]: "true"
374
392
  }
375
393
  } : {};
376
394
  }
377
- async function fe(e, t, n, a, o = !1, s) {
395
+ async function ge(e, t, r, a, o = !1, i) {
378
396
  try {
379
- return !s && a !== j.DirectPlayback && (s = await t.newChat(e.id, {
397
+ return !i && a !== j.DirectPlayback && (i = await t.newChat(e.id, {
380
398
  persist: o
381
- }, ue(a)), n.track("agent-chat", {
399
+ }, me(a)), r.track("agent-chat", {
382
400
  event: "created",
383
- chat_id: s.id,
401
+ chat_id: i.id,
384
402
  agent_id: e.id,
385
403
  mode: a
386
404
  })), {
387
- chat: s,
388
- chatMode: (s == null ? void 0 : s.chat_mode) ?? a
405
+ chat: i,
406
+ chatMode: (i == null ? void 0 : i.chat_mode) ?? a
389
407
  };
390
- } catch (r) {
408
+ } catch (n) {
391
409
  try {
392
- const i = JSON.parse(r.message);
393
- if ((i == null ? void 0 : i.kind) === "InsufficientCreditsError")
410
+ const s = JSON.parse(n.message);
411
+ if ((s == null ? void 0 : s.kind) === "InsufficientCreditsError")
394
412
  throw new Error("InsufficientCreditsError");
395
- } catch (i) {
396
- console.error("Error parsing the error message:", i);
413
+ } catch (s) {
414
+ console.error("Error parsing the error message:", s);
397
415
  }
398
416
  throw new Error("Cannot create new chat");
399
417
  }
400
418
  }
401
- function He(e) {
419
+ function qe(e) {
402
420
  return e && e.length > 0 ? e : [];
403
421
  }
404
- function Ke(e) {
405
- return new Promise((t, n) => {
422
+ function Xe(e) {
423
+ return new Promise((t, r) => {
406
424
  const {
407
425
  callbacks: a,
408
426
  host: o,
409
- auth: s
427
+ auth: i
410
428
  } = e, {
411
- onMessage: r = null,
412
- onOpen: i = null,
429
+ onMessage: n = null,
430
+ onOpen: s = null,
413
431
  onClose: c = null,
414
432
  onError: l = null
415
- } = a || {}, u = new WebSocket(`${o}?authorization=${ce(s)}`);
416
- u.onmessage = r, u.onclose = c, u.onerror = (f) => {
417
- console.error(f), l == null || l("Websocket failed to connect", f), n(f);
418
- }, u.onopen = (f) => {
419
- i == null || i(f), t(u);
433
+ } = a || {}, f = new WebSocket(`${o}?authorization=${le(i)}`);
434
+ f.onmessage = n, f.onclose = c, f.onerror = (m) => {
435
+ console.error(m), l == null || l("Websocket failed to connect", m), r(m);
436
+ }, f.onopen = (m) => {
437
+ s == null || s(m), t(f);
420
438
  };
421
439
  });
422
440
  }
423
- async function qe(e) {
441
+ async function Ye(e) {
424
442
  const {
425
443
  retries: t = 1
426
444
  } = e;
427
- let n = null;
428
- for (let a = 0; (n == null ? void 0 : n.readyState) !== WebSocket.OPEN; a++)
445
+ let r = null;
446
+ for (let a = 0; (r == null ? void 0 : r.readyState) !== WebSocket.OPEN; a++)
429
447
  try {
430
- n = await Ke(e);
448
+ r = await Xe(e);
431
449
  } catch (o) {
432
450
  if (a === t)
433
451
  throw o;
434
- await se(a * 500);
452
+ await ce(a * 500);
435
453
  }
436
- return n;
454
+ return r;
437
455
  }
438
- async function Xe(e, t, n) {
439
- const a = n != null && n.onMessage ? [n.onMessage] : [], o = await qe({
456
+ async function Qe(e, t, r) {
457
+ const a = r != null && r.onMessage ? [r.onMessage] : [], o = await Ye({
440
458
  auth: e,
441
459
  host: t,
442
460
  callbacks: {
443
- onError: (s) => {
444
- var r;
445
- return (r = n.onError) == null ? void 0 : r.call(n, new ye(s));
461
+ onError: (i) => {
462
+ var n;
463
+ return (n = r.onError) == null ? void 0 : n.call(r, new ke(i));
446
464
  },
447
- onMessage(s) {
448
- const r = JSON.parse(s.data);
449
- a.forEach((i) => i(r.event, r));
465
+ onMessage(i) {
466
+ console.log("onMessage", i);
467
+ const n = JSON.parse(i.data);
468
+ a.forEach((s) => s(n.event, n));
450
469
  }
451
470
  }
452
471
  });
453
472
  return {
454
473
  socket: o,
455
474
  disconnect: () => o.close(),
456
- subscribeToEvents: (s) => a.push(s)
475
+ subscribeToEvents: (i) => a.push(i)
457
476
  };
458
477
  }
459
- function Ye(e) {
478
+ function Ve(e) {
460
479
  if (e.answer !== void 0)
461
480
  return e.answer;
462
- let t = 0, n = "";
481
+ let t = 0, r = "";
463
482
  for (; t in e; )
464
- n += e[t++];
465
- return n;
483
+ r += e[t++];
484
+ return r;
466
485
  }
467
- function Qe(e, t, n, a, o) {
468
- const s = a.messages[a.messages.length - 1];
469
- if (!(e === J.Partial || e === J.Answer) || (s == null ? void 0 : s.role) !== "assistant")
486
+ function Ze(e, t, r, a, o) {
487
+ const i = a.messages[a.messages.length - 1];
488
+ if (!(e === U.Partial || e === U.Answer) || (i == null ? void 0 : i.role) !== "assistant")
470
489
  return;
471
490
  const {
472
- content: r,
473
- sequence: i
491
+ content: n,
492
+ sequence: s
474
493
  } = t;
475
- e === J.Partial ? n[i] = r : n.answer = r;
476
- const c = Ye(n);
477
- (s.content !== c || e === J.Answer) && (s.content = c, o == null || o([...a.messages], e));
494
+ e === U.Partial ? r[s] = n : r.answer = n;
495
+ const c = Ve(r);
496
+ (i.content !== c || e === U.Answer) && (i.content = c, o == null || o([...a.messages], e));
478
497
  }
479
- function Ve(e, t, n, a, o) {
480
- let s = {};
498
+ function Ge(e, t, r, a, o) {
499
+ let i = {};
481
500
  return {
482
- clearQueue: () => s = {},
483
- onMessage: (r, i) => {
501
+ clearQueue: () => i = {},
502
+ onMessage: (n, s) => {
484
503
  var c, l;
485
- if ("content" in i)
486
- Qe(r, i, s, t, n.callbacks.onNewMessage), r === J.Answer && e.track("agent-message-received", {
504
+ if ("content" in s)
505
+ Ze(n, s, i, t, r.callbacks.onNewMessage), n === U.Answer && e.track("agent-message-received", {
487
506
  messages: t.messages.length,
488
507
  mode: t.chatMode
489
508
  });
490
509
  else {
491
- const u = Y, f = [u.StreamVideoDone, u.StreamVideoError, u.StreamVideoRejected], k = [u.StreamFailed, u.StreamVideoError, u.StreamVideoRejected], y = Fe(i, a, {
510
+ const f = Y, m = [f.StreamVideoDone, f.StreamVideoError, f.StreamVideoRejected], D = [f.StreamFailed, f.StreamVideoError, f.StreamVideoRejected], y = Ue(s, a, {
492
511
  mode: t.chatMode
493
512
  });
494
- if (r = r, r === u.StreamVideoCreated)
495
- e.linkTrack("agent-video", y, u.StreamVideoCreated, ["start"]);
496
- else if (f.includes(r)) {
497
- const C = r.split("/")[1];
498
- k.includes(r) ? e.track("agent-video", {
513
+ if (n = n, n === f.StreamVideoCreated)
514
+ e.linkTrack("agent-video", y, f.StreamVideoCreated, ["start"]);
515
+ else if (m.includes(n)) {
516
+ const w = n.split("/")[1];
517
+ D.includes(n) ? e.track("agent-video", {
499
518
  ...y,
500
- event: C
519
+ event: w
501
520
  }) : e.linkTrack("agent-video", {
502
521
  ...y,
503
- event: C
504
- }, r, ["done"]);
522
+ event: w
523
+ }, n, ["done"]);
505
524
  }
506
- k.includes(r) && ((l = (c = n.callbacks).onError) == null || l.call(c, new Error(`Stream failed with event ${r}`), {
507
- data: i
508
- })), i.event === u.StreamDone && o();
525
+ D.includes(n) && ((l = (c = r.callbacks).onError) == null || l.call(c, new Error(`Stream failed with event ${n}`), {
526
+ data: s
527
+ })), s.event === f.StreamDone && o();
509
528
  }
510
529
  }
511
530
  };
512
531
  }
513
- function Ze(e, t, n, a) {
514
- const o = O(e, `${t}/agents/${n}`, a);
532
+ function Oe(e, t, r, a) {
533
+ const o = O(e, `${t}/agents/${r}`, a);
515
534
  return {
516
- createStream(s) {
517
- return o.post("/streams", {
518
- output_resolution: s.output_resolution,
519
- compatibility_mode: s.compatibility_mode,
520
- stream_warmup: s.stream_warmup,
521
- session_timeout: s.session_timeout,
522
- fluent: s.fluent
535
+ createStream(i) {
536
+ return console.log("createClipApi", {
537
+ options: i
538
+ }), o.post("/streams", {
539
+ output_resolution: i.output_resolution,
540
+ compatibility_mode: i.compatibility_mode,
541
+ stream_warmup: i.stream_warmup,
542
+ session_timeout: i.session_timeout,
543
+ fluent: i.fluent,
544
+ conn_id: i.conn_id
523
545
  });
524
546
  },
525
- startConnection(s, r, i) {
526
- return o.post(`/streams/${s}/sdp`, {
527
- session_id: i,
528
- answer: r
547
+ startConnection(i, n, s) {
548
+ return o.post(`/streams/${i}/sdp`, {
549
+ session_id: s,
550
+ answer: n
529
551
  });
530
552
  },
531
- addIceCandidate(s, r, i) {
532
- return o.post(`/streams/${s}/ice`, {
533
- session_id: i,
534
- ...r
553
+ addIceCandidate(i, n, s) {
554
+ return o.post(`/streams/${i}/ice`, {
555
+ session_id: s,
556
+ ...n
535
557
  });
536
558
  },
537
- sendStreamRequest(s, r, i) {
538
- return o.post(`/streams/${s}`, {
539
- session_id: r,
540
- ...i
559
+ sendStreamRequest(i, n, s) {
560
+ return o.post(`/streams/${i}`, {
561
+ session_id: n,
562
+ ...s
541
563
  });
542
564
  },
543
- close(s, r) {
544
- return o.delete(`/streams/${s}`, {
545
- session_id: r
565
+ close(i, n) {
566
+ return o.delete(`/streams/${i}`, {
567
+ session_id: n
546
568
  });
547
569
  }
548
570
  };
549
571
  }
550
- function Ge(e, t, n, a) {
551
- const o = O(e, `${t}/agents/${n}`, a);
572
+ function et(e, t, r, a) {
573
+ const o = O(e, `${t}/agents/${r}`, a);
552
574
  return {
553
- createStream(s, r) {
575
+ createStream(i, n) {
554
576
  return o.post("/streams", {
555
- driver_url: s.driver_url,
556
- face: s.face,
557
- config: s.config,
558
- output_resolution: s.output_resolution,
559
- compatibility_mode: s.compatibility_mode,
560
- stream_warmup: s.stream_warmup,
561
- session_timeout: s.session_timeout,
562
- fluent: s.fluent
563
- }, r);
577
+ driver_url: i.driver_url,
578
+ face: i.face,
579
+ config: i.config,
580
+ output_resolution: i.output_resolution,
581
+ compatibility_mode: i.compatibility_mode,
582
+ stream_warmup: i.stream_warmup,
583
+ session_timeout: i.session_timeout,
584
+ fluent: i.fluent,
585
+ conn_id: i.conn_id
586
+ }, n);
564
587
  },
565
- startConnection(s, r, i, c) {
566
- return o.post(`/streams/${s}/sdp`, {
567
- session_id: i,
568
- answer: r
588
+ startConnection(i, n, s, c) {
589
+ return o.post(`/streams/${i}/sdp`, {
590
+ session_id: s,
591
+ answer: n
569
592
  }, c);
570
593
  },
571
- addIceCandidate(s, r, i, c) {
572
- return o.post(`/streams/${s}/ice`, {
573
- session_id: i,
574
- ...r
594
+ addIceCandidate(i, n, s, c) {
595
+ return o.post(`/streams/${i}/ice`, {
596
+ session_id: s,
597
+ ...n
575
598
  }, c);
576
599
  },
577
- sendStreamRequest(s, r, i, c) {
578
- return o.post(`/streams/${s}`, {
579
- session_id: r,
580
- ...i
600
+ sendStreamRequest(i, n, s, c) {
601
+ return o.post(`/streams/${i}`, {
602
+ session_id: n,
603
+ ...s
581
604
  }, c);
582
605
  },
583
- close(s, r, i) {
584
- return o.delete(`/streams/${s}`, {
585
- session_id: r
586
- }, i);
606
+ close(i, n, s) {
607
+ return o.delete(`/streams/${i}`, {
608
+ session_id: n
609
+ }, s);
587
610
  }
588
611
  };
589
612
  }
590
- function Oe(e, t, n) {
613
+ function tt(e, t, r) {
591
614
  const a = (t.timestamp - e.timestamp) / 1e3;
592
615
  return {
593
616
  duration: a,
@@ -604,13 +627,13 @@ function Oe(e, t, n) {
604
627
  framesPerSecond: t.framesPerSecond,
605
628
  freezeCount: t.freezeCount - e.freezeCount,
606
629
  freezeDuration: t.freezeDuration - e.freezeDuration,
607
- lowFpsCount: n
630
+ lowFpsCount: r
608
631
  };
609
632
  }
610
- function et(e) {
633
+ function nt(e) {
611
634
  return e.filter((t) => t.freezeCount > 0 || t.framesPerSecond < 21 || t.framesDropped > 0 || t.packetsLost > 0).map((t) => {
612
635
  const {
613
- timestamp: n,
636
+ timestamp: r,
614
637
  ...a
615
638
  } = t, o = [];
616
639
  return t.freezeCount > 0 && o.push("freeze"), t.framesPerSecond < 21 && o.push("low fps"), t.framesDropped > 0 && o.push("frames dropped"), t.packetsLost > 0 && o.push("packet loss"), {
@@ -619,109 +642,109 @@ function et(e) {
619
642
  };
620
643
  });
621
644
  }
622
- function tt(e) {
645
+ function rt(e) {
623
646
  let t = "";
624
- for (const n of e.values())
625
- if (n && n.type === "codec" && n.mimeType.startsWith("video") && (t = n.mimeType.split("/")[1]), n && n.type === "inbound-rtp" && n.kind === "video")
647
+ for (const r of e.values())
648
+ if (r && r.type === "codec" && r.mimeType.startsWith("video") && (t = r.mimeType.split("/")[1]), r && r.type === "inbound-rtp" && r.kind === "video")
626
649
  return {
627
650
  codec: t,
628
- timestamp: n.timestamp,
629
- bytesReceived: n.bytesReceived,
630
- packetsReceived: n.packetsReceived,
631
- packetsLost: n.packetsLost,
632
- framesDropped: n.framesDropped,
633
- framesDecoded: n.framesDecoded,
634
- jitter: n.jitter,
635
- jitterBufferDelay: n.jitterBufferDelay,
636
- jitterBufferEmittedCount: n.jitterBufferEmittedCount,
637
- avgJitterDelayInInterval: n.jitterBufferDelay / n.jitterBufferEmittedCount,
638
- frameWidth: n.frameWidth,
639
- frameHeight: n.frameHeight,
640
- framesPerSecond: n.framesPerSecond,
641
- freezeCount: n.freezeCount,
642
- freezeDuration: n.totalFreezesDuration
651
+ timestamp: r.timestamp,
652
+ bytesReceived: r.bytesReceived,
653
+ packetsReceived: r.packetsReceived,
654
+ packetsLost: r.packetsLost,
655
+ framesDropped: r.framesDropped,
656
+ framesDecoded: r.framesDecoded,
657
+ jitter: r.jitter,
658
+ jitterBufferDelay: r.jitterBufferDelay,
659
+ jitterBufferEmittedCount: r.jitterBufferEmittedCount,
660
+ avgJitterDelayInInterval: r.jitterBufferDelay / r.jitterBufferEmittedCount,
661
+ frameWidth: r.frameWidth,
662
+ frameHeight: r.frameHeight,
663
+ framesPerSecond: r.framesPerSecond,
664
+ freezeCount: r.freezeCount,
665
+ freezeDuration: r.totalFreezesDuration
643
666
  };
644
667
  return {};
645
668
  }
646
- function rt(e, t, n) {
647
- const a = e.map((i, c) => c === 0 ? n ? {
648
- timestamp: i.timestamp,
669
+ function at(e, t, r) {
670
+ const a = e.map((s, c) => c === 0 ? r ? {
671
+ timestamp: s.timestamp,
649
672
  duration: 0,
650
- bytesReceived: i.bytesReceived - n.bytesReceived,
651
- bitrate: (i.bytesReceived - n.bytesReceived) * 8 / (t / 1e3),
652
- packetsReceived: i.packetsReceived - n.packetsReceived,
653
- packetsLost: i.packetsLost - n.packetsLost,
654
- framesDropped: i.framesDropped - n.framesDropped,
655
- framesDecoded: i.framesDecoded - n.framesDecoded,
656
- jitter: i.jitter,
657
- jitterBufferDelay: i.jitterBufferDelay - n.jitterBufferDelay,
658
- jitterBufferEmittedCount: i.jitterBufferEmittedCount - n.jitterBufferEmittedCount,
659
- avgJitterDelayInInterval: (i.jitterBufferDelay - n.jitterBufferDelay) / (i.jitterBufferEmittedCount - n.jitterBufferEmittedCount),
660
- framesPerSecond: i.framesPerSecond,
661
- freezeCount: i.freezeCount - n.freezeCount,
662
- freezeDuration: i.freezeDuration - n.freezeDuration
673
+ bytesReceived: s.bytesReceived - r.bytesReceived,
674
+ bitrate: (s.bytesReceived - r.bytesReceived) * 8 / (t / 1e3),
675
+ packetsReceived: s.packetsReceived - r.packetsReceived,
676
+ packetsLost: s.packetsLost - r.packetsLost,
677
+ framesDropped: s.framesDropped - r.framesDropped,
678
+ framesDecoded: s.framesDecoded - r.framesDecoded,
679
+ jitter: s.jitter,
680
+ jitterBufferDelay: s.jitterBufferDelay - r.jitterBufferDelay,
681
+ jitterBufferEmittedCount: s.jitterBufferEmittedCount - r.jitterBufferEmittedCount,
682
+ avgJitterDelayInInterval: (s.jitterBufferDelay - r.jitterBufferDelay) / (s.jitterBufferEmittedCount - r.jitterBufferEmittedCount),
683
+ framesPerSecond: s.framesPerSecond,
684
+ freezeCount: s.freezeCount - r.freezeCount,
685
+ freezeDuration: s.freezeDuration - r.freezeDuration
663
686
  } : {
664
- timestamp: i.timestamp,
687
+ timestamp: s.timestamp,
665
688
  duration: 0,
666
- bytesReceived: i.bytesReceived,
667
- bitrate: i.bytesReceived * 8 / (t / 1e3),
668
- packetsReceived: i.packetsReceived,
669
- packetsLost: i.packetsLost,
670
- framesDropped: i.framesDropped,
671
- framesDecoded: i.framesDecoded,
672
- jitter: i.jitter,
673
- jitterBufferDelay: i.jitterBufferDelay,
674
- jitterBufferEmittedCount: i.jitterBufferEmittedCount,
675
- avgJitterDelayInInterval: i.jitterBufferDelay / i.jitterBufferEmittedCount,
676
- framesPerSecond: i.framesPerSecond,
677
- freezeCount: i.freezeCount,
678
- freezeDuration: i.freezeDuration
689
+ bytesReceived: s.bytesReceived,
690
+ bitrate: s.bytesReceived * 8 / (t / 1e3),
691
+ packetsReceived: s.packetsReceived,
692
+ packetsLost: s.packetsLost,
693
+ framesDropped: s.framesDropped,
694
+ framesDecoded: s.framesDecoded,
695
+ jitter: s.jitter,
696
+ jitterBufferDelay: s.jitterBufferDelay,
697
+ jitterBufferEmittedCount: s.jitterBufferEmittedCount,
698
+ avgJitterDelayInInterval: s.jitterBufferDelay / s.jitterBufferEmittedCount,
699
+ framesPerSecond: s.framesPerSecond,
700
+ freezeCount: s.freezeCount,
701
+ freezeDuration: s.freezeDuration
679
702
  } : {
680
- timestamp: i.timestamp,
703
+ timestamp: s.timestamp,
681
704
  duration: t * c / 1e3,
682
- bytesReceived: i.bytesReceived - e[c - 1].bytesReceived,
683
- bitrate: (i.bytesReceived - e[c - 1].bytesReceived) * 8 / (t / 1e3),
684
- packetsReceived: i.packetsReceived - e[c - 1].packetsReceived,
685
- packetsLost: i.packetsLost - e[c - 1].packetsLost,
686
- framesDropped: i.framesDropped - e[c - 1].framesDropped,
687
- framesDecoded: i.framesDecoded - e[c - 1].framesDecoded,
688
- jitter: i.jitter,
689
- jitterBufferDelay: i.jitterBufferDelay - e[c - 1].jitterBufferDelay,
690
- jitterBufferEmittedCount: i.jitterBufferEmittedCount - e[c - 1].jitterBufferEmittedCount,
691
- avgJitterDelayInInterval: (i.jitterBufferDelay - e[c - 1].jitterBufferDelay) / (i.jitterBufferEmittedCount - e[c - 1].jitterBufferEmittedCount),
692
- framesPerSecond: i.framesPerSecond,
693
- freezeCount: i.freezeCount - e[c - 1].freezeCount,
694
- freezeDuration: i.freezeDuration - e[c - 1].freezeDuration
695
- }), o = et(a), s = o.reduce((i, c) => i + (c.causes.includes("low fps") ? 1 : 0), 0), r = a.map((i) => i.avgJitterDelayInInterval);
705
+ bytesReceived: s.bytesReceived - e[c - 1].bytesReceived,
706
+ bitrate: (s.bytesReceived - e[c - 1].bytesReceived) * 8 / (t / 1e3),
707
+ packetsReceived: s.packetsReceived - e[c - 1].packetsReceived,
708
+ packetsLost: s.packetsLost - e[c - 1].packetsLost,
709
+ framesDropped: s.framesDropped - e[c - 1].framesDropped,
710
+ framesDecoded: s.framesDecoded - e[c - 1].framesDecoded,
711
+ jitter: s.jitter,
712
+ jitterBufferDelay: s.jitterBufferDelay - e[c - 1].jitterBufferDelay,
713
+ jitterBufferEmittedCount: s.jitterBufferEmittedCount - e[c - 1].jitterBufferEmittedCount,
714
+ avgJitterDelayInInterval: (s.jitterBufferDelay - e[c - 1].jitterBufferDelay) / (s.jitterBufferEmittedCount - e[c - 1].jitterBufferEmittedCount),
715
+ framesPerSecond: s.framesPerSecond,
716
+ freezeCount: s.freezeCount - e[c - 1].freezeCount,
717
+ freezeDuration: s.freezeDuration - e[c - 1].freezeDuration
718
+ }), o = nt(a), i = o.reduce((s, c) => s + (c.causes.includes("low fps") ? 1 : 0), 0), n = a.map((s) => s.avgJitterDelayInInterval);
696
719
  return {
697
720
  webRTCStats: {
698
721
  anomalies: o,
699
- aggregateReport: Oe(e[0], e[e.length - 1], s),
700
- minJitterDelayInInterval: Math.min(...r),
701
- maxJitterDelayInInterval: Math.max(...r),
702
- avgJitterDelayInInterval: Ne(r)
722
+ aggregateReport: tt(e[0], e[e.length - 1], i),
723
+ minJitterDelayInInterval: Math.min(...n),
724
+ maxJitterDelayInInterval: Math.max(...n),
725
+ avgJitterDelayInInterval: Je(n)
703
726
  },
704
727
  codec: e[0].codec,
705
728
  resolution: `${e[0].frameWidth}x${e[0].frameHeight}`
706
729
  };
707
730
  }
708
- const G = 100, nt = Math.max(Math.ceil(400 / G), 1), at = 0.25, it = 0.28;
709
- function st() {
710
- let e = 0, t, n, a = 0;
731
+ const G = 100, it = Math.max(Math.ceil(400 / G), 1), st = 0.25, ot = 0.28;
732
+ function ct() {
733
+ let e = 0, t, r, a = 0;
711
734
  return (o) => {
712
- for (const s of o.values())
713
- if (s && s.type === "inbound-rtp" && s.kind === "video") {
714
- const r = s.jitterBufferDelay, i = s.jitterBufferEmittedCount;
715
- if (n && i > n) {
716
- const u = r - t, f = i - n;
717
- a = u / f;
735
+ for (const i of o.values())
736
+ if (i && i.type === "inbound-rtp" && i.kind === "video") {
737
+ const n = i.jitterBufferDelay, s = i.jitterBufferEmittedCount;
738
+ if (r && s > r) {
739
+ const f = n - t, m = s - r;
740
+ a = f / m;
718
741
  }
719
- t = r, n = i;
720
- const c = s.framesDecoded, l = c - e > 0;
742
+ t = n, r = s;
743
+ const c = i.framesDecoded, l = c - e > 0;
721
744
  return e = c, {
722
745
  isReceiving: l,
723
746
  avgJitterDelayInInterval: a,
724
- freezeCount: s.freezeCount
747
+ freezeCount: i.freezeCount
725
748
  };
726
749
  }
727
750
  return {
@@ -730,25 +753,25 @@ function st() {
730
753
  };
731
754
  };
732
755
  }
733
- function ot(e, t, n, a, o, s = !1) {
734
- let r = [], i, c = 0, l = !1, u = W.Unknown, f = W.Unknown, k = 0, y = 0;
735
- const C = st();
756
+ function dt(e, t, r, a, o, i = !1) {
757
+ let n = [], s, c = 0, l = !1, f = W.Unknown, m = W.Unknown, D = 0, y = 0;
758
+ const w = ct();
736
759
  return setInterval(async () => {
737
- const S = await e.getStats(), {
738
- isReceiving: B,
739
- avgJitterDelayInInterval: M,
740
- freezeCount: d
741
- } = C(S), w = tt(S);
742
- if (B)
743
- c = 0, k = d - y, f = M < at ? W.Strong : M > it && k > 1 ? W.Weak : u, f !== u && (o == null || o(f), u = f, y += k, k = 0), l || (a == null || a(v.Start), i = r[r.length - 1], r = [], l = !0), r.push(w);
744
- else if (l && (c++, c >= nt)) {
745
- const h = rt(r, G, i);
746
- a == null || a(v.Stop, h), t() || n(), l = !1;
760
+ const R = await e.getStats(), {
761
+ isReceiving: L,
762
+ avgJitterDelayInInterval: E,
763
+ freezeCount: P
764
+ } = w(R), d = rt(R);
765
+ if (L)
766
+ c = 0, D = P - y, m = E < st ? W.Strong : E > ot && D > 1 ? W.Weak : f, m !== f && (o == null || o(m), f = m, y += D, D = 0), l || (a == null || a(C.Start), s = n[n.length - 1], n = [], l = !0), n.push(d);
767
+ else if (l && (c++, c >= it)) {
768
+ const h = at(n, G, s);
769
+ a == null || a(C.Stop, h), t() || r(), l = !1;
747
770
  }
748
771
  }, G);
749
772
  }
750
- let me = !1;
751
- const z = (e, t) => me && console.log(e, t), ct = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
773
+ let he = !1;
774
+ const x = (e, t) => he && console.log(e, t), lt = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
752
775
  function re(e) {
753
776
  switch (e) {
754
777
  case "connected":
@@ -769,153 +792,154 @@ function re(e) {
769
792
  return I.New;
770
793
  }
771
794
  }
772
- function dt({
795
+ function ut({
773
796
  statsSignal: e,
774
797
  dataChannelSignal: t,
775
- onVideoStateChange: n,
798
+ onVideoStateChange: r,
776
799
  report: a
777
800
  }) {
778
- e === v.Start && t === v.Start ? n == null || n(v.Start) : e === v.Stop && t === v.Stop && (n == null || n(v.Stop, a));
801
+ e === C.Start && t === C.Start ? r == null || r(C.Start) : e === C.Stop && t === C.Stop && (r == null || r(C.Stop, a));
779
802
  }
780
- function lt({
803
+ function ft({
781
804
  statsSignal: e,
782
805
  dataChannelSignal: t,
783
- onVideoStateChange: n,
806
+ onVideoStateChange: r,
784
807
  onAgentActivityStateChange: a,
785
808
  report: o
786
809
  }) {
787
- e === v.Start ? n == null || n(v.Start) : e === v.Stop && (n == null || n(v.Stop, o)), t === v.Start ? a == null || a(K.Talking) : t === v.Stop && (a == null || a(K.Idle));
810
+ e === C.Start ? r == null || r(C.Start) : e === C.Stop && (r == null || r(C.Stop, o)), t === C.Start ? a == null || a(K.Talking) : t === C.Stop && (a == null || a(K.Idle));
788
811
  }
789
- function ne({
812
+ function ae({
790
813
  statsSignal: e,
791
814
  dataChannelSignal: t,
792
- onVideoStateChange: n,
815
+ onVideoStateChange: r,
793
816
  onAgentActivityStateChange: a,
794
817
  streamType: o,
795
- report: s
818
+ report: i
796
819
  }) {
797
- o === N.Legacy ? dt({
820
+ o === F.Legacy ? ut({
798
821
  statsSignal: e,
799
822
  dataChannelSignal: t,
800
- onVideoStateChange: n,
801
- report: s
802
- }) : o === N.Fluent && lt({
823
+ onVideoStateChange: r,
824
+ report: i
825
+ }) : o === F.Fluent && ft({
803
826
  statsSignal: e,
804
827
  dataChannelSignal: t,
805
- onVideoStateChange: n,
828
+ onVideoStateChange: r,
806
829
  onAgentActivityStateChange: a,
807
- report: s
830
+ report: i
808
831
  });
809
832
  }
810
- async function ut(e, t, {
811
- debug: n = !1,
833
+ async function mt(e, t, {
834
+ debug: r = !1,
812
835
  callbacks: a,
813
836
  auth: o,
814
- baseURL: s = q,
815
- analytics: r
837
+ baseURL: i = q,
838
+ analytics: n
816
839
  }) {
817
- me = n;
818
- let i = !1, c = !1, l = v.Stop, u = v.Stop, f = W.Unknown;
840
+ he = r;
841
+ let s = !1, c = !1, l = C.Stop, f = C.Stop, m = W.Unknown;
842
+ console.log("OFEK TEST");
819
843
  const {
820
- startConnection: k,
844
+ startConnection: D,
821
845
  sendStreamRequest: y,
822
- close: C,
823
- createStream: S,
824
- addIceCandidate: B
825
- } = t.videoType === ie.Clip ? Ze(o, s, e, a.onError) : Ge(o, s, e, a.onError), {
826
- id: M,
827
- offer: d,
828
- ice_servers: w,
846
+ close: w,
847
+ createStream: R,
848
+ addIceCandidate: L
849
+ } = t.videoType === oe.Clip ? Oe(o, i, e, a.onError) : et(o, i, e, a.onError), {
850
+ id: E,
851
+ offer: P,
852
+ ice_servers: d,
829
853
  session_id: h,
830
- fluent: b
831
- } = await S(t), g = new ct({
832
- iceServers: w
833
- }), D = g.createDataChannel("JanusDataChannel");
854
+ fluent: k
855
+ } = await R(t), g = new lt({
856
+ iceServers: d
857
+ }), S = g.createDataChannel("JanusDataChannel");
834
858
  if (!h)
835
859
  throw new Error("Could not create session_id");
836
- const _ = b ? N.Fluent : N.Legacy;
837
- r.enrich({
838
- "stream-type": _
860
+ const p = k ? F.Fluent : F.Legacy;
861
+ n.enrich({
862
+ "stream-type": p
839
863
  });
840
- const P = t.stream_warmup && !b, L = () => i, R = () => {
841
- var m;
842
- i = !0, c && ((m = a.onConnectionStateChange) == null || m.call(a, I.Connected));
843
- }, T = ot(g, L, R, (m, p) => ne({
844
- statsSignal: u = m,
845
- dataChannelSignal: _ === N.Legacy ? l : void 0,
864
+ const M = t.stream_warmup && !k, b = () => s, B = () => {
865
+ var u;
866
+ s = !0, c && ((u = a.onConnectionStateChange) == null || u.call(a, I.Connected));
867
+ }, _ = dt(g, b, B, (u, v) => ae({
868
+ statsSignal: f = u,
869
+ dataChannelSignal: p === F.Legacy ? l : void 0,
846
870
  onVideoStateChange: a.onVideoStateChange,
847
871
  onAgentActivityStateChange: a.onAgentActivityStateChange,
848
- report: p,
849
- streamType: _
850
- }), (m) => {
851
- var p;
852
- return (p = a.onConnectivityStateChange) == null ? void 0 : p.call(a, f);
853
- }, P);
854
- g.onicecandidate = (m) => {
855
- var p;
856
- z("peerConnection.onicecandidate", m);
872
+ report: v,
873
+ streamType: p
874
+ }), (u) => {
875
+ var v;
876
+ return (v = a.onConnectivityStateChange) == null ? void 0 : v.call(a, m);
877
+ }, M);
878
+ g.onicecandidate = (u) => {
879
+ var v;
880
+ x("peerConnection.onicecandidate", u);
857
881
  try {
858
- m.candidate && m.candidate.sdpMid && m.candidate.sdpMLineIndex !== null ? B(M, {
859
- candidate: m.candidate.candidate,
860
- sdpMid: m.candidate.sdpMid,
861
- sdpMLineIndex: m.candidate.sdpMLineIndex
862
- }, h) : B(M, {
882
+ u.candidate && u.candidate.sdpMid && u.candidate.sdpMLineIndex !== null ? L(E, {
883
+ candidate: u.candidate.candidate,
884
+ sdpMid: u.candidate.sdpMid,
885
+ sdpMLineIndex: u.candidate.sdpMLineIndex
886
+ }, h) : L(E, {
863
887
  candidate: null
864
888
  }, h);
865
889
  } catch ($) {
866
- (p = a.onError) == null || p.call(a, $, {
867
- streamId: M
890
+ (v = a.onError) == null || v.call(a, $, {
891
+ streamId: E
868
892
  });
869
893
  }
870
- }, D.onopen = () => {
871
- c = !0, (!P || i) && R();
872
- }, D.onmessage = (m) => {
873
- m.data in te && (l = te[m.data], ne({
874
- statsSignal: _ === N.Legacy ? u : void 0,
894
+ }, S.onopen = () => {
895
+ c = !0, (!M || s) && B();
896
+ }, S.onmessage = (u) => {
897
+ u.data in ne && (l = ne[u.data], ae({
898
+ statsSignal: p === F.Legacy ? f : void 0,
875
899
  dataChannelSignal: l,
876
900
  onVideoStateChange: a.onVideoStateChange,
877
901
  onAgentActivityStateChange: a.onAgentActivityStateChange,
878
- streamType: _
902
+ streamType: p
879
903
  }));
880
904
  }, g.oniceconnectionstatechange = () => {
881
- var p;
882
- z("peerConnection.oniceconnectionstatechange => " + g.iceConnectionState);
883
- const m = re(g.iceConnectionState);
884
- m !== I.Connected && ((p = a.onConnectionStateChange) == null || p.call(a, m));
885
- }, g.ontrack = (m) => {
886
- var p;
887
- z("peerConnection.ontrack", m), (p = a.onSrcObjectReady) == null || p.call(a, m.streams[0]);
888
- }, await g.setRemoteDescription(d), z("set remote description OK");
889
- const E = await g.createAnswer();
890
- return z("create answer OK"), await g.setLocalDescription(E), z("set local description OK"), await k(M, E, h), z("start connection OK"), {
905
+ var v;
906
+ x("peerConnection.oniceconnectionstatechange => " + g.iceConnectionState);
907
+ const u = re(g.iceConnectionState);
908
+ u !== I.Connected && ((v = a.onConnectionStateChange) == null || v.call(a, u));
909
+ }, g.ontrack = (u) => {
910
+ var v;
911
+ x("peerConnection.ontrack", u), (v = a.onSrcObjectReady) == null || v.call(a, u.streams[0]);
912
+ }, await g.setRemoteDescription(P), x("set remote description OK");
913
+ const T = await g.createAnswer();
914
+ return x("create answer OK"), await g.setLocalDescription(T), x("set local description OK"), await D(E, T, h), x("start connection OK"), {
891
915
  /**
892
916
  * Method to send request to server to get clip or talk depend on you payload
893
917
  * @param payload
894
918
  */
895
- speak(m) {
896
- return y(M, h, m);
919
+ speak(u) {
920
+ return y(E, h, u);
897
921
  },
898
922
  /**
899
923
  * Method to close RTC connection
900
924
  */
901
925
  async disconnect() {
902
- var m, p, $;
903
- if (M) {
926
+ var u, v, $;
927
+ if (E) {
904
928
  const A = re(g.iceConnectionState);
905
929
  if (g) {
906
930
  if (A === I.New) {
907
- (m = a.onVideoStateChange) == null || m.call(a, v.Stop), clearInterval(T);
931
+ (u = a.onVideoStateChange) == null || u.call(a, C.Stop), clearInterval(_);
908
932
  return;
909
933
  }
910
934
  g.close(), g.oniceconnectionstatechange = null, g.onnegotiationneeded = null, g.onicecandidate = null, g.ontrack = null;
911
935
  }
912
936
  try {
913
- A === I.Connected && await C(M, h).catch((U) => {
937
+ A === I.Connected && await w(E, h).catch((z) => {
914
938
  });
915
- } catch (U) {
916
- z("Error on close stream connection", U);
939
+ } catch (z) {
940
+ x("Error on close stream connection", z);
917
941
  }
918
- (p = a.onVideoStateChange) == null || p.call(a, v.Stop), ($ = a.onAgentActivityStateChange) == null || $.call(a, K.Idle), clearInterval(T);
942
+ (v = a.onVideoStateChange) == null || v.call(a, C.Stop), ($ = a.onAgentActivityStateChange) == null || $.call(a, K.Idle), clearInterval(_);
919
943
  }
920
944
  },
921
945
  /**
@@ -925,230 +949,253 @@ async function ut(e, t, {
925
949
  /**
926
950
  * Id of current RTC stream
927
951
  */
928
- streamId: M,
929
- streamType: _
952
+ streamId: E,
953
+ streamType: p
930
954
  };
931
955
  }
932
- function ft(e, t) {
956
+ function gt(e, t) {
933
957
  const {
934
- streamOptions: n
935
- } = t ?? {};
958
+ streamOptions: r
959
+ } = t ?? {}, o = new URLSearchParams(window.location.search).get("conn_id") || void 0;
936
960
  return {
937
- videoType: Me(e.presenter.type),
938
- output_resolution: n == null ? void 0 : n.outputResolution,
939
- session_timeout: n == null ? void 0 : n.sessionTimeout,
940
- stream_warmup: n == null ? void 0 : n.streamWarmup,
941
- compatibility_mode: n == null ? void 0 : n.compatibilityMode,
942
- fluent: n == null ? void 0 : n.fluent
961
+ videoType: Ie(e.presenter.type),
962
+ output_resolution: r == null ? void 0 : r.outputResolution,
963
+ session_timeout: r == null ? void 0 : r.sessionTimeout,
964
+ stream_warmup: r == null ? void 0 : r.streamWarmup,
965
+ compatibility_mode: r == null ? void 0 : r.compatibilityMode,
966
+ fluent: r == null ? void 0 : r.fluent,
967
+ conn_id: o
943
968
  };
944
969
  }
945
- function ae(e, t, n, a, o) {
946
- x.get() > 0 && (e === v.Start ? a.linkTrack("agent-video", {
970
+ function ie(e, t, r, a, o) {
971
+ N.get() > 0 && (e === C.Start ? a.linkTrack("agent-video", {
947
972
  event: "start",
948
- latency: x.get(!0),
973
+ latency: N.get(!0),
949
974
  "stream-type": o
950
- }, "start", [Y.StreamVideoCreated]) : e === v.Stop && a.linkTrack("agent-video", {
975
+ }, "start", [Y.StreamVideoCreated]) : e === C.Stop && a.linkTrack("agent-video", {
951
976
  event: "stop",
952
977
  is_greenscreen: t.presenter.type === "clip" && t.presenter.is_greenscreen,
953
978
  background: t.presenter.type === "clip" && t.presenter.background,
954
979
  "stream-type": o,
955
- ...n
980
+ ...r
956
981
  }, "done", [Y.StreamVideoDone]));
957
982
  }
958
- function mt(e, t, n) {
959
- return x.reset(), new Promise(async (a, o) => {
983
+ function se(e, t, r) {
984
+ return N.reset(), new Promise(async (a, o) => {
960
985
  try {
961
- const s = await ut(e.id, ft(e, t), {
986
+ const i = await mt(e.id, gt(e, t), {
962
987
  ...t,
963
- analytics: n,
988
+ analytics: r,
964
989
  callbacks: {
965
990
  ...t.callbacks,
966
- onConnectionStateChange: (r) => {
967
- var i, c;
968
- (c = (i = t.callbacks).onConnectionStateChange) == null || c.call(i, r), r === I.Connected && a(s);
991
+ onConnectionStateChange: (n) => {
992
+ var s, c;
993
+ (c = (s = t.callbacks).onConnectionStateChange) == null || c.call(s, n), n === I.Connected && a(i);
969
994
  },
970
- onVideoStateChange: (r, i) => {
995
+ onVideoStateChange: (n, s) => {
971
996
  var c, l;
972
- (l = (c = t.callbacks).onVideoStateChange) == null || l.call(c, r), ae(r, e, i, n, s.streamType);
997
+ (l = (c = t.callbacks).onVideoStateChange) == null || l.call(c, n), ie(n, e, s, r, i.streamType);
973
998
  },
974
- onAgentActivityStateChange: (r) => {
975
- var i, c;
976
- (c = (i = t.callbacks).onAgentActivityStateChange) == null || c.call(i, r), ae(r === K.Talking ? v.Start : v.Stop, e, void 0, n, s.streamType);
999
+ onAgentActivityStateChange: (n) => {
1000
+ var s, c;
1001
+ (c = (s = t.callbacks).onAgentActivityStateChange) == null || c.call(s, n), ie(n === K.Talking ? C.Start : C.Stop, e, void 0, r, i.streamType);
977
1002
  }
978
1003
  }
979
1004
  });
980
- } catch (s) {
981
- o(s);
1005
+ } catch (i) {
1006
+ o(i);
982
1007
  }
983
1008
  });
984
1009
  }
985
- async function gt(e, t, n, a, o) {
986
- var c, l, u, f;
987
- const {
988
- chat: s,
989
- chatMode: r
990
- } = await fe(e, n, a, t.mode, t.persistentChat, o);
991
- if (r && r !== t.mode && (t.mode = r, (l = (c = t.callbacks).onModeChange) == null || l.call(c, r), r === j.TextOnly))
992
- return (f = (u = t.callbacks).onError) == null || f.call(u, new pe(r)), {
993
- chat: s
1010
+ async function ht(e, t, r, a, o) {
1011
+ var l, f, m, D;
1012
+ const i = new URLSearchParams(window.location.search), n = i.get("conn_id") || void 0, s = i.get("external_chat_id") || void 0, c = i.get("external_owner_id") || void 0;
1013
+ if (s && c && n) {
1014
+ console.log("join chat", {
1015
+ connId: n,
1016
+ externalChatId: s,
1017
+ userId: c
1018
+ });
1019
+ const y = await r.joinChat(c, n, s), w = await se(e, t, a);
1020
+ return {
1021
+ chat: y,
1022
+ streamingManager: w
994
1023
  };
995
- const i = await mt(e, t, a);
996
- return {
997
- chat: s,
998
- streamingManager: i
999
- };
1024
+ } else {
1025
+ const {
1026
+ chat: y,
1027
+ chatMode: w
1028
+ } = await ge(e, r, a, t.mode, t.persistentChat, o);
1029
+ if (w && w !== t.mode && (t.mode = w, (f = (l = t.callbacks).onModeChange) == null || f.call(l, w), w === j.TextOnly))
1030
+ return (D = (m = t.callbacks).onError) == null || D.call(m, new ve(w)), {
1031
+ chat: y
1032
+ };
1033
+ const R = await se(e, t, a);
1034
+ return {
1035
+ chat: y,
1036
+ streamingManager: R
1037
+ };
1038
+ }
1000
1039
  }
1001
- async function wt(e, t) {
1002
- var S, B, M;
1003
- let n = !0;
1004
- const a = t.mixpanelKey || Pe, o = t.wsURL || be, s = t.baseURL || q, r = {
1040
+ async function yt(e, t) {
1041
+ var L, E, P;
1042
+ let r = !0;
1043
+ const a = t.mixpanelKey || Le, o = t.wsURL || $e, i = t.baseURL || q, n = {
1005
1044
  messages: [],
1006
1045
  chatMode: t.mode || j.Functional
1007
- }, i = de(t.auth, s, t.callbacks.onError), c = await i.getById(e), l = We({
1046
+ }, s = ue(t.auth, i, t.callbacks.onError), c = await s.getById(e), l = He({
1008
1047
  token: a,
1009
1048
  agent: c,
1010
1049
  isEnabled: t.enableAnalitics,
1011
1050
  distinctId: t.distinctId
1012
1051
  }), {
1013
- onMessage: u,
1014
- clearQueue: f
1015
- } = Ve(l, r, t, c, () => {
1052
+ onMessage: f,
1053
+ clearQueue: m
1054
+ } = Ge(l, n, t, c, () => {
1016
1055
  var d;
1017
- return (d = r.socketManager) == null ? void 0 : d.disconnect();
1056
+ return (d = n.socketManager) == null ? void 0 : d.disconnect();
1018
1057
  });
1019
- r.messages = He(t.initialMessages), (B = (S = t.callbacks).onNewMessage) == null || B.call(S, [...r.messages], "answer"), l.track("agent-sdk", {
1058
+ n.messages = qe(t.initialMessages), (E = (L = t.callbacks).onNewMessage) == null || E.call(L, [...n.messages], "answer");
1059
+ function D() {
1060
+ var S, p, M;
1061
+ const d = (S = n.streamingManager) == null ? void 0 : S.streamId, h = (p = n.chat) == null ? void 0 : p.owner_id, k = (M = n.chat) == null ? void 0 : M.id, g = window.location + `?conn_id=${d}&external_chat_id=${k}&external_owner_id=${h}`;
1062
+ return console.info(g), g;
1063
+ }
1064
+ l.track("agent-sdk", {
1020
1065
  event: "loaded",
1021
- ...ze(c)
1066
+ ...Ne(c)
1022
1067
  });
1023
- async function k(d) {
1024
- var _, P, L, R, T, E, m;
1025
- (P = (_ = t.callbacks).onConnectionStateChange) == null || P.call(_, I.Connecting), x.reset(), d && !n && (delete r.chat, (R = (L = t.callbacks).onNewMessage) == null || R.call(L, [...r.messages], "answer"));
1026
- const w = t.mode === j.DirectPlayback ? Promise.resolve(void 0) : Xe(t.auth, o, {
1027
- onMessage: u,
1068
+ async function y(d) {
1069
+ var M, b, B, _, T, u, v;
1070
+ (b = (M = t.callbacks).onConnectionStateChange) == null || b.call(M, I.Connecting), N.reset(), d && !r && (delete n.chat, (_ = (B = t.callbacks).onNewMessage) == null || _.call(B, [...n.messages], "answer"));
1071
+ const h = t.mode === j.DirectPlayback ? Promise.resolve(void 0) : Qe(t.auth, o, {
1072
+ onMessage: f,
1028
1073
  onError: t.callbacks.onError
1029
- }), h = Z(() => gt(c, t, i, l, r.chat), {
1074
+ }), k = Z(() => ht(c, t, s, l, n.chat), {
1030
1075
  limit: 3,
1031
- timeout: Te,
1076
+ timeout: Pe,
1032
1077
  timeoutErrorMessage: "Timeout initializing the stream",
1033
1078
  // Retry on all errors except for connection errors and rate limit errors, these are already handled in client level.
1034
- shouldRetryFn: (p) => (p == null ? void 0 : p.message) !== "Could not connect" && p.status !== 429,
1079
+ shouldRetryFn: ($) => ($ == null ? void 0 : $.message) !== "Could not connect" && $.status !== 429,
1035
1080
  delayMs: 1e3
1036
- }).catch((p) => {
1037
- var $, A;
1038
- throw C(j.Maintenance), (A = ($ = t.callbacks).onConnectionStateChange) == null || A.call($, I.Fail), p;
1039
- }), [b, {
1040
- streamingManager: g,
1041
- chat: D
1042
- }] = await Promise.all([w, h]);
1043
- D && D.id !== ((T = r.chat) == null ? void 0 : T.id) && ((m = (E = t.callbacks).onNewChat) == null || m.call(E, D.id)), r.streamingManager = g, r.socketManager = b, r.chat = D, n = !1, C((D == null ? void 0 : D.chat_mode) ?? t.mode ?? j.Functional);
1081
+ }).catch(($) => {
1082
+ var A, z;
1083
+ throw R(j.Maintenance), (z = (A = t.callbacks).onConnectionStateChange) == null || z.call(A, I.Fail), $;
1084
+ }), [g, {
1085
+ streamingManager: S,
1086
+ chat: p
1087
+ }] = await Promise.all([h, k]);
1088
+ p && p.id !== ((T = n.chat) == null ? void 0 : T.id) && ((v = (u = t.callbacks).onNewChat) == null || v.call(u, p.id)), n.streamingManager = S, n.socketManager = g, n.chat = p, r = !1, R((p == null ? void 0 : p.chat_mode) ?? t.mode ?? j.Functional);
1044
1089
  }
1045
- async function y() {
1046
- var d, w, h, b;
1047
- (d = r.socketManager) == null || d.disconnect(), await ((w = r.streamingManager) == null ? void 0 : w.disconnect()), delete r.streamingManager, delete r.socketManager, (b = (h = t.callbacks).onConnectionStateChange) == null || b.call(h, I.Disconnected);
1090
+ async function w() {
1091
+ var d, h, k, g;
1092
+ (d = n.socketManager) == null || d.disconnect(), await ((h = n.streamingManager) == null ? void 0 : h.disconnect()), delete n.streamingManager, delete n.socketManager, (g = (k = t.callbacks).onConnectionStateChange) == null || g.call(k, I.Disconnected);
1048
1093
  }
1049
- async function C(d) {
1050
- var w, h;
1051
- d !== r.chatMode && (l.track("agent-mode-change", {
1094
+ async function R(d) {
1095
+ var h, k;
1096
+ d !== n.chatMode && (l.track("agent-mode-change", {
1052
1097
  mode: d
1053
- }), r.chatMode = d, r.chatMode !== j.Functional && await y(), (h = (w = t.callbacks).onModeChange) == null || h.call(w, d));
1098
+ }), n.chatMode = d, n.chatMode !== j.Functional && await w(), (k = (h = t.callbacks).onModeChange) == null || k.call(h, d));
1054
1099
  }
1055
1100
  return {
1056
1101
  agent: c,
1102
+ getInviteLink: D,
1057
1103
  getStreamType: () => {
1058
1104
  var d;
1059
- return (d = r.streamingManager) == null ? void 0 : d.streamType;
1105
+ return (d = n.streamingManager) == null ? void 0 : d.streamType;
1060
1106
  },
1061
- starterMessages: ((M = c.knowledge) == null ? void 0 : M.starter_message) || [],
1062
- getSTTToken: () => i.getSTTToken(c.id),
1063
- changeMode: C,
1107
+ starterMessages: ((P = c.knowledge) == null ? void 0 : P.starter_message) || [],
1108
+ getSTTToken: () => s.getSTTToken(c.id),
1109
+ changeMode: R,
1064
1110
  enrichAnalytics: l.enrich,
1065
1111
  async connect() {
1066
1112
  var d;
1067
- await k(!0), l.track("agent-chat", {
1113
+ await y(!0), l.track("agent-chat", {
1068
1114
  event: "connect",
1069
- chatId: (d = r.chat) == null ? void 0 : d.id,
1115
+ chatId: (d = n.chat) == null ? void 0 : d.id,
1070
1116
  agentId: c.id,
1071
- mode: r.chatMode
1117
+ mode: n.chatMode
1072
1118
  });
1073
1119
  },
1074
1120
  async reconnect() {
1075
1121
  var d;
1076
- await y(), await k(!1), l.track("agent-chat", {
1122
+ await w(), await y(!1), l.track("agent-chat", {
1077
1123
  event: "reconnect",
1078
- chatId: (d = r.chat) == null ? void 0 : d.id,
1124
+ chatId: (d = n.chat) == null ? void 0 : d.id,
1079
1125
  agentId: c.id,
1080
- mode: r.chatMode
1126
+ mode: n.chatMode
1081
1127
  });
1082
1128
  },
1083
1129
  async disconnect() {
1084
1130
  var d;
1085
- await y(), l.track("agent-chat", {
1131
+ await w(), l.track("agent-chat", {
1086
1132
  event: "disconnect",
1087
- chatId: (d = r.chat) == null ? void 0 : d.id,
1133
+ chatId: (d = n.chat) == null ? void 0 : d.id,
1088
1134
  agentId: c.id,
1089
- mode: r.chatMode
1135
+ mode: n.chatMode
1090
1136
  });
1091
1137
  },
1092
1138
  async chat(d) {
1093
- var g, D, _, P, L;
1094
- const w = () => {
1139
+ var S, p, M, b, B;
1140
+ const h = () => {
1095
1141
  if (t.mode === j.DirectPlayback)
1096
- throw new F("Direct playback is enabled, chat is disabled");
1142
+ throw new J("Direct playback is enabled, chat is disabled");
1097
1143
  if (d.length >= 800)
1098
- throw new F("Message cannot be more than 800 characters");
1144
+ throw new J("Message cannot be more than 800 characters");
1099
1145
  if (d.length === 0)
1100
- throw new F("Message cannot be empty");
1101
- if (r.chatMode === j.Maintenance)
1102
- throw new F("Chat is in maintenance mode");
1103
- if (![j.TextOnly, j.Playground].includes(r.chatMode)) {
1104
- if (!r.streamingManager)
1105
- throw new F("Streaming manager is not initialized");
1106
- if (!r.chat)
1107
- throw new F("Chat is not initialized");
1146
+ throw new J("Message cannot be empty");
1147
+ if (n.chatMode === j.Maintenance)
1148
+ throw new J("Chat is in maintenance mode");
1149
+ if (![j.TextOnly, j.Playground].includes(n.chatMode)) {
1150
+ if (!n.streamingManager)
1151
+ throw new J("Streaming manager is not initialized");
1152
+ if (!n.chat)
1153
+ throw new J("Chat is not initialized");
1108
1154
  }
1109
- }, h = async () => {
1110
- var R, T;
1111
- if (!r.chat) {
1112
- const E = await fe(c, i, l, r.chatMode, t.persistentChat);
1113
- if (!E.chat)
1114
- throw new we(r.chatMode, !!t.persistentChat);
1115
- r.chat = E.chat, (T = (R = t.callbacks).onNewChat) == null || T.call(R, r.chat.id);
1155
+ }, k = async () => {
1156
+ var _, T;
1157
+ if (!n.chat) {
1158
+ console.info("create new chat");
1159
+ const u = await ge(c, s, l, n.chatMode, t.persistentChat);
1160
+ if (!u.chat)
1161
+ throw new pe(n.chatMode, !!t.persistentChat);
1162
+ n.chat = u.chat, (T = (_ = t.callbacks).onNewChat) == null || T.call(_, n.chat.id);
1116
1163
  }
1117
- return r.chat.id;
1118
- }, b = async (R, T) => Z(() => {
1119
- var E, m;
1120
- return i.chat(c.id, T, {
1121
- chatMode: r.chatMode,
1122
- streamId: (E = r.streamingManager) == null ? void 0 : E.streamId,
1123
- sessionId: (m = r.streamingManager) == null ? void 0 : m.sessionId,
1124
- messages: R.map(({
1125
- matches: p,
1126
- ...$
1127
- }) => $)
1164
+ return n.chat.id;
1165
+ }, g = async (_, T) => Z(() => {
1166
+ var u, v;
1167
+ return s.chat(c.id, T, {
1168
+ chatMode: n.chatMode,
1169
+ streamId: (u = n.streamingManager) == null ? void 0 : u.streamId,
1170
+ sessionId: (v = n.streamingManager) == null ? void 0 : v.sessionId,
1171
+ messages: _.map(({
1172
+ matches: $,
1173
+ ...A
1174
+ }) => A)
1128
1175
  }, {
1129
- ...ue(r.chatMode),
1176
+ ...me(n.chatMode),
1130
1177
  skipErrorHandler: !0
1131
1178
  });
1132
1179
  }, {
1133
1180
  limit: 2,
1134
- shouldRetryFn: (E) => {
1135
- var $, A, U, ee;
1136
- const m = ($ = E == null ? void 0 : E.message) == null ? void 0 : $.includes("missing or invalid session_id");
1137
- return !((A = E == null ? void 0 : E.message) == null ? void 0 : A.includes("Stream Error")) && !m ? ((ee = (U = t.callbacks).onError) == null || ee.call(U, E), !1) : !0;
1181
+ shouldRetryFn: (u) => {
1182
+ var A, z, ee, te;
1183
+ const v = (A = u == null ? void 0 : u.message) == null ? void 0 : A.includes("missing or invalid session_id");
1184
+ return !((z = u == null ? void 0 : u.message) == null ? void 0 : z.includes("Stream Error")) && !v ? ((te = (ee = t.callbacks).onError) == null || te.call(ee, u), !1) : !0;
1138
1185
  },
1139
1186
  onRetry: async () => {
1140
- await y(), await k(!1);
1187
+ await w(), await y(!1);
1141
1188
  }
1142
1189
  });
1143
1190
  try {
1144
- f(), w(), r.messages.push({
1191
+ m(), h(), n.messages.push({
1145
1192
  id: X(),
1146
1193
  role: "user",
1147
1194
  content: d,
1148
- created_at: new Date(x.update()).toISOString()
1149
- }), (D = (g = t.callbacks).onNewMessage) == null || D.call(g, [...r.messages], "user");
1150
- const R = await h(), T = await b([...r.messages], R);
1151
- return r.messages.push({
1195
+ created_at: new Date(N.update()).toISOString()
1196
+ }), (p = (S = t.callbacks).onNewMessage) == null || p.call(S, [...n.messages], "user");
1197
+ const _ = await k(), T = await g([...n.messages], _);
1198
+ return n.messages.push({
1152
1199
  id: X(),
1153
1200
  role: "assistant",
1154
1201
  content: T.result || "",
@@ -1157,65 +1204,65 @@ async function wt(e, t) {
1157
1204
  matches: T.matches
1158
1205
  }), l.track("agent-message-send", {
1159
1206
  event: "success",
1160
- mode: r.chatMode,
1161
- messages: r.messages.length + 1
1162
- }), T.result && ((P = (_ = t.callbacks).onNewMessage) == null || P.call(_, [...r.messages], "answer"), l.track("agent-message-received", {
1163
- latency: x.get(!0),
1164
- mode: r.chatMode,
1165
- messages: r.messages.length
1207
+ mode: n.chatMode,
1208
+ messages: n.messages.length + 1
1209
+ }), T.result && ((b = (M = t.callbacks).onNewMessage) == null || b.call(M, [...n.messages], "answer"), l.track("agent-message-received", {
1210
+ latency: N.get(!0),
1211
+ mode: n.chatMode,
1212
+ messages: n.messages.length
1166
1213
  })), T;
1167
- } catch (R) {
1168
- throw ((L = r.messages[r.messages.length - 1]) == null ? void 0 : L.role) === "assistant" && r.messages.pop(), l.track("agent-message-send", {
1214
+ } catch (_) {
1215
+ throw ((B = n.messages[n.messages.length - 1]) == null ? void 0 : B.role) === "assistant" && n.messages.pop(), l.track("agent-message-send", {
1169
1216
  event: "error",
1170
- mode: r.chatMode,
1171
- messages: r.messages.length
1172
- }), R;
1217
+ mode: n.chatMode,
1218
+ messages: n.messages.length
1219
+ }), _;
1173
1220
  }
1174
1221
  },
1175
- rate(d, w, h) {
1176
- var D, _, P, L;
1177
- const b = r.messages.find((R) => R.id === d);
1178
- if (r.chat) {
1179
- if (!b)
1222
+ rate(d, h, k) {
1223
+ var p, M, b, B;
1224
+ const g = n.messages.find((_) => _.id === d);
1225
+ if (n.chat) {
1226
+ if (!g)
1180
1227
  throw new Error("Message not found");
1181
1228
  } else
1182
1229
  throw new Error("Chat is not initialized");
1183
- const g = ((D = b.matches) == null ? void 0 : D.map((R) => [R.document_id, R.id])) ?? [];
1230
+ const S = ((p = g.matches) == null ? void 0 : p.map((_) => [_.document_id, _.id])) ?? [];
1184
1231
  return l.track("agent-rate", {
1185
- event: h ? "update" : "create",
1186
- thumb: w === 1 ? "up" : "down",
1187
- knowledge_id: ((_ = c.knowledge) == null ? void 0 : _.id) ?? "",
1188
- mode: r.chatMode,
1189
- matches: g,
1190
- score: w
1191
- }), h ? i.updateRating(c.id, r.chat.id, h, {
1192
- knowledge_id: ((P = c.knowledge) == null ? void 0 : P.id) ?? "",
1232
+ event: k ? "update" : "create",
1233
+ thumb: h === 1 ? "up" : "down",
1234
+ knowledge_id: ((M = c.knowledge) == null ? void 0 : M.id) ?? "",
1235
+ mode: n.chatMode,
1236
+ matches: S,
1237
+ score: h
1238
+ }), k ? s.updateRating(c.id, n.chat.id, k, {
1239
+ knowledge_id: ((b = c.knowledge) == null ? void 0 : b.id) ?? "",
1193
1240
  message_id: d,
1194
- matches: g,
1195
- score: w
1196
- }) : i.createRating(c.id, r.chat.id, {
1197
- knowledge_id: ((L = c.knowledge) == null ? void 0 : L.id) ?? "",
1241
+ matches: S,
1242
+ score: h
1243
+ }) : s.createRating(c.id, n.chat.id, {
1244
+ knowledge_id: ((B = c.knowledge) == null ? void 0 : B.id) ?? "",
1198
1245
  message_id: d,
1199
- matches: g,
1200
- score: w
1246
+ matches: S,
1247
+ score: h
1201
1248
  });
1202
1249
  },
1203
1250
  deleteRate(d) {
1204
- var w;
1205
- if (!r.chat)
1251
+ var h;
1252
+ if (!n.chat)
1206
1253
  throw new Error("Chat is not initialized");
1207
1254
  return l.track("agent-rate-delete", {
1208
1255
  type: "text",
1209
- chat_id: (w = r.chat) == null ? void 0 : w.id,
1256
+ chat_id: (h = n.chat) == null ? void 0 : h.id,
1210
1257
  id: d,
1211
- mode: r.chatMode
1212
- }), i.deleteRating(c.id, r.chat.id, d);
1258
+ mode: n.chatMode
1259
+ }), s.deleteRating(c.id, n.chat.id, d);
1213
1260
  },
1214
1261
  async speak(d) {
1215
- var g, D, _, P;
1216
- if (!r.streamingManager)
1262
+ var S, p, M, b;
1263
+ if (!n.streamingManager)
1217
1264
  throw new Error("Please connect to the agent first");
1218
- function w() {
1265
+ function h() {
1219
1266
  if (typeof d == "string") {
1220
1267
  if (!c.presenter.voice)
1221
1268
  throw new Error("Presenter voice is not initialized");
@@ -1238,58 +1285,58 @@ async function wt(e, t) {
1238
1285
  }
1239
1286
  return d;
1240
1287
  }
1241
- const h = w();
1242
- l.track("agent-speak", h), x.update(), (g = r.chat) != null && g.id && h.type === "text" && (r.messages.push({
1288
+ const k = h();
1289
+ l.track("agent-speak", k), N.update(), (S = n.chat) != null && S.id && k.type === "text" && (n.messages.push({
1243
1290
  id: X(),
1244
1291
  role: "assistant",
1245
- content: h.input,
1246
- created_at: new Date(x.get(!0)).toISOString()
1247
- }), (_ = (D = t.callbacks).onNewMessage) == null || _.call(D, [...r.messages], "answer"));
1248
- const b = Be(r.chatMode);
1249
- return r.chat && b ? {
1292
+ content: k.input,
1293
+ created_at: new Date(N.get(!0)).toISOString()
1294
+ }), (M = (p = t.callbacks).onNewMessage) == null || M.call(p, [...n.messages], "answer"));
1295
+ const g = Be(n.chatMode);
1296
+ return n.chat && g ? {
1250
1297
  duration: 0,
1251
1298
  status: "success"
1252
- } : r.streamingManager.speak({
1253
- script: h,
1299
+ } : n.streamingManager.speak({
1300
+ script: k,
1254
1301
  metadata: {
1255
- chat_id: (P = r.chat) == null ? void 0 : P.id,
1302
+ chat_id: (b = n.chat) == null ? void 0 : b.id,
1256
1303
  agent_id: c.id
1257
1304
  }
1258
1305
  });
1259
1306
  }
1260
1307
  };
1261
1308
  }
1262
- function pt(e, t, n) {
1309
+ function pt(e, t, r) {
1263
1310
  const {
1264
1311
  getById: a
1265
- } = de(t, n || q);
1312
+ } = ue(t, r || q);
1266
1313
  return a(e);
1267
1314
  }
1268
1315
  export {
1269
1316
  K as AgentActivityState,
1270
- Ce as AgentStatus,
1271
- we as ChatCreationFailed,
1317
+ Re as AgentStatus,
1318
+ pe as ChatCreationFailed,
1272
1319
  j as ChatMode,
1273
- pe as ChatModeDowngraded,
1274
- J as ChatProgress,
1320
+ ve as ChatModeDowngraded,
1321
+ U as ChatProgress,
1275
1322
  I as ConnectionState,
1276
1323
  W as ConnectivityState,
1277
- te as DataChannelSignalMap,
1278
- Se as DocumentType,
1279
- Ee as KnowledgeType,
1280
- ke as PlanGroup,
1281
- _e as Providers,
1282
- De as RateState,
1324
+ ne as DataChannelSignalMap,
1325
+ Me as DocumentType,
1326
+ Se as KnowledgeType,
1327
+ De as PlanGroup,
1328
+ Te as Providers,
1329
+ _e as RateState,
1283
1330
  Y as StreamEvents,
1284
- N as StreamType,
1285
- v as StreamingState,
1286
- Re as Subject,
1287
- ve as UserPlan,
1288
- F as ValidationError,
1289
- ie as VideoType,
1290
- Ie as VoiceAccess,
1291
- ye as WsError,
1292
- wt as createAgentManager,
1331
+ F as StreamType,
1332
+ C as StreamingState,
1333
+ Ee as Subject,
1334
+ Ce as UserPlan,
1335
+ J as ValidationError,
1336
+ oe as VideoType,
1337
+ je as VoiceAccess,
1338
+ ke as WsError,
1339
+ yt as createAgentManager,
1293
1340
  pt as getAgent,
1294
- Me as mapVideoType
1341
+ Ie as mapVideoType
1295
1342
  };