@d-id/client-sdk 1.0.19-beta.57 → 1.0.19-beta.59

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,10 +1,10 @@
1
- var j = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(j || {}), z = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(z || {}), P = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(P || {}), I = /* @__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))(I || {}), k = /* @__PURE__ */ ((e) => (e[e.New = 0] = "New", e[e.Fail = 1] = "Fail", e[e.Connected = 2] = "Connected", e[e.Connecting = 3] = "Connecting", e[e.Terminating = 4] = "Terminating", e))(k || {}), B = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(B || {}), F = /* @__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))(F || {}), V = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(V || {}), q = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e))(q || {}), O = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(O || {}), J = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(J || {}), Q = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(Q || {}), X = /* @__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))(X || {}), x = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))(x || {});
2
- const y = "https://api.d-id.com", Y = "wss://notifications.d-id.com", Z = "79f81a83a67430be2bc0fd61042b8faa", N = () => Math.random().toString(16).slice(2);
1
+ var j = /* @__PURE__ */ ((e) => (e.Amazon = "amazon", e.Microsoft = "microsoft", e.Afflorithmics = "afflorithmics", e.Elevenlabs = "elevenlabs", e))(j || {}), z = /* @__PURE__ */ ((e) => (e.Public = "public", e.Premium = "premium", e.Private = "private", e))(z || {}), P = /* @__PURE__ */ ((e) => (e.Start = "START", e.Stop = "STOP", e))(P || {}), I = /* @__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))(I || {}), k = /* @__PURE__ */ ((e) => (e[e.New = 0] = "New", e[e.Fail = 1] = "Fail", e[e.Connected = 2] = "Connected", e[e.Connecting = 3] = "Connecting", e[e.Terminating = 4] = "Terminating", e))(k || {}), B = /* @__PURE__ */ ((e) => (e.TRIAL = "trial", e.BASIC = "basic", e.ENTERPRISE = "enterprise", e.LITE = "lite", e.ADVANCED = "advanced", e))(B || {}), F = /* @__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))(F || {}), V = /* @__PURE__ */ ((e) => (e.Unrated = "Unrated", e.Positive = "Positive", e.Negative = "Negative", e))(V || {}), q = /* @__PURE__ */ ((e) => (e.Functional = "Functional", e.TextOnly = "TextOnly", e.Maintenance = "Maintenance", e))(q || {}), O = /* @__PURE__ */ ((e) => (e.Embed = "embed", e.Query = "query", e.Partial = "partial", e.Answer = "answer", e.Complete = "done", e))(O || {}), J = /* @__PURE__ */ ((e) => (e.KnowledgeProcessing = "knowledge/processing", e.KnowledgeIndexing = "knowledge/indexing", e.KnowledgeFailed = "knowledge/error", e.KnowledgeDone = "knowledge/done", e))(J || {}), Q = /* @__PURE__ */ ((e) => (e.Knowledge = "knowledge", e.Document = "document", e.Record = "record", e))(Q || {}), X = /* @__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))(X || {}), E = /* @__PURE__ */ ((e) => (e.Clip = "clip", e.Talk = "talk", e))(E || {});
2
+ const y = "https://api.d-id.com", Y = "wss://notifications.d-id.com", Z = "79f81a83a67430be2bc0fd61042b8faa", T = () => Math.random().toString(16).slice(2);
3
3
  function D() {
4
4
  let e = window.localStorage.getItem("did_external_key_id");
5
5
  return e || (e = Math.random().toString(16).slice(2), window.localStorage.setItem("did_external_key_id", e)), e;
6
6
  }
7
- let G = N();
7
+ let G = T();
8
8
  function H(e) {
9
9
  if (e.type === "bearer")
10
10
  return `Bearer ${e.token}`;
@@ -355,7 +355,7 @@ async function me(e, {
355
355
  close: o,
356
356
  createStream: v,
357
357
  addIceCandidate: m
358
- } = e.videoType === x.Clip ? se(n, i) : oe(n, i), {
358
+ } = e.videoType === E.Clip ? se(n, i) : oe(n, i), {
359
359
  id: p,
360
360
  offer: L,
361
361
  ice_servers: c,
@@ -378,7 +378,7 @@ async function me(e, {
378
378
  var w;
379
379
  M("peerConnection.oniceconnectionstatechange => " + s.iceConnectionState);
380
380
  const u = ge(s.iceConnectionState);
381
- u === k.Connected ? d = setTimeout(() => {
381
+ e.videoType === E.Talk && u === k.Connected ? d = setTimeout(() => {
382
382
  var _;
383
383
  (_ = t.onConnectionStateChange) == null || _.call(t, k.Connected);
384
384
  }, 5e3) : (clearTimeout(d), (w = t.onConnectionStateChange) == null || w.call(t, u));
@@ -504,12 +504,12 @@ function he(e, a) {
504
504
  return (t = e.knowledge) != null && t.id ? a.getKnowledge(e.knowledge.id).then((n) => (n == null ? void 0 : n.starter_message) || []) : [];
505
505
  }
506
506
  function fe(e) {
507
- return e.presenter.type === x.Clip ? {
508
- videoType: x.Clip,
507
+ return e.presenter.type === E.Clip ? {
508
+ videoType: E.Clip,
509
509
  driver_id: e.presenter.driver_id,
510
510
  presenter_id: e.presenter.presenter_id
511
511
  } : {
512
- videoType: x.Talk,
512
+ videoType: E.Talk,
513
513
  source_url: e.presenter.source_url
514
514
  };
515
515
  }
@@ -545,7 +545,7 @@ function pe(e, a, t, n, r) {
545
545
  function ve(e, a, t) {
546
546
  return W(a, t || y).getById(e);
547
547
  }
548
- function T(e) {
548
+ function b(e) {
549
549
  let a = "";
550
550
  if (e.greetings && e.greetings.length > 0) {
551
551
  const t = Math.floor(Math.random() * e.greetings.length);
@@ -554,7 +554,7 @@ function T(e) {
554
554
  a = `Hi! I'm ${e.preview_name}, welcome to agents. How can I help you?`;
555
555
  return [{
556
556
  content: a,
557
- id: N(),
557
+ id: T(),
558
558
  role: "assistant",
559
559
  created_at: (/* @__PURE__ */ new Date()).toISOString()
560
560
  }];
@@ -564,7 +564,7 @@ async function Se(e, a) {
564
564
  const t = {
565
565
  messages: []
566
566
  }, n = a.wsURL || Y, r = a.baseURL || y, i = a.mixpanelKey || Z, d = W(a.auth, r), h = te(a.auth, r), f = ee(a.auth, r), o = await d.getById(e), v = await he(o, f);
567
- t.messages = T(o), (L = (p = a.callbacks).onNewMessage) == null || L.call(p, t.messages);
567
+ t.messages = b(o), (L = (p = a.callbacks).onNewMessage) == null || L.call(p, t.messages);
568
568
  const m = le({
569
569
  mixPanelKey: i,
570
570
  agent: o,
@@ -582,15 +582,15 @@ async function Se(e, a) {
582
582
  var l, A;
583
583
  if ("content" in R) {
584
584
  const {
585
- content: b
586
- } = R, E = t.messages[t.messages.length - 1];
587
- (E == null ? void 0 : E.role) === "assistant" && (E.content = _ === O.Partial ? E.content + b : b), (A = (l = a.callbacks).onNewMessage) == null || A.call(l, t.messages);
585
+ content: N
586
+ } = R, x = t.messages[t.messages.length - 1];
587
+ (x == null ? void 0 : x.role) === "assistant" && (x.content = _ === O.Partial ? x.content + N : N), (A = (l = a.callbacks).onNewMessage) == null || A.call(l, t.messages);
588
588
  }
589
589
  }), {
590
590
  streamingManager: g,
591
591
  chat: s
592
592
  } = await pe(o, a, d, m, t.chat);
593
- t.messages = T(o), (C = (S = a.callbacks).onNewMessage) == null || C.call(S, t.messages), s != null && s.id && s.id !== (($ = t.chat) == null ? void 0 : $.id) && ((w = (u = a.callbacks).onNewChat) == null || w.call(u, s == null ? void 0 : s.id)), t.streamingManager = g, t.socketManager = c, t.chat = s, m.track("agent-chat", {
593
+ t.messages = b(o), (C = (S = a.callbacks).onNewMessage) == null || C.call(S, t.messages), s != null && s.id && s.id !== (($ = t.chat) == null ? void 0 : $.id) && ((w = (u = a.callbacks).onNewChat) == null || w.call(u, s == null ? void 0 : s.id)), t.streamingManager = g, t.socketManager = c, t.chat = s, m.track("agent-chat", {
594
594
  event: "connect",
595
595
  chatId: s.id,
596
596
  agentId: o.id
@@ -616,7 +616,7 @@ async function Se(e, a) {
616
616
  event: "success",
617
617
  messages: t.messages.length + 1
618
618
  }), t.messages.push({
619
- id: N(),
619
+ id: T(),
620
620
  role: "user",
621
621
  content: c,
622
622
  created_at: (/* @__PURE__ */ new Date()).toISOString()
@@ -628,7 +628,7 @@ async function Se(e, a) {
628
628
  append_chat: g
629
629
  });
630
630
  return t.messages.push({
631
- id: N(),
631
+ id: T(),
632
632
  role: "assistant",
633
633
  content: s.result ?? "",
634
634
  created_at: (/* @__PURE__ */ new Date()).toISOString(),
@@ -1 +1 @@
1
- (function(f,P){typeof exports=="object"&&typeof module<"u"?P(exports):typeof define=="function"&&define.amd?define(["exports"],P):(f=typeof globalThis<"u"?globalThis:f||self,P(f.index={}))})(this,function(f){"use strict";var P=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(P||{}),x=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(x||{}),T=(e=>(e.Start="START",e.Stop="STOP",e))(T||{}),I=(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))(I||{}),k=(e=>(e[e.New=0]="New",e[e.Fail=1]="Fail",e[e.Connected=2]="Connected",e[e.Connecting=3]="Connecting",e[e.Terminating=4]="Terminating",e))(k||{}),D=(e=>(e.TRIAL="trial",e.BASIC="basic",e.ENTERPRISE="enterprise",e.LITE="lite",e.ADVANCED="advanced",e))(D||{}),j=(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))(j||{}),H=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(H||{}),W=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintenance="Maintenance",e))(W||{}),U=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(U||{}),z=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(z||{}),B=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(B||{}),F=(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))(F||{}),b=(e=>(e.Clip="clip",e.Talk="talk",e))(b||{});const M="https://api.d-id.com",Z="wss://notifications.d-id.com",G="79f81a83a67430be2bc0fd61042b8faa",O=()=>Math.random().toString(16).slice(2);function V(){let e=window.localStorage.getItem("did_external_key_id");return e||(e=Math.random().toString(16).slice(2),window.localStorage.setItem("did_external_key_id",e)),e}let ee=O();function q(e){if(e.type==="bearer")return`Bearer ${e.token}`;if(e.type==="basic")return`Basic ${btoa(`${e.username}:${e.password}`)}`;if(e.type==="key")return`Client-Key ${e.clientKey}.${V()}_${ee}`;throw new Error(`Unknown auth type: ${e}`)}function K(e,a=M){const t=async(n,r)=>{const i=await fetch(a+(n!=null&&n.startsWith("/")?n:`/${n}`),{...r,headers:{...r==null?void 0:r.headers,Authorization:q(e),"Content-Type":"application/json"}});if(!i.ok){let d=await i.text().catch(()=>"Failed to fetch");throw new Error(d)}return i.json()};return{get(n,r){return t(n,{...r,method:"GET"})},post(n,r,i){return t(n,{...i,body:JSON.stringify(r),method:"POST"})},delete(n,r,i){return t(n,{...i,body:JSON.stringify(r),method:"DELETE"})},patch(n,r,i){return t(n,{...i,body:JSON.stringify(r),method:"PATCH"})}}}function J(e,a=M){const t=K(e,`${a}/agents`);return{create(n,r){return t.post("/",n,r)},getAgents(n,r){return t.get(`/${n?`?tag=${n}`:""}`,r).then(i=>i??[])},getById(n,r){return t.get(`/${n}`,r)},delete(n,r){return t.delete(`/${n}`,void 0,r)},update(n,r,i){return t.patch(`/${n}`,r,i)},newChat(n,r){return t.post(`/${n}/chat`,void 0,r)},chat(n,r,i,d){return t.post(`/${n}/chat/${r}`,i,d)}}}function te(e,a=M){const t=K(e,`${a}/knowledge`);return{createKnowledge(n,r){return t.post("/",n,r)},getKnowledgeBase(n){return t.get("/",n)},getKnowledge(n,r){return t.get(`/${n}`,r)},deleteKnowledge(n,r){return t.delete(`/${n}`,void 0,r)},createDocument(n,r,i){return t.post(`/${n}/documents`,r,i)},deleteDocument(n,r,i){return t.delete(`/${n}/documents/${r}`,void 0,i)},getDocuments(n,r){return t.get(`/${n}/documents`,r)},getDocument(n,r,i){return t.get(`/${n}/documents/${r}`,i)},getRecords(n,r,i){return t.get(`/${n}/documents/${r}/records`,i)},query(n,r,i){return t.post(`/${n}/query`,{query:r},i)}}}function ne(e,a=M){const t=K(e,`${a}/chats/ratings`);return{create(n,r){return t.post("/",n,r)},getByKnowledge(n,r){return t.get(`/${n}`,r).then(i=>i??[])},update(n,r,i){return t.patch(`/${n}`,r,i)},delete(n,r){return t.delete(`/${n}`,r)}}}const re=e=>new Promise(a=>setTimeout(a,e));function ie(e){return new Promise((a,t)=>{const{callbacks:n,host:r,auth:i}=e,{onMessage:d=null,onOpen:h=null,onClose:p=null,onError:o=null}=n||{},S=new WebSocket(`${r}?authorization=${q(i)}`);S.onmessage=d,S.onclose=p,S.onerror=m=>{console.error(m),o==null||o(m),t(m)},S.onopen=m=>{h==null||h(m),a(S)}})}async function ae(e){const{retries:a=1}=e;let t=null;for(let n=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;n++)try{t=await ie(e)}catch(r){if(n===a)throw r;await re(n*500)}return t}async function se(e,a,t){const n=t?[t]:[],r=await ae({auth:e,host:a,callbacks:{onMessage:i=>{const d=JSON.parse(i.data);n.forEach(h=>h(d.event,d))}}});return{socket:r,disconnect:()=>r.close(),subscribeToEvents:i=>n.push(i)}}function oe(e,a){const t=K(e,a);return{createStream(n){return t.post("/clips/streams",{driver_id:n.driver_id,presenter_id:n.presenter_id,compatibility_mode:n.compatibility_mode})},startConnection(n,r,i){return t.post(`/clips/streams/${n}/sdp`,{session_id:i,answer:r})},addIceCandidate(n,r,i){return t.post(`/clips/streams/${n}/ice`,{session_id:i,...r})},sendStreamRequest(n,r,i){return t.post(`/clips/streams/${n}`,{session_id:r,...i})},close(n,r){return t.delete(`/clips/streams/${n}`,{session_id:r})}}}function de(e,a){const t=K(e,a);return{createStream(n,r){return t.post("/talks/streams",{source_url:n.source_url,driver_url:n.driver_url,face:n.face,config:n.config},r)},startConnection(n,r,i,d){return t.post(`/talks/streams/${n}/sdp`,{session_id:i,answer:r},d)},addIceCandidate(n,r,i,d){return t.post(`/talks/streams/${n}/ice`,{session_id:i,...r},d)},sendStreamRequest(n,r,i,d){return t.post(`/talks/streams/${n}`,{session_id:r,...i},d)},close(n,r,i){return t.delete(`/talks/streams/${n}`,{session_id:r},i)}}}function ce(e,a){return e.map((t,n)=>n===0?a?{index:n,timestamp:t.timestamp,bytesReceived:t.bytesReceived-a.bytesReceived,packetsReceived:t.packetsReceived-a.packetsReceived,packetsLost:t.packetsLost-a.packetsLost,jitter:t.jitter,frameWidth:t.frameWidth,frameHeight:t.frameHeight,framesPerSecond:t.framesPerSecond}:{index:n,timestamp:t.timestamp,bytesReceived:t.bytesReceived,packetsReceived:t.packetsReceived,packetsLost:t.packetsLost,jitter:t.jitter,frameWidth:t.frameWidth,frameHeight:t.frameHeight,framesPerSecond:t.framesPerSecond}:{index:n,timestamp:t.timestamp,bytesReceived:t.bytesReceived-e[n-1].bytesReceived,packetsReceived:t.packetsReceived-e[n-1].packetsReceived,packetsLost:t.packetsLost-e[n-1].packetsLost,jitter:t.jitter,frameWidth:t.frameWidth,frameHeight:t.frameHeight,framesPerSecond:t.framesPerSecond})}let Q=!1;const y=(e,a)=>Q&&console.log(e,a),ge=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ue(e){switch(e){case"connected":return k.Connected;case"checking":return k.Connecting;case"failed":return k.Fail;case"new":case"closed":case"disconnected":default:return k.New}}function me(e,a){let t=[],n=0,r=0,i;return setInterval(()=>{e.getStats().then(h=>{h.forEach(p=>{if(p.type==="inbound-rtp"&&p.kind==="video"){if(r=t.length-1,p&&t[r]){const o=p.bytesReceived,S=t[r].bytesReceived;let m=i;i=o-S>0;let v;if(m!==i){if(i)n=t.length;else{const E=t.slice(n),c=n===0?void 0:t[n-1];v=ce(E,c),v=v.sort((g,s)=>s.packetsLost-g.packetsLost).slice(0,5)}a==null||a(i?T.Start:T.Stop,v)}}t.push(p)}})})},500)}async function le(e,{debug:a=!1,callbacks:t,auth:n,analytics:r,baseURL:i=M}){Q=a;let d;const{startConnection:h,sendStreamRequest:p,close:o,createStream:S,addIceCandidate:m}=e.videoType===b.Clip?oe(n,i):de(n,i),{id:v,offer:E,ice_servers:c,session_id:g}=await S(e),s=new ge({iceServers:c}),C=s.createDataChannel("JanusDataChannel");if(!g)throw new Error("Could not create session_id");const _=me(s,t.onVideoStateChange);s.onicecandidate=u=>{y("peerConnection.onicecandidate",u),u.candidate&&u.candidate.sdpMid&&u.candidate.sdpMLineIndex!==null?m(v,{candidate:u.candidate.candidate,sdpMid:u.candidate.sdpMid,sdpMLineIndex:u.candidate.sdpMLineIndex},g):m(v,{candidate:null},g)},s.oniceconnectionstatechange=()=>{var w;y("peerConnection.oniceconnectionstatechange => "+s.iceConnectionState);const u=ue(s.iceConnectionState);u===k.Connected?d=setTimeout(()=>{var R;(R=t.onConnectionStateChange)==null||R.call(t,k.Connected)},5e3):(clearTimeout(d),(w=t.onConnectionStateChange)==null||w.call(t,u))},s.ontrack=u=>{var w;y("peerConnection.ontrack",u),(w=t.onSrcObjectReady)==null||w.call(t,u.streams[0])},C.onmessage=u=>{var w,R,$;if(C.readyState==="open"){const[l,L]=u.data.split(":");l===I.StreamStarted?r==null||r.track("agent-video",{event:"start",...l}):l===I.StreamDone?r==null||r.track("agent-video",{event:"stop",rtcStats:L??[],...l}):l===I.StreamFailed?((w=t.onVideoStateChange)==null||w.call(t,T.Stop,{event:l,data:L}),clearInterval(_)):l===I.StreamReady?(clearTimeout(d),(R=t.onConnectionStateChange)==null||R.call(t,k.Connected)):l===I.StreamCreated?r==null||r.track("agent-video",{event:"created",...l}):l===I.StreamVideoCreated?r==null||r.track("agent-video",{event:"video-created",...l}):l===I.StreamVideoDone?r==null||r.track("agent-video",{event:"video-done",rtcStats:L??[],...l}):l===I.StreamVideoError?r==null||r.track("agent-video",{event:"video-error",...l}):(l===I.ChatAnswer&&(r==null||r.track("agent-message-recieved ",l)),($=t.onMessage)==null||$.call(t,l,decodeURIComponent(L)))}},await s.setRemoteDescription(E),y("set remote description OK");const A=await s.createAnswer();return y("create answer OK"),await s.setLocalDescription(A),y("set local description OK"),await h(v,A,g),y("start connection OK"),{speak(u){return p(v,g,u)},async disconnect(){var u,w;v&&(s&&(s.close(),s.oniceconnectionstatechange=null,s.onnegotiationneeded=null,s.onicecandidate=null,s.ontrack=null),await o(v,g).catch(R=>{}),(u=t.onConnectionStateChange)==null||u.call(t,k.New),(w=t.onVideoStateChange)==null||w.call(t,T.Stop),clearInterval(_))},sessionId:g,streamId:v}}function we(e){const a={mixPanelKey:e.mixPanelKey||"testKey",distinct_id:e.distinctId||V(),isEnabled:e.isEnabled??!0,agentId:e.agent.id,owner_id:e.agent.owner_id??""};return{...a,getRandom:()=>Math.random().toString(16).slice(2),track(t,n){if(!this.isEnabled)return Promise.reject("MixPanel analytics is disabled on creation");const r={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:t,properties:{...n,...a,time:Date.now(),$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerWidth,"Screen Width":window.screen.width||window.innerHeight,"User Agent":navigator.userAgent}}])})};return fetch("https://api-js.mixpanel.com/track/?verbose=1&ip=1",r).then(i=>i.json()).catch(i=>console.error(i))}}}function fe(e){var n,r;const a=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop";return{$os:`${(()=>{const i=navigator.platform;return i.toLowerCase().includes("win")?"Windows":i.toLowerCase().includes("mac")?"Mac OS X":i.toLowerCase().includes("linux")?"Linux":"Unknown"})()}`,isMobile:`${a()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:e.presenter.type,agentVoice:{voiceId:(n=e.presenter.voice)==null?void 0:n.voice_id,provider:(r=e.presenter.voice)==null?void 0:r.type}}}function he(e,a){var t;return(t=e.knowledge)!=null&&t.id?a.getKnowledge(e.knowledge.id).then(n=>(n==null?void 0:n.starter_message)||[]):[]}function pe(e){return e.presenter.type===b.Clip?{videoType:b.Clip,driver_id:e.presenter.driver_id,presenter_id:e.presenter.presenter_id}:{videoType:b.Talk,source_url:e.presenter.source_url}}function ve(e,a,t,n,r){return new Promise(async(i,d)=>{const h=await le(pe(e),{...a,callbacks:{...a.callbacks,onConnectionStateChange:async p=>{var o,S;if(p===k.Connected)try{r||(r=await t.newChat(e.id),n.track("agent-chat",{event:"created",chat_id:r.id,agent_id:e.id})),i({chat:r,streamingManager:h})}catch(m){console.error(m),d("Cannot create new chat")}else p===k.Fail&&d(new Error("Cannot create connection"));(S=(o=a.callbacks).onConnectionStateChange)==null||S.call(o,p)}}})})}function Se(e,a,t){return J(a,t||M).getById(e)}function X(e){let a="";if(e.greetings&&e.greetings.length>0){const t=Math.floor(Math.random()*e.greetings.length);a=e.greetings[t]}else a=`Hi! I'm ${e.preview_name}, welcome to agents. How can I help you?`;return[{content:a,id:O(),role:"assistant",created_at:new Date().toISOString()}]}async function Ce(e,a){var v,E;const t={messages:[]},n=a.wsURL||Z,r=a.baseURL||M,i=a.mixpanelKey||G,d=J(a.auth,r),h=ne(a.auth,r),p=te(a.auth,r),o=await d.getById(e),S=await he(o,p);t.messages=X(o),(E=(v=a.callbacks).onNewMessage)==null||E.call(v,t.messages);const m=we({mixPanelKey:i,agent:o,...a});return m.track("agent-sdk",{event:"loaded",...fe(o)}),{agent:o,starterMessages:S,async connect(){var C,_,A,u,w;const c=await se(a.auth,n,(R,$)=>{var l,L;if("content"in $){const{content:Y}=$,N=t.messages[t.messages.length-1];(N==null?void 0:N.role)==="assistant"&&(N.content=R===U.Partial?N.content+Y:Y),(L=(l=a.callbacks).onNewMessage)==null||L.call(l,t.messages)}}),{streamingManager:g,chat:s}=await ve(o,a,d,m,t.chat);t.messages=X(o),(_=(C=a.callbacks).onNewMessage)==null||_.call(C,t.messages),s!=null&&s.id&&s.id!==((A=t.chat)==null?void 0:A.id)&&((w=(u=a.callbacks).onNewChat)==null||w.call(u,s==null?void 0:s.id)),t.streamingManager=g,t.socketManager=c,t.chat=s,m.track("agent-chat",{event:"connect",chatId:s.id,agentId:o.id})},async disconnect(){var c,g,s;(c=t.socketManager)==null||c.disconnect(),await((g=t.streamingManager)==null?void 0:g.disconnect()),m.track("agent-chat",{event:"disconnect",chatId:(s=t.chat)==null?void 0:s.id,agentId:o.id})},async chat(c,g=!1){var C,_;if(c.length===0)throw new Error("Message cannot be empty");if(!t.chat)throw new Error("Chat is not initialized");if(!t.streamingManager)throw new Error("Streaming manager is not initialized");m.track("agent-message-send",{event:"success",messages:t.messages.length+1}),t.messages.push({id:O(),role:"user",content:c,created_at:new Date().toISOString()});const s=await d.chat(o.id,t.chat.id,{sessionId:t.streamingManager.sessionId,streamId:t.streamingManager.streamId,messages:t.messages,append_chat:g});return t.messages.push({id:O(),role:"assistant",content:s.result??"",created_at:new Date().toISOString(),matches:s.matches}),(_=(C=a.callbacks).onNewMessage)==null||_.call(C,t.messages),s},rate(c,g,s){var A,u,w,R;const C=t.messages.find($=>$.id===c);if(t.chat){if(!C)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const _=((A=C.matches)==null?void 0:A.map($=>[$.document_id,$.id]))??[];return m.track("agent-rate",{event:s?"update":"create",thumb:g===1?"up":"down",knowledge_id:((u=o.knowledge)==null?void 0:u.id)??"",matches:_,score:g}),s?h.update(s,{agent_id:o.id,knowledge_id:((w=o.knowledge)==null?void 0:w.id)??"",chat_id:t.chat.id,message_id:c,matches:_,score:g}):h.create({agent_id:o.id,knowledge_id:((R=o.knowledge)==null?void 0:R.id)??"",chat_id:t.chat.id,message_id:c,matches:_,score:g})},deleteRate(c){var g;return m.track("agent-rate-delete",{type:"text",chat_id:(g=t.chat)==null?void 0:g.id,id:c}),h.delete(c)},speak(c){if(!t.streamingManager)throw new Error("Streaming manager is not initialized");function g(){if(c.type==="text")return{type:"text",provider:c.provider?c.provider:o.presenter.voice,input:c.input,ssml:c.ssml||!1};if(c.type==="audio")return{type:"audio",audio_url:c.audio_url};throw new Error("Invalid payload")}const s=g();return m.track("agent-speak",s),t.streamingManager.speak({script:s})}}}f.ChatMode=W,f.DocumentType=F,f.KnowledgeType=B,f.PlanGroup=j,f.Providers=P,f.RateState=H,f.Subject=z,f.UserPlan=D,f.VoiceAccess=x,f.createAgentManager=Ce,f.getAgent=Se,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
1
+ (function(f,P){typeof exports=="object"&&typeof module<"u"?P(exports):typeof define=="function"&&define.amd?define(["exports"],P):(f=typeof globalThis<"u"?globalThis:f||self,P(f.index={}))})(this,function(f){"use strict";var P=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(P||{}),x=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(x||{}),b=(e=>(e.Start="START",e.Stop="STOP",e))(b||{}),I=(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))(I||{}),k=(e=>(e[e.New=0]="New",e[e.Fail=1]="Fail",e[e.Connected=2]="Connected",e[e.Connecting=3]="Connecting",e[e.Terminating=4]="Terminating",e))(k||{}),D=(e=>(e.TRIAL="trial",e.BASIC="basic",e.ENTERPRISE="enterprise",e.LITE="lite",e.ADVANCED="advanced",e))(D||{}),j=(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))(j||{}),H=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(H||{}),W=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintenance="Maintenance",e))(W||{}),U=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(U||{}),z=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(z||{}),B=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(B||{}),F=(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))(F||{}),E=(e=>(e.Clip="clip",e.Talk="talk",e))(E||{});const M="https://api.d-id.com",Z="wss://notifications.d-id.com",G="79f81a83a67430be2bc0fd61042b8faa",O=()=>Math.random().toString(16).slice(2);function V(){let e=window.localStorage.getItem("did_external_key_id");return e||(e=Math.random().toString(16).slice(2),window.localStorage.setItem("did_external_key_id",e)),e}let ee=O();function q(e){if(e.type==="bearer")return`Bearer ${e.token}`;if(e.type==="basic")return`Basic ${btoa(`${e.username}:${e.password}`)}`;if(e.type==="key")return`Client-Key ${e.clientKey}.${V()}_${ee}`;throw new Error(`Unknown auth type: ${e}`)}function K(e,a=M){const t=async(n,r)=>{const i=await fetch(a+(n!=null&&n.startsWith("/")?n:`/${n}`),{...r,headers:{...r==null?void 0:r.headers,Authorization:q(e),"Content-Type":"application/json"}});if(!i.ok){let d=await i.text().catch(()=>"Failed to fetch");throw new Error(d)}return i.json()};return{get(n,r){return t(n,{...r,method:"GET"})},post(n,r,i){return t(n,{...i,body:JSON.stringify(r),method:"POST"})},delete(n,r,i){return t(n,{...i,body:JSON.stringify(r),method:"DELETE"})},patch(n,r,i){return t(n,{...i,body:JSON.stringify(r),method:"PATCH"})}}}function J(e,a=M){const t=K(e,`${a}/agents`);return{create(n,r){return t.post("/",n,r)},getAgents(n,r){return t.get(`/${n?`?tag=${n}`:""}`,r).then(i=>i??[])},getById(n,r){return t.get(`/${n}`,r)},delete(n,r){return t.delete(`/${n}`,void 0,r)},update(n,r,i){return t.patch(`/${n}`,r,i)},newChat(n,r){return t.post(`/${n}/chat`,void 0,r)},chat(n,r,i,d){return t.post(`/${n}/chat/${r}`,i,d)}}}function te(e,a=M){const t=K(e,`${a}/knowledge`);return{createKnowledge(n,r){return t.post("/",n,r)},getKnowledgeBase(n){return t.get("/",n)},getKnowledge(n,r){return t.get(`/${n}`,r)},deleteKnowledge(n,r){return t.delete(`/${n}`,void 0,r)},createDocument(n,r,i){return t.post(`/${n}/documents`,r,i)},deleteDocument(n,r,i){return t.delete(`/${n}/documents/${r}`,void 0,i)},getDocuments(n,r){return t.get(`/${n}/documents`,r)},getDocument(n,r,i){return t.get(`/${n}/documents/${r}`,i)},getRecords(n,r,i){return t.get(`/${n}/documents/${r}/records`,i)},query(n,r,i){return t.post(`/${n}/query`,{query:r},i)}}}function ne(e,a=M){const t=K(e,`${a}/chats/ratings`);return{create(n,r){return t.post("/",n,r)},getByKnowledge(n,r){return t.get(`/${n}`,r).then(i=>i??[])},update(n,r,i){return t.patch(`/${n}`,r,i)},delete(n,r){return t.delete(`/${n}`,r)}}}const re=e=>new Promise(a=>setTimeout(a,e));function ie(e){return new Promise((a,t)=>{const{callbacks:n,host:r,auth:i}=e,{onMessage:d=null,onOpen:h=null,onClose:p=null,onError:o=null}=n||{},S=new WebSocket(`${r}?authorization=${q(i)}`);S.onmessage=d,S.onclose=p,S.onerror=m=>{console.error(m),o==null||o(m),t(m)},S.onopen=m=>{h==null||h(m),a(S)}})}async function ae(e){const{retries:a=1}=e;let t=null;for(let n=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;n++)try{t=await ie(e)}catch(r){if(n===a)throw r;await re(n*500)}return t}async function se(e,a,t){const n=t?[t]:[],r=await ae({auth:e,host:a,callbacks:{onMessage:i=>{const d=JSON.parse(i.data);n.forEach(h=>h(d.event,d))}}});return{socket:r,disconnect:()=>r.close(),subscribeToEvents:i=>n.push(i)}}function oe(e,a){const t=K(e,a);return{createStream(n){return t.post("/clips/streams",{driver_id:n.driver_id,presenter_id:n.presenter_id,compatibility_mode:n.compatibility_mode})},startConnection(n,r,i){return t.post(`/clips/streams/${n}/sdp`,{session_id:i,answer:r})},addIceCandidate(n,r,i){return t.post(`/clips/streams/${n}/ice`,{session_id:i,...r})},sendStreamRequest(n,r,i){return t.post(`/clips/streams/${n}`,{session_id:r,...i})},close(n,r){return t.delete(`/clips/streams/${n}`,{session_id:r})}}}function de(e,a){const t=K(e,a);return{createStream(n,r){return t.post("/talks/streams",{source_url:n.source_url,driver_url:n.driver_url,face:n.face,config:n.config},r)},startConnection(n,r,i,d){return t.post(`/talks/streams/${n}/sdp`,{session_id:i,answer:r},d)},addIceCandidate(n,r,i,d){return t.post(`/talks/streams/${n}/ice`,{session_id:i,...r},d)},sendStreamRequest(n,r,i,d){return t.post(`/talks/streams/${n}`,{session_id:r,...i},d)},close(n,r,i){return t.delete(`/talks/streams/${n}`,{session_id:r},i)}}}function ce(e,a){return e.map((t,n)=>n===0?a?{index:n,timestamp:t.timestamp,bytesReceived:t.bytesReceived-a.bytesReceived,packetsReceived:t.packetsReceived-a.packetsReceived,packetsLost:t.packetsLost-a.packetsLost,jitter:t.jitter,frameWidth:t.frameWidth,frameHeight:t.frameHeight,framesPerSecond:t.framesPerSecond}:{index:n,timestamp:t.timestamp,bytesReceived:t.bytesReceived,packetsReceived:t.packetsReceived,packetsLost:t.packetsLost,jitter:t.jitter,frameWidth:t.frameWidth,frameHeight:t.frameHeight,framesPerSecond:t.framesPerSecond}:{index:n,timestamp:t.timestamp,bytesReceived:t.bytesReceived-e[n-1].bytesReceived,packetsReceived:t.packetsReceived-e[n-1].packetsReceived,packetsLost:t.packetsLost-e[n-1].packetsLost,jitter:t.jitter,frameWidth:t.frameWidth,frameHeight:t.frameHeight,framesPerSecond:t.framesPerSecond})}let Q=!1;const y=(e,a)=>Q&&console.log(e,a),ge=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function ue(e){switch(e){case"connected":return k.Connected;case"checking":return k.Connecting;case"failed":return k.Fail;case"new":case"closed":case"disconnected":default:return k.New}}function me(e,a){let t=[],n=0,r=0,i;return setInterval(()=>{e.getStats().then(h=>{h.forEach(p=>{if(p.type==="inbound-rtp"&&p.kind==="video"){if(r=t.length-1,p&&t[r]){const o=p.bytesReceived,S=t[r].bytesReceived;let m=i;i=o-S>0;let v;if(m!==i){if(i)n=t.length;else{const T=t.slice(n),c=n===0?void 0:t[n-1];v=ce(T,c),v=v.sort((g,s)=>s.packetsLost-g.packetsLost).slice(0,5)}a==null||a(i?b.Start:b.Stop,v)}}t.push(p)}})})},500)}async function le(e,{debug:a=!1,callbacks:t,auth:n,analytics:r,baseURL:i=M}){Q=a;let d;const{startConnection:h,sendStreamRequest:p,close:o,createStream:S,addIceCandidate:m}=e.videoType===E.Clip?oe(n,i):de(n,i),{id:v,offer:T,ice_servers:c,session_id:g}=await S(e),s=new ge({iceServers:c}),C=s.createDataChannel("JanusDataChannel");if(!g)throw new Error("Could not create session_id");const _=me(s,t.onVideoStateChange);s.onicecandidate=u=>{y("peerConnection.onicecandidate",u),u.candidate&&u.candidate.sdpMid&&u.candidate.sdpMLineIndex!==null?m(v,{candidate:u.candidate.candidate,sdpMid:u.candidate.sdpMid,sdpMLineIndex:u.candidate.sdpMLineIndex},g):m(v,{candidate:null},g)},s.oniceconnectionstatechange=()=>{var w;y("peerConnection.oniceconnectionstatechange => "+s.iceConnectionState);const u=ue(s.iceConnectionState);e.videoType===E.Talk&&u===k.Connected?d=setTimeout(()=>{var R;(R=t.onConnectionStateChange)==null||R.call(t,k.Connected)},5e3):(clearTimeout(d),(w=t.onConnectionStateChange)==null||w.call(t,u))},s.ontrack=u=>{var w;y("peerConnection.ontrack",u),(w=t.onSrcObjectReady)==null||w.call(t,u.streams[0])},C.onmessage=u=>{var w,R,$;if(C.readyState==="open"){const[l,L]=u.data.split(":");l===I.StreamStarted?r==null||r.track("agent-video",{event:"start",...l}):l===I.StreamDone?r==null||r.track("agent-video",{event:"stop",rtcStats:L??[],...l}):l===I.StreamFailed?((w=t.onVideoStateChange)==null||w.call(t,b.Stop,{event:l,data:L}),clearInterval(_)):l===I.StreamReady?(clearTimeout(d),(R=t.onConnectionStateChange)==null||R.call(t,k.Connected)):l===I.StreamCreated?r==null||r.track("agent-video",{event:"created",...l}):l===I.StreamVideoCreated?r==null||r.track("agent-video",{event:"video-created",...l}):l===I.StreamVideoDone?r==null||r.track("agent-video",{event:"video-done",rtcStats:L??[],...l}):l===I.StreamVideoError?r==null||r.track("agent-video",{event:"video-error",...l}):(l===I.ChatAnswer&&(r==null||r.track("agent-message-recieved ",l)),($=t.onMessage)==null||$.call(t,l,decodeURIComponent(L)))}},await s.setRemoteDescription(T),y("set remote description OK");const A=await s.createAnswer();return y("create answer OK"),await s.setLocalDescription(A),y("set local description OK"),await h(v,A,g),y("start connection OK"),{speak(u){return p(v,g,u)},async disconnect(){var u,w;v&&(s&&(s.close(),s.oniceconnectionstatechange=null,s.onnegotiationneeded=null,s.onicecandidate=null,s.ontrack=null),await o(v,g).catch(R=>{}),(u=t.onConnectionStateChange)==null||u.call(t,k.New),(w=t.onVideoStateChange)==null||w.call(t,b.Stop),clearInterval(_))},sessionId:g,streamId:v}}function we(e){const a={mixPanelKey:e.mixPanelKey||"testKey",distinct_id:e.distinctId||V(),isEnabled:e.isEnabled??!0,agentId:e.agent.id,owner_id:e.agent.owner_id??""};return{...a,getRandom:()=>Math.random().toString(16).slice(2),track(t,n){if(!this.isEnabled)return Promise.reject("MixPanel analytics is disabled on creation");const r={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:t,properties:{...n,...a,time:Date.now(),$insert_id:this.getRandom(),origin:window.location.href,"Screen Height":window.screen.height||window.innerWidth,"Screen Width":window.screen.width||window.innerHeight,"User Agent":navigator.userAgent}}])})};return fetch("https://api-js.mixpanel.com/track/?verbose=1&ip=1",r).then(i=>i.json()).catch(i=>console.error(i))}}}function fe(e){var n,r;const a=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop";return{$os:`${(()=>{const i=navigator.platform;return i.toLowerCase().includes("win")?"Windows":i.toLowerCase().includes("mac")?"Mac OS X":i.toLowerCase().includes("linux")?"Linux":"Unknown"})()}`,isMobile:`${a()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:e.presenter.type,agentVoice:{voiceId:(n=e.presenter.voice)==null?void 0:n.voice_id,provider:(r=e.presenter.voice)==null?void 0:r.type}}}function he(e,a){var t;return(t=e.knowledge)!=null&&t.id?a.getKnowledge(e.knowledge.id).then(n=>(n==null?void 0:n.starter_message)||[]):[]}function pe(e){return e.presenter.type===E.Clip?{videoType:E.Clip,driver_id:e.presenter.driver_id,presenter_id:e.presenter.presenter_id}:{videoType:E.Talk,source_url:e.presenter.source_url}}function ve(e,a,t,n,r){return new Promise(async(i,d)=>{const h=await le(pe(e),{...a,callbacks:{...a.callbacks,onConnectionStateChange:async p=>{var o,S;if(p===k.Connected)try{r||(r=await t.newChat(e.id),n.track("agent-chat",{event:"created",chat_id:r.id,agent_id:e.id})),i({chat:r,streamingManager:h})}catch(m){console.error(m),d("Cannot create new chat")}else p===k.Fail&&d(new Error("Cannot create connection"));(S=(o=a.callbacks).onConnectionStateChange)==null||S.call(o,p)}}})})}function Se(e,a,t){return J(a,t||M).getById(e)}function X(e){let a="";if(e.greetings&&e.greetings.length>0){const t=Math.floor(Math.random()*e.greetings.length);a=e.greetings[t]}else a=`Hi! I'm ${e.preview_name}, welcome to agents. How can I help you?`;return[{content:a,id:O(),role:"assistant",created_at:new Date().toISOString()}]}async function Ce(e,a){var v,T;const t={messages:[]},n=a.wsURL||Z,r=a.baseURL||M,i=a.mixpanelKey||G,d=J(a.auth,r),h=ne(a.auth,r),p=te(a.auth,r),o=await d.getById(e),S=await he(o,p);t.messages=X(o),(T=(v=a.callbacks).onNewMessage)==null||T.call(v,t.messages);const m=we({mixPanelKey:i,agent:o,...a});return m.track("agent-sdk",{event:"loaded",...fe(o)}),{agent:o,starterMessages:S,async connect(){var C,_,A,u,w;const c=await se(a.auth,n,(R,$)=>{var l,L;if("content"in $){const{content:Y}=$,N=t.messages[t.messages.length-1];(N==null?void 0:N.role)==="assistant"&&(N.content=R===U.Partial?N.content+Y:Y),(L=(l=a.callbacks).onNewMessage)==null||L.call(l,t.messages)}}),{streamingManager:g,chat:s}=await ve(o,a,d,m,t.chat);t.messages=X(o),(_=(C=a.callbacks).onNewMessage)==null||_.call(C,t.messages),s!=null&&s.id&&s.id!==((A=t.chat)==null?void 0:A.id)&&((w=(u=a.callbacks).onNewChat)==null||w.call(u,s==null?void 0:s.id)),t.streamingManager=g,t.socketManager=c,t.chat=s,m.track("agent-chat",{event:"connect",chatId:s.id,agentId:o.id})},async disconnect(){var c,g,s;(c=t.socketManager)==null||c.disconnect(),await((g=t.streamingManager)==null?void 0:g.disconnect()),m.track("agent-chat",{event:"disconnect",chatId:(s=t.chat)==null?void 0:s.id,agentId:o.id})},async chat(c,g=!1){var C,_;if(c.length===0)throw new Error("Message cannot be empty");if(!t.chat)throw new Error("Chat is not initialized");if(!t.streamingManager)throw new Error("Streaming manager is not initialized");m.track("agent-message-send",{event:"success",messages:t.messages.length+1}),t.messages.push({id:O(),role:"user",content:c,created_at:new Date().toISOString()});const s=await d.chat(o.id,t.chat.id,{sessionId:t.streamingManager.sessionId,streamId:t.streamingManager.streamId,messages:t.messages,append_chat:g});return t.messages.push({id:O(),role:"assistant",content:s.result??"",created_at:new Date().toISOString(),matches:s.matches}),(_=(C=a.callbacks).onNewMessage)==null||_.call(C,t.messages),s},rate(c,g,s){var A,u,w,R;const C=t.messages.find($=>$.id===c);if(t.chat){if(!C)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const _=((A=C.matches)==null?void 0:A.map($=>[$.document_id,$.id]))??[];return m.track("agent-rate",{event:s?"update":"create",thumb:g===1?"up":"down",knowledge_id:((u=o.knowledge)==null?void 0:u.id)??"",matches:_,score:g}),s?h.update(s,{agent_id:o.id,knowledge_id:((w=o.knowledge)==null?void 0:w.id)??"",chat_id:t.chat.id,message_id:c,matches:_,score:g}):h.create({agent_id:o.id,knowledge_id:((R=o.knowledge)==null?void 0:R.id)??"",chat_id:t.chat.id,message_id:c,matches:_,score:g})},deleteRate(c){var g;return m.track("agent-rate-delete",{type:"text",chat_id:(g=t.chat)==null?void 0:g.id,id:c}),h.delete(c)},speak(c){if(!t.streamingManager)throw new Error("Streaming manager is not initialized");function g(){if(c.type==="text")return{type:"text",provider:c.provider?c.provider:o.presenter.voice,input:c.input,ssml:c.ssml||!1};if(c.type==="audio")return{type:"audio",audio_url:c.audio_url};throw new Error("Invalid payload")}const s=g();return m.track("agent-speak",s),t.streamingManager.speak({script:s})}}}f.ChatMode=W,f.DocumentType=F,f.KnowledgeType=B,f.PlanGroup=j,f.Providers=P,f.RateState=H,f.Subject=z,f.UserPlan=D,f.VoiceAccess=x,f.createAgentManager=Ce,f.getAgent=Se,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@d-id/client-sdk",
3
3
  "private": false,
4
- "version": "1.0.19-beta.57",
4
+ "version": "1.0.19-beta.59",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {
@@ -44,4 +44,4 @@
44
44
  "vite": "^5.1.4",
45
45
  "vite-plugin-dts": "^3.7.3"
46
46
  }
47
- }
47
+ }