@d-id/client-sdk 1.0.19-beta.102 → 1.0.19-beta.104

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
@@ -606,7 +606,7 @@ async function Re(e, s) {
606
606
  chat: c
607
607
  } = await b();
608
608
  r = -1, t.messages.length === 0 && (t.messages = H(l), (y = (h = s.callbacks).onNewMessage) == null || y.call(h, t.messages)), c != null && c.id && c.id !== ((A = t.chat) == null ? void 0 : A.id) && ((C = (R = s.callbacks).onNewChat) == null || C.call(R, c == null ? void 0 : c.id)), t.streamingManager = g, t.socketManager = d, t.chat = c;
609
- const m = ((w = t.chat) == null ? void 0 : w.chatMode) || S.Functional;
609
+ const m = ((w = t.chat) == null ? void 0 : w.chat_mode) || S.Functional;
610
610
  M(m), u.track("agent-chat", {
611
611
  event: "connect",
612
612
  chatId: c.id,
@@ -634,7 +634,7 @@ async function Re(e, s) {
634
634
  streamingManager: d,
635
635
  chat: g
636
636
  } = await b();
637
- t.streamingManager = d, M(t.chat.chatMode || S.Functional), u.track("agent-chat", {
637
+ t.streamingManager = d, M(t.chat.chat_mode || S.Functional), u.track("agent-chat", {
638
638
  event: "reconnect",
639
639
  chatId: g.id,
640
640
  agentId: l.id
@@ -669,7 +669,7 @@ async function Re(e, s) {
669
669
  chat: c
670
670
  } = await b();
671
671
  t.streamingManager = g, t.socketManager = d;
672
- const m = t.chat.chatMode || S.Functional;
672
+ const m = t.chat.chat_mode || S.Functional;
673
673
  M(m), u.track("agent-chat", {
674
674
  event: "reconnect",
675
675
  chatId: c.id,
@@ -1 +1 @@
1
- (function(p,b){typeof exports=="object"&&typeof module<"u"?b(exports):typeof define=="function"&&define.amd?define(["exports"],b):(p=typeof globalThis<"u"?globalThis:p||self,b(p.index={}))})(this,function(p){"use strict";var b=(e=>(e.TRIAL="trial",e.BASIC="basic",e.ENTERPRISE="enterprise",e.LITE="lite",e.ADVANCED="advanced",e))(b||{}),q=(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))(q||{}),X=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(X||{}),I=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintenance="Maintenance",e.Playground="Playground",e))(I||{}),F=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(F||{}),Q=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(Q||{}),Y=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(Y||{}),Z=(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))(Z||{}),S=(e=>(e.Clip="clip",e.Talk="talk",e))(S||{}),N=(e=>(e.Start="START",e.Stop="STOP",e))(N||{}),A=(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))(A||{}),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||{}),G=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(G||{}),ee=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(ee||{});const z="https://api.d-id.com",le="wss://notifications.d-id.com",ge="79f81a83a67430be2bc0fd61042b8faa",B=()=>Math.random().toString(16).slice(2);function te(){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 ue=B();function ne(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}.${te()}_${ue}`;throw new Error(`Unknown auth type: ${e}`)}function j(e,s=z,t){const r=async(a,n)=>{const i=await fetch(s+(a!=null&&a.startsWith("/")?a:`/${a}`),{...n,headers:{...n==null?void 0:n.headers,Authorization:ne(e),"Content-Type":"application/json"}});if(!i.ok){let o=await i.text().catch(()=>"Failed to fetch");throw t&&t(new Error(o),{url:a,options:n,headers:i.headers}),new Error(o)}return i.json()};return{get(a,n){return r(a,{...n,method:"GET"})},post(a,n,i){return r(a,{...i,body:JSON.stringify(n),method:"POST"})},delete(a,n,i){return r(a,{...i,body:JSON.stringify(n),method:"DELETE"})},patch(a,n,i){return r(a,{...i,body:JSON.stringify(n),method:"PATCH"})}}}function re(e,s=z,t){const r=j(e,`${s}/agents`,t);return{create(a,n){return r.post("/",a,n)},getAgents(a,n){return r.get(`/${a?`?tag=${a}`:""}`,n).then(i=>i??[])},getById(a,n){return r.get(`/${a}`,n)},delete(a,n){return r.delete(`/${a}`,void 0,n)},update(a,n,i){return r.patch(`/${a}`,n,i)},newChat(a,n){return r.post(`/${a}/chat`,void 0,n)},chat(a,n,i,o){return r.post(`/${a}/chat/${n}`,i,o)},createRating(a,n,i,o){return r.post(`/${a}/chat/${n}/ratings`,i,o)},updateRating(a,n,i,o,l){return r.patch(`/${a}/chat/${n}/ratings/${i}`,o,l)},deleteRating(a,n,i,o){return r.delete(`/${a}/chat/${n}/ratings/${i}`,o)}}}const me=e=>new Promise(s=>setTimeout(s,e));function he(e){return new Promise((s,t)=>{const{callbacks:r,host:a,auth:n}=e,{onMessage:i=null,onOpen:o=null,onClose:l=null,onError:u=null}=r||{},f=new WebSocket(`${a}?authorization=${ne(n)}`);f.onmessage=i,f.onclose=l,f.onerror=y=>{console.error(y),u==null||u("Websocket failed to connect",y),t(y)},f.onopen=y=>{o==null||o(y),s(f)}})}async function we(e){const{retries:s=1}=e;let t=null;for(let r=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;r++)try{t=await he(e)}catch(a){if(r===s)throw a;await me(r*500)}return t}async function ae(e,s,t){const r=t!=null&&t.onMessage?[t.onMessage]:[],a=await we({auth:e,host:s,callbacks:{onError:t==null?void 0:t.onError,onMessage:n=>{const i=JSON.parse(n.data);r.forEach(o=>o(i.event,i))}}});return{socket:a,disconnect:()=>a.close(),subscribeToEvents:n=>r.push(n)}}const ie="X-Playground-Chat";function fe(e,s,t,r){const a=j(e,`${s}/agents/${t}`,r);return{createStream(n){return a.post("/streams",{driver_id:n.driver_id,presenter_id:n.presenter_id,compatibility_mode:n.compatibility_mode,stream_warmup:n.stream_warmup,type:S.Clip})},startConnection(n,i,o){return a.post(`/streams/${n}/sdp`,{session_id:o,answer:i,type:S.Clip})},addIceCandidate(n,i,o){return a.post(`/streams/${n}/ice`,{session_id:o,...i,type:S.Clip})},sendStreamRequest(n,i,o){return a.post(`/streams/${n}`,{session_id:i,...o,type:S.Clip})},close(n,i){return a.delete(`/streams/${n}`,{session_id:i,type:S.Clip})}}}function pe(e,s,t,r){const a=j(e,`${s}/agents/${t}`,r);return{createStream(n,i){return a.post("/streams",{source_url:n.source_url,driver_url:n.driver_url,face:n.face,config:n.config,compatibility_mode:n.compatibility_mode,stream_warmup:n.stream_warmup,output_resolution:n.output_resolution,type:S.Talk},i)},startConnection(n,i,o,l){return a.post(`/streams/${n}/sdp`,{session_id:o,answer:i,type:S.Talk},l)},addIceCandidate(n,i,o,l){return a.post(`/streams/${n}/ice`,{session_id:o,...i,type:S.Talk},l)},sendStreamRequest(n,i,o,l){return a.post(`/streams/${n}`,{session_id:i,...o,type:S.Talk},l)},close(n,i,o){return a.delete(`/streams/${n}`,{session_id:i,type:S.Talk},o)}}}let se=!1;const P=(e,s)=>se&&console.log(e,s),ye=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function oe(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 ve(){let e=0;return s=>{for(const t of s.values())if(t&&t.type==="inbound-rtp"&&t.kind==="video"){const r=t.bytesReceived,a=r-e>0;return e=r,a}return!1}}function Me(e,s){const r=Math.max(Math.ceil(10),1);let a=0,n=!1;const i=ve();return setInterval(async()=>{const o=await e.getStats();i(o)?(a=0,n||(s==null||s(N.Start),n=!0)):n&&(a++,a>=r&&(s==null||s(N.Stop),n=!1))},100)}async function Ce(e,s,{debug:t=!1,callbacks:r,auth:a,analytics:n,baseURL:i=z}){se=t;let o;const{startConnection:l,sendStreamRequest:u,close:f,createStream:y,addIceCandidate:R}=s.videoType===S.Clip?fe(a,i,e,r.onError):pe(a,i,e,r.onError),{id:C,offer:K,ice_servers:U,session_id:T}=await y(s),v=new ye({iceServers:U}),V=v.createDataChannel("JanusDataChannel");if(!T)throw new Error("Could not create session_id");const d=Me(v,r.onVideoStateChange);v.onicecandidate=c=>{P("peerConnection.onicecandidate",c),c.candidate&&c.candidate.sdpMid&&c.candidate.sdpMLineIndex!==null?R(C,{candidate:c.candidate.candidate,sdpMid:c.candidate.sdpMid,sdpMLineIndex:c.candidate.sdpMLineIndex},T):R(C,{candidate:null},T)},v.oniceconnectionstatechange=()=>{var m;P("peerConnection.oniceconnectionstatechange => "+v.iceConnectionState);const c=oe(v.iceConnectionState);c===k.Connected?o=setTimeout(()=>{var h;(h=r.onConnectionStateChange)==null||h.call(r,k.Connected)},5e3):(clearTimeout(o),(m=r.onConnectionStateChange)==null||m.call(r,c))},v.ontrack=c=>{var m;P("peerConnection.ontrack",c),(m=r.onSrcObjectReady)==null||m.call(r,c.streams[0])},V.onmessage=c=>{var m;if(V.readyState==="open"){const[h,M]=c.data.split(":");h===A.StreamReady&&(clearTimeout(o),(m=r.onConnectionStateChange)==null||m.call(r,k.Connected))}},await v.setRemoteDescription(K),P("set remote description OK");const g=await v.createAnswer();return P("create answer OK"),await v.setLocalDescription(g),P("set local description OK"),await l(C,g,T),P("start connection OK"),{speak(c){return u(C,T,c)},async disconnect(){var c,m,h;if(C){if(v){if(oe(v.iceConnectionState)===k.New){(c=r.onVideoStateChange)==null||c.call(r,N.Stop),clearInterval(d);return}v.close(),v.oniceconnectionstatechange=null,v.onnegotiationneeded=null,v.onicecandidate=null,v.ontrack=null}try{await f(C,T).catch(M=>{})}catch(M){P("Error on close stream connection",M)}(m=r.onConnectionStateChange)==null||m.call(r,k.New),(h=r.onVideoStateChange)==null||h.call(r,N.Stop),clearInterval(d)}},sessionId:T,streamId:C}}let H={};function Se(e){const s=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={token:e.token||"testKey",distinct_id:e.distinctId||te(),isEnabled:e.isEnabled??!0,agentId:e.agent.id,agentType:e.agent.presenter.type,owner_id:e.agent.owner_id??""};return{...t,getRandom:()=>Math.random().toString(16).slice(2),track(r,a){if(!this.isEnabled)return Promise.reject("MixPanel analytics is disabled on creation");const n={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:r,properties:{...a,...t,source:s,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",n).then(i=>i.json()).catch(i=>console.error(i))},linkTrack(r,a,n,i){H[r]||(H[r]={events:{},resolvedDependencies:[]}),i.includes(n)||i.push(n);const o=H[r];if(o.events[n]={props:a},o.resolvedDependencies.push(n),i.every(u=>o.resolvedDependencies.includes(u))){const u=i.reduce((f,y)=>o.events[y]?{...f,...o.events[y].props}:f,{});this.track(r,u),o.resolvedDependencies=o.resolvedDependencies.filter(f=>!i.includes(f)),i.forEach(f=>{delete o.events[f]})}}}}function _e(e){var r,a,n,i,o;const s=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop";return{$os:`${(()=>{const l=navigator.platform;return l.toLowerCase().includes("win")?"Windows":l.toLowerCase().includes("mac")?"Mac OS X":l.toLowerCase().includes("linux")?"Linux":"Unknown"})()}`,isMobile:`${s()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:(r=e.presenter)==null?void 0:r.type,agentVoice:{voiceId:(n=(a=e.presenter)==null?void 0:a.voice)==null?void 0:n.voice_id,provider:(o=(i=e.presenter)==null?void 0:i.voice)==null?void 0:o.type}}}const Ie=1080;let D=0;function ke(e,s){if(e.presenter){if(e.presenter.type===S.Clip)return{videoType:S.Clip,driver_id:e.presenter.driver_id,presenter_id:e.presenter.presenter_id,stream_warmup:!0}}else throw new Error("Presenter is not initialized");const t=s||(e.presenter.stitch?Ie:void 0);return{videoType:S.Talk,source_url:e.presenter.source_url,stream_warmup:!0,...t&&{output_resolution:t}}}function Ae(e,s,t,r,a){return D=0,new Promise(async(n,i)=>{let o=a;const l=await Ce(e.id,ke(e,s.outputResolution),{...s,analytics:r,callbacks:{...s.callbacks,onConnectionStateChange:async u=>{var f,y;if(u===k.Connected){if(!o)try{o=await t.newChat(e.id),r.track("agent-chat",{event:"created",chat_id:o.id,agent_id:e.id}),l&&n({chat:o,streamingManager:l})}catch(R){console.error(R);let C;try{C=JSON.parse(R.message)}catch(K){console.error("Error parsing the error message:",K)}(C==null?void 0:C.kind)==="InsufficientCreditsError"&&i("InsufficientCreditsError"),i("Cannot create new chat")}l&&o&&n({chat:o,streamingManager:l})}else u===k.Fail&&i(new Error("Cannot create connection"));(y=(f=s.callbacks).onConnectionStateChange)==null||y.call(f,u)},onVideoStateChange(u){var f,y;if((y=(f=s.callbacks).onVideoStateChange)==null||y.call(f,u),D>0&&u===N.Start){const R="start";r.linkTrack("agent-video",{event:R,latency:Date.now()-D},R,[A.StreamVideoCreated])}}}}).catch(i)})}function Re(e,s,t){return re(s,t||z).getById(e)}function W(e){let s="";if(e.greetings&&e.greetings.length>0){const t=Math.floor(Math.random()*e.greetings.length);s=e.greetings[t]}else s=`Hi! I'm ${e.preview_name||"My Agent"}. How can I help you?`;return[{content:s,id:B(),role:"assistant",created_at:new Date().toISOString()}]}async function Ee(e,s){var T,v,V;const t={messages:[],chatMode:s.mode||I.Functional};let r=-1;const a=s.wsURL||le,n=s.baseURL||z,i=s.mixpanelKey||ge,o=re(s.auth,n,s.callbacks.onError),l=await o.getById(e);t.messages=W(l),(v=(T=s.callbacks).onNewMessage)==null||v.call(T,t.messages);const u=Se({token:i,agent:l,...s});u.track("agent-sdk",{event:"loaded",..._e(l)});const f={onMessage:(d,g)=>{var c,m,h,M,E,$;if("content"in g){const{content:_}=g,w=t.messages[t.messages.length-1];(w==null?void 0:w.role)==="assistant"&&(r<t.messages.length&&(w.content=d===F.Partial?w.content+_:_),d===F.Answer&&(r=t.messages.length)),d===F.Answer&&u.track("agent-message-received",{messages:t.messages.length}),(m=(c=s.callbacks).onNewMessage)==null||m.call(c,t.messages)}else{if(d=d,d===A.StreamVideoCreated){const{event:_,...w}=g;w.llm={...w.llm,template:(h=l.llm)==null?void 0:h.template},u.linkTrack("agent-video",{...w},A.StreamVideoCreated,["start"])}else if([A.StreamVideoDone,A.StreamVideoError,A.StreamVideoRejected].includes(d)){const _=d.split("/")[1],w={...g,event:_};w.llm={...w.llm,template:(M=l.llm)==null?void 0:M.template},u.track("agent-video",{...w,event:_})}[A.StreamFailed,A.StreamVideoError,A.StreamVideoRejected].includes(d)&&(($=(E=s.callbacks).onError)==null||$.call(E,new Error(`Stream failed with event ${d}`),{data:g}))}}};async function y(){var h,M,E,$,_,w;D=0;const d=await ae(s.auth,a,f),{streamingManager:g,chat:c}=await U();r=-1,t.messages.length===0&&(t.messages=W(l),(M=(h=s.callbacks).onNewMessage)==null||M.call(h,t.messages)),c!=null&&c.id&&c.id!==((E=t.chat)==null?void 0:E.id)&&((_=($=s.callbacks).onNewChat)==null||_.call($,c==null?void 0:c.id)),t.streamingManager=g,t.socketManager=d,t.chat=c;const m=((w=t.chat)==null?void 0:w.chatMode)||I.Functional;C(m),u.track("agent-chat",{event:"connect",chatId:c.id,agentId:l.id})}async function R(){var d,g,c,m,h;(d=t.socketManager)==null||d.disconnect(),await((g=t.streamingManager)==null?void 0:g.disconnect()),delete t.streamingManager,delete t.socketManager,t.messages=W(l),(m=(c=s.callbacks).onNewMessage)==null||m.call(c,t.messages),u.track("agent-chat",{event:"disconnect",chatId:(h=t.chat)==null?void 0:h.id,agentId:l.id})}async function C(d){var g,c;d!==t.chatMode&&(u.track("agent-mode-change",{mode:d}),t.chatMode=d,t.chatMode!==I.Functional&&await R(),(c=(g=s.callbacks).onModeChange)==null||c.call(g,d))}async function K(){if(!t.chat)return y();const{streamingManager:d,chat:g}=await U();t.streamingManager=d,C(t.chat.chatMode||I.Functional),u.track("agent-chat",{event:"reconnect",chatId:g.id,agentId:l.id})}async function U(){let d,g;try{const c=await Ae(l,s,o,u,t.chat);d=c.streamingManager,g=c.chat}catch(c){throw C(I.Maintenance),c}return{streamingManager:d,chat:g}}return{agent:l,starterMessages:((V=l.knowledge)==null?void 0:V.starter_message)||[],connect:y,disconnect:R,changeMode:C,async reconnect(){var h,M;if(!t.chat)return y();(h=t.socketManager)==null||h.disconnect(),await((M=t.streamingManager)==null?void 0:M.disconnect());const d=await ae(s.auth,a,f),{streamingManager:g,chat:c}=await U();t.streamingManager=g,t.socketManager=d;const m=t.chat.chatMode||I.Functional;C(m),u.track("agent-chat",{event:"reconnect",chatId:c.id,agentId:l.id})},async chat(d){var c,m,h,M,E,$,_,w,ce;const g=B();try{if(D=Date.now(),d.length>=800)throw new Error("Message cannot be more than 800 characters");if(d.length===0)throw new Error("Message cannot be empty");if(t.chatMode===I.Maintenance)throw new Error("Chat is in maintenance mode");if(![I.TextOnly,I.Playground].includes(t.chatMode))if(t.streamingManager){if(!t.chat)throw new Error("Chat is not initialized")}else throw new Error("Streaming manager is not initialized");if(t.messages.push({id:B(),role:"user",content:d,created_at:new Date(D).toISOString()}),(m=(c=s.callbacks).onNewMessage)==null||m.call(c,t.messages),!t.chat){const L={};t.chatMode===I.Playground&&(L.headers={[ie]:"true"}),t.chat=await o.newChat(l.id,L)}const x={id:g,role:"assistant",content:"",created_at:new Date().toISOString(),matches:[]};t.messages.push(x);const de=t.messages.slice(0,-1);let O;const J={};t.chatMode===I.Playground&&(J.headers={[ie]:"true"});try{O=await o.chat(l.id,t.chat.id,{sessionId:(h=t.streamingManager)==null?void 0:h.sessionId,streamId:(M=t.streamingManager)==null?void 0:M.streamId,messages:de,chatMode:t.chatMode},J)}catch(L){if((E=L==null?void 0:L.message)!=null&&E.includes("missing or invalid session_id"))console.log("Invalid stream, try reconnect with new stream id"),await K(),O=await o.chat(l.id,t.chat.id,{sessionId:($=t.streamingManager)==null?void 0:$.sessionId,streamId:(_=t.streamingManager)==null?void 0:_.streamId,messages:de,chatMode:t.chatMode},J);else throw L}return u.track("agent-message-send",{event:"success",messages:t.messages.length+1}),x.context=O.context,O.result&&(x.content=O.result,x.matches=O.matches,u.track("agent-message-received",{latency:Date.now()-D,messages:t.messages.length}),(ce=(w=s.callbacks).onNewMessage)==null||ce.call(w,t.messages)),O}catch(x){throw t.messages[t.messages.length-1].id===g&&t.messages.pop(),u.track("agent-message-send",{event:"error",messages:t.messages.length}),x}},rate(d,g,c){var M,E,$,_;const m=t.messages.find(w=>w.id===d);if(t.chat){if(!m)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const h=((M=m.matches)==null?void 0:M.map(w=>[w.document_id,w.id]))??[];return u.track("agent-rate",{event:c?"update":"create",thumb:g===1?"up":"down",knowledge_id:((E=l.knowledge)==null?void 0:E.id)??"",matches:h,score:g}),c?o.updateRating(l.id,t.chat.id,c,{knowledge_id:(($=l.knowledge)==null?void 0:$.id)??"",message_id:d,matches:h,score:g}):o.createRating(l.id,t.chat.id,{knowledge_id:((_=l.knowledge)==null?void 0:_.id)??"",message_id:d,matches:h,score:g})},deleteRate(d){var g;if(!t.chat)throw new Error("Chat is not initialized");return u.track("agent-rate-delete",{type:"text",chat_id:(g=t.chat)==null?void 0:g.id,id:d}),o.deleteRating(l.id,t.chat.id,d)},speak(d){if(!t.streamingManager)throw new Error("Streaming manager is not initialized");function g(){if(l.presenter){if(d.type==="text")return{type:"text",provider:d.provider?d.provider:l.presenter.voice,input:d.input,ssml:d.ssml||!1};if(d.type==="audio")return{type:"audio",audio_url:d.audio_url}}else throw new Error("Presenter is not initialized");throw new Error("Invalid payload")}const c=g();return u.track("agent-speak",c),t.streamingManager.speak({script:c})}}}p.ChatMode=I,p.ChatProgress=F,p.ConnectionState=k,p.DocumentType=Z,p.KnowledgeType=Y,p.PlanGroup=q,p.Providers=G,p.RateState=X,p.StreamEvents=A,p.StreamingState=N,p.Subject=Q,p.UserPlan=b,p.VideoType=S,p.VoiceAccess=ee,p.createAgentManager=Ee,p.getAgent=Re,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
1
+ (function(p,b){typeof exports=="object"&&typeof module<"u"?b(exports):typeof define=="function"&&define.amd?define(["exports"],b):(p=typeof globalThis<"u"?globalThis:p||self,b(p.index={}))})(this,function(p){"use strict";var b=(e=>(e.TRIAL="trial",e.BASIC="basic",e.ENTERPRISE="enterprise",e.LITE="lite",e.ADVANCED="advanced",e))(b||{}),q=(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))(q||{}),X=(e=>(e.Unrated="Unrated",e.Positive="Positive",e.Negative="Negative",e))(X||{}),I=(e=>(e.Functional="Functional",e.TextOnly="TextOnly",e.Maintenance="Maintenance",e.Playground="Playground",e))(I||{}),F=(e=>(e.Embed="embed",e.Query="query",e.Partial="partial",e.Answer="answer",e.Complete="done",e))(F||{}),Q=(e=>(e.KnowledgeProcessing="knowledge/processing",e.KnowledgeIndexing="knowledge/indexing",e.KnowledgeFailed="knowledge/error",e.KnowledgeDone="knowledge/done",e))(Q||{}),Y=(e=>(e.Knowledge="knowledge",e.Document="document",e.Record="record",e))(Y||{}),Z=(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))(Z||{}),S=(e=>(e.Clip="clip",e.Talk="talk",e))(S||{}),N=(e=>(e.Start="START",e.Stop="STOP",e))(N||{}),A=(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))(A||{}),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||{}),G=(e=>(e.Amazon="amazon",e.Microsoft="microsoft",e.Afflorithmics="afflorithmics",e.Elevenlabs="elevenlabs",e))(G||{}),ee=(e=>(e.Public="public",e.Premium="premium",e.Private="private",e))(ee||{});const z="https://api.d-id.com",le="wss://notifications.d-id.com",ge="79f81a83a67430be2bc0fd61042b8faa",B=()=>Math.random().toString(16).slice(2);function te(){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 ue=B();function ne(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}.${te()}_${ue}`;throw new Error(`Unknown auth type: ${e}`)}function j(e,s=z,t){const r=async(a,n)=>{const i=await fetch(s+(a!=null&&a.startsWith("/")?a:`/${a}`),{...n,headers:{...n==null?void 0:n.headers,Authorization:ne(e),"Content-Type":"application/json"}});if(!i.ok){let o=await i.text().catch(()=>"Failed to fetch");throw t&&t(new Error(o),{url:a,options:n,headers:i.headers}),new Error(o)}return i.json()};return{get(a,n){return r(a,{...n,method:"GET"})},post(a,n,i){return r(a,{...i,body:JSON.stringify(n),method:"POST"})},delete(a,n,i){return r(a,{...i,body:JSON.stringify(n),method:"DELETE"})},patch(a,n,i){return r(a,{...i,body:JSON.stringify(n),method:"PATCH"})}}}function re(e,s=z,t){const r=j(e,`${s}/agents`,t);return{create(a,n){return r.post("/",a,n)},getAgents(a,n){return r.get(`/${a?`?tag=${a}`:""}`,n).then(i=>i??[])},getById(a,n){return r.get(`/${a}`,n)},delete(a,n){return r.delete(`/${a}`,void 0,n)},update(a,n,i){return r.patch(`/${a}`,n,i)},newChat(a,n){return r.post(`/${a}/chat`,void 0,n)},chat(a,n,i,o){return r.post(`/${a}/chat/${n}`,i,o)},createRating(a,n,i,o){return r.post(`/${a}/chat/${n}/ratings`,i,o)},updateRating(a,n,i,o,l){return r.patch(`/${a}/chat/${n}/ratings/${i}`,o,l)},deleteRating(a,n,i,o){return r.delete(`/${a}/chat/${n}/ratings/${i}`,o)}}}const me=e=>new Promise(s=>setTimeout(s,e));function he(e){return new Promise((s,t)=>{const{callbacks:r,host:a,auth:n}=e,{onMessage:i=null,onOpen:o=null,onClose:l=null,onError:u=null}=r||{},f=new WebSocket(`${a}?authorization=${ne(n)}`);f.onmessage=i,f.onclose=l,f.onerror=y=>{console.error(y),u==null||u("Websocket failed to connect",y),t(y)},f.onopen=y=>{o==null||o(y),s(f)}})}async function we(e){const{retries:s=1}=e;let t=null;for(let r=0;(t==null?void 0:t.readyState)!==WebSocket.OPEN;r++)try{t=await he(e)}catch(a){if(r===s)throw a;await me(r*500)}return t}async function ae(e,s,t){const r=t!=null&&t.onMessage?[t.onMessage]:[],a=await we({auth:e,host:s,callbacks:{onError:t==null?void 0:t.onError,onMessage:n=>{const i=JSON.parse(n.data);r.forEach(o=>o(i.event,i))}}});return{socket:a,disconnect:()=>a.close(),subscribeToEvents:n=>r.push(n)}}const ie="X-Playground-Chat";function fe(e,s,t,r){const a=j(e,`${s}/agents/${t}`,r);return{createStream(n){return a.post("/streams",{driver_id:n.driver_id,presenter_id:n.presenter_id,compatibility_mode:n.compatibility_mode,stream_warmup:n.stream_warmup,type:S.Clip})},startConnection(n,i,o){return a.post(`/streams/${n}/sdp`,{session_id:o,answer:i,type:S.Clip})},addIceCandidate(n,i,o){return a.post(`/streams/${n}/ice`,{session_id:o,...i,type:S.Clip})},sendStreamRequest(n,i,o){return a.post(`/streams/${n}`,{session_id:i,...o,type:S.Clip})},close(n,i){return a.delete(`/streams/${n}`,{session_id:i,type:S.Clip})}}}function pe(e,s,t,r){const a=j(e,`${s}/agents/${t}`,r);return{createStream(n,i){return a.post("/streams",{source_url:n.source_url,driver_url:n.driver_url,face:n.face,config:n.config,compatibility_mode:n.compatibility_mode,stream_warmup:n.stream_warmup,output_resolution:n.output_resolution,type:S.Talk},i)},startConnection(n,i,o,l){return a.post(`/streams/${n}/sdp`,{session_id:o,answer:i,type:S.Talk},l)},addIceCandidate(n,i,o,l){return a.post(`/streams/${n}/ice`,{session_id:o,...i,type:S.Talk},l)},sendStreamRequest(n,i,o,l){return a.post(`/streams/${n}`,{session_id:i,...o,type:S.Talk},l)},close(n,i,o){return a.delete(`/streams/${n}`,{session_id:i,type:S.Talk},o)}}}let se=!1;const P=(e,s)=>se&&console.log(e,s),ye=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);function oe(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 ve(){let e=0;return s=>{for(const t of s.values())if(t&&t.type==="inbound-rtp"&&t.kind==="video"){const r=t.bytesReceived,a=r-e>0;return e=r,a}return!1}}function Me(e,s){const r=Math.max(Math.ceil(10),1);let a=0,n=!1;const i=ve();return setInterval(async()=>{const o=await e.getStats();i(o)?(a=0,n||(s==null||s(N.Start),n=!0)):n&&(a++,a>=r&&(s==null||s(N.Stop),n=!1))},100)}async function Ce(e,s,{debug:t=!1,callbacks:r,auth:a,analytics:n,baseURL:i=z}){se=t;let o;const{startConnection:l,sendStreamRequest:u,close:f,createStream:y,addIceCandidate:R}=s.videoType===S.Clip?fe(a,i,e,r.onError):pe(a,i,e,r.onError),{id:C,offer:K,ice_servers:U,session_id:T}=await y(s),v=new ye({iceServers:U}),V=v.createDataChannel("JanusDataChannel");if(!T)throw new Error("Could not create session_id");const d=Me(v,r.onVideoStateChange);v.onicecandidate=c=>{P("peerConnection.onicecandidate",c),c.candidate&&c.candidate.sdpMid&&c.candidate.sdpMLineIndex!==null?R(C,{candidate:c.candidate.candidate,sdpMid:c.candidate.sdpMid,sdpMLineIndex:c.candidate.sdpMLineIndex},T):R(C,{candidate:null},T)},v.oniceconnectionstatechange=()=>{var m;P("peerConnection.oniceconnectionstatechange => "+v.iceConnectionState);const c=oe(v.iceConnectionState);c===k.Connected?o=setTimeout(()=>{var h;(h=r.onConnectionStateChange)==null||h.call(r,k.Connected)},5e3):(clearTimeout(o),(m=r.onConnectionStateChange)==null||m.call(r,c))},v.ontrack=c=>{var m;P("peerConnection.ontrack",c),(m=r.onSrcObjectReady)==null||m.call(r,c.streams[0])},V.onmessage=c=>{var m;if(V.readyState==="open"){const[h,M]=c.data.split(":");h===A.StreamReady&&(clearTimeout(o),(m=r.onConnectionStateChange)==null||m.call(r,k.Connected))}},await v.setRemoteDescription(K),P("set remote description OK");const g=await v.createAnswer();return P("create answer OK"),await v.setLocalDescription(g),P("set local description OK"),await l(C,g,T),P("start connection OK"),{speak(c){return u(C,T,c)},async disconnect(){var c,m,h;if(C){if(v){if(oe(v.iceConnectionState)===k.New){(c=r.onVideoStateChange)==null||c.call(r,N.Stop),clearInterval(d);return}v.close(),v.oniceconnectionstatechange=null,v.onnegotiationneeded=null,v.onicecandidate=null,v.ontrack=null}try{await f(C,T).catch(M=>{})}catch(M){P("Error on close stream connection",M)}(m=r.onConnectionStateChange)==null||m.call(r,k.New),(h=r.onVideoStateChange)==null||h.call(r,N.Stop),clearInterval(d)}},sessionId:T,streamId:C}}let H={};function Se(e){const s=window!=null&&window.hasOwnProperty("DID_AGENTS_API")?"agents-ui":"agents-sdk",t={token:e.token||"testKey",distinct_id:e.distinctId||te(),isEnabled:e.isEnabled??!0,agentId:e.agent.id,agentType:e.agent.presenter.type,owner_id:e.agent.owner_id??""};return{...t,getRandom:()=>Math.random().toString(16).slice(2),track(r,a){if(!this.isEnabled)return Promise.reject("MixPanel analytics is disabled on creation");const n={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({data:JSON.stringify([{event:r,properties:{...a,...t,source:s,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",n).then(i=>i.json()).catch(i=>console.error(i))},linkTrack(r,a,n,i){H[r]||(H[r]={events:{},resolvedDependencies:[]}),i.includes(n)||i.push(n);const o=H[r];if(o.events[n]={props:a},o.resolvedDependencies.push(n),i.every(u=>o.resolvedDependencies.includes(u))){const u=i.reduce((f,y)=>o.events[y]?{...f,...o.events[y].props}:f,{});this.track(r,u),o.resolvedDependencies=o.resolvedDependencies.filter(f=>!i.includes(f)),i.forEach(f=>{delete o.events[f]})}}}}function _e(e){var r,a,n,i,o;const s=()=>/Mobi|Android/i.test(navigator.userAgent)?"Mobile":"Desktop";return{$os:`${(()=>{const l=navigator.platform;return l.toLowerCase().includes("win")?"Windows":l.toLowerCase().includes("mac")?"Mac OS X":l.toLowerCase().includes("linux")?"Linux":"Unknown"})()}`,isMobile:`${s()=="Mobile"}`,browser:navigator.userAgent,origin:window.location.origin,agentType:(r=e.presenter)==null?void 0:r.type,agentVoice:{voiceId:(n=(a=e.presenter)==null?void 0:a.voice)==null?void 0:n.voice_id,provider:(o=(i=e.presenter)==null?void 0:i.voice)==null?void 0:o.type}}}const Ie=1080;let D=0;function ke(e,s){if(e.presenter){if(e.presenter.type===S.Clip)return{videoType:S.Clip,driver_id:e.presenter.driver_id,presenter_id:e.presenter.presenter_id,stream_warmup:!0}}else throw new Error("Presenter is not initialized");const t=s||(e.presenter.stitch?Ie:void 0);return{videoType:S.Talk,source_url:e.presenter.source_url,stream_warmup:!0,...t&&{output_resolution:t}}}function Ae(e,s,t,r,a){return D=0,new Promise(async(n,i)=>{let o=a;const l=await Ce(e.id,ke(e,s.outputResolution),{...s,analytics:r,callbacks:{...s.callbacks,onConnectionStateChange:async u=>{var f,y;if(u===k.Connected){if(!o)try{o=await t.newChat(e.id),r.track("agent-chat",{event:"created",chat_id:o.id,agent_id:e.id}),l&&n({chat:o,streamingManager:l})}catch(R){console.error(R);let C;try{C=JSON.parse(R.message)}catch(K){console.error("Error parsing the error message:",K)}(C==null?void 0:C.kind)==="InsufficientCreditsError"&&i("InsufficientCreditsError"),i("Cannot create new chat")}l&&o&&n({chat:o,streamingManager:l})}else u===k.Fail&&i(new Error("Cannot create connection"));(y=(f=s.callbacks).onConnectionStateChange)==null||y.call(f,u)},onVideoStateChange(u){var f,y;if((y=(f=s.callbacks).onVideoStateChange)==null||y.call(f,u),D>0&&u===N.Start){const R="start";r.linkTrack("agent-video",{event:R,latency:Date.now()-D},R,[A.StreamVideoCreated])}}}}).catch(i)})}function Re(e,s,t){return re(s,t||z).getById(e)}function W(e){let s="";if(e.greetings&&e.greetings.length>0){const t=Math.floor(Math.random()*e.greetings.length);s=e.greetings[t]}else s=`Hi! I'm ${e.preview_name||"My Agent"}. How can I help you?`;return[{content:s,id:B(),role:"assistant",created_at:new Date().toISOString()}]}async function Ee(e,s){var T,v,V;const t={messages:[],chatMode:s.mode||I.Functional};let r=-1;const a=s.wsURL||le,n=s.baseURL||z,i=s.mixpanelKey||ge,o=re(s.auth,n,s.callbacks.onError),l=await o.getById(e);t.messages=W(l),(v=(T=s.callbacks).onNewMessage)==null||v.call(T,t.messages);const u=Se({token:i,agent:l,...s});u.track("agent-sdk",{event:"loaded",..._e(l)});const f={onMessage:(d,g)=>{var c,m,h,M,E,$;if("content"in g){const{content:_}=g,w=t.messages[t.messages.length-1];(w==null?void 0:w.role)==="assistant"&&(r<t.messages.length&&(w.content=d===F.Partial?w.content+_:_),d===F.Answer&&(r=t.messages.length)),d===F.Answer&&u.track("agent-message-received",{messages:t.messages.length}),(m=(c=s.callbacks).onNewMessage)==null||m.call(c,t.messages)}else{if(d=d,d===A.StreamVideoCreated){const{event:_,...w}=g;w.llm={...w.llm,template:(h=l.llm)==null?void 0:h.template},u.linkTrack("agent-video",{...w},A.StreamVideoCreated,["start"])}else if([A.StreamVideoDone,A.StreamVideoError,A.StreamVideoRejected].includes(d)){const _=d.split("/")[1],w={...g,event:_};w.llm={...w.llm,template:(M=l.llm)==null?void 0:M.template},u.track("agent-video",{...w,event:_})}[A.StreamFailed,A.StreamVideoError,A.StreamVideoRejected].includes(d)&&(($=(E=s.callbacks).onError)==null||$.call(E,new Error(`Stream failed with event ${d}`),{data:g}))}}};async function y(){var h,M,E,$,_,w;D=0;const d=await ae(s.auth,a,f),{streamingManager:g,chat:c}=await U();r=-1,t.messages.length===0&&(t.messages=W(l),(M=(h=s.callbacks).onNewMessage)==null||M.call(h,t.messages)),c!=null&&c.id&&c.id!==((E=t.chat)==null?void 0:E.id)&&((_=($=s.callbacks).onNewChat)==null||_.call($,c==null?void 0:c.id)),t.streamingManager=g,t.socketManager=d,t.chat=c;const m=((w=t.chat)==null?void 0:w.chat_mode)||I.Functional;C(m),u.track("agent-chat",{event:"connect",chatId:c.id,agentId:l.id})}async function R(){var d,g,c,m,h;(d=t.socketManager)==null||d.disconnect(),await((g=t.streamingManager)==null?void 0:g.disconnect()),delete t.streamingManager,delete t.socketManager,t.messages=W(l),(m=(c=s.callbacks).onNewMessage)==null||m.call(c,t.messages),u.track("agent-chat",{event:"disconnect",chatId:(h=t.chat)==null?void 0:h.id,agentId:l.id})}async function C(d){var g,c;d!==t.chatMode&&(u.track("agent-mode-change",{mode:d}),t.chatMode=d,t.chatMode!==I.Functional&&await R(),(c=(g=s.callbacks).onModeChange)==null||c.call(g,d))}async function K(){if(!t.chat)return y();const{streamingManager:d,chat:g}=await U();t.streamingManager=d,C(t.chat.chat_mode||I.Functional),u.track("agent-chat",{event:"reconnect",chatId:g.id,agentId:l.id})}async function U(){let d,g;try{const c=await Ae(l,s,o,u,t.chat);d=c.streamingManager,g=c.chat}catch(c){throw C(I.Maintenance),c}return{streamingManager:d,chat:g}}return{agent:l,starterMessages:((V=l.knowledge)==null?void 0:V.starter_message)||[],connect:y,disconnect:R,changeMode:C,async reconnect(){var h,M;if(!t.chat)return y();(h=t.socketManager)==null||h.disconnect(),await((M=t.streamingManager)==null?void 0:M.disconnect());const d=await ae(s.auth,a,f),{streamingManager:g,chat:c}=await U();t.streamingManager=g,t.socketManager=d;const m=t.chat.chat_mode||I.Functional;C(m),u.track("agent-chat",{event:"reconnect",chatId:c.id,agentId:l.id})},async chat(d){var c,m,h,M,E,$,_,w,ce;const g=B();try{if(D=Date.now(),d.length>=800)throw new Error("Message cannot be more than 800 characters");if(d.length===0)throw new Error("Message cannot be empty");if(t.chatMode===I.Maintenance)throw new Error("Chat is in maintenance mode");if(![I.TextOnly,I.Playground].includes(t.chatMode))if(t.streamingManager){if(!t.chat)throw new Error("Chat is not initialized")}else throw new Error("Streaming manager is not initialized");if(t.messages.push({id:B(),role:"user",content:d,created_at:new Date(D).toISOString()}),(m=(c=s.callbacks).onNewMessage)==null||m.call(c,t.messages),!t.chat){const L={};t.chatMode===I.Playground&&(L.headers={[ie]:"true"}),t.chat=await o.newChat(l.id,L)}const x={id:g,role:"assistant",content:"",created_at:new Date().toISOString(),matches:[]};t.messages.push(x);const de=t.messages.slice(0,-1);let O;const J={};t.chatMode===I.Playground&&(J.headers={[ie]:"true"});try{O=await o.chat(l.id,t.chat.id,{sessionId:(h=t.streamingManager)==null?void 0:h.sessionId,streamId:(M=t.streamingManager)==null?void 0:M.streamId,messages:de,chatMode:t.chatMode},J)}catch(L){if((E=L==null?void 0:L.message)!=null&&E.includes("missing or invalid session_id"))console.log("Invalid stream, try reconnect with new stream id"),await K(),O=await o.chat(l.id,t.chat.id,{sessionId:($=t.streamingManager)==null?void 0:$.sessionId,streamId:(_=t.streamingManager)==null?void 0:_.streamId,messages:de,chatMode:t.chatMode},J);else throw L}return u.track("agent-message-send",{event:"success",messages:t.messages.length+1}),x.context=O.context,O.result&&(x.content=O.result,x.matches=O.matches,u.track("agent-message-received",{latency:Date.now()-D,messages:t.messages.length}),(ce=(w=s.callbacks).onNewMessage)==null||ce.call(w,t.messages)),O}catch(x){throw t.messages[t.messages.length-1].id===g&&t.messages.pop(),u.track("agent-message-send",{event:"error",messages:t.messages.length}),x}},rate(d,g,c){var M,E,$,_;const m=t.messages.find(w=>w.id===d);if(t.chat){if(!m)throw new Error("Message not found")}else throw new Error("Chat is not initialized");const h=((M=m.matches)==null?void 0:M.map(w=>[w.document_id,w.id]))??[];return u.track("agent-rate",{event:c?"update":"create",thumb:g===1?"up":"down",knowledge_id:((E=l.knowledge)==null?void 0:E.id)??"",matches:h,score:g}),c?o.updateRating(l.id,t.chat.id,c,{knowledge_id:(($=l.knowledge)==null?void 0:$.id)??"",message_id:d,matches:h,score:g}):o.createRating(l.id,t.chat.id,{knowledge_id:((_=l.knowledge)==null?void 0:_.id)??"",message_id:d,matches:h,score:g})},deleteRate(d){var g;if(!t.chat)throw new Error("Chat is not initialized");return u.track("agent-rate-delete",{type:"text",chat_id:(g=t.chat)==null?void 0:g.id,id:d}),o.deleteRating(l.id,t.chat.id,d)},speak(d){if(!t.streamingManager)throw new Error("Streaming manager is not initialized");function g(){if(l.presenter){if(d.type==="text")return{type:"text",provider:d.provider?d.provider:l.presenter.voice,input:d.input,ssml:d.ssml||!1};if(d.type==="audio")return{type:"audio",audio_url:d.audio_url}}else throw new Error("Presenter is not initialized");throw new Error("Invalid payload")}const c=g();return u.track("agent-speak",c),t.streamingManager.speak({script:c})}}}p.ChatMode=I,p.ChatProgress=F,p.ConnectionState=k,p.DocumentType=Z,p.KnowledgeType=Y,p.PlanGroup=q,p.Providers=G,p.RateState=X,p.StreamEvents=A,p.StreamingState=N,p.Subject=Q,p.UserPlan=b,p.VideoType=S,p.VoiceAccess=ee,p.createAgentManager=Ee,p.getAgent=Re,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});
@@ -62,5 +62,5 @@ export interface Chat {
62
62
  messages: Message[];
63
63
  agent_id__created_at: string;
64
64
  agent_id__modified_at: string;
65
- chatMode?: ChatMode;
65
+ chat_mode?: ChatMode;
66
66
  }
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.102",
4
+ "version": "1.0.19-beta.104",
5
5
  "type": "module",
6
6
  "description": "d-id client sdk",
7
7
  "repository": {